:root{
  --bg:#03050b;--ink:#f5f8fc;--ink2:#dce5ef;--muted:#bfcbdb;
  --line:rgba(190,220,255,.16);--line2:rgba(200,225,255,.42);--fline:rgba(200,225,255,.36);
  --err:#ffb4a9;--accent:#6fe7ff;--tsh:0 0 28px rgba(3,5,11,.9);
  --ez:cubic-bezier(.16,1,.3,1);--wave:cubic-bezier(.45,0,.55,1);
}
*{box-sizing:border-box}
html{background:var(--bg)}
body{margin:0;min-height:100vh;color:var(--ink);font-family:'DM Sans',system-ui,sans-serif;-webkit-font-smoothing:antialiased;
  background-color:var(--bg);
  background-image:radial-gradient(60% 50% at 28% 28%,rgba(28,120,170,.32),transparent 70%),radial-gradient(50% 50% at 76% 68%,rgba(30,60,200,.28),transparent 70%);
  background-attachment:fixed}
a{color:inherit;text-decoration:none}
a:hover{opacity:.7}
input,textarea,button{font-family:inherit}
p{text-wrap:pretty}

#field{position:fixed;inset:0;width:100%;height:100%;display:block;z-index:0;transition:opacity 900ms ease}
body[data-page="legal"] #field{opacity:.28}

.wrap{position:relative;z-index:1;min-height:100vh;display:flex;flex-direction:column;max-width:1200px;margin:0 auto;padding:0 clamp(24px,6.4vw,72px)}
.head{display:flex;align-items:center;padding:clamp(26px,4.6vw,48px) 0}
.head a{display:block;color:var(--ink);opacity:1}
.logo{display:block;width:clamp(150px,19vw,200px);height:auto;overflow:visible}
main{flex:1}

/* Home */
.hero{padding:clamp(88px,22vw,240px) 0 clamp(160px,30vw,340px)}
.hero h1{margin:0;font-size:clamp(38px,7.6vw,92px);line-height:1.06;font-weight:400;letter-spacing:-.03em;max-width:12.4em;text-shadow:var(--tsh)}
.hero h1 span{display:inline-block;margin-right:.24em}
.hero h1 span:last-child{margin-right:0}
.offset{margin-left:clamp(0px,calc((100vw - 760px) * .6),440px)}
.body{padding-bottom:clamp(140px,22vw,280px);display:flex;flex-direction:column;gap:1.1em;max-width:31em;font-size:clamp(18px,2.1vw,23px);line-height:1.6;font-weight:300;color:var(--ink2);text-shadow:var(--tsh)}
.body p{margin:0}
.founder{margin-top:1.4em;align-self:flex-start;display:inline-flex;align-items:center;gap:10px;padding-bottom:5px;border-bottom:1px solid var(--line2);font-size:15px;font-weight:400;color:var(--ink)}
.access{padding-top:clamp(40px,8vw,96px)}
.panel{max-width:640px;background:rgba(3,7,16,.6);-webkit-backdrop-filter:blur(22px) saturate(1.2);backdrop-filter:blur(22px) saturate(1.2);border:1px solid rgba(190,220,255,.14);border-radius:24px;padding:clamp(24px,5vw,52px)}
.panel h2{margin:0;font-size:clamp(28px,4.2vw,46px);line-height:1.1;font-weight:400;letter-spacing:-.02em}
.panel .lede{margin:16px 0 0;max-width:28em;font-size:clamp(17px,1.9vw,20px);line-height:1.6;font-weight:300;color:var(--ink2)}
.alt{margin:28px 0 0;font-size:15px;font-weight:300;color:var(--ink2)}
.alt a,.legal a{color:var(--ink);border-bottom:1px solid var(--line2)}

/* Form */
form{margin-top:clamp(32px,5vw,48px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:28px}
.field{display:flex;flex-direction:column;gap:6px}
.full{grid-column:1/-1}
.field>span:first-child{font-size:13px;color:var(--muted)}
.field input,.field textarea{width:100%;padding:10px 0 12px;border:0;border-bottom:1px solid var(--fline);border-radius:0;background:transparent;color:var(--ink);font-size:17px;outline:none}
.field textarea{min-height:88px;line-height:1.5;resize:vertical}
.field input:focus,.field textarea:focus{border-bottom-color:var(--ink)}
.err{font-size:13px;color:var(--err)}
.err:empty{display:none}
.consent{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:14px;line-height:1.6;font-weight:300;color:var(--ink2)}
.consent input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--accent);cursor:pointer}
.consent a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.consent-err{padding-left:30px;margin-top:8px;display:block}
.btn{min-height:50px;padding:0 28px;border:0;border-radius:999px;background:var(--ink);color:var(--bg);font-size:15px;font-weight:500;letter-spacing:.005em;cursor:pointer;transition:opacity 200ms ease}
.btn:hover{opacity:.86}
.btn:disabled{opacity:.6;cursor:progress}
.form-err,.form-err:empty{display:block;margin:14px 0 0;font-size:14px;line-height:1.6}
.form-err:empty{margin:0}
.form-err a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.thanks{margin:clamp(32px,5vw,48px) 0 0;font-size:clamp(22px,3vw,30px);line-height:1.35;font-weight:300;letter-spacing:-.01em;animation:vd-soft 900ms var(--ez) both}

/* Legal */
.legal{max-width:40em;padding-top:clamp(32px,7vw,88px)}
.legal h1{margin:0;font-size:clamp(32px,5vw,52px);line-height:1.1;font-weight:400;letter-spacing:-.025em}
.legal .date{margin:14px 0 0;font-size:14px;color:var(--muted)}
.legal .content{margin-top:clamp(36px,5vw,56px);display:flex;flex-direction:column;gap:32px;font-size:17px;line-height:1.75;font-weight:300;color:var(--ink2)}
.legal .content.tight{gap:24px}
.legal p{margin:0}
.legal section{display:flex;flex-direction:column;gap:6px}
.legal h2{margin:0;font-size:17px;font-weight:500;color:var(--ink)}

/* Footer */
.foot{margin-top:clamp(72px,11vw,128px);padding:32px 0 clamp(32px,5vw,48px);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:18px 48px;font-size:13px;line-height:1.75;font-weight:300;color:var(--muted);text-shadow:var(--tsh)}
.foot .col{display:flex;flex-direction:column}
.foot .end{justify-content:flex-end}
.foot .strong{color:var(--ink);font-weight:400}
.foot .addr{max-width:30em}

/* Logo motion: Assembling Deck v2 */
.c{transform-box:view-box}
.c1{transform-origin:19px 37px;transform:rotate(-9deg);animation:vd-in-a 780ms var(--ez) 0ms both,vd-idle-a 5600ms var(--wave) 1700ms infinite}
.c2{transform-origin:32px 33px;transform:rotate(0deg);animation:vd-in-b 780ms var(--ez) 170ms both,vd-idle-b 5600ms var(--wave) 2120ms infinite}
.c3{transform-origin:47px 27px;transform:rotate(7deg);animation:vd-in-c 940ms var(--ez) 720ms both,vd-idle-c 5600ms var(--wave) 2540ms infinite}
.wm{animation:vd-word 800ms var(--ez) 1100ms both}
@keyframes vd-in-a{from{opacity:0;transform:translate(-8px,7px) rotate(-27deg)}to{opacity:1;transform:rotate(-9deg)}}
@keyframes vd-in-b{from{opacity:0;transform:translate(0,10px) rotate(5deg)}to{opacity:1;transform:rotate(0deg)}}
@keyframes vd-in-c{from{opacity:0;transform:translate(12px,-7px) rotate(21deg)}to{opacity:1;transform:rotate(7deg)}}
@keyframes vd-idle-a{0%,22%,100%{transform:rotate(-9deg) translateY(0)}11%{transform:rotate(-9deg) translateY(-.7px)}}
@keyframes vd-idle-b{0%,22%,100%{transform:rotate(0deg) translateY(0)}11%{transform:rotate(0deg) translateY(-.8px)}}
@keyframes vd-idle-c{0%,22%,100%{transform:rotate(7deg) translateY(0)}11%{transform:rotate(7deg) translateY(-.7px)}}
@keyframes vd-word{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes vd-soft{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* Reveals (only when JS is running) */
.js [data-reveal]{opacity:0;transform:translateY(.45em);filter:blur(10px);transition:opacity 1400ms var(--ez) var(--d,0ms),transform 1400ms var(--ez) var(--d,0ms),filter 1400ms var(--ez) var(--d,0ms)}
.js [data-reveal].in{opacity:1;transform:none;filter:none}

@media (prefers-reduced-motion:reduce){
  .c,.wm,.thanks{animation:none}
  .js [data-reveal]{opacity:1;transform:none;filter:none;transition:none}
  #field{transition:none}
}
