html,body{color:#c9d6ff;background:#03050c;height:100%;margin:0;font-family:system-ui,sans-serif;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block}#veil{opacity:0;pointer-events:none;background:#03050c;transition:opacity 1.2s;position:fixed;inset:0}#veil.on{opacity:1}#message{text-align:center;opacity:0;pointer-events:none;text-shadow:0 0 18px #78a0ff99;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.6s;display:flex;position:fixed;inset:0}#message.on{opacity:1}#message h1{letter-spacing:.08em;color:#e6edff;margin:0;font-size:clamp(22px,3.2vw,38px);font-weight:300}#message p{letter-spacing:.06em;opacity:.7;margin:12px 0 0;font-size:15px}#hint{letter-spacing:.06em;opacity:0;pointer-events:none;font-size:14px;transition:opacity 2s;position:fixed;bottom:36px;left:50%;transform:translate(-50%)}#hint.on{opacity:.6}#breathe{pointer-events:none;opacity:0;width:0;height:0;transition:opacity 1.5s;position:fixed;top:50%;left:50%}#breathe.on{opacity:1}#breathe .ring{will-change:transform;border:1.5px solid #c8dcff59;border-radius:50%;width:220px;height:220px;position:absolute;top:-110px;left:-110px;box-shadow:0 0 24px #a0beff1f,inset 0 0 24px #a0beff14}#breathe p{text-align:center;letter-spacing:.14em;text-transform:lowercase;opacity:.7;text-shadow:0 0 6px #040814f2,0 0 2px #040814f2;width:200px;margin:0;font-size:13px;position:absolute;top:124px;left:-100px}.map-label{letter-spacing:.12em;text-transform:uppercase;pointer-events:none;white-space:nowrap;font-size:13px;transition:opacity 1.2s;position:fixed;transform:translate(-50%)}#hud{letter-spacing:.04em;opacity:.65;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:12px;position:fixed;bottom:12px;left:16px}#begin{text-align:center;opacity:0;pointer-events:none;text-shadow:0 0 18px #78a0ff8c;background:radial-gradient(#03050c59,#03050cbf);flex-direction:column;justify-content:center;align-items:center;transition:opacity 1.4s;display:flex;position:fixed;inset:0}#begin.on{opacity:1;pointer-events:auto}#begin h1{letter-spacing:.22em;color:#e6edff;margin:0;font-size:clamp(34px,6vw,64px);font-weight:200}#begin p{letter-spacing:.05em;opacity:.75;margin:14px 0 0;font-size:16px}#begin p.small{opacity:.5;font-size:13px}#begin button{font:inherit;letter-spacing:.16em;text-transform:uppercase;color:#e6edff;cursor:pointer;background:#78a0ff1a;border:1px solid #a0beff73;border-radius:999px;margin-top:34px;padding:10px 34px;font-size:15px;transition:background .4s,border-color .4s}#begin button:hover,#begin button:focus-visible{background:#78a0ff38;border-color:#bed2ffcc;outline:none}body.beginning #hint{opacity:0}#settings{letter-spacing:.04em;flex-direction:column;align-items:flex-end;gap:8px;font-size:12px;display:flex;position:fixed;bottom:12px;right:16px}#settings>button{font:inherit;color:inherit;opacity:.55;cursor:pointer;background:0 0;border:1px solid #a0beff40;border-radius:999px;padding:4px 10px;transition:opacity .3s}#settings>button:hover,#settings>button:focus-visible,#settings>button[aria-expanded=true]{opacity:.9;outline:none}#settings .panel{background:#080c1cd1;border:1px solid #a0beff33;border-radius:12px;gap:10px;max-height:calc(100vh - 70px);padding:14px 16px;display:grid;overflow-y:auto}#settings .panel[hidden]{display:none}#settings h2{letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin:6px 0 0;font-size:11px;font-weight:600}#settings h2:first-child{margin-top:0}#settings label{grid-template-columns:104px 140px auto;align-items:center;gap:10px;display:grid}#settings label.check,#settings label.mute{grid-template-columns:auto 1fr;gap:8px}#settings input{accent-color:#9fc2ff}#settings label.check{grid-template-columns:104px auto}#settings select,#settings input[type=number],#settings .panel button{font:inherit;color:inherit;background:#141c38e6;border:1px solid #a0beff4d;border-radius:6px;padding:3px 6px}#settings label.seed{grid-template-columns:104px 100px auto}#settings .panel button{cursor:pointer}#settings .panel button:disabled,#settings input:disabled{opacity:.4;cursor:default}#settings output{opacity:.75;font-variant-numeric:tabular-nums;min-width:40px}#toast{letter-spacing:.06em;opacity:0;pointer-events:none;font-size:14px;transition:opacity .6s;position:fixed;top:22px;left:50%;transform:translate(-50%)}#toast.on{opacity:.75}html,body,#app canvas{touch-action:none;overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#settings .panel{touch-action:pan-y;max-height:calc(100vh - 96px);overflow-y:auto}#touchbar{gap:10px;display:none;position:fixed;bottom:12px;left:16px}body.touch #touchbar{display:flex}body.beginning #touchbar{display:none}#touchbar button,body.touch #settings>button{min-width:48px;min-height:48px;font:inherit;letter-spacing:.04em;color:inherit;opacity:.8;background:#03050c59;border:1px solid #a0beff59;border-radius:999px;padding:0 16px;font-size:14px}#touchbar button:focus-visible{outline-offset:2px;outline:2px solid #c8dcffcc}#stick{pointer-events:none;opacity:0;background:radial-gradient(circle,#a0beff14,#a0beff05 70%);border:1px solid #a0beff4d;border-radius:50%;width:128px;height:128px;transition:opacity .2s;position:fixed;top:-64px;left:-64px}#stick.on{opacity:1}#stick .knob{background:#c8dcff59;border-radius:50%;width:48px;height:48px;position:absolute;top:40px;left:40px;box-shadow:0 0 18px #a0beff80}body.touch #hud{bottom:72px}body.touch #hint{text-align:center;width:calc(100vw - 32px);bottom:96px}body.touch #settings label,body.touch #settings input[type=range],body.touch #settings select,body.touch #settings input[type=number],body.touch #settings .panel button{min-height:44px}body.touch #settings input[type=checkbox]{width:24px;height:24px}body:has(#settings-panel:not([hidden])) #hud{opacity:0}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button:focus-visible,input:focus-visible,select:focus-visible,#begin button:focus-visible,#settings>button:focus-visible{outline-offset:3px;outline:2px solid #cfe0ff}body.reduced-motion *,body.reduced-motion :before,body.reduced-motion :after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body.reduced-motion #breathe .ring{transition:opacity .3s linear}
