@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#eef7ff;--muted:#9aafc8;--blue:#66b9ff;--line:rgba(123,188,255,.2);--panel:rgba(6,17,34,.87)}*{box-sizing:border-box}body{margin:0;background:#030916;color:var(--ink);font-family:'DM Sans',sans-serif;overflow:hidden}button,a,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button,select{font:inherit}button{cursor:pointer;color:inherit;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #88d3ff;outline-offset:5px}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none}header{position:fixed;z-index:3;top:0;left:0;right:0;height:96px;display:flex;align-items:center;padding:0 38px;border-bottom:1px solid var(--line);background:linear-gradient(#030a16ec,#030a1680)}.brand{display:flex;gap:13px;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:25px;font-weight:600}.brand-mark{border:1px solid #5fafffa0;border-radius:9px;width:43px;height:43px;display:grid;place-items:center;color:#a5daff;font-size:30px;box-shadow:inset 0 0 20px #267ee82b}.brand small{display:block;font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:.23em;color:#83a7ce;margin-top:4px}nav{display:flex;margin-left:auto;align-items:center;gap:26px;font-size:14px}nav button{background:none;padding:12px 0}nav a{border:1px solid var(--line);padding:12px 18px;border-radius:8px}nav a span{color:var(--blue);margin-left:12px}.icon-button{background:none;font-size:21px;margin-left:20px;padding:10px}.panel{background:var(--panel);border:1px solid var(--line);backdrop-filter:blur(18px);box-shadow:0 12px 60px #0003;border-radius:14px}.intro{position:fixed;top:135px;left:38px;padding:30px;width:334px;z-index:2;transition:opacity .4s,transform .4s}.intro.hidden{opacity:0;transform:translateX(-30px);pointer-events:none}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;color:#8baed0}.line{display:inline-block;width:20px;height:1px;background:#6ac0ff;vertical-align:middle;margin-right:8px}h1,h2{font-family:'Space Grotesk',sans-serif;letter-spacing:-.045em}h1{font-size:43px;font-weight:500;line-height:1.13;margin:20px 0}h1 em{font-style:normal;color:#7fc8ff}p{font-size:15px;line-height:1.7;color:var(--muted)}.intro p{margin-bottom:24px}.primary{display:flex;align-items:center;justify-content:center;gap:12px;background:#8fd1ff;color:#061629;border:1px solid #bfebff;border-radius:8px;font-weight:700;font-size:15px;padding:14px 20px;box-shadow:0 4px 24px #299eff21}.primary:hover{background:#c1e6ff}.intro .primary{width:100%;justify-content:space-between}.intro-foot{font-size:12px;color:#8294ad;margin-top:18px}.intro-foot span{padding:0 8px}.mission{position:fixed;right:30px;top:129px;width:286px;padding:20px;z-index:2}.mission-head{display:flex;align-items:center;justify-content:space-between;width:100%;background:none;padding:0}.mission-head>span:last-child{font-family:'Space Grotesk';color:var(--blue);font-size:14px}.mission h2{font-size:23px;font-weight:500;margin:15px 0 5px}.mission p{font-size:13px;margin:0 0 14px}.signal-list{display:grid;gap:6px}.signal-list button{display:flex;align-items:center;gap:11px;background:transparent;text-align:left;padding:10px 0;border-top:1px solid #729ccc16}.signal-list i{font-style:normal;font-size:11px;color:#7f9dbe;background:#12243b;border:1px solid #34516d;width:28px;height:28px;border-radius:50%;display:grid;place-items:center}.signal-list i.done{background:#204b70;color:#b5e7ff;border-color:#6aa7cf}.signal-list span{font-size:14px}.signal-list small{display:block;font-size:11px;color:#7893ae;margin-top:4px}.signal-list b{font-weight:400;margin-left:auto;color:#8fbedf}.progress{height:3px;background:#233449;margin-top:15px;border-radius:2px}.progress span{display:block;height:100%;width:0;background:#8ad8ff;transition:width .4s}#place{position:fixed;left:38px;bottom:109px;pointer-events:none;text-shadow:0 2px 12px #000}#place strong{display:block;font-family:'Space Grotesk';font-size:25px;margin-top:8px;font-weight:500}#compass{position:fixed;right:44px;bottom:105px;text-align:center;pointer-events:none}.compass-ring{position:relative;width:104px;height:104px;border:1px solid #70c5ff50;border-radius:50%;background:radial-gradient(circle,#0c254766,#08182eaa 70%)}.compass-ring:after{content:'';position:absolute;inset:18px;border:1px solid #7ec3ff22;border-radius:50%}.compass-ring>span{font-size:10px;position:absolute;top:5px;left:48px;color:#a5d5ff}#compass-player{position:absolute;left:49px;top:49px;width:6px;height:8px;background:#dbf4ff;clip-path:polygon(50% 0,100% 100%,50% 70%,0 100%);z-index:1}.dot{position:absolute;width:4px;height:4px;background:#58aeff;border-radius:50%}.dot-a{left:25px;top:37px}.dot-b{right:25px;top:37px}.dot-c{left:50px;bottom:20px}#compass small{font-size:9px;letter-spacing:.14em;color:#86a7c9;display:block;margin-top:11px}footer{position:fixed;bottom:0;left:0;right:0;height:65px;border-top:1px solid var(--line);background:#030a16bf;display:flex;align-items:center;padding:0 38px;gap:24px;font-size:12px;color:#829cb8}kbd{font:10px 'DM Sans';color:#b3cbe3;border:1px solid #5b789742;border-radius:4px;padding:4px 6px}.separator{padding:0 12px;color:#415773}footer button{background:none;color:#b0c9e1;font-size:12px}.world-tag{margin-left:auto;letter-spacing:.1em}.world-tag b{margin-left:12px;color:#8fcaff}#talk-wrap{position:fixed;bottom:108px;left:50%;transform:translateX(-50%);text-align:center;z-index:4}#near-label{font-size:12px;color:#bfdfff;display:block;margin-bottom:10px;text-shadow:0 2px 4px #000}#interact{padding:13px 22px;min-width:180px}#interact kbd{color:#143756;border-color:#14375644}#toast{position:fixed;top:110px;left:50%;transform:translate(-50%,-15px);opacity:0;background:#10243bf2;border:1px solid #7ac9ff50;padding:13px 22px;border-radius:30px;font-size:14px;z-index:8;transition:.25s;pointer-events:none;max-width:90%;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}.camera-buttons{position:fixed;right:171px;bottom:112px;display:flex;gap:5px}.camera-buttons button{width:34px;height:34px;background:#081a2bcc;border:1px solid var(--line);border-radius:7px;font-size:18px;color:#b0d5f8}#joystick{display:none;position:fixed;bottom:100px;left:24px;width:112px;height:112px;border-radius:50%;border:1px solid #83bfff50;background:#0a234b55;touch-action:none;z-index:4}#stick{position:absolute;left:35px;top:35px;width:40px;height:40px;border-radius:50%;background:#77bbff65;border:1px solid #b0dbff8f;box-shadow:0 0 20px #418cff33;pointer-events:none}dialog{background:#091528;color:var(--ink);border:1px solid #80bfff44;border-radius:19px;padding:32px;width:min(600px,92vw);max-height:88dvh;overflow:auto;box-shadow:0 30px 150px #000b}dialog::backdrop{background:#020813aa;backdrop-filter:blur(9px)}dialog h2{font-size:36px;font-weight:500;line-height:1.1;margin:15px 0}dialog p{font-size:16px}.close{position:absolute;top:14px;right:14px;border-radius:50%;background:#132741;width:34px;height:34px;font-size:24px;z-index:2}.secondary{border:1px solid var(--line);background:#15243a;border-radius:8px;padding:12px 18px;color:#b9d5ed;font-size:14px}.dest-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:25px}.dest-grid button{min-height:128px;text-align:left;border:1px solid var(--line);border-radius:10px;background:linear-gradient(130deg,#173a59,#0b182b);padding:20px}.dest-grid span{display:block;color:#88c5f7;font-size:10px;letter-spacing:.13em}.dest-grid strong{display:block;font:500 20px 'Space Grotesk';margin:12px 0 7px}.dest-grid small{color:#93abc3;font-size:12px}.control-row{display:flex;align-items:center;justify-content:space-between;gap:14px;border-bottom:1px solid var(--line);padding:13px 0;font-size:14px}.control-row span{color:var(--muted)}.control-row strong{font-weight:500}.control-row select{padding:8px;background:#15263c;border:1px solid var(--line);border-radius:6px}.settings-note{font-size:14px}#conversation{padding:0;width:min(740px,94vw)}#conversation[open]{display:grid;grid-template-columns:260px 1fr}.portrait{background-color:#02070f;background-image:url('assets/portraits.png');background-size:300% 100%;background-position:0 50%;min-height:430px;position:relative}.portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#091528,transparent 40%)}.dialog-content{padding:40px 28px 28px}.dialog-content h2{margin-bottom:12px}.dialog-content p{font-size:15px;min-height:75px}#dialog-options{display:grid;gap:9px}#dialog-options button{text-align:left;border:1px solid #487bac66;padding:12px 14px;background:#122c48;border-radius:8px;font-size:14px}#dialog-options button:hover{background:#1f466b}.dialog-foot{font-size:11px;color:#6d89a5;line-height:1.6;margin-top:23px}.dialog-foot a{display:block;font-size:13px;color:#8dcaff;margin-top:6px}#complete{text-align:center;padding:36px}.completion-orb{font-size:60px;color:#a4e1ff;text-shadow:0 0 30px #58acff}#complete .primary{margin-top:24px}#complete .secondary{margin-top:12px;width:100%}#loading{position:fixed;inset:0;background:#030a16;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;transition:opacity .5s}#loading.gone{opacity:0;pointer-events:none}.loader-symbol{font-size:50px;color:#84ceff;border:1px solid #3c7099;width:85px;height:85px;border-radius:20px;display:grid;place-items:center;animation:breathe 1.6s infinite}#loading p{font-family:'Space Grotesk';font-size:20px;color:#d7edff;margin:26px 0 8px}#loading span{font-size:13px;color:#7793ae}@keyframes breathe{50%{box-shadow:0 0 45px #238cf844}}[hidden]{display:none!important}@media(pointer:coarse){#joystick{display:block}footer>span:first-child{display:none}.intro-foot{font-size:0}.intro-foot:after{content:'Use the stick to move · Drag to look';font-size:12px}.camera-buttons{right:30px;bottom:80px}#talk-wrap{bottom:128px}#compass{bottom:135px}}@media(max-width:760px){header{height:77px;padding:0 18px}.brand{font-size:20px;gap:9px}.brand-mark{width:34px;height:34px;font-size:25px}.brand small{font-size:9px}.icon-button{margin-left:7px;padding:8px}nav{gap:9px}nav button{font-size:12px}nav a{display:none}.intro{left:18px;top:98px;width:calc(100% - 36px);max-width:320px;padding:24px;z-index:5}h1{font-size:37px}.intro p{font-size:14px}.mission{right:15px;top:94px;width:220px;padding:14px}.mission h2{font-size:20px}.mission p{font-size:12px}.signal-list span{font-size:13px}.signal-list small{font-size:10px}.mission .eyebrow{font-size:10px}.mission.collapsed #mission-body{display:none}body:not(.started) .mission{display:none}#place{left:20px;bottom:239px}#place .eyebrow{font-size:10px}#place strong{font-size:18px}#compass{right:20px;bottom:135px}.compass-ring{width:86px;height:86px}.compass-ring>span{left:39px}.dot-a{left:20px}.dot-b{right:20px}.dot-c{left:41px}footer{height:52px;padding:0 20px;font-size:10px}footer>span:first-child{display:none}.world-tag{font-size:10px}#talk-wrap{left:50%;bottom:70px;width:max-content;max-width:70%}#interact{min-width:150px;padding:12px 15px}#near-label{font-size:11px}.camera-buttons{right:16px;bottom:91px;gap:4px}.camera-buttons button{width:29px;height:29px}.camera-buttons button:nth-child(-n+2){display:none}#toast{top:85px;font-size:12px;width:max-content}#conversation[open]{display:block}.portrait{height:190px;min-height:190px;background-size:300% auto;background-position-y:32%}.dialog-content{padding:20px 24px}.dialog-content h2{font-size:30px;margin:9px 0}.dialog-content p{min-height:0;font-size:14px}.dialog-foot{margin-top:14px}dialog{padding:26px}.dest-grid{gap:8px}.dest-grid button{padding:14px}.dest-grid strong{font-size:18px}#complete h2{font-size:32px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

#place #signal-status{display:block;color:#83b2d5;font-size:11px;margin-top:7px;letter-spacing:.04em}.control-row input[type=checkbox]{width:22px;height:22px;accent-color:#59b5ff}.control-row select{min-height:40px}#joystick.running{border-color:#a8e5ff;box-shadow:0 0 22px #338cff55}#quality-state{color:#8bcbff;margin-bottom:4px}@media(max-width:760px){.camera-buttons button{min-width:44px;min-height:44px}#place #signal-status{font-size:10px}#settings{max-height:82dvh;overflow-y:auto}}

/* Quest board */
#quests{width:min(760px,94vw);padding:32px}#quests h2{font-size:32px;margin:12px 0 5px}.quest-profile{display:flex;justify-content:space-between;align-items:center;gap:20px}.quest-profile>strong{font:500 27px 'Space Grotesk';color:#8ad8ff;white-space:nowrap}.quest-profile p{font-size:14px;margin:0}.save-row{display:flex;justify-content:space-between;align-items:center;min-height:49px;gap:10px;font-size:13px;color:#9dc3e2}#quest-list{display:grid;gap:12px}.quest-card{padding:20px;border:1px solid #86bdec36;border-radius:12px;background:linear-gradient(130deg,#112941,#0c1b2e)}.quest-card.complete{border-color:#71c9ba55}.quest-card-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.quest-card h3{font:500 20px 'Space Grotesk';margin:0}.quest-card-head>span{font-size:13px;color:#9edbff;white-space:nowrap}.quest-card p{font-size:14px;line-height:1.6;margin:10px 0 14px}.quest-card-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px}.quest-card-bottom>span{font-size:13px;color:#afd0e8}.quest-card button{flex-shrink:0;min-height:44px}.quest-shortcut{width:100%;margin-top:16px;font-size:13px}.reward-title{font:500 21px 'Space Grotesk';margin:24px 0 5px}.reward-copy{font-size:14px;margin:0 0 15px}#quest-colors{display:grid;grid-template-columns:1fr 1fr;gap:9px}.color-choice{background:#14283e;border:1px solid #5780a655;border-radius:8px;text-align:left;padding:14px;font-size:14px;min-height:48px}.color-choice:before{content:'';display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--swatch);margin-right:9px}.color-choice[aria-pressed=true]{border-color:var(--swatch)}button:disabled{opacity:.5;cursor:default}.quest-meta{font-size:12px;line-height:1.5;color:#9eb4cb;margin:14px 0 0}#rank-chip{display:block;color:#afd6f3;font-size:12px;margin-top:5px}#relay-hud{position:fixed;z-index:4;left:50%;top:110px;transform:translateX(-50%);padding:13px 20px;text-align:center}#relay-hud strong{display:block;font:500 23px 'Space Grotesk';color:#93eedc;margin:6px 0}#relay-hud button{background:none;color:#adc9dc;font-size:13px;min-height:32px}.memory-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}.memory-grid button{min-height:95px;border:2px solid var(--pad);border-radius:12px;background:#0c1a2a;color:var(--pad);font-size:16px;transition:background .12s,box-shadow .12s}.memory-grid button.lit,.memory-grid button:active{background:var(--pad);color:#071629;box-shadow:0 0 28px color-mix(in srgb,var(--pad) 40%,transparent)}#memory-play{width:100%;min-height:48px}#memory-status{min-height:52px}#quests button:focus-visible,#memory-game button:focus-visible{outline:2px solid white;outline-offset:3px}
@media(max-width:760px){header{padding:0 12px}.brand{font-size:18px}nav{gap:12px}nav button{min-height:44px;font-size:13px}.brand-mark{display:none}#quests{padding:25px 18px}.quest-profile{gap:10px}.quest-profile>strong{font-size:23px}.quest-profile p{font-size:13px}.quest-card{padding:16px}.quest-card h3{font-size:19px}.quest-card-bottom{align-items:flex-start;flex-direction:column}.quest-card button{width:100%}.quest-card-head{gap:8px}#quest-colors{grid-template-columns:1fr}.quest-shortcut{margin-top:10px;min-height:42px}#relay-hud{top:90px;left:15px;transform:none;padding:10px 14px;max-width:140px}#relay-hud strong{font-size:18px}#rank-chip{font-size:12px}.mission.collapsed .quest-shortcut{margin-top:9px}#toast.show{top:auto;bottom:190px}#place{bottom:244px}.mission{width:200px}.memory-grid button{min-height:90px}}

/* Explorer selection */
#characters{width:min(820px,94vw);padding:32px}#characters h2{font-size:36px;margin:14px 0 8px}#characters>p{margin:0 0 23px}.character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.character-card{display:flex;flex-direction:column;overflow:hidden;background:#0d1e34;border:1px solid #476683;border-radius:13px;padding:0;text-align:left;transition:border-color .2s,box-shadow .2s;min-width:0}.character-card:hover{border-color:#8bcfff}.character-card[aria-pressed=true]{border-color:#a5e2ff;box-shadow:0 0 0 1px #a5e2ff,inset 0 0 20px #22679e66}.character-art{display:block;width:100%;aspect-ratio:1;background-image:url('assets/portraits.png');background-size:300% 100%;background-position:var(--portrait-position) center}.character-info{display:grid;gap:8px;padding:18px;width:100%}.character-info>strong{font:500 25px 'Space Grotesk'}.character-info>span{font-size:13px;color:#a4bed7;line-height:1.5}.character-info .character-choice-state{display:block;margin-top:7px;border:1px solid #5c8eae66;border-radius:6px;padding:9px 8px;text-align:center;font-size:14px;color:#c9ebff}.character-card[aria-pressed=true] .character-choice-state{background:#8ed2ff;color:#09223b;border-color:#bdeaff}.character-note{color:#9cb8d1;font-size:13px!important;line-height:1.6;margin:2px 0 0!important}.intro-character{width:100%;margin-top:10px;min-height:44px}#character-button{border:1px solid #659ac54d;padding:9px 13px;border-radius:7px;min-height:40px;white-space:nowrap}#character-button strong{color:#c9eaff;font-weight:500}footer{gap:18px}.character-label{color:#8eabc7}
@media(max-width:760px){#characters{padding:28px 18px}#characters h2{font-size:30px}.character-grid{grid-template-columns:1fr;gap:10px}.character-card{flex-direction:row;align-items:stretch}.character-art{width:106px;min-width:106px;aspect-ratio:1;align-self:stretch;background-size:auto 100%;background-position:var(--portrait-position) center}.character-info{padding:12px;gap:4px}.character-info>strong{font-size:22px}.character-info .character-choice-state{font-size:13px;margin-top:3px;padding:7px 8px}.character-info>span{font-size:12px}#characters>p{font-size:14px;margin-bottom:18px}footer{gap:10px;padding:0 12px}footer .world-tag{font-size:9px}footer .world-tag b{margin-left:4px}.character-label{display:none}#character-button{font-size:13px;padding:8px 11px}.intro{max-height:calc(100dvh - 220px);overflow:auto}}

/* The main site stays one tap away at every screen size. */
nav .main-site-link{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-color:#6eb9ed70;background:#14304a;color:#ccecff;white-space:nowrap}.main-site-destination{display:block;grid-column:1/-1;border:1px solid #5a9fc678;border-radius:10px;padding:20px;background:linear-gradient(120deg,#123650,#0b1c32)}.main-site-destination:hover,nav .main-site-link:hover{background:#214b6d}.quest-main-link{display:block;text-align:center;margin-top:22px;min-height:46px;padding:14px}.dest-grid .main-site-destination span{font-size:12px}.dest-grid .main-site-destination small{font-size:14px}
@media(max-width:760px){header{padding:0 10px}.brand{font-size:16px}nav{gap:8px}nav button{font-size:13px}nav .main-site-link{display:inline-flex;padding:9px 10px;font-size:13px;min-height:44px}.icon-button{margin-left:3px;padding:6px}.main-site-destination{padding:16px}.brand small{font-size:9px;letter-spacing:.15em}}

/* Full supplied artwork, with the entry controls beside it or below on phones. */
#intro.welcome-with-art{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(250px,.9fr);align-items:center;gap:26px;width:min(790px,calc(100vw - 76px));max-width:none;padding:20px;z-index:5;max-height:calc(100dvh - 225px);overflow:auto}.welcome-art{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;border-radius:9px;background:#000}.welcome-content{padding:10px 10px 10px 0}.welcome-content h1{font-size:39px;margin:16px 0}.welcome-content p{margin:0 0 20px}.welcome-content .intro-foot{line-height:1.6}body:not(.started) .mission{display:none}
@media(max-width:760px){#intro.welcome-with-art{top:90px;left:14px;width:calc(100vw - 28px);max-height:calc(100dvh - 156px);grid-template-columns:minmax(0,1fr);gap:14px;padding:16px}.welcome-art{width:100%;height:min(32dvh,285px);aspect-ratio:auto;object-fit:contain}.welcome-content{padding:0}.welcome-content h1{font-size:28px;line-height:1.12;margin:10px 0}.welcome-content h1 br{display:none}.welcome-content h1 em:before{content:' '}.welcome-content p{font-size:14px;line-height:1.55;margin-bottom:13px}.welcome-content .eyebrow{font-size:10px}.welcome-content .primary{min-height:46px;padding:12px 16px}.welcome-content .intro-character{min-height:42px;padding:10px;margin-top:8px}.welcome-content .intro-foot{margin-top:10px}}
