@font-face{font-family:"Instrument Serif";font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/instrument-serif-400.5eb09b5ac0.woff2) format("woff2")}@font-face{font-family:"Serif Fallback Iowan";src:local("Iowan Old Style Roman"),local("IowanOldStyle-Roman");size-adjust:75.31%;ascent-override:131.46%;descent-override:41.16%;line-gap-override:0%}@font-face{font-family:"Serif Fallback Palatino";src:local("Palatino"),local("Palatino Linotype"),local("PalatinoLinotype-Roman");size-adjust:75.52%;ascent-override:131.09%;descent-override:41.05%;line-gap-override:0%}@font-face{font-family:"Serif Fallback Georgia";src:local("Georgia");size-adjust:76.31%;ascent-override:129.73%;descent-override:40.62%;line-gap-override:0%}@view-transition{navigation:auto}@media(prefers-reduced-motion:reduce){@view-transition{navigation:none}}:root{color-scheme:dark;--ground: #04070a;--ink: #9db0ba;--dim: #56666f;--chip: rgba(6, 14, 20, .55);--chip-edge: rgba(157, 176, 186, .22)}html,body{height:100%}body{margin:0;background:var(--ground);color:var(--ink);display:grid;place-items:center;padding-inline:16px;box-sizing:border-box;font:12px/1.4 ui-monospace,SF Mono,Menlo,monospace}.stage{position:relative;width:min(100%,calc(100dvh - 32px));aspect-ratio:1 / 1;max-width:100%}.stage canvas{display:block;width:100%;height:100%;cursor:crosshair;touch-action:manipulation}.hud{position:absolute;inset:auto 12px 12px;display:flex;gap:8px;justify-content:flex-end;align-items:center;pointer-events:none}.hud button{pointer-events:auto;font:inherit;color:var(--ink);background:var(--chip);border:1px solid var(--chip-edge);border-radius:3px;padding:6px 10px;letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.hud button[aria-pressed=true]{color:#e8d6b8;border-color:#e8d6b873}.hud button:focus-visible{outline:2px solid #e8d6b8;outline-offset:2px}.hint{margin-right:auto;color:var(--dim);opacity:.9;transition:opacity 1.2s ease}body.used .hint{opacity:0}body.harness{padding:0}body.harness .stage{width:100vw;height:100vh}body.harness .hud{display:none}:root{--page: #030507;--p-ink: #ece7df;--p-dim: #8d949a;--p-faint: #707880;--amber: #e6a673;--serif: "Instrument Serif", "Serif Fallback Iowan", "Serif Fallback Palatino", "Serif Fallback Georgia", serif;--sans: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Segoe UI", Roboto, Arial, sans-serif;--mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--vh: 100vh}@supports (height: 100svh){:root{--vh: 100svh}}html:has(>body.piece){height:100%;overflow:hidden;overscroll-behavior:none;background:var(--page)}body.piece{--bar: 60px;--hudh: 104px;--aw: calc(100vw - var(--safe-l) - var(--safe-r));--ah: calc(var(--vh) - var(--safe-t) - var(--safe-b));--stage: min(var(--aw), calc(var(--ah) - var(--bar) - var(--hudh)));position:fixed;inset:0;display:block;margin:0;padding:0;overflow:hidden;overscroll-behavior:none;background:var(--page);color:var(--p-dim);font:400 12px/1.4 var(--mono);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.piece-bar{position:fixed;z-index:10;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;box-sizing:border-box;padding:calc(var(--safe-t) + 16px) calc(var(--safe-r) + 18px) 0 calc(var(--safe-l) + 18px);pointer-events:none}.piece-bar>*{pointer-events:auto}.piece-back{display:inline-flex;align-items:center;gap:8px;min-height:44px;box-sizing:border-box;margin:-12px;padding:0 12px;color:var(--p-dim);text-decoration:none;transition:color .25s ease}.piece-back .arrow{font:400 13px/1 var(--mono);transition:transform .3s cubic-bezier(.2,.7,.2,1)}.piece-back .wm{color:var(--p-ink);font:400 20px/1 var(--serif);letter-spacing:-.01em}.piece-back .dot{color:var(--p-faint)}.piece-back .dot .amber{color:var(--amber)}.piece-back:hover,.piece-back:focus-visible{color:var(--p-ink)}.piece-back:hover .arrow{transform:translate(-3px)}.piece-back:focus-visible{outline:1.5px solid var(--p-ink);outline-offset:-4px;border-radius:6px}.piece-label{text-align:right}.piece-title{margin:0;color:var(--p-ink);font:400 22px/1 var(--serif);letter-spacing:-.005em;white-space:nowrap}.piece-meta{margin:7px 0 0;color:var(--p-faint);font:400 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}.piece-line{display:none}.piece-main{position:fixed;left:0;top:0;width:100%;height:var(--vh);box-sizing:border-box;padding:calc(var(--safe-t) + var(--bar)) var(--safe-r) calc(var(--safe-b) + var(--hudh)) var(--safe-l);display:grid;place-items:center}body.piece .stage{position:relative;width:var(--stage);height:var(--stage);max-width:none;aspect-ratio:1 / 1;background:radial-gradient(72% 68% at 52% 58%,#3a5670,#28405a 42%,#0c1720 70%,#030507);view-transition-name:work-sinking-light}body.piece .stage canvas{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:0}.poster-wrap{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none;transition:opacity 1.6s cubic-bezier(.4,0,.2,1)}.poster{display:block;width:100%;height:100%;object-fit:cover;transform-origin:50% 44%;transition:transform 1.6s cubic-bezier(.4,0,.2,1)}body.is-loading .poster{animation:drift 14s cubic-bezier(.2,.6,.2,1) forwards}@keyframes drift{to{transform:scale(1.035)}}body.is-live .poster-wrap{opacity:0}body.piece .hud{position:absolute;z-index:3;inset:auto 0;top:calc(100% + 14px);display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px 10px;padding:0 16px;opacity:0;visibility:hidden;transition:opacity .8s ease .2s,visibility 0s linear 1s}body.is-live .hud{opacity:1;visibility:visible;transition:opacity .8s ease .2s}body.piece .hud .hint{flex:1 0 100%;order:-1;margin:0 0 4px;color:var(--p-dim);text-align:center;letter-spacing:.02em}.t-mouse{display:none}@media(hover:hover)and (pointer:fine){.t-touch{display:none}.t-mouse{display:inline}}body.piece .hud button{display:inline-flex;align-items:center;gap:9px;min-height:34px;padding:0 15px 0 13px;border-radius:999px;color:var(--p-dim);background:#ece7df08;border:1px solid rgba(236,231,223,.14);font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:none;backdrop-filter:none;transition:color .25s ease,border-color .25s ease,background-color .25s ease}body.piece .hud button:before{content:"";flex:none;width:6px;height:6px;box-sizing:border-box;border-radius:50%;border:1px solid currentColor;transition:background-color .25s ease,box-shadow .25s ease}body.piece .hud button[aria-pressed=true]{color:#f0d9b5;border-color:#f0d9b573;background:#f0d9b50f}body.piece .hud button[aria-pressed=true]:before{background:currentColor;box-shadow:0 0 8px #f0d9b599}body.piece .hud button:disabled{opacity:.4;cursor:default}@media(hover:hover){body.piece .hud button:not(:disabled):hover{color:var(--p-ink);border-color:#ece7df52}}@media(pointer:coarse){body.piece .hud button{min-height:40px;padding:0 17px 0 15px}}.tap-ring{position:absolute;z-index:2;width:44px;height:44px;box-sizing:border-box;transform:translate(-50%,-50%);border:1px solid rgba(240,217,181,.7);border-radius:50%;pointer-events:none;opacity:.45;transition:opacity .45s ease}.tap-ring.is-done{opacity:0}.piece-status{position:absolute;z-index:3;left:0;right:0;top:calc(100% + 14px);display:flex;flex-direction:column;align-items:center;gap:12px;margin:0;padding:0 20px;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s}body.is-loading .piece-status,body.is-waiting .piece-status{opacity:1;visibility:visible;transition:opacity .5s ease .3s}.piece-status .caption{margin:0;max-width:30ch;color:var(--p-ink);opacity:.82;font:400 18px/1.3 var(--serif);text-align:center;text-wrap:balance}.piece-status .bar{position:relative;width:72px;height:1px;overflow:hidden;background:#ece7df1f}.piece-status .bar:after{content:"";position:absolute;inset:0;width:40%;background:#ece7dfb3;animation:sweep 1.6s cubic-bezier(.5,0,.5,1) infinite}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(250%)}}body.is-waiting .piece-status .bar,.piece-status .label{display:none}.piece-start{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);min-height:44px;background:#03050780;border-color:#ece7df57;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}body.is-fallback .piece-start{visibility:hidden}.piece-pill{display:inline-flex;align-items:center;gap:10px;min-height:40px;box-sizing:border-box;padding:0 18px;border:1px solid rgba(236,231,223,.2);border-radius:999px;background:#ece7df08;color:var(--p-ink);font:400 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:border-color .25s ease,background-color .25s ease}.piece-pill svg{flex:none;width:9px;height:9px;fill:currentColor}.piece-pill[hidden]{display:none}@media(hover:hover){.piece-pill:hover{border-color:#ece7df66;background:#ece7df0f}}.piece-pill:focus-visible{outline:1.5px solid var(--p-ink);outline-offset:3px}.fallback{position:absolute;inset:0;z-index:5}.fallback[hidden]{display:none}.fallback video,.nojs video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:transparent}.fallback video[hidden]{display:none}.nojs{position:absolute;inset:0;z-index:6;background:var(--page)}body.is-fallback .stage canvas,body.is-fallback .hud,body.is-fallback .poster-wrap,body.is-fallback .piece-status,body.is-fallback .tap-ring{visibility:hidden}.piece-note{position:absolute;z-index:3;left:0;right:0;top:calc(100% + 16px);display:flex;flex-direction:column;align-items:center;gap:12px;margin:0 auto;max-width:34em;box-sizing:border-box;padding:0 16px;color:var(--p-dim);font:400 13px/1.5 var(--sans);text-align:center;-webkit-user-select:text;user-select:text}.piece-note[hidden]{display:none}.piece-note p{margin:0;text-wrap:balance}@media(min-aspect-ratio:5/4){body.piece{--pad: clamp(12px, 2.2vh, 28px);--gap: clamp(18px, 2.2vw, 36px);--edge: clamp(14px, 1.4vw, 36px);--side: max(clamp(168px, 17vw, 340px), calc(176px + var(--gap) + var(--edge)));--col: calc(var(--side) - var(--gap) - var(--edge));--stage: min(calc(var(--aw) - 2 * var(--side)), calc(var(--ah) - 2 * var(--pad)))}.piece-main{padding:var(--safe-t) var(--safe-r) var(--safe-b) var(--safe-l)}.piece-bar{padding-top:calc(var(--safe-t) + var(--pad) + clamp(4px,.5vw,10px));padding-left:calc(var(--safe-l) + clamp(18px,2.2vw,36px));padding-right:calc(var(--safe-r) + clamp(18px,2.2vw,36px))}.piece-back .wm{font-size:clamp(20px,.6vw + 13px,28px)}.piece-back .arrow{font-size:clamp(13px,.3vw + 8px,16px)}.piece-label{position:fixed;top:calc(var(--safe-t) + (var(--ah) - var(--stage)) / 2);left:calc(var(--safe-l) + (var(--aw) + var(--stage)) / 2 + var(--gap));width:var(--col);text-align:left}.piece-title{font-size:clamp(24px,1.9vw,52px);line-height:1.02;white-space:normal;text-wrap:balance}.piece-meta{margin-top:12px;font-size:clamp(10px,.28vw + 6px,13px)}.piece-line{display:block;max-width:26ch;margin:18px 0 0;color:var(--p-dim);font:400 clamp(14px,.35vw + 9px,17px)/1.45 var(--sans);text-wrap:pretty;-webkit-user-select:text;user-select:text}body.piece .hud,body.piece .hud button,.piece-pill{font-size:clamp(11px,.3vw + 6.5px,14px)}.piece-note{font-size:clamp(13px,.35vw + 8px,16px)}body.piece .hud,.piece-status,.piece-note{top:auto;bottom:0;left:calc(100% + var(--gap));right:auto;width:var(--col);max-width:none;margin:0;padding:0;flex-direction:column;align-items:flex-start;justify-content:flex-end;text-align:left}body.piece .hud{gap:8px}.piece-status{gap:10px}body.piece .hud .hint{flex:0 0 auto;margin:0 0 6px;text-align:left;max-width:24ch}.piece-pill{padding:0 14px;gap:8px}.piece-status .label{display:block;color:var(--p-faint);font:400 clamp(10px,.28vw + 6px,13px)/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase}body.is-waiting .piece-status .label{display:none}body.piece .hud button{width:auto;max-width:100%;min-height:clamp(34px,1.2vw + 17px,46px);text-align:left}.piece-status .caption{display:none}}@media(min-aspect-ratio:5/4)and (hover:hover)and (pointer:fine){body.piece .hud .hint .key{display:block;margin-top:4px}body.piece .hud .hint .key .sep{display:none}}@media(prefers-reduced-motion:reduce){body.is-loading .poster{animation:none}.piece-status .bar:after{animation:none;width:100%;opacity:.35}.poster-wrap,.poster,body.piece .hud,.piece-status,.tap-ring{transition-duration:.01ms}}
