@font-face{font-family:PixelDisplay;src:url('./assets/fonts/tiny5.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:PixelUI;src:url('./assets/fonts/pixel-ui.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:InstrumentSans;src:url('./assets/fonts/sans.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:Mono;src:url('./assets/fonts/mono.ttf') format('truetype');font-weight:400 700;font-display:swap}
:root{--bg:#f3f3f5;--ink:#202025;--muted:#909097;--line:#d3d3d9;--sans:InstrumentSans,Arial,sans-serif;--mono:Mono,monospace;color-scheme:light}
*{box-sizing:border-box;margin:0}html,body{height:100%;width:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);overflow:hidden;-webkit-font-smoothing:antialiased}button,input,a{-webkit-tap-highlight-color:transparent}button{border:0;background:none;color:inherit;font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{opacity:.35;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,.stage:focus-visible{outline:1px dashed #666;outline-offset:5px}.defs{position:absolute;width:0;height:0;overflow:hidden}.ico{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter;flex:none;vertical-align:middle}button .ico{pointer-events:none}[hidden]{display:none!important}
.hero{height:100dvh;min-height:500px;width:100%;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 57%,#fafafa 0,#f4f4f6 48%,#e9e9ed 100%);transition:background .5s}.hero[data-light=dusk]{background:radial-gradient(ellipse at 50% 57%,#fffaf3,#f3ece6 65%,#e9e4e0)}#gl{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}.stage{position:absolute;left:24%;right:24%;top:12%;bottom:15%;z-index:3;cursor:grab;touch-action:none;outline-offset:-10px}.stage.dragging{cursor:grabbing}.game-header{position:absolute;top:30px;left:32px;right:32px;display:flex;justify-content:space-between;align-items:flex-start;gap:25px;z-index:8}.game-brand{display:flex;align-items:flex-start;gap:11px;white-space:nowrap}.brand-glyph{font:400 38px/.7 PixelDisplay,monospace;color:#141417}.game-brand>span:last-child{font:400 10px/1.3 PixelUI,monospace;letter-spacing:2px}.game-brand small{display:block;font:400 4px/1.5 Mono,monospace;letter-spacing:1.5px;color:#92929a;margin-top:8px}.game-nav{display:flex;gap:25px;align-items:center;padding-top:3px}.game-nav button{position:relative;display:flex;align-items:center;gap:6px;font:500 6px/1.5 Mono,monospace;letter-spacing:1.3px;white-space:nowrap;padding:0 0 8px;color:#62626a}.game-nav .ico{width:9px;height:9px}.game-nav button:hover,.game-nav button.active{color:#08080b}.game-nav button.active:after{content:'';position:absolute;left:0;right:0;bottom:0;border-bottom:1px dotted #111}.game-nav button:hover:after{content:'';position:absolute;left:0;right:0;bottom:0;border-bottom:1px dotted #888}
.game-menu{position:absolute;left:32px;top:37.5%;width:clamp(180px,16vw,235px);z-index:7}.game-menu h1{font:400 12px/1.3 PixelUI,monospace;letter-spacing:3px;background:#101014;color:#fff;padding:15px 13px 15px 15px;box-shadow:3px 4px 0 #c8c8cf;min-height:45px;white-space:nowrap;margin-bottom:18px}.game-menu nav{display:grid;justify-items:start;gap:7px}.game-menu nav button{font:500 7px/1.5 Mono,monospace;letter-spacing:1.6px;color:#64646d;display:flex;align-items:center;gap:12px;padding:5px 7px;min-height:25px;white-space:nowrap;position:relative;transition:background .15s,color .15s}.game-menu nav button>span{font-size:6px;letter-spacing:1px;color:#b1b1ba}.game-menu nav button.selected{background:#dedee2;color:#1b1b20;border-bottom:1px solid #81818a}.game-menu nav button.selected>span{color:#62626c}.game-menu nav button.selected .ico{margin-left:7px;width:10px;height:10px}.game-menu nav button:hover{color:#000;background:#e2e2e6}.menu-note{font:400 4px/2 Mono,monospace;letter-spacing:1.2px;color:#b3b3bb;margin:24px 0 0 7px}
.character-hud{position:absolute;right:32px;top:19%;width:158px;z-index:7;border:1px solid #d2d2d9;background:#f4f4f77a;padding:14px 13px 13px;backdrop-filter:blur(2px);pointer-events:auto}.hud-kicker{font:400 5px/1.7 Mono,monospace;letter-spacing:1.2px;color:#898993}.hud-name{font:400 21px/.95 PixelDisplay,monospace;letter-spacing:1px;margin:3px 0 9px;color:#2b2b34}.hud-description{font:400 6px/1.65 Mono,monospace;letter-spacing:.2px;color:#92929c;margin:10px 0 0}.hud-row{position:relative;display:flex;flex-direction:column;gap:3px;padding:8px 10px 0 0;border-top:1px solid #d8d8df;margin-top:8px;font:400 5px/1.5 Mono,monospace;letter-spacing:1.1px;color:#9c9ca6}.hud-row:after{content:'';position:absolute;right:-4px;top:10px;width:7px;height:5px;border-top:1px solid #c1c1cc;border-right:1px solid #c1c1cc}.hud-row strong,.hud-row b{font-weight:500;font-size:6px;letter-spacing:1px;color:#454550}.hud-portrait{width:26px;height:26px;object-fit:contain;float:left;margin:0 8px 7px -3px}.game-token{position:absolute;right:26%;bottom:20%;width:18px;height:18px;z-index:4;transform:rotate(-15deg);animation:token-drift 5s ease-in-out infinite;pointer-events:none}.game-token i{position:absolute;left:4px;top:0;width:10px;height:18px;background:#f18a69;box-shadow:4px 4px 0 #c26857,-3px 3px 0 #f8b68d}.game-token b{position:absolute;left:2px;bottom:-12px;width:28px;height:5px;border-radius:50%;background:#85858d16;filter:blur(2px);transform:rotate(15deg)}.hero[data-companion=keeper] .game-token i{background:#82c4ae;box-shadow:4px 4px 0 #5c9c8d,-3px 3px 0 #bbe3c5}.hero[data-companion=mender] .game-token i{background:#ac91df;box-shadow:4px 4px 0 #7c67af,-3px 3px 0 #ddc7fa}.hero[data-companion=wisp] .game-token i{background:#7bb9e2;box-shadow:4px 4px 0 #5b86be,-3px 3px 0 #b4dff9}.hero[data-companion=sprig] .game-token i{background:#e3c55f;box-shadow:4px 4px 0 #b99c40,-3px 3px 0 #f7e5a4}
.current-mission{position:absolute;left:32px;bottom:29px;z-index:6;width:230px}.mission-index{display:block;font:400 5px/1.3 Mono,monospace;color:#9696a1;letter-spacing:1.2px;margin-bottom:6px}.mission-inner{display:grid;grid-template-columns:57px minmax(0,1fr);background:#eeeef290;border:1px solid #d5d5dd;min-height:65px}.mission-inner>img{height:63px;width:56px;object-fit:contain;background:#e5e5ec;border-right:1px solid #d5d5dd}.mission-inner>div{padding:11px 9px 7px;min-width:0}.mission-inner>div>span{font:400 4px Mono,monospace;letter-spacing:1px;color:#9797a2;display:block}.mission-inner strong{font:500 6px/1.7 Mono,monospace;letter-spacing:1px;display:block;margin-top:5px;text-transform:uppercase;color:#565661}.mission-inner small{font:400 3px/1.5 Mono,monospace;letter-spacing:.7px;color:#b0b0ba;display:block;margin-top:6px}.character-navigation{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);display:flex;align-items:flex-end;gap:14px;z-index:7}.character-navigation>button{font:400 15px Mono,monospace;color:#b1b1bc;width:22px;height:29px}.character-navigation>button:hover{color:#111}.character-navigation>div>p{font:400 5px/1.7 Mono,monospace;letter-spacing:1px;color:#85858f;text-align:center;margin-bottom:12px;white-space:nowrap}.companion-dock{display:flex;align-items:center;justify-content:center;gap:7px}.companion-choice{width:31px;height:34px;position:relative;border-bottom:1px solid transparent;transition:transform .18s,opacity .18s;opacity:.46}.companion-choice img{width:31px;height:31px;object-fit:contain;display:block}.companion-choice.active,.companion-choice[aria-pressed=true]{opacity:1;border-color:#787882}.companion-choice:hover{opacity:1;transform:translateY(-3px)}.screen-note{position:absolute;bottom:17px;left:50%;transform:translateX(-50%);z-index:6;pointer-events:none;font:400 3px/1.4 Mono,monospace;letter-spacing:1px;color:#b5b5bf;white-space:nowrap}.screen-note>span{margin-left:16px}.loader{position:absolute;inset:0;display:grid;align-content:center;justify-items:center;gap:15px;opacity:0;pointer-events:none;transition:opacity .3s}.loader.show{opacity:1}.loader span{width:18px;height:18px;border:1px solid #d3d3dc;border-top-color:#666;animation:spin 1.2s steps(8,end) infinite}.loader p{font:400 5px Mono,monospace;letter-spacing:2px;color:#8c8c98}.fallback{position:absolute;inset:15%;display:grid;align-content:center;text-align:center;z-index:6;color:#8b8b98}.fallback h2{font:400 30px PixelDisplay,monospace}.fallback p{font:400 10px/1.6 InstrumentSans,sans-serif;margin-top:12px}
.screen-dialog{position:fixed;width:min(700px,calc(100vw - 40px));max-width:none;max-height:calc(100dvh - 50px);margin:auto;padding:26px;background:#f6f6f8;border:1px solid #c5c5d0;box-shadow:5px 7px 0 #18182018;color:#363640;overflow:auto;scrollbar-width:thin}.screen-dialog::backdrop,.agent-desk::backdrop{background:#45455338;backdrop-filter:blur(5px)}.dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:25px;border-bottom:1px solid #d6d6df;padding-bottom:20px;margin-bottom:23px}.dialog-kicker{font:400 5px/1.8 Mono,monospace;letter-spacing:1.6px;color:#9a9aa5}.dialog-heading h2{font:400 35px/.95 PixelDisplay,monospace;letter-spacing:-.4px;margin-top:8px}.dialog-close{font:400 24px/.8 Mono,monospace;color:#9696a2;padding:0 0 6px 8px}.dialog-close:hover{color:#111}.roster-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.roster-card{position:relative;border:1px solid #d6d6df;background:#f0f0f4;text-align:left;padding:14px;display:flex;flex-direction:column;min-width:0;transition:background .2s,border .2s}.roster-card:hover,.roster-card.active,.roster-card[aria-pressed=true]{background:#e8e8f0;border-color:#9393a5}.roster-number{font:400 5px Mono,monospace;color:#aaaab6;letter-spacing:1px}.roster-card img{align-self:center;width:100%;max-width:140px;height:118px;object-fit:contain;margin:5px 0 8px}.roster-card strong{font:400 28px/.9 PixelDisplay,monospace}.roster-card small{font:400 7px/1.6 Mono,monospace;color:#9393a0;margin-top:7px}.roster-select{font:400 4px/1.7 Mono,monospace;letter-spacing:1.5px;color:#aaaab6;margin-top:15px}.settings-dialog{max-width:490px}.settings-list{display:grid}.settings-list>button{display:flex;justify-content:space-between;align-items:center;gap:20px;text-align:left;padding:16px 0;border-bottom:1px solid #dcdce4}.settings-list>button>span{font:400 5px/1.7 Mono,monospace;letter-spacing:1.2px;color:#aaaab5}.settings-list>button>b{display:flex;align-items:center;gap:12px;font:450 11px/1.5 InstrumentSans,sans-serif;font-weight:400;color:#777785}.settings-list>button:hover>b{color:#111}.settings-list>button[aria-pressed=true]>b{color:#24242f}.settings-list>button[aria-pressed=true]>b:before{content:'✓';font:400 9px Mono,monospace}.settings-note{font:400 9px/1.7 InstrumentSans,sans-serif;color:#a0a0ac;margin-top:20px;max-width:330px}.notes-dialog>p{font:400 12px/1.7 InstrumentSans,sans-serif;color:#8d8d9b;max-width:510px}.guide-crew{margin:24px 0;display:grid;gap:15px}.guide-crew>div{display:grid;grid-template-columns:70px minmax(0,1fr);gap:15px;border-bottom:1px solid #e0e0e7;padding-bottom:13px}.guide-crew dt{font:400 24px/.9 PixelDisplay,monospace}.guide-crew dd{font:400 11px/1.7 InstrumentSans,sans-serif;color:#9696a3}.notes-dialog .product-note{font-size:9px;color:#b3b3bd}.toast{position:fixed;bottom:19px;left:50%;transform:translate(-50%,12px);background:#22222a;color:#fff;font:400 10px/1.6 InstrumentSans,sans-serif;padding:11px 17px;max-width:calc(100vw - 30px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:50}.toast.show{opacity:1;transform:translate(-50%,0)}
/* Useful local tools remain available behind the title-screen menu. */
.agent-desk{--bg:#eeeeF2;--panel:#f8f8fa;--ink:#484855;--muted:#9c9caa;--line:#d2d2dd;--accent:#32323e;--chip:#e2e2eb;--sans:InstrumentSans,Arial,sans-serif;--mono:Mono,monospace;--pixel:PixelDisplay,monospace;--pixel-ui:Mono,monospace;background:var(--panel);border:1px solid #bfbfcd;box-shadow:5px 7px 0 #18182018;border-radius:0}.desk-chrome{background:var(--panel)}.desk-head h2{font:400 33px/.95 PixelDisplay,monospace;letter-spacing:-.5px}.desk-kicker{font:400 6px Mono,monospace;color:#9696a5;letter-spacing:1.4px}.desk-close{font:400 8px Mono,monospace;color:#9b9ba9}.desk-tabs button{font:400 22px PixelDisplay,monospace;color:#9b9bab}.desk-tabs button[aria-selected=true]{background:#e7e7ef;color:#454553}.desk-tabs button:hover{background:#eaeaf1}.desk-unit-image{width:39px;height:39px;display:grid;place-items:center}.desk-unit-image img{width:100%;height:100%;object-fit:contain}.desk-portrait{background:#ededf3;border-color:#d8d8e2;box-shadow:none}.desk-portrait .desk-unit-image{width:100%;height:100%}.desk-tool-intro h3{font:400 27px/.95 PixelDisplay,monospace}.desk-form-section h3,.desk-list-head h4{font:400 23px/.95 PixelDisplay,monospace}.desk-field input,.desk-field textarea{background:#fff;border-color:#d1d1de;color:#656574;box-shadow:none}.desk-field input:hover,.desk-field textarea:hover{border-color:#a4a4b5}.desk-field input[aria-invalid=true],.desk-field textarea[aria-invalid=true]{background:#fff4f4;border-color:#cc9ca9}.desk-primary{background:#30303d;border-color:#30303d;color:#f8f8fa;box-shadow:2px 3px 0 #d0d0dc;font:400 20px/1 PixelDisplay,monospace}.desk-primary:hover{background:#525264}.desk-secondary{font:400 17px/1 PixelDisplay,monospace}.desk-secondary:hover{background:#e2e2ed;border-color:#b0b0c4}.desk-payment summary,.desk-journal summary{font:400 22px/.95 PixelDisplay,monospace}.desk-result{color:#858596;font:400 10px/1.8 Mono,monospace}.desk-tool-intro p,.desk-empty,.desk-section-note,.desk-footer p{color:#a1a1b0}.desk-footer{background:#eeeef4}.desk-footer strong{font-size:7px}.desk-mode,.desk-local-tag{font-size:6px}.desk-text-button{color:#9292a6}
@keyframes token-drift{0%,100%{transform:translateY(0) rotate(-15deg)}50%{transform:translateY(-11px) rotate(-8deg)}}@keyframes spin{to{transform:rotate(360deg)}}
@media(min-width:1550px){.game-header{top:36px;left:40px;right:40px}.game-menu{left:40px}.character-hud{right:40px;width:180px;padding:17px}.hud-name{font-size:24px}.hud-row{font-size:6px}.hud-row strong,.hud-row b{font-size:7px}.current-mission{left:40px;bottom:35px;width:255px}.game-nav{gap:30px}.game-nav button{font-size:7px}.game-menu h1{font-size:13px;padding:17px}.game-menu nav button{font-size:8px;padding-top:7px;padding-bottom:7px}.character-navigation{bottom:55px}.companion-choice,.companion-choice img{width:37px;height:37px}}
@media(max-width:1050px) and (min-width:701px){.game-header{left:25px;right:25px;top:27px}.game-brand>span:last-child{font-size:9px}.game-nav{gap:18px}.game-nav button{font-size:5px;letter-spacing:.9px}.game-menu{left:25px;width:170px}.game-menu h1{font-size:10px;padding:14px 11px;letter-spacing:2px}.game-menu nav button{font-size:6px;gap:9px;letter-spacing:1.2px;padding-left:5px}.character-hud{right:25px;width:137px;padding:12px}.hud-name{font-size:19px}.hud-row{font-size:4px}.hud-row strong,.hud-row b{font-size:5px}.hud-description{font-size:5px}.current-mission{left:25px;width:207px}.mission-inner>div{padding:9px 7px}.mission-inner strong{font-size:5px}.character-navigation{gap:9px;bottom:40px}.companion-dock{gap:5px}.companion-choice,.companion-choice img{width:27px;height:29px}.character-navigation>div>p{font-size:4px}.stage{left:22%;right:21%;top:13%;bottom:16%}.game-token{right:24%;bottom:23%}}
@media(max-width:700px){.hero{min-height:600px}.game-header{left:21px;right:20px;top:22px;gap:15px;align-items:flex-start}.game-brand{gap:7px}.brand-glyph{font-size:29px}.game-brand>span:last-child{font-size:7px;letter-spacing:1.4px}.game-brand small{font-size:3px;letter-spacing:.7px;margin-top:6px}.game-nav{gap:14px;padding-top:1px}.game-nav button{font-size:4px;letter-spacing:.7px;gap:4px;padding-bottom:7px}.game-nav button>.ico{width:10px;height:10px}.game-nav #home-nav,.game-nav #guide-open{display:none}.game-nav #settings-open span{display:none}.stage{left:4%;right:4%;top:8%;bottom:31%;z-index:3}.game-menu{left:23px;top:auto;bottom:130px;width:180px}.game-menu h1{font-size:10px;letter-spacing:2px;padding:12px 11px;min-height:36px;box-shadow:2px 3px 0 #c8c8cf;margin-bottom:12px}.game-menu nav{gap:3px}.game-menu nav button{font-size:6px;min-height:23px;padding:4px 5px;letter-spacing:1px;gap:10px}.game-menu nav button>span{font-size:5px}.game-menu nav button.selected .ico{width:8px;height:8px;margin-left:4px}.menu-note{display:none}.character-hud{top:83px;right:21px;width:111px;padding:10px;z-index:6;background:#f4f4f75c}.hud-kicker{font-size:4px;letter-spacing:.7px}.hud-name{font-size:18px;margin:3px 0 6px}.hud-row{padding-top:6px;margin-top:6px;font-size:3px;gap:2px}.hud-row strong,.hud-row b{font-size:4px;letter-spacing:.7px}.hud-row:nth-of-type(n+4){display:none}.hud-description{display:none}.hud-portrait{width:21px;height:21px;margin-right:6px}.game-token{right:13%;bottom:35%;width:13px;height:13px;transform:scale(.8) rotate(-15deg)}.game-token i{width:7px;height:13px}.current-mission{left:23px;bottom:24px;width:182px}.mission-index{font-size:4px;margin-bottom:5px;letter-spacing:1px}.mission-inner{grid-template-columns:43px minmax(0,1fr);min-height:53px}.mission-inner>img{width:42px;height:52px}.mission-inner>div{padding:8px 7px 6px}.mission-inner>div>span{font-size:3px;letter-spacing:.6px}.mission-inner strong{font-size:4px;letter-spacing:.6px;line-height:1.7;margin-top:5px}.mission-inner small{font-size:2.5px;letter-spacing:.3px;margin-top:4px}.character-navigation{left:auto;right:21px;bottom:29px;transform:none;gap:4px;align-items:flex-end}.character-navigation>button{font-size:11px;width:10px;height:23px}.character-navigation>div>p{font-size:3px;letter-spacing:.3px;white-space:normal;max-width:128px;margin-bottom:7px;line-height:1.7}.companion-dock{gap:3px}.companion-choice,.companion-choice img{width:17px;height:22px}.screen-note{left:auto;right:22px;bottom:14px;transform:none;font-size:2px;letter-spacing:.4px}.screen-note>span{display:none}.screen-dialog{width:calc(100vw - 28px);max-height:calc(100dvh - 28px);padding:22px 18px}.dialog-heading{padding-bottom:17px;margin-bottom:20px;gap:15px}.dialog-kicker{font-size:4px;letter-spacing:1px}.dialog-heading h2{font-size:29px}.dialog-close{font-size:21px}.roster-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.roster-card{padding:11px}.roster-card img{height:95px}.roster-card strong{font-size:27px}.roster-card small{font-size:6px}.roster-select{font-size:3px;margin-top:12px}.settings-list>button{gap:15px;padding:16px 0}.settings-list>button>span{font-size:4px;letter-spacing:.8px}.settings-list>button>b{font-size:10px;gap:8px}.settings-note{font-size:9px}.guide-crew{gap:12px;margin:20px 0}.guide-crew>div{grid-template-columns:50px minmax(0,1fr);gap:15px}.guide-crew dt{font-size:22px}.guide-crew dd{font-size:10px}.notes-dialog>p{font-size:11px}.notes-dialog .product-note{font-size:8px}.desk-head h2{font-size:29px}.desk-tabs button{font-size:19px}.desk-unit-image{width:30px;height:30px}.desk-tool-intro h3{font-size:24px}.desk-primary{font-size:19px}.desk-secondary{font-size:16px}}
@media(max-width:370px){.game-header{left:18px;right:18px}.game-nav{gap:10px}.game-brand>span:last-child{font-size:6px}.game-brand small{font-size:2.5px}.game-menu{left:20px;bottom:123px;width:162px}.game-menu h1{font-size:9px;letter-spacing:1.6px}.game-menu nav button{font-size:5px;letter-spacing:.8px}.current-mission{left:20px;bottom:23px;width:165px}.character-hud{right:18px;width:101px}.character-navigation{right:17px;gap:2px}.companion-dock{gap:2px}.companion-choice,.companion-choice img{width:15px;height:19px}.character-navigation>div>p{max-width:107px}.character-navigation>button{width:8px}.mission-inner strong{font-size:3.5px}}
@media(max-height:690px) and (min-width:701px){.game-header{top:22px}.game-menu{top:35%;width:185px}.game-menu h1{padding:12px;font-size:10px;min-height:37px;margin-bottom:12px}.game-menu nav{gap:3px}.game-menu nav button{font-size:6px;padding-top:3px;padding-bottom:3px;min-height:22px}.menu-note{margin-top:15px;font-size:3px}.character-hud{top:18%;width:135px;padding:11px}.hud-name{font-size:18px}.hud-row{padding-top:6px;margin-top:6px;font-size:4px}.hud-row strong,.hud-row b{font-size:5px}.hud-description{font-size:5px}.current-mission{bottom:20px;width:210px}.character-navigation{bottom:33px}.screen-note{bottom:10px}.stage{top:10%;bottom:14%}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
