@font-face{font-family:Fraunces;src:url(/fonts/fraunces.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--bg: #0a0a0a;--fg: #e8e6e1;--muted: #6c6a66;--accent: #d4a373;--pill: #1a1a1a;--pill-active: #2a2522;--border: #1f1f1f}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font:16px/1.4 system-ui,-apple-system,sans-serif;display:flex;align-items:flex-start;justify-content:center;user-select:none;-webkit-user-select:none;overscroll-behavior:none;min-height:100vh}#app{width:100%;max-width:480px;padding:env(safe-area-inset-top) 1.5rem env(safe-area-inset-bottom);display:flex;flex-direction:column;gap:1.5rem;transition:opacity .8s ease}#app[data-state=bedside]>main,#app[data-state=bedside]>#status,#app[data-state=bedside]>.hint,#app[data-state=bedside]>#timer-progress{display:none!important}#app[data-state=bedside] .hero .wordmark,#app[data-state=bedside] .hero .tagline,#app[data-state=bedside]>.play-btn{display:none!important}#app[data-state=bedside]{background:#000;height:100vh;justify-content:center}#app[data-state=bedside] #bedside-clock{display:block!important;font-size:4rem;color:#e8e6e126;text-align:center;font-variant-numeric:tabular-nums;letter-spacing:.05em;margin:0 auto}#app[data-state=bedside] #bedside-pause{display:block!important;position:fixed;bottom:calc(env(safe-area-inset-bottom) + 1rem);right:1rem;color:#e8e6e10d;font-size:1.4rem}#app[data-state=bedside] #bedside-flash:not([hidden]){display:block!important;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--accent);font-size:3rem;opacity:0;transition:opacity .2s ease;pointer-events:none}#app[data-state=bedside] #bedside-flash.show{opacity:.35}.muted-hint{color:var(--muted);font-size:.8rem;text-align:center;margin:0}#status{display:flex;flex-direction:column;align-items:center;gap:.25rem;color:var(--muted);font-size:.9rem}#categories{display:flex;flex-direction:column;gap:.8rem}.cat-group{display:flex;flex-direction:column;gap:.3rem}.cat-group-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding-left:.4rem}.cat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.cat-group[data-group=architectural] .cat-row,.cat-group[data-group=abstract] .cat-row{grid-template-columns:repeat(2,1fr)}.cat{display:flex;flex-direction:column;align-items:center;gap:.2rem;background:var(--pill);color:var(--fg);border:1px solid var(--border);border-radius:12px;padding:.6rem .3rem;font-size:.75rem;cursor:pointer}.cat-icon{font-size:1.4rem;line-height:1}.cat-name{font-size:.7rem;opacity:.85}.cat[aria-checked=true]{background:var(--pill-active);border-color:var(--accent);color:var(--accent)}.cat[disabled]{opacity:.35;cursor:not-allowed}.slider{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.6rem;color:var(--muted);font-size:.85rem}.slider input[type=range]{width:100%;appearance:none;height:4px;background:var(--border);border-radius:2px;outline:none}.slider input[type=range]::-webkit-slider-thumb{appearance:none;width:22px;height:22px;border-radius:50%;background:var(--fg);cursor:pointer}.controls-row{display:flex;gap:.5rem}.controls-row button{flex:1;background:var(--pill);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:.8rem;font-size:1rem;cursor:pointer}#calibrate{background:transparent;border:1px dashed var(--border);color:var(--muted);border-radius:8px;padding:.6rem;font-size:.9rem;cursor:pointer}.quiet{color:var(--muted);background:transparent;border:none;cursor:pointer}.privacy-note{color:var(--muted);font-size:.75rem;text-align:center;margin:0}#timer-progress{width:100%;height:2px}.overlay{position:fixed;inset:0;background:#000000f5;display:flex;align-items:center;justify-content:center;z-index:10}[hidden]{display:none!important}.overlay-inner{display:flex;flex-direction:column;align-items:center;gap:1rem;max-width:360px;padding:1.5rem;text-align:center}#timer-options{display:grid;grid-template-columns:repeat(2,1fr);gap:.5rem;width:100%}#timer-options button{background:var(--pill);color:var(--fg);border:1px solid var(--border);border-radius:8px;padding:.8rem;cursor:pointer}.hint{position:fixed;left:50%;transform:translate(-50%);bottom:1rem;background:var(--pill-active);border:1px solid var(--border);color:var(--fg);padding:.6rem 1rem;border-radius:999px;display:flex;gap:.6rem;align-items:center;font-size:.85rem;z-index:5}.hint button{background:transparent;border:none;color:var(--muted);cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){#app{transition:none}}.hero{display:flex;flex-direction:column;align-items:center;gap:.5rem;margin:0 0 .5rem}.wordmark{font-family:Fraunces,Georgia,serif;font-weight:400;font-size:1.6rem;letter-spacing:-.02em;margin:0;color:var(--fg)}.tagline{font-style:italic;color:var(--muted);font-size:.85rem;margin:0}.moon-wrap{width:280px;height:280px;display:flex;align-items:center;justify-content:center}@media (min-width: 481px){.moon-wrap{width:360px;height:360px}}@media (min-width: 801px){.moon-wrap{width:400px;height:400px}}#moon{width:100%;height:100%;display:block;-webkit-tap-highlight-color:transparent;pointer-events:none}.faces .face{opacity:0;transition:opacity .32s ease}#moon[data-face=calm] .face[data-face=calm],#moon[data-face=sleepy] .face[data-face=sleepy],#moon[data-face=widekey] .face[data-face=widekey],#moon[data-face=bubbly] .face[data-face=bubbly],#moon[data-face=cool] .face[data-face=cool]{opacity:1}@media (prefers-reduced-motion: reduce){.faces .face{transition:none}}.play-btn{align-self:center;min-width:180px;padding:.95rem 1.5rem;background:var(--pill-active);color:var(--accent);border:1px solid var(--accent);border-radius:999px;font-size:1.05rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:transform 80ms ease,background .2s ease}.play-btn:hover{background:color-mix(in oklab,var(--pill-active) 85%,var(--accent))}.play-btn:active{transform:scale(.98)}:root{--halo-color: #d4a373}body:before{content:"";position:fixed;inset:0;background:radial-gradient(ellipse 95% 70% at 50% 30%,color-mix(in oklab,var(--halo-color) 75%,transparent) 0%,transparent 80%),radial-gradient(ellipse at center,transparent 55%,#0a0810 100%);pointer-events:none;z-index:0;transition:background .6s ease;animation:halo-breathe 9s ease-in-out infinite}@keyframes halo-breathe{0%,to{opacity:.92}50%{opacity:1}}@media (prefers-reduced-motion: reduce){body:before{animation:none;opacity:.95}}#app{position:relative;z-index:1}
