:root{--bg:#f7f4ee;--surface:#fff;--border:#e2d9c4;--text:#211a10;--text-muted:#71634a;--accent:#78350f;--accent-contrast:#fff;--error-bg:#fdece8;--error-border:#e5534b;--error-text:#8a2416;--font-display:"Fraunces", Georgia, serif;--font-mono:"JetBrains Mono", ui-monospace, Consolas, monospace;--font-sans:"Inter", system-ui, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#14100a;--surface:#1e170e;--border:#3d2f1a;--text:#f5ecd9;--text-muted:#a99b7c;--accent:#fcd34d;--accent-contrast:#2b1c04;--error-bg:#3a1f1a;--error-border:#e5534b;--error-text:#ffb4ac;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);margin:0}#root{min-height:100svh}.page{justify-content:center;min-height:100%;padding:3rem 1.25rem;display:flex}.shell{flex-direction:column;gap:.75rem;width:100%;max-width:480px;display:flex}.site-header{align-items:center;gap:10px;padding:0 .25rem;display:flex}.site-header__brand{font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);white-space:nowrap;font-size:.8rem;font-weight:700;text-decoration:none}.site-header__brand:hover{text-decoration:underline}.site-header__divider{color:var(--text-muted);font-weight:400}.site-header__title{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:500}.toolbar-spacer{flex:1}.toggle-btn{border:1px solid var(--border);color:var(--text);cursor:pointer;background:0 0;border-radius:8px;padding:.35rem .55rem;line-height:1}.toggle-btn:hover{border-color:var(--accent)}.card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;width:100%;padding:2.5rem 2.25rem;box-shadow:0 30px 60px -35px #00000059}.eyebrow{font-family:var(--font-mono);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin:0 0 .75rem;font-size:.75rem}h1{font-family:var(--font-display);color:var(--text);margin:0 0 .75rem;font-size:clamp(1.4rem,4vw,1.9rem);font-weight:600;line-height:1.25}.subhead{color:var(--text-muted);margin:0 0 1.5rem;font-size:.88rem;line-height:1.5}.compass-frame{background:var(--bg);border:1px solid var(--border);border-radius:50%;width:240px;height:240px;margin:0 auto;position:relative;box-shadow:inset 0 2px 10px #00000026}.rose{transition:transform .15s linear;position:absolute;inset:0}.rose__svg{width:100%;height:100%}.rose__ring{fill:none;stroke:var(--border);stroke-width:2px}.rose__tick{stroke:var(--text-muted);stroke-width:1.5px}.rose__label{font-family:var(--font-mono);fill:var(--text-muted);font-size:13px}.rose__label--major{fill:var(--text);font-size:17px;font-weight:700}.needle{pointer-events:none;position:absolute;inset:0}.needle__north{border-bottom:34px solid #dc2626;border-left:8px solid #0000;border-right:8px solid #0000;width:0;height:0;position:absolute;top:18%;left:50%;transform:translate(-50%)}.needle__south{border-left:8px solid #0000;border-right:8px solid #0000;border-top:34px solid var(--text-muted);width:0;height:0;position:absolute;bottom:18%;left:50%;transform:translate(-50%)}.needle__pivot{background:var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.heading-readout{font-family:var(--font-mono);color:var(--text);margin:1.5rem 0 0;font-size:2rem;font-weight:700}.heading-cardinal{color:var(--accent)}.status-block{flex-direction:column;align-items:center;gap:.9rem;padding:1.5rem 0;display:flex}.status-note{color:var(--text-muted);max-width:32rem;margin:0;font-size:.85rem;line-height:1.5}.status-note--error{color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);border-radius:10px;padding:.7rem .9rem}.btn{background:var(--bg);color:var(--text);border:1px solid var(--border);font-family:var(--font-sans);cursor:pointer;border-radius:10px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600}.btn--accent{background:var(--accent);color:var(--accent-contrast);border-color:var(--accent)}@media (width<=480px){.card{padding:2rem 1.4rem}.compass-frame{width:200px;height:200px}}
