:root{--font-display:"Baloo 2", "Trebuchet MS", sans-serif;--font-body:"Nunito", system-ui, sans-serif;--font-mono:"Nunito", monospace;--color-paper:#f7f0dd;--color-paper-2:#efe2bf;--surface:#fffaf0;--surface-2:#f4e9cc;--text:#2c2417;--text-muted:#766648;--border:#ddc99e;--accent:#3d7d3f;--accent-2:#c9862e;--green:#3d7d3f;--yellow:#d9a441;--red:#c1462f;--blue:#3b7fb0;--shadow:0 6px 18px #3c2d141f;--radius:14px;--dusk-bg:#142218;--dusk-surface:#1d2e21;--dusk-surface-2:#24392a;--dusk-border:#e6d6aa24;--dusk-text:#f3ecd6;--dusk-text-muted:#f3ecd68c;--dusk-accent:#e8b64a}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--color-paper);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0}body.dusk-bg{background:var(--dusk-bg);color:var(--dusk-text)}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:.01em}button,input,select,textarea{font-family:var(--font-body)}a{color:inherit}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:8px}.layout{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1}body.playing .navbar{display:none}@media (width<=640px){.main-content{padding-bottom:64px}}.route-fallback{min-height:60vh;color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.06em;justify-content:center;align-items:center;font-size:12px;display:flex}.navbar{background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.navbar-brand{font-family:var(--font-display);color:var(--text);font-size:15px;font-weight:700}.navbar-brand span{color:var(--accent)}.navbar-links{gap:4px;display:flex}.navbar-link{color:var(--text-muted);border-radius:10px;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:10px;font-weight:700;text-decoration:none;display:flex}.navbar-link.active{color:var(--accent);background:var(--surface-2)}.navbar-icon{font-size:16px}@media (width<=640px){.navbar{z-index:40;padding:6px 4px calc(6px + env(safe-area-inset-bottom));border-top:1px solid var(--border);border-bottom:none;position:fixed;inset:auto 0 0}.navbar-brand{display:none}.navbar-links{flex:1;justify-content:space-around}}
