:root{--bg-chalky-slate:#212529;--bg-drawer-backdrop:#181b1eeb;--ink-eggshell:#f3efe6;--ink-muted:#f3efe657;--ink-subtle:#f3efe69e;--rule-hairline:#f3efe61f;--font-editorial:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", "SF Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background-color:var(--bg-chalky-slate);width:100%;height:100%;color:var(--ink-eggshell);font-family:var(--font-editorial);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none;overflow:hidden}#app{background-color:var(--bg-chalky-slate);width:100vw;height:100vh;position:relative;overflow:hidden}#specimen-canvas{touch-action:none;cursor:grab;width:100%;height:100%;display:block}#specimen-canvas:active{cursor:grabbing}.day-header{z-index:1010;appearance:none;color:var(--ink-eggshell);font-family:var(--font-editorial);letter-spacing:.03em;cursor:pointer;opacity:.88;white-space:nowrap;background:0 0;border:none;padding:4px 0;font-size:.9375rem;font-weight:400;line-height:1.2;transition:opacity .16s;position:fixed;top:28px;left:32px}.day-header:hover,.day-header:focus-visible,.day-header[aria-expanded=true]{opacity:1;outline:none}.day-drawer-backdrop{z-index:1000;background-color:var(--bg-drawer-backdrop);-webkit-backdrop-filter:blur(10px);opacity:0;pointer-events:none;flex-direction:column;justify-content:flex-start;padding:80px 32px 40px;transition:opacity .18s;display:flex;position:fixed;inset:0;overflow-y:auto}.day-drawer-backdrop.is-open{opacity:1;pointer-events:auto}.day-drawer-grid{border-top:1px solid var(--rule-hairline);grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:8px 32px;width:100%;max-width:1080px;padding-top:24px;display:grid}.day-drawer-item{letter-spacing:.02em;color:var(--ink-muted);white-space:nowrap;align-items:baseline;gap:10px;padding:6px 0;font-size:.875rem;font-weight:400;text-decoration:none;display:flex}.day-drawer-item.is-complete{color:var(--ink-subtle);cursor:pointer;transition:color .14s}.day-drawer-item.is-complete:hover,.day-drawer-item.is-complete:focus-visible{color:var(--ink-eggshell);outline:none}.day-drawer-item.is-current{color:var(--ink-eggshell);text-underline-offset:5px;text-decoration:underline #f3efe68c}.day-drawer-num{font-family:var(--font-mono);opacity:.72;font-size:.75rem}.day-fallback-notice{z-index:20;color:var(--ink-subtle);letter-spacing:.02em;font-size:.8125rem;position:fixed;bottom:28px;left:32px}
