:root{--bg:#12151c;--bg-raised:#1a1f2a;--bg-input:#232a37;--border:#2c3444;--text:#e8ecf4;--text-dim:#97a1b4;--accent:#7dd3a0;--accent-dim:#3f7a5a;--warn:#e3b45f;--danger:#d9756a;--radius:14px;--font-num:ui-monospace, SFMono-Regular, "SF Mono", Menlo, monospace;--safe-bottom:env(safe-area-inset-bottom,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}button,a,[role=button]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}html,body{overscroll-behavior:none;-webkit-font-smoothing:antialiased;background:var(--bg);min-height:100%;color:var(--text);overscroll-behavior-y:none;margin:0;padding:0;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif;font-size:16px;line-height:1.6}h1,h2,h3{margin:0;font-weight:600;line-height:1.3}h1{font-size:1.25rem}h2{font-size:1.05rem}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:none}input,select{font:inherit;color:var(--text);background:var(--bg-input);border:1px solid var(--border);border-radius:10px;width:100%;padding:.6rem .75rem;font-size:max(16px,1rem)}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;max-width:32rem;min-height:100dvh;margin:0 auto;display:flex}.page{padding:.85rem .8rem calc(1rem + 4.5rem + var(--safe-bottom));flex:1}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius);padding:.9rem}.btn{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;justify-content:center;align-items:center;gap:.4rem;min-height:2.9rem;padding:0 1rem;font-weight:600;transition:transform 80ms;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#0e1a13}.btn-ghost{background:0 0}.muted{color:var(--text-dim);font-size:.85rem}.row{align-items:center;gap:.6rem;display:flex}.stack{flex-direction:column;gap:.75rem;display:flex}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
