.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom,0)}.brand{display:flex;align-items:center;gap:12px;padding:14px 20px 8px;position:sticky;top:0;z-index:5;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 100%,transparent),color-mix(in srgb,var(--bg) 88%,transparent) 80%,color-mix(in srgb,var(--bg) 0%,transparent));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.mark{width:28px;height:28px;flex-shrink:0;border-radius:50%;object-fit:cover;display:block}.wordmark{display:flex;flex-direction:column;line-height:1.1;min-width:0}.wordmark .name{font-family:var(--font-display);font-style:italic;font-size:18px;letter-spacing:-.01em;color:var(--text)}.wordmark .tag{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-mute);margin-top:2px}.wordmark .tag-link{color:inherit;text-decoration:underline;text-decoration-thickness:.5px;text-decoration-color:color-mix(in srgb,currentColor 45%,transparent);text-underline-offset:3px;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}.wordmark .tag-link:hover,.wordmark .tag-link:active{color:var(--text);text-decoration-color:currentColor}.stage{flex:1;width:100%;max-width:520px;margin:0 auto;padding:12px 20px 28px;box-sizing:border-box}.page-enter-active,.page-leave-active{transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out)}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-6px)}.loading{display:flex;gap:8px;justify-content:center;align-items:center;padding:80px 0}.loading .bar{width:10px;height:10px;border-radius:50%;background:var(--text-mute);opacity:.4;animation:bounce 1.2s var(--ease-in-out) infinite}.loading .bar:nth-child(2){animation-delay:.16s}.loading .bar:nth-child(3){animation-delay:.32s}.gate{text-align:center;padding:60px 20px;max-width:420px;margin:0 auto}.gate h2{font-family:var(--font-display);font-weight:400;font-size:28px;margin:0 0 12px;letter-spacing:-.01em}.gate .lead{color:var(--text-mute);font-size:15px;line-height:1.6;margin:0 0 28px}.gate .lead .link{color:var(--lime-600, var(--text));text-decoration:underline;text-decoration-thickness:.5px;text-decoration-color:color-mix(in srgb,currentColor 50%,transparent);text-underline-offset:3px;font-weight:500;cursor:pointer;transition:color var(--dur-fast) var(--ease-out),text-decoration-color var(--dur-fast) var(--ease-out)}.gate .lead .link:hover,.gate .lead .link:active{color:var(--text);text-decoration-color:currentColor}.close-btn{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:12px 24px;background:var(--text);color:var(--bg);border:0;border-radius:var(--radius-pill);font-size:14px;font-weight:500;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.close-btn:hover{transform:translateY(-1px)}.close-btn:active{transform:scale(.97);opacity:.9}.action-row{display:flex;gap:12px;justify-content:center}.secondary-btn{display:inline-flex;align-items:center;justify-content:center;min-width:120px;padding:12px 24px;background:transparent;color:var(--text);border:1px solid var(--border);border-radius:var(--radius-pill);font-size:14px;font-weight:500;cursor:pointer;transition:transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.secondary-btn:hover{transform:translateY(-1px)}.secondary-btn:active{transform:scale(.97);opacity:.9}.lock-art{width:96px;height:96px;margin:0 auto 24px;position:relative}.lock-art .ring{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;border:2px dashed var(--border);animation:spin 18s linear infinite}.lock-art .dot{position:absolute;top:50%;left:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--lime-500);box-shadow:0 0 0 6px color-mix(in srgb,var(--lime-500) 28%,transparent),0 0 30px var(--lime-glow);animation:pulse 2.4s ease-in-out infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}:root{--ink-900: #0d0d14;--ink-800: #16161f;--ink-700: #22222e;--ink-500: #4a4a58;--ink-300: #b3b3bf;--ink-100: #f1f1ec;--ink-50: #faf9f5;--lime-600: #a3c800;--lime-500: #d4ff3a;--lime-400: #e6ff66;--lime-200: #f1ff9c;--lime-glow: rgba(212, 255, 58, .45);--positive: #1fc97a;--warning: #f4a82a;--danger: #ff5470;--bg: var(--tg-theme-bg-color, var(--ink-50));--bg-elevated: var(--tg-theme-secondary-bg-color, #ffffff);--bg-recess: var(--tg-theme-secondary-bg-color, #f1f1ec);--text: var(--tg-theme-text-color, var(--ink-900));--text-mute: var(--tg-theme-hint-color, #6b6b76);--text-soft: color-mix(in srgb, var(--text) 60%, transparent);--border: color-mix(in srgb, var(--text) 12%, transparent);--border-soft: color-mix(in srgb, var(--text) 6%, transparent);--link: var(--tg-theme-link-color, #2563eb);--destructive: var(--tg-theme-destructive-text-color, var(--danger));--tint-accent: color-mix(in srgb, var(--lime-500) 14%, transparent);--tint-accent-strong: color-mix(in srgb, var(--lime-500) 28%, transparent);--font-display: "Instrument Serif", "Songti SC", "Source Han Serif SC", Georgia, serif;--font-body: "Albert Sans", -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(13, 13, 20, .04), 0 0 0 1px var(--border-soft);--shadow-md: 0 4px 14px -2px rgba(13, 13, 20, .08), 0 0 0 1px var(--border-soft);--shadow-lg: 0 22px 60px -22px rgba(13, 13, 20, .28), 0 0 0 1px var(--border-soft);--shadow-lime: 0 14px 40px -10px var(--lime-glow);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--dur-fast: .16s;--dur-base: .28s;--dur-slow: .52s;--lime-atmo-a: 6%;--lime-atmo-b: 3%}@media (prefers-color-scheme: dark){:root:not([data-tg-theme]){--bg: var(--ink-900);--bg-elevated: var(--ink-800);--bg-recess: var(--ink-700);--text: var(--ink-50);--text-mute: #8a8a96;--border: rgba(255, 255, 255, .08);--border-soft: rgba(255, 255, 255, .04);--lime-atmo-a: 3%;--lime-atmo-b: 1.5%}}:root[data-tg-theme=dark]{--lime-atmo-a: 3%;--lime-atmo-b: 1.5%}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}body{background-image:radial-gradient(120% 60% at 100% 0%,color-mix(in srgb,var(--lime-500) var(--lime-atmo-a),transparent) 0%,transparent 55%),radial-gradient(80% 50% at 0% 100%,color-mix(in srgb,var(--lime-500) var(--lime-atmo-b),transparent) 0%,transparent 60%);background-attachment:fixed;min-height:100vh;min-height:100dvh}button{font-family:inherit;-webkit-appearance:none;cursor:pointer}input,textarea{font-family:inherit;color:inherit}a{color:var(--link)}.kicker{font-family:var(--font-display);font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--text-mute);font-feature-settings:"tnum" 1}.serif-num{font-family:var(--font-display);font-feature-settings:"tnum" 1,"lnum" 1;font-style:italic}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
