:root{
  --bg:#f3efe6;--bg2:#ebe5d8;--card:rgba(255,255,255,.62);--card2:rgba(255,255,255,.85);--line:rgba(0,0,0,.09);--line2:rgba(0,0,0,.16);
  --ink:#141110;--tx:#1a1714;--tx2:#3a3531;--mu:#6b635b;--acc:#b4461d;--acc2:#8f3312;--good:#25794b;--bad:#b83a36;
  --r:18px;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Inter,Helvetica,Arial,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#12100e;--bg2:#1a1714;--card:rgba(255,255,255,.05);--card2:rgba(255,255,255,.08);--line:rgba(255,255,255,.09);--line2:rgba(255,255,255,.18);
  --ink:#f4efe8;--tx:#ece6de;--tx2:#c9c1b7;--mu:#968d83;--acc:#ef8a4f;--acc2:#ffa874;--good:#58c08a;--bad:#ef6b64;color-scheme:dark}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--tx);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased;min-height:100vh}
body::before{content:"";position:fixed;inset:-20% -10% auto;height:70vh;background:radial-gradient(50% 55% at 50% 40%,color-mix(in srgb,var(--acc) 18%,transparent),transparent 70%);pointer-events:none;z-index:-1}
a{color:var(--acc);text-underline-offset:3px}
a:hover{color:var(--acc2)}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
.nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink);text-decoration:none;font-weight:650;font-size:21px;letter-spacing:-.045em}
.brand svg{width:26px;height:26px}
.nav .links{display:flex;gap:10px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line2);background:var(--card2);color:var(--ink);padding:11px 18px;border-radius:999px;font:600 14.5px var(--sans);text-decoration:none;cursor:pointer;transition:transform .15s,background .2s,border-color .2s}
.btn:hover{transform:translateY(-1px);color:var(--ink)}
.btn.pri{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.btn.pri:hover{color:var(--bg)}
.btn.ghost{background:transparent}
.btn:disabled{opacity:.5;cursor:default;transform:none}
.hero{text-align:center;padding:9vh 0 6vh}
.hero .mark{display:block;margin:0 auto;width:64px;height:64px;color:var(--ink);opacity:0;animation:rise 1s cubic-bezier(.16,1,.3,1) .05s forwards}
.hero h1{font-size:clamp(40px,7vw,76px);line-height:1.02;letter-spacing:-.05em;font-weight:650;margin:18px 0 0;color:var(--ink);opacity:0;animation:rise 1s cubic-bezier(.16,1,.3,1) .2s forwards}
.hero .lines{margin:22px auto 0;display:grid;gap:6px;font:500 12.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--tx2)}
.hero .lines span{opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) forwards}
.hero .lines span:nth-child(1){animation-delay:.45s}.hero .lines span:nth-child(2){animation-delay:.6s}.hero .lines span:nth-child(3){animation-delay:.75s}
.hero .lines em{font-style:normal;color:var(--acc)}
.hero .sub{max-width:560px;margin:26px auto 0;color:var(--tx2);font-size:18px;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) .9s forwards}
.hero .cta{display:flex;gap:10px;justify-content:center;margin-top:28px;flex-wrap:wrap;opacity:0;animation:rise .9s cubic-bezier(.16,1,.3,1) 1s forwards}
@keyframes rise{from{opacity:0;transform:translateY(10px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@media (prefers-reduced-motion:reduce){.hero *{animation:none!important;opacity:1!important}}
.frame{border-radius:22px;border:1px solid var(--line2);background:var(--card);overflow:hidden;box-shadow:0 30px 80px -30px rgba(0,0,0,.35)}
.frame img,.frame video{display:block;width:100%;height:auto}
.caption{font:12px var(--mono);color:var(--mu);text-align:center;margin-top:10px;letter-spacing:.04em}
section.block{padding:9vh 0 0}
.kicker{font:600 12px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--acc)}
h2{font-size:clamp(28px,4vw,40px);letter-spacing:-.04em;line-height:1.1;margin:10px 0 14px;color:var(--ink);font-weight:650}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:26px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.card h3{margin:0 0 6px;font-size:17px;letter-spacing:-.02em;color:var(--ink)}
.card p{margin:0;color:var(--tx2);font-size:15px}
.shots{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-top:26px;align-items:start}
.list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:10px}
.list li{padding-left:26px;position:relative;color:var(--tx2)}
.list li::before{content:"";position:absolute;left:4px;top:.62em;width:9px;height:9px;border-radius:50%;background:var(--acc)}
footer{margin-top:12vh;padding:28px 0 40px;border-top:1px solid var(--line);color:var(--mu);font-size:13.5px}
footer .row{display:flex;flex-wrap:wrap;gap:14px 20px;justify-content:space-between}
footer a{color:var(--mu);text-decoration:none}
footer a:hover{color:var(--tx)}
footer nav{display:flex;flex-wrap:wrap;gap:8px 16px}
/* forms */
.auth{max-width:420px;margin:7vh auto 0}
.auth .card{padding:28px}
.auth h1{font-size:28px;letter-spacing:-.04em;margin:0 0 6px;color:var(--ink)}
.auth p.lead{margin:0 0 20px;color:var(--tx2)}
label.f{display:grid;gap:6px;margin-bottom:14px}
label.f span{font:600 11.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mu)}
input[type=email],input[type=text]{width:100%;padding:13px 14px;border-radius:12px;border:1px solid var(--line2);background:var(--card2);color:var(--ink);font:16px var(--sans);outline:none}
input:focus-visible,.btn:focus-visible,a:focus-visible{outline:2px solid var(--acc);outline-offset:2px}
input.code{font:600 28px var(--mono);letter-spacing:.35em;text-align:center}
.chk{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--tx2);margin:6px 0 12px}
.chk input{margin-top:3px;accent-color:var(--acc);width:16px;height:16px;flex:none}
.msg{min-height:22px;font-size:14px;margin:8px 0 0}
.msg.err{color:var(--bad)}.msg.ok{color:var(--good)}
.full{width:100%}
.hint{font-size:13px;color:var(--mu)}
.ts{margin:4px 0 14px;min-height:0}
/* legal */
.legal{max-width:760px;margin:4vh auto 0}
.legal h1{font-size:clamp(30px,5vw,44px);letter-spacing:-.045em;margin:0 0 4px;color:var(--ink)}
.legal .eff{color:var(--mu);font-size:14px;margin:0 0 26px}
.legal h2{font-size:22px;margin:32px 0 8px}
.legal h3{font-size:17px;margin:22px 0 6px;color:var(--ink)}
.legal p,.legal li{color:var(--tx2)}
.legal table{width:100%;border-collapse:collapse;font-size:14.5px;margin:10px 0}
.legal th,.legal td{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:top}
.legal th{font:600 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--mu)}
.legal .note{border:1px solid var(--line2);border-radius:14px;padding:14px 16px;background:var(--card);font-size:14px}
.todo{background:#ffe7a8;color:#5a3d00;padding:1px 4px;border-radius:4px}
@media (max-width:820px){.grid{grid-template-columns:1fr}.shots{grid-template-columns:1fr}.nav .links .hide-s{display:none}}
@media (max-width:640px){.legal table,.legal thead,.legal tbody,.legal tr,.legal th,.legal td{display:block;width:100%}.legal thead tr,.legal tr:first-child:has(th){display:none}.legal tr{border-bottom:1px solid var(--line);padding:8px 0}.legal td{border:0;padding:3px 0}.legal td:first-child{font-weight:600;color:var(--ink)}.legal table:not(:has(tr:first-child th)) td:first-child{font:600 11.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--mu)}}
.legal td,.legal th{overflow-wrap:anywhere}
/* the hand waves hello once it has risen in */
.hero .mark svg{display:block;width:100%;height:100%;transform-origin:52% 92%;animation:wave 1.5s cubic-bezier(.36,.07,.19,.97) 1s both}
@keyframes wave{0%{transform:rotate(0)}14%{transform:rotate(16deg)}28%{transform:rotate(-9deg)}42%{transform:rotate(14deg)}56%{transform:rotate(-5deg)}70%{transform:rotate(8deg)}85%{transform:rotate(-2deg)}100%{transform:rotate(0)}}
@media (prefers-reduced-motion:reduce){.hero .mark svg{animation:none}}
