:root{--bg:#0a0b09;--bg-2:#131511;--bg-3:#1b1e18;--fg:#f1f2ea;--mute:#8e9287;--vis:#d9ff3b;--vis-2:#b9dd1c;--line:rgba(241,242,234,.12);--paper:#eef0e6;--ink:#0a0b09;--hdr:72px}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font-family:"Space Grotesk","Segoe UI",sans-serif;font-size:1.02rem;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
canvas.scene{position:absolute;inset:0;width:100%;height:100%;display:block}
h1,h2,h3{font-family:"Unbounded","Space Grotesk",sans-serif;font-weight:700;letter-spacing:-.02em;line-height:1;margin:0;text-transform:uppercase}
.mono{font-family:"Space Mono",monospace;font-size:.74rem;letter-spacing:.12em;text-transform:uppercase}
.vis{color:var(--vis)}
.kick{display:inline-flex;align-items:center;gap:12px;font-family:"Space Mono",monospace;font-size:.74rem;letter-spacing:.16em;text-transform:uppercase;color:var(--vis)}
.kick::before{content:"";width:10px;height:10px;background:var(--vis);transform:rotate(45deg)}
.light{background:var(--paper);color:var(--ink)}
.light .kick{color:#5f7000}.light .kick::before{background:#5f7000}
.light .mono{color:#5b5f55}

/* header */
.hdr{position:fixed;top:0;left:0;right:0;height:var(--hdr);z-index:80;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;mix-blend-mode:difference;color:#fff}
.logo{display:flex;align-items:center;gap:12px}
.logo svg{width:38px;height:38px}
.logo b{font-family:"Unbounded",sans-serif;font-weight:800;font-size:.86rem;letter-spacing:.02em;line-height:1.05;text-transform:uppercase}
.hright{display:flex;align-items:center;gap:26px}
.hright .tel{font-family:"Space Mono",monospace;font-size:.82rem;letter-spacing:.06em}
.hright .lt{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.menu-btn{display:flex;align-items:center;gap:12px;background:none;border:0;color:inherit;font:600 .82rem "Space Mono",monospace;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:12px 0}
.menu-btn i{position:relative;width:28px;height:12px}
.menu-btn i::before,.menu-btn i::after{content:"";position:absolute;left:0;right:0;height:2px;background:currentColor;transition:transform .4s,top .4s}
.menu-btn i::before{top:0}.menu-btn i::after{top:10px}
body.menu-open .menu-btn i::before{top:5px;transform:rotate(45deg)}
body.menu-open .menu-btn i::after{top:5px;transform:rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:70;background:var(--bg);display:grid;grid-template-columns:1.4fr 1fr;clip-path:circle(0 at calc(100% - 60px) 36px);transition:clip-path .8s cubic-bezier(.7,0,.2,1)}
body.menu-open .menu{clip-path:circle(150% at calc(100% - 60px) 36px)}
.menu nav{display:flex;flex-direction:column;justify-content:center;padding:0 4vw}
.menu nav a{display:flex;align-items:baseline;gap:28px;padding:10px 0;border-bottom:1px solid var(--line);font-family:"Unbounded",sans-serif;font-weight:700;font-size:clamp(2rem,5.6vw,5rem);text-transform:uppercase;letter-spacing:-.02em;color:var(--mute);transition:color .3s,padding-left .4s}
.menu nav a span{font-family:"Space Mono",monospace;font-size:.8rem;letter-spacing:.2em;color:var(--vis)}
.menu nav a:hover,.menu nav a.active{color:var(--fg);padding-left:16px}
.menu aside{border-left:1px solid var(--line);padding:140px 4vw 60px;display:flex;flex-direction:column;justify-content:flex-end;gap:30px;color:var(--mute)}
.menu aside b{display:block;color:var(--fg);font-family:"Space Mono",monospace;font-weight:400;font-size:1.3rem;margin-top:6px}
.menu aside .stat{font-family:"Space Mono",monospace;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:18px 30px;background:var(--vis);color:var(--ink);font:600 .86rem "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;border:0;cursor:pointer;clip-path:polygon(0 0,calc(100% - 16px) 0,100% 16px,100% 100%,16px 100%,0 calc(100% - 16px));transition:background .3s,color .3s}
.btn:hover{background:#fff}
.btn.ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.btn.ghost:hover{background:var(--fg);color:var(--ink)}
.light .btn.ghost:hover{background:var(--ink);color:var(--fg)}
.btn.dark{background:var(--ink);color:var(--vis)}
.btn.dark:hover{background:#2a2d26}
.btn .ar{transition:transform .3s}
.btn:hover .ar{transform:translateX(6px)}

/* split-flap */
.board{display:flex;flex-wrap:wrap;gap:4px}
.cell{position:relative;width:1.05em;height:1.5em;font-family:"Space Mono",monospace;font-weight:700;background:#161815;border-radius:3px;overflow:hidden;perspective:300px;color:var(--fg)}
.cell::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.7);z-index:5}
.cell i{position:absolute;left:0;right:0;height:50%;overflow:hidden;font-style:normal;text-align:center;background:#1d201b;backface-visibility:hidden}
.cell i span{position:absolute;left:0;right:0;height:200%;line-height:1.5em;display:block}
.cell .a,.cell .c{top:0;border-radius:3px 3px 0 0}
.cell .b,.cell .d{bottom:0;border-radius:0 0 3px 3px}
.cell .b span,.cell .d span{top:-100%}
.cell .c{transform-origin:bottom;z-index:3}
.cell .d{transform-origin:top;z-index:2;transform:rotateX(90deg)}
.cell.flip .c{animation:flipTop .16s ease-in forwards}
.cell.flip .d{animation:flipBot .16s .16s ease-out forwards}
@keyframes flipTop{to{transform:rotateX(-90deg)}}
@keyframes flipBot{to{transform:rotateX(0)}}
.cell.vis{color:var(--vis)}
.cell.blank{background:transparent}.cell.blank i{background:transparent}.cell.blank::after{display:none}

/* decode reveal */
.dec{opacity:0;transform:translateY(18px);transition:opacity .8s,transform .9s cubic-bezier(.2,.8,.2,1)}
.dec.in{opacity:1;transform:none}

/* ===== HOME ===== */
.h-home{position:relative;height:100vh;min-height:640px;overflow:hidden;display:flex;align-items:flex-end;padding:0 4vw 60px}
.h-home::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(0deg,var(--bg) 0%,rgba(10,11,9,.2) 40%,transparent 70%)}
.h-home .copy{position:relative;z-index:2;width:100%;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:end}
.h-home h1{font-size:clamp(2.6rem,6.6vw,6.8rem);margin:18px 0 0}
.h-home h1 em{font-style:normal;color:var(--vis)}
.h-home .lede{color:var(--mute);max-width:420px;margin:0 0 28px;font-size:1.08rem}
.h-home .actions{display:flex;gap:12px;flex-wrap:wrap}
.h-home .strip{position:absolute;z-index:3;top:calc(var(--hdr) + 20px);left:4vw;right:4vw;display:flex;justify-content:space-between;gap:20px;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,242,234,.6)}
.h-home .strip b{color:var(--vis);font-weight:400}
.board-sec{padding:110px 4vw;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--bg-2)}
.board-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:34px;flex-wrap:wrap}
.board-head .kick{color:var(--vis)}
.rows{display:grid;gap:14px}
.row{display:grid;grid-template-columns:120px 1fr;gap:30px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.row .lbl{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.row .board{font-size:clamp(1.4rem,3.4vw,2.6rem)}
.hscroll{position:relative;height:320vh}
.hscroll .pin{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.hscroll .track{display:flex;gap:28px;padding:0 4vw;will-change:transform}
.hcard{flex:0 0 min(560px,80vw);height:min(62vh,560px);background:var(--bg-3);border:1px solid var(--line);padding:40px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.hcard::before{content:attr(data-n);position:absolute;right:30px;top:20px;font-family:"Unbounded",sans-serif;font-weight:800;font-size:7rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(241,242,234,.18)}
.hcard h3{font-size:clamp(1.8rem,3.2vw,2.8rem);margin:16px 0 14px}
.hcard p{color:var(--mute);margin:0;max-width:380px}
.hcard .go{font-family:"Space Mono",monospace;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vis)}
.hcard.cta{background:var(--vis);color:var(--ink);border-color:var(--vis)}
.hcard.cta::before{-webkit-text-stroke-color:rgba(10,11,9,.25)}
.hcard.cta p,.hcard.cta .go{color:var(--ink)}
.hscroll .prog{position:absolute;left:4vw;right:4vw;bottom:40px;height:2px;background:var(--line)}
.hscroll .prog i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--vis)}
.hscroll .hint{position:absolute;left:4vw;top:calc(var(--hdr) + 30px)}
.manifest{padding:140px 4vw}
.manifest h2{font-size:clamp(2rem,4.6vw,4.4rem);margin:18px 0 60px;max-width:900px}
.mrow{display:grid;grid-template-columns:70px 1fr 1.2fr;gap:30px;align-items:baseline;padding:34px 0;border-top:1px solid var(--line);transition:background .3s}
.mrow:last-child{border-bottom:1px solid var(--line)}
.mrow:hover{background:linear-gradient(90deg,rgba(217,255,59,.06),transparent)}
.mrow .n{font-family:"Space Mono",monospace;color:var(--vis)}
.mrow h3{font-size:clamp(1.3rem,2.4vw,2rem)}
.mrow p{margin:0;color:var(--mute)}
.ready{margin:0 4vw 140px;padding:90px 60px;background:var(--vis);color:var(--ink);display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;position:relative;overflow:hidden}
.ready::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-45deg,rgba(10,11,9,.08) 0 14px,transparent 14px 48px);mask-image:linear-gradient(90deg,transparent 55%,#000);-webkit-mask-image:linear-gradient(90deg,transparent 55%,#000)}
.ready h2{position:relative;font-size:clamp(2.2rem,5vw,4.8rem);max-width:760px}
.ready p{position:relative;margin:10px 0 0;font-weight:500}
.ready .btn{position:relative}

/* ===== SERVICES ===== */
.h-svc{position:relative;min-height:100vh;display:grid;grid-template-columns:.8fr 1.2fr;padding-top:var(--hdr)}
.h-svc .copy{padding:60px 2vw 60px 4vw;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.h-svc h1{font-size:clamp(2.6rem,5vw,5rem);margin:18px 0 20px}
.h-svc .lede{color:var(--mute);max-width:400px;margin:0 0 34px}
.tabs{display:grid;gap:6px}
.tab{display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--line);background:none;color:var(--fg);text-align:left;font:600 1rem "Space Grotesk",sans-serif;cursor:pointer;transition:background .3s,border-color .3s}
.tab i{font-family:"Space Mono",monospace;font-style:normal;font-size:.72rem;color:var(--mute)}
.tab small{font-family:"Space Mono",monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.tab.on{background:var(--vis);color:var(--ink);border-color:var(--vis)}
.tab.on i,.tab.on small{color:var(--ink)}
.h-svc .viz{position:relative;min-height:560px;border-left:1px solid var(--line);background:radial-gradient(circle at 50% 60%,#1a1d17,var(--bg) 70%)}
.h-svc .viz .read{position:absolute;z-index:2;left:30px;bottom:28px;right:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:20px}
.h-svc .viz .read h3{font-size:clamp(1.6rem,3vw,2.6rem)}
.h-svc .viz .read p{margin:8px 0 0;color:var(--mute);max-width:460px}
.h-svc .viz .read .mono{color:var(--vis)}
.spec{padding:120px 4vw;display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.spec > div{padding:0 44px;border-left:1px solid var(--line)}
.spec > div:first-child{padding-left:0;border-left:0}
.spec h3{font-size:1.5rem;margin:16px 0 22px}
.spec ul{list-style:none;margin:0;padding:0}
.spec li{display:flex;gap:14px;align-items:center;padding:12px 0;border-top:1px solid var(--line);color:var(--mute)}
.spec li::before{content:"";width:14px;height:2px;background:var(--vis)}
.more{padding:0 4vw 140px;display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.mcard{padding:40px 36px;background:var(--bg-2);border:1px solid var(--line);min-height:300px;display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;transition:border-color .3s}
.mcard:hover{border-color:var(--vis)}
.mcard .mono{color:var(--vis)}
.mcard h3{font-size:1.6rem}
.mcard p{margin:0;color:var(--mute)}
.mcard::after{content:"";position:absolute;right:-40px;bottom:-40px;width:120px;height:120px;border:1px solid var(--line);transform:rotate(45deg);transition:border-color .3s,transform .5s}
.mcard:hover::after{border-color:var(--vis);transform:rotate(90deg)}
.custom{margin:0 4vw 140px;padding:70px 60px;border:1px solid var(--vis);display:grid;grid-template-columns:1fr auto;gap:40px;align-items:center}
.custom h2{font-size:clamp(1.8rem,3.6vw,3.2rem);margin:14px 0 12px}
.custom p{margin:0;color:var(--mute);max-width:560px}

/* ===== COVERAGE ===== */
.h-cov{position:relative;height:100vh;min-height:640px;overflow:hidden}
.h-cov .copy{position:absolute;z-index:2;left:4vw;bottom:60px;max-width:620px}
.h-cov h1{font-size:clamp(2.6rem,6vw,6rem);margin:18px 0 18px}
.h-cov .lede{color:var(--mute);margin:0;max-width:480px}
.h-cov .scan{position:absolute;z-index:2;right:4vw;top:calc(var(--hdr) + 30px);text-align:right;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);line-height:2}
.h-cov .scan b{display:block;color:var(--vis);font-weight:400;font-size:1.4rem;letter-spacing:.06em}
.reach{padding:120px 4vw;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}
.reach h2{font-size:clamp(2rem,4.4vw,4rem);margin:18px 0 0}
.reach p{color:var(--mute);font-size:1.08rem;margin:0 0 18px}
.zones{border-top:1px solid var(--line)}
.zone{display:grid;grid-template-columns:1fr 2fr;gap:30px;padding:30px 0;border-bottom:1px solid var(--line)}
.zone h3{font-size:1.4rem}
.zone .mono{display:block;color:var(--vis);margin-top:8px}
.zone p{margin:0;color:var(--mute)}
.port{margin:0 4vw 140px;position:relative;padding:90px 70px;background:var(--bg-2);border:1px solid var(--line);overflow:hidden}
.port::before{content:attr(data-n);position:absolute;right:40px;top:-30px;font-family:"Unbounded",sans-serif;font-weight:800;font-size:16rem;line-height:1;color:transparent;-webkit-text-stroke:1px rgba(217,255,59,.4)}
.port h2{position:relative;font-size:clamp(2rem,4.4vw,4rem);max-width:760px;margin:18px 0 24px}
.port p{position:relative;color:var(--mute);max-width:640px;margin:0;font-size:1.08rem}

/* ===== ABOUT (hi-vis page) ===== */
.page-vis{background:var(--vis);color:var(--ink)}
.page-vis .kick{color:var(--ink)}.page-vis .kick::before{background:var(--ink)}
.page-vis .mono{color:#4a5300}
.h-about{position:relative;min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:var(--hdr)}
.h-about .copy{padding:60px 2vw 60px 4vw;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.h-about h1{font-size:clamp(2.8rem,5.6vw,5.6rem);margin:18px 0 22px}
.h-about .lede{max-width:460px;margin:0;font-size:1.1rem;font-weight:500}
.h-about .viz{position:relative;min-height:560px}
.story{padding:120px 4vw;display:grid;grid-template-columns:.8fr 1.2fr;gap:60px;border-top:2px solid var(--ink)}
.story h2{font-size:clamp(2rem,4.4vw,4rem);margin-top:18px}
.story p{font-size:1.15rem;margin:0 0 18px;max-width:640px;font-weight:500}
.values{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink);border-bottom:2px solid var(--ink);margin:0 4vw}
.value{padding:50px 40px;border-right:2px solid var(--ink)}
.value:last-child{border-right:0}
.value .big{font-family:"Unbounded",sans-serif;font-weight:800;font-size:3.4rem;line-height:1}
.value h3{font-size:1.6rem;margin:22px 0 12px}
.value p{margin:0;font-weight:500;color:#2d3312}
.ledger{padding:120px 4vw 140px;display:grid;grid-template-columns:.9fr 1.1fr;gap:60px;align-items:start}
.ledger h2{font-size:clamp(2rem,4.2vw,3.8rem);margin:18px 0 18px}
.ledger .sub{margin:0;font-weight:500;max-width:420px}
.ledger dl{margin:0;background:var(--ink);color:var(--fg);padding:10px 36px}
.ledger dl div{display:grid;grid-template-columns:160px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--line)}
.ledger dl div:last-child{border-bottom:0}
.ledger dt{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vis);padding-top:4px}
.ledger dd{margin:0;font-family:"Unbounded",sans-serif;font-weight:600;font-size:1.05rem;letter-spacing:-.01em}
.ledger .verify{display:inline-flex;margin-top:24px}

/* ===== CONTACT (paper page) ===== */
.h-con{position:relative;padding:calc(var(--hdr) + 50px) 4vw 100px;display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:stretch}
.h-con h1{font-size:clamp(2.6rem,5.6vw,5.6rem);margin:18px 0 26px}
.h-con h1 span{color:#5f7000}
.lines{display:grid;gap:0;border-top:1.5px solid var(--ink)}
.lines a,.lines div{display:grid;grid-template-columns:110px 1fr;gap:20px;align-items:baseline;padding:18px 0;border-bottom:1.5px solid var(--ink);transition:padding-left .3s}
.lines a:hover{padding-left:12px}
.lines small{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#5b5f55}
.lines b{font-family:"Unbounded",sans-serif;font-weight:600;font-size:1.15rem;letter-spacing:-.01em;word-break:break-word}
.labelbox{position:relative;min-height:560px;background:#dfe3d4;overflow:hidden}
.labelbox .tag{position:absolute;z-index:2;left:22px;top:20px;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#5b5f55}
.qform{padding:0 4vw 140px}
.qform .head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:40px;flex-wrap:wrap}
.qform h2{font-size:clamp(2rem,4.4vw,4rem);margin-top:18px}
.qform form{display:grid;grid-template-columns:repeat(2,1fr);gap:0 40px;border-top:1.5px solid var(--ink)}
.fld{display:grid;grid-template-columns:150px 1fr;gap:20px;align-items:center;padding:18px 0;border-bottom:1.5px solid var(--ink)}
.fld.full{grid-column:1/-1}
.fld label{font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#5b5f55}
.fld input,.fld select,.fld textarea{width:100%;font:500 1.05rem "Space Grotesk",sans-serif;color:var(--ink);background:transparent;border:0;padding:6px 0;outline:none}
.fld textarea{min-height:90px;resize:vertical}
.fld select{appearance:none;-webkit-appearance:none;cursor:pointer}
.fld input::placeholder,.fld textarea::placeholder{color:#9a9e92}
.fld:focus-within{background:rgba(217,255,59,.25)}
.qform .btn{margin-top:30px}
.ok{margin-top:18px;padding:16px 20px;background:var(--ink);color:var(--vis);font-family:"Space Mono",monospace;font-size:.85rem}

/* footer */
footer{background:#050605;color:var(--mute);padding:70px 4vw 30px;border-top:1px solid var(--line)}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
.f-grid h4{margin:0 0 14px;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--vis);font-weight:400}
.f-grid a,.f-grid p{display:block;margin:0 0 8px;color:var(--mute)}
.f-grid a:hover{color:var(--fg)}
.f-grid .logo b{color:var(--fg)}
.f-bottom{margin-top:50px;padding-top:24px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-family:"Space Mono",monospace;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}

@media (max-width:980px){
  .hdr{padding:0 16px}
  .hright .lt,.hright .tel{display:none}
  .menu{grid-template-columns:1fr}
  .menu aside{display:none}
  .menu nav a{font-size:2.2rem;gap:16px}
  .h-home{padding:0 16px 40px;min-height:100svh}
  .h-home .copy{grid-template-columns:1fr;gap:20px}
  .h-home .strip{left:16px;right:16px;flex-direction:column;gap:4px}
  .board-sec{padding:80px 16px}
  .row{grid-template-columns:1fr;gap:8px}
  .row .board{font-size:1.25rem}
  .cell{width:1em}
  .hscroll{height:auto}
  .hscroll .pin{position:static;height:auto;padding:80px 0}
  .hscroll .track{flex-direction:column;padding:0 16px;transform:none!important}
  .hcard{flex:none;height:auto;min-height:280px;padding:28px}
  .hscroll .prog,.hscroll .hint{display:none}
  .manifest{padding:90px 16px}
  .mrow{grid-template-columns:40px 1fr;gap:14px}
  .mrow p{grid-column:2}
  .ready{margin:0 16px 90px;padding:50px 24px}
  .h-svc{grid-template-columns:1fr}
  .h-svc .copy{padding:40px 16px 20px}
  .h-svc .viz{min-height:420px;border-left:0;border-top:1px solid var(--line)}
  .h-svc .viz .read{flex-direction:column;align-items:flex-start;left:16px;right:16px}
  .spec,.more{grid-template-columns:1fr;padding:80px 16px}
  .more{padding-top:0}
  .spec > div{padding:0;border-left:0;margin-bottom:40px}
  .custom{margin:0 16px 90px;padding:40px 24px;grid-template-columns:1fr}
  .h-cov{min-height:100svh}
  .h-cov .copy{left:16px;right:16px;bottom:40px}
  .h-cov .scan{display:none}
  .reach{grid-template-columns:1fr;padding:80px 16px;gap:40px}
  .zone{grid-template-columns:1fr;gap:8px}
  .port{margin:0 16px 90px;padding:60px 24px}
  .port::before{font-size:8rem;right:10px}
  .h-about{grid-template-columns:1fr}
  .h-about .copy{padding:40px 16px 20px}
  .h-about .viz{min-height:420px}
  .story{grid-template-columns:1fr;padding:80px 16px;gap:20px}
  .values{grid-template-columns:1fr;margin:0 16px}
  .value{border-right:0;border-bottom:2px solid var(--ink);padding:36px 20px}
  .value:last-child{border-bottom:0}
  .ledger{grid-template-columns:1fr;padding:80px 16px 100px;gap:30px}
  .ledger dl{padding:6px 20px}
  .ledger dl div{grid-template-columns:1fr;gap:4px}
  .h-con{grid-template-columns:1fr;padding:calc(var(--hdr) + 30px) 16px 60px}
  .labelbox{min-height:420px}
  .qform{padding:0 16px 100px}
  .qform form{grid-template-columns:1fr}
  .fld{grid-template-columns:1fr;gap:4px}
  footer{padding:60px 16px 30px}
  .f-grid{grid-template-columns:1fr 1fr}
  .f-grid > div:first-child{grid-column:1/-1}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;transition-duration:.001s!important}
  .dec{opacity:1;transform:none}
}
/* fixes */
.page-vis .hdr,.light .hdr{mix-blend-mode:normal;color:var(--ink)}
.logo svg{flex:none}.logo b{white-space:nowrap}
@media (max-width:980px){.f-grid{grid-template-columns:1fr}.port::before{top:10px;font-size:6rem;opacity:.5}}

/* ===== 50 refinements ===== */
/* 1 custom cursor */
@media (hover:hover){body{cursor:none}a,button,label,select,input,textarea{cursor:none}
.cur{position:fixed;left:0;top:0;z-index:999;pointer-events:none;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--vis);mix-blend-mode:difference}
.cur-ring{position:fixed;left:0;top:0;z-index:998;pointer-events:none;width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1.5px solid var(--vis);opacity:.6;transition:transform .25s,opacity .25s,background .25s}
body.cur-hover .cur-ring{transform:scale(1.8);background:rgba(217,255,59,.12);opacity:1}}
/* 2 scroll progress */
.sprog{position:fixed;left:0;top:0;height:3px;width:0;background:var(--vis);z-index:90}
/* 3 header line on scroll */
.hdr::after{content:"";position:absolute;left:4vw;right:4vw;bottom:0;height:1px;background:currentColor;opacity:0;transform:scaleX(0);transition:transform .6s,opacity .6s}
body.scrolled .hdr::after{opacity:.25;transform:scaleX(1)}
/* 4 page transitions */
body{animation:pageIn .7s ease both}
@keyframes pageIn{from{opacity:0}to{opacity:1}}
body.leaving{opacity:0;transition:opacity .35s}
/* 5 skip link */
.skip{position:fixed;left:16px;top:-60px;z-index:100;background:var(--vis);color:var(--ink);padding:10px 14px;font:600 .8rem "Space Mono",monospace;transition:top .3s}
.skip:focus{top:16px}
/* 6 active page in header */
.menu-btn em{font-style:normal;opacity:.6;font-weight:400}
/* 7 menu stagger */
.menu nav a{opacity:0;transform:translateX(-30px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1),color .3s,padding-left .4s}
body.menu-open .menu nav a{opacity:1;transform:none}
body.menu-open .menu nav a:nth-child(2){transition-delay:.08s}body.menu-open .menu nav a:nth-child(3){transition-delay:.16s}body.menu-open .menu nav a:nth-child(4){transition-delay:.24s}body.menu-open .menu nav a:nth-child(5){transition-delay:.32s}
/* 8 menu watermark */
.menu .wm{position:absolute;right:4vw;bottom:0;font-family:"Unbounded",sans-serif;font-weight:800;font-size:clamp(8rem,28vw,26rem);line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(217,255,59,.25);pointer-events:none;transition:opacity .3s}
/* 9 focus */
:focus-visible{outline:2px solid var(--vis);outline-offset:4px}
/* 10 selection */
::selection{background:var(--vis);color:var(--ink)}
/* 11 grain */
body:not(.light):not(.page-vis)::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:85;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* 12 hero letters */
h1 .w{display:inline-block;overflow:hidden;vertical-align:bottom}
h1 .w span{display:inline-block;transform:translateY(110%);animation:wordUp .9s cubic-bezier(.2,.8,.2,1) forwards}
/* 13 mobile type tune */
@media (max-width:980px){h2{font-size:clamp(1.6rem,8vw,2.4rem)!important}}
/* 14 tabular numbers */
.mono,.cell,.board,.lines b,.ledger dd{font-variant-numeric:tabular-nums}
/* 15 balanced headings */
h1,h2,h3{text-wrap:balance}
/* 16 footer link underline */
.f-grid a{position:relative;width:max-content}
.f-grid a::after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:var(--vis);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.f-grid a:hover::after{transform:scaleX(1)}
/* 17 live caret */
.live::after{content:"_";animation:blink 1s steps(1) infinite;color:var(--vis)}
@keyframes blink{50%{opacity:0}}
/* 18 section counters */
main{counter-reset:sec}
main > section{position:relative}
main > section[data-sec]::before{counter-increment:sec;content:"§ " counter(sec,decimal-leading-zero);position:absolute;right:4vw;top:28px;font-family:"Space Mono",monospace;font-size:.68rem;letter-spacing:.2em;color:var(--mute);opacity:.6;z-index:3}
/* 19 scroll indicator */
.scroll-ind{position:absolute;z-index:3;right:4vw;bottom:70px;display:flex;flex-direction:column;align-items:center;gap:10px;font-family:"Space Mono",monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.scroll-ind i{width:1px;height:60px;background:linear-gradient(var(--vis),transparent);transform-origin:top;animation:scrollLine 1.8s infinite}
@keyframes scrollLine{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* 20 hero parallax: set by JS */
/* 21 board cell gloss */
.cell i{background:linear-gradient(180deg,#242821,#161815)}
.cell .b,.cell .d{background:linear-gradient(180deg,#131511,#1c1f1a)}
.cell{box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 2px 0 #000}
/* 22 reflip */
.reflip{background:none;border:1px solid var(--line);color:var(--mute);font:400 .72rem "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;padding:10px 14px;cursor:none;transition:color .3s,border-color .3s}
.reflip:hover{color:var(--vis);border-color:var(--vis)}
/* 23 hcard hover */
.hcard{transition:transform .5s cubic-bezier(.2,.8,.2,1),border-color .3s}
.hcard:hover{transform:translateY(-10px) rotate(-.6deg);border-color:var(--vis)}
/* 24 progress text */
.hscroll .ptxt{position:absolute;right:4vw;bottom:56px;font-family:"Space Mono",monospace;font-size:.72rem;letter-spacing:.2em;color:var(--mute)}
/* 25 manifest hover */
.mrow .n{display:inline-block;padding:4px 8px;transition:background .3s,color .3s}
.mrow:hover .n{background:var(--vis);color:var(--ink)}
.mrow h3::after{content:"→";margin-left:14px;color:var(--vis);opacity:0;transition:opacity .3s,margin-left .3s}
.mrow:hover h3::after{opacity:1;margin-left:22px}
/* 26 ready stripes move */
.ready::before{animation:stripes 6s linear infinite;background-size:68px 68px}
@keyframes stripes{to{background-position:68px 0}}
/* 27 status dot */
.pulse{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--vis);margin-right:8px;box-shadow:0 0 0 0 rgba(217,255,59,.6);animation:pulse 1.8s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(217,255,59,0)}100%{box-shadow:0 0 0 0 rgba(217,255,59,0)}}
/* 28 ticker */
.ticker{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;background:var(--bg)}
.ticker div{display:flex;gap:48px;width:max-content;animation:tick 40s linear infinite;font-family:"Space Mono",monospace;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:var(--mute)}
.ticker span b{color:var(--vis);font-weight:400;margin-right:48px}
@keyframes tick{to{transform:translateX(-50%)}}
/* 29 tab autoplay bar */
.tab{position:relative;overflow:hidden}
.tab::after{content:"";position:absolute;left:0;bottom:0;height:2px;width:0;background:var(--ink)}
.tab.on.auto::after{animation:tabProg 5s linear forwards}
@keyframes tabProg{to{width:100%}}
/* 30 tab number slide */
.tab i{transition:transform .3s}.tab:hover i{transform:translateX(4px)}
/* 31 viewfinder corners */
.viz .vf{position:absolute;z-index:2;width:22px;height:22px;border:1.5px solid var(--vis);opacity:.7}
.viz .vf.tl{left:16px;top:16px;border-right:0;border-bottom:0}.viz .vf.tr{right:16px;top:16px;border-left:0;border-bottom:0}.viz .vf.bl{left:16px;bottom:16px;border-right:0;border-top:0}.viz .vf.br{right:16px;bottom:16px;border-left:0;border-top:0}
/* 32 spec hover */
.spec li::before{transition:width .3s}.spec li:hover::before{width:30px}.spec li{transition:color .3s}.spec li:hover{color:var(--fg)}
/* 33 mcard ghost number */
.mcard .mono{font-size:1.1rem}
.mcard::before{content:attr(data-g);position:absolute;right:20px;top:10px;font-family:"Unbounded",sans-serif;font-weight:800;font-size:5rem;color:transparent;-webkit-text-stroke:1px rgba(241,242,234,.1)}
/* 34 custom pulse */
.custom{animation:borderPulse 3s ease-in-out infinite}
@keyframes borderPulse{50%{box-shadow:0 0 0 6px rgba(217,255,59,.08)}}
/* 35 read legibility */
.h-svc .viz .read::before{content:"";position:absolute;left:-30px;right:-30px;bottom:-28px;top:-40px;background:linear-gradient(0deg,rgba(10,11,9,.9),transparent);z-index:-1}
/* 36 radar readout */
.h-cov .scan small{display:block;color:var(--fg);letter-spacing:.1em;margin-top:6px;min-height:1.6em}
/* 37 zone hover */
.zone{border-left:2px solid transparent;padding-left:0;transition:border-color .3s,padding-left .3s}
.zone:hover{border-left-color:var(--vis);padding-left:16px}
/* 38 counting #1 handled by JS; 39 big quote */
.reach .dec:last-child > p:first-child::before{content:"“";display:block;font-family:"Unbounded",sans-serif;font-size:5rem;line-height:.4;color:var(--vis);margin-bottom:20px}
/* 40 cov vignette */
.h-cov::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 40%,transparent 40%,rgba(10,11,9,.85) 100%)}
/* 41 values invert */
.value{transition:background .3s,color .3s}.value:hover{background:var(--ink);color:var(--vis)}.value:hover p{color:rgba(241,242,234,.75)}
/* 42 copy rows */
.ledger dl div[data-copy]{cursor:none;position:relative}
.ledger dl div[data-copy]::after{content:"copy";position:absolute;right:0;top:22px;font-family:"Space Mono",monospace;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);opacity:0;transition:opacity .3s}
.ledger dl div[data-copy]:hover::after{opacity:1}
.ledger dl div.copied::after{content:"copied ✓";color:var(--vis);opacity:1}
/* 43 story lead */
.story .dec > p:first-child{font-size:1.45rem;line-height:1.35;font-family:"Space Grotesk",sans-serif;font-weight:500}
/* 44 dotted grid on lime */
.page-vis main{background-image:radial-gradient(rgba(10,11,9,.18) 1px,transparent 1.5px);background-size:26px 26px}
/* 45 char counter */
.cnt{font-family:"Space Mono",monospace;font-size:.68rem;letter-spacing:.14em;color:#8e9287;text-align:right;grid-column:1/-1;margin-top:-10px;padding-bottom:10px}
/* 46 select arrow */
.fld.sel{position:relative}.fld.sel::after{content:"▾";position:absolute;right:6px;top:50%;transform:translateY(-50%);color:#5f7000;pointer-events:none}
/* 47 line arrows */
.lines a{position:relative}.lines a::after{content:"→";position:absolute;right:0;top:50%;transform:translate(10px,-50%);opacity:0;transition:all .3s;color:#5f7000}
.lines a:hover::after{opacity:1;transform:translate(0,-50%)}
/* 48 label live + download */
.labelbox .live-tag{position:absolute;z-index:2;right:22px;top:20px;font-family:"Space Mono",monospace;font-size:.68rem;letter-spacing:.2em;color:#5f7000}
.labelbox .dl{position:absolute;z-index:2;left:22px;bottom:20px}
/* 49 submit loading handled by JS; 50 back to top + hazard */
.totop{position:fixed;right:22px;bottom:22px;z-index:80;width:48px;height:48px;border:1px solid var(--vis);background:var(--bg);color:var(--vis);display:flex;align-items:center;justify-content:center;opacity:0;transform:translateY(20px);transition:opacity .3s,transform .3s;cursor:none}
body.scrolled .totop{opacity:1;transform:none}
.totop:hover{background:var(--vis);color:var(--ink)}
footer{position:relative}footer::after{content:"";position:absolute;left:0;right:0;bottom:0;height:8px;background:repeating-linear-gradient(-45deg,var(--vis) 0 14px,var(--ink) 14px 28px)}
@media (max-width:980px){.scroll-ind,.totop,main > section[data-sec]::before{display:none}.menu .wm{display:none}}
.f-grid a.logo{display:flex;width:auto}
.cnt{margin-top:8px}
.cur,.cur-ring{opacity:0}body.cur-on .cur{opacity:1}body.cur-on .cur-ring{opacity:.6}
.scroll-ind{flex-direction:row;bottom:22px;right:4vw}
.scroll-ind i{width:60px;height:1px;background:linear-gradient(90deg,var(--vis),transparent);transform-origin:left;animation:scrollLineX 1.8s infinite}
@keyframes scrollLineX{0%{transform:scaleX(0)}60%{transform:scaleX(1)}100%{transform:scaleX(1);opacity:0}}
@keyframes wordUp{to{transform:none}}
.menu aside{justify-content:flex-start;padding-top:160px}
.menu .wm{opacity:.6}
.page-vis .logo svg path:last-child{fill:var(--ink)}
.page-vis main{background-image:radial-gradient(rgba(10,11,9,.1) 1px,transparent 1.5px)}

/* ===== round 2: restraint + polish ===== */
/* 1-2 new cursor */
.cur,.cur-ring{display:none!important}
@media (hover:hover){.cx{position:fixed;left:0;top:0;z-index:999;pointer-events:none;width:8px;height:8px;margin:-4px 0 0 -4px;background:var(--vis);opacity:0;transition:width .25s,height .25s,margin .25s,background .25s,opacity .2s,border-radius .25s}
body.cur-on .cx{opacity:1}
.cx span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);white-space:nowrap;font:600 .68rem "Space Mono",monospace;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);opacity:0;transition:opacity .2s,transform .25s}
.cx.label{width:auto;height:30px;margin:-15px 0 0 14px;padding:0 14px;border-radius:999px;min-width:50px}
.cx.label span{position:static;transform:none;opacity:1;line-height:30px}
.cx.text{width:2px;height:22px;margin:-11px 0 0 -1px;border-radius:0}
.light .cx{background:var(--ink)}.light .cx span{color:var(--vis)}
.page-vis .cx{background:var(--ink)}.page-vis .cx span{color:var(--vis)}}
/* 4-7 restraint */
.ticker{display:none}
.custom{animation:none}
.ready::before{animation:none}
body:not(.light):not(.page-vis)::after{opacity:.03}
.h-cov::after{background:radial-gradient(ellipse at 50% 40%,transparent 55%,rgba(10,11,9,.7) 100%)}
.value:hover{background:transparent;color:inherit}.value:hover p{color:#2d3312}
/* 8 unified motion */
.dec{transition:opacity .7s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.hcard,.mrow,.zone,.mcard,.btn,.tab,.lines a{transition-timing-function:cubic-bezier(.2,.7,.2,1)}
/* 9-10 spacing + container */
section,.board-sec,.manifest,.reach,.story,.ledger,.qform,.spec{padding-top:128px;padding-bottom:128px}
.h-home,.h-svc,.h-cov,.h-about,.h-con,.hscroll,.port,.ready,.custom,.more,.values{padding-top:revert-layer}
.h-con{padding-top:calc(var(--hdr) + 56px);padding-bottom:96px}
.more{padding-top:0;padding-bottom:128px}.spec{padding-bottom:64px}
@media (min-width:1600px){main,.hdr,footer{max-width:1560px;margin-left:auto;margin-right:auto}}
/* 11-18 layout tune */
.h-home .copy{gap:56px}
.row{grid-template-columns:140px 1fr;padding:18px 0}
.hcard{padding:32px}
.mrow{grid-template-columns:56px 1fr 1.4fr}
.f-grid{grid-template-columns:1.4fr .8fr 1fr 1.2fr}
.spec li{padding:12px 0}
.fld{grid-template-columns:140px 1fr}
.ledger dl div{padding:22px 0}
/* 19-26 typography */
h1,h2{letter-spacing:-.03em;line-height:.95}
.mono,.kick,.menu-btn,.tab small,.row .lbl,.lines small,.fld label{font-size:.7rem;letter-spacing:.18em}
body:not(.light):not(.page-vis) .lede,body:not(.light):not(.page-vis) p.muted,.mrow p,.hcard p,.spec li,.mcard p,.zone p,.reach p,.port p,.h-svc .viz .read p{color:#a3a79c}
.lede{font-size:1.1rem;line-height:1.55}
h1{max-width:12ch}
p a{text-underline-offset:4px}
/* 27-34 surfaces */
.hcard,.mcard{background:linear-gradient(160deg,#1c1f1a,#141612);border-top-color:rgba(255,255,255,.08)}
.hcard:hover,.mcard:hover,.tab:hover{border-color:rgba(217,255,59,.6)}
.mcard::after{display:none}
.hcard::before{-webkit-text-stroke-color:rgba(241,242,234,.12)}
.light .fld{border-bottom-color:#c9cdbd}.light .qform form{border-top-color:#c9cdbd}.light .lines a,.light .lines div{border-bottom-color:#c9cdbd}.light .lines{border-top-color:#c9cdbd}
.light .fld:focus-within{background:transparent;border-bottom-color:var(--ink)}
footer{background:#070807}footer::after{height:6px}
.page-vis main{background-image:none}
/* 35-44 components */
.btn{height:52px;padding:0 28px;gap:12px}
.btn.sm{height:40px;padding:0 18px;font-size:.72rem}
.btn.ghost{box-shadow:inset 0 0 0 1px currentColor}
.tab{padding:16px 20px}
.board-head .mono{display:flex;align-items:center;gap:10px}
.ready{align-items:center}
.zone .zn{display:block;color:var(--vis);margin-bottom:6px}
.value .big{font-size:1.4rem;color:#4a5300}
.ledger dl div:nth-child(even){background:rgba(255,255,255,.03);margin:0 -36px;padding-left:36px;padding-right:36px}
.lines a::after{content:none}
.labelbox .dl{left:auto;right:22px;bottom:18px}
/* 45-50 micro */
.menu nav a:hover,.menu nav a.active{padding-left:0}
.menu nav a::after{content:"→";margin-left:auto;font-size:.5em;opacity:0;transform:translateX(-10px);transition:opacity .3s,transform .3s;color:var(--vis)}
.menu nav a:hover::after{opacity:1;transform:none}
.hcard:hover{transform:translateY(-6px) rotate(0)}
html{scroll-padding-top:calc(var(--hdr) + 16px)}
.totop{width:40px;height:40px;right:20px;bottom:20px}
@media (max-width:980px){section,.board-sec,.manifest,.reach,.story,.ledger,.qform,.spec{padding-top:80px;padding-bottom:80px}.h-con{padding-top:calc(var(--hdr) + 24px)}.ledger dl div:nth-child(even){margin:0 -20px;padding-left:20px;padding-right:20px}}
