/* NEXVORIA™ corporate website (nexvoria.tech). Built by tools/corp-site/build.py into assets/css/site.css.
   Same brand family as erp.nexvoria.tech: navy grounds, NEXVORIA blue and red, Jost + Space Grotesk. */
:root{
  --navy:#0A1330;--navy-1:#0F1B3D;--panel:#152452;--blue:#1E3A8A;--bright:#2E6BFF;--sky:#8FB0FF;--red:#E5303A;
  --mist:#EEF2F8;--white:#fff;--ink:#0F1B3D;--ink-2:#4A5675;--on-dark:#C9D5F5;
  --hair-l:rgba(15,27,61,.14);--hair-d:rgba(255,255,255,.14);
  --f:"Jost","Century Gothic","Avenir Next",system-ui,sans-serif;--ui:"Space Grotesk","Jost",system-ui,sans-serif;
  --g:clamp(20px,5vw,64px);--max:1240px;--r:20px;
  /* used by the shared DPDP consent banner */
  --text-primary:#F5F7FF;--text-secondary:#C9D5F5;--text-muted:#9AA6C8;--brand-blue:#2E6BFF;--brand-blue-light:#8FB0FF;
  --brand-red:#E5303A;--font-display:var(--f);--font-sans:var(--f);--font-mono:var(--ui);--surface-line:rgba(255,255,255,.12)
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--mist);color:var(--ink);font-family:var(--f);font-weight:300;font-size:17px;line-height:1.6;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:2px solid var(--bright);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:var(--ink);padding:10px 16px;border-radius:8px}
.skip:focus{top:12px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--g)}
.tm{font-size:.55em;vertical-align:super;letter-spacing:0;line-height:0}
.k{font-family:var(--ui);font-size:.75rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;display:inline-flex;align-items:center;gap:12px}
.k::before{content:"";width:22px;height:2px;background:var(--red)}
.btn{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border-radius:999px;border:1px solid transparent;text-decoration:none;font-family:var(--ui);font-size:.94rem;font-weight:500;transition:background .2s,transform .2s,border-color .2s}
.btn:hover{transform:translateY(-1px)}
.btn.solid{background:var(--bright);color:#fff}
.btn.solid:hover{background:#2459E0}
.btn.line-d{color:#fff;border-color:rgba(255,255,255,.32)}
.btn.line-d:hover{border-color:#fff}
.btn.line-l{color:var(--ink);border-color:rgba(15,27,61,.3);background:#fff}
.btn.sm{min-height:44px;padding:8px 18px;font-size:.88rem}
section{scroll-margin-top:80px}
.sec{padding:clamp(64px,9vw,104px) 0}
.sec.dark{background:var(--navy-1);color:#fff}
#products{background:linear-gradient(90deg,var(--navy-1) 35%,rgba(15,27,61,.6)),url(/assets/images/site/layers.webp) right center/auto 100% no-repeat,var(--navy-1)}
.band{position:relative;min-height:clamp(320px,42vw,560px);display:flex;align-items:flex-end;color:#fff;background:linear-gradient(0deg,rgba(10,19,48,.92) 0%,rgba(10,19,48,.25) 60%),radial-gradient(60% 90% at 85% 20%,rgba(46,107,255,.35),transparent 70%),var(--panel)}
.band .wrap{padding-bottom:clamp(32px,5vw,56px);width:100%}
.band h2{font-size:clamp(28px,3.6vw,46px);font-weight:300;line-height:1.12;max-width:22ch}
.band p{color:var(--on-dark);max-width:56ch;margin-top:12px}
.sec.white{background:#fff}
.head{display:flex;flex-direction:column;gap:14px;max-width:780px;margin-bottom:40px}
.head h2{font-size:clamp(30px,3.6vw,46px);line-height:1.1;font-weight:300;letter-spacing:-.01em}
.head p{color:var(--ink-2)}
.dark .head p{color:var(--on-dark)}
.dark .k{color:var(--on-dark)}
.k{color:var(--blue)}

/* header */
.top{position:sticky;top:0;z-index:50;background:rgba(10,19,48,.96);color:#fff;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--hair-d)}
.top .bar{display:flex;align-items:center;gap:16px;min-height:72px}
.brand{display:flex;align-items:flex-start;gap:2px;text-decoration:none;color:#fff;flex:none}
.brand img{height:30px;width:auto}
.brand .tm{font-size:10px;line-height:1;vertical-align:top}
.menu{display:flex;gap:2px;margin-left:auto}
.menu a{white-space:nowrap;text-decoration:none;font-family:var(--ui);font-size:.88rem;padding:10px 12px;border-radius:999px;color:rgba(255,255,255,.88)}
.menu a:hover,.menu a[aria-current]{background:rgba(255,255,255,.1);color:#fff}
.top .cta{display:flex;gap:8px}
.burger{display:none;margin-left:auto;width:44px;height:44px;border-radius:999px;border:1px solid var(--hair-d);background:none;color:#fff;cursor:pointer;align-items:center;justify-content:center}
@media (max-width:1180px){
  .burger{display:inline-flex}
  .menu,.top .cta{display:none}
  .top.open .bar{flex-wrap:wrap;padding-bottom:16px}
  .top.open .menu{display:flex;flex-direction:column;width:100%;order:3;margin:0}
  .top.open .menu a{padding:14px 12px;font-size:1rem;border-bottom:1px solid var(--hair-d);border-radius:0}
  .top.open .cta{display:flex;order:4;width:100%;flex-wrap:wrap}
}

/* hero */
.hero{color:#fff;background:linear-gradient(90deg,rgba(10,19,48,.96) 0%,rgba(10,19,48,.78) 45%,rgba(10,19,48,.55) 100%),url(/assets/images/site/hero.webp) center/cover no-repeat,radial-gradient(55% 70% at 0% 0%,rgba(46,107,255,.40),transparent 70%),var(--navy)}
.hero .grid{display:flex;flex-wrap:wrap;align-items:center;gap:48px;padding-top:clamp(48px,7vw,80px);padding-bottom:clamp(56px,7vw,88px)}
.hero .copy{flex:1 1 440px;min-width:0;display:flex;flex-direction:column;gap:22px}
.hero h1{font-size:clamp(38px,5vw,64px);line-height:1.04;letter-spacing:-.02em;font-weight:300}
.hero .lede{font-size:clamp(17px,1.4vw,19px);line-height:1.55;color:rgba(255,255,255,.88);max-width:58ch}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.strip{border-top:1px solid var(--hair-d)}
.strip ul{display:flex;flex-wrap:wrap;gap:10px 40px;padding-top:18px;padding-bottom:18px;font-family:var(--ui);font-size:.88rem;color:var(--on-dark)}

/* connected map */
.map{flex:1 1 480px;min-width:0}
.map .stage{position:relative;height:500px;border-radius:24px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.1)}
.map svg{position:absolute;inset:0;width:100%;height:100%}
.map line{stroke:rgba(143,176,255,.35);stroke-width:.35;stroke-dasharray:1.2 1.2;transition:stroke .3s}
.map line.on{stroke:var(--sky);stroke-dasharray:none;stroke-width:.5}
.node{position:absolute;transform:translate(-50%,-50%);background:var(--panel);border:1px solid rgba(143,176,255,.35);border-radius:14px;padding:12px 16px;text-align:center;min-width:150px;transition:background .3s,border-color .3s,opacity .3s}
.node b{display:block;font-family:var(--ui);font-weight:500;font-size:.94rem;color:#fff}
.node span{display:block;font-size:.8rem;color:var(--on-dark);margin-top:2px}
.node.core{background:var(--bright);border-color:var(--sky);padding:18px 22px}
.node.core span{color:#fff}
.stage.picked .node:not(.core):not(.on){opacity:.45}
.node.on{background:#1E3A8A;border-color:var(--sky)}
.picker{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.picker button{font-family:var(--ui);font-size:.84rem;min-height:44px;padding:8px 14px;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:none;color:#fff;cursor:pointer}
.picker button[aria-pressed="true"]{background:#fff;color:var(--navy);border-color:#fff}
.map .hint{margin-top:10px;font-family:var(--ui);font-size:.8rem;color:var(--on-dark)}
@media (max-width:640px){
  .map .stage{height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px}
  .map svg{display:none}
  .node{position:static;transform:none;min-width:0}
  .node.core{grid-column:1/-1}
}

/* practice rows */
.rows a{display:flex;flex-wrap:wrap;gap:8px 40px;align-items:baseline;padding:28px 0;border-top:1px solid var(--hair-l);text-decoration:none;color:var(--ink)}
.rows a:last-child{border-bottom:1px solid var(--hair-l)}
.rows .n{flex:0 0 48px;font-family:var(--ui);font-size:.8rem;color:var(--red);letter-spacing:.14em}
.rows h3{flex:1 1 300px;font-size:clamp(22px,2.2vw,28px);font-weight:400;line-height:1.2}
.rows p{flex:1 1 380px;color:var(--ink-2)}
.rows .go{flex:0 0 auto;font-family:var(--ui);font-size:.88rem;font-weight:500;color:var(--blue)}
.rows a:hover h3{color:var(--blue)}

/* products */
.prods{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.prod{background:var(--panel);border:1px solid var(--hair-d);border-radius:var(--r);padding:32px;display:flex;flex-direction:column;gap:14px}
.prod .tag{font-family:var(--ui);font-size:.8rem;letter-spacing:.14em;color:var(--sky);text-transform:uppercase}
.prod h3{font-size:28px;font-weight:400}
.prod p{color:var(--on-dark)}
.prod .ctas{margin-top:auto}
.prod.next{background:none;border-style:dashed;border-color:rgba(255,255,255,.3);justify-content:center}
.prod img{width:72px}
@media (max-width:640px){
  .prods{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(var(--g)*-1);padding:0 var(--g) 8px}
  .prod{flex:0 0 84%;scroll-snap-align:start}
}

/* in production */
.split{display:flex;flex-wrap:wrap;gap:48px;align-items:center}
.split>*{flex:1 1 420px;min-width:0}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fact{background:#fff;border:1px solid var(--hair-l);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:4px}
.fact b{font-family:var(--ui);font-weight:500}
.fact span{color:var(--ink-2);font-size:.94rem}
.link{font-family:var(--ui);font-weight:500;color:var(--blue)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:24px}
.steps li{border-top:2px solid var(--bright);padding-top:16px;display:flex;flex-direction:column;gap:8px}
.steps .n{font-family:var(--ui);font-size:.8rem;color:var(--red);letter-spacing:.14em}
.steps b{font-weight:500;font-size:19px}
.steps span{color:var(--ink-2);font-size:.94rem}

/* insights */
.posts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px}
.posts a{text-decoration:none;color:var(--ink);display:flex;flex-direction:column;gap:8px;border-top:2px solid var(--ink);padding-top:16px}
.posts .t{font-size:22px;line-height:1.3;font-weight:400}
.posts a:hover .t{color:var(--blue)}
.posts .c{font-family:var(--ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}

/* call to action and footer */
.cta-band{color:#fff;background:linear-gradient(0deg,rgba(10,19,48,.9),rgba(10,19,48,.72)),url(/assets/images/site/city.webp) center/cover no-repeat,var(--navy)}
.cta-band .wrap{display:flex;flex-wrap:wrap;gap:32px;align-items:center;justify-content:space-between}
.cta-band h2{flex:1 1 520px;font-size:clamp(30px,3.6vw,46px);line-height:1.12;font-weight:300}
.foot{background:var(--navy);color:var(--on-dark);border-top:1px solid var(--hair-d);font-size:.94rem}
.foot .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:32px;padding-top:56px;padding-bottom:32px}
.foot .col{display:flex;flex-direction:column;gap:8px}
.foot b{color:#fff;font-weight:500}
.foot a{color:var(--on-dark);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot .legal{display:flex;flex-wrap:wrap;gap:10px 24px;padding-top:20px;padding-bottom:28px;border-top:1px solid var(--hair-d);font-size:.82rem}
.wa{position:fixed;right:20px;bottom:84px;z-index:60;width:56px;height:56px;border-radius:999px;background:#25D366;color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.5)}

/* smooth page changes in browsers that support it */
@view-transition{navigation:auto}
::view-transition-old(root),::view-transition-new(root){animation-duration:.28s}

/* reveal */
.rv{opacity:0;transform:translateY(14px);transition:opacity .35s ease,transform .35s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none;transition:none}
  *{transition:none!important}
}

/* ===================== Home v3: premium editorial ===================== */
.serif{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;letter-spacing:-.01em}
body.home .top{background:transparent;border-bottom-color:transparent;transition:background .3s,border-color .3s;position:fixed;left:0;right:0}
body.home .top.solid,body.home .top.open{background:rgba(10,19,48,.92);border-bottom-color:var(--hair-d)}
.grain{position:fixed;inset:0;pointer-events:none;z-index:70;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

.h-hero{position:relative;min-height:100vh;min-height:100svh;color:#fff;background:radial-gradient(70% 60% at 75% 30%,rgba(46,107,255,.22),transparent 70%),radial-gradient(40% 40% at 15% 85%,rgba(229,48,58,.10),transparent 70%),#070E26;overflow:hidden;display:flex;flex-direction:column}
.h-hero canvas{position:absolute;inset:0;width:100%;height:100%}
.h-hero .img{position:absolute;inset:0;background:url(/assets/images/site/hero.webp) right center/cover no-repeat;opacity:.35;mask-image:linear-gradient(90deg,transparent 15%,#000 70%);-webkit-mask-image:linear-gradient(90deg,transparent 15%,#000 70%)}
.h-hero .wrap{position:relative;z-index:2}
.h-hero .in{width:100%;flex:1;display:flex;flex-direction:column;justify-content:center;gap:28px;padding-top:120px;padding-bottom:40px}
.h-hero .eyebrow{font-family:var(--ui);font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark);display:flex;align-items:center;gap:14px}
.h-hero .eyebrow i{width:36px;height:1px;background:var(--red);display:inline-block}
.h-hero h1{font-size:clamp(48px,8.4vw,132px);line-height:.95;letter-spacing:-.035em;font-weight:300;max-width:15ch}
.h-hero h1 .line{display:block;overflow:hidden;padding-bottom:.06em}
.h-hero h1 .line>span{display:inline-block}
.h-hero .lede{max-width:54ch;font-size:clamp(17px,1.35vw,19px);color:rgba(255,255,255,.84)}
.h-hero .row{display:flex;flex-wrap:wrap;gap:16px 40px;align-items:flex-end;justify-content:space-between}
.h-hero .hfacts{width:100%;position:relative;z-index:2;border-top:1px solid var(--hair-d)}
.h-hero .hfacts ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-top:22px;padding-bottom:26px}
.h-hero .hfacts li{display:flex;flex-direction:column;gap:2px;font-size:.92rem;color:var(--on-dark)}
.h-hero .hfacts b{font-family:var(--ui);font-weight:500;color:#fff;font-size:.95rem}
.cue{display:inline-flex;align-items:center;gap:10px;font-family:var(--ui);font-size:.78rem;letter-spacing:.18em;text-transform:uppercase;color:var(--on-dark);text-decoration:none}
.cue span{width:1px;height:40px;background:linear-gradient(var(--sky),transparent);display:inline-block;animation:cue 2s ease-in-out infinite}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1)}}
.btn.big{min-height:56px;padding:14px 30px;font-size:1rem}
.btn .arr{transition:transform .25s}.btn:hover .arr{transform:translateX(4px)}
@media (max-width:760px){.h-hero .hfacts ul{grid-template-columns:1fr;gap:12px}}

/* product reveal */
.h-reveal{background:#070E26;padding:0 0 clamp(80px,10vw,140px);perspective:1400px;overflow:hidden}
.frame{max-width:1180px;margin:0 auto;border-radius:18px;background:#fff;padding:0 10px 10px;box-shadow:0 60px 120px -40px rgba(46,107,255,.45),0 30px 60px -30px rgba(0,0,0,.8);transform-origin:50% 0;transform:rotateX(18deg) scale(.92);will-change:transform}
.frame .chrome{display:flex;align-items:center;gap:7px;padding:12px 6px}
.frame .chrome i{width:10px;height:10px;border-radius:50%;background:#E3E7F0;display:inline-block}
.frame .chrome span{margin-left:12px;font-family:var(--ui);font-size:.75rem;color:#56607E;background:#F1F4FA;border-radius:999px;padding:4px 14px}
.frame img{border-radius:10px;width:100%}
.h-reveal .cap{text-align:center;margin-top:22px;font-family:var(--ui);font-size:.82rem;color:var(--on-dark)}
.no-motion .frame{transform:none}

/* marquee */
.marq{background:var(--bright);color:#fff;overflow:hidden;white-space:nowrap;padding:18px 0}
.marq .track{display:inline-flex;gap:48px;animation:marq 38s linear infinite;font-size:clamp(20px,2.2vw,30px);font-weight:300}
.marq .track span{display:inline-flex;align-items:center;gap:48px}
.marq .track span::after{content:"✦";font-size:.6em;opacity:.7}
@keyframes marq{to{transform:translateX(-50%)}}

/* practices list with hover preview */
.h-list{background:var(--mist);padding:clamp(80px,10vw,140px) 0;position:relative}
.h-title{display:flex;flex-wrap:wrap;gap:16px 64px;align-items:flex-end;justify-content:space-between;margin-bottom:56px}
.h-title h2{font-size:clamp(38px,5.4vw,80px);line-height:1;letter-spacing:-.03em;font-weight:300;max-width:14ch}
.h-title p{max-width:40ch;color:var(--ink-2)}
.dark .h-title p{color:var(--on-dark)}
.plist a{display:grid;grid-template-columns:72px minmax(0,1.2fr) minmax(0,1fr) 40px;gap:24px;align-items:center;padding:34px 0;border-top:1px solid var(--hair-l);text-decoration:none;color:var(--ink);position:relative}
.plist a:last-child{border-bottom:1px solid var(--hair-l)}
.plist .n{font-family:var(--ui);font-size:.85rem;color:var(--red);letter-spacing:.12em}
.plist h3{font-size:clamp(26px,3.2vw,46px);font-weight:300;letter-spacing:-.02em;line-height:1.05;transition:transform .35s,color .35s}
.plist p{color:var(--ink-2);font-size:1rem}
.plist .go{width:40px;height:40px;border-radius:50%;border:1px solid var(--hair-l);display:flex;align-items:center;justify-content:center;transition:background .3s,color .3s,transform .3s}
.plist a:hover h3{transform:translateX(12px);color:var(--blue)}
.plist a:hover .go{background:var(--ink);color:#fff;transform:rotate(-45deg)}
.peek{position:fixed;left:0;top:0;width:300px;height:200px;border-radius:14px;overflow:hidden;pointer-events:none;z-index:40;opacity:0;transform:translate(-50%,-50%) scale(.8);transition:opacity .25s,transform .25s;background:#0A1330 center/cover no-repeat;box-shadow:0 30px 60px -20px rgba(10,19,48,.5)}
.peek.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
@media (max-width:820px){.plist a{grid-template-columns:48px minmax(0,1fr);gap:8px 16px}.plist p{grid-column:2}.plist .go{display:none}.peek{display:none}}

/* pinned story */
.h-story{background:#070E26;color:#fff;padding:clamp(80px,10vw,140px) 0}
.story{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:start}
.story .steps{display:flex;flex-direction:column}
.story .step{padding:28px 0 28px 28px;border-left:1px solid var(--hair-d);opacity:.38;transition:opacity .4s,border-color .4s;min-height:30vh;display:flex;flex-direction:column;justify-content:center;gap:8px}
.story .step.on{opacity:1;border-left-color:var(--bright)}
.story .step .n{font-family:var(--ui);font-size:.8rem;color:var(--sky);letter-spacing:.16em}
.story .step h3{font-size:clamp(24px,2.4vw,34px);font-weight:300;line-height:1.15}
.story .step p{color:var(--on-dark);max-width:44ch}
.story .stick{position:sticky;top:110px;align-self:start}
.story .screens{position:relative;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 50px 100px -40px rgba(46,107,255,.5)}
.story .screens img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top left;opacity:0;transform:scale(1.03);transition:opacity .6s,transform .9s}
.story .screens img.on{opacity:1;transform:none}
.story .note{margin-top:14px;font-family:var(--ui);font-size:.8rem;color:var(--on-dark)}
@media (max-width:900px){.story{grid-template-columns:1fr}.story .stick{position:relative;top:0;order:-1}.story .step{min-height:0;opacity:1}}

/* statement */
.h-state{background:var(--mist);padding:clamp(100px,14vw,200px) 0}
.h-state p{font-size:clamp(32px,4.6vw,68px);line-height:1.1;letter-spacing:-.025em;font-weight:300;max-width:22ch}
.h-state p .w{opacity:.15;transition:opacity .2s}
.h-state p .w.lit{opacity:1}
.no-motion .h-state p .w{opacity:1}
.h-state .by{margin-top:36px;display:flex;align-items:center;gap:14px;font-family:var(--ui);font-size:.9rem;color:var(--ink-2)}
.h-state .by i{width:36px;height:1px;background:var(--red);display:inline-block}

/* horizontal products */
.h-prod{background:var(--navy-1);color:#fff;overflow:hidden}
.h-prod .pin{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:clamp(80px,9vw,120px) 0}
.rail{display:flex;gap:28px;padding:0 var(--g);will-change:transform}
.pcard{flex:0 0 min(78vw,860px);border-radius:24px;background:#152452;border:1px solid var(--hair-d);overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:480px}
.pcard .txt{padding:40px;display:flex;flex-direction:column;gap:16px}
.pcard .tag{font-family:var(--ui);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky)}
.pcard h3{font-size:clamp(30px,3vw,44px);font-weight:300;letter-spacing:-.02em}
.pcard p{color:var(--on-dark)}
.pcard .ctas{margin-top:auto}
.pcard .vis{position:relative;background:radial-gradient(70% 70% at 60% 40%,rgba(46,107,255,.35),transparent 70%),#0F1B3D;display:flex;align-items:center;justify-content:center;overflow:hidden}
.pcard .vis img.phone{width:46%;border-radius:22px;box-shadow:0 30px 60px -20px rgba(0,0,0,.7);transform:rotate(-4deg)}
.pcard .vis img.wide{position:absolute;right:-18%;bottom:-6%;width:110%;border-radius:12px;box-shadow:0 30px 60px -20px rgba(0,0,0,.6)}
.pcard .vis img.logo{width:44%}
.pcard.next{grid-template-columns:1fr;background:transparent;border-style:dashed;border-color:rgba(255,255,255,.3);flex-basis:min(60vw,520px)}
@media (max-width:820px){.rail{flex-direction:column}.pcard{grid-template-columns:1fr;flex-basis:auto;min-height:0}.pcard .vis{min-height:300px}.h-prod .pin{min-height:0}}

/* process */
.h-how{background:#fff;padding:clamp(80px,10vw,140px) 0}
.flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;position:relative;counter-reset:s}
.flow::before{content:"";position:absolute;left:0;right:0;top:27px;height:1px;background:var(--hair-l)}
.flow .bar{position:absolute;left:0;top:27px;height:2px;background:var(--bright);width:0}
.flow li{position:relative;padding-right:24px;display:flex;flex-direction:column;gap:10px}
.flow .dot{width:56px;height:56px;border-radius:50%;background:#fff;border:1px solid var(--hair-l);display:flex;align-items:center;justify-content:center;font-family:var(--ui);font-size:.9rem;color:var(--blue);position:relative;z-index:1}
.flow b{font-size:21px;font-weight:400;margin-top:10px}
.flow span{color:var(--ink-2);font-size:.95rem}
@media (max-width:900px){.flow{grid-template-columns:1fr;gap:28px}.flow::before,.flow .bar{display:none}}

.h-cta{position:relative;color:#fff;background:linear-gradient(0deg,rgba(7,14,38,.92),rgba(7,14,38,.55)),url(/assets/images/site/city.webp) center/cover no-repeat,#070E26;padding:clamp(100px,14vw,180px) 0}
.h-cta h2{font-size:clamp(40px,6vw,96px);line-height:.98;letter-spacing:-.03em;font-weight:300;max-width:14ch}
.h-cta .ctas{margin-top:40px}

/* ===== Home v4: company-wide ===== */
.svc{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:48px;align-items:start}
.svc .tabs{display:flex;flex-direction:column;border-top:1px solid var(--hair-l)}
.svc .tabs button{all:unset;cursor:pointer;display:grid;grid-template-columns:44px 1fr 24px;align-items:center;gap:12px;padding:20px 4px;border-bottom:1px solid var(--hair-l);font-size:clamp(19px,1.7vw,24px);font-weight:300;color:var(--ink-2);transition:color .25s,padding .25s}
.svc .tabs button .n{font-family:var(--ui);font-size:.78rem;color:var(--red);letter-spacing:.12em}
.svc .tabs button .a{opacity:0;transition:opacity .25s,transform .25s;transform:translateX(-6px)}
.svc .tabs button[aria-selected="true"],.svc .tabs button:hover{color:var(--ink);padding-left:12px}
.svc .tabs button[aria-selected="true"] .a{opacity:1;transform:none}
.svc .tabs button:focus-visible{outline:2px solid var(--bright);outline-offset:2px}
.svc .panel{position:sticky;top:100px;background:#0F1B3D;color:#fff;border-radius:24px;padding:clamp(28px,3vw,44px);min-height:520px;display:flex;flex-direction:column;gap:22px;overflow:hidden;isolation:isolate}
.svc .panel::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--pimg,none) center/cover no-repeat;opacity:.22;mask-image:linear-gradient(180deg,#000,transparent 75%);-webkit-mask-image:linear-gradient(180deg,#000,transparent 75%)}
.svc .panel[hidden]{display:none}
.svc .panel .tag{font-family:var(--ui);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky)}
.svc .panel h3{font-size:clamp(28px,2.8vw,40px);font-weight:300;line-height:1.1;letter-spacing:-.02em}
.svc .panel p{color:var(--on-dark);max-width:56ch}
.svc .cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:4px}
.svc .cols h4{font-family:var(--ui);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:#fff;font-weight:500;margin-bottom:10px}
.svc .cols li{color:var(--on-dark);font-size:.95rem;padding:6px 0 6px 20px;position:relative}
.svc .cols li::before{content:"";position:absolute;left:0;top:15px;width:10px;height:1px;background:var(--sky)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chips span{font-family:var(--ui);font-size:.8rem;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.22);color:#fff}
.svc .panel .ctas{margin-top:auto}
@media (max-width:900px){.svc{grid-template-columns:1fr}.svc .panel{position:relative;top:0;min-height:0}.svc .cols{grid-template-columns:1fr}}

.deliv{position:sticky;top:110px;align-self:start}
.dcard{background:#fff;color:var(--ink);border-radius:20px;padding:32px;box-shadow:0 50px 100px -40px rgba(46,107,255,.55);display:none;flex-direction:column;gap:16px;min-height:380px}
.dcard.on{display:flex;animation:dIn .5s ease}
@keyframes dIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.dcard .tag{font-family:var(--ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.dcard h4{font-size:28px;font-weight:300;letter-spacing:-.01em}
.dcard ul{display:flex;flex-direction:column;border-top:1px solid var(--hair-l)}
.dcard li{display:flex;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--hair-l);font-size:1rem}
.dcard li svg{flex:none;color:var(--bright)}
.dcard .who{margin-top:auto;font-family:var(--ui);font-size:.82rem;color:var(--ink-2)}
@media (max-width:900px){.deliv{position:relative;top:0}.dcard{display:flex;margin-bottom:12px}.story .steps-only .step{min-height:0}}

.inds{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1px;background:var(--hair-l);border:1px solid var(--hair-l);border-radius:20px;overflow:hidden}
.inds div{background:#fff;padding:28px;display:flex;flex-direction:column;gap:10px;min-height:200px;transition:background .3s}
.inds div:hover{background:var(--mist)}
.inds b{font-size:22px;font-weight:400}
.inds span{color:var(--ink-2);font-size:.95rem}
.inds i{font-family:var(--ui);font-style:normal;font-size:.78rem;color:var(--red);letter-spacing:.12em}

.stack{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}
.stack span{font-family:var(--ui);font-size:.9rem;padding:10px 18px;border-radius:999px;background:#fff;border:1px solid var(--hair-l)}
.stack span.ms{border-color:rgba(46,107,255,.4);color:var(--blue)}

.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.way{border:1px solid var(--hair-d);border-radius:20px;padding:30px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));transition:transform .3s,border-color .3s}
.way:hover{transform:translateY(-4px);border-color:rgba(143,176,255,.6)}
.way .n{font-family:var(--ui);font-size:.78rem;color:var(--sky);letter-spacing:.14em}
.way h3{font-size:24px;font-weight:400}
.way p{color:var(--on-dark);font-size:.97rem}
.way .fit{margin-top:auto;padding-top:14px;border-top:1px solid var(--hair-d);font-size:.88rem;color:#fff}

.why{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:36px;margin-top:64px}
.why div{display:flex;flex-direction:column;gap:10px;border-top:2px solid var(--ink);padding-top:18px}
.why b{font-size:21px;font-weight:400}
.why span{color:var(--ink-2)}

.prods2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.p2{border-radius:24px;background:#152452;border:1px solid var(--hair-d);overflow:hidden;display:flex;flex-direction:column}
.p2 .vis{aspect-ratio:16/9;background:radial-gradient(70% 70% at 60% 40%,rgba(46,107,255,.35),transparent 70%),#0F1B3D;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative}
.p2 .vis img.shot{position:absolute;left:8%;top:12%;width:100%;border-radius:10px;box-shadow:0 30px 60px -20px rgba(0,0,0,.7)}
.p2 .vis img.logo{width:34%}
.p2 .txt{padding:30px;display:flex;flex-direction:column;gap:12px;flex:1}
.p2 .tag{font-family:var(--ui);font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky)}
.p2 h3{font-size:30px;font-weight:300}
.p2 p{color:var(--on-dark)}
.p2 .ctas{margin-top:auto}
.p2.next{background:none;border-style:dashed;border-color:rgba(255,255,255,.3);justify-content:center}

/* ===== Licensing ===== */
.h-hero.sub{min-height:78vh;min-height:78svh}
.h-hero.sub h1{font-size:clamp(44px,6.6vw,104px);max-width:16ch}
.lic-band{background:#fff;padding:clamp(80px,10vw,140px) 0}
.lic-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:56px;align-items:center}
.lic-grid .pts{display:flex;flex-direction:column;gap:18px;margin-top:28px}
.lic-grid .pts div{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:start}
.lic-grid .pts i{width:40px;height:40px;border-radius:12px;background:var(--mist);display:flex;align-items:center;justify-content:center;color:var(--blue);font-style:normal;font-family:var(--ui);font-size:.85rem}
.lic-grid .pts b{display:block;font-weight:500;font-family:var(--ui)}
.lic-grid .pts span{color:var(--ink-2);font-size:.96rem}
.lic-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lic-tiles a{text-decoration:none;color:#fff;border-radius:18px;padding:22px;min-height:150px;display:flex;flex-direction:column;gap:8px;background:linear-gradient(160deg,#1E3A8A,#0F1B3D);position:relative;overflow:hidden;transition:transform .3s}
.lic-tiles a:hover{transform:translateY(-4px)}
.lic-tiles a::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;background:radial-gradient(circle,rgba(143,176,255,.35),transparent 70%)}
.lic-tiles b{font-size:20px;font-weight:400}
.lic-tiles span{font-size:.88rem;color:var(--on-dark)}
.lic-tiles .k2{font-family:var(--ui);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--sky)}
@media (max-width:900px){.lic-grid{grid-template-columns:1fr}.lic-tiles{grid-template-columns:1fr}}

.cat{display:flex;flex-direction:column;gap:22px}
.fam{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:32px;padding:36px;border-radius:24px;background:#fff;border:1px solid var(--hair-l)}
.fam .lead{display:flex;flex-direction:column;gap:12px}
.fam .lead .k2{font-family:var(--ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.fam .lead h3{font-size:clamp(26px,2.4vw,34px);font-weight:300;line-height:1.1}
.fam .lead p{color:var(--ink-2)}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.plan{border:1px solid var(--hair-l);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:6px;background:var(--mist)}
.plan b{font-family:var(--ui);font-weight:500;font-size:.98rem}
.plan span{color:var(--ink-2);font-size:.9rem}
@media (max-width:900px){.fam{grid-template-columns:1fr;padding:26px}}

.tips{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.tip{border-radius:20px;padding:28px;border:1px solid var(--hair-d);display:flex;flex-direction:column;gap:10px}
.tip .n{font-family:var(--ui);font-size:.78rem;letter-spacing:.14em;color:var(--sky)}
.tip b{font-size:21px;font-weight:400}
.tip span{color:var(--on-dark)}

.faq{max-width:900px}
.faq details{border-top:1px solid var(--hair-l);padding:22px 0}
.faq details:last-child{border-bottom:1px solid var(--hair-l)}
.faq summary{cursor:pointer;list-style:none;font-size:clamp(19px,1.8vw,24px);font-weight:400;display:flex;justify-content:space-between;gap:20px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--ui);color:var(--blue);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{color:var(--ink-2);margin-top:12px;max-width:70ch}

/* ===== Inner pages ===== */
body:not(.home) main{padding-top:0}
.crumbs{font-family:var(--ui);font-size:.8rem;color:var(--on-dark);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.crumbs a{color:var(--on-dark);text-decoration:none}.crumbs a:hover{color:#fff;text-decoration:underline}
.crumbs span{opacity:.6}
.ticks{display:flex;flex-direction:column;border-top:1px solid var(--hair-l)}
.ticks li{padding:16px 0 16px 34px;border-bottom:1px solid var(--hair-l);position:relative;font-size:1.05rem}
.ticks li::before{content:"";position:absolute;left:0;top:22px;width:18px;height:10px;border-left:2px solid var(--bright);border-bottom:2px solid var(--bright);transform:rotate(-45deg)}
.inds div i{font-style:normal}
.shotbox{border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -30px rgba(10,19,48,.45);border:1px solid var(--hair-l)}
.shotbox img{width:100%}
.people{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:28px}
.person{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0;background:#fff;border:1px solid var(--hair-l);border-radius:24px;overflow:hidden}
.person img{width:100%;height:100%;object-fit:cover;min-height:340px}
.person .pinfo{padding:30px;display:flex;flex-direction:column;gap:10px}
.person .k2{font-family:var(--ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.person h3{font-size:30px;font-weight:300}
.person .role{font-family:var(--ui);color:var(--blue);font-size:.92rem}
.person p{color:var(--ink-2)}
.chips.dark span{color:var(--ink);border-color:var(--hair-l);background:var(--mist)}
@media (max-width:700px){.person{grid-template-columns:1fr}.person img{min-height:0;aspect-ratio:4/3}}

.art-hero{background:radial-gradient(60% 80% at 80% 0%,rgba(46,107,255,.3),transparent 70%),#070E26;color:#fff;padding:150px 0 72px}
.art-hero .eyebrow{font-family:var(--ui);font-size:.8rem;letter-spacing:.22em;text-transform:uppercase;color:var(--on-dark);display:flex;align-items:center;gap:14px;margin:26px 0 18px}
.art-hero .eyebrow i{width:36px;height:1px;background:var(--red);display:inline-block}
.art-hero h1{font-size:clamp(36px,5vw,68px);line-height:1.04;letter-spacing:-.025em;font-weight:300;max-width:20ch}
.art-hero .lede{margin-top:22px;font-size:clamp(17px,1.4vw,20px);color:rgba(255,255,255,.84);max-width:62ch}
.art-hero .meta{margin-top:22px;font-family:var(--ui);font-size:.85rem;color:var(--on-dark)}
.wrap.narrow{max-width:860px}
.prose{font-size:1.08rem;line-height:1.75;color:#1F2A4A}
.prose>*+*{margin-top:1.1em}
.prose h2{font-size:clamp(26px,2.6vw,34px);font-weight:400;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-top:1.8em}
.prose h3{font-size:22px;font-weight:500;color:var(--ink);margin-top:1.5em}
.prose a{color:var(--blue);text-underline-offset:3px}
.prose strong{font-weight:600;color:var(--ink)}
.prose ul,.prose ol{padding-left:1.3em}.prose ul{list-style:disc}.prose ol{list-style:decimal}
.prose li+li{margin-top:.4em}
.prose table{width:100%;border-collapse:collapse;font-size:.97rem;display:block;overflow-x:auto}
.prose th,.prose td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--hair-l);vertical-align:top}
.prose th{font-family:var(--ui);font-weight:500;background:var(--mist)}
.prose blockquote{border-left:3px solid var(--bright);padding:6px 0 6px 20px;font-size:1.2rem;color:var(--ink)}
.prose [style*="border-left"]{color:#1F2A4A}
.bgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px}
.bcard{display:flex;flex-direction:column;gap:12px;padding:28px;border-radius:20px;border:1px solid var(--hair-l);background:#fff;text-decoration:none;color:var(--ink);transition:transform .3s,box-shadow .3s}
.bcard:hover{transform:translateY(-4px);box-shadow:0 30px 60px -30px rgba(10,19,48,.35)}
.bcard .c{font-family:var(--ui);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.bcard .t{font-size:24px;line-height:1.25;font-weight:400}
.bcard .d{color:var(--ink-2);font-size:.97rem}
.bcard .m{margin-top:auto;font-family:var(--ui);font-size:.8rem;color:var(--ink-2)}
body:not(.home) .top{position:fixed;left:0;right:0}

/* Careers and job pages */
.jstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--hair-l);border:1px solid var(--hair-l);border-radius:20px;overflow:hidden}
.jstats div{background:#fff;padding:28px;display:flex;flex-direction:column;gap:8px}
.jstats b{font-size:clamp(28px,3.4vw,44px);font-weight:300;letter-spacing:-.02em;color:var(--blue)}
.jstats span{font-family:var(--ui);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.jfilter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}
.jfilter button{font:500 .88rem var(--ui);min-height:44px;padding:8px 16px;border-radius:999px;border:1px solid var(--hair-l);background:#fff;color:var(--ink);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.jfilter button span{opacity:.6;margin-left:4px}
.jfilter button:hover{border-color:var(--blue)}
.jfilter button.on{background:var(--navy-1);border-color:var(--navy-1);color:#fff}
.jobs{display:flex;flex-direction:column;gap:14px}
.job{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;padding:28px;border:1px solid var(--hair-l);border-radius:20px;background:var(--mist);transition:border-color .25s,transform .25s,box-shadow .25s}
.job:hover{border-color:rgba(46,107,255,.45);transform:translateY(-2px);box-shadow:0 18px 40px -24px rgba(15,27,61,.35)}
.job[hidden]{display:none}
.job .k2{font-family:var(--ui);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.job h3{font-size:clamp(22px,2.2vw,28px);font-weight:400;margin:6px 0 8px;letter-spacing:-.01em}
.job h3 a{color:inherit;text-decoration:none}
.job h3 a:hover{color:var(--blue)}
.job .jmain>p{color:var(--ink-2);max-width:70ch;margin-bottom:14px}
.job .chips.dark span{background:#fff}
.jact{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
.jempty{padding:56px 28px;text-align:center;border:1px dashed var(--hair-l);border-radius:20px}
.jempty h3{font-size:26px;font-weight:400;margin-bottom:10px}
.jempty a{color:var(--blue)}
.job-hero h1{font-size:clamp(40px,5.6vw,88px);max-width:20ch}
.jd{display:grid;grid-template-columns:320px minmax(0,1fr);gap:64px;align-items:start}
.jside{position:sticky;top:96px;border:1px solid var(--hair-l);border-radius:20px;padding:24px;background:var(--mist);display:flex;flex-direction:column;gap:20px}
.jside dl{display:flex;flex-direction:column}
.jside dl div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--hair-l)}
.jside dt{font-family:var(--ui);font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2)}
.jside dd{text-align:right;font-weight:500}
.jside .btn{justify-content:center}
.jnote{font-size:.85rem;color:var(--ink-2)}
.jbody{max-width:76ch}
.jbody h2{font-size:clamp(26px,2.6vw,36px);font-weight:300;letter-spacing:-.02em;margin:0 0 20px}
.jbody h2:not(:first-child){margin-top:56px}
.jtext{white-space:pre-line;font-size:1.05rem;line-height:1.75;color:var(--ink-2)}
.jtext b,.jbody .ticks b{color:var(--ink);font-weight:500}
.ticks li b{font-weight:500}
@media (max-width:900px){.jstats{grid-template-columns:repeat(2,minmax(0,1fr))}.job{grid-template-columns:1fr}.jact{justify-content:flex-start}.jd{grid-template-columns:1fr;gap:40px}.jside{position:static}}

/* DPDP consent banner (copied from main.src.css by build.py) */
.dpdp-banner {
  position: fixed;
  bottom: 0; left: 0; right: 0;
  background: rgba(6, 9, 20, 0.95);
  backdrop-filter: blur(12px);
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding: 10px 20px;
  z-index: 9990;
  color: var(--text-primary);
}
.dpdp-banner-inner {
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  gap: 16px;
  align-items: center;
  justify-content: space-between;
}
.dpdp-banner-text {
  font-size: 0.82rem;
  color: var(--text-secondary);
  line-height: 1.5;
  flex: 1;
  min-width: 0;
}
.dpdp-banner-text a {
  color: var(--brand-blue-light);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.dpdp-banner-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}
.dpdp-btn {
  padding: 7px 16px;
  border-radius: 6px;
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid transparent;
  font-family: var(--font-sans);
  transition: all 0.15s;
}
.dpdp-btn-primary {
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-red));
  color: white;
  font-weight: 600;
}
.dpdp-btn-primary:hover { transform: translateY(-1px); }
.dpdp-btn-link {
  background: transparent;
  color: var(--text-secondary);
  text-decoration: underline;
  text-underline-offset: 2px;
  padding: 7px 8px;
}
.dpdp-btn-link:hover { color: var(--text-primary); }
.dpdp-btn-secondary {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-primary);
  border-color: rgba(255, 255, 255, 0.15);
}
.dpdp-btn-secondary:hover { background: rgba(255, 255, 255, 0.12); }
@media (max-width: 640px) {
  .dpdp-banner { padding: 10px 14px; }
  .dpdp-banner-inner { flex-direction: column; gap: 8px; align-items: stretch; }
  .dpdp-banner-text { font-size: 0.78rem; text-align: center; }
  .dpdp-banner-actions { justify-content: center; }
}
.dpdp-prefs {
  position: fixed;
  inset: 0;
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.dpdp-prefs.is-open {
  display: flex;
}
.dpdp-prefs-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(6, 9, 20, 0.8);
  backdrop-filter: blur(8px);
}
.dpdp-prefs-panel {
  position: relative;
  background: linear-gradient(135deg, #0a1230, #060914);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 18px;
  padding: 36px 32px 28px;
  max-width: 580px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 40px 120px rgba(0, 0, 0, 0.6);
}
.dpdp-prefs-close {
  position: absolute;
  top: 14px; right: 18px;
  background: none;
  border: none;
  color: var(--text-muted);
  font-size: 1.6rem;
  cursor: pointer;
  line-height: 1;
}
.dpdp-prefs h2 {
  font-family: var(--font-display);
  font-weight: 500;
  margin: 0 0 8px;
  font-size: 1.4rem;
}
.dpdp-prefs-lead {
  color: var(--text-secondary);
  font-size: 0.88rem;
  line-height: 1.55;
  margin: 0 0 22px;
}
.dpdp-cat {
  padding: 14px 16px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--surface-line);
  border-radius: 10px;
  margin-bottom: 10px;
}
.dpdp-cat-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}
.dpdp-cat-head strong {
  display: block;
  font-size: 0.95rem;
  margin-bottom: 4px;
}
.dpdp-cat-head small {
  display: block;
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.5;
}
.dpdp-cat-locked {
  flex-shrink: 0;
  font-size: 0.72rem;
  font-family: var(--font-mono);
  color: #6ee9a8;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  padding: 4px 10px;
  background: rgba(110, 233, 168, 0.1);
  border-radius: 100px;
}
.dpdp-toggle {
  position: relative;
  flex-shrink: 0;
  width: 42px;
  height: 24px;
  cursor: pointer;
}
.dpdp-toggle input { opacity: 0; width: 0; height: 0; }
.dpdp-toggle span {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 100px;
  transition: background 0.2s;
}
.dpdp-toggle span::after {
  content: '';
  position: absolute;
  top: 3px; left: 3px;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: white;
  transition: transform 0.2s;
}
.dpdp-toggle input:checked + span {
  background: linear-gradient(135deg, var(--brand-blue), var(--brand-red));
}
.dpdp-toggle input:checked + span::after { transform: translateX(18px); }
.dpdp-prefs-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  margin-top: 18px;
}
.dpdp-prefs-footer {
  font-size: 0.78rem;
  color: var(--text-muted);
  line-height: 1.5;
  margin: 20px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--surface-line);
}
.dpdp-prefs-footer a { color: var(--brand-blue-light); }
