:root{--ink:#08151f;--ink2:#0d2230;--paper:#f4f1e9;--paper2:#ebe6d9;--brass:#b28a4e;--brass2:#d8b97f;--teal:#0f4c5c;--tx:#0b1b27;--mut:#53606b;--line:rgba(11,27,39,.16);--lineD:rgba(216,185,127,.28);--tsh:0 1px 2px rgba(3,8,14,.95),0 3px 14px rgba(3,8,14,.8),0 12px 48px rgba(3,8,14,.8);--e1:cubic-bezier(.2,.7,.2,1);--e2:cubic-bezier(.65,0,.35,1);box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;margin:0}
html{overflow-x:hidden;overflow-x:clip;scroll-behavior:smooth;scroll-padding-top:84px}
body{overflow-x:hidden;overflow-x:clip;background:var(--paper);color:var(--tx);font:400 17px/1.7 "Instrument Sans",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:Newsreader,Georgia,serif;font-weight:500;line-height:1.08;letter-spacing:-.015em}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:var(--brass);color:#111;padding:8px 14px;z-index:99}
.wrap{max-width:1240px;margin:auto;padding:0 28px}
.mono{font:400 12px/1.4 "IBM Plex Mono",monospace;letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}
.dark{background:var(--ink);color:#eef0ee}.dark .mut,.dark p.lead{color:#a9b6bd}
section{position:relative;padding:130px 0}
h2.big{font-size:clamp(32px,4.8vw,62px);max-width:15em;margin:16px 0 22px}
.lead{color:var(--mut);max-width:38em;font-size:19px}
.btn{display:inline-flex;align-items:center;gap:10px;justify-content:center;padding:16px 30px;border:1px solid var(--brass);font:600 14px "Instrument Sans";letter-spacing:.04em;cursor:pointer;transition:transform .5s var(--e1),background .3s,color .3s;background:transparent;color:inherit;text-shadow:none}
.btn.fill{background:var(--brass);color:#15110a}.btn.fill:hover{background:var(--brass2);transform:translateY(-3px)}
.btn.out:hover{background:var(--brass);color:#15110a}
.arrow::after{content:"→";transition:transform .4s var(--e1)}.arrow:hover::after{transform:translateX(6px)}
@media(pointer:coarse){.btn{min-height:46px}}
header{position:fixed;top:0;left:0;right:0;z-index:60;padding:18px 0;padding-top:calc(18px + env(safe-area-inset-top,0px));color:#f1efe8;transition:background .4s,color .4s,padding .4s,box-shadow .4s}
header.s{background:rgba(244,241,233,.94);backdrop-filter:blur(14px);color:var(--tx);padding-top:calc(10px + env(safe-area-inset-top,0px));padding-bottom:10px;box-shadow:0 1px 0 var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;flex-direction:column;line-height:1.1;font:600 22px Newsreader,serif;letter-spacing:.02em}.logo strong{font-weight:600;white-space:nowrap}.logo b{color:var(--brass)}.logo span{font:400 10px "IBM Plex Mono",monospace;letter-spacing:.3em;text-transform:uppercase;opacity:.75;margin-top:3px}
#nv{display:flex;gap:30px;font-size:14px}#nv a{position:relative;padding:6px 0;opacity:.85}#nv a:hover,#nv a.on{opacity:1}
#nv a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--e1)}#nv a:hover::after,#nv a.on::after{transform:scaleX(1)}
header .btn{padding:11px 22px;color:inherit}header.s .btn{color:var(--tx)}
.mb{display:none;width:44px;height:44px;background:none;border:0;color:inherit;cursor:pointer;position:relative}.mb i{position:absolute;left:10px;right:10px;height:2px;background:currentColor;transition:transform .4s var(--e1)}.mb i:first-child{top:18px}.mb i:last-child{top:25px}
.mb[aria-expanded=true] i:first-child{transform:translateY(3.5px) rotate(45deg)}.mb[aria-expanded=true] i:last-child{transform:translateY(-3.5px) rotate(-45deg)}
/* home hero */
.hero{height:460vh;position:relative}
.stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--ink)}
.stage canvas,.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.stage video{opacity:0;transition:opacity 1s}.stage.vr video{opacity:1}.stage.vr canvas{opacity:0}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 50%,rgba(4,9,15,0) 40%,rgba(4,9,15,.6) 100%)}
.band{position:absolute;left:0;right:0;top:43%;transform:translateY(-50%);opacity:0;pointer-events:none;text-shadow:var(--tsh);color:#f4f2ea}
.band .wrap{position:relative}
.band::before{content:"";position:absolute;inset:-25% 0;pointer-events:none;background:radial-gradient(ellipse 54% 66% at 22% 50%,rgba(4,9,15,.72) 0%,rgba(4,9,15,.46) 48%,rgba(4,9,15,0) 78%)}
.band h1,.band h2{font-size:clamp(36px,6.2vw,86px);max-width:11.5em;position:relative}
.band p{max-width:30em;color:#dfe4e6;margin-top:20px;position:relative;font-size:19px}
.band .mono,.band .row{position:relative}.band .mono{display:block;margin-bottom:16px}
.band .row{display:flex;gap:14px;flex-wrap:wrap;margin-top:28px;pointer-events:auto}
.w{display:inline-block;opacity:var(--kc,1);transform:translateY(calc((1 - var(--kc,1))*-22px))}
.ring{position:absolute;right:26px;bottom:calc(26px + env(safe-area-inset-bottom,0px));width:30px;height:30px;color:var(--brass2);opacity:.85}
.cue{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);font:400 11px "IBM Plex Mono",monospace;letter-spacing:.24em;color:#c9d0d2;transition:opacity .4s}
.cue::after{content:"";display:block;width:1px;height:28px;margin:8px auto 0;background:var(--brass2);transform-origin:top;animation:cue 2.4s var(--e2) infinite}
@keyframes cue{0%{transform:scaleY(0)}60%{transform:scaleY(1)}100%{transform:scaleY(1);opacity:0}}
/* page hero */
.ph{position:relative;min-height:70vh;display:flex;align-items:flex-end;padding:170px 0 80px;background:var(--ink);color:#f4f2ea;overflow:hidden}
.ph canvas{position:absolute;inset:0;width:100%;height:100%}
.ph .wrap{position:relative}.ph h1{font-size:clamp(40px,7vw,100px);max-width:12em;margin:14px 0 20px;text-shadow:var(--tsh)}.ph p{max-width:36em;color:#cfd7da;font-size:20px}
/* generic */
.rv .part,.rv.item{opacity:0;transform:translateY(36px);transition:opacity 1s var(--e1),transform 1s var(--e1)}.rv.in .part,.rv.in.item{opacity:1;transform:none}
.par{will-change:transform}
.intro{font:500 clamp(28px,4vw,54px)/1.2 Newsreader,serif;max-width:21em;letter-spacing:-.01em}
.rows{margin-top:56px;border-top:1px solid var(--line)}
.row2{display:grid;grid-template-columns:70px 1fr 1.2fr 40px;gap:24px;align-items:center;padding:30px 4px;border-bottom:1px solid var(--line);position:relative;transition:padding .5s var(--e1),background .4s}
.row2:hover{padding-left:20px;background:rgba(178,138,78,.08)}.row2 h3{font-size:28px}.row2 p{color:var(--mut);font-size:16px}.row2 .n{font:400 12px "IBM Plex Mono";color:var(--brass);letter-spacing:.2em}.row2::after{content:"→";color:var(--brass);font-size:22px;justify-self:end;transition:transform .4s var(--e1)}.row2:hover::after{transform:translateX(6px)}
.split2{display:grid;grid-template-columns:1fr 1fr;gap:2px;margin-top:56px}
.mk{padding:52px 44px;background:var(--ink2);border:1px solid var(--lineD);position:relative;overflow:hidden;min-height:340px;transition:background .6s}
.mk:hover{background:#12303f}.mk h3{font-size:38px;margin:12px 0 14px}.mk p{color:#b7c3c9}.mk .big-n{position:absolute;right:-10px;bottom:-40px;font:500 180px Newsreader,serif;color:rgba(216,185,127,.07);line-height:1;pointer-events:none}
.sel{margin-top:44px;border:1px solid var(--line);background:#fff}
.tabs{display:flex;border-bottom:1px solid var(--line)}
.tabs button{flex:1;padding:20px;background:none;border:0;font:600 15px "Instrument Sans";cursor:pointer;color:var(--mut);border-bottom:3px solid transparent;transition:all .4s var(--e1)}
.tabs button[aria-selected=true]{color:var(--tx);border-color:var(--brass);background:var(--paper)}
.cols{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;padding:38px}
.cols h4{font:400 12px "IBM Plex Mono";letter-spacing:.18em;text-transform:uppercase;color:var(--brass);margin-bottom:14px}
.cols li{list-style:none;padding:9px 0;border-bottom:1px solid var(--line);font-size:16px;opacity:0;transform:translateX(-12px);transition:all .7s var(--e1)}.cols.on li{opacity:1;transform:none}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;position:relative;margin-top:64px}
.steps svg{position:absolute;left:0;top:0;width:100%;height:4px;overflow:visible}.steps path{stroke:var(--brass);stroke-width:2;fill:none;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--draw,0))}
.step{padding-top:36px}.step b{font:500 44px Newsreader,serif;color:var(--brass)}.step h3{font-size:24px;margin:6px 0 8px}.step p{color:#a9b6bd;font-size:16px}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:50px}
.card{background:#fff;border:1px solid var(--line);padding:34px;transition:transform .6s var(--e1),box-shadow .6s,border-color .4s;display:flex;flex-direction:column;gap:12px}
.card:hover{transform:translateY(-8px);box-shadow:0 30px 50px rgba(8,21,31,.12);border-color:var(--brass)}.card h3{font-size:25px}.card p{color:var(--mut);font-size:16px}.card .mono{font-size:11px}
.cta{text-align:center;overflow:hidden}.cta h2{margin:16px auto 20px;max-width:14em}.cta .lead{margin:0 auto 34px}
.orb{position:absolute;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(178,138,78,.22),transparent 68%)}
/* inner pages */
.svc{display:grid;grid-template-columns:280px 1fr;gap:70px}
.toc{position:sticky;top:110px;align-self:start;display:grid;border-left:1px solid var(--line)}.toc a{padding:11px 18px;font-size:15px;color:var(--mut);border-left:2px solid transparent;margin-left:-1px;transition:all .3s}.toc a:hover,.toc a.on{color:var(--tx);border-color:var(--brass)}
.sv{padding:0 0 70px;margin-bottom:70px;border-bottom:1px solid var(--line)}.sv:last-child{border:0}.sv h2{font-size:clamp(30px,4vw,48px);margin:10px 0 16px}.sv ul{margin-top:20px;display:grid;gap:10px}.sv li{list-style:none;padding-left:26px;position:relative}.sv li::before{content:"";position:absolute;left:0;top:.8em;width:14px;height:1px;background:var(--brass)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:70px}
.vals{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:50px;border-top:1px solid var(--line)}.vals div{padding:36px 34px 36px 0;border-bottom:1px solid var(--line)}.vals h3{font-size:28px;margin-bottom:8px}.vals p{color:var(--mut)}
.ind{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:50px;border-top:1px solid var(--line)}.ind div{padding:34px 28px 34px 0;border-bottom:1px solid var(--line)}.ind h3{font-size:26px;margin-bottom:8px}.ind p{color:var(--mut);font-size:16px}
.art{max-width:760px;padding:50px 0;border-bottom:1px solid var(--line)}.art h2{font-size:clamp(28px,3.4vw,42px);margin:10px 0 16px}.art p{color:#2c3a45;margin-bottom:12px}
.mkp{display:grid;grid-template-columns:1fr 1fr;gap:2px}.mkp>div{padding:60px 48px}
form{display:grid;gap:12px}label.mono{margin-top:8px}
input,textarea,select{width:100%;padding:16px 18px;border:1px solid rgba(11,27,39,.3);background:#fff;color:var(--tx);font:inherit;border-radius:0}
.dark input,.dark textarea,.dark select{background:var(--ink2);color:#eef0ee;border-color:var(--lineD)}
#ok,.ok{color:var(--teal);min-height:1.5em;font-size:15px}.dark .ok{color:var(--brass2)}
details{border-bottom:1px solid var(--line);padding:24px 0}summary{cursor:pointer;font:500 22px Newsreader,serif;list-style:none;display:flex;justify-content:space-between;gap:20px}
summary::after{content:"+";color:var(--brass);font-size:28px;transition:transform .4s var(--e1)}details[open] summary::after{transform:rotate(45deg)}details p{color:var(--mut);margin-top:12px;max-width:44em}
footer{background:var(--ink);color:#b7c3c9;padding:90px 0 40px;font-size:15px}
.fg{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:50px}.fg h4{font:400 12px "IBM Plex Mono";letter-spacing:.18em;text-transform:uppercase;color:var(--brass2);margin-bottom:16px}.fg a{display:block;padding:5px 0;transition:color .3s}.fg a:hover{color:#fff}
.fb{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--lineD);margin-top:60px;padding-top:26px;font-size:13px}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}
@media (max-width:720px),(orientation:portrait) and (max-width:1024px),(orientation:portrait) and (pointer:coarse),(orientation:landscape) and (pointer:coarse) and (max-height:560px),(prefers-reduced-motion:reduce){
.hero{height:auto}.stage{height:auto;min-height:100svh;display:flex;align-items:center;padding:120px 0 70px}.band:not(.be){display:none}.be{position:relative;top:auto;transform:none;opacity:1!important}.cue,.ring{display:none}}
@media(max-width:960px){section{padding:84px 0}.mb{display:block}#nv{position:fixed;inset:0;background:var(--ink);color:#f1efe8;flex-direction:column;justify-content:center;align-items:flex-start;padding:0 40px;gap:20px;font:500 34px Newsreader,serif;transform:translateY(-100%);transition:transform .6s var(--e2);z-index:-1}#nv.open{transform:none}header.menu{color:#f1efe8!important;background:transparent!important;box-shadow:none}
header .btn{display:none}.row2{grid-template-columns:44px 1fr 30px}.row2 p{display:none}.split2,.two,.mkp,.svc,.cards,.vals,.ind,.cols,.fg{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.steps svg{display:none}.toc{position:static;display:flex;overflow-x:auto;border:0;gap:6px}.toc a{white-space:nowrap;border:1px solid var(--line);margin:0}.svc{gap:30px}.mk{padding:40px 28px}.mkp>div{padding:44px 24px}.cols{padding:26px}.ph{min-height:60vh;padding-top:140px}}
@media(max-width:560px){.steps{grid-template-columns:1fr}.wrap{padding:0 20px}}
@media(max-height:560px){.cue{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.rv .part,.rv.item{opacity:1;transform:none}.cols li{opacity:1;transform:none}}

.tel{font:500 14px "IBM Plex Mono",monospace;letter-spacing:.04em;opacity:.9;white-space:nowrap}.tel:hover{color:var(--brass2)}
.crumb{font:400 12px "IBM Plex Mono",monospace;letter-spacing:.08em;color:#aab6bc;margin-bottom:18px}.crumb a:hover{color:var(--brass2)}.crumb span{margin:0 8px;opacity:.5}
.lay{display:grid;grid-template-columns:1fr 340px;gap:70px;align-items:start}
.prose p{color:#2c3a45;margin-bottom:16px;max-width:42em}.prose h2{font-size:clamp(26px,3vw,38px);margin:44px 0 14px}.prose a{color:var(--teal);border-bottom:1px solid var(--brass)}.prose a:hover{color:var(--brass)}
.defs{border-top:1px solid var(--line);margin-top:10px}.defs div{padding:20px 0;border-bottom:1px solid var(--line)}.defs b{font:500 22px Newsreader,serif;display:block;margin-bottom:4px}.defs span{color:var(--mut)}
.aside{position:sticky;top:110px;background:var(--ink);color:#eef0ee;padding:34px;border-top:3px solid var(--brass)}.aside h3{font-size:26px;margin-bottom:10px}.aside p{color:#b7c3c9;font-size:15px;margin-bottom:16px}.aside a.l{display:block;padding:10px 0;border-bottom:1px solid var(--lineD);font-size:16px}.aside a.l:hover{color:var(--brass2)}.aside .btn{margin-top:20px;width:100%}
.faq{margin-top:20px;max-width:820px}
.callbar{display:none}
.rel{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:30px}
.rel a{border:1px solid var(--line);padding:24px;background:#fff;transition:all .5s var(--e1)}.rel a:hover{border-color:var(--brass);transform:translateY(-5px)}.rel b{font:500 22px Newsreader,serif;display:block}.rel span{color:var(--mut);font-size:15px}
.cd{display:grid;gap:6px;margin-top:26px}.cd a{font:500 26px Newsreader,serif;border-bottom:1px solid var(--lineD);padding:12px 0}.cd a:hover{color:var(--brass2)}
@media(max-width:1180px){.tel{display:none}}
@media(max-width:960px){.lay,.rel{grid-template-columns:1fr}.aside{position:static}.callbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:55;background:var(--ink);border-top:1px solid var(--lineD);padding-bottom:env(safe-area-inset-bottom,0px)}.callbar a{text-align:center;padding:15px 8px;font:600 14px "Instrument Sans";color:#eef0ee}.callbar a:first-child{background:var(--brass);color:#15110a}footer{padding-bottom:90px}}
.aside a.l,.cd a{overflow-wrap:anywhere}
