/* ASSAYA home page. Struck, not stored. */
@font-face{font-family:"Assaya Display";src:url(fonts/cormorant-500-600.woff2) format("woff2");font-weight:500 600;font-style:normal;font-display:swap}
@font-face{font-family:"Assaya Text";src:url(fonts/sourcesans3-400-600.woff2) format("woff2");font-weight:400 600;font-style:normal;font-display:swap}
@font-face{font-family:"Assaya Mono";src:url(fonts/spacemono-normal-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Assaya Mono";src:url(fonts/spacemono-normal-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}

:root{
	--ink-0:#000;--ink-1:#08090a;--ink-2:#111215;
	--platinum:#ececec;--silver:#cfcfcf;--steel:#8f8f8f;--body:#bdbec2;
	--hair-1:rgba(255,255,255,.12);--hair-2:rgba(255,255,255,.20);--hair-3:rgba(255,255,255,.34);
	--vermilion:#d8442b;--facet:#e28575;
	--ok:#3fae6a;--wip:#e08a2c;--bad:#d8442b;--out:#8f8f8f;
	--display:"Assaya Display","Cormorant Garamond",Georgia,serif;
	--mono:"Assaya Mono","Space Mono",ui-monospace,Consolas,monospace;
	--text:"Assaya Text","Source Sans 3","Segoe UI",system-ui,sans-serif;
	--frame:14px;--head:88px;--gut:clamp(16px,4vw,64px);--pad:calc(var(--frame) + var(--gut));--max:1600px;
	--press:cubic-bezier(.55,0,.75,.2);--settle:cubic-bezier(.2,.8,.2,1);
	color-scheme:dark;
}
@media (max-width:1023px){:root{--head:72px}}
@media (max-width:599px){:root{--head:64px;--frame:8px;--pad:20px}}
@media (min-width:2200px){:root{--max:1760px}}
@media (min-width:3000px){:root{--max:2000px}}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--head) + var(--frame) + 12px);background:#000}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:#000;color:var(--platinum);font:400 18px/1.6 var(--text);-webkit-font-smoothing:antialiased;
	font-variant-ligatures:none;font-variant-numeric:lining-nums tabular-nums;font-feature-settings:"lnum" 1,"tnum" 1,"liga" 0,"clig" 0,"dlig" 0;font-kerning:normal;overflow-x:clip}
@media (max-width:1023px){body{font-size:17px}}
@media (max-width:599px){body{font-size:16.5px}}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.05;
	background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='48'%3E%3Cdefs%3E%3Cpath id='w' d='M-120 24Q-90 -16 -60 24T0 24T60 24T120 24T180 24T240 24T300 24T360 24'/%3E%3C/defs%3E%3Cg fill='none' stroke='%23fff' stroke-width='.6'%3E%3Cuse href='%23w'/%3E%3Cuse href='%23w' x='20'/%3E%3Cuse href='%23w' x='40'/%3E%3Cuse href='%23w' x='60'/%3E%3Cuse href='%23w' x='80'/%3E%3Cuse href='%23w' x='100'/%3E%3C/g%3E%3C/svg%3E") 0 0/240px 48px repeat}
img,svg,canvas{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3,h4{margin:0;font-weight:500}
button,input{font:inherit;color:inherit}
ol,ul{list-style:none;margin:0;padding:0}
figure{margin:0}
:focus-visible{outline:2px solid var(--vermilion);outline-offset:3px}
[hidden]{display:none!important}
.defs{position:absolute;width:0;height:0;overflow:hidden}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:16px;top:-80px;z-index:100;display:inline-flex;align-items:center;min-height:44px;padding:0 18px;background:var(--platinum);color:#000;
	font:700 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.skip:focus{top:16px}
.wrap{max-width:var(--max);margin:0 auto}

/* ---------- the frame: a certificate edge at every width ---------- */
.frame{position:fixed;inset:var(--frame);border:1px solid var(--hair-1);pointer-events:none;z-index:60}
.frame i{position:absolute;width:34px;height:34px;border:0 solid var(--hair-3)}
.frame i:nth-child(1){left:-1px;top:-1px;border-left-width:2px;border-top-width:2px}
.frame i:nth-child(2){right:-1px;top:-1px;border-right-width:2px;border-top-width:2px}
.frame i:nth-child(3){left:-1px;bottom:-1px;border-left-width:2px;border-bottom-width:2px}
.frame i:nth-child(4){right:-1px;bottom:-1px;border-right-width:2px;border-bottom-width:2px}
@media (max-width:599px){.frame{border-color:rgba(255,255,255,.07)}.frame i{width:16px;height:16px}}
/* phones and small tablets: the bottom edge would cross the hero buttons and the phone bar, so the frame stays open at the foot */
@media (max-width:767px){.frame{border-bottom-color:transparent}.frame i:nth-child(3),.frame i:nth-child(4){display:none}}

/* ---------- buttons: platinum primary, outline secondary, never red, never pills ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:0 26px;border:1px solid var(--silver);
	font:700 12.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;white-space:nowrap;cursor:pointer;
	transition:background-color .2s,border-color .2s,color .2s}
.btn-p{background:var(--platinum);border-color:var(--platinum);color:#000}
.btn-p:hover{background:#fff;border-color:#fff;box-shadow:inset 0 0 0 1px #000,inset 0 0 0 2px #fff}
.btn-o{background:transparent;color:var(--platinum);border-color:var(--hair-3)}
.btn-o:hover{border-color:var(--platinum)}
.btn-s{min-height:44px;padding:0 20px;font-size:12px}
.btn svg{width:14px;height:14px;flex:none}
.link-m{display:inline-flex;align-items:center;gap:10px;min-height:44px;font:400 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;
	color:var(--platinum);text-decoration:none;border-bottom:1px solid var(--hair-2)}
.link-m:hover{border-bottom-color:var(--platinum)}
.link-m svg{width:14px;height:14px;flex:none}
@media (max-width:599px){.btn{min-height:52px}.btn-s{min-height:44px}}

/* ---------- header ---------- */
.hdr{position:fixed;left:0;right:0;top:0;z-index:50;height:calc(var(--head) + var(--frame));padding:var(--frame) var(--pad) 0;
	display:flex;align-items:center;gap:20px;transition:background-color .3s,box-shadow .3s}
.hdr:not(.solid){background:linear-gradient(180deg,rgba(0,0,0,.66),rgba(0,0,0,.36) 62%,rgba(0,0,0,0))}
.hdr.solid{background:#000;box-shadow:0 1px 0 var(--hair-1)}
.lockup{display:inline-flex;align-items:center;gap:16px;min-height:44px;flex:none;text-decoration:none;color:var(--platinum)}
.lockup .tile{width:60px;height:60px;flex:none}
.lk-w{font:500 27px/1 var(--display);letter-spacing:.3em;margin-right:-.3em}
.lk-tm{font:400 11px/1 var(--mono);letter-spacing:.04em;color:var(--steel);align-self:flex-start;margin:var(--tmt,17px) 0 0 -11px}
.w4{display:inline-flex;align-items:center;gap:7px}
.hdr>.w4{display:none;margin-left:8px;padding-left:16px;border-left:1px solid var(--hair-1);height:28px}
@media (min-width:1360px){.w4-hdr .hdr>.w4{display:inline-flex}}
.w4 i{position:relative;display:block;width:15px;height:15px}
.w4 svg{width:100%;height:100%;fill:none;stroke:var(--steel);stroke-width:3.5;overflow:visible;transition:fill .3s,stroke .3s}
.w4 i.struck svg{fill:var(--silver);stroke:var(--platinum)}
.no-w4 .w4,.no-w4 .sheet-w4{display:none}
.nav{display:flex;gap:clamp(16px,1.7vw,34px);margin-left:auto}
.nav a,.hdr .txt{display:inline-flex;align-items:center;min-height:44px;font:400 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel);text-decoration:none;white-space:nowrap;transition:color .2s}
.nav a:hover,.hdr .txt:hover{color:var(--platinum)}
.hdr-cta{display:flex;align-items:center;gap:22px;margin-left:clamp(12px,1.8vw,36px)}
.hdr .txt{color:var(--silver)}
.menu-btn,.sheet-close{display:none;width:44px;height:44px;padding:0;border:1px solid var(--hair-2);background:transparent;cursor:pointer;align-items:center;justify-content:center;flex:none}
.menu-btn span{display:block;width:18px;height:1px;background:var(--platinum);box-shadow:0 -6px 0 var(--platinum),0 6px 0 var(--platinum)}
.sheet-close{display:inline-flex}
.sheet-close span{position:relative;display:block;width:18px;height:18px}
.sheet-close span::before,.sheet-close span::after{content:"";position:absolute;left:-1px;right:-1px;top:50%;height:1px;background:var(--platinum);transform:rotate(45deg)}
.sheet-close span::after{transform:rotate(-45deg)}
@media (max-width:1359px){.hdr>.w4{display:none}}
@media (max-width:1279px){.hdr .txt{display:none}.nav{gap:18px}.nav a{letter-spacing:.12em}}
@media (max-width:1199px){.nav{display:none}.menu-btn{display:inline-flex}.hdr-cta{margin-left:auto}}
@media (max-width:1023px){
	.lockup .tile{width:46px;height:46px}.lk-w{font-size:22px}
}
@media (max-width:599px){
	.hdr-cta{display:none}.menu-btn{margin-left:auto}
	.lockup{gap:12px}.lockup .tile{width:40px;height:40px}.lk-w{font-size:19px;letter-spacing:.26em;margin-right:-.26em}.lk-tm{margin-top:9px}
}

/* ---------- menu sheet ---------- */
.sheet{position:fixed;inset:0;z-index:70;background:#000;display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;
	padding:var(--frame) var(--pad) calc(24px + env(safe-area-inset-bottom));visibility:hidden;opacity:0;transition:opacity .25s,visibility 0s .25s}
.sheet.open{visibility:visible;opacity:1;transition:opacity .25s}
.sheet-top{flex:none;height:var(--head);display:flex;align-items:center;justify-content:space-between;gap:16px}
.sheet-nav{display:flex;flex-direction:column;margin-top:8px;border-top:1px solid var(--hair-1)}
.sheet-nav a{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:56px;padding:6px 0;border-bottom:1px solid var(--hair-1);
	font:500 26px/1.1 var(--display);color:var(--platinum);text-decoration:none}
.sheet-nav small{font:400 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel);text-align:right}
.sheet-w4{display:flex;align-items:center;gap:14px;margin:22px 0 4px;font:400 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.sheet-ctas{margin-top:auto;padding-top:22px;display:grid;gap:12px}
.sheet-ctas .btn{white-space:normal;text-align:center;line-height:1.3;padding:0 12px;letter-spacing:.12em}
body.menu-open{overflow:hidden}

/* ---------- 01 hero: the strike ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;padding-top:calc(var(--head) + var(--frame));isolation:isolate;overflow:hidden}
.hero::before{content:"";position:absolute;inset:0;z-index:-3;pointer-events:none;
	background:radial-gradient(ellipse 46% 52% at 50% 30%,rgba(196,214,236,.11),rgba(196,214,236,.03) 46%,transparent 72%),
		radial-gradient(ellipse 120% 70% at 50% 120%,rgba(255,255,255,.035),transparent 60%)}
.rosette{display:none;position:absolute;left:50%;top:0;z-index:-2;max-width:none;transform:translateX(-50%);pointer-events:none;opacity:.075}
.rosette.lit{opacity:.55;z-index:-1;-webkit-mask-image:radial-gradient(circle var(--lr,340px) at var(--lx,30%) var(--ly,30%),#000 0,rgba(0,0,0,.4) 42%,transparent 72%);
	mask-image:radial-gradient(circle var(--lr,340px) at var(--lx,30%) var(--ly,30%),#000 0,rgba(0,0,0,.4) 42%,transparent 72%)}
.rosette.on{display:block}
.lamp{display:none}
.hero-in{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:clamp(4px,1.4svh,30px) var(--pad) clamp(14px,2.4svh,40px)}
.kicker{margin:0 0 clamp(8px,1.6svh,24px);padding-left:.32em;font:400 12px/1 var(--mono);letter-spacing:.32em;text-transform:uppercase;color:var(--silver)}
.coin{--c:clamp(220px,min(28vw,35.6svh),440px);position:relative;width:var(--c);height:var(--c);flex:none}
.coin .still,.coin .gemlit,.coin canvas{position:absolute;left:-6%;top:-6%;width:112%;height:112%;max-width:none}
.coin .gemlit{mix-blend-mode:screen;mix-blend-mode:plus-lighter;opacity:0;transition:opacity .4s ease-out;pointer-events:none}
.coin.lit .gemlit,html:not(.js) .coin .gemlit{opacity:1}
.coin canvas{opacity:0;transition:opacity .3s linear}
.coin.gl canvas{opacity:1}
.coin.gl .still,.coin.gl .gemlit{visibility:hidden;transition:visibility 0s .3s}
.coin.press .still,.coin.press .gemlit{animation:coinpress .41s both}
.coin.press::after{content:"";position:absolute;inset:4%;border-radius:50%;border:1px solid rgba(235,242,255,.85);opacity:0;animation:coinring .6s .25s var(--settle) both}
@keyframes coinpress{0%{transform:scale(1);animation-timing-function:cubic-bezier(.55,0,.75,.2)}61%{transform:scale(.965)}71%{transform:scale(1.008);animation-timing-function:var(--settle)}100%{transform:scale(1)}}
@keyframes coinring{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(1.12)}}
.wordmark{--wfs:clamp(48px,min(8.4vw,11svh),160px);display:inline-flex;align-items:flex-start;margin:clamp(10px,1.8svh,28px) 0 0 .3em;font:500 var(--wfs)/1 var(--display);letter-spacing:.3em;color:var(--platinum)}
.wordmark .wm{display:inline-block}
.wordmark sup{margin:calc(var(--wfs) * .17) 0 0 calc(-3px - var(--wfs) * .3);font:400 max(11px,.1em)/1 var(--mono);letter-spacing:.06em;color:var(--steel)}
.wm.sweep{background:linear-gradient(100deg,var(--platinum) 40%,#fff 47%,#d4ddeb 50%,var(--platinum) 57%) 115% 0/260% 100%;
	-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:sweep .9s cubic-bezier(.45,0,.25,1) forwards}
@keyframes sweep{to{background-position:-15% 0}}
.motto{display:flex;align-items:center;justify-content:center;gap:16px;margin:clamp(8px,1.4svh,18px) 0 0;
	font:500 clamp(14px,1.15vw,20px)/1 var(--display);letter-spacing:.42em;text-transform:uppercase;color:var(--silver)}
.motto::before,.motto::after{content:"";width:clamp(28px,6vw,110px);height:1px;background:linear-gradient(90deg,transparent,var(--hair-3))}
.motto::after{transform:scaleX(-1)}
.dia{width:7px;height:7px;flex:none;background:var(--silver);transform:rotate(45deg)}
.motto .mt{margin-right:-.42em}
.hero h1{max-width:30ch;margin:clamp(12px,2.2svh,30px) 0 0;font:500 clamp(26px,2.2vw,42px)/1.12 var(--display);letter-spacing:.004em;color:var(--platinum);text-wrap:balance}
@media (min-width:1200px){.hero h1{max-width:none}}
.lede{max-width:74ch;margin:12px auto 0;color:var(--body);font-size:clamp(16px,1.12vw,19px);line-height:1.55;text-wrap:pretty}
.cta-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px 16px;margin-top:clamp(14px,2.6svh,32px)}
.fake-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:0 6px;font:400 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--silver);text-decoration:none}
.fake-link:hover{color:#fff}
.fake-link svg{width:15px;height:15px}

/* facts strip on the fold: certificate cells */
.facts{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 var(--pad);border-top:1px solid var(--hair-2);background:linear-gradient(180deg,transparent,#000 40%)}
.fact{min-width:0;padding:16px clamp(14px,1.5vw,28px) 18px;border-left:1px solid var(--hair-1);text-align:left}
.fact:first-child{border-left:0}
.fl{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;font:400 12px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.fl span:first-child{display:inline-flex;align-items:center;gap:9px;color:var(--silver)}
.fl span:last-child{letter-spacing:.06em;color:var(--steel);white-space:nowrap}
.fl .fs{width:15px;height:15px;flex:none;fill:none;stroke:var(--silver);stroke-width:3.6;overflow:visible}
.fv{margin:8px 0 4px;font:500 clamp(21px,1.55vw,28px)/1.1 var(--display);color:var(--platinum)}
.fn{margin:0;font-size:14px;line-height:1.4;color:var(--steel)}
.fn.stores{display:flex;flex-wrap:wrap;gap:0 10px;margin-top:2px}
.stores a{display:inline-flex;align-items:center;min-height:44px}
.fn.stores img{height:32px;width:auto}
.fact5{display:none}
@media (min-width:1920px){.facts{grid-template-columns:repeat(5,minmax(0,1fr))}.fact5{display:block}}
/* first screen on desktop: the facts strip sits wholly above the fold (860-1100 px tall) or wholly below it (shorter) */
@media (min-width:1024px) and (min-height:860px) and (max-height:1100px){
	.hero-in{padding-top:4px;padding-bottom:12px}
	.kicker{margin-bottom:10px}
	.wordmark{margin-top:10px}
	.hero h1{margin-top:14px}
	.cta-row{margin-top:16px}
	.fact{padding-top:12px;padding-bottom:10px}
	.fv{margin-top:6px}
}
@media (min-width:1024px) and (min-height:860px) and (max-height:960px){.coin{--c:clamp(220px,min(28vw,31svh),440px)}}
@media (min-width:1024px) and (max-height:859px){.hero-in{min-height:calc(100svh - var(--head) - var(--frame))}}
@media (min-width:2600px){.facts{padding:0 max(0px,(100% - 2400px) / 2)}.fact:first-child{border-left:1px solid var(--hair-1)}.fact:last-child{border-right:1px solid var(--hair-1)}}
@media (max-width:1023px){
	.facts{grid-template-columns:repeat(2,minmax(0,1fr))}
	.fact:nth-child(3){border-left:0}.fact:nth-child(n+3){border-top:1px solid var(--hair-1)}
}
@media (max-width:599px){
	.hero-in{padding-top:2px}
	.kicker{font-size:11px;letter-spacing:.26em;padding-left:.26em}
	.coin{--c:min(62vw,240px)}
	.wordmark{--wfs:14vw;font-size:var(--wfs);letter-spacing:.22em;margin-left:.22em}.wordmark sup{margin-left:calc(-1px - var(--wfs) * .22)}
	.motto{font-size:13px;letter-spacing:.3em;gap:10px}.motto .mt{margin-right:-.3em}
	.motto::before,.motto::after{width:24px}
	.hero h1{font-size:27px;max-width:15em}
	.lede{font-size:16.5px;text-align:left}
	.cta-row{flex-direction:column;align-items:stretch;width:100%}
	.cta-row .btn{width:100%;white-space:normal;text-align:center;padding:0 14px;line-height:1.35}
	.fake-link{justify-content:center}
	.facts{margin:0 var(--frame)}
	.fact{padding:14px 12px 16px}
	.fl span:last-child{display:none}
	.fv{font-size:20px}
	.fn{font-size:13.5px}
	.fn.stores{flex-direction:column;align-items:flex-start;gap:0}
	.fn.stores img{height:30px}
}

/* ---------- section scaffold ---------- */
.sec{position:relative;padding:clamp(80px,8vw,160px) var(--pad)}
.sec::before,.close::before{content:"";position:absolute;top:0;left:var(--frame);right:var(--frame);height:1px;background:var(--hair-1)}
.sec-lbl{display:flex;align-items:center;gap:14px;margin:0 0 24px;font:400 12px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--silver)}
.sec-lbl b{font-weight:400;color:var(--platinum);border:1px solid var(--hair-3);padding:6px 8px 5px;letter-spacing:.12em}
.sec-lbl::after{content:"";flex:1;max-width:200px;height:1px;background:var(--hair-2)}
.sec-lbl.c{justify-content:center}
.sec-lbl.c::before{content:"";flex:1;max-width:120px;height:1px;background:var(--hair-2)}
.sec-lbl.c::after{max-width:120px}
.h2{margin:0;max-width:21ch;font:500 clamp(36px,4.2vw,72px)/1.05 var(--display);letter-spacing:-.005em;color:var(--platinum);text-wrap:balance}
.h3{margin:0;max-width:24ch;font:500 clamp(28px,2.5vw,44px)/1.1 var(--display);color:var(--platinum)}
.body{max-width:62ch;color:var(--body)}
.body p:last-child{margin-bottom:0}
.body strong{font-weight:600;color:var(--platinum)}
.pull{max-width:26ch;margin:26px 0 22px;padding-left:20px;border-left:1px solid var(--hair-3);font:500 clamp(22px,1.75vw,30px)/1.3 var(--display);color:var(--platinum)}
.pull.sm{margin:18px 0 0;font-size:clamp(20px,1.5vw,26px)}
.shead{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:clamp(24px,5vw,96px);align-items:start;margin-bottom:clamp(36px,4.6vw,76px)}
/* the paragraph hangs from the first cap line of the headline: label block (25 + 24) + h2 cap offset - body cap offset */
@media (min-width:1024px){.shead:not(.c)>.body{padding-top:calc(41px + clamp(36px,4.2vw,72px) * .207)}}
.shead.c{grid-template-columns:minmax(0,1fr);justify-items:center;gap:22px;text-align:center}
.shead.c .h2{margin:0 auto;max-width:22ch}
.shead.c .body{max-width:64ch}
.shead.c .pull{max-width:none;margin:18px auto 0;padding:0;border-left:0}
.mono-note{font:400 12px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--silver)}
.ph{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:11px 16px;border-bottom:1px solid var(--hair-1);
	font:400 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.ph b{font-weight:700;color:var(--platinum)}
.smp,.sample{flex:none;padding:3px 7px 2px;background:var(--silver);color:#000;font:700 11.5px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase}
@media (max-width:1023px){.shead{grid-template-columns:minmax(0,1fr);align-items:start}}
@media (max-width:599px){.sec{padding-top:72px;padding-bottom:72px}.shead{margin-bottom:30px}.pull{margin:20px 0 18px;padding-left:16px}}

/* ---------- 02 the wedge ---------- */
.wedge{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,120px);align-items:start}
.wedge .h2{font-size:clamp(36px,3.6vw,66px);max-width:14ch}
.ledger{border:1px solid var(--hair-1);background:var(--ink-1)}
.ledger-h{display:flex;justify-content:space-between;gap:12px;margin:0;padding:13px 20px;border-bottom:1px solid var(--hair-1);font:400 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.ledger li{display:grid;grid-template-columns:52px minmax(0,1fr) auto;align-items:center;gap:18px;padding:16px 20px;border-bottom:1px solid var(--hair-1)}
.ledger li:last-child{border-bottom:0}
.ledger .shape{width:48px;height:48px;fill:none;stroke:var(--silver);stroke-width:1.5;color:var(--silver)}
.ledger .q{margin:0;font:500 clamp(21px,1.6vw,28px)/1.15 var(--display)}
.ledger .q small{display:block;margin-top:5px;font:400 15px/1.45 var(--text);color:var(--steel)}
.ledger .a{margin:0;font:400 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--silver);text-align:right}
.trades{margin-top:clamp(56px,7vw,120px)}
.trades-h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px 40px;margin-bottom:22px}
.trades-h p{margin:0;max-width:52ch;color:var(--body)}
.trade-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--hair-1)}
.trade{position:relative;display:flex;flex-direction:column;min-height:210px;padding:24px clamp(18px,2vw,32px) 26px;border-left:1px solid var(--hair-1)}
.trade:first-child{border-left:0}
.trade .tag{display:flex;justify-content:space-between;align-items:center;margin:0;font:400 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.trade .tag b{font-weight:400;color:var(--platinum);border:1px solid var(--hair-3);padding:6px 8px 5px}
.trade.req .tag b{color:var(--silver);border-style:dashed}
.trade h4{margin:auto 0 8px;padding-top:32px;font:500 clamp(26px,2.1vw,36px)/1.1 var(--display)}
.trade p{margin:0;color:var(--steel);font-size:16px}
@media (max-width:1023px){
	.wedge{grid-template-columns:minmax(0,1fr)}
	.trade-row{grid-template-columns:minmax(0,1fr)}
	.trade{min-height:0;border-left:0;border-top:1px solid var(--hair-1)}.trade:first-child{border-top:0}
	.trade h4{padding-top:16px}
}
@media (max-width:599px){
	.ledger li{grid-template-columns:40px minmax(0,1fr);gap:4px 14px;padding:14px}
	.ledger .shape{width:40px;height:40px;grid-row:1/span 2;align-self:start}
	.ledger .a{grid-column:2;text-align:left}
	.ledger .q small{font-size:14.5px}
	.ledger-h{padding:12px 14px}
	.trade{padding:18px 16px 20px}
}

/* ---------- punches: struck once, then they stay ---------- */
.punch{position:absolute;z-index:4;width:var(--s,54px);height:var(--s,54px);pointer-events:none}
.pz{display:block;width:100%;height:100%;overflow:visible}
.pz-f{fill:#060708;stroke:url(#bev);stroke-width:2.6;transition:stroke .25s}
.pz-r{fill:url(#rcs);stroke:none;transition:opacity .18s}
.pz-t{font:700 16px/1 var(--mono);fill:url(#plt);text-anchor:middle;transition:opacity .2s}
.pz-t.big{font-size:19px}
.pz-pin{fill:#060708;stroke:#e9ebee;stroke-width:1.5;transition:opacity .2s}
.pz-a{color:#e9ebee;transition:opacity .2s}
.js:not(.rm) .punch:not(.struck) .pz-f,.js:not(.rm) .rp:not(.struck) .pz-f{stroke:var(--hair-3);stroke-width:1.2;stroke-dasharray:3 3;fill:transparent}
.js:not(.rm) .punch:not(.struck) .pz-r,.js:not(.rm) .punch:not(.struck) .pz-t,.js:not(.rm) .punch:not(.struck) .pz-pin,.js:not(.rm) .punch:not(.struck) .pz-a,
.js:not(.rm) .rp:not(.struck) .pz-r,.js:not(.rm) .rp:not(.struck) .pz-t,.js:not(.rm) .rp:not(.struck) .pz-pin,.js:not(.rm) .rp:not(.struck) .pz-a{opacity:0}
.punch .num{position:absolute;right:100%;top:2px;margin-right:4px;font:700 12px/1 var(--mono);letter-spacing:.06em;color:var(--silver)}
.pring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(235,242,255,.9);pointer-events:none}

/* ---------- 03 the marks ---------- */
.marks-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:96px;align-items:start}
.plate-wrap{min-width:0}
.plate{--pad2:clamp(14px,1.5vw,24px);position:relative;padding:10px;overflow:clip;background:var(--ink-1);border:1px solid var(--hair-2);container-type:inline-size}
.plate::before{content:"";position:absolute;inset:4px;border:6px solid transparent;pointer-events:none;
	border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-opacity='.26' stroke-width='.7'%3E%3Cpath d='M0 3 Q3 0 6 3 T12 3 T18 3 T24 3'/%3E%3Cpath d='M0 3 Q3 6 6 3 T12 3 T18 3 T24 3'/%3E%3Cpath d='M0 21 Q3 18 6 21 T12 21 T18 21 T24 21'/%3E%3Cpath d='M0 21 Q3 24 6 21 T12 21 T18 21 T24 21'/%3E%3Cpath d='M3 0 Q0 3 3 6 T3 12 T3 18 T3 24'/%3E%3Cpath d='M3 0 Q6 3 3 6 T3 12 T3 18 T3 24'/%3E%3Cpath d='M21 0 Q18 3 21 6 T21 12 T21 18 T21 24'/%3E%3Cpath d='M21 0 Q24 3 21 6 T21 12 T21 18 T21 24'/%3E%3C/svg%3E") 6 round}
.plate-in{position:relative;border:1px solid var(--hair-1);background:radial-gradient(ellipse at 30% 0%,rgba(205,220,240,.05),transparent 60%),var(--ink-1)}
.pl-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 16px;margin:0;padding:8px var(--pad2);border-bottom:1px solid var(--hair-1);font:400 12px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.pl-bar b{font-weight:400;color:var(--platinum)}
.pl-title{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:end;padding:10px var(--pad2) 8px;border-bottom:1px solid var(--hair-1)}
.pl-title .ref{margin:0;font:500 clamp(36px,3vw,56px)/.92 var(--display);letter-spacing:.02em}
.pl-title .what{margin:6px 0 0;font:500 clamp(19px,1.4vw,23px)/1.2 var(--display);color:var(--silver)}
.pl-title .loc{margin:0;font:400 12px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel);text-align:right}
.pl-title .loc b{display:block;font-weight:400;color:var(--platinum)}
.pl-body{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);border-bottom:1px solid var(--hair-1)}
.pl-dwg{position:relative;padding:10px 12px 8px;border-right:1px solid var(--hair-1)}
.dwg-art{position:relative}
.dwg-art svg{width:100%;height:auto}
.dl{font:400 12px var(--mono);fill:var(--silver)}
.dl.dim{fill:#9a9a9a}
.dl.hi{fill:var(--platinum)}
.dwg-cap{margin:6px 0 0;font:400 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.pl-groups{display:flex;flex-direction:column}
.grp{position:relative;padding:7px calc(var(--pad2) + 60px) 8px var(--pad2);border-bottom:1px solid var(--hair-1)}
.grp:last-child{border-bottom:0}
.grp-h{margin:0 0 4px;font:400 12.5px/1.3 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--platinum)}
.grp dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:1px 14px;align-items:baseline;margin:0}
.grp dt{font:400 12px/1.35 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.grp dd{margin:0;font-size:15px;line-height:1.35;color:var(--platinum)}
.grp .sig{height:22px;width:auto;margin:-2px 0 -6px}
.rating{display:inline-flex;align-items:center;gap:8px;min-height:48px;margin:-9px 0 -10px;padding:0 10px 0 0;text-decoration:none;font:700 18px/1 var(--mono);letter-spacing:.06em;color:var(--platinum);white-space:nowrap}
.rating .sw{padding:5px 6px 4px;border:1px solid var(--hair-2);font:400 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel);transition:color .2s,border-color .2s}
.rating:hover .sw{color:var(--platinum);border-color:var(--platinum)}
.p-maker,.p-std{right:12px;top:10px}
.p-date{right:12px;top:8px;--s:50px}
.p-seal{left:84%;top:30%;--s:58px;margin:-29px 0 0 -29px}
.p-chain{right:var(--pad2);top:50%;--s:48px;margin-top:-24px}
.pl-photos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px var(--pad2);border-bottom:1px solid var(--hair-1)}
.ph-f,.pl-photos figure{position:relative;margin:0;overflow:hidden;background:#0d0e10;border:1px solid var(--hair-1)}
.pl-photos svg{width:100%;height:auto;aspect-ratio:120/49}
.pl-photos figcaption{position:absolute;left:0;top:0;padding:4px 6px 3px;background:var(--silver);color:#000;font:700 11.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.burn{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;background:rgba(0,0,0,.74);font:400 12px/1.3 var(--mono);letter-spacing:.03em;color:#e9e9e9;white-space:nowrap;overflow:hidden}
.pl-chain{position:relative;padding:8px var(--pad2) 6px}
.pl-chain-h{display:flex;justify-content:space-between;gap:10px;margin:0 0 7px;font:400 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.pl-chain-h b{font-weight:400;color:var(--ok)}
.hrow{display:flex;align-items:flex-start;justify-content:space-between;padding:0 4px}
.hm{flex:none;display:flex;flex-direction:column;align-items:center;gap:4px;width:clamp(58px,5.4vw,84px);text-align:center}
.hm .pz{width:clamp(36px,2.7vw,46px);height:clamp(36px,2.7vw,46px)}
.hm .pz-t{font-size:21px}.hm .pz-t.big{font-size:23px}
.hm b{font:400 12px/1.2 var(--mono);letter-spacing:.06em;color:var(--steel)}
.hm.this b{color:var(--platinum)}
.hm em{font:400 12px/1.2 var(--mono);font-style:normal;color:var(--silver)}
.lk{flex:1;min-width:0;align-self:flex-start;margin-top:clamp(12px,1vw,17px);text-align:center;font:400 11.5px/1 var(--mono);color:var(--steel);white-space:nowrap;overflow:hidden}
.lk i{font-style:normal}
.hashline{position:relative;display:flex;align-items:center;min-height:62px;margin:0;padding:7px calc(var(--pad2) + 80px) 8px var(--pad2);border-top:1px solid var(--hair-1);font:400 12px/1.55 var(--mono);letter-spacing:.03em;color:var(--steel)}
.hashline .hl{min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hashline .hS{display:none}
.hashline b{font-weight:400;color:var(--silver);letter-spacing:.14em;text-transform:uppercase}
.hashline .h{color:var(--platinum)}
.plate-cap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:10px 0 0;font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
@container (max-width:660px){
	.pl-body{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
	.grp{padding-right:calc(var(--pad2) + 52px)}
}
@container (max-width:520px){
	.pl-body{grid-template-columns:minmax(0,1fr)}
	.pl-dwg{border-right:0;border-bottom:1px solid var(--hair-1)}
}
@container (max-width:440px){
	.pl-title{grid-template-columns:minmax(0,1fr)}.pl-title .loc{text-align:left}
	.grp{padding-right:calc(var(--pad2) + 50px)}
	.pl-photos{gap:5px}
	.burn{white-space:normal;line-height:1.25;padding:3px 4px}
	.pl-photos svg{aspect-ratio:auto;height:96px}
	.hm{width:auto;min-width:44px}.hm .pz{width:36px;height:36px}.hm em{display:none}.lk{display:none}
	.hm b{font-size:11px;letter-spacing:0;white-space:nowrap}
	.pl-chain-h{flex-direction:column;gap:2px}
	.punch{--s:46px}.p-seal{margin:-23px 0 0 -23px}
	.p-chain{--s:42px;margin-top:-21px}
	.hashline{padding-right:calc(var(--pad2) + 66px);min-height:58px}
	.hashline .hL{display:none}.hashline .hS{display:inline}.hashline .hl{white-space:normal}
}
.steps{min-width:0}
.step{padding:30px 0;border-top:1px solid var(--hair-1)}
.step-h{display:flex;align-items:center;gap:16px;margin-bottom:12px}
.step-h .punch{position:relative;--s:56px;flex:none}
.step-n{margin:0;font:400 12px/1.3 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--silver)}
.step-n b{display:block;font-weight:400;font-size:12.5px;letter-spacing:.18em;color:var(--platinum)}
.step h3{margin:0 0 12px;max-width:16ch;font:500 clamp(28px,2.3vw,42px)/1.08 var(--display)}
.step>p{max-width:46ch;color:var(--body)}
.to-bench{margin:4px 0 0}
.detail{margin-top:18px;border:1px solid var(--hair-2);background:var(--ink-1)}
.d-h{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;padding:10px 14px;border-bottom:1px solid var(--hair-1);font:400 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.d-h b{font-weight:700;color:var(--platinum)}
.d-body{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:12px;padding:12px}
.cap-rows{border:1px solid var(--hair-1)}
.cap-rows li{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:8px;align-items:center;padding:9px 10px;border-top:1px solid var(--hair-1)}
.cap-rows li:first-child{border-top:0}
.cap-rows .k{font:400 11px/1 var(--mono);color:var(--steel)}
.cap-rows .l{font:400 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.cap-rows .l b{display:block;margin-top:3px;font:400 15px/1.3 var(--text);letter-spacing:0;text-transform:none;color:var(--platinum)}
.cap-rows .ok{width:16px;height:16px;color:var(--ok)}
.cap-rows li.now{background:rgba(255,255,255,.04);box-shadow:inset 2px 0 0 var(--platinum)}
.nowt{font:400 12px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--platinum)}
.maker{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:14px;border:1px solid var(--hair-1);text-align:center}
.maker .lz{width:120px;height:80px}
.lz-t{font:700 15px var(--mono);letter-spacing:.1em;fill:var(--platinum)}
.maker .sig2{width:140px;height:38px}
.maker p{margin:0;font:400 11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.maker p b{display:block;font-weight:700;color:var(--platinum)}
.snaps{padding:12px;display:grid;gap:10px}
.snaps li{position:relative;padding:11px 12px 11px 52px;border:1px solid var(--hair-2);background:#050506}
.snaps li::before{content:attr(data-n);position:absolute;left:0;top:0;bottom:0;width:40px;display:grid;place-items:center;border-right:1px solid var(--hair-1);
	font:700 11px/1 var(--mono);letter-spacing:.06em;color:var(--platinum);writing-mode:vertical-rl;transform:rotate(180deg)}
.snaps .e{margin:0;font:400 15px/1.35 var(--text);color:var(--platinum)}
.snaps .e span{color:var(--steel)}
.snaps dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 12px;margin:8px 0 0;font:400 11.5px/1.45 var(--mono)}
.snaps dt{color:var(--steel);letter-spacing:.12em;text-transform:uppercase}
.snaps dd{margin:0;color:var(--silver);overflow-wrap:anywhere}
.snaps dd.h{color:var(--platinum)}
.formula{margin:0;padding:0 12px 12px;font:400 11.5px/1.6 var(--mono);letter-spacing:.06em;color:var(--steel)}
.formula b{font-weight:400;color:var(--platinum)}
@media (max-width:1023px){.marks-grid{grid-template-columns:minmax(0,1fr)}.steps{margin-top:24px}}
@media (max-width:599px){.d-body{grid-template-columns:minmax(0,1fr)}.maker{flex-direction:row;flex-wrap:wrap}.maker .lz{width:96px;height:64px}}
/* desktop with room: the plate is pinned and the marks strike as the captions pass */
@media (min-width:1024px) and (min-height:860px){
	html.js:not(.rm) .marks:not(.nopin) .plate-wrap{position:sticky;top:calc(var(--head) + var(--frame) + 20px)}
	html.js:not(.rm) .marks:not(.nopin) .plate-cap{display:none}
	html.js:not(.rm) .marks:not(.nopin) .step{min-height:52vh;display:flex;flex-direction:column;justify-content:center;padding:24px 0;border-top:0;opacity:.3;transition:opacity .45s}
	html.js:not(.rm) .marks:not(.nopin) .step:first-child{justify-content:flex-start;padding-top:8px}
	html.js:not(.rm) .marks:not(.nopin) .step:last-child{min-height:calc(100vh - var(--head) - 60px);justify-content:flex-start;padding-top:18vh}
	html.js:not(.rm) .marks:not(.nopin) .step.on{opacity:1}
	html.js:not(.rm) .marks:not(.nopin) .detail{display:none}
}

/* desktop without room to pin (short screens, reduced motion, or a plate too tall): plate first, then the caption cards */
@media (min-width:1024px){
	html.rm .marks-grid,.marks.nopin .marks-grid{grid-template-columns:minmax(0,1fr)}
	html.rm .plate-wrap,.marks.nopin .plate-wrap{width:min(100%,1040px);margin:0 auto}
	html.rm .steps,.marks.nopin .steps{columns:2;column-gap:56px;margin-top:44px}
	html.rm .step,.marks.nopin .step{break-inside:avoid}
}
@media (min-width:1024px) and (max-height:859px){
	.marks-grid{grid-template-columns:minmax(0,1fr)}
	.plate-wrap{width:min(100%,1040px);margin:0 auto}
	.steps{columns:2;column-gap:56px;margin-top:44px}
	.step{break-inside:avoid}
}
@media (min-width:1600px){
	html.rm .steps,.marks.nopin .steps{columns:3}
}
@media (min-width:1600px) and (max-height:859px){.steps{columns:3}}

/* ---------- 04 on site: three moves, then the office ---------- */
.scene{position:relative}
.stage{max-width:var(--max);margin:0 auto}
.rail,.trio{display:none}
.moves{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;max-width:var(--max);margin:0 auto}
.mv{display:flex;flex-direction:column;padding:20px;border:1px solid var(--hair-1);background:var(--ink-1)}
.mv-n{margin:0;font:400 11.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--silver)}
.mv-n b{font-weight:700;color:var(--platinum);margin-right:6px}
.mv h3{margin:12px 0 8px;font:500 clamp(25px,2vw,32px)/1.1 var(--display)}
.mv>p{margin:0;font-size:16px;color:var(--body)}
.mini{margin:auto 0 0;padding-top:16px}
.mini figcaption{margin-top:8px;font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.m-real .dev{padding:6px;border:1px solid var(--hair-3);border-radius:16px;background:#050505}
.m-real img{width:100%;height:auto;aspect-ratio:720/560;object-fit:cover;object-position:50% 0;border-radius:11px}
.scr{position:relative;display:flex;flex-direction:column;gap:9px;padding:10px;border:1px solid var(--hair-3);border-radius:16px;background:#050505;overflow:hidden}
.sbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0}
.ab{display:inline-flex;align-items:center;gap:7px;font:500 15px/1 var(--display);letter-spacing:.24em;color:var(--platinum)}
.ab svg{width:22px;height:22px}
.chip{padding:4px 7px 3px;border:1px solid;border-radius:3px;font:700 11px/1.2 var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}
.chip.off{border-color:rgba(224,138,44,.6);color:#f0b170}
.chip.on{border-color:rgba(63,174,106,.6);color:#7fd19f}
.sub{display:flex;justify-content:space-between;margin:0;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.photo{position:relative;overflow:hidden;border-radius:6px;border:1px solid var(--hair-1)}
.photo svg{width:100%;height:auto;aspect-ratio:300/190}
.photo .tag{position:absolute;left:8px;top:8px;padding:4px 6px 3px;background:var(--platinum);color:#000;font:700 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.photo .st{position:absolute;left:0;right:0;bottom:0;padding:5px 8px;background:rgba(0,0,0,.76);font:400 11px/1.35 var(--mono);color:#ececec}
.thumbs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0}
.thumbs span{display:flex;align-items:center;justify-content:center;gap:5px;min-height:30px;border:1px solid var(--hair-1);font:400 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--steel)}
.thumbs span.on{color:var(--platinum);border-color:var(--hair-3)}
.thumbs svg{width:12px;height:12px;color:var(--ok)}
.struck-card{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--hair-2)}
.struck-card .pz{width:44px;height:44px;flex:none}
.struck-card p{margin:0;font:400 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.struck-card b{display:block;margin-top:3px;font:500 21px/1.1 var(--display);letter-spacing:0;text-transform:none;color:var(--platinum)}
.hashbox{margin:0;padding:8px 10px;border:1px solid var(--hair-1);font:400 11px/1.45 var(--mono);color:var(--platinum);overflow-wrap:anywhere}
.hashbox .k{display:block;margin-bottom:2px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.share{display:flex;gap:10px;align-items:flex-start;padding:10px;border:1px solid var(--hair-2)}
.share svg{width:26px;height:26px;flex:none}
.share p{margin:0;font-size:13.5px;line-height:1.4;color:var(--steel)}
.share span{display:block;font:400 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.share b{display:block;margin:2px 0;font:500 19px/1.15 var(--display);color:var(--platinum)}
.obs li{display:flex;justify-content:space-between;align-items:center;padding:7px 2px;border-bottom:1px solid var(--hair-1);font-size:14px;color:var(--platinum)}
.obs b{font:700 12px/1 var(--mono);color:var(--silver)}
.dossier{display:flex;align-items:center;gap:8px;margin:0;font-size:13px;line-height:1.35;color:var(--body)}
.dossier svg{width:26px;height:26px;flex:none}
.ro-stamp{position:absolute;right:12px;top:44%;padding:6px 10px 5px;border:3px double var(--vermilion);background:rgba(0,0,0,.88);color:var(--vermilion);
	font:700 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;transform:rotate(-6deg);pointer-events:none}
@media (min-width:600px){.moves{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1200px){.moves{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1200px) and (min-height:860px){
	html.js:not(.rm) .scene{height:250vh}
	html.js:not(.rm) .stage{position:sticky;top:calc(var(--head) + var(--frame));height:calc(100vh - var(--head) - var(--frame));display:flex;flex-direction:column;justify-content:center;padding-top:10px;padding-bottom:26px}
	html.js:not(.rm) .rail{position:relative;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--hair-1)}
	html.js:not(.rm) .rail button{display:flex;align-items:center;gap:10px;min-height:44px;padding:10px 0 0;border:0;background:none;cursor:pointer;text-align:left;
		font:400 11.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--steel);transition:color .3s}
	html.js:not(.rm) .rail button b{display:inline-grid;place-items:center;min-width:28px;height:24px;border:1px solid var(--hair-2);font-weight:400;letter-spacing:.06em;transition:background-color .3s,color .3s,border-color .3s}
	html.js:not(.rm) .rail-bar{position:absolute;left:0;right:0;top:-1px;height:1px}
	html.js:not(.rm) .rail-bar i{display:block;height:1px;background:var(--platinum);transform-origin:left;transform:scaleX(var(--sp,0))}
	html.js:not(.rm) .scene[data-step="0"] .rail button[data-go="0"],html.js:not(.rm) .scene[data-step="1"] .rail button[data-go="1"],
	html.js:not(.rm) .scene[data-step="2"] .rail button[data-go="2"],html.js:not(.rm) .scene[data-step="3"] .rail button[data-go="3"]{color:var(--platinum)}
	html.js:not(.rm) .scene[data-step="0"] .rail button[data-go="0"] b,html.js:not(.rm) .scene[data-step="1"] .rail button[data-go="1"] b,
	html.js:not(.rm) .scene[data-step="2"] .rail button[data-go="2"] b,html.js:not(.rm) .scene[data-step="3"] .rail button[data-go="3"] b{background:var(--silver);border-color:var(--silver);color:#000}
	html.js:not(.rm) .moves{position:relative;display:block;flex:none;width:100%;max-width:none;height:118px;margin:14px 0 16px}
	html.js:not(.rm) .mv{position:absolute;inset:0;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);column-gap:clamp(24px,4vw,80px);align-items:start;
		padding:0;border:0;background:none;opacity:0;visibility:hidden;transition:opacity .35s,visibility 0s .35s}
	html.js:not(.rm) .mv-n,html.js:not(.rm) .mv .mini{display:none}
	html.js:not(.rm) .mv h3{margin:0;font-size:clamp(30px,2.6vw,46px)}
	html.js:not(.rm) .mv>p{max-width:60ch;font-size:17px}
	html.js:not(.rm) .scene[data-step="0"] .mv0,html.js:not(.rm) .scene[data-step="1"] .mv1,html.js:not(.rm) .scene[data-step="2"] .mv2,html.js:not(.rm) .scene[data-step="3"] .mv3{opacity:1;visibility:visible;transition:opacity .35s}
	html.js:not(.rm) .trio{flex:1 1 auto;min-height:0;max-height:820px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,.95fr) minmax(0,1fr);gap:22px;align-items:stretch}
}
.panel{position:relative;display:flex;flex-direction:column;min-height:0;border:1px solid var(--hair-2);background:var(--ink-1);overflow:hidden}
.plan{position:relative;flex:1;min-height:0;padding:8px 10px}
.plan svg{width:100%;height:100%}
.plan .grid path{stroke:rgba(255,255,255,.12);stroke-width:1.4;stroke-dasharray:10 8;fill:none}
.plan .bub circle{fill:#000;stroke:var(--silver);stroke-width:2}
.plan .bt text{font:400 26px var(--mono);fill:var(--silver);text-anchor:middle}
.plan .w1 rect{fill:none;stroke:var(--silver);stroke-width:7}
.plan .w2 path{fill:none;stroke:var(--silver);stroke-width:4}
.plan .w3 path,.plan .w3 rect{fill:none;stroke:rgba(255,255,255,.4);stroke-width:1.6}
.plan .r1{fill:url(#hatch);stroke:none;opacity:.8}
.plan .lbl text{font:400 27px var(--mono);letter-spacing:0;fill:#b3b5b9;text-anchor:middle}
.plan .lbl .dim{fill:#8f8f8f}
.plan .lbl.sm text{font-size:24px}
.plan .north circle{fill:none;stroke:var(--silver);stroke-width:2}
.plan .north path{fill:var(--silver)}
.plan .rl rect{fill:#000;stroke:none}
.plan .rl text{font:700 24px var(--mono);fill:var(--platinum);text-anchor:middle;letter-spacing:2px}
.pin .stem{stroke:var(--silver);stroke-width:3}
.pin .hd{fill:#000;stroke:var(--silver);stroke-width:3}
.pin .pa{font:600 27px var(--display);fill:var(--platinum);text-anchor:middle}
.pin .pch{fill:#000;stroke:var(--hair-3);stroke-width:1.6}
.pin .pl{font:700 26px var(--mono);fill:var(--platinum);text-anchor:middle;letter-spacing:.5px}
.pin.me .hd{stroke:var(--platinum);stroke-width:4}
.pin.me .pch{stroke:var(--platinum)}
.scene[data-step="1"] .pin.me .hd{fill:var(--wip);stroke:#000}
.scene[data-step="1"] .pin.me .pch{stroke:var(--wip)}
.scene[data-step="2"] .pin.me .hd,.scene[data-step="3"] .pin.me .hd{fill:var(--ok);stroke:#000}
.scene[data-step="2"] .pin.me .pch,.scene[data-step="3"] .pin.me .pch{stroke:var(--ok)}
.pin.me .hd,.pin.me .pch{transition:fill .35s,stroke .35s}
.pf{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px;margin:0;padding:9px 14px;border-top:1px solid var(--hair-1);font:400 11px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.pf i{display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;vertical-align:0}
.pf em{font-style:normal;color:var(--platinum);margin-right:5px}
.c-out i{background:var(--out)}.c-prog i{background:var(--wip)}.c-done i{background:var(--ok)}
.pf .nts{margin-left:auto}
.dwgp .ro-stamp{right:auto;left:50%;top:40%;font-size:15px;padding:9px 14px 8px;transform:translateX(-50%) rotate(-6deg);opacity:0;transition:opacity .3s}
.scene[data-step="3"] .dwgp .ro-stamp{opacity:1}
.device-col{display:flex;flex-direction:column;justify-content:center;min-height:0}
.device{position:relative;width:100%;padding:9px;border:1px solid var(--hair-3);border-radius:26px;background:#050505}
.device::before{content:"";position:absolute;left:50%;top:4px;width:36px;height:2px;margin-left:-18px;border-radius:2px;background:var(--hair-2)}
.device .screen{position:relative;aspect-ratio:720/844;border-radius:17px;overflow:hidden}
.device .screen+.screen{position:absolute;left:9px;right:9px;top:9px}
.device .screen{opacity:0;transition:opacity .35s}
.scene[data-step="0"] .s0,.scene[data-step="1"] .s1,.scene[data-step="2"] .s2,.scene[data-step="3"] .s3{opacity:1}
.device .s0 img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.device .scr{height:100%;border:0;border-radius:0;padding:10px;gap:8px}
.device .photo svg{aspect-ratio:300/170}
.dev-cap{margin:10px 0 0;text-align:center;font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.dev-cap .c1{display:none}
.scene:not([data-step="0"]) .dev-cap .c0{display:none}
.scene:not([data-step="0"]) .dev-cap .c1{display:inline}
.regp .rows{flex:1;min-height:0;overflow:hidden}
.rows li{display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 14px;border-bottom:1px solid var(--hair-1)}
.rows li svg{width:14px;height:14px;margin-top:3px;color:var(--ok)}
.rows li p{margin:0;font:700 12px/1.35 var(--mono);letter-spacing:.06em;color:var(--platinum)}
.rows li p span{display:block;font:400 13px/1.35 var(--text);letter-spacing:0;color:var(--steel)}
.rows .rh{font-weight:400;font-size:11px;color:var(--silver);text-align:right}
.rows .rh span{font:400 11px/1.35 var(--mono);color:var(--steel)}
.rows li.new{display:none;background:rgba(63,174,106,.06)}
.scene[data-step="2"] .rows li.new,.scene[data-step="3"] .rows li.new{display:grid;animation:rowin .45s var(--settle)}
@keyframes rowin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.rfoot{display:flex;align-items:center;gap:8px;margin:0;padding:10px 14px;border-top:1px solid var(--hair-1);font:400 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7fd19f}
.rfoot svg{width:14px;height:14px}
.rfoot .r6{display:none}
.scene[data-step="2"] .rfoot .r5,.scene[data-step="3"] .rfoot .r5{display:none}
.scene[data-step="2"] .rfoot .r6,.scene[data-step="3"] .rfoot .r6{display:inline}
.cover{position:absolute;left:12px;right:12px;top:52px;bottom:52px;padding:18px;border:1px solid var(--hair-3);background:#060708;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .4s var(--settle)}
.scene[data-step="3"] .cover{opacity:1;transform:none}
.cover .t{margin:0;font:400 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.cover .h{margin:10px 0 14px;font:500 26px/1.1 var(--display);color:var(--platinum)}
.cover dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:7px 12px;margin:0;font-size:14px}
.cover dt{font:400 11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.cover dd{margin:0;color:var(--platinum)}
.cover-seal{position:absolute;right:16px;bottom:16px;width:54px;height:54px}
.cover-seal .pz-f{fill:#060708;stroke:url(#bev);stroke-width:2.6}

/* ---------- 05 the assay bench ---------- */
.bench-sec{background:radial-gradient(ellipse 70% 40% at 50% 0%,rgba(255,255,255,.035),transparent 70%)}
.bench-wrap{max-width:1600px;margin:0 auto}
.bench{position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:16px}
.stamp-band{grid-column:1/-1;position:relative;height:60px}
.rec{position:relative;display:flex;flex-direction:column;min-width:0;padding:0 16px 16px;border:1px solid var(--hair-2);background:var(--ink-1);transition:border-color .3s,background-color .3s}
.rec-p{display:grid;place-items:center;height:76px}
.rp{position:relative;display:block;width:48px;height:48px}
.rp .pz{width:100%;height:100%}
.blk{position:absolute;left:-8px;top:30px;z-index:2;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;pointer-events:none}
.blk i{padding:2px 4px;background:#000;font:400 11px/1 var(--mono);font-style:normal;letter-spacing:.02em;color:var(--steel);white-space:nowrap;transition:color .3s}
.blk .crack{display:none;width:14px;height:30px;margin-top:2px}
.rref{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0;font:700 13px/1 var(--mono);letter-spacing:.12em}
.rtag{padding:5px 6px 4px;border:1px solid rgba(63,174,106,.55);font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:#7fd19f;white-space:nowrap}
.rloc{margin:12px 0 0;font-size:15.5px;line-height:1.35;color:var(--platinum)}
.rprod{margin:4px 0 0;min-height:2.8em;font-size:14px;line-height:1.4;color:var(--steel)}
.rrate{min-width:0;margin:12px 0 0;padding:0;border:0}
.rrate legend{padding:0;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.seg{display:flex;margin-top:8px;border:1px solid var(--hair-2)}
.seg input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.seg label{flex:1;display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;padding:0 2px;border-left:1px solid var(--hair-2);
	font:700 12px/1 var(--mono);letter-spacing:.02em;color:var(--steel);cursor:pointer;transition:background-color .2s,color .2s;white-space:nowrap}
.seg label:first-of-type{border-left:0}
.seg label:hover{color:var(--platinum);background:rgba(255,255,255,.05)}
.seg input:checked+label{background:var(--silver);color:#000}
.seg input:focus-visible+label{outline:2px solid var(--vermilion);outline-offset:-2px}
.rmeta{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 10px;margin:12px 0 0;font:400 12px/1.45 var(--mono)}
.rmeta dt{letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.rmeta dd{min-width:0;margin:0;color:var(--silver);overflow-wrap:anywhere}
.rmeta .hx{color:var(--platinum);transition:color .3s}
.rec.fail{border-color:rgba(216,68,43,.72);background:#0c0605}
.rec.fail .rtag{border-color:rgba(216,68,43,.8);color:#f3a091}
.rec.fail .rec-p .pz-f{stroke:var(--vermilion)}
.rec.fail .hx{color:var(--vermilion);text-decoration:line-through;text-decoration-color:rgba(216,68,43,.9)}
.rec.lf .blk i{color:var(--vermilion);text-decoration:line-through}
.rec.lf .blk .crack{display:block}
.rec.edited .seg input:checked+label{background:var(--vermilion);color:#fff}
.rec.hint{border-color:var(--platinum)}
.stamp{position:absolute;left:var(--sx,50%);top:8px;z-index:6;padding:8px 14px 6px;border:3px double var(--vermilion);background:#000;color:var(--vermilion);
	font:700 15px/1.1 var(--mono);letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;text-align:center;transform:translateX(-50%) rotate(-4deg);opacity:0;pointer-events:none}
.stamp small{display:block;margin-top:3px;font:400 11px/1.3 var(--mono);letter-spacing:.12em}
.stamp.on{opacity:1}
.stamp.inline{display:none;position:static;left:auto;transform:rotate(-4deg);padding:6px 10px 5px;font-size:12px}
.verdict{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;min-height:76px;margin-top:20px;padding:14px 18px;border:1px solid var(--hair-2);background:#050505}
.verdict .dot{flex:none;width:10px;height:10px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 4px rgba(63,174,106,.15)}
.vt{flex:1 1 300px;margin:0;font:700 13px/1.45 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--platinum)}
.restrike{margin-left:auto}
.verdict.bad{border-color:rgba(216,68,43,.72)}
.verdict.bad .dot{background:var(--vermilion);box-shadow:0 0 0 4px rgba(216,68,43,.18)}
.verdict.bad .vt{color:#f3a091}
.bench-ns{margin:14px 0 0;color:var(--steel)}
.bench-notes{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:12px clamp(24px,4vw,72px);margin-top:28px;padding-top:24px;border-top:1px solid var(--hair-1)}
.bench-notes p{margin:0;color:var(--body);max-width:64ch}
.bench-notes .mono-note{font-size:12px;color:var(--silver)}
@media (max-width:1023px){
	.bench{grid-template-columns:minmax(0,1fr);row-gap:30px}
	.stamp-band{display:none}
	.rec{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:14px;padding:16px}
	.rec-p{grid-row:1/span 3;align-self:start;height:auto;padding-top:2px}
	.rp{width:44px;height:44px}
	.rec>.rref,.rec>.rloc,.rec>.rprod,.rec>.rrate,.rec>.rmeta{grid-column:2}
	.rloc{margin-top:8px}
	.rprod{min-height:0}
	.blk{left:16px;top:-25px;transform:none;flex-direction:row;gap:8px}
	.blk::before{content:"Link";font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
	.blk .crack{width:10px;height:20px;margin-top:-4px;transform:rotate(90deg)}
	.verdict.bad .stamp.inline{display:inline-block;opacity:1}
	.bench-notes{grid-template-columns:minmax(0,1fr)}
}
@media (min-width:600px) and (max-width:1023px){
	.rec{grid-template-columns:48px minmax(0,1fr) minmax(0,1fr)}
	.rec>.rref,.rec>.rloc,.rec>.rprod{grid-column:2}
	.rec>.rrate{grid-column:3;grid-row:1/span 2;margin-top:0}
	.rec>.rmeta{grid-column:3;grid-row:3/span 2;margin-top:8px}
}
@media (max-width:599px){.vt{flex-basis:100%;font-size:12.5px}.restrike{width:100%;margin-left:0}}

/* ---------- 06 handover ---------- */
.hand-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:clamp(20px,3vw,48px);align-items:stretch}
.route-fig{border:1px solid var(--hair-2);background:var(--ink-1);display:flex;flex-direction:column}
.route-fig figcaption{margin-top:auto;padding:12px 16px;border-top:1px solid var(--hair-1);font-size:15px;color:var(--body)}
.howsvg{padding:clamp(22px,3vw,44px) clamp(16px,2.6vw,40px)}
.route{display:flex;align-items:flex-start}
.stn{flex:1;min-width:0;text-align:center}
.stn-p{width:76px;height:76px;margin:0 auto 14px;overflow:visible;color:var(--platinum)}
.stn-p .o{fill:#060708;stroke:url(#bev);stroke-width:2.4}
.stn-p .pin-o{fill:#060708;stroke:#e9ebee;stroke-width:1.5}
.stn-t2{font:700 19px var(--mono);fill:url(#plt);text-anchor:middle}
.stn-k{margin:0;font:400 12px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--silver)}
.stn-t{margin:6px 0 8px;font:500 clamp(24px,2vw,32px)/1.1 var(--display);color:var(--platinum)}
.stn ul{display:inline-grid;gap:4px;font-size:15px;line-height:1.35;color:var(--body)}
.hop{flex:none;display:flex;flex-direction:column;align-items:center;gap:8px;width:clamp(64px,7vw,120px);padding-top:24px;font:400 11px/1.2 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.hop svg{width:22px;height:22px;color:var(--silver)}
.obs-card{display:flex;flex-direction:column;border:1px solid var(--hair-2);background:var(--ink-1)}
.obs-h{display:flex;justify-content:space-between;margin:0;padding:12px 18px;border-bottom:1px solid var(--hair-1);font:400 11px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--steel)}
.obs-card ul li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--hair-1);font:500 clamp(20px,1.5vw,25px)/1.2 var(--display);color:var(--platinum)}
.obs-card ul b{font:700 14px/1 var(--mono);color:var(--silver)}
.obs-n{margin:0;padding:14px 18px 0;font-size:15px;color:var(--body)}
.obs-v{margin:auto 0 0;padding:12px 18px 16px}
@media (max-width:1023px){
	.hand-grid{grid-template-columns:minmax(0,1fr)}
	.route{flex-direction:column;align-items:stretch}
	.stn{display:grid;grid-template-columns:64px minmax(0,1fr);column-gap:16px;text-align:left}
	.stn-p{grid-row:1/span 3;width:60px;height:60px;margin:0}
	.stn ul{display:grid}
	.hop{flex-direction:row;width:auto;height:52px;padding:0 0 0 18px;gap:12px}
	.hop svg{transform:rotate(90deg);order:-1}
}

/* ---------- 07 for the money side ---------- */
.money-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,6fr);gap:clamp(28px,5vw,96px);align-items:center}
.money .body{margin-top:24px}
.f4{border:1px solid var(--hair-2);background:var(--ink-1)}
.f4-in{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0}
.f4-val{padding:22px 20px;border-right:1px solid var(--hair-1)}
.f4-val .k,.f4-val .n{margin:0;font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.f4-val .v{margin:8px 0 2px;font:600 clamp(44px,4vw,68px)/1 var(--display);color:var(--platinum)}
.meter{height:4px;margin:16px 0 0;background:rgba(255,255,255,.1)}
.meter i{display:block;width:69%;height:100%;background:linear-gradient(90deg,#8f9196,#ececec)}
.f4-c{padding:12px 20px}
.f4-c li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--hair-1);font-size:15.5px;color:var(--body)}
.f4-c li:last-child{border-bottom:0}
.f4-c b{margin-left:auto;font:700 14px/1 var(--mono);color:var(--platinum)}
.f4-c i{width:9px;height:9px;border-radius:50%;flex:none}
.d-out{background:var(--out)}.d-prog{background:var(--wip)}.d-ok{background:var(--ok)}.d-def{background:var(--bad)}
.f4 figcaption{padding:10px 16px;border-top:1px solid var(--hair-1);font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.office{margin-top:clamp(40px,5vw,80px);padding-top:22px;border-top:1px solid var(--hair-1)}
.office-h{margin:0 0 14px;font:400 12px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--silver)}
.office ul{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 clamp(16px,2vw,40px)}
.office li{position:relative;padding:12px 0 12px 20px;border-bottom:1px solid var(--hair-1);font-size:16px;line-height:1.4;color:var(--body)}
.office li::before{content:"";position:absolute;left:0;top:19px;width:7px;height:7px;border:1px solid var(--silver);transform:rotate(45deg)}
@media (max-width:1023px){.money-grid{grid-template-columns:minmax(0,1fr)}.office ul{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:599px){.f4-in{grid-template-columns:minmax(0,1fr)}.f4-val{border-right:0;border-bottom:1px solid var(--hair-1)}.office ul{grid-template-columns:minmax(0,1fr)}.office li{padding:10px 0 10px 20px;font-size:15.5px}.office li::before{top:17px}}

/* ---------- 08 price ---------- */
.pcards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--hair-2);background:var(--ink-1)}
.pc{display:flex;flex-direction:column;min-width:0;padding:22px clamp(16px,1.8vw,30px) 24px;border-left:1px solid var(--hair-1)}
.pc:first-child{border-left:0}
.pc-k{display:flex;justify-content:space-between;gap:8px;margin:0;font:400 11px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.pc-k span:first-child{color:var(--platinum)}
.pc-v{margin:14px 0 6px;font:600 clamp(46px,4.6vw,80px)/1 var(--display);color:var(--platinum)}
.pc-s{margin:0;font-size:16px;line-height:1.4;color:var(--platinum)}
.pc-n{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--hair-1);font-size:14px;line-height:1.5;color:var(--steel)}
.calc-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(24px,4vw,72px);align-items:start;margin-top:clamp(24px,3vw,44px)}
.calc{padding:clamp(18px,2.2vw,34px);border:1px solid var(--hair-2);background:#050505}
.calc-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.calc-l{font:400 12px/1.3 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--silver)}
.calc-n{font:600 clamp(34px,3vw,48px)/1 var(--display);color:var(--platinum)}
.calc input[type=range]{display:block;width:100%;height:44px;margin:10px 0 12px;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
.calc input[type=range]::-webkit-slider-runnable-track{height:3px;background:linear-gradient(90deg,var(--platinum) var(--fill,18%),rgba(255,255,255,.16) var(--fill,18%))}
.calc input[type=range]::-moz-range-track{height:3px;background:rgba(255,255,255,.16)}
.calc input[type=range]::-moz-range-progress{height:3px;background:var(--platinum)}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:26px;height:26px;margin-top:-11.5px;border:1px solid #000;border-radius:0;background:var(--platinum);transform:rotate(45deg) scale(.8)}
.calc input[type=range]::-moz-range-thumb{width:20px;height:20px;border:1px solid #000;border-radius:0;background:var(--platinum);transform:rotate(45deg)}
.presets{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.presets button{min-height:44px;padding:0 4px;border:1px solid var(--hair-3);background:transparent;cursor:pointer;font:700 11.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--platinum);transition:background-color .2s,color .2s}
.presets button:hover{border-color:var(--platinum)}
.presets button.on{background:var(--silver);border-color:var(--silver);color:#000}
.calc-out{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin-top:20px;border-top:1px solid var(--hair-1)}
.calc-out>div{padding:16px 16px 0 0}
.calc-out>div+div{padding-left:16px;border-left:1px solid var(--hair-1)}
.calc-out .k,.calc-out .n{margin:0;font:400 11px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.calc-out .v{margin:6px 0 4px;font:600 clamp(32px,2.8vw,46px)/1 var(--display);color:var(--platinum)}
.calc-out .v small{font:400 15px var(--text);color:var(--steel)}
.calc-say{margin:18px 0 0;font-size:16px;color:var(--body)}
.price-notes p{margin:0 0 14px;font-size:15.5px;color:var(--body)}
.price-notes a:not(.btn){display:inline-flex;align-items:center;min-height:44px;margin:-12px 0;vertical-align:middle;color:var(--platinum)}
.price-notes .buy{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:22px}
.price-notes .buy span{font-size:14.5px;color:var(--steel)}
@media (max-width:1023px){.pcards{grid-template-columns:repeat(2,minmax(0,1fr))}.pc:nth-child(3){border-left:0}.pc:nth-child(n+3){border-top:1px solid var(--hair-1)}.calc-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:599px){
	.pc{padding:16px 12px 18px}.pc-v{font-size:40px;margin:10px 0 4px}.pc-s{font-size:14.5px}.pc-n{font-size:13px}
	.pc-k{flex-direction:column;gap:4px}
	.presets button{font-size:11px;letter-spacing:.04em}
	.calc-out>div+div{padding-left:12px}
}

/* ---------- 09 independence ---------- */
.indep-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px clamp(28px,5vw,96px);align-items:start}
.indep .h2{max-width:14ch}
.indep .body{padding-top:44px}
.fig5{grid-column:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.inst{position:relative;padding:16px;border:1px solid var(--hair-2);background:var(--ink-1)}
.inst::before{content:"";position:absolute;right:12px;top:12px;width:12px;height:12px;border:1px solid var(--silver);transform:rotate(45deg)}
.inst.you{border-color:var(--hair-3)}
.inst.you::before{background:var(--silver)}
.inst.rfp{border-style:dashed}
.inst.rfp::before{border-color:var(--steel);background:linear-gradient(45deg,transparent 46%,var(--steel) 46%,var(--steel) 54%,transparent 54%)}
.ik{margin:0 22px 6px 0;font:400 11px/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--silver)}
.iv{margin:0;font:500 20px/1.2 var(--display);color:var(--platinum)}
.inst.rfp .iv{color:var(--steel)}
.fig5 figcaption{grid-column:1/-1;font:400 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.fig5 figcaption b{font-weight:700;color:var(--platinum)}
@media (max-width:1023px){.indep-grid{grid-template-columns:minmax(0,1fr)}.indep .body{padding-top:0}.fig5{grid-column:1}.indep .h2,.wedge .h2{max-width:20ch}}
@media (max-width:599px){.fig5{grid-template-columns:minmax(0,1fr)}}

/* ---------- 10 proof ---------- */
.certs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.cert{display:flex;flex-direction:column;min-height:196px;padding:20px;border:1px solid var(--hair-2);background:var(--ink-1);color:inherit;text-decoration:none;transition:border-color .2s}
.cert:hover{border-color:var(--platinum)}
.ck{margin:0;font:400 11px/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--steel)}
.cv{margin:12px 0 6px;font:500 clamp(23px,1.8vw,30px)/1.1 var(--display);color:var(--platinum)}
.cn{margin:0;font-size:14.5px;line-height:1.45;color:var(--body);overflow-wrap:anywhere}
.cl{display:flex;align-items:center;gap:8px;margin:auto 0 0;padding-top:16px;font:400 11.5px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--platinum)}
.cl svg{width:14px;height:14px}
.cert.nr{border-style:dashed}
.honest{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:20px clamp(28px,5vw,96px);margin-top:clamp(40px,5vw,72px);padding-top:28px;border-top:1px solid var(--hair-1)}
.honest-big{margin:0;max-width:22ch;font:500 clamp(26px,2.3vw,40px)/1.2 var(--display);color:var(--platinum)}
@media (max-width:1023px){.certs{grid-template-columns:repeat(2,minmax(0,1fr))}.honest{grid-template-columns:minmax(0,1fr)}}
@media (max-width:599px){.certs{grid-template-columns:minmax(0,1fr);gap:10px}.cert{min-height:0;padding:16px}.cl{padding-top:10px}}

/* ---------- 11 close ---------- */
.close{position:relative;padding:clamp(80px,8vw,150px) var(--pad) clamp(64px,6vw,110px);text-align:center;
	background:radial-gradient(ellipse 50% 60% at 50% 35%,rgba(196,214,236,.06),transparent 70%)}
.close .h2{margin:0 auto;max-width:20ch}
.close .cta-row{margin-top:30px}
.close-alt{margin:16px 0 0}
.close .stores{display:flex;justify-content:center;gap:12px;margin:10px 0 0}
.close .stores img,.foot-stores img{height:40px;width:auto}
.stores img.gp,.foot-stores img.gp{border-radius:5px}
.keep{max-width:620px;margin:clamp(40px,5vw,64px) auto 0;padding-top:28px;border-top:1px solid var(--hair-1);text-align:left}
.keep-h{margin:0 0 8px;font:400 12px/1.3 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--silver)}
.keep-p{margin:0 0 16px;color:var(--body)}
.keep-f{display:flex;gap:10px}
.keep-f input[type=email]{flex:1;min-width:0;min-height:48px;padding:0 14px;border:1px solid var(--hair-3);border-radius:0;background:#050505;color:var(--platinum);font-size:16px}
.keep-f input[type=email]::placeholder{color:#8a8b8f}
.keep-f input[type=email]:focus-visible{outline:2px solid var(--vermilion);outline-offset:2px}
.keep-f .hp{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);opacity:0;pointer-events:none}
.keep-m{min-height:1.4em;margin:10px 0 0;font-size:15px;color:var(--silver)}
.keep-m.err{color:#f3a091}
.keep-s{margin:4px 0 0;font:400 11px/1.5 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
@media (max-width:599px){.close .cta-row{width:100%}.keep-f{flex-direction:column}.keep-f .btn{width:100%}}

/* ---------- 12 footer ---------- */
.foot{position:relative;padding:clamp(56px,6vw,100px) var(--pad) calc(48px + env(safe-area-inset-bottom));border-top:1px solid var(--hair-2);background:#000}
.foot-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(32px,5vw,110px);align-items:start}
.crest-l{display:block}
.crest{width:clamp(160px,14vw,240px);height:auto}
.crest-w{font:500 96px var(--display);letter-spacing:20px;fill:#ececec}
.crest-m{font:500 36px var(--display);letter-spacing:9px;fill:#9a9a9a}
.foot-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0 24px}
.fcol summary{display:block;margin:0 0 6px;font:400 11px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--platinum);list-style:none;cursor:default}
.fcol summary::-webkit-details-marker{display:none}
.fh{display:none;margin:0 0 6px;font:400 11px/1.4 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--platinum)}
.fcol a{display:flex;align-items:center;min-height:44px;font-size:15px;line-height:1.3;color:var(--steel);text-decoration:none;transition:color .2s}
.fcol a:hover{color:var(--platinum)}
.foot-mid{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px 32px;margin-top:36px;padding-top:24px;border-top:1px solid var(--hair-1)}
.foot-stores{display:flex;gap:12px;margin:0}
.foot-stores a{display:inline-flex;align-items:center;min-height:44px}
.foot-badge{display:flex;align-items:center;gap:16px;margin:0;font-size:13.5px;line-height:1.65;color:var(--steel)}
.foot-badge img{width:auto;height:58px;flex:none}
.foot-legal{margin-top:24px;padding-top:22px;border-top:1px solid var(--hair-1);font-size:14px;line-height:1.7;color:var(--steel)}
.foot-legal p{margin:0 0 4px}
.foot-legal .tm{margin-bottom:10px;font:500 20px/1.3 var(--display);color:var(--silver)}
.foot-legal a{display:inline-flex;align-items:center;min-height:44px;margin:-12px 0;vertical-align:middle;color:var(--silver)}
.foot-legal .sales a{justify-content:center;min-width:44px}
.signoff{margin-top:clamp(36px,4vw,64px);text-align:center}
.so-k{display:flex;align-items:center;justify-content:center;gap:14px;margin:0;font:400 11px/1 var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--steel)}
.so-k::before,.so-k::after{content:"";width:48px;height:1px;background:var(--hair-2)}
.chiron{width:min(400px,72vw);height:auto;margin:6px auto 0}
.js:not(.rm) .signoff:not(.struck) .chiron{opacity:0}
.signoff .chiron{transition:opacity .6s}
@media (max-width:1023px){.foot-top{grid-template-columns:minmax(0,1fr)}.foot-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px}}
@media (max-width:599px){
	.foot{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
	.crest{width:124px}
	.foot-cols{grid-template-columns:minmax(0,1fr);gap:0;border-bottom:1px solid var(--hair-1)}
	.fcol{border-top:1px solid var(--hair-1)}
	.fcol summary{display:flex;justify-content:space-between;align-items:center;min-height:52px;margin:0;cursor:pointer}
	.fcol summary::after{content:"+";font:400 18px/1 var(--mono);color:var(--silver)}
	.fcol[open] summary::after{content:"-"}
	.fcol a{padding-left:4px}
	.foot-mid{flex-direction:column;align-items:flex-start}
	.foot-badge img{height:50px}
	.foot-legal{font-size:13.5px}
}

/* ---------- phone bar, after the hero ---------- */
.bar{display:none}
@media (max-width:767px){
	.bar{position:fixed;left:0;right:0;bottom:0;z-index:55;display:grid;grid-template-columns:1.25fr 1fr;gap:8px;padding:6px 12px calc(6px + env(safe-area-inset-bottom));
		background:rgba(0,0,0,.94);border-top:1px solid var(--hair-2);transform:translateY(110%);transition:transform .3s var(--settle)}
	.bar.on{transform:none}
	.bar .btn{min-height:44px;padding:0 8px;font-size:11.5px;letter-spacing:.12em}
	body.menu-open .bar{transform:translateY(110%)}
}

/* ---------- phones: the same story, tighter ---------- */
@media (max-width:599px){
	.sec{padding-top:50px;padding-bottom:54px}
	.close{padding-top:60px;padding-bottom:56px}
	.sec-lbl{margin-bottom:16px}
	.h2{font-size:32px;line-height:1.08;max-width:none}
	.wedge .h2{font-size:32px;max-width:none}
	.shead{margin-bottom:24px;gap:14px}
	.body p{margin-bottom:.8em}
	.pull{font-size:21px}
	.trades{margin-top:40px}
	.trades-h{margin-bottom:14px}
	.trade{padding:14px 14px 16px}
	.trade h4{padding-top:8px;margin-bottom:4px;font-size:25px}
	.trade p{font-size:15px}
	.ledger li{padding:12px 14px}
	.ledger .q{font-size:21px}
	.step{display:grid;grid-template-columns:48px minmax(0,1fr);column-gap:14px;align-items:start;padding:20px 0}
	.step-h{display:contents}
	.step-h .punch{grid-column:1;grid-row:1/span 3}
	.step-n{grid-column:2;margin-bottom:6px}
	.step>h3,.step>p,.step>.to-bench{grid-column:2}
	.step>.detail{grid-column:1/-1}
	.step h3{font-size:25px;margin-bottom:8px}
	.step>p{margin-bottom:.7em}
	.step[data-step="0"] > p:nth-of-type(2),.step[data-step="2"] > p:nth-of-type(2),.d-capture{display:none}
	.step-h{margin-bottom:8px}
	.step-h .punch{--s:48px}
	.maker{display:none}
	.d-body{padding:10px}
	.cap-rows li{padding:6px 10px}
	.snaps{padding:10px;gap:8px}
	.snaps li{padding:9px 10px 9px 46px}
	.snaps li::before{width:34px}
	.snaps dl{margin-top:5px}
	.moves{gap:12px}
	.mv{padding:16px}
	.mv h3{margin:8px 0 6px;font-size:25px}
	.mv>p{font-size:15.5px}
	.mini{padding-top:12px}
	.m-real img{aspect-ratio:720/470}
	.scr{padding:9px;gap:8px}
	.photo svg{aspect-ratio:300/150}
	.rec{padding:14px}
	.rloc{font-size:15px}
	.rprod{font-size:13.5px}
	.rmeta{font-size:11.5px;margin-top:10px}
	.verdict{padding:12px 14px}
	.bench-notes{margin-top:20px;padding-top:18px}
	.bench-notes p{font-size:15px}
	.howsvg{padding:16px}
	.stn-t{font-size:23px;margin:4px 0 4px}
	.stn ul{font-size:14.5px}
	.hop{height:44px}
	.route-fig figcaption{font-size:14px}
	.obs-card ul li{padding:11px 16px;font-size:20px}
	.obs-n{padding:12px 16px 0;font-size:14px}
	.obs-v{padding:8px 16px 12px}
	.money .body{margin-top:16px}
	.f4-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
	.f4-val{border-right:1px solid var(--hair-1);border-bottom:0;padding:16px 14px}
	.f4-val .v{font-size:38px}
	.f4-c{padding:6px 14px}
	.f4-c li{padding:7px 0;font-size:14px;gap:8px}
	.office{margin-top:32px;padding-top:16px}
	.office li{padding:8px 0 8px 18px;font-size:15px}
	.office li::before{top:15px}
	.pc:not(:nth-child(2)) .pc-n{display:none}
	.calc-grid{margin-top:16px}
	.calc-out .v{font-size:30px}
	.price-notes p{font-size:14.5px;margin-bottom:10px}
	.indep .body{padding-top:0}
	.inst{padding:12px 14px}
	.iv{font-size:18px}
	.certs{grid-template-columns:repeat(2,minmax(0,1fr))}
	.cert{padding:14px 12px}
	.cv{font-size:21px;margin:8px 0 4px}
	.cn{font-size:13.5px}
	.cl{font-size:11px;letter-spacing:.08em}
	.honest{margin-top:32px;padding-top:20px}
	.honest-big{font-size:25px}
	.keep{margin-top:32px;padding-top:20px}
	.foot{padding-top:44px}
	.foot-top{gap:24px}
	.foot-mid{margin-top:24px;padding-top:18px}
	.foot-legal{margin-top:18px;padding-top:16px}
	.signoff{margin-top:28px}
}

@media (max-width:599px){
	body{font-size:16px;line-height:1.55}
	.lede{font-size:16px}
	.trades-h p{display:none}
	#how .shead .body{display:none}
	.dwg-cap{display:none}
	.snaps dt:nth-of-type(2),.snaps dd:nth-of-type(2){display:none}
	.pl-photos svg{height:84px}
	.hashbox{padding:6px 8px}
	.struck-card{padding:8px}
	.share{padding:8px}
	.obs li{padding:5px 2px;font-size:13.5px}
}

@media (max-width:599px){
	.pl-bar span:last-child{display:none}
	.lk-tm{margin-top:8px}
}

@media (min-width:600px){.fcol summary{display:none}.fh{display:block}}
@media (max-width:599px){.plate{padding:6px}.plate::before{inset:2px;border-width:4px}.pl-dwg{padding:8px 4px 6px}}

/* ---------- ultra-wide: own the whole screen ---------- */
@media (min-width:1920px){
	.marks-grid{grid-template-columns:minmax(0,8fr) minmax(0,5fr)}
	.sec-lbl::after{max-width:320px}
}

@media (prefers-reduced-motion:reduce){
	*,*::before,*::after{animation:none!important;transition:none!important}
	.wm.sweep{-webkit-text-fill-color:currentColor;background:none}
}

/* ---------- numerals: lining figures everywhere. The font shorthand in each display rule resets the variant, so the
   feature is set on every element with !important (a later font shorthand would reset it); tabular figures stay on the hashes, times and the calculator ---------- */
*,*::before,*::after{font-variant-numeric:lining-nums!important;font-feature-settings:"lnum" 1,"liga" 0,"clig" 0,"dlig" 0!important}
.calc-n,.calc-out .v,.hashline,.hashline *,.hm em,.blk i,.rmeta,.rmeta *,.snaps dl,.snaps dl *,.hashbox,.rows .rh,.rows .rh *,.burn,.photo .st{font-variant-numeric:lining-nums tabular-nums!important;font-feature-settings:"lnum" 1,"tnum" 1,"liga" 0,"clig" 0,"dlig" 0!important}

/* TOUCH-MAIN START - 29 Oct touches: Rockfirepro logo in Made by, the signature flash */
.fv.fv-logo{margin:12px 0 6px;line-height:0}
.fv-logo a{display:inline-block}
.fv-logo img{display:block;height:clamp(26px,2.1vw,34px);width:auto}
.sig-wrap{position:relative;display:block;width:min(400px,72vw);margin:6px auto 0}
.sig-wrap .chiron{display:block;width:100%;height:auto;margin:0}
.chiron-flash{position:absolute;inset:0;pointer-events:none;opacity:0;
	-webkit-mask:url(img/chiron.webp) center/100% 100% no-repeat;mask:url(img/chiron.webp) center/100% 100% no-repeat;
	background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.75) 41%,#fff 47%,#fff 52%,#d4ddeb 56%,rgba(255,255,255,.6) 61%,transparent 72%) 115% 0/260% 100% no-repeat}
.signoff.flash .chiron-flash{animation:sigflash 1.5s cubic-bezier(.45,0,.25,1) .45s forwards}
@keyframes sigflash{0%{opacity:1;background-position:115% 0}100%{opacity:1;background-position:-15% 0}}
.rm .chiron-flash{display:none}
.photo img.real{display:block;width:100%;height:auto;aspect-ratio:300/190;object-fit:cover;object-position:50% 45%}
.device .photo img.real{aspect-ratio:300/170}
@media (max-width:599px){.photo img.real{aspect-ratio:300/150}}
/* the three trade cards: titles and descriptions on the same lines across the row, whatever the text length */
@media (min-width:1024px){@supports (grid-template-rows:subgrid){
	.trade-row{grid-template-rows:auto 1fr auto auto}
	.trade{display:grid;grid-row:span 4;grid-template-rows:subgrid;row-gap:0}
	.trade .tag{grid-row:1}
	.trade h4{grid-row:3;margin:0 0 8px;align-self:end}
	.trade h4+p{grid-row:4;align-self:start}
}}
/* footer crest: top on the column headings, bottom on the "Sign in" line (headings + four 44 px rows + the last line = 230 px) */
@media (min-width:1024px){.crest{width:auto;height:230px}}
.pl-photos img.r3d{display:block;width:100%;height:auto;aspect-ratio:200/90;object-fit:cover;object-position:50% 45%}
@media (max-width:1023px){.pl-photos img.r3d{aspect-ratio:auto;height:96px}}
@media (max-width:599px){.pl-photos img.r3d{height:84px}}
/* TOUCH-MAIN END */

/* TOUCH-FIG01 START */
/* FIG. 01 drawn as the full record sheet an inspector would print (sample SA-016): status band, a denser drawing
   excerpt, where / who / when beside it, the full specification, richer photos. Overrides only; ids, the five
   punches and fitPlate() are unchanged. */
/* pinned desktop only: a little more width for the plate, a little less gap */
@media (min-width:1200px) and (min-height:860px){html.js:not(.rm) .marks:not(.nopin) .marks-grid{grid-template-columns:minmax(0,8fr) minmax(0,5fr);column-gap:clamp(56px,5vw,96px)}}
/* the plate takes its width from the wrap, not from itself, so fitPlate()'s zoom scales it evenly (drawing and photos included) */
.plate-wrap{container-type:inline-size}
.f1x{--pad2:clamp(12px,1.3vw,22px);width:100cqi}
.f1x .pl-bar{padding:5px var(--pad2);font-size:11.5px;letter-spacing:.14em}
/* title band: the seal, the work type and its status at a glance */
.f1x .pl-title{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 18px;padding:6px var(--pad2) 7px}
.f1x .pl-title .ref{font-size:clamp(34px,2.5vw,48px)}
.f1x .pl-title .what{margin-top:3px;font-size:clamp(17px,1.25vw,21px)}
.f1x .pl-title .what span{color:var(--steel)}
.pl-stat{display:grid;grid-template-columns:repeat(4,auto);margin:0;border:1px solid var(--hair-1);background:rgba(255,255,255,.02)}
.pl-stat>div{min-width:0;padding:5px 12px 6px;border-left:1px solid var(--hair-1)}
.pl-stat>div:first-child{border-left:0}
.pl-stat dt{font:400 11.5px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--steel)}
.pl-stat dd{margin:3px 0 0;font:600 15px/1.2 var(--text);color:var(--platinum);white-space:nowrap}
.pl-stat .ok dd{color:var(--ok)}
.pl-stat .ok dd::before{content:"";display:inline-block;width:8px;height:8px;margin:0 6px 1px 1px;border-radius:50%;background:var(--ok);box-shadow:0 0 0 3px rgba(63,174,106,.2)}
/* body: the drawing takes most of the width; where / who / when beside it */
.f1x .pl-body{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.f1x .pl-dwg{display:flex;flex-direction:column;padding:6px 10px 8px}
.dwg-h{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 8px;margin:0 0 4px;font:400 11.5px/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--steel)}
.dwg-h span:last-child{color:var(--silver)}
.f1x .dwg-art{flex:1}
.f1x .dwg-art svg.dw{width:100%;height:auto}
.dw-bg{fill:rgba(255,255,255,.015);stroke:var(--hair-1);stroke-width:.8}
.dw-grid path{fill:none;stroke:rgba(255,255,255,.17);stroke-width:.7;stroke-dasharray:7 3 1.5 3}
.dw-bub circle{fill:#08090a;stroke:rgba(255,255,255,.45);stroke-width:.8}
.dw-bt text{font:400 12px var(--mono);fill:var(--silver);text-anchor:middle}
.dw-w rect{fill:#2c2e32;stroke:#d4d4d4;stroke-width:.8}
.dw-sh rect{fill:url(#f1-brd);stroke:#d4d4d4;stroke-width:.7}
.dw-pt rect{fill:#1a1c1f;stroke:rgba(255,255,255,.5);stroke-width:.6}
.dw-st path{fill:none;stroke:rgba(255,255,255,.24);stroke-width:.7}
.dw-st .up{stroke:rgba(255,255,255,.55)}
.dw-dr path{fill:none;stroke:rgba(255,255,255,.42);stroke-width:.7}
.dw-sv circle,.dw-sv rect{fill:#0d0e10;stroke:rgba(255,255,255,.5);stroke-width:.7}
.dw-sv .cu,.dw-cu{fill:#2a1a10;stroke:#c48a5e;stroke-width:1.1}
.dw-run{fill:none;stroke:#c48a5e;stroke-width:1;stroke-dasharray:4 2.5;opacity:.85}
.dw-rm text,text.dw-rm{font:400 12px var(--mono);letter-spacing:.04em;fill:#9a9b9f;text-anchor:middle}
.dw-rm .sm{fill:var(--silver)}
text.dw-rm.cor{text-anchor:start}
text.dw-rm.run{text-anchor:end;fill:#c48a5e}
.dw-rev path{fill:#08090a;stroke:var(--silver);stroke-width:.9}
.dw-rev text{font:700 12px var(--mono);fill:var(--platinum);text-anchor:middle}
.dw-n circle{fill:none;stroke:rgba(255,255,255,.45);stroke-width:.8}
.dw-n path{fill:var(--silver)}
.dw-pin use{fill:#08090a;stroke-width:1.6}
.dw-pin text{font:700 12px var(--mono);letter-spacing:0}
.dw-pin.ok use{stroke:var(--ok)}.dw-pin.ok text{fill:var(--ok)}
.dw-pin.wip use{stroke:var(--wip)}.dw-pin.wip text{fill:var(--wip)}
.dw-pin.out use{stroke:#a3a3a3}.dw-pin.out text{fill:#a9a9a9}
.dw-pin.bad use{stroke:var(--bad)}.dw-pin.bad text{fill:#ec6a52}
.dw-halo{fill:rgba(63,174,106,.12);stroke:var(--ok);stroke-width:1;stroke-dasharray:3 2}
.dw-me{fill:#08090a;stroke:var(--ok);stroke-width:2.2}
.dw-ld{stroke:var(--ok);stroke-width:1}
.dw-tag{fill:#000;stroke:var(--ok);stroke-width:1}
.dw-tagt{font:700 13px var(--mono);fill:var(--platinum);text-anchor:middle}
.dwg-key{display:flex;flex-wrap:wrap;gap:3px 10px;margin:6px 0 0;font:400 11.5px/1.3 var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--steel)}
.dwg-key li{display:inline-flex;align-items:center;gap:5px}
.dwg-key li::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--c,currentColor)}
.dwg-key .k-ok{--c:var(--ok)}.dwg-key .k-wip{--c:var(--wip)}.dwg-key .k-out{--c:#a3a3a3}.dwg-key .k-bad{--c:var(--bad)}
.f1x .p-seal{left:57%;top:85%;--s:52px;margin:-26px 0 0 -26px}
/* the record's groups: small mono labels, values in the text face */
.f1x .grp-h{margin:0 0 3px;font-size:11.5px;letter-spacing:.2em}
.f1x .grp-h span{margin-left:8px;color:var(--steel);letter-spacing:.14em}
.f1x .grp dl{gap:0 12px}
.f1x .grp dt{font-size:11.5px;line-height:1.4;letter-spacing:.08em}
.f1x .grp dd{font-size:14px;line-height:1.3}
.f1x .pl-groups dd{font-size:13.5px}
.f1x .grp dd .u{margin-left:6px;font:400 11.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--steel)}
.f1x .grp dd .cur{display:inline-block;margin-left:6px;padding:2px 5px 1px;border:1px solid rgba(63,174,106,.55);font:400 11.5px/1.15 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ok);vertical-align:1px}
.f1x .pl-groups .grp{flex:1 1 auto;padding:6px var(--pad2) 7px}
.f1x .pl-groups .g-who,.f1x .pl-groups .g-when{padding-right:calc(var(--pad2) + 50px)}
.f1x .p-maker,.f1x .p-date{right:10px;top:8px;--s:46px}
.f1x .g-what{padding:7px calc(var(--pad2) + 58px) 8px var(--pad2);border-bottom:1px solid var(--hair-1)}
.f1x .g-what dl{grid-template-columns:max-content minmax(0,1fr) max-content minmax(0,1fr);gap:1px 14px}
.f1x .g-what .n{grid-column:1}
.f1x .g-what .note{grid-column:2/-1;color:var(--body)}
.f1x .p-std{right:12px;top:8px;--s:50px}
.f1x .rating{min-height:32px;margin:-6px 0 -7px;gap:7px;font-size:15px}
.f1x .rating .sw{padding:4px 5px 3px;font-size:11.5px}
/* photos: board layers, the copper pipe, the mastic going in, the label fixed; stamp burned in */
.f1x .pl-photos{gap:8px;padding:8px var(--pad2)}
.f1x .pl-photos svg{aspect-ratio:200/90}
.f1x .pl-photos figcaption{font-size:11.5px;padding:4px 6px 3px}
.f1x .burn{padding:3px 6px 4px;font-size:11.5px;line-height:1.3}
.f1x .burn .bl{color:#bdbdbd}
.f1x .pl-photos .lbl{font:700 10px var(--mono);fill:#111;text-anchor:middle;letter-spacing:.04em}
/* the chain: hallmark, seal and hash side by side */
.f1x .pl-chain{padding:6px var(--pad2) 7px}
.f1x .pl-chain-h{margin:0 0 5px;font-size:11.5px}
.f1x .hrow{padding:0;gap:6px}
.f1x .hm{display:grid;grid-template-columns:auto auto;gap:1px 7px;align-items:center;width:auto;text-align:left}
.f1x .hm .pz{grid-row:1/3;width:36px;height:36px}
.f1x .hm b{align-self:end;font-size:12px}
.f1x .hm em{align-self:start;font-size:11.5px}
.f1x .hashline{min-height:46px;padding:4px calc(var(--pad2) + 64px) 6px var(--pad2)}
.f1x .p-chain{--s:42px;margin-top:-21px}
/* the strike flashes: a burst of light on the mark while its ring opens (only on a real strike, never on reload) */
@keyframes f1-flash{0%{filter:brightness(1)}26%{filter:brightness(2.3) drop-shadow(0 0 10px rgba(235,242,255,.95))}100%{filter:brightness(1) drop-shadow(0 0 0 rgba(235,242,255,0))}}
html.js:not(.rm) #plate .punch:has(.pring) .pz{animation:f1-flash .62s cubic-bezier(.2,.8,.2,1) both}
/* narrower plates: 1024-1199 pinned, tablets, phones */
@container (max-width:700px){
	.dw-rm text,text.dw-rm,.dw-pin text,.dw-bt text,.dw-rev text{font-size:13px}
	.f1x .pl-body{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr)}
	.f1x .pl-title .ref{font-size:38px}
}
@container (max-width:680px){
	.f1x .hrow{gap:2px}
	.f1x .hm{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center}
}
@container (max-width:560px){
	.f1x .burn .bl,.f1x .burn .bd{display:none}
	.f1x .pl-body{grid-template-columns:minmax(0,1fr)}
	.f1x .pl-dwg{border-right:0;border-bottom:1px solid var(--hair-1)}
	.f1x .g-what dl{grid-template-columns:max-content minmax(0,1fr)}
	.f1x .g-what .note{grid-column:2}
	.f1x .pl-title{grid-template-columns:minmax(0,1fr)}
}
@container (max-width:440px){
	.pl-stat{grid-template-columns:repeat(4,minmax(0,1fr))}
	.pl-stat>div{padding:5px 6px}
	.pl-stat dt{font-size:10.5px;letter-spacing:.06em}
	.pl-stat dd{font-size:14px}
	.pl-stat .ok dd::before{width:7px;height:7px;margin-right:4px;box-shadow:none}
	.f1x .pl-dwg{padding:6px 4px 8px}
	.dwg-h{letter-spacing:.08em}
	.dwg-key{gap:3px 10px;letter-spacing:.06em}
	.f1x .pl-chain-h .en{display:none}
	.f1x .g-what{padding-right:calc(var(--pad2) + 50px)}
	.f1x .p-std{--s:44px}
	.f1x .pl-photos{gap:5px}
	.f1x .hm b{font-size:11px}
	.f1x .p-chain{--s:40px;margin-top:-20px}
}
/* TOUCH-FIG01 END */

/* TOUCH-FIG02 START */
/* FIG. 02, level 03 sheet FS-103 rev C (sample): a full fire-stopping GA drawn by build.py - walls by rating, doors and
   refs, windows, stair, lift, AOV, risers R1/R2 with their services, dimensions, legend, scale, title block. Pins take
   the app's status colours; FS-031 pings while it is being pinned and in progress. All text 19 units+ (10 px at 1440). */
.dwgp .plan{padding:4px 6px}
.plan .f2-grid path{fill:none;stroke:rgba(255,255,255,.15);stroke-width:1;stroke-dasharray:18 5 3 5}
.plan .f2-bub circle{fill:#000;stroke:var(--silver);stroke-width:1.6}
.plan .f2-bub text{font:400 21px var(--mono);fill:var(--silver);text-anchor:middle}
.plan .f2-dim path{fill:none;stroke:#7d8085;stroke-width:1}
.plan .f2-dim .tk{stroke:var(--silver);stroke-width:1.8}
.plan .f2-dim text{font:400 19px var(--mono);fill:#a9abb0;text-anchor:middle;paint-order:stroke;stroke:#08090a;stroke-width:5px;stroke-linejoin:round}
.plan .f2-wo path{fill:#d3d4d7;stroke:#d3d4d7;stroke-width:2.6;stroke-linejoin:miter}
.plan .f2-w .ext{fill:#3c3e43}
.plan .f2-w .w60{fill:url(#f2-h60)}
.plan .f2-w .w120{fill:#d3d4d7}
.plan .f2-pto{fill:#6c6f74;stroke:#6c6f74;stroke-width:2}
.plan .f2-ptf{fill:#0c0d0f}
.plan .f2-fx rect,.plan .f2-fx ellipse,.plan .f2-fx circle,.plan .f2-fx path{fill:none;stroke:#55585d;stroke-width:1}
.plan .f2-dr .lf{fill:none;stroke:#c9cacd;stroke-width:2.2}
.plan .f2-dr .sw{fill:none;stroke:#7b7e83;stroke-width:1}
.plan .f2-win rect{fill:#08090a;stroke:#cfd0d3;stroke-width:1}
.plan .f2-win path{fill:none;stroke:#8f9297;stroke-width:1}
.plan .f2-st path{fill:none;stroke:#7d8085;stroke-width:1}
.plan .f2-st .cut{stroke:#a9abb0;stroke-width:1.2}
.plan .f2-st .ar{stroke:#cfd0d3;stroke-width:1.4}
.plan .f2-st .ah{fill:#cfd0d3;stroke:none}
.plan .f2-lift rect,.plan .f2-lift path{fill:none;stroke:#8f9297;stroke-width:1.1}
.plan .f2-lift .car{stroke:#cfd0d3;stroke-width:1.3}
.plan .f2-lift .ld{stroke:#cfd0d3;stroke-width:2}
.plan .f2-aov rect,.plan .f2-aov path{fill:none;stroke:#5d6065;stroke-width:1}
.plan .f2-svc circle{fill:#000;stroke:#d9dadd;stroke-width:1.3}
.plan .f2-svc .in{fill:none;stroke:#8f9297;stroke-width:1}
.plan .f2-svc .ins{fill:none;stroke:#9a9da2;stroke-width:1;stroke-dasharray:2.5 2}
.plan .f2-svc .tray{fill:#1a1b1e;stroke:#d9dadd;stroke-width:1.2}
.plan .f2-svc .rung{fill:none;stroke:#8f9297;stroke-width:1}
.plan .f2-svc .duct{fill:none;stroke:#d9dadd;stroke-width:1.2}
.plan .f2-cloud{fill:none;stroke:#cfd0d3;stroke-width:1.5}
.plan .f2-rev path{fill:#000;stroke:#ececec;stroke-width:1.6;stroke-linejoin:round}
.plan .f2-rev text{font:700 19px var(--mono);fill:#ececec;text-anchor:middle}
.plan .f2-rm text{font:400 20px var(--mono);fill:#c9cbcf;text-anchor:middle;paint-order:stroke;stroke:#08090a;stroke-width:6px;stroke-linejoin:round}
.plan .f2-rm .ar{font-size:19px;fill:#8f9196}
.plan .f2-rm .sm,.plan .f2-rm .cor{font-size:19px;fill:#a9abb0}
.plan .f2-rid text{font:700 21px var(--mono);fill:var(--platinum);paint-order:stroke;stroke:#08090a;stroke-width:5px;stroke-linejoin:round}
.plan .f2-tag text{font:400 19px var(--mono);fill:#9da0a5;text-anchor:middle;paint-order:stroke;stroke:#08090a;stroke-width:5px;stroke-linejoin:round}
.plan .f2-rule{fill:none;stroke:var(--hair-2);stroke-width:1.2}
.plan .f2-key text{font:400 19px var(--text);fill:#bdbec2}
.plan .f2-key .hd{font:700 19px var(--mono);letter-spacing:2px;fill:#8f8f8f}
.plan .sw-ext{fill:#3c3e43;stroke:#d3d4d7;stroke-width:1.3}
.plan .sw-w60{fill:url(#f2-h60);stroke:#d3d4d7;stroke-width:1.3}
.plan .sw-w120{fill:#d3d4d7}
.plan .sw-pt{fill:#0c0d0f;stroke:#6c6f74;stroke-width:1.3}
.plan .st-out,.plan .st-prog,.plan .st-done,.plan .st-bad{stroke:#000;stroke-width:1.5}
.plan .st-out{fill:var(--out)}.plan .st-prog{fill:var(--wip)}.plan .st-done{fill:var(--ok)}.plan .st-bad{fill:var(--bad)}
.plan .f2-scale .on{fill:#cfd0d3}
.plan .f2-scale .off{fill:#000;stroke:#cfd0d3;stroke-width:1}
.plan .f2-scale text{font:400 19px var(--mono);fill:#a9abb0}
.plan .f2-scale .nt{fill:#bdbec2}
.plan .f2-north circle{fill:none;stroke:var(--silver);stroke-width:1.6}
.plan .f2-north path{fill:var(--silver)}
.plan .f2-north .o{fill:#000;stroke:var(--silver);stroke-width:1.2}
.plan .f2-north text{font:700 19px var(--mono);fill:var(--silver);text-anchor:middle}
.plan .f2-tb .fr{fill:#050506;stroke:var(--hair-3);stroke-width:1.4}
.plan .f2-tb .ln{fill:none;stroke:var(--hair-2);stroke-width:1}
.plan .f2-tb text{font:400 19px var(--mono);fill:var(--platinum)}
.plan .f2-tb .k{fill:#8f8f8f}
.plan .f2-tb .pj{font:600 31px var(--display);fill:var(--platinum)}
.plan .f2-tb .lv{font:400 21px var(--text);fill:#d5d6d9}
.plan .f2-tb .smp{fill:none;stroke:var(--silver);stroke-width:1.4}
.plan .f2-tb .smt{font:700 19px var(--mono);letter-spacing:1px;fill:var(--silver);text-anchor:middle}
.plan .f2-tb .ds{font:400 19px var(--text);fill:#bdbec2}
.plan .f2-tb .rv{font-weight:700}
/* pins: status colour on the head, black chip; FS-031 keeps its platinum ring until it is struck */
.dwgp .pin .stem{stroke:var(--silver);stroke-width:2.6}
.dwgp .pin .hd{stroke:#000;stroke-width:2.4}
.dwgp .pin .pa{font:600 21px var(--display);fill:#000}
.dwgp .pin .pch{fill:#000;stroke:var(--hair-3);stroke-width:1.4}
.dwgp .pin .pl{font:700 21px var(--mono);letter-spacing:.5px}
.dwgp .pin[data-s="done"] .hd{fill:var(--ok)}
.dwgp .pin[data-s="prog"] .hd{fill:var(--wip)}
.dwgp .pin[data-s="out"] .hd{fill:var(--out)}
.dwgp .pin[data-s="bad"] .hd{fill:var(--bad)}
.dwgp .pin.me .hd{fill:#000;stroke:var(--platinum);stroke-width:3}
.dwgp .pin.me .pa{fill:var(--platinum)}
.dwgp .pin.me .pch{stroke:var(--platinum);stroke-width:2}
.scene[data-step="1"] .dwgp .pin.me .hd{fill:var(--wip);stroke:#000}
.scene[data-step="1"] .dwgp .pin.me .pch{stroke:var(--wip)}
.scene[data-step="2"] .dwgp .pin.me .hd,.scene[data-step="3"] .dwgp .pin.me .hd{fill:var(--ok);stroke:#000}
.scene[data-step="2"] .dwgp .pin.me .pch,.scene[data-step="3"] .dwgp .pin.me .pch{stroke:var(--ok)}
.scene[data-step="1"] .dwgp .pin.me .pa,.scene[data-step="2"] .dwgp .pin.me .pa,.scene[data-step="3"] .dwgp .pin.me .pa{fill:#000}
.dwgp .ping circle{fill:none;stroke:var(--platinum);stroke-width:3;opacity:0;transform-box:fill-box;transform-origin:center}
.scene[data-step="0"] .dwgp .ping circle{animation:f2ping 1.5s var(--settle) infinite}
.scene[data-step="1"] .dwgp .ping circle{stroke:var(--wip);animation:f2ping 1.5s var(--settle) infinite}
.scene[data-step="2"] .dwgp .ping circle{stroke:var(--ok);animation:f2struck .9s var(--settle) 2}
@keyframes f2ping{0%{opacity:.95;transform:scale(1)}100%{opacity:0;transform:scale(2.8)}}
@keyframes f2struck{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(3.2)}}
/* TOUCH-FIG02 END */

/* TOUCH-FIG04 START - FIG. 04 in the console's own look (Earnings + Activity panels, Horizon dial), sample figures */
.f4x{padding:14px;display:grid;gap:12px;container-type:inline-size}
.f4x-p{background:linear-gradient(162deg,#1a1a1a,#101010 82%);border:1px solid #2e2e2e;border-radius:14px;padding:14px 16px;box-shadow:0 1px 3px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.025);min-width:0}
.f4x-h{margin:0 0 10px;font:600 18px/1.2 var(--display);color:var(--platinum)}
.f4x-h span{font:400 12.5px/1.2 var(--text);color:#9a9a9a}
.f4x-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.f4x-t{background:#1a1a1a;border-radius:10px;padding:11px 13px;min-width:0}
.f4x-t span{display:block;margin-bottom:3px;font-size:12px;line-height:1.3;color:#9a9a9a}
.f4x-t b{display:block;font:600 21px/1.15 var(--text);color:#f2f2f2;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.f4x-t.t-ok b{color:#7fd6a4}.f4x-t.t-prog b{color:#f0a35c}.f4x-t.t-def b{color:#ff8d7a}
.f4x-tube{display:flex;height:18px;border-radius:9px;overflow:hidden;background:#1a1a1a;border:1px solid rgba(0,0,0,.45);box-shadow:inset 0 2px 4px rgba(0,0,0,.55),inset 0 -1px 0 rgba(255,255,255,.04),0 1px 0 rgba(255,255,255,.05)}
.f4x-tube i{flex:none;width:var(--w);height:100%;display:flex;align-items:center;justify-content:center;font:700 10.5px/1 var(--text);font-style:normal;color:#fff;text-shadow:0 1px 1px rgba(0,0,0,.55);
	background-image:linear-gradient(180deg,rgba(255,255,255,.32),rgba(255,255,255,.08) 42%,rgba(0,0,0,.12) 58%,rgba(0,0,0,.30));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -1px 1px rgba(0,0,0,.30)}
.f4x-tube i+i{border-left:1px solid rgba(0,0,0,.38)}
.f4x-tube .s-ok{background-color:#37b26b}.f4x-tube .s-prog{background-color:#f0a35c}.f4x-tube .s-def{background-color:#ef6a52}.f4x-tube .s-out{background-color:#8f8f8f}
.f4x-tube.st .s-ok{background-color:var(--ok)}.f4x-tube.st .s-prog{background-color:var(--wip)}.f4x-tube.st .s-def{background-color:var(--bad)}
.f4x-leg{display:flex;flex-wrap:wrap;gap:4px 14px;margin:8px 0 0;font-size:12px;line-height:1.4;color:#cfcfcf}
.f4x-leg span{display:inline-flex;align-items:center;gap:6px}
.f4x-leg i{width:8px;height:8px;border-radius:50%;flex:none}
.f4x-leg .d-ok{background:#37b26b}.f4x-leg .d-prog{background:#f0a35c}.f4x-leg .d-def{background:#ef6a52}.f4x-leg .d-out{background:#8f8f8f}
.f4x-act .f4x-leg .d-ok{background:var(--ok)}.f4x-act .f4x-leg .d-prog{background:var(--wip)}.f4x-act .f4x-leg .d-def{background:var(--bad)}
.f4x-leg b{color:#f2f2f2;font-weight:600}
.f4x-leg .dim{color:#9a9a9a}
.f4x-act{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.f4x-h.act{margin-bottom:6px;font-size:16px}
.f4x-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 10px;margin:0 0 8px}
.f4x-head b{font:500 40px/1 var(--display);color:#f2f2f2;font-variant-numeric:lining-nums}
.f4x-head span{font-size:13px;color:#9a9a9a}
.f4x-head em{display:inline-flex;align-items:center;gap:5px;padding:2px 9px;border-radius:999px;font:600 12px/1.5 var(--text);font-style:normal;color:#7fd6a4;background:rgba(39,174,96,.14);white-space:nowrap}
.f4x-head em i{width:0;height:0;border-left:4.5px solid transparent;border-right:4.5px solid transparent;border-bottom:7px solid currentColor}
.f4x-wks{display:flex;gap:0;height:132px}
.f4x-wk{flex:var(--days) 1 0;min-width:0;display:flex;flex-direction:column;padding:0 2px}
.f4x-wk+.f4x-wk{border-left:1px solid #262626}
.f4x-wk p{margin:0 0 4px;font:400 9px/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7d7d7d;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.f4x-wk p span{display:block;margin-top:2px;letter-spacing:.02em;text-transform:none;font:400 10px/1.2 var(--text);color:#6f6f6f}
.f4x-wk.now p{color:#f2f2f2}
.f4x-wk.now p span{color:#cfcfcf}
.f4x-wk ol{flex:1;display:flex;gap:3px;margin:0;padding:0;list-style:none}
.f4x-wk li{flex:1 1 0;min-width:0;position:relative;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.f4x-wk li::before,.f4x-wk li::after{content:"";position:absolute;left:0;right:0;bottom:16px;border-radius:3px;transform-origin:50% 100%}
.f4x-wk li::before{height:calc(var(--n,0) / 16 * (100% - 34px));background:linear-gradient(180deg,#6b6153,#463f36)}
.f4x-wk li::after{height:calc(var(--d,0) / 16 * (100% - 34px));background:linear-gradient(180deg,#5ed98a,#27ae60)}
.f4x-wk li.z::before{height:2px;background:#2e2e2e;border-radius:1px}
.f4x-wk li.z::after{display:none}
.f4x-wk li b{position:absolute;left:0;right:0;bottom:calc(16px + max(var(--n,0),var(--d,0)) / 16 * (100% - 34px) + 3px);font:600 10.5px/1 var(--text);color:#f2f2f2;text-align:center}
.f4x-wk li span{font:400 9.5px/16px var(--text);color:#6f6f6f}
.f4x-wk li.t span{color:#f2f2f2;font-weight:700}
.f4x-wk li.t b{color:#C6A15B}
.f4x-key{display:flex;gap:14px;margin:6px 0 10px;font-size:11.5px;color:#9a9a9a}
.f4x-key span{display:inline-flex;align-items:center;gap:6px}
.f4x-key i{width:8px;height:8px;border-radius:50%}
.f4x-key .k-done{background:#27ae60}.f4x-key .k-rec{background:#5a5044}.f4x-key .k-today{background:#f2f2f2}
.f4x-dial{text-align:center;width:clamp(170px,30cqi,230px)}
.f4x-dial svg{display:block;width:100%;height:auto}
.f4x-dial p{margin:2px 0 0;font-size:12px;color:#9a9a9a}
.f4x-pct{font:500 46px var(--display);fill:#f2f2f2}
.f4x-pct tspan{font-size:20px;fill:#9a9a9a}
.f4x-cpl{font:400 10px var(--text);letter-spacing:2.8px;fill:#9a9a9a}
.f4x-dfx{font:400 11px var(--text);fill:#ff8d7a}
@container (min-width:640px){.f4x-tiles{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container (max-width:479px){
	.f4x{padding:10px;gap:10px}
	.f4x-p{padding:12px}
	.f4x-act{grid-template-columns:minmax(0,1fr)}
	.f4x-dial{order:-1;justify-self:center;width:176px}
	.f4x-t b{font-size:18px}
	.f4x-wks{height:120px}
	.f4x-wk p{font-size:8px;letter-spacing:.04em}
	.f4x-wk ol{gap:2px}
	.f4x-wk li span{font-size:8.5px}
}
/* grow in when the figure comes into view (site.js adds .go); without JS or with reduced motion it is simply drawn */
html.js:not(.rm) .f4x:not(.go) .f4x-wk li::before,html.js:not(.rm) .f4x:not(.go) .f4x-wk li::after{transform:scaleY(0)}
html.js:not(.rm) .f4x:not(.go) .f4x-tube i{transform:scaleX(0)}
html.js:not(.rm) .f4x:not(.go) .f4x-arc{stroke-dasharray:100;stroke-dashoffset:100}
html.js:not(.rm) .f4x:not(.go) .f4x-tip{opacity:0}
html.js:not(.rm) .f4x .f4x-wk li::before,html.js:not(.rm) .f4x .f4x-wk li::after{transition:transform .7s var(--settle)}
html.js:not(.rm) .f4x .f4x-tube i{transform-origin:0 50%;transition:transform .9s var(--settle)}
html.js:not(.rm) .f4x .f4x-arc{stroke-dasharray:100;stroke-dashoffset:0;transition:stroke-dashoffset 1.4s var(--settle)}
html.js:not(.rm) .f4x .f4x-tip{transition:opacity .4s 1.2s}
html.js:not(.rm) .f4x .f4x-wk:nth-child(2) li::before,html.js:not(.rm) .f4x .f4x-wk:nth-child(2) li::after{transition-delay:.12s}
html.js:not(.rm) .f4x .f4x-wk:nth-child(3) li::before,html.js:not(.rm) .f4x .f4x-wk:nth-child(3) li::after{transition-delay:.24s}
html.js:not(.rm) .f4x .f4x-act .f4x-tube i{transition-delay:.3s}
/* TOUCH-FIG04 END */
