:root{--bg: #f5efe5;--bg-soft: #e8dcc8;--panel: #fffaf1;--text: #1f2228;--muted: #495063;--accent: #007a6b;--accent-2: #b94a00;--danger: #9f1d35;--ok: #14683e;--warn: #9a5f00;--border: #b6a486;--focus: #0059d6;--shadow: 0 14px 34px rgba(36, 26, 13, .16);font-size:16px}:root[data-theme=dark]{--bg: #1e232b;--bg-soft: #2b3340;--panel: #24303f;--text: #f2f4f8;--muted: #d0d7e3;--accent: #31d7bb;--accent-2: #ffb469;--danger: #ff718f;--ok: #7ef7b1;--warn: #ffd07c;--border: #7990ac;--focus: #7bc1ff;--shadow: 0 18px 42px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:radial-gradient(circle at 15% 10%,rgba(0,122,107,.2),transparent 45%),radial-gradient(circle at 90% 0%,rgba(185,74,0,.22),transparent 35%),var(--bg);color:var(--text);font-family:IBM Plex Sans,Segoe UI,sans-serif}a{color:inherit}.skip-link{position:absolute;left:-9999px;top:0;background:var(--panel);padding:.75rem;border:2px solid var(--focus)}.skip-link:focus{left:.5rem;top:.5rem;z-index:99}#app{max-width:1140px;margin:0 auto;padding:.8rem}.hero{background:linear-gradient(160deg,var(--panel),var(--bg-soft));border:1px solid var(--border);border-radius:1rem;padding:1rem;box-shadow:var(--shadow)}.category-chip,.primitive-chip,.status,.github,.links a{border-radius:999px;border:1px solid var(--border);padding:.35rem .65rem;display:inline-flex;align-items:center;min-height:44px;text-decoration:none}.category-chip{background:var(--accent);color:#fff;border-color:transparent;font-weight:700}h1,h2{font-family:Space Grotesk,Trebuchet MS,sans-serif;line-height:1.2}h1{font-size:clamp(1.8rem,6vw,2.8rem);margin:.8rem 0 .4rem}h2{font-size:clamp(1.3rem,4.2vw,1.8rem);margin:.3rem 0}.subtitle,.panel-text,.panel-note,.chart-summary,li,p,label,input,button{font-size:1rem}.subtitle,.panel-note,.chart-summary{color:var(--muted)}.chip-row,.status-row,.links{display:flex;flex-wrap:wrap;gap:.5rem}.primitive-chip{background:color-mix(in srgb,var(--accent) 18%,transparent)}.theme-toggle{margin-top:.9rem}button,input{width:100%;min-height:44px;border-radius:.7rem;border:1px solid var(--border);padding:.65rem .75rem;background:var(--panel);color:var(--text)}button{cursor:pointer;font-weight:700;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 18%,var(--panel)),var(--panel))}button:focus-visible,input:focus-visible,a:focus-visible{outline:3px solid var(--focus);outline-offset:2px}main{display:grid;gap:.9rem;margin-top:.9rem}.panel,.why,.footer{background:linear-gradient(165deg,var(--panel),color-mix(in srgb,var(--panel) 80%,var(--bg-soft)));border:1px solid var(--border);border-radius:1rem;padding:.9rem;box-shadow:var(--shadow)}.controls{display:grid;gap:.45rem}canvas{width:100%;max-width:100%;border:1px solid var(--border);border-radius:.8rem;margin-top:.6rem;background:#f3f6fb}.panel-head{display:grid;gap:.4rem}.status{font-weight:700;font-size:.9rem}.bad{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 65%,var(--border));background:color-mix(in srgb,var(--danger) 16%,var(--panel))}.good{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 65%,var(--border));background:color-mix(in srgb,var(--ok) 18%,var(--panel))}.warn{color:var(--warn);border-color:color-mix(in srgb,var(--warn) 65%,var(--border));background:color-mix(in srgb,var(--warn) 16%,var(--panel))}.error{min-height:1.3rem;color:var(--danger);font-weight:600}.cache-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin-top:.75rem}.cache-grid div{border:1px solid var(--border);border-radius:.7rem;min-height:44px;padding:.55rem;display:flex;justify-content:space-between;align-items:center}.rules,.hall{padding-left:1.1rem}.links a{background:color-mix(in srgb,var(--accent-2) 20%,var(--panel));min-height:44px}.footer{margin:.9rem 0 1.2rem}.github{font-weight:700;background:color-mix(in srgb,var(--accent) 25%,var(--panel));margin-bottom:.4rem}@media (min-width: 768px){#app{padding:1.2rem}.two-col{grid-template-columns:1fr 1fr;align-items:center;column-gap:.9rem}.two-col button{grid-column:span 2}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
