*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #1d1733;--surface: rgba(255, 255, 255, .05);--line: rgba(242, 239, 233, .14);--text: #f2efe9;--muted: rgba(242, 239, 233, .62);--accent: #ffd35c;--radius: 1rem}body{min-height:100vh;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased}.page{min-block-size:100vh;display:grid;place-items:center;padding:clamp(.5rem,2vw,1.5rem)}.caption{position:fixed;inset:auto auto clamp(1rem,3vw,2.5rem) clamp(1rem,3vw,2.5rem);z-index:0;pointer-events:none}.caption h1{color:var(--accent);font-size:clamp(3rem,9vw,8.5rem);font-weight:800;line-height:.9;letter-spacing:-.045em}.caption p{margin-top:.6rem;color:var(--muted);font-size:clamp(.8rem,1.2vw,1rem);letter-spacing:.08em;text-transform:uppercase}.stage{position:relative;z-index:1;aspect-ratio:1;inline-size:min(92vh,94vw)}.stage__canvas{display:block;inline-size:100%;block-size:100%}.stage.is-opaque .stage__canvas{-webkit-mask-image:linear-gradient(to bottom,transparent,#000 6%,#000 90%,transparent),linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 6%,#000 90%,transparent),linear-gradient(to right,transparent,#000 6%,#000 94%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect}body.has-fly{cursor:none}body.has-fly .lil-gui{cursor:auto}.stage.is-calibrating{cursor:crosshair}.stage.is-calibrating:after{content:"";position:absolute;inset:0;border:1px dashed var(--accent);border-radius:var(--radius);pointer-events:none}.stage__loader{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.75rem;color:var(--muted);font-size:.9rem}.stage__loader[hidden]{display:none}.stage__progress{inline-size:12rem;block-size:4px;border-radius:2px;background:var(--line);overflow:hidden}.stage__progress>span{display:block;block-size:100%;inline-size:0;background:var(--accent)}.stage__anchor{position:absolute;inset:0 auto auto 0;inline-size:14px;block-size:14px;margin:-7px 0 0 -7px;border:2px solid var(--accent);border-radius:50%;pointer-events:none}.fly{position:fixed;inset:0 auto auto 0;z-index:10;pointer-events:none;filter:drop-shadow(0 12px 5px rgba(0,0,0,.6))}.fly[hidden]{display:none}
