:root{--ink:#ece8e1;--ink-2:#ece8e1a8;--ink-3:#ece8e16b;--line:#ece8e124;--accent:#e8b66e;--glass:#0e0e109e}body{color:var(--ink);background:#0b0b0d;overflow:hidden}button{cursor:pointer;background:0 0;border:none;padding:0}button:focus-visible,a:focus-visible{outline:1px solid var(--accent);outline-offset:3px}.masthead{z-index:6;letter-spacing:.16em;text-transform:uppercase;align-items:baseline;gap:16px;font-size:12px;display:flex;position:fixed;top:26px;left:32px}.brand{color:var(--ink);font-weight:600;text-decoration:none}.brand:before{content:"";border-left:1.4px solid var(--ink-3);border-bottom:1.4px solid var(--ink-3);width:6px;height:6px;margin:0 12px 1px 2px;transition:border-color .3s;display:inline-block;transform:rotate(45deg)}.brand:hover:before{border-color:var(--ink)}.masthead-title{color:var(--ink-3)}.topbar{z-index:6;gap:8px;display:flex;position:fixed;top:20px;right:24px}.chip{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(12px);height:32px;color:var(--ink-2);letter-spacing:.04em;border-radius:999px;padding:0 14px;font-size:12px;transition:color .3s,border-color .3s}.chip:hover,.chip[aria-pressed=true],.chip[aria-expanded=true]{color:var(--ink);border-color:#ece8e152}.chapter{z-index:5;width:min(400px,100vw - 64px);transition:opacity .26s,transform .26s;position:fixed;bottom:32px;left:32px}.chapter:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(at 30% 70%,#09090bb8,#09090b61 45%,#0000 72%);position:absolute;inset:-120px -160px -60px -80px}.chapter.is-changing{opacity:0;transform:translateY(6px)}.chapter-kicker{font-family:var(--font-mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);margin:0 0 14px;font-size:11px}.chapter-title{font-family:var(--font-serif);letter-spacing:-.01em;margin:0;font-size:clamp(36px,4.2vw,54px);font-weight:400;line-height:1}.chapter[data-chapter=prologue] .chapter-title{font-size:clamp(44px,5.6vw,72px)}.chapter-body{max-width:380px;color:var(--ink-2);text-wrap:pretty;margin:18px 0 0;font-size:15px;line-height:1.62}.chapter-extra:empty{display:none}.chapter-extra{margin-top:18px}.text-button{color:var(--ink-2);border-bottom:1px solid var(--line);padding-bottom:2px;font-size:13px;transition:color .3s,border-color .3s}.text-button:hover{color:var(--ink);border-color:var(--ink-3)}.presets{gap:2px;margin-top:4px;display:grid}.preset{border-bottom:1px solid var(--line);text-align:left;color:var(--ink);justify-content:space-between;align-items:baseline;gap:12px;padding:9px 0;font-size:14px;transition:color .25s,padding .25s;display:flex}.preset small{font-family:var(--font-mono);color:var(--ink-3);white-space:nowrap;font-size:10.5px}.preset:hover,.preset[aria-pressed=true]{color:var(--accent);padding-left:6px}.toggles{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.toggle{border:1px solid var(--line);height:30px;color:var(--ink-2);border-radius:999px;padding:0 13px;font-size:12px;transition:all .25s}.toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.chapter-nav{align-items:center;gap:18px;margin-top:28px;display:flex}.nav-button{border:1px solid var(--line);min-width:40px;height:40px;color:var(--ink-2);border-radius:999px;place-items:center;font-size:14px;transition:color .3s,border-color .3s,background .3s;display:inline-grid}.nav-button:hover{color:var(--ink);border-color:#ece8e15c}.nav-next{background:var(--ink);border-color:var(--ink);color:#111;letter-spacing:.02em;padding:0 22px;font-weight:550}.nav-next:hover{color:#000;background:#fff}.dots{gap:7px;display:flex}.dot{background:#ece8e138;border-radius:50%;width:6px;height:6px;transition:background .3s,transform .3s}.dot[aria-current=true]{background:var(--accent);transform:scale(1.3)}.readout{z-index:5;border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);border-radius:14px;width:248px;padding:18px 20px 16px;position:fixed;top:84px;right:28px}.readout p{margin:0}.readout-title{font-family:var(--font-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--accent);font-size:10.5px}.readout-leg{font-family:var(--font-serif);font-size:20px;font-style:italic;margin-top:6px!important}.readout-temperature{font-family:var(--font-mono);letter-spacing:-.02em;align-items:baseline;gap:10px;font-size:30px;font-weight:400;display:flex;margin-top:14px!important}.readout-temperature small{color:var(--ink-3);letter-spacing:0;font-size:12px}.readout dl{grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;display:grid}.readout dt{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px}.readout dd{font-family:var(--font-mono);margin:3px 0 0;font-size:13px}.readout-phase{color:var(--ink-2);font-size:13px;margin-top:12px!important}.readout[data-kind=boil] .readout-phase{color:var(--accent)}.readout-progress{background:var(--line);height:1px;margin-top:14px;overflow:hidden}.readout-progress span{background:var(--accent);transform-origin:0;height:100%;display:block;transform:scaleX(0)}.tooltip{z-index:8;border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);pointer-events:none;white-space:nowrap;background:#0c0c0ed6;border-radius:10px;gap:3px;padding:10px 13px;display:grid;position:fixed;top:0;left:0}.tooltip strong{font-family:var(--font-serif);font-size:18px;font-style:italic;font-weight:400}.tooltip span{font-family:var(--font-mono);color:var(--ink-2);font-size:11.5px}.labels{z-index:3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.scene-label{will-change:transform, opacity;align-items:flex-start;gap:8px;display:flex;position:absolute;top:0;left:0}.scene-label-left{flex-direction:row-reverse;translate:-100%}.scene-label-dot{background:var(--ink);border-radius:50%;flex:none;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;box-shadow:0 0 10px #fff5e6cc}.scene-label-left .scene-label-dot{margin:-2.5px -2.5px 0 0}.scene-label-text{text-shadow:0 1px 12px #000000b3;margin-top:1px;display:grid;translate:0 -50%}.scene-label-left .scene-label-text{text-align:right}.scene-label em{font-family:var(--font-serif);font-size:19px}.scene-label small{font-family:var(--font-mono);color:var(--ink-2);font-size:10.5px}.scene-label small:empty{display:none}.about-panel{z-index:9;border:1px solid var(--line);-webkit-backdrop-filter:blur(16px);background:#0e0e10eb;border-radius:16px;width:min(420px,100vw - 48px);max-height:calc(100vh - 100px);padding:26px 26px 22px;position:fixed;top:64px;right:24px;overflow-y:auto}.about-panel h2{font-family:var(--font-serif);margin:0 0 12px;font-size:30px;font-weight:400}.about-panel p{color:var(--ink-2);margin:0;font-size:14px;line-height:1.6}.about-panel dl{gap:12px;margin:20px 0;display:grid}.about-panel dt{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10.5px}.about-panel dd{margin:3px 0 0;font-size:13.5px;line-height:1.5}.about-foot{color:var(--ink-3)!important;font-size:12px!important}.about-foot code{font-family:var(--font-mono);font-size:11px}.about-close{width:30px;height:30px;color:var(--ink-3);font-size:22px;position:absolute;top:14px;right:16px}.about-close:hover{color:var(--ink)}.loader{z-index:20;background:#0b0b0d;place-items:center;transition:opacity .9s;display:grid;position:fixed;inset:0}.loader.is-done{opacity:0;pointer-events:none}.loader p{font-family:var(--font-serif);color:var(--ink-2);margin:0;font-size:22px;font-style:italic;animation:2.4s ease-in-out infinite breathe}@keyframes breathe{50%{opacity:.45}}@media (width<=900px){.masthead{top:18px;left:18px}.masthead-title{display:none}.topbar{top:12px;right:12px}.chapter:before{display:none}.chapter{border:1px solid var(--line);background:var(--glass);-webkit-backdrop-filter:blur(14px);border-radius:16px;width:auto;padding:18px 18px 16px;bottom:18px;left:18px;right:18px}.chapter-title{font-size:34px!important}.chapter-body{margin-top:10px;font-size:14px}.chapter-nav{margin-top:16px}.readout{width:210px;padding:14px 16px;top:58px;right:12px}.readout-temperature{font-size:24px}}@media (width<=520px){.masthead{letter-spacing:.14em;font-size:10.5px}.chip{padding:0 11px;font-size:11.5px}.chip-more{display:none}}@media (prefers-reduced-motion:reduce){.chapter,.loader{transition:none}.loader p{animation:none}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dimension{z-index:6;font-family:var(--font-mono);letter-spacing:.14em;color:var(--ink-3);grid-template-rows:auto auto;grid-template-columns:auto 168px auto;align-items:center;gap:10px 12px;font-size:10.5px;display:grid;position:fixed;bottom:38px;right:32px}.dimension:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#0a0b0d9e,#0a0b0d66 62%,#0a0b0d00);position:absolute;inset:-22px -26px -18px -30px}.dimension-caption{text-align:right;letter-spacing:.22em;text-transform:uppercase;grid-area:1/1/auto/-1;font-size:10px}.dimension-end:first-child{grid-row:2}.dimension-track{grid-row:2;align-items:center;height:22px;display:flex;position:relative}.dimension-track:before{content:"";background:var(--line);height:1px;position:absolute;left:0;right:0}.dimension-fill{background:var(--accent);transform-origin:0;pointer-events:none;height:1px;position:absolute;left:0;right:0;transform:scaleX(0)}.dimension-ticks{pointer-events:none;opacity:.6;background:repeating-linear-gradient(90deg,#ece8e138 0 1px,#0000 1px 10%);position:absolute;inset:7px 0;-webkit-mask:linear-gradient(90deg,#000 0 calc(100% - 1px),#0000 0);mask:linear-gradient(90deg,#000 0 calc(100% - 1px),#0000 0)}.dimension-track input{z-index:1;appearance:none;cursor:ew-resize;background:0 0;width:100%;margin:0;position:relative}.dimension-track input::-webkit-slider-runnable-track{background:0 0;height:22px}.dimension-track input::-moz-range-track{background:0 0;height:22px}.dimension-track input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border-radius:50%;width:13px;height:13px;margin-top:4.5px;box-shadow:0 0 0 4px #ece8e114,0 0 18px #e8b66e73}.dimension-track input::-moz-range-thumb{background:var(--ink);border:none;border-radius:50%;width:13px;height:13px;box-shadow:0 0 0 4px #ece8e114,0 0 18px #e8b66e73}.dimension-end{grid-row:2;transition:color .3s}.dimension-end:last-of-type{color:color-mix(in srgb, var(--ink) calc(var(--dimension,0) * 100%), var(--ink-3))}.dimension-end:first-of-type{color:color-mix(in srgb, var(--ink-3) calc(var(--dimension,0) * 100%), var(--ink))}@media (width<=900px){.dimension{grid-template-columns:auto 110px auto;top:58px;bottom:auto;right:14px}.dimension-caption{display:none}.readout{top:104px}}
