:root{--ink: rgba(255, 255, 255, .9);--ink-dim: rgba(255, 255, 255, .44);--ink-faint: rgba(255, 255, 255, .26);--hot: #ffb46b;--edge: 2.6rem;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, "Times New Roman", serif;--mono: ui-monospace, "SF Mono", "Cascadia Mono", Menlo, Consolas, monospace}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#000;color:var(--ink);font-family:var(--mono);-webkit-font-smoothing:antialiased;overscroll-behavior:none}#view{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none}#hud{position:fixed;inset:0;pointer-events:none;padding:max(var(--edge),env(safe-area-inset-top)) max(var(--edge),env(safe-area-inset-right)) max(var(--edge),env(safe-area-inset-bottom)) max(var(--edge),env(safe-area-inset-left));z-index:2}.opening:before,.finale:before{content:"";position:absolute;left:50%;top:50%;width:190%;height:320%;transform:translate(-50%,-50%);background:radial-gradient(closest-side,rgba(0,0,0,.72),rgba(0,0,0,.42) 45%,transparent 78%);z-index:-1;pointer-events:none}.opening{position:absolute;left:50%;top:40%;transform:translate(-50%,-50%);text-align:center;transition:opacity .7s ease}.opening__title{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(2.6rem,8vw,5.4rem);letter-spacing:.42em;text-indent:.42em;line-height:1;color:#fffffff0;text-shadow:0 0 60px rgba(0,0,0,.85)}.opening__sub{margin:1.2rem 0 0;font-size:.72rem;letter-spacing:.55em;text-indent:.55em;text-transform:uppercase;color:var(--ink-dim)}.opening__hint{margin:3.4rem 0 0;font-size:.66rem;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;color:var(--ink-faint);animation:breathe 3.6s ease-in-out infinite}@keyframes breathe{0%,to{opacity:.35}50%{opacity:.85}}.chapter{position:absolute;left:max(var(--edge),env(safe-area-inset-left));top:max(var(--edge),env(safe-area-inset-top));max-width:min(30ch,42vw);transition:opacity .5s ease}.chapter--enter{animation:chapter-in 1.1s cubic-bezier(.16,1,.3,1)}@keyframes chapter-in{0%{opacity:0;transform:translateY(.7rem)}to{opacity:1;transform:none}}.chapter__numeral{display:block;font-size:.62rem;letter-spacing:.5em;color:var(--hot);opacity:.85}.chapter__title{margin:.7rem 0 0;font-family:var(--serif);font-weight:300;font-size:clamp(1.15rem,2.1vw,1.7rem);letter-spacing:.16em;line-height:1.25;text-transform:uppercase}.chapter__line{margin:.85rem 0 0;font-size:.7rem;line-height:1.75;letter-spacing:.02em;color:var(--ink-dim)}.instruments{position:absolute;right:max(var(--edge),env(safe-area-inset-right));top:max(var(--edge),env(safe-area-inset-top));text-align:right;font-variant-numeric:tabular-nums}.readout{display:flex;align-items:baseline;justify-content:flex-end;gap:1.1rem;margin-bottom:.3rem}.readout__label{font-size:.58rem;letter-spacing:.34em;text-transform:uppercase;color:var(--ink-faint)}.readout__value{font-size:1.05rem;letter-spacing:.05em;min-width:6.2ch;color:var(--ink)}.readout__value--hot{color:var(--hot)}.dilation{margin-top:.45rem;font-size:.58rem;letter-spacing:.24em;text-transform:uppercase;color:#96beffb8;transition:opacity .4s ease;opacity:0;min-height:.9rem}.rail{position:absolute;left:max(var(--edge),env(safe-area-inset-left));right:max(var(--edge),env(safe-area-inset-right));bottom:calc(max(var(--edge),env(safe-area-inset-bottom)) - .6rem);height:1px;background:#ffffff1a}.rail__fill{position:absolute;inset:0;background:linear-gradient(90deg,#ffb46b40,#ffb46bd9);transform-origin:left center;transform:scaleX(0)}.rail__tick{position:absolute;top:-3px;width:1px;height:7px;background:#ffffff2e}.controls{position:absolute;left:max(var(--edge),env(safe-area-inset-left));bottom:calc(max(var(--edge),env(safe-area-inset-bottom)) + .7rem);display:flex;gap:1.8rem;transition:opacity .7s ease}.controls__item{font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-faint)}.sound{position:absolute;right:max(var(--edge),env(safe-area-inset-right));bottom:calc(max(var(--edge),env(safe-area-inset-bottom)) + .5rem);pointer-events:auto;appearance:none;background:transparent;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.45rem 1.1rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;transition:color .25s ease,border-color .25s ease}.sound:hover{color:var(--ink);border-color:#ffffff61}.sound--armed{color:var(--hot);border-color:#ffb46b66}.finale{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;opacity:0;transition:opacity .9s ease;max-width:min(46ch,84vw)}.finale__name{margin:0;font-family:var(--serif);font-weight:300;font-size:clamp(1.7rem,5vw,3.4rem);letter-spacing:.2em;text-indent:.2em;text-transform:uppercase;line-height:1.15;text-shadow:0 0 70px rgba(0,0,0,.9)}.finale__line{margin:1.4rem 0 0;font-size:.74rem;letter-spacing:.2em;color:var(--ink-dim)}.finale__meta{margin:.9rem 0 0;font-size:.56rem;letter-spacing:.3em;text-transform:uppercase;color:var(--ink-faint)}.finale__share{margin-top:2.2rem;pointer-events:auto;appearance:none;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:.6rem 1.5rem;font-family:var(--mono);font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;transition:color .25s ease,border-color .25s ease}.finale__share:hover{color:var(--hot);border-color:#ffb46b73}.warning{position:absolute;left:50%;top:max(var(--edge),env(safe-area-inset-top));transform:translate(-50%);pointer-events:auto;display:flex;align-items:center;gap:.6rem;max-width:min(62ch,88vw);padding:.7rem 2.4rem .7rem 1.1rem;background:#180e04eb;border:1px solid rgba(255,180,107,.35);border-radius:4px;font-size:.66rem;line-height:1.6;letter-spacing:.03em;color:#ffe2c5eb}.warning strong{color:var(--hot);font-weight:600}.warning__close{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);appearance:none;background:none;border:0;color:#ffe2c599;font-size:1rem;line-height:1;cursor:pointer;padding:.3rem .5rem}@media (max-width: 720px){:root{--edge: 1.4rem}.chapter{max-width:62vw}.chapter__line{display:none}.controls{gap:1rem}.controls__item:nth-child(3){display:none}}@media (prefers-reduced-motion: reduce){.opening__hint{animation:none;opacity:.6}.chapter--enter{animation:none}}
