:root{--bg:#f6f7f9;--surface:#ffffff;--surface-dim:#ebeef2;--ink:#1b2128;--muted:#535d68;--line:#d7dce3;--line-strong:#7c8794;--accent:#1b2128;--accent-ink:#ffffff;--accent-soft:#e4e8ee;--surface-raised:#ffffff;--fire:#d6382a;--water:#3a70d0;--hammer:#a96219;--steel:#15807b;--radius-bubble:16px;--radius-card:12px;--shadow-card:0 1px 2px rgba(23,28,36,0.08),0 4px 14px rgba(23,28,36,0.08);--shadow-panel:-8px 0 32px rgba(23,28,36,0.16);--shadow-pop:0 12px 32px rgba(23,28,36,0.22),0 2px 8px rgba(23,28,36,0.14);--glass-strong:rgba(246,247,249,0.85);--glass-soft:rgba(255,255,255,0.55);--glass-input:rgba(246,247,249,0.9);--backdrop-c:rgba(23,28,36,0.32);--pulse-c:rgba(27,33,40,0.16);color-scheme:light}:root[data-theme=dark]{--bg:#0f1216;--surface:#171b21;--surface-dim:#212730;--ink:#e8eaed;--muted:#9aa3af;--line:#3c4552;--line-strong:#7b8492;--accent:#e8eaed;--accent-ink:#14181d;--accent-soft:#232931;--surface-raised:#222a34;--shadow-card:0 1px 2px rgba(0,0,0,0.4),0 4px 16px rgba(0,0,0,0.35);--shadow-panel:-8px 0 32px rgba(0,0,0,0.5);--shadow-pop:0 12px 32px rgba(0,0,0,0.55),0 2px 8px rgba(0,0,0,0.4);--glass-strong:rgba(18,21,26,0.85);--glass-soft:rgba(23,27,33,0.55);--glass-input:rgba(18,21,26,0.9);--backdrop-c:rgba(0,0,0,0.5);--pulse-c:rgba(232,234,237,0.18);color-scheme:dark}*,:after,:before{box-sizing:border-box;margin:0;padding:0}body,html{height:100%}body{font-family:var(--font-body,"IBM Plex Sans JP",sans-serif);font-size:15px;line-height:1.7;color:var(--ink);background:radial-gradient(1200px 600px at 80% -10%,rgba(27,33,40,.03),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(27,33,40,.02),transparent 60%),var(--bg);overflow:hidden}:root[data-theme=dark] body{background:radial-gradient(1200px 600px at 80% -10%,rgba(232,234,237,.035),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(232,234,237,.02),transparent 60%),var(--bg)}button{font-size:inherit;color:inherit;background:none;border:none;cursor:pointer}button,input,select,textarea{font-family:inherit}svg{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}