@font-face{font-family:Spectral;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/spectral-latin-300-normal-Csl9mA3s.woff2) format("woff2"),url(/assets/spectral-latin-300-normal-BMSND_f1.woff) format("woff")}@font-face{font-family:Spectral;font-style:italic;font-display:swap;font-weight:300;src:url(/assets/spectral-latin-300-italic-naRpDz_b.woff2) format("woff2"),url(/assets/spectral-latin-300-italic-DyKGil11.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/figtree-latin-400-normal-g7Dtegnw.woff2) format("woff2"),url(/assets/figtree-latin-400-normal-BD4aNku5.woff) format("woff")}@font-face{font-family:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/figtree-latin-500-normal-BWnGEVsr.woff2) format("woff2"),url(/assets/figtree-latin-500-normal-B_yy1phn.woff) format("woff")}:root{--bg: #e3e6dc;--ink: #263028;--muted: #5f695e;--sap: #4e6a3b;--pollen: #8f6f2e;--slate: #3f6476;--panel: rgba(227, 230, 220, .86);--line: rgba(38, 48, 40, .2);--serif: "Spectral", Georgia, serif;--sans: "Figtree", system-ui, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #101612;--ink: #d4dccd;--muted: #8b968c;--sap: #a7bf88;--pollen: #d4ad6a;--slate: #8db3c4;--panel: rgba(16, 22, 18, .88);--line: rgba(212, 220, 205, .18);color-scheme:dark}}:root[data-theme=dark]{--bg: #101612;--ink: #d4dccd;--muted: #8b968c;--sap: #a7bf88;--pollen: #d4ad6a;--slate: #8db3c4;--panel: rgba(16, 22, 18, .88);--line: rgba(212, 220, 205, .18);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);font:400 1rem/1.45 var(--sans);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}canvas#field{position:fixed;inset:0;width:100%;height:100%;display:block}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--sap);outline-offset:3px}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}main{position:relative;min-height:100svh;display:grid;grid-template-rows:auto 1fr auto auto;gap:12px;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}button.quiet{background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 16px;font:400 .9rem var(--sans);color:var(--muted);cursor:pointer}button.quiet:hover{color:var(--ink);border-color:var(--ink)}header h1{font:300 2.6rem/1 var(--serif);letter-spacing:-.01em;margin:0;user-select:none}header p{font:italic 300 1.05rem/1.4 var(--serif);color:var(--muted);margin:.35rem 0 0}.center{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}#play{position:relative;width:112px;height:112px;border-radius:50%;border:0;background:var(--panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font:300 1.25rem var(--serif);cursor:pointer;transition:transform .4s ease}#play:active{transform:scale(.97)}#play .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}#play circle{fill:none;stroke-width:.8}#play .track{stroke:var(--ink);opacity:.55}#play .progress{stroke:var(--sap);stroke-width:2.5;stroke-dasharray:301.6;stroke-dashoffset:301.6;stroke-linecap:round}#play:not([aria-pressed=true]) .progress{visibility:hidden}#play[aria-pressed=true] .track{opacity:.18}#play[aria-pressed=true]{color:var(--sap)}#status{font:300 1.15rem var(--serif);margin:0;min-height:1.5em;font-variant-numeric:tabular-nums}#journal{font:italic 300 1.05rem/1.45 var(--serif);color:var(--muted);margin:0;max-width:32ch;min-height:1.45em}.hint{font-size:.85rem;color:var(--muted);margin:0;max-width:30ch}footer{justify-self:center;width:100%;max-width:400px;display:grid;gap:18px}.timer{display:flex;justify-content:space-between}.timer button{min-width:48px;height:48px;border-radius:24px;border:1px solid transparent;background:transparent;font:300 1.25rem var(--serif);font-variant-numeric:lining-nums;color:var(--muted);cursor:pointer}.timer button[aria-checked=true]{color:var(--ink);border-color:var(--ink)}.timer button:disabled{cursor:default}.timer:has(:disabled) button:not([aria-checked=true]){opacity:.4}.volume{display:flex;align-items:center;gap:10px;color:var(--muted)}.volume svg{width:22px;height:22px;flex:none;fill:currentColor}.volume svg .wave{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:32px;background:transparent;margin:0}input[type=range]::-webkit-slider-runnable-track{height:2px;background:var(--line)}input[type=range]::-moz-range-track{height:2px;background:var(--line)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--ink);margin-top:-8px;border:0}input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--ink);border:0}dialog.sheet{width:min(640px,100%);max-width:100%;height:100%;max-height:100%;margin:0 auto;border:0;padding:0;background:var(--bg);color:var(--ink)}dialog.sheet::backdrop{background:var(--bg)}.sheet-head{position:sticky;top:0;display:flex;justify-content:space-between;align-items:center;padding:max(20px,env(safe-area-inset-top)) 20px 12px;background:var(--bg);border-bottom:1px solid var(--line)}.sheet-head h2{font:300 2rem/1 var(--serif);margin:0}.journal-body{padding:8px 20px max(32px,env(safe-area-inset-bottom))}.journal-body .muted{color:var(--muted)}.journal-body h3{font:300 1.45rem var(--serif);margin:28px 0 2px}.journal-body .meta{color:var(--muted);font-size:.85rem;margin:0 0 10px;max-width:60ch}.days{list-style:none;margin:0;padding:0}.days li{display:grid;grid-template-columns:64px 1fr;gap:14px;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.days .when{margin:0;font-size:.8rem;color:var(--muted)}.days .line{margin:2px 0 0;font:300 1.05rem/1.45 var(--serif);max-width:52ch}.lineage{display:flex;gap:6px;list-style:none;margin:12px 0 0;padding:0 0 4px;overflow-x:auto;align-items:flex-end}.lineage li{display:grid;justify-items:center;gap:2px;font-size:.75rem;color:var(--muted);position:relative}.lineage li+li:before{content:"";position:absolute;left:-10px;top:28px;width:14px;border-top:1px solid var(--line)}#veil{position:fixed;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity .6s ease}#veil.on{opacity:.94;pointer-events:auto;transition-duration:4s}#veil.shield{pointer-events:auto;touch-action:none}dialog#debug{width:min(560px,calc(100% - 24px));max-height:calc(100svh - 24px);border:1px solid var(--line);border-radius:16px;background:var(--bg);color:var(--ink);padding:20px}dialog#debug::backdrop{background:#00000059}dialog h2{font:300 1.6rem var(--serif);margin:0}dialog h3{font:300 1.2rem var(--serif);margin:20px 0 8px}dialog .note{color:var(--muted);font-size:.85rem;margin:4px 0 0}dialog input[type=checkbox]{accent-color:var(--sap)}dialog fieldset{border:0;padding:0;margin:16px 0 0}dialog legend{font-size:.9rem;margin-bottom:6px}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{font-size:.85rem;background:transparent;border:1px solid var(--line);border-radius:999px;padding:7px 13px;cursor:pointer}.chips button[aria-pressed=true]{border-color:var(--ink);background:var(--ink);color:var(--bg)}.token{display:grid;gap:4px;font-size:.9rem;margin-bottom:4px}.token input{font:inherit;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink)}.sliders{display:grid;grid-template-columns:1fr 1fr;gap:4px 20px;margin-top:16px;font-size:.9rem}.toggles{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;font-size:.9rem}.diag{font-size:.8rem;display:grid;gap:10px}.diag details{border-top:1px solid var(--line);padding-top:8px}.diag pre{white-space:pre-wrap;font-size:.75rem;color:var(--muted);max-height:200px;overflow:auto}.diag .bad{color:#b0533a}.actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.actions button{background:transparent;border:1px solid var(--line);border-radius:999px;padding:8px 16px;cursor:pointer}@media(max-width:480px){.sliders{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){#play,#veil{transition:none}}
