/* ============ Obsidian app layer (R1–R7). Loaded after styles.css. ============ */
:root{
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-io:cubic-bezier(.65,0,.35,1);
  --d-fast:150ms;--d-base:300ms;--d-slow:500ms;--d-page:600ms;--d-intro:1200ms;
  --hair:#25222e;--hair-2:#34303f;--ink-2:#0d0c11;
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint);margin:0 0 14px}
.ul{color:var(--text);background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:2px;transition:background-size var(--d-fast) var(--ease-out),color var(--d-fast)}
.ul:hover{color:var(--acc-soft);background-size:0 1px;background-position:100% 100%}
.quiet{color:var(--muted);font-size:.9rem}.quiet:hover{color:var(--text)}
.linkish{background:none;border:0;color:var(--acc-soft);font:inherit;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.btn{border-radius:4px;transition:background var(--d-fast),color var(--d-fast),border-color var(--d-fast),transform var(--d-fast)}
.btn:active{transform:translateY(1px)}
.btn-block{width:100%}
.btn.loading{pointer-events:none;opacity:.85}
.sweep{position:relative;overflow:hidden}
.sweep::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.18) 50%,transparent 70%);transform:translateX(-100%);transition:transform var(--d-slow) var(--ease-out)}
.sweep:hover::after{transform:translateX(100%)}
.btn.loading::before{content:"";width:14px;height:14px;border:1.5px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:6px}
@keyframes spin{to{transform:rotate(360deg)}}
hr.hair{border:0;border-top:1px solid var(--hair);margin:22px 0}

/* ---- view transitions (R6): cross-document, shared mark + rings ---- */
@view-transition{navigation:auto}
.vt-mark{view-transition-name:obs-mark}
.vt-rings{view-transition-name:obs-rings}
::view-transition-old(root){animation:vt-out var(--d-base) var(--ease-in) both}
::view-transition-new(root){animation:vt-in var(--d-page) var(--ease-out) both}
::view-transition-group(obs-mark),::view-transition-group(obs-rings){animation-duration:var(--d-page);animation-timing-function:var(--ease-io)}
@keyframes vt-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes vt-in{from{opacity:0;transform:translateY(12px)}}
@media (prefers-reduced-motion:reduce){::view-transition-old(root),::view-transition-new(root){animation:none}}

/* ---- rings device ---- */
.rings{color:rgba(155,92,246,.22);pointer-events:none}
.rings .ring{stroke-width:1;stroke-dasharray:1;stroke-dashoffset:0}
.rings .r0{stroke:rgba(196,165,255,.55)}

/* ---- intro (R7) ---- */
.intro{position:fixed;inset:0;z-index:200;background:var(--bg);display:grid;place-items:center;transition:opacity var(--d-slow) var(--ease-out)}
.intro .rings{position:absolute;width:min(90vmin,760px);height:auto}
.intro.play .ring{stroke-dashoffset:1;animation:draw 900ms var(--ease-out) forwards;animation-delay:calc(var(--i) * 45ms)}
.intro-mark{position:relative;opacity:0;transform:scale(.86);filter:blur(6px)}
.intro.play .intro-mark{animation:resolve 600ms var(--ease-out) 450ms forwards}
.intro.done{opacity:0;pointer-events:none}
@keyframes draw{to{stroke-dashoffset:0}}
@keyframes resolve{to{opacity:1;transform:none;filter:none}}

/* ---- gateway (R1) ---- */
body.is-gate{min-height:100vh;display:flex;flex-direction:column;background:var(--bg)}
body.is-gate main{flex:1;display:flex}
.gate{flex:1;display:grid;grid-template-columns:55fr 45fr;min-height:calc(100vh - 49px);border-top:2px solid var(--acc-2)}
.gate-l{position:relative;overflow:hidden;padding:56px 64px;display:flex;flex-direction:column;justify-content:flex-end;gap:28px;
  background:radial-gradient(900px 700px at 20% 10%,rgba(76,29,149,.38),transparent 60%),linear-gradient(160deg,#120f1c,var(--bg) 70%)}
.gate-l::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(180deg,#000,transparent 85%);pointer-events:none}
.gate-l .rings{position:absolute;width:980px;height:980px;right:-380px;top:-330px;--mx:0px;--my:0px;transform:translate(var(--mx),var(--my));transition:transform 1.2s var(--ease-out)}
.lockup{position:absolute;top:48px;left:64px;display:flex;align-items:center;gap:14px;color:var(--text)}
.lockup b{display:block;font-weight:800;font-size:1.35rem;letter-spacing:.04em;line-height:1}
.lockup small{display:block;font-family:var(--mono);font-size:.62rem;letter-spacing:.42em;color:var(--faint);margin-top:6px}
.lockup.sm{position:static;margin-bottom:48px}.lockup.sm b{font-size:1.05rem}
.gate-tag{position:relative;font-size:clamp(1.9rem,3.2vw,2.9rem);font-weight:700;letter-spacing:-.025em;line-height:1.08;max-width:15ch;margin:0}
.sysline{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.sysline li{font-family:var(--mono);font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:12px;opacity:0;transform:translateY(6px)}
.sysline li::before{content:"";width:18px;height:1px;background:var(--acc)}
body.ready .sysline li{animation:rise var(--d-slow) var(--ease-out) forwards}
body.ready .sysline li:nth-child(2){animation-delay:80ms}body.ready .sysline li:nth-child(3){animation-delay:160ms}body.ready .sysline li:nth-child(4){animation-delay:240ms}
@keyframes rise{to{opacity:1;transform:none}}
.gate-r{display:flex;align-items:center;justify-content:center;padding:48px}
.panel{width:100%;max-width:380px;opacity:0;transform:translateY(10px)}
body.ready .panel{animation:rise var(--d-slow) var(--ease-out) 60ms forwards}
.gate-h{font-size:1.75rem;letter-spacing:-.02em;margin-bottom:28px}
.fl{position:relative;margin-bottom:18px}
.fl input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair-2);color:var(--text);font:inherit;font-size:1.02rem;padding:22px 56px 9px 0;outline:none;border-radius:0}
.fl label{position:absolute;left:0;top:20px;color:var(--faint);pointer-events:none;transition:transform var(--d-base) var(--ease-out),color var(--d-base),font-size var(--d-base);transform-origin:0 0}
.fl input:focus+label,.fl input:not(:placeholder-shown)+label{transform:translateY(-16px) scale(.78);color:var(--muted)}
.fl::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--acc-soft);transform:scaleX(0);transform-origin:0 50%;transition:transform var(--d-base) var(--ease-out)}
.fl:focus-within::after{transform:scaleX(1)}
.fl input[aria-invalid=true]{border-bottom-color:#f87171}
.fl input:-webkit-autofill{-webkit-text-fill-color:var(--text);transition:background-color 9999s}
.showpw{position:absolute;right:0;bottom:8px;background:none;border:0;color:var(--muted);font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:4px}
.row-end{display:flex;justify-content:flex-end;margin:-4px 0 18px}
.gate-msg{min-height:0;font-size:.9rem;margin:0 0 14px}
.gate-msg:empty{display:none}
.gate-msg.err{color:#fca5a5}.gate-msg.ok{color:var(--ok)}
#signin[data-state=error] .fl::after{background:#f87171}
.or{display:flex;align-items:center;gap:14px;margin:26px 0 18px;color:var(--faint);font-size:.8rem}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--hair)}
.guest{display:flex;justify-content:space-between;align-items:center;padding:15px 18px;border:1px solid var(--hair-2);border-radius:4px;color:var(--text);font-weight:700;transition:border-color var(--d-fast),background var(--d-fast)}
.guest span{transition:transform var(--d-fast) var(--ease-out)}
.guest:hover{border-color:var(--acc-soft);color:#fff;background:rgba(139,92,246,.06)}.guest:hover span{transform:translateX(4px)}
.notyet{margin-top:18px;font-size:.9rem;color:var(--muted)}
.returning .ret-name{font-weight:700;font-size:1.1rem;margin-bottom:14px}
.returning #not-me{margin-top:12px;font-size:.85rem}
body.signing-in .panel{animation:collapse var(--d-slow) var(--ease-in) forwards}
@keyframes collapse{to{opacity:0;transform:scale(.96) translateY(-12px)}}
.qfoot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px 24px;padding:14px 24px;border-top:1px solid var(--hair);font-size:.8rem;color:var(--faint)}
.qfoot nav{display:flex;flex-wrap:wrap;gap:18px}.qfoot a{color:var(--faint)}.qfoot a:hover{color:var(--text)}
.qfoot.wide{padding:22px max(24px,calc((100vw - var(--max))/2 + 24px))}

/* ---- guest chrome (R2) ---- */
body.c-guest .strip,body.c-guest .site-header{display:none}
.gnav{position:fixed;top:0;left:0;right:0;z-index:60;background:linear-gradient(180deg,rgba(8,8,10,.92),rgba(8,8,10,.55) 70%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.gnav-in{display:flex;justify-content:space-between;align-items:center;height:68px;padding:0 max(24px,calc((100vw - var(--max))/2 + 24px))}
.gnav .brand img{width:30px;height:30px}
.gnav-r{display:flex;align-items:center;gap:24px}
.menu-btn,.gl-link{background:none;border:0;color:var(--muted);font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;padding:6px 0}
.menu-btn:hover,.gl-link:hover{color:var(--text)}
.btn-sm{padding:8px 14px;font-size:.82rem}
body.c-guest main{padding-top:68px}
.menu{position:fixed;inset:0;z-index:80;background:rgba(8,8,10,.97);opacity:0;transition:opacity var(--d-base) var(--ease-out)}
.menu.open{opacity:1}
.menu-in{max-width:var(--max);margin:0 auto;padding:120px 24px 48px;display:grid;grid-template-columns:2fr 1fr;gap:48px;position:relative}
.menu ol{list-style:none;margin:0;padding:0;counter-reset:m}
.menu li{border-top:1px solid var(--hair);opacity:0;transform:translateY(14px);transition:opacity var(--d-slow) var(--ease-out),transform var(--d-slow) var(--ease-out)}
.menu.open li{opacity:1;transform:none}
.menu.open li:nth-child(2){transition-delay:40ms}.menu.open li:nth-child(3){transition-delay:80ms}.menu.open li:nth-child(4){transition-delay:120ms}.menu.open li:nth-child(5){transition-delay:160ms}.menu.open li:nth-child(6){transition-delay:200ms}.menu.open li:nth-child(7){transition-delay:240ms}
.menu li a{display:block;padding:16px 0;font-size:clamp(1.5rem,3.4vw,2.4rem);font-weight:700;letter-spacing:-.02em;color:var(--text)}
.menu li a:hover,.menu li a[aria-current=page]{color:var(--acc-soft)}
.menu-side{padding-top:18px;color:var(--muted)}.menu-side a{color:var(--text)}
.menu-close{position:absolute;top:28px;right:24px;background:none;border:0;color:var(--muted);font-family:var(--mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;cursor:pointer}
body.noscroll{overflow:hidden}

/* ---- less chunky (R5): deeper pages lose boxes, keep hairlines ---- */
body.c-guest .tile{background:transparent;border:0;border-top:1px solid var(--hair);border-radius:0;padding:22px 0 0}
body.c-guest a.tile:hover{border-top-color:var(--acc)}
body.c-guest .pack,body.c-guest .doc,body.c-guest .result{background:transparent;border-radius:4px;border-color:var(--hair)}
body.c-guest section{border-bottom-color:var(--hair);padding:96px 0}
body.c-guest .page-hero{padding:72px 0 48px}
body.c-guest .page-hero::after{display:none}
body.c-guest .tint{background:transparent;border-top:1px solid var(--hair)}
body.c-guest .table-wrap{border-radius:4px;border-color:var(--hair)}
body.c-guest .kicker{color:var(--faint)}
body.c-guest .chip{border-radius:4px}
body.c-guest .cta{padding:96px 0}
td.num,th.num,.tile-s b,.dt td{font-variant-numeric:tabular-nums}

/* ---- funnel chapters (R2) ---- */
body.is-funnel main{padding-top:0}
.ch{min-height:100vh;display:flex;align-items:center;padding:110px 0 80px!important;border:0!important;scroll-margin-top:0}
.ch-in{width:100%;max-width:var(--max);margin:0 auto;padding:0 24px 0 max(24px,calc((100vw - var(--max))/2 + 24px));padding:0 24px}
.ch-in>*{opacity:0;transform:translateY(24px);transition:opacity var(--d-slow) var(--ease-out),transform var(--d-slow) var(--ease-out)}
.ch.in .ch-in>*{opacity:1;transform:none}
.ch.in .ch-in>*:nth-child(2){transition-delay:60ms}.ch.in .ch-in>*:nth-child(3){transition-delay:120ms}.ch.in .ch-in>*:nth-child(4){transition-delay:180ms}.ch.in .ch-in>*:nth-child(5){transition-delay:240ms}
.no-js .ch-in>*{opacity:1;transform:none}
.ch-h{font-size:clamp(2.2rem,5.6vw,4.6rem);letter-spacing:-.035em;line-height:1.02;max-width:16ch;margin-bottom:28px}
.ch-p{font-size:1.15rem;color:var(--muted);max-width:56ch}
.ch-art{margin-top:40px;max-width:760px}
.ch-more{display:flex;gap:28px;margin-top:28px}
.lines{list-style:none;margin:8px 0 0;padding:0;max-width:900px}
.lines li{border-top:1px solid var(--hair)}
.lines li:last-child{border-bottom:1px solid var(--hair)}
.lines a,.lines.plain li{display:grid;grid-template-columns:1.2fr 1.4fr .8fr;gap:16px;padding:20px 0;color:var(--text);align-items:baseline}
.lines.plain li{grid-template-columns:.8fr 2fr}
.lines a b,.lines li b{font-size:1.15rem}
.lines span{color:var(--muted)}
.lines .packs-l{font-family:var(--mono);font-size:.8rem;text-align:right}
.lines a:hover b{color:var(--acc-soft)}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0;counter-reset:s;border-top:1px solid var(--hair)}
.steps li{padding:22px 20px 0 0;position:relative;counter-increment:s}
.steps li::before{content:"0" counter(s);display:block;font-family:var(--mono);font-size:.72rem;color:var(--acc-soft);margin-bottom:14px}
.steps li::after{content:"";position:absolute;top:-1px;left:0;height:1px;width:0;background:var(--acc);transition:width 900ms var(--ease-out)}
.ch.in .steps li::after{width:100%}
.ch.in .steps li:nth-child(2)::after{transition-delay:120ms}.ch.in .steps li:nth-child(3)::after{transition-delay:240ms}.ch.in .steps li:nth-child(4)::after{transition-delay:360ms}.ch.in .steps li:nth-child(5)::after{transition-delay:480ms}
.steps b{display:block;margin-bottom:6px}.steps span{color:var(--muted);font-size:.93rem}
.dots{position:fixed;right:22px;top:50%;transform:translateY(-50%);z-index:50;display:flex;flex-direction:column;gap:14px;padding:6px 0}
.dots::before{content:"";position:absolute;left:3px;top:0;bottom:0;width:1px;background:var(--hair-2)}
.dots-fill{position:absolute;left:3px;top:0;bottom:0;width:1px;background:var(--acc);transform:scaleY(0);transform-origin:top;transition:transform var(--d-slow) var(--ease-out)}
.dots i{position:relative;width:7px;height:7px;border-radius:50%;background:var(--bg);border:1px solid var(--hair-2);cursor:pointer;transition:background var(--d-base),border-color var(--d-base)}
.dots i.on{background:var(--acc);border-color:var(--acc)}
.cta-dock{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:55}
.cta-dock .btn{box-shadow:0 10px 30px rgba(0,0,0,.45)}
.ch .finder{max-width:520px}
.ch-in.wide{max-width:960px}
.joinform{margin-top:8px}
.joinform .field input,.joinform .field select,.joinform .field textarea,.form1 .field input,.form1 .field select,.form1 .field textarea{background:transparent;border:0;border-bottom:1px solid var(--hair-2);border-radius:0;padding:10px 0}
.joinform .field select option{background:var(--bg)}
.jf-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}

/* module explorer (R4) */
.explorer{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start;margin-top:8px}
.mods{list-style:none;margin:0;padding:0}
.mod{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;background:none;border:0;border-top:1px solid var(--hair);color:var(--muted);font:inherit;font-size:.95rem;text-align:left;padding:12px 0;cursor:pointer;transition:color var(--d-fast),padding var(--d-base) var(--ease-out)}
.mod:hover{color:var(--text)}
.mod[aria-pressed=true]{color:var(--text);padding-left:12px;box-shadow:inset 2px 0 0 var(--acc)}
.st{font-style:normal;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.st-live{color:var(--ok)}.st-opening{color:var(--faint)}
.frame{border:1px solid var(--hair-2);border-radius:6px;overflow:hidden;background:linear-gradient(180deg,#100e16,var(--bg))}
.frame-bar{display:flex;align-items:center;gap:6px;padding:10px 14px;border-bottom:1px solid var(--hair)}
.frame-bar i{width:7px;height:7px;border-radius:50%;background:var(--hair-2)}
.frame-bar span{margin-left:10px;font-family:var(--mono);font-size:.7rem;color:var(--faint)}
.frame-body{padding:32px;min-height:300px}
.frame-body.swap>*{animation:rise var(--d-base) var(--ease-out) both}
.frame-body.swap>*:nth-child(2){animation-delay:40ms}.frame-body.swap>*:nth-child(3){animation-delay:80ms}.frame-body.swap>*:nth-child(4){animation-delay:120ms}
.frame-body h3{font-size:1.6rem}
.frame-body p{color:var(--muted);max-width:52ch}
.sk{margin-top:24px;display:grid;gap:12px}
.sk-row{display:flex;justify-content:space-between}
.sk-row i{height:8px;border-radius:2px;background:linear-gradient(90deg,var(--hair) 0,#2e2a3a 50%,var(--hair) 100%);background-size:200% 100%;animation:shimmer 2.4s linear infinite}
.sk-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.sk-grid span{height:70px;border:1px solid var(--hair);border-radius:4px}
.sk-track{display:flex;gap:6px;margin-top:28px}.sk-track i{flex:1;height:3px;background:var(--hair)}.sk-track i.on{background:var(--acc)}
@keyframes shimmer{to{background-position:-200% 0}}

/* ---- dashboard (R3) ---- */
body.is-app{background:#09080c}
body.is-app main{min-height:100vh}
.app{display:grid;grid-template-columns:220px 1fr;grid-template-rows:auto 60px 1fr;min-height:100vh}
.sample-bar{grid-column:1/-1;background:#3b2a07;color:#fde68a;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;text-align:center;padding:7px 12px}
.topbar{grid-column:1/-1;display:flex;align-items:center;gap:24px;padding:0 20px;border-bottom:1px solid var(--hair);position:sticky;top:0;z-index:30;background:rgba(9,8,12,.92);backdrop-filter:blur(8px)}
.tb-brand{display:flex;align-items:center;gap:12px;color:var(--text);min-width:190px}
.tb-brand b{font-weight:700;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.cmd{flex:1;max-width:520px;display:flex;justify-content:space-between;align-items:center;background:transparent;border:1px solid var(--hair-2);border-radius:4px;color:var(--faint);font:inherit;font-size:.9rem;padding:8px 12px;cursor:text}
.cmd:hover{border-color:var(--acc-soft);color:var(--muted)}
kbd{font-family:var(--mono);font-size:.72rem;border:1px solid var(--hair-2);border-radius:3px;padding:1px 6px;color:var(--muted)}
.tb-r{margin-left:auto;display:flex;align-items:center;gap:22px;position:relative}
.acct{background:none;border:1px solid var(--hair-2);color:var(--text);border-radius:4px;padding:7px 12px;font:inherit;font-size:.88rem;cursor:pointer}
.acct-menu{position:absolute;right:0;top:46px;background:var(--surface);border:1px solid var(--hair-2);border-radius:4px;min-width:200px;padding:6px;display:grid}
.acct-menu a,.acct-menu button{background:none;border:0;color:var(--text);font:inherit;font-size:.92rem;text-align:left;padding:9px 10px;border-radius:3px;cursor:pointer}
.acct-menu a:hover,.acct-menu button:hover{background:var(--hair)}
.rail{border-right:1px solid var(--hair);padding:18px 10px;display:flex;flex-direction:column;gap:2px;position:sticky;top:60px;height:calc(100vh - 60px);overflow:auto}
.rail a,.rail-dim{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:4px;color:var(--muted);font-size:.93rem}
.rail a:hover{color:var(--text);background:rgba(255,255,255,.03)}
.rail a[aria-current=page]{color:var(--text);background:rgba(139,92,246,.1);box-shadow:inset 2px 0 0 var(--acc)}
.rail-dim{color:#57536340;color:#5b5766;cursor:default;font-size:.86rem}
.rail-h{font-family:var(--mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin:22px 12px 6px}
.ri{width:14px;height:14px;border:1.5px solid currentColor;border-radius:3px;flex:none;opacity:.8}
.ri-overview{border-radius:50%}.ri-prices{border-radius:2px;transform:rotate(45deg) scale(.8)}.ri-news{border-width:1.5px 0;border-radius:0;height:10px}
.ri-quotes{border-radius:7px 7px 7px 1px}.ri-documents{width:11px}.ri-support{border-radius:50%;border-style:dashed}.ri-dot{width:6px;height:6px;border-radius:50%;margin:0 4px;background:currentColor;border:0}
.view{padding:36px 40px 80px;max-width:1320px;outline:none}
.view.enter{animation:lift var(--d-base) var(--ease-out)}
@keyframes lift{from{opacity:0;transform:translateY(8px)}}
.vh h1{font-size:clamp(1.7rem,2.8vw,2.3rem);letter-spacing:-.025em;margin-bottom:26px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);margin-bottom:34px}
.tile-s{padding:20px 20px 20px 0}
.tile-s+.tile-s{padding-left:20px;border-left:1px solid var(--hair)}
.tile-s span{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px}
.tile-s b{font-size:2rem;font-weight:700;letter-spacing:-.02em}
.tile-s b small{display:block;font-size:.75rem;font-weight:400;color:var(--faint);letter-spacing:0;margin-top:4px}
.g2{display:grid;grid-template-columns:1.25fr 1fr;gap:40px;margin-bottom:34px}
.g2w{grid-template-columns:1fr 1fr}
.mod-b{min-width:0}
.mod-h{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--hair);padding-bottom:10px;margin-bottom:16px}
.mod-h h2{font-size:1rem;font-weight:700;letter-spacing:0;margin:0;display:flex;align-items:center;gap:10px}
.mod-c.arrive{animation:lift var(--d-base) var(--ease-out)}
.skel{display:grid;gap:12px}.skel i{height:12px;border-radius:2px;background:linear-gradient(90deg,var(--hair) 0,#2e2a3a 50%,var(--hair) 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}.skel i:nth-child(2){width:80%}.skel i:nth-child(3){width:60%}
.empty{color:var(--faint);font-size:.93rem}.empty.err{color:#fca5a5}
.tag-s{font-family:var(--mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:#fde68a;border:1px solid #6b5212;border-radius:3px;padding:2px 6px;font-weight:400}
.tw{overflow-x:auto}
.dt{width:100%;min-width:560px;border-collapse:collapse;font-size:.92rem}
.dt th{font-family:var(--mono);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:400;background:none;padding:8px 10px 8px 0;border-bottom:1px solid var(--hair)}
.dt td{padding:11px 10px 11px 0;border-bottom:1px solid var(--hair)}
.dt .sub{display:block;font-size:.8rem;color:var(--faint)}
.dt .strong{font-weight:700;color:#fff}
.meta{font-size:.8rem;color:var(--faint);margin:10px 0 12px}
.spark{margin:0 0 6px}
.spark svg{width:100%;height:auto;overflow:visible}
.sp-line{fill:none;stroke:var(--acc-soft);stroke-width:1.5;stroke-dasharray:1;stroke-dashoffset:1;animation:draw 1.1s var(--ease-out) .15s forwards}
.spark circle{fill:var(--acc)}.spark text{fill:var(--muted);font-size:10px;font-family:var(--mono)}
.spark figcaption{font-size:.78rem;color:var(--faint)}
.nl{list-style:none;margin:0;padding:0}
.nl li{padding:12px 0;border-bottom:1px solid var(--hair);display:grid;gap:4px}
.nl-m{display:flex;gap:12px;align-items:center;font-size:.78rem;color:var(--faint)}
.nl p{margin:2px 0 4px;color:var(--muted);font-size:.93rem;max-width:72ch}
.nl .ul{font-size:.82rem;justify-self:start}
.docl{list-style:none;margin:0 0 12px;padding:0}
.docl a{display:flex;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hair);color:var(--text)}
.docl a:hover{color:var(--acc-soft)}
.dk{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--acc-soft);border:1px solid var(--hair-2);border-radius:3px;padding:2px 6px;min-width:38px;text-align:center}
.mkl{list-style:none;margin:0 0 18px;padding:0}
.mkl li{display:grid;grid-template-columns:1fr auto;gap:2px 16px;padding:10px 0;border-bottom:1px solid var(--hair)}
.mkl span{color:var(--muted)}.mkl small{grid-column:1/-1;color:var(--faint)}
#m-view p{color:#cfcbd9;max-width:68ch}
.opening{border-top:1px solid var(--hair);padding-top:20px}
.opening ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.opening b{display:block;color:var(--muted);font-size:.95rem;margin-bottom:4px}
.opening span{color:var(--faint);font-size:.85rem}
.trk{padding:14px 0;border-bottom:1px solid var(--hair)}
.trk-h{display:flex;gap:18px;flex-wrap:wrap;align-items:baseline;margin-bottom:12px;font-size:.92rem}
.trk-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr)}
.trk-l li{position:relative;padding-top:16px;font-size:.8rem;color:var(--faint)}
.trk-l li::before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--hair)}
.trk-l li.done::before{background:var(--acc)}.trk-l li.done{color:var(--text)}
.trk-l li.now::after{content:"";position:absolute;top:-3px;left:0;width:8px;height:8px;border-radius:50%;background:var(--acc-soft);animation:pulse 1.6s var(--ease-out) infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(196,165,255,.5)}100%{box-shadow:0 0 0 10px rgba(196,165,255,0)}}
.form1{display:grid;gap:14px}
#compare-out{min-height:1.5em}
.cmdk{border:1px solid var(--hair-2);border-radius:6px;background:var(--surface);color:var(--text);width:min(620px,92vw);padding:0;margin-top:12vh}
.cmdk::backdrop{background:rgba(0,0,0,.6);backdrop-filter:blur(2px)}
.cmdk[open]{animation:lift var(--d-base) var(--ease-out)}
.cmdk input{width:100%;background:transparent;border:0;border-bottom:1px solid var(--hair);color:var(--text);font:inherit;font-size:1.05rem;padding:16px 18px;outline:none}
.cmdk ul{list-style:none;margin:0;padding:6px;max-height:50vh;overflow:auto}
.cmdk li a{display:flex;gap:12px;align-items:center;padding:10px 12px;border-radius:4px;color:var(--text)}
.cmdk li a:hover,.cmdk li[aria-selected=true] a{background:var(--hair)}
.cmdk li.empty{padding:12px}
.cmdk>.small{padding:8px 18px 12px;margin:0;border-top:1px solid var(--hair)}

/* ---- utility pages ---- */
body.is-util main{min-height:calc(100vh - 49px);display:flex;align-items:center}
.util{border:0!important;padding:80px 24px!important;width:100%}
.util-in{max-width:520px;margin:0 auto}
.util h1{font-size:2.2rem;letter-spacing:-.02em}
.util .form{grid-template-columns:1fr}
.util .check{margin-bottom:8px}

/* ---- responsive ---- */
@media (max-width:980px){
  .gate{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  .gate-l{padding:26px 24px 22px;min-height:0;gap:10px;justify-content:flex-start}
  .gate-l .rings{width:520px;height:520px;right:-200px;top:-220px}
  .lockup{position:relative;top:auto;left:auto}
  .gate-tag{font-size:1.15rem;max-width:none;font-weight:600;color:var(--muted)}
  .sysline{display:none}
  .gate-r{padding:22px 24px 28px;align-items:flex-start}
  .gate-h{font-size:1.35rem;margin-bottom:14px}
  .fl{margin-bottom:10px}
  .or{margin:16px 0 12px}
  .explorer{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr;row-gap:28px}
  .app{grid-template-columns:1fr;grid-template-rows:auto 56px auto 1fr}
  .rail{position:static;height:auto;flex-direction:row;overflow-x:auto;border-right:0;border-bottom:1px solid var(--hair);padding:6px 10px}
  .rail .rl{white-space:nowrap}
  .rail-h,#rail-opening{display:none}
  .view{padding:24px 18px 80px}
  .g2,.g2w{grid-template-columns:1fr}
  .opening ul{grid-template-columns:1fr 1fr}
  .tb-r .quiet,.cmd span{display:none}
  .cmd{max-width:44px;justify-content:center}
  .tb-brand{min-width:0}
  .menu-in{grid-template-columns:1fr;padding-top:90px}
  .dots{display:none}
}
@media (max-width:640px){
  .gnav-r .gl-link{display:none}
  .gnav-r{gap:14px}
  .lines a,.lines.plain li{grid-template-columns:1fr;gap:4px}
  .lines .packs-l{text-align:left}
  .steps{grid-template-columns:1fr}
  .tiles{grid-template-columns:1fr}
  .tile-s+.tile-s{padding-left:0;border-left:0;border-top:1px solid var(--hair)}
  .opening ul{grid-template-columns:1fr}
  .ch{min-height:auto;padding:88px 0 56px!important}
  .cta-dock{display:none}
  .qfoot{padding-bottom:70px}
  body.is-gate .qfoot{padding-bottom:14px}
}
.acct-menu[hidden],[hidden]{display:none!important}
@media (max-width:640px){.gnav-r .btn{display:none}.gnav-in{height:60px}body.c-guest main{padding-top:60px}}
