@font-face{font-family:"Inter Tight";font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/inter-tight.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono.woff2) format("woff2")}
:root{
  --bg:#efeee9; --ink:#0b0b0b; --grey:#77756f; --line:#d3d1ca;
  --hot:#ff4a1c; --pad:clamp(16px,4vw,56px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Inter Tight",system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.mono{font-family:"IBM Plex Mono",monospace;font-size:12px;letter-spacing:.04em;text-transform:uppercase}
.x{padding-left:var(--pad);padding-right:var(--pad)}
::selection{background:var(--hot);color:#fff}

/* nav */
nav{position:fixed;inset:0 0 auto 0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;mix-blend-mode:difference;color:#fff}
nav .brand{font-weight:600;font-size:19px;letter-spacing:-.02em}
nav ul{display:flex;gap:34px;list-style:none}
nav ul a{position:relative}
nav ul a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:1px;background:currentColor;transition:width .3s}
nav ul a:hover::after{width:100%}

/* hero */
.hero{min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:140px;padding-bottom:48px}
.hero h1{font-weight:500;font-size:clamp(52px,10.4vw,188px);line-height:.9;letter-spacing:-.055em}
.hero h1 .dim{color:var(--grey)}
.hero-foot{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;margin-top:72px;padding-top:22px;border-top:1px solid var(--ink);align-items:start}
.hero-foot p{font-size:19px;max-width:420px;line-height:1.4}
.hero-foot .go{justify-self:end;display:flex;align-items:center;gap:12px;font-weight:500}
.dot{width:9px;height:9px;border-radius:50%;background:var(--hot);display:inline-block}
.arrow{display:inline-grid;place-items:center;width:52px;height:52px;border-radius:50%;background:var(--ink);color:var(--bg);transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s}
.go:hover .arrow{transform:rotate(-45deg);background:var(--hot)}

/* marquee */
.marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;white-space:nowrap}
.track{display:inline-flex;gap:56px;animation:run 38s linear infinite;font-size:clamp(26px,3.4vw,46px);letter-spacing:-.03em}
.track span{display:inline-flex;align-items:center;gap:56px}
.track span::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--hot)}
@keyframes run{to{transform:translateX(-50%)}}

section{padding-top:clamp(110px,16vw,220px)}
.label{display:flex;justify-content:space-between;padding-bottom:18px;border-bottom:1px solid var(--line);color:var(--grey)}

/* intro */
.intro{display:grid;grid-template-columns:1fr 2fr;gap:40px;margin-top:56px}
.intro p{font-size:clamp(28px,3.4vw,52px);line-height:1.08;letter-spacing:-.035em;font-weight:500}
.intro p span{color:var(--grey)}

/* services */
.svc{border-bottom:1px solid var(--line)}
.svc summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:24px;padding:34px 0;transition:padding .35s}
.svc summary::-webkit-details-marker{display:none}
.svc h3{font-weight:500;font-size:clamp(30px,4.6vw,72px);letter-spacing:-.045em;line-height:1;transition:transform .4s cubic-bezier(.2,.8,.2,1),color .3s}
.svc summary:hover h3{transform:translateX(14px)}
.svc .plus{width:44px;height:44px;border:1px solid var(--ink);border-radius:50%;position:relative;transition:transform .35s,background .3s}
.svc .plus::before,.svc .plus::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:1px;background:currentColor;transform:translate(-50%,-50%)}
.svc .plus::after{transform:translate(-50%,-50%) rotate(90deg)}
.svc[open] .plus{transform:rotate(45deg);background:var(--ink);color:var(--bg)}
.svc[open] h3{color:var(--hot)}
.svc .body{display:grid;grid-template-columns:90px 1fr 1fr;gap:24px;padding:0 0 44px}
.svc .body p{font-size:19px;max-width:480px;line-height:1.45}
.svc .body ul{list-style:none;color:var(--grey)}
.svc .body li{padding:7px 0;border-top:1px solid var(--line)}
.svc .body li:last-child{border-bottom:1px solid var(--line)}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:56px}
.step{border-top:1px solid var(--ink);padding-top:22px}
.step h4{font-weight:500;font-size:28px;letter-spacing:-.03em;margin:46px 0 12px}
.step p{color:#3d3c39;font-size:16px;max-width:280px}

/* statement */
.statement{font-size:clamp(40px,7.4vw,128px);font-weight:500;letter-spacing:-.055em;line-height:.95;margin-top:56px}
.statement em{font-style:normal;color:var(--hot)}
.notes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:80px}
.notes div{border-top:1px solid var(--line);padding-top:18px}
.notes h5{font-weight:500;font-size:20px;letter-spacing:-.02em;margin-bottom:8px}
.notes p{color:#3d3c39;font-size:16px}

/* contact */
.contact{background:var(--ink);color:var(--bg);margin-top:clamp(110px,16vw,220px);padding-top:clamp(90px,12vw,160px);padding-bottom:48px}
.contact .label{border-color:#2a2a2a;color:#8a8882}
.contact h2{font-weight:500;font-size:clamp(46px,9vw,160px);letter-spacing:-.055em;line-height:.92;margin-top:56px}
.mail{display:inline-flex;align-items:center;gap:22px;margin-top:56px;font-size:clamp(22px,3vw,40px);letter-spacing:-.03em;border-bottom:1px solid #444;padding-bottom:10px;transition:border-color .3s,color .3s}
.mail:hover{color:var(--hot);border-color:var(--hot)}
.mail .arrow{background:var(--bg);color:var(--ink);width:46px;height:46px}
.mail:hover .arrow{transform:rotate(-45deg);background:var(--hot);color:#fff}
.cinfo{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:120px;padding-top:22px;border-top:1px solid #2a2a2a;font-size:15px;line-height:1.55}
.cinfo .mono{color:#8a8882;display:block;margin-bottom:10px}

/* footer */
footer{background:var(--ink);color:#8a8882;padding-bottom:28px;font-size:14px}
.wordmark{font-weight:600;color:var(--bg);font-size:clamp(80px,23vw,420px);letter-spacing:-.07em;line-height:.8;margin:40px 0 28px;white-space:nowrap}
.fbar{display:flex;justify-content:space-between;flex-wrap:wrap;gap:16px;border-top:1px solid #2a2a2a;padding-top:20px}
.fbar nav{all:unset;display:flex;gap:24px;flex-wrap:wrap}
.fbar a:hover{color:var(--bg)}

/* legal */
.legal{background:var(--ink);color:#b9b7b0;padding-bottom:40px}
.legal details{border-top:1px solid #2a2a2a}
.legal summary{cursor:pointer;list-style:none;padding:18px 0;color:var(--bg);display:flex;justify-content:space-between}
.legal summary::-webkit-details-marker{display:none}
.legal summary::after{content:"+";color:#8a8882}
.legal details[open] summary::after{content:"−"}
.legal .in{padding:4px 0 34px;max-width:820px;font-size:14px;line-height:1.65}
.legal .in h6{font-size:14px;font-weight:600;color:var(--bg);margin:18px 0 4px}
.legal .in ul{padding-left:18px}
.legal a{text-decoration:underline;text-underline-offset:3px}

/* gradients + motion */
.grad{background:linear-gradient(90deg,#ff4a1c,#ff2d87,#7b5cff,#2fb8ff,#ff4a1c);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shift 9s linear infinite}
@keyframes shift{to{background-position:300% 0}}
.hero{position:relative;overflow:hidden}
.hero > *:not(.blobs){position:relative;z-index:1}
.blobs{position:absolute;inset:0;z-index:0;pointer-events:none;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.75;mix-blend-mode:multiply}
.b1{width:46vw;height:46vw;right:-8vw;top:-12vw;background:#ff4a1c;animation:float1 16s ease-in-out infinite}
.b2{width:38vw;height:38vw;right:18vw;top:6vw;background:#ff2d87;animation:float2 19s ease-in-out infinite}
.b3{width:34vw;height:34vw;right:-4vw;top:20vw;background:#7b5cff;animation:float3 22s ease-in-out infinite}
@keyframes float1{50%{transform:translate(-8vw,6vw) scale(1.12)}}
@keyframes float2{50%{transform:translate(10vw,-4vw) scale(.88)}}
@keyframes float3{50%{transform:translate(-12vw,-6vw) scale(1.15)}}
.line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}
.line > span{display:inline-block;transform:translateY(110%);animation:up 1.2s cubic-bezier(.2,.8,.2,1) forwards}
.line:nth-child(2) > span{animation-delay:.12s}
.line:nth-child(3) > span{animation-delay:.24s}
@keyframes up{to{transform:none}}
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1s steps(4) infinite}
@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-1%,3%)}}
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:linear-gradient(90deg,#ff4a1c,#ff2d87,#7b5cff);transform-origin:0 50%;transform:scaleX(0)}
.cur{position:fixed;top:0;left:0;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;background:#fff;mix-blend-mode:difference;pointer-events:none;z-index:100;transition:width .3s,height .3s,margin .3s}
.cur.big{width:70px;height:70px;margin:-35px 0 0 -35px}
@media (hover:none){.cur{display:none}}
.track span::after{background:linear-gradient(135deg,#ff4a1c,#7b5cff)}
.svc summary:hover h3{background:linear-gradient(90deg,#ff4a1c,#ff2d87,#7b5cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.svc .body{animation:open .6s cubic-bezier(.2,.8,.2,1)}
@keyframes open{from{opacity:0;transform:translateY(-12px)}}
.step{border-top:0;position:relative}
.step::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,var(--ink),#ff4a1c,#7b5cff);transform:scaleX(0);transform-origin:0;transition:transform 1.2s cubic-bezier(.2,.8,.2,1) .2s}
.step.in::before{transform:scaleX(1)}
.statement em{background:linear-gradient(90deg,#ff4a1c,#ff2d87,#7b5cff,#ff4a1c);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shift 7s linear infinite}
.contact{position:relative;overflow:hidden}
.contact > *:not(.glow){position:relative;z-index:1}
.glow{position:absolute;width:110vw;height:110vw;left:30%;top:-30%;border-radius:50%;background:conic-gradient(from 0deg,#ff4a1c,#ff2d87,#7b5cff,#2fb8ff,#ff4a1c);filter:blur(120px);opacity:.35;animation:spin 24s linear infinite;pointer-events:none}
@keyframes spin{to{transform:rotate(360deg)}}
.wordmark{background:linear-gradient(180deg,var(--bg) 35%,#5a5852);-webkit-background-clip:text;background-clip:text;color:transparent}
.arrow{will-change:transform}

/* reveal */
.r{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.r.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.r{opacity:1;transform:none}.track,.blob,.glow,.grain,.grad,.statement em{animation:none}.line > span{animation:none;transform:none}}

@media (max-width:900px){
  nav ul{display:none}
  .hero-foot{grid-template-columns:1fr}
  .hero-foot .go{justify-self:start}
  .intro{grid-template-columns:1fr}
  .svc summary{grid-template-columns:44px 1fr auto}
  .svc .body{grid-template-columns:1fr;padding-left:0}
  .svc .body > span{display:none}
  .steps,.notes{grid-template-columns:1fr 1fr}
  .cinfo{grid-template-columns:1fr 1fr}
}
@media (max-width:560px){
  .steps,.notes,.cinfo{grid-template-columns:1fr}
  .step h4{margin-top:24px}
  .mail{font-size:20px;gap:14px}
}

/* accessibility */
.skip{position:absolute;left:-9999px;top:12px;z-index:200;background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:8px}
.skip:focus{left:16px}
:focus-visible{outline:2px solid var(--hot);outline-offset:3px}
.contact a,.cinfo a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:#555}

/* legal pages */
.page{padding-top:clamp(130px,16vw,200px);padding-bottom:clamp(90px,12vw,160px)}
.page h1{font-weight:500;font-size:clamp(44px,7.4vw,112px);letter-spacing:-.055em;line-height:.95;margin:40px 0 18px}
.page .updated{color:var(--grey)}
.page .doc{max-width:820px;margin-top:56px}
.page .doc h2{font-weight:500;font-size:clamp(24px,2.6vw,32px);letter-spacing:-.03em;line-height:1.15;margin:56px 0 14px;padding-top:18px;border-top:1px solid var(--line)}
.page .doc p,.page .doc li{font-size:17px;color:#3d3c39;margin-bottom:12px;max-width:720px}
.page .doc ul{padding-left:20px;margin-bottom:12px}
.page .doc strong{color:var(--ink);font-weight:600}
.page .doc a{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--hot)}
.page .doc table{width:100%;border-collapse:collapse;margin:8px 0 20px;font-size:16px}
.page .doc th,.page .doc td{text-align:left;padding:14px 0;border-bottom:1px solid var(--line);vertical-align:top}
.page .doc th{width:40%;font-weight:400;color:var(--grey);padding-right:16px}
.back{display:inline-flex;align-items:center;gap:10px;font-weight:500}
.back .arrow{width:40px;height:40px}
.back:hover .arrow{transform:rotate(45deg);background:var(--hot)}

/* keep wide elements (marquee, wordmark) from widening the page on phones */
html,body{overflow-x:clip}
footer{overflow:hidden}
