/* BST site layer. Loaded after ui.css (base components). Type: Barlow Condensed for display, IBM Plex Sans for interface and text.
   Scales: space 4/8/12/16/24/32/48/72/112 · radius 2px · one 1px rule colour · red only for actions and brand marks. */
:root{--maxw:1380px;--r:2px;--acc-d:#8C0018;--rule:var(--line);
  --disp:"BST Display","Barlow Condensed","Arial Narrow",Arial,sans-serif;--body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
body{font-size:1rem;line-height:1.6}
h1,h2,h3{font-family:var(--disp)}
h1,h2{text-transform:uppercase;font-weight:800;letter-spacing:.005em;line-height:.92}
h1{font-size:clamp(3rem,7.5vw,6rem)}
h2{font-size:clamp(2.25rem,5vw,4rem)}
h3{font-weight:700;letter-spacing:.01em;font-size:1.375rem;line-height:1.1}
h4{font:600 .8125rem var(--body);letter-spacing:.08em;text-transform:uppercase}
.lead{font-size:1.125rem;line-height:1.55;color:var(--mut)}
.btn{border-radius:var(--r);min-height:44px;font:600 .875rem/1 var(--body);letter-spacing:.04em}.btn-sm{min-height:36px}.btn-lg{min-height:52px;padding:0 28px}
.btn-light{background:#fff;color:#050505;border-color:#fff}.btn-light:hover{background:#e9e9ec;color:#050505;border-color:#e9e9ec}
.btn-ghost-light{border-color:rgba(255,255,255,.6);color:#fff}.btn-ghost-light:hover{border-color:#fff;color:#fff}
.acc-t{color:var(--acc)}

/* header */
.hdr{border-bottom:1px solid var(--rule)}
.hdr-in{height:68px}
.nav{gap:30px}.nav a{height:68px;font:500 .875rem var(--body);letter-spacing:.02em;text-transform:none;color:var(--mut)}
.nav a[aria-current=page]{color:var(--tx)}.nav a[aria-current=page]::after{height:2px}
.nav a:hover{color:var(--tx)}

/* page head */
.ph{padding-block:clamp(48px,7vw,96px) clamp(32px,4vw,56px);border-bottom:1px solid var(--rule)}
.ph-in{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.7fr);gap:var(--s5) var(--s8);align-items:end}
.ph h1{max-width:none;margin:0}.ph .lead{margin:0 0 6px;font-size:1.0625rem}
@media(max-width:860px){.ph-in{grid-template-columns:1fr}}

/* ---------- HERO ---------- */
.hero{position:relative;padding-block:clamp(24px,4vw,56px) clamp(40px,5vw,72px);border-bottom:1px solid var(--rule);overflow:hidden}
.hero-grid{width:min(100% - 2*var(--gutter),1600px);margin-inline:auto;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:var(--s6) clamp(24px,4vw,72px);align-items:center;min-height:clamp(560px,calc(100svh - 150px),880px)}
.hero h1{margin:0 0 var(--s5);font-size:clamp(3.5rem,7.2vw,8rem);line-height:.88}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.07em}.hero h1 .ln>span{display:block}
.hero .lead{max-width:46ch;margin:0 0 var(--s6);color:#cfcfd4;font-size:clamp(1.0625rem,1.4vw,1.25rem)}
.hero-art{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(16px,2.4vw,36px);transform:perspective(1100px) translate3d(0,calc(var(--p,0)*36px),0) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) scale(calc(1 - var(--p,0)*.07));transform-origin:50% 40%;will-change:transform;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.crown{width:min(100%,clamp(300px,42vw,760px));height:auto;overflow:visible;transform-origin:50% 55%}
.word{width:clamp(130px,17vw,300px);height:auto}
.cut{position:absolute;left:-30%;right:-30%;top:34%;height:3px;background:var(--acc);transform-origin:left;transform:rotate(-16deg);pointer-events:none;opacity:0}
@media(max-width:900px){.hero-grid{grid-template-columns:1fr;min-height:0;gap:var(--s5)}.hero-art{order:-1;transform:none}.crown{width:min(74%,340px)}.word{width:clamp(110px,34vw,170px)}.hero h1{font-size:clamp(2.75rem,12vw,4.25rem)}}

/* Hero choreography. Initial states live only inside keyframes, so reduced motion, a repeat visit in the same session
   (.intro-done), or no CSS animation all show the finished composition. Timings follow the brief: 0-0.3 streak, 0.3-1.1 assembly,
   1.1-1.4 lock-in, 1.4-1.8 wordmark, 1.8-2.2 content. Mobile runs at 60% length. */
@media(prefers-reduced-motion:no-preference){
  .hero{--k:1}
  @media(max-width:700px){.hero{--k:.6}}
  html:not(.intro-done) .cut{animation:cut calc(.32s*var(--k)) cubic-bezier(.6,0,.2,1) both}
  html:not(.intro-done) .c-c{animation:pc calc(.5s*var(--k)) cubic-bezier(.25,.8,.3,1.12) calc(.12s*var(--k)) both}
  html:not(.intro-done) .c-l{animation:pl calc(.62s*var(--k)) cubic-bezier(.25,.8,.3,1.12) calc(.3s*var(--k)) both}
  html:not(.intro-done) .c-r{animation:pr calc(.62s*var(--k)) cubic-bezier(.25,.8,.3,1.12) calc(.38s*var(--k)) both}
  html:not(.intro-done) .c-red{animation:wipe calc(.4s*var(--k)) cubic-bezier(.7,0,.2,1) calc(.7s*var(--k)) both}
  html:not(.intro-done) .crown{animation:lock calc(.3s*var(--k)) cubic-bezier(.2,.9,.3,1) calc(1.1s*var(--k)) both}
  html:not(.intro-done) .c-rs{animation:rs calc(.3s*var(--k)) cubic-bezier(.2,.9,.3,1) calc(1.1s*var(--k)) both}
  html:not(.intro-done) .word{animation:cutin calc(.4s*var(--k)) cubic-bezier(.7,0,.2,1) calc(1.4s*var(--k)) both}
  html:not(.intro-done) .hero h1 .ln>span{animation:rise calc(.5s*var(--k)) cubic-bezier(.2,.8,.2,1) calc(1.8s*var(--k)) both}
  html:not(.intro-done) .hero h1 .ln:nth-child(2)>span{animation-delay:calc(1.9s*var(--k))}
  html:not(.intro-done) .hero .lead{animation:fade calc(.4s*var(--k)) ease-out calc(2.05s*var(--k)) both}
  html:not(.intro-done) .hero .actions{animation:fade calc(.4s*var(--k)) ease-out calc(2.15s*var(--k)) both}
}
@keyframes cut{0%{transform:rotate(-16deg) scaleX(0);opacity:1}70%{transform:rotate(-16deg) scaleX(1);opacity:1}100%{transform:rotate(-16deg) scaleX(1);opacity:0}}
@keyframes pc{0%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-70px)}15%{opacity:1}100%{opacity:1;clip-path:inset(0);transform:none}}
@keyframes pl{0%{opacity:0;transform:translateX(-190px)}14%{opacity:1}100%{opacity:1;transform:none}}
@keyframes pr{0%{opacity:0;transform:translateX(190px)}14%{opacity:1}100%{opacity:1;transform:none}}
@keyframes wipe{0%{opacity:1;clip-path:polygon(0 0,0 0,-35% 100%,-35% 100%)}100%{opacity:1;clip-path:polygon(0 0,140% 0,105% 100%,-35% 100%)}}
@keyframes lock{0%{transform:scale(1.045) translateX(5px)}55%{transform:scale(.992)}100%{transform:none}}
@keyframes rs{0%{transform:translateX(16px)}100%{transform:none}}
@keyframes cutin{0%{clip-path:polygon(0 0,0 0,-18% 100%,-18% 100%)}100%{clip-path:polygon(0 0,125% 0,105% 100%,0 100%)}}
@keyframes rise{0%{transform:translateY(105%)}100%{transform:none}}
@keyframes fade{0%{opacity:0;transform:translateY(8px)}100%{opacity:1;transform:none}}
.c-red{will-change:clip-path}
.c-l,.c-c,.c-r,.c-rs{transform-box:fill-box}

/* scroll reveals: different treatments per element type; applied only when intro.js added .js-r (JS on, motion allowed) */
.js-r .mk{display:block;overflow:hidden;padding-bottom:.08em}
.js-r .mk-in{display:block;transform:translateY(106%);transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.js-r [data-in] .mk-in{transform:none}
.js-r [data-r=wipe]{clip-path:inset(0 100% 0 0);transition:clip-path .8s cubic-bezier(.7,0,.2,1)}
.js-r [data-r=wipe][data-in]{clip-path:inset(0)}
.js-r [data-r=slide]{opacity:0;transform:translateX(-32px);transition:opacity .5s ease-out,transform .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--i,0)*.08s)}
.js-r [data-r=slide][data-in]{opacity:1;transform:none}
.js-r [data-r=rise]{clip-path:inset(100% 0 0 0);transition:clip-path 1s cubic-bezier(.7,0,.2,1)}
.js-r [data-r=rise][data-in]{clip-path:inset(0)}

/* ---------- home sections ---------- */
.section{padding-block:clamp(48px,6vw,96px)}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s7) var(--s8);align-items:start}
.statement{font-size:clamp(2.25rem,5vw,4.25rem);line-height:.95;max-width:12ch}
.cols p{color:#c8c8cd;max-width:54ch}
@media(max-width:860px){.about-grid{grid-template-columns:1fr}}

.proof{border-block:1px solid var(--rule);background:var(--bg2)}
.proof-in{display:grid;grid-template-columns:1fr 1fr minmax(0,1.1fr);align-items:stretch}
.fig{padding:clamp(32px,5vw,64px) clamp(16px,3vw,48px) clamp(32px,5vw,64px) 0;border-right:1px solid var(--rule);display:flex;flex-direction:column;justify-content:flex-end}
.fig+.fig{padding-left:clamp(16px,3vw,48px)}
.fig b{font:800 clamp(4rem,10vw,9rem)/.85 var(--disp);letter-spacing:-.01em;color:var(--tx)}
.fig span{margin-top:var(--s3);font:500 .9375rem var(--body);color:var(--mut)}
.proof .reported{margin:0;padding:clamp(32px,5vw,64px) 0 clamp(32px,5vw,64px) clamp(16px,3vw,48px);font-size:.875rem;max-width:42ch;align-self:end}
@media(max-width:860px){.proof-in{grid-template-columns:1fr 1fr}.fig{padding-right:16px}.proof .reported{grid-column:1/-1;padding:0 0 var(--s6);border-top:1px solid var(--rule);padding-top:var(--s5)}}

.svc{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--s6) var(--s8);align-items:start}
.svc-body>div{padding:var(--s5) 0 var(--s6);border-top:1px solid var(--rule)}.svc-body>div:last-child{border-bottom:1px solid var(--rule)}
.svc-body h3{font-size:1.75rem;margin-bottom:var(--s3)}.svc-body p{margin:0;color:#c8c8cd;max-width:56ch}
@media(max-width:860px){.svc{grid-template-columns:1fr}}

.steps-wrap{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--s7) var(--s8);align-items:start}
.steps-wrap .lead{margin:var(--s4) 0 var(--s6)}
.steps{list-style:none;margin:0;padding:0;counter-reset:s;border-top:1px solid var(--rule)}
.steps li{counter-increment:s;display:grid;grid-template-columns:56px minmax(0,1fr);column-gap:var(--s4);padding:var(--s5) 0;border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(s);grid-row:1/3;font:800 2.25rem/1 var(--disp);color:var(--acc)}
.steps b{font:700 1.375rem/1.2 var(--disp);letter-spacing:.01em}.steps span{color:var(--mut);margin-top:4px;max-width:58ch}
@media(max-width:860px){.steps-wrap{grid-template-columns:1fr}}

.rv-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.5fr);gap:var(--s5) var(--s8);align-items:end;margin-bottom:var(--s7)}
.rv-head h2{margin:0}.rv-head p{margin:0;font-size:.9375rem}
@media(max-width:760px){.rv-head{grid-template-columns:1fr}}
.rv{border-radius:var(--r);background:var(--card);border-color:var(--rule)}
.rv-empty{border-top:1px solid var(--rule);padding-top:var(--s5)}.rv-empty p{color:var(--mut);margin:0}

.plist{border-top:1px solid var(--rule)}
.pt{display:grid;grid-template-columns:72px minmax(0,1fr) auto;align-items:center;gap:var(--s5);padding:20px 0;background:none;border:0;border-bottom:1px solid var(--rule);text-decoration:none}
.pt:hover{background:none;color:var(--tx)}.pt:hover .ico{transform:translateX(4px)}
.pt-logo{height:48px;width:72px;display:flex;align-items:center}.pt-logo img{max-height:48px;max-width:72px;object-fit:contain}
.pt-body{display:flex;flex-direction:column;gap:2px;min-width:0}.pt-body b{font:700 1.375rem var(--disp)}.pt-body small{color:var(--mut);font-size:.875rem}
.pt .ico{transition:transform .15s}
.plist--page{max-width:860px}
.invite{max-width:640px}.invite h2{margin-bottom:var(--s4)}.invite p{color:var(--mut);font-size:1.125rem;margin-bottom:var(--s5)}
.empty-state{max-width:640px;padding-block:var(--s6)}
.aside-note{border-left:2px solid var(--acc);padding-left:var(--s5)}.aside-note p{color:var(--mut)}
.pt-logo--big{max-width:240px;margin-bottom:var(--s5)}.pt-logo--big img{max-width:100%}

.community{position:relative;background:var(--acc-d);overflow:hidden}
.community-in{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s6) var(--s7);align-items:end;padding-block:clamp(56px,8vw,104px)}
.community h2{margin:0 0 var(--s3);color:#fff}.community .lead{color:rgba(255,255,255,.88);margin:0;max-width:40ch}
.community-crown{position:absolute;right:-4%;top:50%;width:min(44%,440px);transform:translateY(-50%);opacity:.12;pointer-events:none;z-index:0}
.community-in>*:not(.community-crown){position:relative;z-index:1}
@media(max-width:760px){.community-in{grid-template-columns:1fr}.community-crown{width:70%;right:-20%}}


/* reviews: a featured review beside a grid on wide screens (all five visible), swipe carousel below that */
.rv{padding:clamp(22px,2.2vw,32px);gap:var(--s4)}
.rv blockquote p{font-size:1.0625rem;line-height:1.6;color:#e6e6ea}
.rv header b{font-size:1rem}.rv time{font-size:.875rem}.rv footer{font-size:.875rem}
@media(min-width:1100px){
  .rv-track{display:grid;grid-template-columns:1.25fr 1fr 1fr;grid-auto-rows:auto;gap:16px;overflow:visible;scroll-snap-type:none}
  .rv{flex:none;min-width:0}.rv:first-child{grid-row:1/3}.rv:first-child blockquote p{font-size:1.375rem;line-height:1.45;font-family:var(--disp);font-weight:600;letter-spacing:.005em}
  .rv-nav{display:none}
}

/* pricing */
.tbl-wrap--flat{border:0;background:none;border-top:2px solid var(--tx);border-radius:0}
.tbl--price th,.tbl--price td{padding:20px 16px;vertical-align:middle}
.tbl--price thead th{background:none;border-bottom:1px solid var(--rule);padding-block:14px}
.tbl--price tbody th{background:none;text-align:left;font:400 .9375rem var(--body);color:var(--mut)}.tbl--price tbody th b{font:800 2.5rem/1 var(--disp);color:var(--tx);margin-right:6px}
.tbl--price .num{text-align:right}.tbl--price td.num b{font:700 1.625rem var(--disp)}
.tbl--price .act{text-align:right;width:1%}
.tbl--price tbody tr:hover td,.tbl--price tbody tr:hover th{background:var(--card)}
.tbl--price .feat-row th:first-child{box-shadow:inset 3px 0 0 var(--acc)}
.status-off{color:var(--acc)}
.pricing-notes{margin-top:var(--s6);gap:var(--s5) var(--s8)}.pricing-notes .fine{margin:0}
.calc{border:0;border-top:1px solid var(--rule);border-radius:0;padding:var(--s5) 0 0;background:none}
@media(max-width:760px){.tbl--price thead{display:none}.tbl--price,.tbl--price tbody,.tbl--price tr,.tbl--price th,.tbl--price td{display:block}.tbl--price tr{display:grid;grid-template-columns:1fr auto;gap:4px 16px;padding:16px 0;border-bottom:1px solid var(--rule)}.tbl--price th,.tbl--price td{padding:0;border:0;white-space:normal}.tbl--price tbody th{grid-column:1}.tbl--price td.num{text-align:left}.tbl--price .act{grid-column:2;grid-row:1/4;align-self:center;width:auto}.tbl--price td:nth-child(2),.tbl--price td:nth-child(3),.tbl--price td:nth-child(4){color:var(--mut);font-size:.875rem}}

/* support, about, apply */
.routes{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.routes a{display:grid;gap:2px;padding:22px 40px 22px 0;border-bottom:1px solid var(--rule);text-decoration:none;position:relative}
.routes a::after{content:"→";position:absolute;right:4px;top:22px;color:var(--mut);transition:transform .15s,color .15s}
.routes a:hover::after{transform:translateX(4px);color:var(--acc)}.routes a:hover{color:var(--tx)}
.routes span{font:700 1.5rem var(--disp);letter-spacing:.01em}.routes small{color:var(--mut);font-size:.9375rem}
.about-page{display:grid;grid-template-columns:minmax(0,.4fr) minmax(0,1fr);gap:var(--s7) var(--s8);align-items:start}
.ledger{margin:0;border-top:2px solid var(--tx)}.ledger>div{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s4);padding:16px 0;border-bottom:1px solid var(--rule)}
.ledger dt{font:500 .875rem var(--body);color:var(--mut)}.ledger dd{margin:0;font:800 1.875rem var(--disp)}
.prose blockquote{background:none;border-left:2px solid var(--acc);padding:0 0 0 var(--s5);font:700 clamp(1.5rem,2.6vw,2rem)/1.15 var(--disp)}
.prose h2{font-size:1.875rem;text-transform:none;font-weight:700;line-height:1.05;letter-spacing:.005em}
@media(max-width:860px){.about-page{grid-template-columns:1fr}.about-page .sticky{position:static}}
.apply{max-width:900px}
.apply fieldset{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--s5) var(--s7);border:0;border-top:1px solid var(--rule);padding:var(--s6) 0;margin:0}
.apply legend{float:left;width:220px;padding:0;font:700 1.375rem var(--disp)}.apply legend span{display:block;font:600 .8125rem var(--body);color:var(--acc);margin-bottom:4px}
.apply .fs-body{margin-left:260px}.apply .fs-body>label:first-child{margin-top:0}
.apply-foot{border-top:1px solid var(--rule);padding-top:var(--s5);display:flex;gap:var(--s5);align-items:center;justify-content:space-between;flex-wrap:wrap}
@media(max-width:760px){.apply legend{float:none;width:auto;margin-bottom:var(--s3)}.apply .fs-body{margin-left:0}}

.form-card,.panel,.note,.dialog,.consent-in{border-radius:var(--r)}
input,textarea,select{border-radius:var(--r);background:var(--bg2);font-family:var(--body)}
.foot-in{grid-template-columns:1.6fr repeat(4,1fr)}
@media(max-width:900px){.foot-in{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}


/* navigation states */
.hdr{transition:background-color .2s,border-color .2s}
.hdr.is-top{background:transparent;border-bottom-color:transparent}
.nav a{transition:color .15s}
@media(max-width:900px){
  .nav{display:flex;visibility:hidden;opacity:0;transform:translateY(-8px);transition:opacity .18s,transform .18s,visibility 0s .18s}
  .nav.open{visibility:visible;opacity:1;transform:none;transition-delay:0s}
}
.btn{transition:background-color .15s,border-color .15s,color .15s,transform .15s}
.btn:hover{transform:translateY(-1px)}.btn:active{transform:none;background-color:var(--elev)}.btn-primary:active{background:var(--acc-d);border-color:var(--acc-d)}
.foot h4{font:600 .9375rem var(--body);letter-spacing:0;text-transform:none;color:var(--tx)}
.timeline .tn{font:800 2rem/1 var(--disp);letter-spacing:0;color:var(--acc)}


/* ---------- motion layer ---------- */
/* skip control: visible only while the first-visit sequence plays */
.skip-intro{display:none;position:absolute;top:14px;right:var(--gutter);z-index:5;min-height:36px;padding:0 14px;background:rgba(5,5,5,.7);color:var(--tx);border:1px solid var(--rule);border-radius:var(--r);font:500 .8125rem var(--body);cursor:pointer}
.skip-intro:hover{border-color:var(--tx)}
.js-r:not(.intro-done) .skip-intro{display:block;animation:skiphide 0s linear calc(2.4s*var(--k,1)) forwards}
@keyframes skiphide{to{opacity:0;visibility:hidden}}

/* gentle ongoing crown movement, only after the intro has had time to finish; small, slow, and removed for reduced motion */
@media(prefers-reduced-motion:no-preference){
  .crown{animation:float 7s ease-in-out 2.6s infinite alternate}
  html:not(.intro-done) .crown{animation:lock calc(.3s*var(--k,1)) cubic-bezier(.2,.9,.3,1) calc(1.1s*var(--k,1)) both,float 7s ease-in-out 3.4s infinite alternate}
  .c-rs{transform:translateX(var(--ax,0px));transition:transform .5s cubic-bezier(.2,.8,.2,1)}
  /* final impact: one quick red sweep across the crown after it locks in */
  html:not(.intro-done) .hero-art::after{content:"";position:absolute;left:8%;right:8%;top:38%;height:3px;background:var(--acc);transform-origin:left;transform:rotate(-8deg) scaleX(0);opacity:0;animation:sweep calc(.4s*var(--k,1)) cubic-bezier(.6,0,.2,1) calc(1.15s*var(--k,1)) both;pointer-events:none}
}
html.intro-done .crown{animation:float 7s ease-in-out .3s infinite alternate}
@keyframes float{from{translate:0 0}to{translate:0 -7px}}
@keyframes sweep{0%{transform:rotate(-8deg) scaleX(0);opacity:1}60%{transform:rotate(-8deg) scaleX(1);opacity:1}100%{transform:rotate(-8deg) scaleX(1);opacity:0}}

/* page transition wipe: black panel with a red leading edge */
.wipe{position:fixed;inset:0;z-index:90;background:var(--bg);border-left:6px solid var(--acc);transform:translateX(-102%) skewX(-8deg);pointer-events:none;visibility:hidden}
.wipe.out{visibility:visible;animation:wipein .24s cubic-bezier(.6,0,.2,1) both}
.t-in .wipe{visibility:visible;animation:wipeout .34s cubic-bezier(.6,0,.2,1) both}
@keyframes wipein{from{transform:translateX(-102%) skewX(-8deg)}to{transform:translateX(0) skewX(0)}}
@keyframes wipeout{from{transform:translateX(0) skewX(0)}to{transform:translateX(102%) skewX(8deg)}}

/* navigation: sliding indicator and hover underline */
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--acc);transform:scaleX(0);transform-origin:left;transition:transform .22s cubic-bezier(.2,.8,.2,1)}
.nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(.5)}
.nav a[aria-current=page]::after{transform:scaleX(1)}
@media(prefers-reduced-motion:no-preference){.nav a[aria-current=page]::after{animation:ind .45s cubic-bezier(.2,.8,.2,1) .1s both}@keyframes ind{from{transform:scaleX(0)}}}
.nav a:focus-visible{outline:2px solid var(--acc);outline-offset:-6px}
@media(max-width:900px){.nav a::after{display:none}}

/* buttons: directional icon movement, refined pressed state */
.btn .ico,.link-arrow .ico{transition:transform .18s cubic-bezier(.2,.8,.2,1)}
.btn:hover .ico{transform:translateX(3px)}
.btn:focus-visible{outline:2px solid var(--tx);outline-offset:3px}.btn-primary:focus-visible{outline-color:#fff}

/* footer crown: clip reveal when it enters the viewport */
.foot-crown{width:72px;height:auto;margin:var(--s5) 0 0;opacity:.9}

/* branded loader, used only while an account page is waiting for real data */
.crown-load{display:flex;justify-content:center;padding:var(--s5) 0}
.crown-load img{width:40px;height:auto;animation:cl 1s ease-in-out infinite alternate}
@keyframes cl{from{opacity:.25;clip-path:inset(100% 0 0 0)}to{opacity:1;clip-path:inset(0)}}
@media(prefers-reduced-motion:reduce){.crown-load img{animation:none}.wipe{display:none}}

/* cookie notice: a slim bar along the bottom edge so it never sits on top of the hero actions */
.consent{left:0;right:0;bottom:0;max-width:none}
.consent-in{display:flex;gap:var(--s5);align-items:center;justify-content:space-between;border-width:1px 0 0;border-radius:0;padding:12px var(--gutter)}
.consent-in h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.consent-in p{margin:0;max-width:90ch;font-size:.8125rem;line-height:1.4}
.consent-btns{flex:none}
@media(max-width:760px){.consent-in{flex-direction:column;align-items:stretch;gap:10px;padding-block:10px}.consent-btns .btn{flex:1;min-height:36px}.consent-in p{font-size:.75rem}}

/* menu opening and page transition: short, one property each */
.nav{transition:opacity .15s}
@media(prefers-reduced-motion:no-preference){main{animation:pagein .22s ease-out both}@keyframes pagein{from{opacity:.001}to{opacity:1}}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
