@font-face{font-family:Waypoint;src:url("../art/waypoint.woff2") format("woff2");font-weight:100 900;font-display:swap}
:root{--pixel:Waypoint,"Courier New",monospace;--mono:ui-monospace,"DejaVu Sans Mono",Consolas,monospace;--sans:system-ui,-apple-system,"Segoe UI",sans-serif;--cream:#fff3cf;--orange:#ffac65;--navy:#102d39;--paper:#faefd4;--viewport:100dvh}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#143c4d;font:15px/1.45 var(--sans);color:var(--cream)}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #ffd3a2;outline-offset:4px}h1,h2,h3,p,ol,ul{margin:0}button{color:inherit}button,a,input{-webkit-tap-highlight-color:transparent}[hidden]{display:none!important}
#game{height:var(--viewport);width:100%;position:relative;isolation:isolate;overflow:hidden}.backdrop,#ground,#animation,.map-shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.backdrop{background:#1b8f9f url("art/polar-opening.png") center/cover no-repeat;image-rendering:pixelated}#ground,#animation{image-rendering:pixelated}.map-shade{background:linear-gradient(180deg,#103c4e26,transparent 24%,transparent 72%,#0a354746)}
.sr{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}i[data-ico]{display:inline-flex;align-items:center;justify-content:center;flex:none}i[data-ico] svg{width:1em;height:1em;fill:currentColor;display:block;shape-rendering:crispEdges}
.hud-top{position:absolute;top:max(25px,env(safe-area-inset-top));left:max(30px,env(safe-area-inset-left));right:max(30px,env(safe-area-inset-right));display:flex;justify-content:space-between;align-items:flex-start;gap:18px;pointer-events:none}.hud-top>*{pointer-events:auto}
.identity,.answer-meter,.square,.command,.route-foot,.side-instrument,.instrument-bar,.travel-flash,.mode-label{box-shadow:3px 4px 0 #12364475;--rim:#66818a;border:2px solid #153745;outline:1px solid #ffffff33;outline-offset:-3px}
.identity{background:#163541f5;display:flex;align-items:center;padding:10px 16px 11px 11px;gap:10px;color:var(--cream)}.identity img{height:42px;width:37px;image-rendering:pixelated}.identity h1{font:25px/1.2 var(--pixel);letter-spacing:-.6px}.identity span{color:#ffba79;font:700 10px/1.5 var(--mono);text-transform:uppercase;letter-spacing:2.6px;display:block;margin-top:2px}.top-actions{display:flex;align-items:flex-start;gap:12px}
.answer-meter{padding:9px 12px 10px;background:#183742f5;min-width:129px}.meter-copy{display:flex;align-items:center;justify-content:space-between;gap:18px}.smallcap,.leg-label,.mode-label,.map-coordinates{font:700 10px/1.4 var(--mono);letter-spacing:1.3px;text-transform:uppercase}.meter-copy .smallcap{color:#d9e6df;font-size:9px}.meter-copy b{font:14px/1.25 var(--pixel)}.pips{display:flex;gap:4px;margin-top:5px}.pips i{width:18px;height:7px;background:#304b55;border:1px solid #657c81}.pips i.lit{background:#f6ad6b;border-color:#ffcb91}.tool-group{display:flex;gap:5px}.square{width:40px;height:40px;background:#193843ed;display:inline-grid;place-items:center;font-size:19px;border-radius:0}.square:hover{background:#2e515b;color:#ffd196}
.side-instrument{position:absolute;background:#173945df;left:31px;top:115px;width:43px;height:55px;display:grid;align-content:center;justify-content:center;gap:0;text-align:center}.compass .smallcap{font-size:9px}.compass svg{display:block;width:29px;height:29px}.instrument-bar{position:absolute;right:30px;top:101px;display:flex;gap:12px;align-items:center;padding:7px 10px;background:#143642dc;color:#f8edd0;font:10px/1.2 var(--mono)}.instrument-bar div{display:flex;align-items:center;gap:5px}.instrument-bar div+div{border-left:1px solid #66858c;padding-left:10px}.instrument-bar i{color:#fcb27e;font-size:13px}.instrument-bar b{font-weight:700;color:white}.player-label{position:absolute;left:50%;top:calc(44% + 7px);transform:translateX(-50%);background:#183846ed;color:#fff2c6;font:700 8px var(--mono);letter-spacing:1.5px;padding:3px 5px 3px 7px;outline:1px solid #ece5c4a8;pointer-events:none}
.command{position:absolute;left:50%;bottom:max(84px,11%);transform:translateX(-50%);width:min(565px,calc(100% - 32px));background:var(--navy);color:var(--cream);border:3px solid #0f2a33;outline:none;box-shadow:inset 0 0 0 1px #758c88,inset 0 0 0 4px #1d3943,5px 6px 0 #0e354a70;padding:16px 23px 20px}.command:before,.command:after{content:"";position:absolute;width:3px;height:3px;top:6px;background:#bccab5}.command:before{left:6px}.command:after{right:6px}.command-top{display:flex;justify-content:space-between;align-items:center;min-height:15px}.leg-label{display:inline-flex;gap:7px;align-items:center;font-size:10px;color:#ffc388;line-height:1}.leg-label i{font-size:14px}.help{display:grid;place-items:center;padding:0;background:transparent;color:#bdcfc8;border:0;font-size:16px}.help:hover{color:white}.command h2{font:40px/1.18 var(--pixel);letter-spacing:-.8px;margin:4px 0 5px;text-shadow:0 2px 0 #081b26}.command>p{font:14.5px/1.4 var(--sans);color:#d9e5df;margin:1px 0 14px}
#answer-form{display:flex;align-items:stretch;gap:8px}.entry{display:flex;align-items:center;gap:10px;background:#fff3d9;border:2px solid #f4dfb7;flex:1;min-width:0;box-shadow:inset 0 2px #dfd2b7,0 2px #051e2b;padding:0 12px;color:#836e52}.entry i{font-size:17px}.entry:focus-within{border-color:#ffbf76}.entry input{color:#1c343b;font:15px var(--mono);border:0;outline:none;background:transparent;width:100%;min-width:0;height:43px;padding:0}.entry input::placeholder{color:#736f66;opacity:1}
.travel-btn,.dialog-action{font:17px/1 var(--pixel);background:#ffae69;box-shadow:inset 0 2px 0 #ffd398,0 2px 0 #071f29;border:2px solid #f4ad69;border-bottom-color:#a9693f;color:#27331f;display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:10px 16px}.travel-btn:hover,.dialog-action:hover{background:#ffbf83}.travel-btn i{font-size:18px}.feedback:empty{display:none}.feedback{margin-top:8px;color:#ffcd9c;font-size:13px}
.route-foot{position:absolute;left:50%;transform:translateX(-50%);bottom:max(19px,env(safe-area-inset-bottom));background:#193944e8;width:min(520px,calc(100% - 40px));padding:8px 12px;display:flex;gap:10px;align-items:center;justify-content:center;font:700 10px/1.3 var(--mono);color:#f7eac8}.route-foot>span{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.route-foot i{color:#e9ae74;font-size:13px}.route-scale{flex:1;height:13px;position:relative}.route-base,#route-fill{position:absolute;left:0;top:5px;height:3px;background:#718b90;width:100%}#route-fill{width:0;background:#ffbe7c}.route-scale .tick{position:absolute;top:3px;height:7px;width:3px;background:#9baaa3}.route-scale #route-cursor{position:absolute;left:0;top:2px;margin-left:-3px;width:7px;height:9px;border:1px solid #fff0af;background:#ffa65b;z-index:1}
.map-coordinates{position:absolute;right:29px;bottom:22px;padding:3px 6px;background:#163d49b8;color:#f1efe1;font-size:9px}.travel-flash,.mode-label{position:absolute;left:50%;transform:translateX(-50%);background:#173844ec;padding:7px 13px;top:24%;white-space:nowrap;pointer-events:none}.travel-flash{font:16px var(--pixel)}.mode-label{display:none}.travel-confirm{min-height:45px;display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid #4d6770;padding-top:9px;font:13px var(--mono);color:#f1dfbd}.travel-confirm b{color:#ffbd81}.end-actions{display:flex;gap:10px}.end-actions .dialog-action{font-size:14px;padding:10px 12px}.end-actions .secondary,.secondary{border:1px solid #899b99;background:transparent;color:#f4e8c9;padding:8px 11px;font:600 13px var(--sans)}
dialog{padding:0;max-width:calc(100% - 28px);width:525px;max-height:85dvh;background:#f9efd8;color:#293d40;border:3px solid #153944;box-shadow:5px 6px #102b3480}dialog::backdrop{background:#0b263ab3}.book-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;background:#183844;color:#fff4d5}.book-head h2{font:24px/1.25 var(--pixel);margin:3px 0 0}.book-head .smallcap{color:#ffb77b;font-size:9px}.book-head .square{width:32px;height:32px;background:#274852;color:#f5e6c6}.book-head .square:hover{background:#345862}#book-body{padding:18px 20px}.book-menu{display:grid;gap:8px}.menu-item{display:flex;justify-content:space-between;align-items:center;width:100%;background:#efe2c3;color:#19363e;text-align:left;border:1px solid #acaa93;padding:10px 12px;text-decoration:none;font:16px var(--pixel)}.menu-item:hover{background:#ffe3b6}.menu-item i{font-size:14px}.book-text{font-size:14px;line-height:1.55}.book-text p+p,.book-text ol,.book-text ul{margin-top:9px}.book-text ol,.book-text ul{padding-left:22px}.book-text li{margin:6px 0}.book-text a{color:#195766}.tier-rows{display:grid;gap:4px;margin:12px 0}.tier-rows>div{display:flex;justify-content:space-between;padding:4px 8px;border-bottom:1px solid #c7c2ac;font-size:13px}.book-list{padding:0;list-style:none}.book-list li{padding:8px 0;border-bottom:1px solid #c6c3aa}.book-list b,.book-list small{display:block}.book-list small{color:#51625f;font-size:12px}.book-list details{font-size:12px;margin-top:3px}.book-list summary{cursor:pointer}.dialog-controls{display:flex;gap:10px;margin-top:13px;flex-wrap:wrap}dialog .secondary{color:#1a434b;border-color:#879b94}.book-sub{font:16px/1.3 var(--pixel);margin:12px 0 4px}.book-legs{display:grid;gap:8px}.book-legs details{padding:9px 10px;background:#efe2c6;border:1px solid #bab49e}.book-legs summary{cursor:pointer;font-weight:700}.book-legs p{font:13px/1.5 var(--sans);margin-top:7px}.dialog-intro{font:14px/1.5 var(--sans);margin-bottom:10px}.danger{color:#833d34}
@media(min-width:1550px){.command{width:620px;bottom:12%;padding:22px 27px 25px}.command h2{font-size:45px}}
@media(max-width:760px){.hud-top{top:max(15px,env(safe-area-inset-top));left:14px;right:14px;gap:6px}.identity{gap:5px;padding:7px 10px 7px 7px}.identity img{height:33px;width:29px}.identity h1{font-size:19px}.identity span{font-size:8px;letter-spacing:1.9px}.answer-meter{min-width:95px;padding:6px 7px}.pips{gap:3px}.pips i{width:13px;height:6px}.meter-copy{gap:6px}.meter-copy b{font-size:12px}.meter-copy .smallcap{font-size:8px}.top-actions{gap:6px}.square{width:32px;height:34px;font-size:15px}.tool-group{gap:3px}.instrument-bar{right:14px;top:79px;font-size:9px;gap:5px;padding:5px 7px}.instrument-bar div+div{padding-left:5px}.instrument-bar div{gap:3px}.instrument-bar i{font-size:10px}.side-instrument{left:14px;top:83px;width:34px;height:44px}.compass svg{width:23px;height:23px}.compass .smallcap{font-size:8px}.map-coordinates{display:none}.command{width:min(535px,calc(100% - 28px));bottom:10%;padding:12px 17px 16px}.command h2{font-size:33px}.command>p{font-size:13px;margin-bottom:10px}.entry input{font-size:16px;height:41px}.route-foot{bottom:max(15px,env(safe-area-inset-bottom));font-size:9px;width:min(490px,calc(100% - 26px));gap:7px}.player-label{font-size:7px}}
@media(max-width:400px){.hud-top{left:8px;right:8px}.identity h1{font-size:16px}.identity img{width:26px;height:30px}.identity span{font-size:7px}.answer-meter{min-width:85px}.pips i{width:11px}.square{width:29px;height:32px}.travel-btn{padding:9px 11px;font-size:14px}.command{padding:11px 12px 13px}.route-foot{padding:7px 8px}.entry{padding:0 8px}.entry i{font-size:15px}}
@media(max-height:600px){.command{bottom:55px;padding:9px 14px 12px}.command h2{font-size:27px;margin:2px 0}.command>p{margin-bottom:7px;font-size:13px}.command-top{min-height:12px}.entry input{height:34px}.route-foot{bottom:9px}.hud-top{top:9px}.side-instrument{top:70px}.instrument-bar{top:65px}.player-label{display:none}}
@media(max-height:460px){.route-foot,.side-instrument,.instrument-bar,.map-coordinates{display:none}.command{bottom:10px}.identity img{height:26px;width:24px}.identity h1{font-size:16px}.identity span{font-size:7px}.identity{padding:4px 7px}.travel-flash{top:21%}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
body.keyboard .route-foot,body.keyboard .side-instrument,body.keyboard .instrument-bar,body.keyboard .map-coordinates,body.keyboard .player-label{display:none}body.keyboard .command{bottom:5px;padding:9px 13px 11px}body.keyboard .command h2{font-size:25px;margin:2px 0}body.keyboard .command>p{font-size:12px;margin-bottom:7px}body.keyboard .entry input{height:34px}body.keyboard .hud-top{top:4px}
