:root{--ink: #f2f0ec;--dim: rgba(242, 240, 236, .52);--line: rgba(242, 240, 236, .18);--red: #f2f0ec;--font: "Helvetica Neue", Helvetica, Arial, sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;background:#000;color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}#scene{position:fixed;inset:0;width:100%;height:100%;display:block}.paused #scene{cursor:grab}.paused #scene:active{cursor:grabbing}#caption{position:fixed;left:clamp(20px,4vw,56px);bottom:104px;pointer-events:none;text-shadow:0 0 26px rgba(0,0,0,.7),0 1px 3px rgba(0,0,0,.5);opacity:0;transform:translateY(10px);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.8,.2,1)}#caption.show{opacity:1;transform:none}#caption h2{margin:0;font-size:clamp(26px,3.2vw,44px);font-weight:500;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}#caption p{margin:8px 0 0;font-size:clamp(14px,1.2vw,17px);color:var(--dim)}#caption.hero h2{font-size:clamp(64px,11vw,160px);font-weight:600;letter-spacing:-.04em;line-height:.95}#caption.hero p{margin-top:12px;font-size:clamp(15px,1.5vw,21px);color:var(--ink)}#bar{position:fixed;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);bottom:28px;display:flex;align-items:center;gap:18px}#play{flex:none;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:50%;background:#00000059;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:background-color .15s ease,transform .12s ease}#play:hover{background:#f2f0ec1f}#play:active{transform:scale(.96)}#play .icon-play{display:none}.paused #play .icon-play{display:block}.paused #play .icon-pause{display:none}#chapters{flex:1;display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:0;padding:0;list-style:none}#chapters button{width:100%;padding:8px 0;background:none;border:0;color:var(--dim);font:inherit;font-size:13px;text-align:left;cursor:pointer;transition:color .15s ease}#chapters button:hover,#chapters .active button{color:var(--ink)}#chapters span{display:block;margin-bottom:7px}#chapters i{display:block;height:2px;background:var(--line);overflow:hidden}#chapters b{display:block;height:100%;background:var(--red);transform-origin:left;transform:scaleX(0)}#hint{position:fixed;right:clamp(20px,4vw,56px);top:26px;font-size:13px;color:var(--dim);pointer-events:none}html{-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}#scene{touch-action:none}@media(max-width:700px){#bar{left:16px;right:16px;gap:12px;bottom:max(18px,env(safe-area-inset-bottom))}#caption{left:16px;bottom:calc(max(18px,env(safe-area-inset-bottom)) + 76px)}#chapters button{font-size:12px}#hint{top:max(16px,env(safe-area-inset-top));right:16px}}#caption.hero h2 img{display:block;width:clamp(200px,34vw,520px);height:auto}#endcard{position:fixed;inset:0;display:grid;place-items:center;pointer-events:none;opacity:0}#endcard img{width:min(52vw,420px);height:auto}#endcard{align-content:center;gap:22px}#credit{margin:0;font-size:11px;letter-spacing:.04em;color:var(--dim);text-align:center}#credit a{color:inherit;text-decoration:underline;text-decoration-color:#ffffff40;text-underline-offset:3px}#endcard.on #credit a{pointer-events:auto}#loader{position:fixed;inset:0;z-index:5;background:#000;display:grid;place-items:center;align-content:center;gap:22px;transition:opacity .6s ease}#loader img{width:min(44vw,300px);height:auto}#loader span{position:relative;width:120px;height:2px;background:var(--line);overflow:hidden}#loader span:after{content:"";position:absolute;inset:0;background:var(--ink);transform:translate(-100%);animation:load 1.2s ease-in-out infinite}@keyframes load{to{transform:translate(100%)}}.ready #loader{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){#loader span:after{animation:none;transform:none}}#plan{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;font:500 10px/1 ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.14em}#plan line{stroke:#beecfacc;stroke-width:1}#plan text{fill:#cdf2ffeb}#plan .title{letter-spacing:.06em}#plan .note{fill:#8cc8dcbf}#plan{transform-origin:0 0}#plan .cl{stroke:#beecfa6b;stroke-dasharray:14 4 2 4}#plan .cell{letter-spacing:.14em}body.clean #bar,body.clean #caption,body.clean #hint{display:none}
