@font-face{font-family:"Archivo";src:url("../fonts/archivo-var-latin.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Geist";src:url("../fonts/geist-var-latin.woff2") format("woff2");font-weight:100 900;font-display:swap}

/* Layout: full-bleed bands in the Juggle rhythm (split hero, statement, marquees, feature rows, poster grid, ticket stubs), recoloured in the Steppe palette. Single light theme by design. */
:root{
  --lime:#d1fa6d; --lime-2:#e6fca8; --peri:#9d9dcf; --peri-2:#b9b9de; --plum:#3A2B53; --plum-2:#2a1f3d; --plum-3:#5b4a78;
  --ink:#1E1630; --ink-2:#3D3450; --ink-3:#5A5068; --wash:#F3F0FA; --line:#C9C3D8; --line-2:#e4e0ec; --paper:#ffffff;
  --tag-lime:#EEFBD0; --tag-lime-fg:#3F5A06; --tag-lilac:#EDEDF7; --tag-lilac-fg:#4A4A8A; --tag-peach:#FFF3DC; --tag-peach-fg:#7A4B00; --tag-red:#FDE6E4; --tag-red-fg:#9B2C22;
  --f-display:"Archivo","Arial Narrow",Impact,sans-serif;
  --f-cond:"Archivo","Arial Narrow",system-ui,sans-serif;
  --f-body:"Geist","Helvetica Neue",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1); --ease-in:cubic-bezier(.4,0,1,1); --ease-surface:cubic-bezier(.22,1,.36,1);
  --fs-lead:clamp(1.125rem,1rem + .4vw,1.3125rem); --fs-body:1.0625rem; --fs-caption:.8125rem;
  --gut:24px; color-scheme:light;
}
*,*:before,*:after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip}
button{font:inherit;color:inherit}
a{color:inherit}
h1,h2,h3,p{margin:0}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;padding:0;margin:-1px}
.eyebrow{font-family:var(--f-body);font-size:var(--fs-caption);font-weight:500;text-transform:uppercase;letter-spacing:.12em}
.disp{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase}
.cond{font-family:var(--f-cond);font-weight:500;font-stretch:75%;text-transform:uppercase}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;padding:1rem 1.5rem;border:0;border-radius:0;cursor:pointer;font-family:var(--f-body);font-weight:500;font-size:.8125rem;text-transform:uppercase;letter-spacing:.12em;line-height:1;white-space:nowrap;text-decoration:none;transition:background .16s ease,color .16s ease,transform .12s ease}
.btn:active{transform:scale(.97,.93)}
.btn--lime{background:var(--lime);color:var(--ink)}
.btn--lime:hover{background:var(--ink);color:#fff}
.btn--ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1px #fff}
.btn--ghost:hover{background:#fff;color:var(--ink)}
.btn--ink{background:var(--ink);color:#fff}
.btn--ink:hover{background:var(--lime);color:var(--ink)}
.btn__arrow{transition:transform .16s ease}
.btn:hover .btn__arrow{transform:translateX(3px)}
.ch{display:inline-block;white-space:pre}
.is-rippling .ch{animation:jl-hop .48s calc(var(--ci) * 35ms) both}
@keyframes jl-hop{0%{transform:translateY(0) scale(1);animation-timing-function:var(--ease-out)}45%{transform:translateY(-3px) scale(.98,1.04);animation-timing-function:var(--ease-in)}78%{transform:translateY(0) scale(1);animation-timing-function:var(--ease-out)}90%{transform:translateY(.5px) scale(1.04,.94)}to{transform:none}}

/* Logo */
.logo{display:inline-flex;align-items:center;gap:.55rem;text-decoration:none;color:inherit;font-family:var(--f-display);font-weight:800;font-stretch:80%;font-size:1.45rem;letter-spacing:-.01em;line-height:1}
.logo svg{height:1.75rem;width:auto;overflow:visible;display:block}
.logo .bar{transform-box:fill-box;transform-origin:50% 100%}
.logo.is-hopping .bar{animation:bar-hop .52s both}
.logo.is-hopping .bar:nth-child(2){animation-delay:.06s}.logo.is-hopping .bar:nth-child(3){animation-delay:.12s}
@keyframes bar-hop{0%{transform:none;animation-timing-function:var(--ease-out)}42%{transform:translateY(-14px) scale(.97,1.04);animation-timing-function:var(--ease-in)}74%{transform:none}86%{transform:translateY(1px) scale(1.05,.94)}to{transform:none}}

/* ===== HERO ===== */
.hero-scene{position:relative;height:175svh;background:var(--plum)}
.hero{--split:50%;--lift:0px;--bob-mix:1;position:sticky;top:0;height:100svh;min-height:520px;overflow:hidden;background:var(--lime);display:grid;place-items:center;padding-inline:3.5vw}
.hero[data-enter=hold]{--split:100%}
.hero>.hl,.hero>.chrome{z-index:0}
.hero-lower{z-index:1;position:absolute;inset:0;display:grid;place-items:center;padding-inline:3.5vw;background:var(--plum);clip-path:inset(var(--split) 0 0 0);pointer-events:none}
.hl{margin:0;text-align:center;font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.84;letter-spacing:-.02em;font-size:clamp(3rem,7.4vw,12rem);color:var(--plum);transform:translateY(var(--lift));will-change:transform;position:relative;z-index:1}
.hl .w{display:inline-block;white-space:nowrap}
.hl .lt{display:inline-block;will-change:transform;transform:translateY(calc(var(--bob-y,0px) * var(--bob-mix,1) + var(--duck,0px))) rotate(calc(var(--bob-r,0deg) * var(--bob-mix,1)));color:color-mix(in oklab,var(--plum),#0c0716 calc(var(--wet,0) * 45%))}
.hero-lower .hl{filter:url(#hs-refract)}
.hero-lower .hl .lt{color:color-mix(in oklab,var(--peri),#ffffff calc(var(--wet,0) * 30%))}
.hl .brk-d{display:inline}.hl .brk-m{display:none}
@property --bob-y{syntax:"<length>";inherits:false;initial-value:0px}
@property --bob-r{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes letterbob{0%,to{--bob-y:0px;--bob-r:0deg}25%{--bob-y:-3px;--bob-r:.8deg}50%{--bob-y:-6px;--bob-r:0deg}75%{--bob-y:-3px;--bob-r:-.8deg}}
.hl .lt--bob{animation:letterbob 5s ease-in-out infinite;animation-delay:var(--bob-delay,0s)}
.hs-caustics,.hs-drips{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hs-caustics{mix-blend-mode:screen;opacity:.8;z-index:0}
.hs-drips{z-index:2}
.chrome{position:absolute;inset:0 0 auto 0;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:clamp(1rem,3vw,1.75rem) 3.5vw;color:var(--plum)}
.hero-lower .chrome{color:var(--lime)}
.chrome .logo{justify-self:start}
.chrome__nav{display:flex;gap:clamp(1rem,2.2vw,2.25rem);font-size:.8125rem;font-weight:500;text-transform:uppercase;letter-spacing:.12em}
.chrome__nav a{text-decoration:none;padding-block:.35rem;background:linear-gradient(currentColor,currentColor) left bottom/0 1.5px no-repeat;transition:background-size .22s var(--ease-out)}
.chrome__nav a:hover{background-size:100% 1.5px}
.chrome__right{justify-self:end;display:flex;align-items:center;gap:1rem}
.chrome .btn--login{background:var(--plum);color:var(--lime);padding:.85rem 1.4rem}
.chrome .btn--login:hover{background:var(--ink);color:#fff}
.hero-lower .chrome .btn--login{background:var(--lime);color:var(--plum)}
.hero-foot{position:absolute;left:0;right:0;bottom:clamp(1.25rem,4vh,2.5rem);z-index:3;display:flex;justify-content:center;pointer-events:none}
.hero-foot .eyebrow{color:var(--lime);opacity:.85}
@media (max-width:47.99em){
  .hero-scene{height:135svh}
  .chrome{grid-template-columns:1fr auto}
  .chrome__nav{display:none}
  .hl{font-size:clamp(3.2rem,15vw,6rem);line-height:.86}
  .hl .brk-d{display:none}.hl .brk-m{display:inline}
}

/* ===== STATEMENT ===== */
.statement{position:relative;isolation:isolate;background:var(--plum);color:#fff;padding:clamp(5rem,10vh,7rem) clamp(1.5rem,6vw,6rem) clamp(6rem,12vh,9rem);overflow:hidden;text-align:center}
.statement:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(125% 105% at 50% 40%,#0000 56%,#140c2366)}
.statement:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px}
.st-inner{max-width:75rem;margin-inline:auto}
.st-eyebrow{overflow:hidden;margin-bottom:clamp(2.25rem,5.5vw,4.75rem)}
.st-eyebrow span{display:inline-block;font-family:var(--f-cond);font-stretch:75%;font-weight:500;text-transform:uppercase;letter-spacing:.09em;font-size:clamp(.8125rem,1.5vw,1.2rem);color:var(--lime)}
.st-head{font-family:var(--f-display);font-stretch:70%;font-weight:700;text-transform:uppercase;letter-spacing:-.01em;line-height:.96;font-size:clamp(2.2rem,5.4vw,4.5rem)}
.st-line{display:block;overflow:hidden;padding-block:.04em;margin-block:-.04em}
.st-line span{display:block}
.st-line--accent{margin-top:clamp(2rem,5vw,4.5rem);overflow:visible;font-weight:900;font-stretch:62%;font-size:clamp(2.75rem,6.6vw,5.5rem);line-height:.9;color:var(--lime)}
.st-sub{margin:clamp(1.25rem,2.4vw,2rem) auto 0;max-width:46rem;overflow:hidden;font-family:var(--f-body);font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;color:#ffffffd6;text-wrap:balance}
.st-sub span{display:inline-block}
.st-cta-wrap{margin-top:clamp(2rem,4.5vw,3.5rem);display:flex;flex-direction:column;align-items:center;gap:.85rem}
.st-cta{position:relative;display:inline-flex;align-items:center;gap:.6em;padding:.95em 2em;background:transparent;color:#fff;border:0;cursor:pointer;font-family:var(--f-cond);font-stretch:75%;font-weight:500;font-size:clamp(.9rem,1.5vw,1.15rem);text-transform:uppercase;letter-spacing:.09em;transition:background .18s ease,color .18s ease}
.st-cta svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.st-cta rect{fill:none;stroke:#fff;stroke-width:2;stroke-dasharray:100 100;stroke-dashoffset:0;x:1px;y:1px;width:calc(100% - 2px);height:calc(100% - 2px)}
.st-cta:hover{background:var(--lime);color:var(--ink)}
.st-cta:hover rect{stroke:var(--lime)}
.st-note{font-size:var(--fs-caption);letter-spacing:.12em;text-transform:uppercase;color:#ffffff99}
html.js .statement .st-eyebrow span,html.js .statement .st-line span,html.js .statement .st-sub span{transform:translateY(110%);opacity:0;filter:blur(8px);transition:transform .72s var(--ease-surface),opacity .72s var(--ease-surface),filter .72s var(--ease-surface)}
html.js .statement .st-eyebrow span{letter-spacing:.01em;transition-property:transform,opacity,filter,letter-spacing}
html.js .statement .st-line--accent span{transform:scale(1.12);filter:none;transition:transform .3s cubic-bezier(.34,1.56,.5,1),opacity .13s ease}
html.js .statement .st-cta rect{stroke-dashoffset:100;transition:stroke-dashoffset .76s var(--ease-surface) 1.62s}
html.js .statement.is-visible .st-eyebrow span{transform:none;opacity:1;filter:none;letter-spacing:.09em}
html.js .statement.is-visible .st-line span{transform:none;opacity:1;filter:none;transition-delay:calc(.12s + var(--i,0) * .11s)}
html.js .statement.is-visible .st-line--accent span{transform:scale(1);transition-delay:1.1s}
html.js .statement.is-visible .st-sub span{transform:none;opacity:1;filter:none;transition-delay:1.36s}
html.js .statement.is-visible .st-cta rect{stroke-dashoffset:0}

/* ===== MARQUEE ===== */
.marquee{position:relative;overflow:hidden;background:#fff;padding-block:clamp(.55rem,1.4vw,.95rem)}
.marquee--tight{padding-block:clamp(.4rem,.9vw,.6rem)}
.marquee--peri{background:var(--peri)}
.marquee--plum{background:var(--plum)}
.marquee--plum .marquee__item{color:var(--lime)}
.marquee--lime{background:var(--lime)}
.marquee__track{display:flex;width:max-content;will-change:transform}
.marquee__group{display:flex;flex:none}
.marquee__item{flex:none;display:inline-flex;align-items:center;font-family:var(--f-cond);font-stretch:75%;font-weight:500;text-transform:uppercase;font-size:clamp(1.1rem,2.2vw,2rem);line-height:1;letter-spacing:.01em;color:var(--ink);white-space:nowrap;transform:skew(var(--skew,0deg))}
.marquee--tight .marquee__item{font-size:clamp(.8rem,1.1vw,1rem);letter-spacing:.16em}
.marquee__item:after{content:"\2022";margin-inline:clamp(1rem,2.5vw,2.25rem)}
.marquee--tight .marquee__item:after{margin-inline:clamp(.75rem,1.8vw,1.5rem)}
.marquee__cta{margin-left:clamp(1rem,2.5vw,2.25rem);padding:.7rem 1.4rem;font-size:.8125rem}

/* ===== PROBLEM (sound familiar) ===== */
.sf{position:relative;background:var(--lime);color:var(--plum);overflow:hidden}
.sf__inner{max-width:1080px;margin:0 auto;padding:clamp(4rem,9vh,7rem) var(--gut);display:flex;flex-direction:column;align-items:center;text-align:center}
.sf__h{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.92;letter-spacing:-.02em;font-size:clamp(2.5rem,7vw,6rem);text-wrap:balance;margin-bottom:clamp(1rem,2.4vw,2rem)}
.sf__h span{display:block}
.sf__eyes{width:clamp(200px,30vw,300px);margin-bottom:clamp(1rem,2vw,1.5rem);--eye-x:0;--eye-y:0}
.sf__eyes svg{display:block;width:100%;height:auto;overflow:visible}
.sf__face{transform-box:fill-box;transform-origin:center;animation:blink 4s infinite}
.sf__face.is-relief{animation:blink 4s infinite,sf-relief .42s ease-in-out}
.sf__pupil{transform-box:fill-box;transform-origin:center;transform:translate(calc(var(--eye-x) * 14px),calc(var(--eye-y) * 9px));transition:transform .14s ease-out}
.sf__lid{transition:transform .5s var(--ease-out)}
.sf__lid--l{transform:translateY(-60px) rotate(0deg)}
.sf__lid--r{transform:translateY(-60px) rotate(0deg)}
.sf__eyes[data-s="1"] .sf__lid--l{transform:translateY(-24px) rotate(-6deg)}.sf__eyes[data-s="1"] .sf__lid--r{transform:translateY(-24px) rotate(6deg)}
.sf__eyes[data-s="2"] .sf__lid--l{transform:translateY(-14px) rotate(-12deg)}.sf__eyes[data-s="2"] .sf__lid--r{transform:translateY(-14px) rotate(12deg)}
.sf__eyes[data-s="3"] .sf__lid--l{transform:translateY(-6px) rotate(-15deg)}.sf__eyes[data-s="3"] .sf__lid--r{transform:translateY(-6px) rotate(15deg)}
.sf__eyes[data-s="4"] .sf__lid--l{transform:translateY(0) rotate(-17deg)}.sf__eyes[data-s="4"] .sf__lid--r{transform:translateY(0) rotate(17deg)}
.sf__brow{transition:opacity .3s ease}
.sf__eyes:not([data-s="0"]) .sf__brow{opacity:0}
.sf__eye-r{transform-box:fill-box;transform-origin:center}
.sf__eyes[data-s="3"] .sf__eye-r,.sf__eyes[data-s="4"] .sf__eye-r{animation:twitch 1.6s ease-in-out infinite}
.sf__tear{opacity:0;transform-box:fill-box;transform-origin:center top}
.sf__eyes[data-s="4"] .sf__tear:not(.is-falling){opacity:1;animation:sf-tear-well .9s cubic-bezier(.3,0,.55,1) both,sf-tear-hang 1.7s ease-in-out .9s infinite}
.sf__tear.is-falling{animation:sf-tear-fall 1s cubic-bezier(.45,0,.9,1) forwards}
@keyframes blink{0%,96.25%,to{transform:scaleY(1)}98.125%{transform:scaleY(.1)}}
@keyframes sf-relief{0%,44%,88%,to{transform:scaleY(1)}22%,66%{transform:scaleY(.12)}}
@keyframes twitch{0%,82%,to{transform:none}86%{transform:translate(1px,-4px) rotate(5deg)}90%{transform:translate(-2px,2px) rotate(-4deg)}94%{transform:translate(1px,-1px) rotate(3deg)}}
@keyframes sf-tear-well{0%{transform:scale(.55)}70%{transform:scale(1.06)}to{transform:scale(1)}}
@keyframes sf-tear-hang{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes sf-tear-fall{0%{opacity:1;transform:translateY(0) scaleY(1)}14%{opacity:1;transform:translateY(7px) scaleY(1.1)}to{opacity:1;visibility:hidden;transform:translateY(520px) scaleY(1.45)}}
.sf__hint{font-family:var(--f-cond);font-stretch:75%;font-weight:500;font-size:clamp(1.05rem,2vw,1.5rem);letter-spacing:.12em;text-transform:uppercase;margin-bottom:clamp(1.5rem,3vw,2.25rem)}
.sf__list{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(1.25rem,3vw,2rem) clamp(1.5rem,3.5vw,3rem);width:100%}
.sf__q{position:relative;flex:0 1 270px;display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:.75rem .5rem;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:background .2s ease}
.sf__q:hover{background:#3a2b530d}
.sf__q input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.sf__mark{display:grid;place-items:center;width:34px;height:34px;border:3px solid var(--plum);color:transparent;transition:background .18s ease,color .18s ease,transform .18s var(--ease-out)}
.sf__mark svg{width:80%;height:80%}
.sf__mark path{stroke-dasharray:24 24}
.sf__q:hover .sf__mark{transform:scale(1.04)}
.sf__q:has(input:checked) .sf__mark{background:var(--plum);color:var(--lime);animation:sf-tile-pop .26s var(--ease-out)}
.sf__q:has(input:checked) .sf__mark path{animation:sf-check-draw .24s cubic-bezier(.2,.7,.3,1) 70ms backwards}
.sf__q:has(input:focus-visible){outline:2px solid var(--plum);outline-offset:-2px}
.sf__mark--demo{animation:sf-demo-tick 1.6s ease 1}
.sf__mark--demo path{animation:sf-check-draw .24s cubic-bezier(.2,.7,.3,1) .26s backwards}
@keyframes sf-tile-pop{35%{transform:scale(.92,.88)}70%{transform:scale(1.06,1.04)}}
@keyframes sf-check-draw{0%{stroke-dashoffset:24}}
@keyframes sf-demo-tick{0%,12%{background:transparent;color:transparent}24%,76%{background:var(--plum);color:var(--lime)}92%,to{background:transparent;color:transparent}}
.sf__q-t{font-weight:700;font-size:1rem;line-height:1.3}
.sf__q-b{font-size:.95rem;line-height:1.4;color:var(--plum-3)}
.sf__close{margin-top:clamp(2.5rem,5vw,3.5rem);max-width:44rem;font-size:clamp(1.05rem,1.4vw,1.2rem);line-height:1.55;text-wrap:balance}
.sf__close strong{font-weight:700}

/* ===== HOW IT WORKS (demo act) ===== */
.demo-act{background:var(--ink);color:#fff;padding:clamp(4rem,9vh,6.5rem) clamp(var(--gut),6vw,6rem)}
.demo-act__inner{max-width:72rem;margin:0 auto}
.demo-act__head{display:flex;flex-direction:column;align-items:center;text-align:center;gap:clamp(1.5rem,3vw,2.25rem)}
.demo-act__title{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;font-size:clamp(2.4rem,6vw,5rem);text-wrap:balance}
.legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(.5rem,2vw,2.5rem)}
.legend li{transition:opacity .45s var(--ease-surface)}
.demo-act[data-beat] .legend li{opacity:.45}
.demo-act[data-beat="1"] .legend li[data-step="1"],.demo-act[data-beat="2"] .legend li[data-step="2"],.demo-act[data-beat="3"] .legend li[data-step="3"],.demo-act.is-done .legend li,.legend li:hover{opacity:1}
.legend button{display:inline-flex;align-items:center;gap:.7rem;padding:.4rem .5rem;background:none;border:0;cursor:pointer;color:#fff;font-family:var(--f-cond);font-stretch:75%;font-weight:500;text-transform:uppercase;letter-spacing:.08em;font-size:clamp(1rem,1.6vw,1.3rem)}
.legend .num{position:relative;display:grid;place-items:center;width:2.1rem;height:2.1rem;border:2px solid #fff;font-family:var(--f-body);font-size:.9rem;font-weight:600;letter-spacing:0}
.legend li[aria-current] .num,.demo-act.is-done .legend .num{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.legend button:active{transform:translateY(2px) scale(.97)}
.steps-copy{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,3vw,2.5rem);margin-top:clamp(1.5rem,3vw,2rem);text-align:left}
.steps-copy p{font-size:.98rem;line-height:1.5;color:#ffffffb8;transition:color .3s ease}
.steps-copy b{display:block;color:#fff;font-weight:600;margin-bottom:.2rem}
.demo-act[data-beat="1"] .steps-copy p:nth-child(1),.demo-act[data-beat="2"] .steps-copy p:nth-child(2),.demo-act[data-beat="3"] .steps-copy p:nth-child(3){color:#fff}
.dframe{margin-top:clamp(2rem,4vw,3rem);background:var(--wash);color:var(--ink);border-radius:18px;overflow:hidden;box-shadow:0 30px 80px #00000059}
.demo-act.is-playing .dframe{animation:demo-curtain .65s var(--ease-surface)}
@keyframes demo-curtain{0%{transform:translateY(8px)}}
.dbar{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;background:#fff;border-bottom:1px solid var(--line-2);font-size:.8rem;color:var(--ink-3)}
.dbar i{width:10px;height:10px;border-radius:50%;background:var(--line);display:block}
.dbar .url{margin-left:.75rem;padding:.3rem .8rem;background:var(--wash);border-radius:6px}
.dbody{display:grid;grid-template-columns:200px 1fr;min-height:380px}
.dside{background:var(--plum);color:#fff;padding:1.1rem .9rem;display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}
.dside .logo{font-size:1.1rem;margin-bottom:1rem;color:#fff}
.dside .logo svg{height:1.15rem}
.dside span{padding:.45rem .6rem;border-radius:8px;color:#ffffffb0}
.dside span.on{background:#ffffff1f;color:#fff;font-weight:600}
.dmain{position:relative;padding:1.4rem 1.6rem}
.pane{position:absolute;inset:1.4rem 1.6rem;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease;pointer-events:none}
.pane.is-on{opacity:1;transform:none;pointer-events:auto}
.pane h4{margin:0 0 .25rem;font-size:1.05rem;font-weight:600}
.pane .psub{font-size:.85rem;color:var(--ink-3);margin-bottom:1.1rem}
.irow{display:flex;align-items:center;gap:.9rem;padding:.85rem 1rem;background:#fff;border:1px solid var(--line-2);border-radius:12px;margin-bottom:.6rem}
.irow .ic{width:2.2rem;height:2.2rem;border-radius:9px;display:grid;place-items:center;font-weight:700;font-size:.8rem;background:var(--tag-lilac);color:var(--tag-lilac-fg);flex:none}
.irow .nm{flex:1;min-width:0}
.irow .nm b{display:block;font-weight:600;font-size:.92rem}
.irow .nm small{font-size:.78rem;color:var(--ink-3)}
.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap}
.pill--lime{background:var(--tag-lime);color:var(--tag-lime-fg)}
.pill--lilac{background:var(--tag-lilac);color:var(--tag-lilac-fg)}
.pill--peach{background:var(--tag-peach);color:var(--tag-peach-fg)}
.pill--red{background:var(--tag-red);color:var(--tag-red-fg)}
.pill--grey{background:#F0EEF3;color:var(--ink-3)}
.cbtn{padding:.4rem .85rem;border-radius:8px;background:var(--ink);color:#fff;font-size:.75rem;font-weight:600;transition:transform .14s ease}
.cbtn.is-pressed{transform:scale(.94,.88)}
.irow .state{display:inline-grid}
.irow .state>*{grid-area:1/1;transition:opacity .25s ease}
.irow .state .pill{opacity:0}
.irow.is-on .state .cbtn{opacity:0}
.irow.is-on .state .pill{opacity:1}
.chk{width:12px;height:12px}
.chk path{stroke-dasharray:24;stroke-dashoffset:0}
.irow.is-on .chk path{animation:sf-check-draw .3s ease .1s backwards}
.find{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.8rem;padding:.8rem 1rem;background:#fff;border:1px solid var(--line-2);border-radius:12px;margin-bottom:.6rem;opacity:0;transform:translateY(6px);transition:opacity .28s ease,transform .28s ease}
.find.is-in{opacity:1;transform:none}
.find .t{font-size:.9rem;font-weight:500}
.find .t small{display:block;font-size:.76rem;color:var(--ink-3);font-weight:400}
.find .to{opacity:0;transition:opacity .3s ease}
.find.is-task .to{opacity:1}
.ready{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:center;padding:1.1rem 1.2rem;background:#fff;border:1px solid var(--line-2);border-radius:14px}
.ring{width:96px;height:96px}
.ring circle{fill:none;stroke-width:9}
.ring .bg{stroke:var(--wash)}
.ring .fg{stroke:var(--plum);stroke-linecap:round;stroke-dasharray:251.3;stroke-dashoffset:251.3;transform:rotate(-90deg);transform-origin:center;transition:stroke-dashoffset 1.2s var(--ease-out)}
.ready.is-in .ring .fg{stroke-dashoffset:calc(251.3 * (1 - .72))}
.ready b{font-size:1.6rem;font-weight:700;font-variant-numeric:tabular-nums}
.ready small{display:block;color:var(--ink-3);font-size:.8rem}
.share{display:grid;grid-template-columns:1fr 1fr;gap:.6rem;margin-top:.8rem}
.share .card{padding:.9rem 1rem;background:#fff;border:1px solid var(--line-2);border-radius:12px;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}
.share .card.is-in{opacity:1;transform:none}
.share .card b{display:block;font-size:.9rem;font-weight:600;margin:.4rem 0 .2rem}
.share .card small{font-size:.78rem;color:var(--ink-3)}
.dreplay{display:flex;justify-content:center;margin-top:1.25rem}
.dreplay button{background:none;border:0;color:#ffffff99;cursor:pointer;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;opacity:0;transition:opacity .3s ease,color .16s ease}
.demo-act.is-done .dreplay button{opacity:1}
.dreplay button:hover{color:#fff}

/* ===== FEATURE SECTIONS ===== */
.mj,.fs{position:relative;overflow:hidden;background:#fff;color:var(--ink)}
.mj__inner,.fs__inner{max-width:72rem;margin:0 auto;padding:clamp(3.5rem,7vw,6rem) var(--gut) clamp(2.5rem,6vw,5rem)}
.fs--loose .fs__inner{padding-bottom:clamp(4.5rem,10vw,8rem)}
.f-head{display:grid;grid-template-columns:1fr;gap:clamp(1.25rem,3vw,2.5rem) clamp(2rem,5vw,5rem)}
.f-title{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.94;letter-spacing:-.01em;font-size:clamp(2.25rem,6vw,5.25rem);text-wrap:balance}
.f-label{margin-bottom:clamp(.75rem,1.6vw,1.1rem);color:var(--ink-3)}
.f-lead{font-size:var(--fs-lead);line-height:1.4;letter-spacing:-.005em;max-width:44ch}
.f-body{margin-top:1rem;font-size:var(--fs-body);line-height:1.5;color:var(--ink-2);max-width:48ch}
.bullets{list-style:none;margin:clamp(1.5rem,3vw,2rem) 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.bullets li{position:relative;padding-left:22px;font-size:var(--fs-caption);font-weight:500;text-transform:uppercase;letter-spacing:.12em;line-height:1.5}
.bullets li:before{content:"\2731";position:absolute;left:0;top:0;font-size:.85em;line-height:1.8;color:var(--plum-3)}
.art{position:relative;margin-top:clamp(2.5rem,6vw,4.5rem)}
.art:after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(to bottom,#fff0,#fff);pointer-events:none;z-index:2}
@media (min-width:56em){
  .f-head--split{grid-template-columns:minmax(0,2fr) minmax(0,1fr);align-items:start}
  .fs--side .fs__inner{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(2.5rem,5vw,5rem);align-items:start}
  .fs--side.fs--left .fs__inner{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
  .fs--side.fs--left .f-head{grid-column:2;grid-row:1}
  .fs--side.fs--left .art{grid-column:1;grid-row:1}
  .fs--side .art{margin-top:0}
  .fs--side .f-title{font-size:clamp(2.5rem,5.4vw,5rem)}
}
/* roster */
.roster-wrap{position:relative;overflow:hidden;border-radius:16px 16px 0 0;aspect-ratio:2.25/1;border:1px solid var(--line-2);border-bottom:0}
.roster{position:absolute;inset:0;display:grid;grid-template-columns:230px 1fr;background:#fff;font-size:15px}
.roster__side{background:#fff;padding:30px 22px;border-right:1px solid var(--line-2);display:flex;flex-direction:column}
.roster__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);padding-left:4px}
.roster__list{position:relative;margin-top:20px;display:flex;flex-direction:column}
.roster__pill{position:absolute;top:0;left:-8px;right:-8px;height:38px;border-radius:9px;background:var(--wash);box-shadow:inset 0 0 0 1px var(--line);transition:transform .28s var(--ease-out)}
.roster__row{position:relative;height:38px;display:flex;align-items:center;gap:9px;padding:0 4px;cursor:pointer;color:var(--ink-3);border:0;background:none;text-align:left;font-size:15px}
.roster__row[data-active=true]{color:var(--ink);font-weight:700}
.roster__row .cnt{margin-left:auto;font-variant-numeric:tabular-nums;font-weight:400;color:var(--ink-3)}
.dot{width:8px;height:8px;border-radius:50%;flex:none}
.dot--dpdpa{background:#9bc43a}.dot--iso{background:var(--peri)}.dot--soc{background:#e2a64a}
.roster__more{margin-top:18px;padding:0 4px;font-size:14px;color:var(--ink-3)}
.roster__panel{position:relative;background:var(--wash);overflow:hidden}
.roster__view{position:absolute;inset:0;padding:34px 40px;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .22s ease-out,transform .22s ease-out}
.roster__view[data-active=true]{opacity:1;transform:none}
.roster__phead{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);margin-bottom:22px}
.roster__tasks{display:flex;flex-direction:column;gap:20px}
.rtask{display:flex;gap:14px;align-items:flex-start;opacity:1}
.roster__view.is-in .rtask{opacity:0;transform:translateY(4px)}
.roster__view.is-in .rtask.is-shown{opacity:1;transform:none;transition:opacity .2s ease-out,transform .2s ease-out}
.rcheck{width:19px;height:19px;border:1.6px solid var(--line);border-radius:5px;flex:none;margin-top:2px;background:#fff}
.rtext{font-size:17px;font-weight:500;line-height:1.4;margin-bottom:6px}
.rmeta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:12.5px;color:var(--ink-3);align-items:center}
.rmeta .own{display:inline-flex;align-items:center;gap:.35rem;padding:2px 8px;border:1px solid var(--line-2);border-radius:7px;background:#fff;color:var(--ink-2)}
.roster-wrap:after{content:"";position:absolute;left:0;right:0;bottom:0;height:110px;background:linear-gradient(to bottom,#fff0,#fff);z-index:2;pointer-events:none}
@media (max-width:55.99em){
  .roster-wrap{aspect-ratio:auto;height:clamp(440px,118vw,560px)}
  .roster{grid-template-columns:38% 1fr}
  .roster__side{padding:22px 14px}
  .roster__row .cnt{display:none}
  .roster__view{padding:22px 16px}
  .rtask:nth-child(n+4){display:none}
  .rtext{font-size:14px}
}
/* policy doc */
.doc{max-width:760px;margin:0 auto;background:var(--wash);border:1px solid var(--line-2);border-bottom:0;border-radius:18px 18px 0 0;padding:28px 32px 110px}
.doc__top{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;justify-content:space-between}
.doc__top b{font-size:17px;font-weight:600}
.doc__top small{display:block;font-size:12.5px;color:var(--ink-3);font-weight:400;margin-top:2px}
.band{display:flex;gap:6px;margin:22px 0 24px;flex-wrap:wrap}
.band span{flex:1 1 0;min-width:84px;padding:.55rem .6rem;border-radius:8px;background:#fff;border:1px solid var(--line-2);font-size:12px;font-weight:600;color:var(--ink-3);text-align:center;transition:background .3s ease,color .3s ease,border-color .3s ease}
.band span.is-done{background:var(--tag-lilac);color:var(--tag-lilac-fg);border-color:transparent}
.band span.is-now{background:var(--lime);color:var(--ink);border-color:transparent}
.doc__grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.doc__card{background:#fff;border:1px solid var(--line-2);border-radius:12px;padding:14px 16px}
.doc__card .k{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.doc__card .v{margin-top:6px;font-size:14.5px;font-weight:500}
.doc__card .v small{display:block;color:var(--ink-3);font-weight:400;font-size:12.5px}
.ack{grid-column:1/-1}
.ack__bar{margin-top:10px;height:8px;border-radius:99px;background:var(--wash);overflow:hidden}
.ack__bar i{display:block;height:100%;width:0;background:var(--plum);border-radius:inherit;transition:width 1.3s var(--ease-out)}
.ack .v{font-variant-numeric:tabular-nums}
@media (max-width:55.99em){.doc{padding:20px 18px 96px}.doc__grid{grid-template-columns:1fr}}
/* risk notification */
.ns{padding-bottom:56px}
.ns__stack{max-width:600px;margin-left:auto}
.ns__slot{display:flex;justify-content:flex-end;margin-bottom:-10px;position:relative;z-index:3;padding-right:18px}
.ns__notif{display:flex;align-items:center;gap:13px;padding:13px 22px 13px 14px;background:#fff;border:1px solid var(--line-2);border-radius:14px;box-shadow:0 6px 22px #1e163017;opacity:0;transform:translateY(-16px);transition:opacity .26s ease,transform .46s cubic-bezier(.34,1.45,.5,1)}
.ns__notif.is-in{opacity:1;transform:none}
.ns__icon{width:42px;height:42px;border-radius:11px;background:var(--plum);display:grid;place-items:center;flex:none}
.ns__icon svg{width:24px;height:auto}
.ns__nt b{display:block;font-size:15px;font-weight:600}
.ns__nt small{font-size:13px;color:var(--ink-3)}
.ns__card{position:relative;z-index:2;padding:22px 24px 20px 26px;background:#fff;border:1px solid var(--line-2);border-radius:14px;box-shadow:0 1px 2px #1e163008;transition:background .26s ease}
.ns__card[data-state=due]{background:#fbfaf3}
.ns__card.is-hot{animation:nsBrace .36s var(--ease-out)}
@keyframes nsBrace{30%{transform:translateY(1.5px) scale(.99)}70%{transform:translateY(-.5px) scale(1.003)}}
.ns__row{display:flex;align-items:center;gap:13px}
.ns__text{flex:1;min-width:0;font-size:17px;font-weight:500;line-height:1.3}
.ns__score{display:flex;gap:6px;margin:12px 0 0 32px;flex-wrap:wrap}
.ns__meta{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin:12px 0 0 32px;font-size:13px}
.ns__state{display:inline-grid}
.ns__state>*{grid-area:1/1;display:inline-flex;align-items:center;gap:12px;white-space:nowrap;transition:opacity .26s ease}
.ns__due{opacity:0}
.ns__card[data-state=due] .ns__set{opacity:0}
.ns__card[data-state=due] .ns__due{opacity:1}
.ns__set{color:var(--ink-3)}
.ns__act{font-weight:600;color:var(--ink-2)}
/* audit share flow */
.tj{background:var(--wash);border-radius:18px 18px 0 0;padding:24px 24px 110px;border:1px solid var(--line-2);border-bottom:0}
.tj__pills{display:flex;align-items:center;gap:12px}
.tj__pill{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 15px 0 12px;border:0;border-radius:999px;background:var(--plum);color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:transform .18s ease,background .18s ease}
.tj__pill:hover{background:var(--ink)}
.tj__pill.is-pressed{transform:scale(.95,.9)}
.tj__replay{border:0;background:none;color:var(--ink-3);font-size:12px;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s ease}
.tj__replay.is-in{opacity:1;pointer-events:auto}
.tj__card{position:relative;margin-top:14px;background:#fff;border:1px solid var(--line-2);border-radius:13px;overflow:hidden;min-height:250px;opacity:0;transform:translateY(6px);transition:opacity .3s ease,transform .3s ease}
.tj:not([data-state=idle]) .tj__card{opacity:1;transform:none}
.tj__st{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .24s ease}
.tj__st.is-on{opacity:1;pointer-events:auto;transition-delay:.11s}
.tj__think{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink-3);font-size:14px;font-weight:500}
.tj__dots{display:inline-flex;gap:5px}
.tj__dots i{width:5px;height:5px;border-radius:50%;background:var(--peri);animation:tjThink 1.1s ease-in-out infinite}
.tj__dots i:nth-child(2){animation-delay:.15s}.tj__dots i:nth-child(3){animation-delay:.3s}
@keyframes tjThink{0%,to{transform:none;opacity:.55}35%{transform:translateY(-3px);opacity:1}}
.tj__head{padding:13px 18px 11px;border-bottom:1px solid var(--line-2)}
.tj__head b{font-size:14px;font-weight:600}
.tj__head small{display:block;font-size:12px;color:var(--ink-3)}
.tj__row{display:flex;align-items:center;gap:10px;padding:11px 18px;border-bottom:1px solid var(--line-2);font-size:14px;opacity:0;transform:translateY(4px);transition:opacity .22s ease,transform .22s ease}
.tj__row.is-in{opacity:1;transform:none}
.tj__row span{flex:1;min-width:0}
.tj__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px;font-size:12px;color:var(--ink-3)}
.tj__add{display:inline-grid;padding:.42rem .9rem;border-radius:8px;background:var(--ink);color:#fff;font-weight:600;font-size:12px;transition:transform .14s ease,background .2s ease,color .2s ease}
.tj__add>*{grid-area:1/1;transition:opacity .2s ease}
.tj__add .done{opacity:0}
.tj__add.is-done{background:var(--lime);color:var(--ink)}
.tj__add.is-done .lab{opacity:0}.tj__add.is-done .done{opacity:1}
.tj__add.is-pressed{transform:scale(.94,.88)}

/* ===== FRAMEWORKS (poster) ===== */
.tm{background:var(--plum);color:#fff;padding-block:clamp(4rem,9vw,7.5rem)}
.tm__inner{max-width:72rem;margin:0 auto;padding-inline:var(--gut)}
.tm__title{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.94;font-size:clamp(2rem,4.6vw,3.75rem);max-width:20ch;text-wrap:balance;margin-bottom:clamp(3rem,6vw,5rem)}
.tm__grid{border-top:1px solid #ffffff40}
.fw{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);align-items:center;gap:1rem clamp(2rem,5vw,4rem);padding-block:clamp(1.25rem,2.5vw,2rem);border-bottom:1px solid #ffffff40}
.fw__name{margin:0;font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.9;letter-spacing:-.02em;font-size:clamp(3.5rem,1.5rem + 7vw,8rem);transition:color .26s ease}
.fw:hover .fw__name{color:var(--lime)}
.fw__meta{display:flex;flex-direction:column;gap:.5rem;font-size:.98rem;line-height:1.45;color:#ffffffc7}
.fw__meta .pill{align-self:flex-start}
.fw__head{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2rem);min-width:0}
.fw__seal{flex:none;width:clamp(3.5rem,1.4rem + 5vw,6.75rem);height:auto;transition:transform .6s cubic-bezier(.34,1.45,.5,1)}
.fw:hover .fw__seal{transform:rotate(-14deg) scale(1.04)}
.tm__more{margin-top:clamp(3rem,6vw,4.5rem);max-width:40rem}
.tm__line{font-size:var(--fs-lead);line-height:1.4}
html.js .tm[data-armed] :is(.fw__name,.fw__meta){opacity:0;transform:translateY(-16px)}
html.js .tm[data-armed] .fw__seal{opacity:0;transform:scale(.6) rotate(-40deg)}
html.js .tm[data-armed] .fw__seal.is-in{opacity:1;transform:none;transition:opacity .45s ease var(--d,0ms),transform .7s cubic-bezier(.34,1.45,.5,1) var(--d,0ms)}
html.js .tm[data-armed] .fw:hover .fw__seal.is-in{transform:rotate(-14deg) scale(1.04);transition-delay:0ms}
html.js .tm[data-armed] :is(.fw__name,.fw__meta).is-in{opacity:1;transform:none;transition:opacity .45s ease var(--d,0ms),transform .55s cubic-bezier(.34,1.45,.5,1) var(--d,0ms),color .26s ease}
@media (max-width:63.99em){
  .fw{grid-template-columns:1fr}
  .tm__more{grid-template-columns:1fr}
}

/* ===== SOLUTIONS ===== */
.sol{background:#fff}
.sol__inner{max-width:72rem;margin:0 auto;padding:clamp(4rem,8vw,7rem) var(--gut)}
.sol__grid{margin-top:clamp(2.5rem,5vw,4rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:2px solid var(--ink)}
.sol__card{display:flex;flex-direction:column;padding:clamp(1.5rem,2.5vw,2rem) clamp(1rem,2vw,1.75rem) .5rem 0;min-width:0}
.sol__card+.sol__card{padding-left:clamp(1rem,2vw,1.75rem);border-left:1px solid var(--line)}
.sol__size{display:inline-flex;align-self:flex-start;padding:.35rem .7rem;background:var(--lime);margin-bottom:1.25rem}
.sol__card:nth-child(2) .sol__size{background:var(--peri)}
.sol__card:nth-child(3) .sol__size{background:var(--plum);color:#fff}
.sol__h{font-family:var(--f-display);font-weight:800;font-stretch:68%;text-transform:uppercase;line-height:.96;font-size:clamp(1.75rem,2.8vw,2.6rem);text-wrap:balance;margin-bottom:1rem}
.sol__p{font-size:var(--fs-body);line-height:1.55;color:var(--ink-2);flex:1}
@media (max-width:55.99em){
  .sol__grid{grid-template-columns:1fr;border-top:0}
  .sol__card,.sol__card+.sol__card{padding:1.75rem 0 2rem;border-left:0;border-top:2px solid var(--ink)}
}

/* ===== INTEGRATIONS ===== */
.int{background:var(--wash)}
.int__inner{max-width:72rem;margin:0 auto;padding:clamp(4rem,8vw,6.5rem) var(--gut)}
.int__grid{margin-top:clamp(2rem,4vw,3rem);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.int__tile{background:#fff;border:1px solid var(--line-2);border-radius:14px;padding:1.25rem 1.25rem 1.4rem;display:flex;flex-direction:column;gap:.6rem;transition:transform .2s var(--ease-out),border-color .2s ease}
.int__tile:hover{transform:translateY(-3px);border-color:var(--line)}
.int__badge{width:2.6rem;height:2.6rem;border-radius:10px;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--plum);color:var(--lime)}
.int__tile:last-child .int__badge{background:var(--lime);color:var(--plum)}
.int__tile b{font-size:1.05rem;font-weight:600}
.int__tile p{font-size:.92rem;line-height:1.45;color:var(--ink-3)}
@media (max-width:63.99em){.int__grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:34em){.int__grid{grid-template-columns:1fr}}

/* ===== DESIGN PARTNERS (ticket stubs) ===== */
.gt{background:var(--peri);color:var(--ink);overflow:clip}
.gt__inner{max-width:72rem;margin:0 auto;padding:clamp(4.5rem,9vw,7rem) var(--gut) clamp(2rem,4vw,3.5rem);text-align:center}
.gt__h{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;font-size:clamp(2.6rem,7vw,6.5rem);text-wrap:balance;max-width:16ch;margin:0 auto}
.gt__sub{margin:clamp(1rem,2.5vw,1.6rem) auto 0;max-width:46ch;font-size:clamp(1rem,.8rem + .5vw,1.2rem);line-height:1.5;color:#1e1630d9;text-wrap:balance}
.gt__cta{margin-top:clamp(1.5rem,3vw,2.25rem)}
.ps{position:relative}
.ps__row{display:grid;grid-template-columns:repeat(4,1fr);height:clamp(18rem,28vw,26rem);perspective:1200px}
.ps__slot{position:relative}
.ps__slot:nth-child(n+5){display:none}
@media (min-width:44em){.ps__row{grid-template-columns:repeat(5,1fr)}.ps__slot:nth-child(5){display:block}}
@media (min-width:64em){.ps__row{grid-template-columns:repeat(7,1fr)}.ps__slot:nth-child(n+6){display:block}}
.ps__claimed{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:#fff;color:var(--ink);clip-path:polygon(0% 6px,12.5% 0px,25% 6px,37.5% 0px,50% 6px,62.5% 0px,75% 6px,87.5% 0px,100% 6px,100% 100%,0% 100%)}
.ps__claimed[hidden]{display:none}
.ps__claimed svg{width:30px;height:30px}
.ps__claimed path{stroke-dasharray:24 24}
.ps__claimed[data-fresh] path{animation:sf-check-draw .34s cubic-bezier(.2,.7,.3,1) .14s backwards}
.ps__claimed span{font-family:var(--f-cond);font-stretch:75%;font-weight:600;text-transform:uppercase;letter-spacing:.12em;font-size:.8125rem}
.ps__stub{position:relative;z-index:1;width:100%;height:100%;margin:0;padding:0;border:0;cursor:pointer;overflow:hidden;background:var(--peri);color:var(--ink);box-shadow:inset 1px 0 #1e16301f,inset -1px 0 #1e16301f,inset 0 1px #1e16301f;transform-origin:top center;transform:translateY(calc(var(--depress,0) * 12px)) rotateX(calc(var(--depress,0) * 1.2deg));filter:brightness(calc(1 - var(--depress,0) * .04))}
.ps__stub:hover{filter:brightness(.97)}
.ps__stub:before{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(to bottom,#1e163042 0 10px,transparent 10px 13px) left/1.5px 100% no-repeat}
.ps__label{position:absolute;left:0;right:0;bottom:var(--shift,1.5rem);display:flex;justify-content:center}
.ps__label span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.05rem,.7rem + 1.1vw,1.7rem);white-space:nowrap}
.ps__seat{position:absolute;top:14px;left:50%;transform:translateX(-50%);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#1e163099;white-space:nowrap}
.ps__stub.is-active .ps__label{animation:stub-float 2.4s ease-in-out infinite}
@keyframes stub-float{50%{transform:translateY(-10px)}}
.ps__partner{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.75rem;padding:1.25rem .5rem 1rem;background:#fff;color:var(--ink);box-shadow:inset -1px 0 #1e16301f;clip-path:polygon(0% 6px,12.5% 0px,25% 6px,37.5% 0px,50% 6px,62.5% 0px,75% 6px,87.5% 0px,100% 6px,100% 100%,0% 100%)}
.ps__plogo{display:grid;place-items:center;width:clamp(2.75rem,5.5vw,4.5rem);height:clamp(2.4rem,4.4vw,3.6rem)}
.ps__plogo svg{width:auto;height:100%}
.ps__plogo svg,.ps__plogo img{width:100%;height:auto;display:block}
.ps__pname{flex:1;display:flex;align-items:center;min-height:0}
.ps__pname span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.05rem,.7rem + 1.1vw,1.7rem);white-space:nowrap}
.ps__ptag{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}

.ps__done{height:clamp(18rem,28vw,26rem);display:flex;align-items:center;justify-content:center;padding-inline:24px;font-family:var(--f-cond);font-stretch:75%;font-weight:500;text-transform:uppercase;letter-spacing:.04em;font-size:clamp(1.5rem,1rem + 2vw,2.5rem);text-align:center}
.ps__done[hidden],.ps__row[hidden]{display:none}
html.js .ps[data-armed] .ps__slot{opacity:0;transform:translateY(40px)}
html.js .ps[data-printed] .ps__slot{opacity:1;transform:none;transition:opacity .42s var(--ease-out) calc(var(--i,0) * 60ms),transform .5s cubic-bezier(.34,1.35,.5,1) calc(var(--i,0) * 60ms)}

/* ===== PUBLICATIONS ===== */
.pub{background:#fff}
.pub__inner{max-width:72rem;margin:0 auto;padding:clamp(4rem,8vw,7rem) var(--gut)}
.pub__head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1.5rem}
.pub__grid{margin-top:clamp(2rem,4vw,3rem);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.post{display:flex;flex-direction:column;gap:.9rem;text-decoration:none;color:inherit;padding-top:1.1rem;border-top:2px solid var(--ink);min-width:0}
.post__tag{display:flex;gap:.4rem;flex-wrap:wrap}
.post__t{font-family:var(--f-display);font-weight:800;font-stretch:70%;text-transform:uppercase;line-height:1;font-size:clamp(1.5rem,2.2vw,2rem);text-wrap:balance;transition:color .2s ease}
.post:hover .post__t{color:var(--plum-3)}
.post__d{font-size:.98rem;line-height:1.5;color:var(--ink-2)}
.post__go{margin-top:auto;font-size:var(--fs-caption);font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.post__go span{display:inline-block;transition:transform .16s ease}
.post:hover .post__go span{transform:translateX(4px)}
@media (max-width:55.99em){.pub__grid{grid-template-columns:1fr;gap:2.25rem}}

/* ===== FAQ ===== */
.faq{background:var(--ink);color:#fff}
.faq__inner{max-width:72rem;margin:0 auto;padding:clamp(4.5rem,9vw,8rem) var(--gut)}
.faq__h{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;font-size:clamp(2.75rem,1.5rem + 5vw,6.25rem)}
.faq__h span{display:block}
.faq__label{margin:clamp(2.5rem,5vw,4rem) 0 .75rem;color:#ffffffad}
.faq__list{border-top:1px solid #fff}
.faq__item{border-bottom:1px solid #fff}
.faq__q{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding:1.25rem 0;cursor:pointer;list-style:none;font-weight:500;font-size:var(--fs-lead);line-height:1.25;transition:color .16s ease}
.faq__q::-webkit-details-marker{display:none}
.faq__q:hover{color:var(--lime)}
.faq__mark{flex:none;font-size:1.75rem;line-height:1;--rot:0deg;transform:rotate(var(--rot));transition:transform .3s cubic-bezier(.34,1.6,.64,1)}
.faq__item[open] .faq__mark{--rot:45deg}
.faq__mark.is-hop{animation:faq-hop .48s both}
@keyframes faq-hop{0%,to{transform:translateY(0) rotate(var(--rot))}40%{transform:translateY(-6px) rotate(var(--rot)) scale(.97,1.05)}72%{transform:rotate(var(--rot))}86%{transform:translateY(.5px) rotate(var(--rot)) scale(1.06,.94)}}
.faq__a{padding:0 0 1.4rem;max-width:60ch;font-size:var(--fs-body);line-height:1.6;color:#ffffffd1}
.faq__item[open] .faq__a{animation:faq-reveal .32s var(--ease-out) 40ms backwards}
@keyframes faq-reveal{0%{opacity:0;transform:translateY(.45rem)}70%{opacity:1;transform:translateY(-2px)}to{opacity:1;transform:none}}

/* ===== FINAL CTA ===== */
.fin{background:var(--lime);color:var(--plum);text-align:center}
.fin__inner{max-width:72rem;margin:0 auto;padding:clamp(5rem,10vw,8.5rem) var(--gut)}
.fin__h{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.86;letter-spacing:-.02em;font-size:clamp(3rem,9vw,8.5rem);text-wrap:balance}
.fin__h .ch{transform-origin:50% 100%}
.fin__h .w{display:inline-block;white-space:nowrap}
.fin__h .ch.is-hopping{animation:hs-letter-juggle .52s both}
@keyframes hs-letter-juggle{0%{transform:none;animation-timing-function:var(--ease-out)}42%{transform:translateY(-10px) scale(.97,1.04);animation-timing-function:var(--ease-in)}74%{transform:none;animation-timing-function:var(--ease-out)}86%{transform:translateY(1px) scale(1.05,.94)}to{transform:none}}
.fin__sub{margin:clamp(1.25rem,2.5vw,2rem) auto 0;max-width:40ch;font-size:clamp(1.05rem,1.5vw,1.3rem);line-height:1.5;color:var(--ink-2)}
.fin .btn{margin-top:clamp(1.75rem,3vw,2.5rem)}
.fin .btn--ink:hover{background:var(--plum);color:var(--lime)}

/* ===== FOOTER: band + panel ===== */
.ft{position:relative;isolation:isolate;background:var(--plum);color:var(--ink);padding:clamp(4.5rem,10vw,8rem) clamp(16px,4vw,3.5rem) clamp(16px,4vw,3.5rem);overflow:hidden}
.ft:before{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(70% 90% at 85% 10%,#5b4a78 0%,#3A2B53 55%,#2a1f3d 100%)}
.ft:after{content:"";position:absolute;inset:0;z-index:-1;opacity:.08;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px}
.ft__line{text-align:center;font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:.92;letter-spacing:-.01em;font-size:clamp(2.5rem,6vw,5rem);color:var(--lime);margin-bottom:clamp(3.5rem,8vw,6.5rem);text-wrap:balance}
.ft__panel{max-width:84rem;min-height:clamp(26rem,38vw,34rem);margin:0 auto;background:#fff;border-radius:16px;padding:clamp(2rem,4vw,3.5rem) clamp(1.5rem,4vw,3.75rem) clamp(1.5rem,2.5vw,2rem);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);grid-template-areas:"news links" "legal word";gap:clamp(2rem,4vw,3rem) clamp(2rem,5vw,5rem)}
.ft__news{grid-area:news;max-width:26rem}
.ft__news h2{font-family:var(--f-display);font-weight:700;font-stretch:75%;font-size:clamp(1.35rem,2vw,1.7rem);line-height:1.1;color:var(--plum)}
.ft__news p{margin-top:.4rem;font-size:.92rem;color:var(--ink-2)}
.ft__form{margin-top:1.4rem;display:flex;align-items:center;gap:.75rem;border-bottom:1.5px solid var(--plum);padding-bottom:.45rem}
.ft__form label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ft__form input{flex:1;min-width:0;border:0;background:none;font:inherit;font-size:.95rem;color:var(--ink);padding:.4rem 0}
.ft__form input::placeholder{color:var(--ink-3)}
.ft__form input:focus{outline:none}
.ft__form:focus-within{border-color:var(--ink)}
.ft__go{flex:none;display:grid;place-items:center;width:2.1rem;height:2.1rem;border-radius:50%;border:1.5px solid var(--plum);background:none;color:var(--plum);cursor:pointer;transition:background .16s ease,color .16s ease}
.ft__go:hover{background:var(--plum);color:var(--lime)}
.ft__fine{margin-top:.8rem;font-size:.75rem;line-height:1.5;color:var(--ink-3)}
.ft__links{grid-area:links;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;justify-self:end;width:min(100%,30rem)}
.ft__col b{display:block;font-size:.8rem;font-weight:600;color:var(--plum);margin-bottom:.6rem}
.ft__col a{display:block;padding:.18rem 0;font-size:.85rem;color:var(--ink-2);text-decoration:none;transition:color .16s ease}
.ft__col a:hover{color:var(--plum);text-decoration:underline;text-underline-offset:3px}
.ft__word{grid-area:word;align-self:end;justify-self:end;display:block;width:100%;max-width:44rem;height:auto;fill:var(--plum)}
.ft__legal{grid-area:legal;align-self:end;display:flex;flex-wrap:wrap;gap:.4rem 1.5rem;font-size:.75rem;color:var(--ink-3)}
.ft__legal a{color:inherit;text-decoration:none}
.ft__legal a:hover{color:var(--plum)}
@media (max-width:55.99em){
  .ft__panel{grid-template-columns:1fr;grid-template-areas:"news" "links" "word" "legal"}
  .ft__links{justify-self:start}
  .ft__word{justify-self:start}
}

/* ===== TOP BAR + CTA BAND ===== */
.tb{position:fixed;inset:0 0 auto;z-index:60;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem;padding:calc(.7rem + env(safe-area-inset-top,0px)) 3.5vw .7rem;background:#fff;border-bottom:1px solid var(--line-2);color:var(--plum);transform:translateY(-100%);visibility:hidden;transition:transform .32s var(--ease-out),visibility 0s linear .32s}
.tb.is-shown{transform:none;visibility:visible;transition:transform .4s cubic-bezier(.34,1.3,.5,1)}
.tb .chrome__nav{color:var(--ink)}
.tb__right{justify-self:end}
.tb .btn{padding:.75rem 1.2rem}
.ctab{position:fixed;inset:auto 0 0;z-index:50;display:flex;align-items:center;justify-content:center;gap:clamp(.9rem,3vw,2.25rem);padding:.55rem 1rem calc(.55rem + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--line-2);transform:translateY(100%);visibility:hidden;transition:transform .3s var(--ease-out),visibility 0s linear .3s}
.ctab.is-shown{transform:none;visibility:visible;transition:transform .4s cubic-bezier(.34,1.3,.5,1)}
.ctab__label{font-family:var(--f-cond);font-stretch:75%;font-weight:500;text-transform:uppercase;letter-spacing:.12em;font-size:.8rem;color:var(--ink)}
.ctab .btn{padding:.7rem 1.4rem}
@media (max-width:47.99em){.tb{grid-template-columns:1fr auto}.tb .chrome__nav{display:none}.ctab__label{display:none}}

/* ===== MODAL ===== */
.bm{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:0;border-radius:0;background:#fff;color:var(--ink);overflow:auto}
.bm::backdrop{background:#1e1630b3}
.bm[open]{animation:bm-in .38s var(--ease-out)}
@keyframes bm-in{0%{opacity:0;transform:translateY(14px) scale(.98)}}
.bm__inner{position:relative;padding:clamp(1.75rem,4vw,2.5rem)}
.bm__close{position:absolute;top:.85rem;right:.85rem;width:2.4rem;height:2.4rem;border:0;background:none;cursor:pointer;font-size:1.1rem;color:var(--ink-3)}
.bm__close:hover{color:var(--ink)}
.bm__title{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.9;font-size:clamp(2.2rem,6vw,3.2rem);color:var(--plum);margin-bottom:1.5rem;padding-right:2rem}
.bm__form{display:flex;flex-direction:column;gap:1.05rem}
.bm__row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.bm__field{display:flex;flex-direction:column;gap:.4rem;border:0;margin:0;padding:0;min-width:0}
.bm__label{font-size:var(--fs-caption);font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);display:flex;justify-content:space-between;padding:0}
.bm__label i{font-style:normal;text-transform:none;letter-spacing:0;color:var(--ink-3)}
.bm__input{width:100%;padding:.8rem .9rem;border:1px solid var(--line);border-radius:0;background:#fff;font:inherit;font-size:1rem;color:var(--ink);transition:border-color .16s ease,box-shadow .16s ease}
.bm__input:focus{outline:none;border-color:var(--plum);box-shadow:0 0 0 3px #3a2b5326}
.bm__input[aria-invalid=true]{border-color:#9B2C22}
textarea.bm__input{resize:vertical;min-height:4.5rem}
.bm__chips{display:flex;flex-wrap:wrap;gap:.5rem}
.bm__chip{position:relative;cursor:pointer}
.bm__chip input{position:absolute;opacity:0;width:1px;height:1px}
.bm__chip span{display:inline-block;padding:.5rem .85rem;border:1px solid var(--line);font-size:.9rem;transition:background .16s ease,border-color .16s ease,color .16s ease}
.bm__chip:hover span{background:var(--wash)}
.bm__chip input:checked+span{background:var(--plum);border-color:var(--plum);color:var(--lime)}
.bm__chip input:focus-visible+span{outline:2px solid var(--plum);outline-offset:2px}
.bm__err{font-size:.82rem;color:#9B2C22}
.bm__submit{display:flex;flex-direction:column;gap:.6rem;margin-top:.4rem}
.bm__submit .btn{justify-content:center;padding:1.1rem}
.bm__success{position:relative;text-align:center;padding:2.5rem 0 1rem}
.bm__success svg.stamp{width:64px;height:64px;margin:0 auto 1.25rem;display:block;animation:bm-stamp .5s cubic-bezier(.34,1.6,.5,1) .15s backwards}
@keyframes bm-stamp{0%{transform:scale(1.8) rotate(-12deg);opacity:0}}
.bm__success .bm__title{padding:0;margin-bottom:.75rem}
.bm__success p{color:var(--ink-2)}
.bm__note{margin-top:1rem;font-size:.78rem;color:var(--ink-3)}
.toss{position:absolute;left:50%;top:60px;width:0;height:0;pointer-events:none}
.toss__x{position:absolute;left:0;top:0;animation:toss-x var(--dur) linear var(--d) both}
.toss__p{display:block;animation:toss-y var(--dur) cubic-bezier(.3,0,.7,1) var(--d) both}
@keyframes toss-x{0%{transform:translateX(0)}to{transform:translateX(var(--dx))}}
@keyframes toss-y{0%{transform:translateY(0) rotate(0);opacity:1}45%{transform:translateY(var(--peak)) rotate(calc(var(--rot) * .5))}to{transform:translateY(160px) rotate(var(--rot));opacity:0}}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .hl .lt--bob{animation:none}
  html{scroll-behavior:auto}
}

/* ===== Phone refinements ===== */
.menu-btn{display:none;align-items:center;gap:.5rem;height:44px;padding:0 .95rem;border:1.5px solid currentColor;background:transparent;color:inherit;cursor:pointer;font-size:.8125rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase}
.menu-btn i{position:relative;display:block;width:16px;height:2px;background:currentColor}
.menu-btn i:before,.menu-btn i:after{content:"";position:absolute;left:0;width:16px;height:2px;background:currentColor;transition:transform .2s ease}
.menu-btn i:before{top:-5px}.menu-btn i:after{top:5px}
.mnav{position:fixed;inset:0;z-index:80;background:var(--plum);color:#fff;display:flex;flex-direction:column;padding:calc(1rem + env(safe-area-inset-top,0px)) var(--gut) calc(1.5rem + env(safe-area-inset-bottom,0px));overflow-y:auto}
.mnav[hidden]{display:none}
.mnav__top{display:flex;align-items:center;justify-content:space-between;min-height:48px}
.mnav__top .logo{color:#fff}
.mnav__close{width:48px;height:48px;border:0;background:none;color:#fff;font-size:1.4rem;cursor:pointer}
.mnav nav{display:flex;flex-direction:column;margin-top:1.5rem;border-top:1px solid #ffffff33}
.mnav nav a{display:block;padding:1rem 0;border-bottom:1px solid #ffffff33;color:#fff;text-decoration:none;font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;font-size:2rem;line-height:1}
.mnav nav a:active{color:var(--lime)}
.mnav__cta{display:flex;flex-direction:column;gap:.75rem;margin-top:auto;padding-top:2rem}
.mnav__cta .btn{justify-content:center;padding:1.1rem}
.mnav__contact{margin-top:1rem;font-size:.9rem;color:#ffffffb3;display:flex;flex-direction:column;gap:.35rem}
.mnav__contact a{color:#fff}
html.menu-open{overflow:hidden}
@media (max-width:47.99em){
  .menu-btn{display:inline-flex}
  .chrome .btn--login,.tb .tb__right .btn{display:none}
  .chrome__right,.tb__right{gap:.5rem}
}
@media (max-width:55.99em){
  .steps-copy{grid-template-columns:1fr;gap:1rem;text-align:left;max-width:30rem;margin-inline:auto}
  .dbody{grid-template-columns:1fr;min-height:440px}
  .dside{display:none}
  .dmain{padding:1.1rem}
  .pane{inset:1.1rem}
  .find{grid-template-columns:auto 1fr;row-gap:.5rem}
  .find .to{grid-column:2;justify-self:start}
  .irow .nm small{display:block}
  .share{grid-template-columns:1fr}
  .ready{grid-template-columns:auto 1fr;gap:1rem}
  .ring{width:76px;height:76px}
  .roster__row{white-space:nowrap;font-size:14px}
  .ns__meta{margin-left:0}
  .ns__score{margin-left:0}
  .ns__state>*{white-space:normal;flex-wrap:wrap;row-gap:.5rem}
  .ns__card{padding:18px}
  .tj{padding:18px 16px 96px}
  .tj__row{padding:11px 14px}
  .tj__foot{flex-wrap:wrap}
}
.ft__go{width:44px;height:44px}
.st-cta{text-decoration:none}

/* ===== Inner pages: articles and the publications index ===== */
.tb.is-static{position:sticky;top:0;transform:none;visibility:visible;transition:none}
.progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:70;background:var(--lime);transform-origin:0 50%;transform:scaleX(var(--p,0));pointer-events:none}

/* publications index */
.lib-head{background:var(--plum);color:#fff}
.lib-head__inner{max-width:72rem;margin:0 auto;padding:clamp(3.5rem,8vw,6.5rem) var(--gut) clamp(2.5rem,5vw,4rem)}
.lib-head .eyebrow{color:var(--lime)}
.lib-head h1{margin-top:1rem;font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.9;letter-spacing:-.015em;font-size:clamp(3rem,8vw,7rem);text-wrap:balance;max-width:14ch}
.lib-head p{margin-top:1.25rem;max-width:52ch;font-size:var(--fs-lead);line-height:1.45;color:#ffffffd1}
.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:clamp(2rem,4vw,2.75rem)}
.filters button{padding:.5rem .9rem;border:1px solid #ffffff59;background:none;color:#fff;cursor:pointer;font-size:.85rem;transition:background .16s ease,color .16s ease,border-color .16s ease}
.filters button:hover{border-color:#fff}
.filters button[aria-pressed=true]{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.lib{max-width:72rem;margin:0 auto;padding:clamp(3rem,6vw,5rem) var(--gut) clamp(4rem,8vw,6rem)}
.lib .pub__grid{margin-top:0;row-gap:clamp(2.5rem,4vw,3.5rem)}
.post__date{font-size:.8rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.post[hidden]{display:none}
.lib__empty{padding:2rem 0;color:var(--ink-3)}

/* article */
.ah{background:var(--lime);color:var(--plum)}
.ah__inner{max-width:60rem;margin:0 auto;padding:clamp(3rem,7vw,5.5rem) var(--gut) clamp(2.5rem,5vw,4rem)}
.ah__crumb{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--fs-caption);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--plum);text-decoration:none}
.ah__crumb:hover{text-decoration:underline;text-underline-offset:3px}
.ah__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:1.5rem;font-size:.9rem;color:var(--ink-2)}
.ah__meta .pill{background:var(--plum);color:var(--lime)}
.ah h1{margin-top:1rem;font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.92;letter-spacing:-.015em;font-size:clamp(2.4rem,5.6vw,4.75rem);text-wrap:balance}
.ah__stand{margin-top:1.25rem;max-width:44rem;font-size:clamp(1.1rem,1.6vw,1.3rem);line-height:1.5;color:var(--ink-2)}
.ah__by{display:flex;align-items:center;gap:.75rem;margin-top:1.75rem;font-size:.92rem;color:var(--ink-2)}
.ah__by b{color:var(--plum);font-weight:600}
.ah__avatar{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--plum);color:var(--lime);display:grid;place-items:center;font-weight:700;font-size:.85rem;flex:none}

.art{max-width:60rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) var(--gut) clamp(3rem,6vw,5rem)}
.prose{max-width:42rem}
.prose p,.prose li{font-size:1.125rem;line-height:1.75;color:var(--ink)}
.prose p+p{margin-top:1.15rem}
.prose h2{margin:2.75rem 0 1rem;font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:1;letter-spacing:-.005em;font-size:clamp(1.65rem,2.6vw,2.15rem);color:var(--plum);text-wrap:balance}
.prose ul,.prose ol{margin:1.15rem 0;padding-left:1.25rem;display:flex;flex-direction:column;gap:.5rem}
.prose a{color:var(--plum);text-decoration:underline;text-decoration-color:var(--peri);text-decoration-thickness:2px;text-underline-offset:3px;transition:text-decoration-color .16s ease}
.prose a:hover{text-decoration-color:var(--plum)}
.prose b,.prose strong{font-weight:600}
.prose blockquote{margin:1.5rem 0;padding-left:1.25rem;border-left:3px solid var(--lime)}
.art__faq{margin-top:3rem;max-width:42rem}
.art__faq h2,.art__refs h2,.related h2{font-family:var(--f-display);font-weight:800;font-stretch:66%;text-transform:uppercase;line-height:1;font-size:clamp(1.5rem,2.4vw,1.9rem);color:var(--plum);margin-bottom:1rem}
.qa{border-top:1px solid var(--line)}
.qa:last-child{border-bottom:1px solid var(--line)}
.qa summary{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1rem 0;cursor:pointer;list-style:none;font-weight:600;font-size:1.05rem;line-height:1.35}
.qa summary::-webkit-details-marker{display:none}
.qa summary:hover{color:var(--plum)}
.qa .faq__mark{font-weight:400}
.qa p{padding:0 0 1.1rem;font-size:1.02rem;line-height:1.65;color:var(--ink-2);max-width:60ch}
.qa[open] p{animation:faq-reveal .32s var(--ease-out) 40ms backwards}
.art__refs{margin-top:2.5rem;max-width:42rem}
.art__refs ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}
.art__refs a{font-size:.95rem;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.art__refs a:hover{color:var(--plum)}
.art__cta{margin-top:3.5rem;max-width:42rem;background:var(--plum);color:#fff;border-radius:14px;padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.25rem}
.art__cta p{font-family:var(--f-display);font-weight:800;font-stretch:68%;text-transform:uppercase;line-height:1;font-size:clamp(1.4rem,2.4vw,1.9rem);max-width:20ch}
.art__cta p em{font-style:normal;color:var(--lime)}
.related{background:var(--wash)}
.related__inner{max-width:72rem;margin:0 auto;padding:clamp(3rem,6vw,5rem) var(--gut)}
.related .pub__grid{margin-top:1.5rem}
.notfound{max-width:72rem;margin:0 auto;padding:clamp(5rem,12vw,9rem) var(--gut);min-height:50vh}
.notfound h1{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.9;font-size:clamp(3rem,9vw,7rem);color:var(--plum)}
.notfound p{margin:1.25rem 0 2rem;font-size:var(--fs-lead);color:var(--ink-2)}

/* breadcrumbs */
.crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin:0;padding:0;list-style:none;font-size:var(--fs-caption);font-weight:500;letter-spacing:.1em;text-transform:uppercase}
.crumbs li{display:inline-flex;align-items:center;gap:.5rem;min-width:0}
.crumbs li+li:before{content:"/";opacity:.5}
.crumbs a{color:inherit;text-decoration:none}
.crumbs a:hover{text-decoration:underline;text-underline-offset:3px}
.crumbs [aria-current]{opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60vw}
.lib-head .crumbs{color:#ffffffcc;margin-bottom:1.25rem}
.ah .crumbs{color:var(--plum)}

/* topic links on the publications page */
.filters a{display:inline-block;padding:.5rem .9rem;border:1px solid #ffffff59;color:#fff;text-decoration:none;font-size:.85rem;transition:background .16s ease,color .16s ease,border-color .16s ease}
.filters a:hover{border-color:#fff}
.filters a[aria-current]{background:var(--lime);border-color:var(--lime);color:var(--ink)}

/* article hero image */
.art__fig{margin:0 0 clamp(2rem,4vw,3rem);max-width:60rem}
.art__fig img{display:block;width:100%;height:auto;aspect-ratio:2/1;border-radius:14px;background:var(--plum)}
.art__updated{margin-top:.6rem;font-size:.85rem;color:var(--ink-3)}

/* legal, about, security */
.page-head{background:var(--plum);color:#fff}
.page-head__inner{max-width:72rem;margin:0 auto;padding:clamp(3.5rem,8vw,6rem) var(--gut) clamp(2.5rem,5vw,3.5rem)}
.page-head .crumbs{color:#ffffffcc;margin-bottom:1.25rem}
.page-head h1{font-family:var(--f-display);font-weight:900;font-stretch:62%;text-transform:uppercase;line-height:.9;letter-spacing:-.015em;font-size:clamp(2.8rem,8vw,6.5rem);text-wrap:balance;max-width:16ch}
.page-head p{margin-top:1rem;color:#ffffffb3;font-size:.95rem}
.legal{max-width:72rem;margin:0 auto;padding:clamp(2.5rem,6vw,4.5rem) var(--gut) clamp(4rem,8vw,6rem);display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:start}
.legal__toc{position:sticky;top:5.5rem;font-size:.9rem}
.legal__toc b{display:block;font-size:var(--fs-caption);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:.75rem}
.legal__toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.15rem;border-left:2px solid var(--line-2)}
.legal__toc a{display:block;padding:.3rem 0 .3rem .9rem;margin-left:-2px;border-left:2px solid transparent;color:var(--ink-2);text-decoration:none;line-height:1.35}
.legal__toc a:hover{color:var(--plum);border-left-color:var(--plum)}
.legal .prose{max-width:46rem}
.legal .prose h2{scroll-margin-top:5.5rem}
.legal__lead{font-size:clamp(1.1rem,1.5vw,1.25rem)!important;line-height:1.6!important;color:var(--ink-2)!important;margin-bottom:.5rem}
.legal__card{padding:1.1rem 1.25rem;background:var(--wash);border-left:3px solid var(--plum);border-radius:0 10px 10px 0}
.legal__table{margin:1.25rem 0;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line-2);border-radius:12px}
.legal__table:focus-visible{outline:2px solid var(--plum)}
.legal__table table{width:100%;min-width:640px;border-collapse:collapse;font-size:.95rem;line-height:1.5}
.legal__table th{background:var(--plum);color:#fff;text-align:left;font-weight:600;padding:.75rem .9rem}
.legal__table td{padding:.75rem .9rem;border-top:1px solid var(--line-2);vertical-align:top;color:var(--ink-2)}
.legal__table tr:nth-child(even) td{background:#faf9fc}
.founder{display:flex;gap:1.25rem;align-items:flex-start;margin:1.25rem 0;padding:1.25rem;background:var(--wash);border-radius:14px}
.founder__mark{flex:none;width:3.25rem;height:3.25rem;border-radius:50%;background:var(--plum);color:var(--lime);display:grid;place-items:center;font-weight:700}
.founder p{margin:0!important}
.founder p+p{margin-top:.5rem!important;font-size:1.02rem!important}
@media (max-width:55.99em){
  .legal{grid-template-columns:1fr}
  .legal__toc{position:static;padding:1rem 1.1rem;background:var(--wash);border-radius:12px}
  .legal__toc ol{border-left:0}
  .legal__toc a{padding-left:0;margin-left:0;border-left:0}
}
.ah__meta a.pill{text-decoration:none}.ah__meta a.pill:hover{background:var(--ink)}
.legal>*{min-width:0}
