:root{color-scheme:dark;--ink: #f1e6d6;--accent: #3fdcff}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#0b0806;color:var(--ink);font-family:Cormorant Garamond,Iowan Old Style,Palatino Linotype,Georgia,serif;-webkit-font-smoothing:antialiased}#stage{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;cursor:grab}#stage:active{cursor:grabbing}#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 45%,transparent 52%,rgba(4,2,1,.62) 100%)}header{position:fixed;top:calc(env(safe-area-inset-top,0px) + 22px);left:calc(env(safe-area-inset-left,0px) + 26px);right:calc(env(safe-area-inset-right,0px) + 26px);pointer-events:none;text-shadow:0 1px 14px rgba(0,0,0,.7)}#title{margin:0;font-style:italic;font-weight:500;font-size:clamp(26px,3.4vw,40px);letter-spacing:.01em;line-height:1.1}#composer{margin:6px 0 0;font-size:clamp(13px,1.3vw,16px);letter-spacing:.08em;opacity:.62}footer{position:fixed;left:0;right:0;bottom:calc(env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;align-items:center;gap:14px;pointer-events:none}#hint{margin:0;font-style:italic;font-size:15px;letter-spacing:.04em;opacity:.42;transition:opacity 1.2s ease}#hint.seen{opacity:0}#play{pointer-events:auto;width:64px;height:64px;border-radius:50%;border:1px solid rgba(241,230,214,.42);background:#140e0a80;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:border-color .2s ease,background .2s ease,transform .12s ease}#play:hover,#play:focus-visible{border-color:var(--accent);background:#140e0ab8;outline:none}#play:active{transform:scale(.95)}#play svg{width:22px;height:22px;fill:currentColor}#play .pause,#play.playing .play{display:none}#play.playing .pause{display:block}#loading{position:fixed;inset:0;display:grid;place-items:center;background:#0b0806;font-style:italic;font-size:20px;letter-spacing:.06em;color:#f1e6d6b3;transition:opacity .9s ease}#loading.done{opacity:0;pointer-events:none}
