:root{--bg:#0b1014;--fg:#f2f6f8;--muted:#a8b6bf;--accent:#35d07f;--accent-ink:#05130c;--sheet:#090e12eb;--radius:14px;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{overscroll-behavior:none;background:var(--bg);height:100%;color:var(--fg);touch-action:manipulation;-webkit-user-select:none;user-select:none;margin:0;font:400 16px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}#stage{opacity:0;background:#000;transition:opacity .24s;position:fixed;top:0;bottom:0;left:0;right:0}body[data-state=align] #stage,body[data-state=experience] #stage{opacity:1}#video{object-fit:cover;background:#000;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}#gl{pointer-events:none;width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0}#silhouette{pointer-events:none;opacity:0;will-change:opacity;transition:opacity .3s;position:absolute}body[data-state=align] #silhouette{opacity:1}.screen{z-index:10;flex-direction:column;display:none;position:fixed;top:0;bottom:0;left:0;right:0}body[data-state=gate] [data-screen=gate],body[data-state=intro] [data-screen=intro],body[data-state=error] [data-screen=error],body[data-state=align] [data-screen=align],body[data-state=experience] [data-screen=experience],body[data-state=capture] [data-screen=capture]{display:flex}.screen:not(.screen-hud){background:var(--bg);padding:calc(24px + var(--safe-top)) 20px calc(24px + var(--safe-bottom));justify-content:center;align-items:center;overflow-y:auto}.screen-hud{pointer-events:none;padding:calc(16px + var(--safe-top)) 16px calc(20px + var(--safe-bottom));background:0 0;justify-content:space-between}.screen-hud .btn,.screen-hud .shutter{pointer-events:auto}.sheet{text-align:center;flex-direction:column;gap:14px;width:100%;max-width:420px;display:flex}h1{margin:0;font-size:22px;font-weight:650;line-height:1.25}p{color:var(--muted);margin:0;font-size:15px}.badge{background:#ffffff14;border-radius:50%;align-self:center;place-items:center;width:52px;height:52px;font-size:24px;display:grid}.brand{object-fit:contain;align-self:center;max-width:60%;max-height:96px}.brand:not([src]),.brand[src=""]{display:none}.fineprint{color:#6f7f89;font-size:12px}.url-hint{color:#6f7f89;word-break:break-all;font-size:12px}.btn{border-radius:var(--radius);width:100%;font:inherit;text-align:center;cursor:pointer;border:0;padding:15px 18px;font-weight:600;text-decoration:none;display:block}.btn-primary{background:var(--accent);color:var(--accent-ink)}.btn-ghost{color:var(--fg);background:#ffffff17}.btn-chip{width:auto;color:var(--fg);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#090e1299;border-radius:999px;padding:9px 14px;font-size:13px}.btn:active{transform:scale(.985)}.btn[hidden],[hidden]{display:none!important}.hud-top{flex-direction:column;align-items:center;gap:10px;display:flex}.hud-bottom{flex-direction:column;align-items:center;gap:8px;display:flex}.hint,.toast{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:var(--fg);text-align:center;background:#090e1299;border-radius:999px;margin:0;padding:9px 14px;font-size:14px}.toast{background:#d68a1ed9}[data-screen=align] .hud-bottom .btn{max-width:320px}.shutter{cursor:pointer;background:#ffffff40;border:4px solid #ffffffd9;border-radius:50%;width:72px;height:72px}.shutter:active{background:#fff9}.shutter-label{color:var(--fg);text-shadow:0 1px 4px #000000b3;font-size:13px}[data-screen=capture]{justify-content:space-between;gap:16px}.capture-wrap{flex:auto;place-items:center;width:100%;min-height:0;display:grid}#capture-preview{object-fit:contain;border-radius:10px;max-width:100%;max-height:100%}.capture-actions{flex-direction:column;gap:10px;width:100%;max-width:420px;display:flex}#rotate-blocker{z-index:100;background:var(--bg);color:var(--fg);flex-direction:column;justify-content:center;align-items:center;gap:18px;display:none;position:fixed;top:0;bottom:0;left:0;right:0}body.is-landscape:not([data-state=boot]):not([data-state=gate]) #rotate-blocker{display:flex}.rotate-icon{font-size:64px;line-height:1;animation:1.8s ease-in-out infinite tilt}@keyframes tilt{0%,to{transform:rotate(90deg)}55%,85%{transform:rotate(0)}}#spinner{z-index:50;background:#0b10148c;place-items:center;display:grid;position:fixed;top:0;bottom:0;left:0;right:0}.spin{border:3px solid #ffffff40;border-top-color:var(--accent);border-radius:50%;width:38px;height:38px;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.howto{text-align:left;border-radius:var(--radius);color:var(--muted);background:#ffffff0f;flex-direction:column;gap:10px;margin:0;padding:14px;font-size:14px;list-style:none;display:flex}.howto-row,.howto li{align-items:baseline;gap:10px;display:flex}.howto-step,.howto li:before{width:22px;height:22px;color:var(--fg);background:#ffffff1f;border-radius:50%;flex:0 0 22px;place-items:center;font-size:12px;display:inline-grid}.howto li{counter-increment:step}.howto li:before{content:counter(step)}.howto{counter-reset:step}.gate-os{display:none}body[data-os=ios] .gate-os[data-os=ios],body[data-os=android] .gate-os[data-os=android]{display:block}
