:root{--bg:#0d1117;--panel:#161b22;--line:#30363d;--line2:#21262d;--fg:#e6edf3;--mut:#7d8590;--dim:#484f58;--grn:#3fb950;--amb:#d29922;--red:#f85149;--blu:#2f81f7;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace;--px:"Silkscreen",var(--mono)}
*{box-sizing:border-box}
html{color-scheme:dark;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font:15px/1.6 var(--sans);min-height:100vh;min-height:100dvh}
a{color:inherit}
button,input{font:inherit;color:inherit}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
main{max-width:560px;margin:0 auto;padding:max(28px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 32px max(16px,env(safe-area-inset-left));min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}
.flag{image-rendering:pixelated;shape-rendering:crispEdges;display:block}

/* loader (same as ship.ckai.co) */
.ld{position:fixed;inset:0;z-index:50;background:var(--bg);display:grid;place-items:center;transition:opacity .35s,visibility .35s}
.ld.gone{opacity:0;visibility:hidden}
.ld-in{display:grid;justify-items:center;gap:18px}
.ld .flag{animation:wave .6s steps(2) infinite}
@keyframes wave{50%{transform:translateY(-2px)}}
.ld p{margin:0;font:12px/1 var(--px);letter-spacing:.08em;color:var(--mut);text-transform:lowercase}
.bar8{display:flex;gap:4px}
.bar8 i{width:12px;height:12px;background:var(--line2)}
.bar8 i.f{background:var(--grn)}

/* top bar */
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:40px;color:var(--mut)}
.brand{display:flex;align-items:center;gap:10px;font:13px/1 var(--px);color:var(--fg);text-decoration:none;letter-spacing:.04em}
.brand span{color:var(--mut)}
.lnk{padding:0;border:0;background:none;color:var(--mut);font:13px/1.6 var(--mono);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.lnk:hover{color:var(--fg)}
.lnk.dng:hover{color:var(--red)}
.top .lnk{text-decoration:none}

/* headings */
.h{margin:0 0 10px;font:800 clamp(34px,9vw,48px)/1.02 var(--sans);letter-spacing:-.03em}
.lede{margin:0 0 26px;font-size:17px;line-height:1.55;color:var(--fg)}
.lede b{font-weight:600;word-break:break-all}
.sh{margin:38px 0 10px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.sh::before{content:"## ";color:var(--dim)}

/* form */
.join{display:flex;gap:8px}
.join input{flex:1;min-width:0;height:50px;padding:0 16px;border:1px solid var(--line);border-radius:12px;background:var(--panel);font:16px var(--mono);outline:none}
.join input::placeholder{color:var(--dim)}
.join input:focus{border-color:var(--mut);box-shadow:0 0 0 3px rgba(125,133,144,.18)}
.join input[aria-invalid=true]{border-color:var(--red)}
#code{letter-spacing:.2em}
.btn{flex-shrink:0;height:50px;padding:0 24px;border:0;border-radius:12px;background:var(--fg);color:var(--bg);font-weight:700;font-size:16px;cursor:pointer}
.btn:hover{background:#fff}
.btn:disabled{background:var(--line2);color:var(--mut);cursor:default}
.btn:focus-visible,.lnk:focus-visible,.brand:focus-visible{outline:2px solid var(--blu);outline-offset:2px}
.msg{min-height:0;margin:8px 0 0;font-size:14px;color:var(--amb)}
.msg:empty{display:none}
.msg.ok{color:var(--grn)}
.fine{margin:10px 0 0;font:12.5px/1.6 var(--mono);color:var(--mut)}

/* perks */
.perks{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.perks li{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 12px;padding:11px 14px;border-top:1px solid var(--line2)}
.perks li:first-child{border-top:0}
.perks b{font-weight:600}
.perks span{color:var(--mut);font-size:14px}
.note{margin:12px 0 0;color:var(--mut);font-size:14px}

/* badge */
.badge{position:relative;margin:0 0 22px;padding:22px 22px 18px;border:1px solid var(--line);border-radius:16px;background:
  radial-gradient(120% 90% at 100% 0%,rgba(63,185,80,.10),transparent 55%),
  repeating-linear-gradient(135deg,rgba(255,255,255,.018) 0 2px,transparent 2px 8px),var(--panel);
  box-shadow:0 20px 50px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.04);overflow:hidden}
.badge.pop{animation:pop .5s cubic-bezier(.2,1.4,.4,1) both}
@keyframes pop{from{transform:scale(.92) rotate(-1.5deg);opacity:0}to{transform:none;opacity:1}}
.b-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}
.b-day{padding:5px 10px;border:1px solid var(--grn);border-radius:6px;color:var(--grn);font:11px/1 var(--px);letter-spacing:.1em;text-transform:uppercase;transform:rotate(4deg)}
.b-lbl{margin:0;font:12px/1 var(--px);letter-spacing:.12em;color:var(--mut);text-transform:lowercase}
.b-num{margin:6px 0 16px;font:700 clamp(44px,13vw,64px)/1 var(--mono);letter-spacing:-.02em}
.b-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px dashed var(--line);font:13px/1.4 var(--mono)}
.b-row span{color:var(--mut)}
.b-row b{font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.welcome{margin-bottom:0}
.acct{margin-top:30px;padding-top:14px;border-top:1px solid var(--line2);font:13px/1.6 var(--mono);color:var(--mut)}
.acct p{margin:0 0 6px}

footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-top:auto;padding-top:40px;color:var(--dim);font:12px/1.6 var(--mono)}
footer a{color:var(--mut);text-decoration:none;margin-right:16px}footer a:hover{color:var(--fg)}

@media (max-width:420px){.join{flex-direction:column}.btn{width:100%}}
@media (prefers-reduced-motion:reduce){.ld .flag,.badge.pop{animation:none!important}.ld{transition:none}}

/* crew log in: the VIP corner */
.vip{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #6b5220;border-radius:999px;background:rgba(242,193,78,.08);color:#f6d77f;font:11px/1 var(--px);letter-spacing:.06em;cursor:pointer}
.vip::before{content:"🔑";font-size:12px}
.vip:hover,.vip.on{border-color:#f2c14e;background:rgba(242,193,78,.16);color:#fff3c4}
.vip:focus-visible{outline:2px solid var(--blu);outline-offset:2px}

/* one login to rule them all */
.one{display:grid;grid-template-columns:132px minmax(0,1fr);gap:20px;align-items:center;margin:34px 0 0;padding:18px;border:1px solid #4a3a17;border-radius:14px;background:linear-gradient(180deg,rgba(242,193,78,.07),transparent 60%),var(--panel)}
.one-art{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:12px;background:radial-gradient(circle at 50% 45%,rgba(242,193,78,.22),transparent 65%),#0f1319;overflow:hidden}
.art{width:84%;image-rendering:pixelated;shape-rendering:crispEdges;display:block;filter:drop-shadow(0 0 8px rgba(242,193,78,.45));animation:float 4s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-4px)}}
.sp{position:absolute;width:3px;height:3px;background:#f6d77f;opacity:0;animation:tw 3s steps(2) infinite}
.sp.s1{left:16%;top:20%}.sp.s2{left:80%;top:28%;animation-delay:1s}.sp.s3{left:72%;top:82%;animation-delay:2s}.sp.s4{left:22%;top:76%;animation-delay:1.5s}
@keyframes tw{0%,100%{opacity:0}40%{opacity:1}}
.one-h{margin:0 0 8px;font:400 19px/1.25 var(--px);letter-spacing:.01em}
.one-h em{font-style:normal;color:#f2c14e}
.one-tx p{margin:0 0 6px;font-size:14.5px;line-height:1.55}
.one-tx p.mut{color:var(--mut);font-size:13.5px;margin:0}
@media (max-width:480px){.one{grid-template-columns:1fr;justify-items:start}.one-art{width:120px}}
@media (prefers-reduced-motion:reduce){.art,.sp{animation:none!important}}
