:root{--ink:#030405;--cream:#f5f5ed;--green:#84f800;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{background:var(--ink);height:100%;color:var(--cream);margin:0;overflow:hidden}body{-webkit-font-smoothing:antialiased;font:14px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.app{position:fixed;inset:0}.stage{touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;position:absolute;inset:0}.stage canvas{width:100%;height:100%;display:block}.top{padding:max(18px, env(safe-area-inset-top)) 22px 0;pointer-events:none;justify-content:space-between;align-items:flex-start;display:flex;position:absolute;inset:0 0 auto}.mark{gap:2px;display:grid}.name{letter-spacing:-.01em;font:italic 400 34px/1 Iowan Old Style,Palatino Linotype,Georgia,serif}.sub{letter-spacing:.08em;text-transform:uppercase;opacity:.55;font-size:12px}.back{pointer-events:auto;color:var(--cream);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid #f5f5ed2e;border-radius:999px;padding:8px 12px;font-size:13px;text-decoration:none}.back:hover{border-color:#f5f5ed80}.hint{white-space:nowrap;letter-spacing:.04em;opacity:.6;pointer-events:none;margin:0;font-size:13px;transition:opacity 1.2s;position:absolute;top:104px;left:50%;transform:translate(-50%)}.hint.gone{opacity:0}.toast{pointer-events:none;opacity:0;margin:0;font:italic 22px Iowan Old Style,Georgia,serif;transition:opacity .4s;position:absolute;top:22%;left:50%;transform:translate(-50%)}.toast.on{opacity:.85}.dock{left:50%;bottom:max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#080a0c8c;border:1px solid #f5f5ed1f;border-radius:999px;gap:8px;padding:6px;display:flex;position:absolute;transform:translate(-50%)}.dock button{font:inherit;color:var(--cream);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:8px;min-height:40px;padding:9px 14px;font-size:13px;display:inline-flex}.dock button:hover{background:#f5f5ed14}.dock button:focus-visible,.back:focus-visible{outline:2px solid var(--green);outline-offset:2px}.dock button.rec{color:#ff6b6b}.sw{border-radius:50%;width:12px;height:12px;box-shadow:0 0 10px}.sw.p0{color:#c9d4ff;background:#dfe3f3}.sw.p1{background:var(--green);color:var(--green)}.sw.p2{color:#b26bff;background:#59e0d0}.sw.p3{color:#ff6a3d;background:#ff9a62}@media (width<=520px){.name{font-size:28px}.sub{font-size:10px}.hint{letter-spacing:.015em;font-size:10px;top:142px;bottom:auto}.dock button{padding:9px 11px}}@media (prefers-reduced-motion:reduce){.hint,.toast{transition:none}}.sw.p4{color:#ffb35c;background:#9fb4ff}.snd{border:1.5px solid #f5f5ed73;border-radius:50%;width:12px;height:12px}.snd.on{border-color:var(--green);background:radial-gradient(circle, var(--green) 0 30%, transparent 35%);box-shadow:0 0 8px #84f80099}.sw.p5{color:#8d6bdf;background:#37a7a3}.sw.p6{color:#e98394;background:#f7c36c}.top .back,.dock,.mark{transition:opacity 1.4s}.app.quiet .dock,.app.quiet .back{opacity:0}.app.quiet .mark{opacity:.38}.app.quiet .dock:has(:focus-visible){opacity:1}@media (prefers-reduced-motion:reduce){.top .back,.dock,.mark{transition:none}}.sw.p0{box-shadow:0 0 0 2px #84f800,0 0 10px #f5f5ed4d}@media (width<=520px){.mark{max-width:190px}.sub{max-width:170px;font-size:9px;line-height:1.45}}.settings-toggle{z-index:7;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));color:#e9f6ef;cursor:pointer;background:#030c10b8;border:1px solid #bee1df40;border-radius:50%;width:48px;height:48px;font:24px system-ui;position:absolute}.settings-toggle:focus-visible{outline-offset:4px;outline:2px solid #9ecdc7}.exploring .dock{z-index:8;border-radius:22px;flex-wrap:wrap;max-width:calc(100% - 32px);top:86px;bottom:auto;right:24px}.exploring .dock button{min-width:44px;min-height:44px;padding:10px 14px;font-size:15px}.exploring .hint{display:none}@media (width<=760px){.settings-toggle{top:82px;right:16px}.exploring .dock{justify-content:center;width:270px;top:142px;right:16px}.name{font-size:30px}}.app{background:#031820}.start-poster{pointer-events:none;z-index:1;opacity:1;background:#031820 url(/fun/projects/driftlight/start-poster.webp) 50%/cover no-repeat;transition:opacity .3s;position:absolute;inset:0}.live-ready .start-poster{opacity:0}.stage{z-index:1;opacity:0;transition:opacity .3s}.live-ready .stage{opacity:1}.start-screen{z-index:9;pointer-events:none;opacity:1;transition:opacity .35s,transform .35s;position:absolute;inset:0}.start-title{position:absolute;top:23%;left:9%}.start-title h1{color:#f5f5ed;letter-spacing:-.01em;text-shadow:0 0 40px #8cdcff40;margin:0;font:italic 400 clamp(64px,9vw,136px)/1.04 Iowan Old Style,Palatino Linotype,Georgia,serif}.start-title p{letter-spacing:.28em;color:#f5f5edb3;margin:28px 0 0;font-size:13px}.start-action{position:absolute;top:calc(23% + 1.04*clamp(64px,9vw,136px) + 96px);left:9%}.dive-button{pointer-events:auto;color:#f5f5ed;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#8cdcff12;border:1px solid #f5f5ed33;border-radius:40px;justify-content:space-between;align-items:center;gap:48px;min-width:174px;height:56px;padding:0 26px;font:16px system-ui,sans-serif;animation:3.2s ease-in-out infinite dive-breathe;display:flex}.dive-chevron{flex:none;width:20px;height:20px}.dive-button:hover{background:#8cdcff29;border-color:#f5f5ed99}.dive-button:focus-visible,.start-sound:focus-visible{outline-offset:5px;outline:2px solid #b7edf0}.start-hint{color:#f5f5ed8c;letter-spacing:.025em;margin-top:20px;font-size:12px}.phone-hint{display:none}.start-signature{left:36px;bottom:max(32px,calc(env(safe-area-inset-bottom) + 20px));opacity:.6;letter-spacing:.06em;align-items:center;gap:12px;font-size:13px;display:flex;position:absolute}.start-signature img{object-fit:contain;width:auto;height:22px}.start-sound{right:32px;bottom:max(22px,calc(env(safe-area-inset-bottom) + 12px));pointer-events:auto;color:#f5f5ed99;cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;min-height:44px;padding:12px;font:13px system-ui;display:flex;position:absolute}.exploring .start-screen,.boot-dive .start-screen{opacity:0;visibility:hidden;transition:opacity .35s,transform .35s,visibility 0s .35s;transform:translateY(-18px)}.exploring .ex-hud,.exploring .settings-toggle,.exploring .top{animation:.35s .3s backwards hud-arrive}.exploring .top .name{opacity:.8;font-size:32px}.exploring .top{padding:30px 34px}.exploring .dock{inset:86px 24px auto auto;transform:none}@keyframes dive-breathe{0%,to{box-shadow:0 0 26px #8cdcff1a}50%{box-shadow:0 0 32px #84f80040}}@keyframes hud-arrive{0%{opacity:0}to{opacity:1}}@media (width<=760px){.start-poster{background-image:url(/fun/projects/driftlight/start-poster-phone.webp)}.start-title{text-align:center;top:14.5%;left:24px;right:24px}.start-title h1{font-size:clamp(64px,17vw,88px)}.start-title p{letter-spacing:.24em;max-width:300px;margin:20px auto 0;font-size:11px;line-height:1.8}.start-action{top:auto;left:24px;right:24px;bottom:calc(120px + env(safe-area-inset-bottom))}.dive-button{justify-content:center;gap:20px;width:100%;height:60px}.start-hint{white-space:nowrap;text-align:center;margin:17px -6px 0;font-size:11px}.desktop-hint{display:none}.phone-hint{display:inline}.start-signature{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));white-space:nowrap;font-size:12px;transform:translate(-50%)}.start-sound{bottom:calc(62px + env(safe-area-inset-bottom));font-size:12px;right:50%;transform:translate(50%)}.exploring .top{padding:24px 20px}.exploring .top .name{font-size:28px}.exploring .dock{top:90px;bottom:auto;right:16px}.settings-toggle{top:24px;right:16px}}@media (prefers-reduced-motion:reduce){.dive-button,.exploring .ex-hud,.exploring .settings-toggle,.exploring .top{animation:none}.start-screen,.exploring .start-screen{transform:none}.stage{transition:opacity .3s}}.top{z-index:6}.toast{z-index:10}.start-signature img{width:44px;height:44px;margin:-11px -5px -11px -8px}@media (prefers-reduced-motion:reduce){.exploring.live-ready .stage{animation:.3s gentle-reveal}@keyframes gentle-reveal{0%{opacity:.45}to{opacity:1}}}.ex-entry,.ex-hud{--ex-ink:#030405;--ex-cream:#f5f5ed;--ex-green:#9ecdc7;--ex-line:#f5f5ed29;--ex-muted:#f5f5ed9e;color:var(--ex-cream);font:12px/1.4 system-ui,-apple-system,Segoe UI,sans-serif}.ex-hud{z-index:5;pointer-events:none;position:absolute;inset:0}.ex-entry{top:max(18px, env(safe-area-inset-top));right:max(22px, env(safe-area-inset-right));z-index:5;position:absolute}.ex-hud *,.ex-entry *{box-sizing:border-box}.ex-hud button,.ex-entry button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.ex-hud button:focus-visible,.ex-entry button:focus-visible{outline:2px solid var(--ex-green);outline-offset:4px}.ex-icon{stroke:currentColor;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:17px;height:17px}.ex-button{border:1px solid var(--ex-line);min-height:42px;color:var(--ex-cream);-webkit-backdrop-filter:blur(16px);white-space:nowrap;background:#0304058f;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:9px 14px;transition:border-color .2s,background .2s,color .2s;display:inline-flex}.ex-button:hover{background:#030405cc;border-color:#f5f5ed73}.ex-enter{border-color:#9ecdc766;gap:10px;min-height:44px}.ex-enter>.ex-icon,.ex-entry-arrow{color:var(--ex-green)}.ex-entry-arrow{padding-left:8px;font-size:17px}.ex-toolbar{top:max(18px, env(safe-area-inset-top));right:max(22px, env(safe-area-inset-right));pointer-events:auto;gap:7px;display:flex;position:absolute}.ex-map-toggle.ex-is-active,.ex-view[aria-pressed=true]{color:var(--ex-green);border-color:#9ecdc759}.ex-leave{color:var(--ex-muted)}.ex-leave .ex-icon{width:14px;height:14px}.ex-readout{left:max(24px, env(safe-area-inset-left));bottom:max(26px, env(safe-area-inset-bottom));font-variant-numeric:tabular-nums;text-shadow:0 1px 12px #030405;align-items:center;gap:18px;display:flex;position:absolute}.ex-readout-depth{gap:2px;display:grid}.ex-readout-depth>strong{letter-spacing:-.05em;font-size:25px;font-weight:400;line-height:1}.ex-readout-depth small{letter-spacing:0;color:var(--ex-muted);margin-left:4px;font-size:12px}.ex-readout-depth>span{color:var(--ex-muted);font-size:10px}.ex-readout-divider{background:var(--ex-line);width:1px;height:28px}.ex-bearing{grid-template-columns:17px auto;align-items:center;gap:1px 6px;display:grid}.ex-bearing .ex-icon{color:var(--ex-muted);grid-row:span 2}.ex-bearing strong{font-size:12px;font-weight:500}.ex-bearing>span{color:var(--ex-muted);font-size:10px}.ex-found{align-items:center;gap:5px;font-size:11px;display:flex}.ex-found>span:last-child{color:var(--ex-muted)}.ex-live-dot{background:var(--ex-green);border-radius:50%;flex:none;width:4px;height:4px;margin-right:3px;display:inline-block;box-shadow:0 0 10px #9ecdc740}.ex-map-panel{top:calc(max(18px, env(safe-area-inset-top)) + 56px);right:max(22px, env(safe-area-inset-right));overscroll-behavior:contain;border:1px solid var(--ex-line);-webkit-backdrop-filter:blur(22px);pointer-events:auto;background:linear-gradient(145deg,#0c171bd4,#030405bf);border-radius:18px;width:258px;max-height:calc(100dvh - 180px);position:absolute;overflow:auto;box-shadow:0 12px 44px #0000001f}.ex-map-header{justify-content:space-between;align-items:center;gap:4px;padding:15px 8px 0 17px;display:flex}.ex-eyebrow{color:var(--ex-muted);letter-spacing:.14em;text-transform:uppercase;font-size:9px}.ex-map-header h2{letter-spacing:-.035em;margin:3px 0 0;font:italic 400 20px/1.2 Iowan Old Style,Palatino Linotype,Georgia,serif}.ex-icon-button{min-width:40px;min-height:40px;color:var(--ex-muted);background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.ex-icon-button:hover{color:var(--ex-cream);background:#f5f5ed0f}.ex-ocean-map{width:calc(100% - 16px);height:auto;margin:5px 8px 0;display:block;overflow:hidden}.ex-map-contour{fill:none;stroke:#9ec2c321;stroke-width:1px}.ex-map-grid{fill:none;stroke:#f5f5ed0b;stroke-width:1px;stroke-dasharray:2 4}.ex-map-north{text-anchor:middle;fill:var(--ex-muted);font:8px system-ui,sans-serif}.ex-map-north-arrow{fill:var(--ex-muted)}.ex-map-route{fill:none;stroke:var(--ex-green);opacity:.5;stroke-width:1px;stroke-dasharray:3 4}.ex-map-dot-ring{fill:#f5f5ed09;stroke:#f5f5ed2b;stroke-width:1px}.ex-map-dot{fill:var(--ex-cream)}.ex-map-place text{fill:var(--ex-muted);font:9px system-ui,sans-serif}.ex-map-found .ex-map-dot,.ex-map-destination .ex-map-dot{fill:var(--ex-green)}.ex-map-destination .ex-map-dot-ring{stroke:var(--ex-green)}.ex-map-you circle{fill:#030405cc;stroke:#9ecdc740;stroke-width:1px}.ex-map-you path{fill:var(--ex-green);stroke:var(--ex-ink);stroke-width:.7px}.ex-destinations{padding:0 10px;display:grid}.ex-destination{text-align:left;width:100%;min-height:42px;color:var(--ex-cream);background:0 0;border:0;border-top:1px solid #f5f5ed14;align-items:center;gap:11px;padding:8px;display:flex}.ex-destination:hover,.ex-destination.ex-is-active{background:#9ecdc70d}.ex-place-number{letter-spacing:.02em;color:var(--ex-muted);font-size:9px}.ex-place-arrow,.ex-place-found{margin-left:auto}.ex-place-arrow{color:var(--ex-muted);font-size:16px}.ex-destination.ex-is-active .ex-place-arrow,.ex-place-found{color:var(--ex-green)}.ex-place-found{width:15px;height:15px}.ex-map-footer{color:var(--ex-muted);justify-content:space-between;align-items:center;padding:2px 10px 6px 18px;font-size:9px;display:flex}.ex-map-footer>span{align-items:center;gap:6px;display:inline-flex}.ex-you-dot{background:var(--ex-green);border-radius:50%;width:4px;height:4px;display:inline-block}.ex-map-footer button{min-height:40px;color:var(--ex-muted);background:0 0;border:0;border-radius:6px;align-items:center;gap:5px;padding:6px 8px;display:inline-flex}.ex-map-footer button:hover{color:var(--ex-cream)}.ex-map-footer .ex-icon{width:12px;height:12px}.ex-journey{left:50%;bottom:calc(max(24px, env(safe-area-inset-bottom)) + 48px);text-align:center;color:#f5f5edc4;max-width:min(440px,100% - 36px);text-shadow:0 1px 12px var(--ex-ink);align-items:center;gap:6px;font:italic 16px/1.4 Iowan Old Style,Georgia,serif;display:flex;position:absolute;transform:translate(-50%)}.ex-instructions{bottom:max(26px, env(safe-area-inset-bottom));width:max-content;max-width:calc(100% - 40px);color:var(--ex-muted);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#03040559;border-radius:9px;justify-content:center;align-items:center;gap:16px;padding:9px 13px;font-size:10px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.ex-instructions>span{white-space:nowrap}.ex-instructions kbd{font:inherit;color:var(--ex-cream)}.ex-key-or{opacity:.6}