/* Seiretsu — bright theme (matches the Design Component pages) */
:root{
--bg-app:#fff;--bg-panel-alt:#F5F8FD;--bg-tint-cyan:#EAF2FF;--bg-tint-violet:#FFEDEB;
--border:#E3EAF5;--border-strong:#D3DEF0;--ink:#0B1B3A;--ink-soft:#33466B;--muted:#5A6C8F;
--active-pill:#0B1B3A;
--fiber-cyan:#1F6FB5;--fiber-cyan-text:#1F6FB5;--wireless-violet:#EE3B2F;--wireless-violet-text:#EE3B2F;
--r-card:20px;--r-panel:28px;
--shadow-md:0 12px 30px rgba(11,27,58,.08);--shadow-lg:0 24px 50px rgba(31,111,181,.16);
--f-display:"Inter",system-ui,sans-serif;--f-body:"Inter",system-ui,sans-serif;--f-mono:"JetBrains Mono",ui-monospace,monospace;
}
body{font-feature-settings:'ss01','cv11';font-size:16px;line-height:1.6;background:#fff}
h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;line-height:1.08}
h1{font-size:clamp(40px,6.4vw,72px);letter-spacing:-.03em;line-height:1}
h2{font-size:clamp(30px,4.2vw,44px);line-height:1.1}
h3{font-size:clamp(19px,1.8vw,22px)}
.hero h1{font-size:clamp(44px,7.4vw,92px);line-height:.98;max-width:12ch}
.phero h1{font-size:clamp(40px,6.4vw,72px);max-width:16ch}
.eyebrow{font:700 12px/1 var(--f-display);letter-spacing:.14em;color:#EE3B2F}
.eyebrow::before{display:none}
.eyebrow.wl,.wl-t{color:#EE3B2F}
.sec:nth-of-type(odd) .eyebrow:not(.wl){color:#1F6FB5}
/* nav */
.nav{top:0;left:0;transform:none;width:100%;max-width:none;border-radius:0;border:0;border-bottom:1px solid var(--border);box-shadow:none;padding:12px max(24px,calc((100vw - 1200px)/2));justify-content:space-between;gap:20px;background:rgba(255,255,255,.92)}
.nav.small{padding-block:8px;box-shadow:0 8px 24px rgba(11,27,58,.08)}
.nav.hide{transform:translateY(-110%)}
.nav .logo{padding:0;margin-right:auto}.nav .logo:hover{background:none}
.logo-img{height:34px;mix-blend-mode:normal}
.nav-links a{font-size:14px;color:#33466B}
.nav-links a:hover{background:none;color:#EE3B2F}
.nav-links a[aria-current=page]{background:none;color:#1F6FB5;font-weight:700}
/* buttons */
.btn{padding:15px 26px;font-weight:600}
.btn-primary{background:#EE3B2F;color:#fff;box-shadow:0 10px 24px rgba(238,59,47,.28)}
.btn-primary:hover{color:#fff;box-shadow:0 14px 30px rgba(238,59,47,.38);filter:brightness(.96)}
.btn-secondary{background:#fff;border:1.5px solid #1F6FB5;color:#1F6FB5}
.btn-secondary:hover{background:#EAF2FF;box-shadow:none;color:#1F6FB5}
.btn-wl{background:#EE3B2F}
.nav .btn{padding:10px 18px}
.link-arrow{color:#1F6FB5}.link-arrow:hover{color:#EE3B2F}
a{color:#1F6FB5}a:hover{color:#EE3B2F}
/* cards */
.glass{background:#fff;border:1px solid var(--border);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.glass:hover,.glass:focus-within{border-color:#9CC3E8;box-shadow:0 16px 32px rgba(11,27,58,.1)}
.glass.wl:hover{border-color:#F5A39D}
.ico-box{border-radius:14px;background:#DCE8FA;color:#1F6FB5}
.wl .ico-box,.ico-box.wl{background:#FFE0DD;color:#EE3B2F}
.mchip{background:#EAF2FF;color:#1F6FB5;font:700 11px var(--f-display);letter-spacing:.06em;box-shadow:none}
/* page hero */
.phero{background:linear-gradient(180deg,#EAF2FF 0%,#fff 100%);padding:140px 0 clamp(56px,7vw,96px);overflow:hidden}
.phero::before{content:"";position:absolute;right:-120px;top:-140px;width:460px;height:460px;border-radius:50%;background:#FFD9D6;opacity:.7;z-index:-1}
.phero::after{content:"";position:absolute;left:-140px;bottom:-220px;width:420px;height:420px;border-radius:50%;background:#CFE2FA;opacity:.7;z-index:-1}
.phero .art{opacity:.55}
.sec[data-tint]{background:none}
/* footer */
.footer{background:#0B1B3A;border-top:0;color:#fff}
.footer .motif{opacity:.08}.footer .motif path{stroke:#fff}
.footer h4{color:#8FA6CF;font:700 12px var(--f-display);letter-spacing:.14em}
.footer a{color:#fff}.footer a:hover{color:#fff;text-decoration:underline}
.footer p,.foot-bot{color:#B6C4E0}.foot-bot{border-top-color:rgba(255,255,255,.16)}
.footer .logo-img,.footer img{background:#fff;padding:8px 14px;border-radius:10px;height:44px;box-sizing:border-box}

.nav{overflow:hidden}
.nav-links{flex-wrap:nowrap}
.nav nav{min-width:0}
@media (max-width:1200px){.nav{gap:8px;padding-inline:20px}.nav-links a{padding:9px 10px}.nav .btn{display:none}}
@media (max-width:1000px){.nav-links{display:none}.nav .menu-btn{margin-left:auto}}

/* ===== v2: distinctive type, sticker-style surfaces, own motion ===== */
:root{--f-display:"Bricolage Grotesque","DM Sans",system-ui,sans-serif;--f-body:"DM Sans",system-ui,sans-serif;--f-mono:"DM Mono",ui-monospace,monospace;--pop:#0B1B3A}
body{font-feature-settings:normal;font-family:var(--f-body)}
h1,h2,h3,h4{font-family:var(--f-display);font-weight:800;letter-spacing:-.035em}
h1{font-variation-settings:"wdth" 90}
.eyebrow{font:500 12px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:8px 14px;border:1.5px solid var(--pop);border-radius:999px;background:#fff;color:var(--pop)!important;transform:rotate(-2deg);box-shadow:3px 3px 0 #FFD9D6;transition:transform .35s var(--ease-out)}
.eyebrow:hover{transform:rotate(0) translateY(-2px)}
.sec:nth-of-type(odd) .eyebrow:not(.wl){box-shadow:3px 3px 0 #CFE2FA}
.grad-t{background:linear-gradient(100deg,#1F6FB5,#EE3B2F,#1F6FB5);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:gradShift 6s ease-in-out infinite}
@keyframes gradShift{0%,100%{background-position:0 0}50%{background-position:100% 0}}
/* nav */
.nav-links a{position:relative;background:none!important}
.nav-links a::after{content:"";position:absolute;left:15px;right:15px;bottom:4px;height:2px;background:linear-gradient(90deg,#1F6FB5,#EE3B2F);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease-out)}
.nav-links a:hover::after,.nav-links a[aria-current=page]::after{transform:scaleX(1)}
/* buttons: offset-shadow press */
.btn{border:2px solid var(--pop);font-family:var(--f-display);font-weight:700;position:relative;overflow:hidden;transition:transform .2s var(--ease-out),box-shadow .2s var(--ease-out),background .2s}
.btn-primary{background:#EE3B2F;color:#fff;box-shadow:4px 4px 0 var(--pop);filter:none}
.btn-primary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--pop);filter:none;color:#fff}
.btn-primary:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--pop)}
.btn-secondary{background:#fff;color:var(--pop);border:2px solid var(--pop);box-shadow:4px 4px 0 #CFE2FA}
.btn-secondary:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 #9CC3E8;background:#fff;color:var(--pop)}
.btn::before{content:"";position:absolute;top:0;left:-70%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .6s var(--ease-out)}
.btn:hover::before{left:130%}
.nav .btn{box-shadow:3px 3px 0 var(--pop)}
/* cards: sticker */
.glass{border:2px solid var(--pop);border-radius:22px;box-shadow:6px 6px 0 #CFE2FA;background:#fff;transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out)}
.glass.wl{box-shadow:6px 6px 0 #FFD9D6}
.glass:hover,.glass:focus-within{border-color:var(--pop);transform:translate(-3px,-3px);box-shadow:10px 10px 0 #9CC3E8}
.glass.wl:hover{border-color:var(--pop);box-shadow:10px 10px 0 #F5A39D}
.glass[data-tilt]:hover{transform:perspective(1000px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translate(-3px,-3px)}
.ico-box{border:2px solid var(--pop);border-radius:16px;transition:transform .4s var(--ease-out)}
.glass:hover .ico-box{transform:rotate(-8deg) scale(1.08)}
.mchip{font:500 11px var(--f-mono);letter-spacing:.06em;border:1.5px solid var(--pop);background:#fff;color:var(--pop)}
/* heroes: drifting blobs */
.phero::before{animation:blobA 14s ease-in-out infinite}
.phero::after{animation:blobB 18s ease-in-out infinite}
@keyframes blobA{0%,100%{transform:translate(0,0) scale(1);border-radius:50%}50%{transform:translate(-40px,30px) scale(1.08);border-radius:42% 58% 55% 45%}}
@keyframes blobB{0%,100%{transform:translate(0,0) scale(1);border-radius:50%}50%{transform:translate(50px,-30px) scale(.94);border-radius:58% 42% 45% 55%}}
.hero h1{max-width:12ch}
/* footer */
.footer h4{font:500 12px var(--f-mono);letter-spacing:.12em}
.footer a{background:linear-gradient(#fff,#fff) 0 100%/0 1.5px no-repeat;transition:background-size .3s var(--ease-out)}
.footer a:hover{background-size:100% 1.5px;text-decoration:none}
@media (prefers-reduced-motion:reduce){.grad-t,.phero::before,.phero::after{animation:none}.btn::before{display:none}}

/* ===== footer v2 ===== */
.footer{padding:88px 0 32px}
.foot-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:clamp(28px,4vw,44px);border-radius:28px;background:linear-gradient(110deg,#1F6FB5 0%,#1F6FB5 45%,#EE3B2F 100%);margin-bottom:64px;position:relative}
.foot-cta h3{color:#fff;font-size:clamp(24px,3vw,34px);margin:0 0 6px}
.foot-cta p{color:#fff;margin:0;max-width:44ch}
.foot-cta .btn-primary{background:#fff;color:#0B1B3A;border-color:#0B1B3A}
.foot-cta .btn-primary:hover{color:#0B1B3A}
.foot-cta .btn-secondary{background:transparent;color:#fff;border-color:#fff;box-shadow:4px 4px 0 rgba(255,255,255,.35)}
.foot-cta .btn-secondary:hover{background:rgba(255,255,255,.14);color:#fff;box-shadow:6px 6px 0 rgba(255,255,255,.35)}
.foot-grid{grid-template-columns:1.5fr repeat(5,minmax(0,1fr));gap:36px 28px;align-items:start}
.foot-brand .logo{padding:0}
.foot-brand .logo-img{background:#fff;padding:8px 14px;border-radius:12px;height:46px;box-sizing:border-box}
.foot-brand p{margin:18px 0 18px;max-width:30ch;font-size:15px;color:#B6C4E0}
.footer .status-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;font-size:13px;font-weight:600}
.foot-contact{margin-top:20px!important;display:grid;gap:6px!important;font-size:14px;color:#B6C4E0}
.foot-contact a{font-size:14px;color:#fff}
.footer h4{margin-bottom:18px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.16)}
.footer ul{gap:12px}
.footer nav a{font-size:14px;color:#D6E0F5;display:inline-block}
.footer nav a:hover{color:#fff;transform:translateX(3px)}
.footer nav a{transition:transform .25s var(--ease-out),color .2s,background-size .3s var(--ease-out)}
.foot-bot{margin-top:56px}
.foot-legal{display:flex;gap:20px;flex-wrap:wrap}
.foot-legal a{font-size:13px;color:#B6C4E0}
@media (max-width:1100px){.foot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.foot-brand{grid-column:1/-1}}
@media (max-width:600px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-cta .row{width:100%}.foot-cta .btn{flex:1}}

/* ===== lightweight hero visual (CSS only, transform/opacity animations) ===== */
.orb-wrap .ring{position:absolute;left:50%;top:50%;width:62%;aspect-ratio:1;margin:-31% 0 0 -31%;border-radius:50%;border:2px solid #1F6FB5;opacity:0;animation:ringOut 6s ease-out infinite;will-change:transform,opacity}
.orb-wrap .r2{animation-delay:2s;border-color:#EE3B2F}
.orb-wrap .r3{animation-delay:4s}
@keyframes ringOut{0%{transform:scale(.7);opacity:.55}100%{transform:scale(1.6);opacity:0}}
.orb-wrap .sat{position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#EE3B2F;box-shadow:0 0 0 6px rgba(238,59,47,.18);will-change:transform;animation:satA 14s linear infinite}
.orb-wrap .s2{background:#1F6FB5;box-shadow:0 0 0 6px rgba(31,111,181,.18);animation:satB 20s linear infinite}
@keyframes satA{from{transform:rotate(0) translateX(min(34vw,420px)) rotate(0)}to{transform:rotate(360deg) translateX(min(34vw,420px)) rotate(-360deg)}}
@keyframes satB{from{transform:rotate(180deg) translateX(min(28vw,350px)) rotate(-180deg)}to{transform:rotate(-180deg) translateX(min(28vw,350px)) rotate(180deg)}}
.orb-css{animation:floatY 8s ease-in-out infinite;will-change:transform}
.grad-t,.phero::before,.phero::after{will-change:auto}
.phero::before,.phero::after{animation:none}
@media (max-width:900px){.orb-wrap .sat{display:none}}
@media (prefers-reduced-motion:reduce){.orb-wrap .ring,.orb-wrap .sat,.orb-css{animation:none}}

/* ===== v3: refined, professional interactions (overrides v2 sticker style) ===== */
:root{--e:cubic-bezier(.2,.7,.2,1)}
.eyebrow{transform:none;box-shadow:none;border:1px solid var(--border-strong);background:#fff;font-weight:500;padding:7px 14px;color:#1F6FB5!important}
.eyebrow:hover{transform:none}
.sec:nth-of-type(odd) .eyebrow:not(.wl){box-shadow:none}
/* buttons */
.btn{border:1.5px solid transparent;font-family:var(--f-display);font-weight:700;letter-spacing:-.01em;box-shadow:none;transition:transform .35s var(--e),box-shadow .35s var(--e),background-color .25s,border-color .25s,color .25s;will-change:transform}
.btn::before{display:none}
.btn .icon{transition:transform .35s var(--e)}
.btn:hover .icon{transform:translateX(4px)}
.btn-primary{background:#EE3B2F;color:#fff;border-color:#EE3B2F;box-shadow:0 1px 2px rgba(11,27,58,.12),0 8px 20px -6px rgba(238,59,47,.55)}
.btn-primary:hover{background:#E02E22;border-color:#E02E22;color:#fff;transform:translateY(-2px);box-shadow:0 2px 4px rgba(11,27,58,.12),0 16px 28px -8px rgba(238,59,47,.6);filter:none}
.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:0 1px 2px rgba(11,27,58,.12),0 4px 10px -4px rgba(238,59,47,.5);transition-duration:.1s}
.btn-secondary{background:#fff;color:#1F6FB5;border-color:#B9D2EE;box-shadow:0 1px 2px rgba(11,27,58,.06)}
.btn-secondary:hover{background:#1F6FB5;border-color:#1F6FB5;color:#fff;transform:translateY(-2px);box-shadow:0 14px 26px -10px rgba(31,111,181,.55)}
.btn-secondary:active{transform:translateY(0) scale(.98);transition-duration:.1s}
.btn:focus-visible{outline:3px solid rgba(31,111,181,.35);outline-offset:3px}
.nav .btn{box-shadow:0 6px 16px -6px rgba(238,59,47,.55)}
.foot-cta .btn-primary{background:#fff;color:#0B1B3A;border-color:#fff;box-shadow:0 10px 24px -8px rgba(0,0,0,.35)}
.foot-cta .btn-primary:hover{background:#fff;color:#EE3B2F;border-color:#fff}
.foot-cta .btn-secondary{background:transparent;color:#fff;border-color:rgba(255,255,255,.7);box-shadow:none}
.foot-cta .btn-secondary:hover{background:#fff;color:#1F6FB5;border-color:#fff;box-shadow:0 10px 24px -8px rgba(0,0,0,.35)}
/* cards */
.glass{border:1px solid var(--border);box-shadow:0 1px 2px rgba(11,27,58,.04),0 10px 30px -14px rgba(11,27,58,.12);overflow:hidden;transition:transform .45s var(--e),box-shadow .45s var(--e),border-color .3s}
.glass::after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:linear-gradient(90deg,#1F6FB5,#EE3B2F);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e)}
.glass:hover,.glass:focus-within{border-color:#C9DAF0;transform:translateY(-6px);box-shadow:0 2px 4px rgba(11,27,58,.05),0 28px 48px -18px rgba(31,111,181,.35)}
.glass:hover::after,.glass:focus-within::after{transform:scaleX(1)}
.glass.wl:hover{border-color:#F6C3BE;box-shadow:0 2px 4px rgba(11,27,58,.05),0 28px 48px -18px rgba(238,59,47,.35)}
.glass[data-tilt]:hover{transform:perspective(1100px) rotateX(var(--rx,0)) rotateY(var(--ry,0)) translateY(-6px)}
.ico-box{border:0;transition:transform .45s var(--e),background-color .3s,color .3s}
.glass:hover .ico-box{transform:scale(1.08);background:#1F6FB5;color:#fff}
.glass.wl:hover .ico-box{background:#EE3B2F;color:#fff}
.mchip{border:0;background:#EAF2FF;color:#1F6FB5}
/* links */
.link-arrow{position:relative}
.link-arrow::after{content:"";position:absolute;left:0;right:26px;bottom:-3px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .35s var(--e)}
.link-arrow:hover::after{transform:scaleX(1)}
@media (prefers-reduced-motion:reduce){.btn,.glass,.glass::after,.ico-box,.link-arrow::after{transition:none}.btn:hover,.glass:hover{transform:none}}

/* ===== portfolio: editorial index list ===== */
.pf-bar{border-bottom:2px solid var(--ink);padding-bottom:18px;margin-bottom:0;align-items:flex-end}
.pf-tabs{gap:4px 22px}
.pf-tab{border:0;background:none;border-radius:0;padding:8px 0;position:relative;color:var(--muted);font:600 14px var(--f-display)}
.pf-tab::after{content:"";position:absolute;left:0;right:0;bottom:-19px;height:3px;background:linear-gradient(90deg,#1F6FB5,#EE3B2F);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--e,cubic-bezier(.2,.7,.2,1))}
.pf-tab:hover{border:0;color:var(--ink)}
.pf-tab[aria-pressed=true]{background:none;color:var(--ink);border:0}
.pf-tab[aria-pressed=true]::after{transform:scaleX(1)}
.pf-search{border:0;border-bottom:1.5px solid var(--border-strong);border-radius:0;background:transparent;padding:8px 0;width:min(300px,100%)}
.pf-search:focus{border-bottom-color:#1F6FB5}
.pf-grid{display:block;counter-reset:pf}
.pf-card{counter-increment:pf;position:relative;display:grid;grid-template-columns:minmax(190px,1.05fr) 140px minmax(0,1.9fr) minmax(0,1.5fr);gap:12px 28px;align-items:center;padding:30px 56px 30px 56px;background:none;border:0;border-bottom:1px solid var(--border);border-radius:0;box-shadow:none;transform:none;overflow:hidden;transition:background-color .4s,padding .4s cubic-bezier(.2,.7,.2,1)}
.pf-card::before{content:counter(pf,decimal-leading-zero);position:absolute;left:8px;top:50%;transform:translateY(-50%);font:500 12px var(--f-mono);color:var(--muted);transition:color .3s}
.pf-card::after{content:"→";position:absolute;right:14px;top:50%;font:600 20px var(--f-display);color:#1F6FB5;opacity:0;transform:translate(-10px,-50%);transition:opacity .3s,transform .4s cubic-bezier(.2,.7,.2,1)}
.pf-card header{display:contents}
.pf-card h3{font-size:clamp(22px,2.2vw,30px);transition:transform .4s cubic-bezier(.2,.7,.2,1),color .3s}
.pf-card header span{max-width:none;text-align:left;font:500 11px/1.3 var(--f-mono);letter-spacing:.08em;color:#1F6FB5}
.pf-card p{font-size:15px;flex:none}
.pf-card .pf-tags{gap:6px}
.pf-card .pf-tags em{font-size:12px;padding:4px 10px;background:#fff;border-color:#D3DEF0;transition:background-color .3s,color .3s,border-color .3s}
.pf-card:hover{background:linear-gradient(90deg,#EAF2FF 0%,rgba(234,242,255,0) 85%);border-color:var(--border);box-shadow:none;transform:none;padding-left:68px}
.pf-card:hover h3{color:#1F6FB5}
.pf-card:hover::before{color:#EE3B2F}
.pf-card:hover::after{opacity:1;transform:translate(0,-50%)}
.pf-card:hover .pf-tags em{border-color:#9CC3E8}
.pf-card[data-cat="Connectivity"] header span,.pf-card[data-cat="AI"] header span{color:#EE3B2F}
.pf-card[data-cat="Connectivity"]:hover{background:linear-gradient(90deg,#FFEDEB 0%,rgba(255,237,235,0) 85%)}
.pf-card[data-cat="Connectivity"]:hover h3{color:#EE3B2F}
@media (max-width:1000px){.pf-card{grid-template-columns:1fr;gap:8px;padding:24px 8px 24px 40px}.pf-card:hover{padding-left:48px}.pf-card::before{top:34px;transform:none}.pf-card::after{display:none}.pf-card header span{order:-1}}
@media (prefers-reduced-motion:reduce){.pf-card,.pf-card h3,.pf-card::after,.pf-tab::after{transition:none}}
