:root{--canvas:#0a0a0a;--surface-1:#151515;--surface-2:#1e1e1e;--surface-3:#2a2a2a;--divider:#252525;--text-primary:#fff;--text-secondary:#a1a1a1;--text-tertiary:#6e6e6e;--accent:#c8f54a;--accent-soft:#c8f54a24;--warn:#ffb54c;--danger:#ff5a5a;--cta-bg:#fff;--cta-fg:#000;--radius-pill:28px;--radius-card:22px;--font-sans:"Pretendard", "SUIT", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--safe-bottom:env(safe-area-inset-bottom,0px);--tab-h:72px;--motion:cubic-bezier(.22, 1, .36, 1);--shadow-up:0 -10px 32px #00000073;--shadow-card:0 8px 28px #00000047}*,:before,:after{box-sizing:border-box}html,body,#root{background:var(--canvas);min-height:100%;color:var(--text-primary);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word;line-break:strict;margin:0}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}a{color:inherit;text-decoration:none}input,select{color:inherit;font-family:inherit}.hero-num{font-variant-numeric:tabular-nums;letter-spacing:-.045em;font-weight:700;line-height:1}.cta-primary{border-radius:var(--radius-pill);background:var(--cta-bg);width:100%;color:var(--cta-fg);justify-content:center;align-items:center;padding:16px 28px;font-size:16px;font-weight:600;transition:transform .15s,background .15s;display:inline-flex}.cta-primary:active{background:#e8e8e8;transform:scale(.97)}.cta-primary:disabled{background:var(--surface-3);color:var(--text-tertiary)}.cta-accent{border-radius:var(--radius-pill);background:var(--accent);color:#0a0a0a;justify-content:center;align-items:center;width:100%;padding:16px 28px;font-size:16px;font-weight:700;transition:transform .15s,box-shadow .15s;display:inline-flex;box-shadow:0 8px 24px #c8f54a38}.cta-accent:active{transform:scale(.97)}.cta-accent:disabled{opacity:.45;box-shadow:none}.cta-secondary{border:1px solid var(--surface-3);width:100%;color:var(--text-primary);background:0 0;border-radius:24px;justify-content:center;align-items:center;padding:14px 24px;font-size:15px;font-weight:600;display:inline-flex}.cta-secondary:disabled{opacity:.45}.surface-card{border-radius:var(--radius-card);box-shadow:var(--shadow-card);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:linear-gradient(#ffffff0a,#ffffff05);border:1px solid #ffffff0f;padding:16px}.surface-card--accent{border-left:3px solid var(--accent)}.field-input{border:1px solid var(--surface-3);background:var(--surface-2);border-radius:14px;outline:none;width:100%;margin-top:10px;padding:12px 14px;font-size:16px;transition:border-color .15s,box-shadow .15s}.field-input:focus{box-shadow:0 0 0 4px var(--accent-soft);border-color:#c8f54a73}.page-enter{animation:rise .4s var(--motion) both}.stack-sm{flex-direction:column;gap:12px;display:flex}.stack-md{flex-direction:column;gap:16px;display:flex}.row{align-items:center;gap:12px;display:flex}.chip-row{flex-wrap:wrap;gap:8px;display:flex}.chip{background:var(--surface-2);color:var(--text-secondary);border:1px solid #0000;border-radius:999px;align-items:center;padding:8px 12px;font-size:12px;font-weight:600;display:inline-flex}.chip.active{background:var(--accent-soft);color:var(--accent);border-color:#c8f54a59}.mute-link{color:var(--accent);font-size:13px;font-weight:600}.status-pill{background:var(--surface-2);color:var(--text-secondary);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:600;display:inline-flex}.status-pill.on{background:var(--accent-soft);color:var(--accent)}.app-shell{max-width:480px;min-height:100dvh;padding-bottom:calc(var(--tab-h) + var(--safe-bottom));margin:0 auto;position:relative}.app-shell.immersive{max-width:none;padding-bottom:0}.tab-bar{width:100%;max-width:480px;height:calc(var(--tab-h) + var(--safe-bottom));padding:6px 4px calc(6px + var(--safe-bottom));box-shadow:var(--shadow-up);z-index:40;background:#121212;border-top:2px solid #ffffff1a;grid-template-columns:1fr 1fr 1.15fr 1fr 1fr;align-items:end;display:grid;position:fixed;bottom:0;left:50%;transform:translate(-50%)}.tab-bar a,.tab-bar .tab-slot{color:#ffffff8c;flex-direction:column;justify-content:center;align-items:center;gap:3px;min-height:48px;font-size:10px;font-weight:700;display:flex}.tab-bar a.active{color:var(--accent)}.tab-bar .tab-icon{justify-content:center;align-items:center;width:22px;height:22px;display:flex}.fab-start{background:var(--accent);color:#0a0a0a;border:3px solid #121212;border-radius:999px;justify-content:center;align-items:center;width:3.85rem;height:3.85rem;margin-top:-1.35rem;transition:transform .15s;animation:1.8s ease-out infinite fab-pulse;display:flex;position:relative;box-shadow:0 10px 28px #c8f54a59}.fab-start:active{transform:scale(.95)}.fab-start svg{display:block}.page{padding:24px 20px 32px}.meta{color:var(--text-secondary);word-break:keep-all;overflow-wrap:break-word;font-size:13px;font-weight:500}.page-title{letter-spacing:-.4px;word-break:keep-all;margin:0 0 8px;font-size:28px;font-weight:700}.card{background:var(--surface-1);border-radius:16px;padding:16px}.stamp{border:2px solid var(--accent);color:var(--accent);letter-spacing:.12em;text-transform:uppercase;border-radius:4px;padding:6px 12px;font-size:14px;font-weight:800;display:inline-block;transform:rotate(-6deg)}.overlay-scrim{z-index:60;padding:16px 16px calc(16px + var(--safe-bottom));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0000008c;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}@media (width>=480px){.overlay-scrim{align-items:center}}.overlay-card{background:linear-gradient(#1a1a1a 0%,#121212 100%);border:1px solid #ffffff1a;border-radius:28px;width:100%;max-width:26rem;padding:28px 24px 24px;position:relative;overflow:hidden;box-shadow:0 24px 64px #0000008c}.overlay-close{width:36px;height:36px;color:var(--text-secondary);background:#ffffff0f;border-radius:999px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;right:12px}.overlay-close:hover{color:var(--text-primary);background:#ffffff1a}.guide-step{background:#ffffff0a;border:1px solid #ffffff0d;border-radius:16px;gap:12px;padding:12px;display:flex}.guide-step__num{background:var(--accent);color:#0a0a0a;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:800;display:flex}.hydrate-wait{min-height:100dvh;color:var(--text-secondary);justify-content:center;align-items:center;font-weight:600;display:flex}.cheer-burst{z-index:12;pointer-events:none;justify-content:center;padding:0 12px;display:flex;position:absolute;top:42%;left:0;right:0}.cheer-burst__flash{background:radial-gradient(ellipse at center, var(--cheer-glow) 0%, transparent 68%);opacity:0;animation:.7s ease-out forwards cheer-flash;position:absolute;inset:-40% -10%}.cheer-burst__panel{width:min(100%,420px);box-shadow:0 0 0 1px #0006, 0 12px 40px #0000008c, 0 0 36px var(--cheer-glow);text-align:center;background:linear-gradient(#000000b8,#0000008c);border:2px solid #c8f54a8c;border-radius:20px;padding:18px 16px 20px;animation:.55s cubic-bezier(.2,1.4,.35,1) both cheer-pop;position:relative}.cheer-burst__bar{background:var(--cheer-bar);width:42%;height:4px;box-shadow:0 0 16px var(--cheer-glow);border-radius:999px;margin:0 auto 14px}.cheer-burst__bar--bottom{opacity:.7;width:28%;margin:14px auto 0}.cheer-burst__text{color:var(--cheer-fg);letter-spacing:-.03em;text-shadow:0 2px 0 #0000008c, 0 8px 28px #000000bf, 0 0 24px var(--cheer-glow);word-break:keep-all;font-size:clamp(36px,11vw,56px);font-weight:900;line-height:1.05;animation:.45s ease-out both cheer-shake}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fab-pulse{0%{box-shadow:0 0 #c8f54a66}70%{box-shadow:0 0 0 16px #c8f54a00}to{box-shadow:0 0 #c8f54a00}}@keyframes cheer-pop{0%{opacity:0;transform:translateY(18px)scale(.72)}55%{opacity:1;transform:translateY(-4px)scale(1.06)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes cheer-flash{0%{opacity:.85}to{opacity:0}}@keyframes cheer-shake{0%{transform:scale(.9)rotate(-2deg)}40%{transform:scale(1.04)rotate(1.5deg)}to{transform:scale(1)rotate(0)}}@media (prefers-reduced-motion:reduce){.page-enter,.fab-start{animation:none}}
