@charset "UTF-8";
:root{color-scheme:dark;--ink:#f0f0da;--muted:#b3cbc3;--green:#bdd4b0;--deep:#12363b;--line:rgba(210,233,213,.22);font-family:Arial,Helvetica,sans-serif;font-size:14px;font-synthesis:none}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#174c57;color:var(--ink)}button,input,select{font:inherit}button{cursor:pointer;color:inherit;border:0}button:disabled{cursor:default;opacity:.45}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #efe0a4;outline-offset:5px}button:active{transform:translateY(1px)}button{transition:background .18s,color .18s,opacity .18s}button:hover{filter:brightness(1.13)}#view{display:block;width:100%;height:100%;touch-action:none}#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 42%,rgba(3,29,32,.2));z-index:1}.hidden{display:none!important}.wordmark{font-size:10px;letter-spacing:.25em;font-weight:700}.eyebrow{font-size:10px;font-weight:700;letter-spacing:.19em;line-height:1.6;color:#c9d9c5}.screen{position:fixed;inset:0;z-index:5}.primary{padding:17px 24px;background:#e5e8cb;color:#1d3d3c;min-height:54px;text-align:left;display:inline-flex;gap:42px;align-items:center;justify-content:space-between;font-size:13px;font-weight:600;border-radius:2px}.primary span{font-size:22px;font-weight:400}.text-button{background:none;padding:12px 0;font-size:13px;text-align:left}.text-button:hover{color:#fff2b0}.text-button.small{font-size:11px}.title-top{display:flex;justify-content:space-between;position:absolute;top:5.2vh;left:5vw;right:5vw}.edition{font-size:9px;letter-spacing:.23em;color:#dce5d5}.title-copy{position:absolute;left:7.7vw;top:25vh;max-width:570px}.title-copy .eyebrow{margin:0 0 23px;color:#d6debb}h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:clamp(90px,11.7vw,185px);letter-spacing:-.065em;line-height:.8;margin:0 0 32px}h1 span{display:block;font-family:Arial,Helvetica,sans-serif;letter-spacing:.01em;font-size:clamp(14px,1.2vw,18px);margin:34px 0 0;font-weight:400}#title{background:linear-gradient(90deg,rgba(8,39,43,.65),rgba(7,32,36,.13) 49%,transparent 75%)}.intro{font-size:14px;line-height:1.9;color:#c7d9ce;margin:0 0 31px}.title-actions{display:flex;align-items:center;gap:29px}.title-bottom{position:absolute;bottom:4.5vh;left:5vw;right:5vw;display:flex;align-items:center;justify-content:space-between}.title-bottom>span{font-size:8px;letter-spacing:.18em;color:#b8cfc5}#loading{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#163c40}#loading h1{font-size:108px;margin:38px 0 32px}#loading p{color:#a6c6bd;font-size:12px}.load-line{width:190px;height:1px;background:#365959;margin-top:24px;overflow:hidden}.load-line i{display:block;width:45%;height:100%;background:#d8dfbc;animation:load 2.2s ease-in-out infinite}@keyframes load{from{transform:translateX(-120%)}to{transform:translateX(330%)}}
#hud{position:fixed;inset:0;z-index:3;pointer-events:none;text-shadow:0 2px 12px #12383977}.hud-top{position:absolute;left:max(32px,3.2vw);right:max(32px,3.2vw);top:max(28px,4vh);display:flex;align-items:flex-start;justify-content:space-between}.location .wordmark{font-size:8px;letter-spacing:.23em;opacity:.77}.location h2{font:400 clamp(22px,2vw,31px)/1.2 Georgia,serif;letter-spacing:-.025em;margin:12px 0 7px}.location p{font-size:11px;color:#c2d6c9;margin:0}.chart-button{pointer-events:auto;background:rgba(13,47,49,.32);border:1px solid rgba(208,230,211,.16);padding:12px 15px;display:flex;gap:12px;align-items:center;font-size:11px;backdrop-filter:blur(8px);border-radius:2px}.chart-icon{font-size:17px}kbd{font:inherit;font-size:9px;border:1px solid rgba(223,235,217,.25);padding:2px 5px;border-radius:3px;color:#e0e9d6}#objective{position:absolute;left:max(32px,3.2vw);top:calc(4vh + 115px);width:235px;background:linear-gradient(90deg,rgba(11,40,43,.45),transparent);padding:13px 16px 13px 0;border-top:1px solid var(--line)}#objective .eyebrow{font-size:8px}.objective-line{display:flex;gap:15px;justify-content:space-between;margin-top:7px;font-size:12px;line-height:1.5}#distance{white-space:nowrap;color:#c4d9b8}.settle-track{height:2px;background:rgba(208,230,211,.12);margin-top:13px}.settle-track i{display:block;height:100%;background:#d9deb7;width:0;transition:width .2s linear}#school-readout{font-size:9px;letter-spacing:.035em;color:#bed2c6;margin:9px 0 0}.hud-bottom{position:absolute;left:max(32px,3.2vw);right:max(32px,3.2vw);bottom:max(24px,4vh);display:flex;align-items:flex-end;justify-content:space-between}.instruments{display:flex;gap:26px}.instruments>span{display:flex;flex-direction:column;gap:6px}.instruments strong{font-family:Georgia,serif;font-size:26px;font-weight:400;font-variant-numeric:tabular-nums}.instruments small{font-size:7px;letter-spacing:.17em;color:#c3d4c8}.actions{display:flex;gap:25px}.actions>div{display:flex;gap:12px;position:relative;align-items:center;opacity:.7}.actions>div.active{opacity:1;color:#fff1b1}.actions .action-glyph{font-size:29px;font-family:Georgia,serif}.actions strong{font-size:10px;font-weight:400;display:block;margin-bottom:6px}.actions small{font-size:7px;letter-spacing:.06em;color:#b7ccc3}.actions kbd{font-size:8px}#lure-charge{position:absolute;bottom:-9px;left:39px;width:75%;height:1px;background:#d0d9a5;transform-origin:left}#crosshair{position:absolute;top:50%;left:50%;width:4px;height:4px;border:1px solid #e3eacf65;border-radius:50%;transform:translate(-50%,-50%)}#crosshair.acting{width:18px;height:18px;border-color:#e4e8b46e;transition:all .18s}#destination-label{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%,-50%);opacity:.8}#destination-label span{font-size:25px;font-weight:300;color:#e0e6b8}#destination-label small{font-size:7px;letter-spacing:.16em}#hint{position:absolute;left:50%;bottom:18%;transform:translateX(-50%);max-width:460px;width:calc(100% - 70px);display:flex;align-items:flex-start;gap:18px;padding:13px 18px;border:1px solid #c1d6bc22;border-radius:2px;background:#123a3cc4;backdrop-filter:blur(9px);pointer-events:auto}#hint p{font-size:12px;line-height:1.6;color:#d5e2cc;margin:0}#hint button{background:none;font-size:20px;color:#b8c6b8;padding:0}#lock-hint{position:absolute;top:50%;left:50%;transform:translate(-50%,26px);font-size:10px;color:#dae2c8;white-space:nowrap}#toast{position:fixed;z-index:40;left:50%;top:8%;transform:translate(-50%,-15px);padding:13px 21px;background:#143d40e8;border:1px solid #c7d5bd33;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;font-size:12px;max-width:80vw;text-align:center;line-height:1.5}#toast.visible{opacity:1;transform:translate(-50%,0)}
#modal-shade{position:fixed;inset:0;background:rgba(7,29,33,.38);z-index:10;backdrop-filter:blur(5px)}#panel{position:fixed;top:0;right:0;bottom:0;z-index:11;width:min(580px,100%);background:rgba(13,44,47,.96);border-left:1px solid #bbd3c41f;padding:30px 40px;overflow-y:auto;scrollbar-color:#62817b transparent}.panel-head{display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid var(--line)}.close{background:none;font-size:30px;font-weight:200;line-height:1;padding:0 0 0 20px;color:#c2d8c9}#panel-content h2{font:400 43px/1.08 Georgia,serif;letter-spacing:-.03em;margin:29px 0 14px}#panel-content .lede{font-size:12px;color:#b1c9bf;line-height:1.8;margin:0 0 23px}.chart-map{width:100%;aspect-ratio:1.45;border:1px solid var(--line);background:#193f42;margin-bottom:24px}.map-contour{fill:none;stroke:#698a7933;stroke-width:1}.map-route{fill:none;stroke:#c5d4ab77;stroke-width:1;stroke-dasharray:3 4}.map-label{font:8px Arial;letter-spacing:.5px;fill:#bbcdbd}.map-point{fill:#bccc9c;stroke:#21484a;stroke-width:3}.map-point.locked{fill:#385958}.map-num{fill:#16383a;font:8px Arial;text-anchor:middle;dominant-baseline:central}.routes{border-top:1px solid var(--line)}.route-row{display:grid;grid-template-columns:30px 1fr 22px;width:100%;gap:12px;background:none;text-align:left;padding:16px 0;border-bottom:1px solid var(--line);align-items:center}.route-index{font-size:10px;color:#a6bdb0}.route-row strong{display:block;font-family:Georgia,serif;font-weight:400;font-size:20px;margin-bottom:5px}.route-row small{font-size:9px;color:#a4c1b5}.route-row .status{font-size:16px;color:#d3dda9}.route-row:disabled{opacity:.35}.route-row.selected{color:#f3eab6}.panel-nav{display:flex;gap:24px;flex-wrap:wrap;margin-top:22px}.panel-nav button{font-size:11px;color:#b7cbbd;background:none;padding:4px 0}.route-summary{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:20px 0;margin:22px 0}.route-summary p{font-size:12px;line-height:1.8;color:#c0d1c3}.route-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0}.route-summary dt{font-size:8px;letter-spacing:.13em;color:#97b4a7;margin-bottom:6px}.route-summary dd{margin:0;font-family:Georgia,serif;font-size:20px}.panel-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.settings-group{margin:25px 0}.settings-group h3{font-size:10px;letter-spacing:.16em;font-weight:400;color:#dbdfbe;border-bottom:1px solid var(--line);padding-bottom:13px}.setting{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 0;font-size:12px}.setting small{display:block;color:#91b0a4;font-size:10px;line-height:1.55;margin-top:6px;max-width:280px}.setting select{background:#234a4c;border:1px solid var(--line);padding:9px;color:#e1e8d6;font-size:11px}.setting input[type=range]{width:135px;accent-color:#d4dab3}.setting input[type=checkbox]{width:18px;height:18px;accent-color:#c4d5b0;flex-shrink:0}.bind{background:#294e4d;border:1px solid var(--line);min-width:72px;padding:9px;font-size:10px}.save-note{font-size:10px;line-height:1.65;color:#97b7a9;margin-top:20px}.guide-item{padding:20px 0;border-bottom:1px solid var(--line)}.guide-item h3{font:400 24px Georgia,serif;margin:0 0 9px}.guide-item p{font-size:12px;color:#b8cec0;line-height:1.8;margin:0}.credits{font-size:12px;line-height:1.8;color:#b8cec0}.credits a{color:#e4e6bb}#celebration{position:fixed;inset:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(0deg,#113e42d9,transparent 85%);text-align:center;padding:30px}#celebration h2{font:400 clamp(42px,5vw,74px)/1.1 Georgia,serif;letter-spacing:-.045em;margin:18px 0}#celebration>p:not(.eyebrow){font-size:14px;line-height:1.8;max-width:480px;color:#d1e1ce}.completion-detail{font-size:10px;letter-spacing:.1em;color:#b6cdb9;margin:15px 0 32px}.completion-actions{display:flex;gap:28px;align-items:center}#touch-controls,#touch-menu{display:none}#touch-controls{position:fixed;inset:0;pointer-events:none;z-index:4}#joystick{position:absolute;left:24px;bottom:95px;width:108px;height:108px;border:1px solid #d1e1c93a;border-radius:50%;pointer-events:auto;background:#173f431c;touch-action:none}#joystick i{position:absolute;width:42px;height:42px;left:32px;top:32px;border-radius:50%;background:#d7dfbd40;border:1px solid #d7dfbd55}#touch-look{position:absolute;right:0;top:20%;width:48%;height:48%;pointer-events:auto;touch-action:none}.touch-actions{position:absolute;right:23px;bottom:84px;display:grid;grid-template-columns:48px 48px;gap:9px;pointer-events:auto}.touch-actions button{background:#234f5099;border:1px solid #cbd9b83b;border-radius:50%;width:48px;height:48px;font-size:10px;touch-action:none}.touch-actions button.held{background:#829a6a99}
@media(max-width:720px){.title-copy{left:8vw;top:25vh}.title-copy h1{font-size:112px}.title-top{top:30px;left:8vw;right:8vw}.title-bottom{left:8vw;right:8vw;bottom:25px}.title-bottom>span{display:none}.title-actions{gap:20px}.primary{padding:15px 19px;gap:24px}.title-copy .eyebrow{font-size:8px}#panel{padding:25px}.hud-top{top:23px;left:23px;right:23px}.location h2{font-size:23px}.chart-button{padding:10px;font-size:0}.chart-button kbd{display:none}.chart-icon{font-size:20px}.hud-bottom{left:23px;right:23px;bottom:25px}.actions{gap:17px}.actions strong{font-size:8px}.actions small{font-size:6px}.actions .action-glyph{display:none}.instruments{gap:19px}.instruments strong{font-size:22px}.instruments .heading{display:none}#objective{left:23px;top:129px;width:205px}.completion-actions{flex-direction:column;gap:10px}#hint{bottom:23%;max-width:340px;font-size:11px}.setting input[type=range]{width:105px}}
@media(pointer:coarse){#touch-controls:not(.hidden){display:block}#touch-menu{position:absolute;right:20px;top:80px;display:block;pointer-events:auto;background:#19434499;border:1px solid #d0debd33;padding:10px}#hud .actions{display:none}.hud-bottom{bottom:22px}#hint{bottom:36%;max-width:380px}.chart-button{pointer-events:auto}}
@media(max-height:540px){.title-copy{top:21vh}.title-copy h1{font-size:84px;margin-bottom:20px}.title-copy h1 span{margin-top:22px}.title-copy .eyebrow{margin-bottom:16px}.intro{font-size:11px;margin-bottom:18px}.title-bottom{bottom:10px}.title-top{top:20px}.primary{min-height:42px;padding:10px 18px}#objective{top:108px;padding:9px 12px 9px 0}.location h2{font-size:22px}.location .wordmark{font-size:7px}.hud-top{top:18px}#hint{bottom:25%;padding:10px 15px}.hud-bottom{bottom:18px}.instruments strong{font-size:21px}#joystick{width:85px;height:85px;bottom:66px}#joystick i{left:21px;top:21px}.touch-actions{bottom:53px}#touch-menu{top:65px}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Phone controls stay clear of camera cutouts, browser bars, and home indicators. */
html,body{height:100dvh;overscroll-behavior:none}button{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
#touch-controls{-webkit-user-select:none;user-select:none}#panel{overscroll-behavior:contain;padding-top:max(25px,env(safe-area-inset-top));padding-bottom:max(25px,env(safe-area-inset-bottom))}
@media(pointer:coarse){
 .title-top,.hud-top{top:max(20px,env(safe-area-inset-top));left:max(23px,env(safe-area-inset-left));right:max(23px,env(safe-area-inset-right))}
 .title-bottom,.hud-bottom{left:max(23px,env(safe-area-inset-left));right:max(23px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom))}
 #joystick{left:max(24px,env(safe-area-inset-left));bottom:calc(72px + env(safe-area-inset-bottom))}
 .touch-actions{right:max(23px,env(safe-area-inset-right));bottom:calc(62px + env(safe-area-inset-bottom))}
 .touch-actions button{width:52px;height:52px}.touch-actions{grid-template-columns:52px 52px}
 #touch-menu{display:none}.chart-button,.close,.panel-nav button,#hint button,.bind{min-width:44px;min-height:44px}
 .setting select{min-height:44px;max-width:48%}.setting{gap:12px}.setting input[type=range]{min-height:44px}
 .setting input[type=checkbox]{width:24px;height:24px}.setting:has(input[type=checkbox]){min-height:52px}
 #hint{pointer-events:none}#hint button{pointer-events:auto;flex-shrink:0;margin:-10px -10px -10px 0}
 #touch-look{top:24%;height:44%;width:52%}
 #lock-hint{display:none!important}
}
@media(pointer:coarse) and (orientation:portrait){
 .title-copy{top:24vh;right:7vw}.title-copy h1{font-size:clamp(90px,28vw,140px)}.title-actions{align-items:flex-start;flex-direction:column;gap:12px}.title-copy .intro{font-size:13px;max-width:290px}
 #hint{bottom:40%;width:calc(100% - 42px);max-width:350px}.hud-top .location{max-width:74%}.location h2{font-size:22px}#objective{top:135px;width:190px}.instruments{gap:22px}
 .completion-actions{gap:12px}#celebration{padding:24px}.completion-detail{line-height:1.7}#panel-content h2{font-size:36px}
}
@media(pointer:coarse) and (max-height:540px){
 #objective{top:100px;width:190px}#objective .settle-track{margin-top:7px}#objective #school-readout{margin-top:5px}.objective-line{font-size:10px}
 #hint{left:50%;bottom:auto;top:max(18px,env(safe-area-inset-top));width:38%;max-width:380px}#hint p{font-size:10px}
 #joystick{bottom:calc(62px + env(safe-area-inset-bottom))}.touch-actions{bottom:calc(49px + env(safe-area-inset-bottom))}
 .primary{min-height:44px}.title-copy .eyebrow{margin-bottom:12px}.title-copy{top:22vh}.title-actions{gap:22px}
}
/* Small navigation aid appears only when the school leaves the view or rests. */
#school-bearing{position:absolute;display:flex;flex-direction:column;align-items:center;gap:4px;transform:translate(-50%,-50%);color:#dbe6c7;opacity:.8;white-space:nowrap}#school-bearing span{font-size:19px}#school-bearing small{font-size:8px;letter-spacing:.1em;background:#173f4344;padding:4px 6px}#lock-hint{top:auto;bottom:10%;transform:translateX(-50%);opacity:.72}@media(pointer:fine){#hint{bottom:24%}}
#light-button{position:absolute;right:max(32px,3.2vw);top:calc(4vh + 57px);pointer-events:auto;background:#123b3c45;color:#e0e7ce;border:1px solid #d0dfc41f;padding:9px 12px;display:flex;gap:20px;align-items:center;font-size:10px;border-radius:2px}#light-button span{font-size:16px}@media(max-width:600px){#light-button{right:23px;top:91px;font-size:9px;padding:8px;gap:8px}}@media(pointer:coarse){#light-button{top:130px}}@media(max-height:540px){#light-button{top:72px}}

@media(pointer:coarse){.chart-button kbd{display:none}#light-button{min-height:44px}}

.survey-button{position:absolute;right:3.2vw;bottom:130px;pointer-events:auto;touch-action:none;min-height:44px;padding:10px 15px;border:1px solid #c6ded44d;background:#123c43a6;color:#e4edda;border-radius:4px;font-size:11px}.survey-button.active{background:#558e83c9}.wildlife-entry{padding:16px 0;border-bottom:1px solid var(--line)}.wildlife-entry h3{font:20px Georgia,serif;font-weight:400;margin:0 0 6px}.wildlife-entry small{font-size:10px;color:#95b8b0}.wildlife-entry p{font-size:12px;line-height:1.6;color:#adcbc1}.wildlife-entry.seen h3{color:#d8e5a9}@media(pointer:coarse){.survey-button{right:max(23px,env(safe-area-inset-right));bottom:calc(189px + env(safe-area-inset-bottom));max-width:150px}}@media(pointer:coarse) and (max-height:540px){.survey-button{bottom:calc(170px + env(safe-area-inset-bottom));right:23px;font-size:10px;min-height:40px}}

/* Interactive HUD buttons sit above the transparent touch-look surface. */
#hud{z-index:6}.survey-button{min-height:44px}

/* Floating movement origin and independent right-thumb look, as in Confluence. */
html.touch-enabled #touch-controls{display:block}
#touch-move,#touch-look{position:absolute;top:0;bottom:0;width:50%;height:100%;pointer-events:auto;touch-action:none}
#touch-move{left:0}#touch-look{right:0}
#joystick{width:112px;height:112px;pointer-events:none;opacity:.4}
#joystick i{left:34px;top:34px}
#joystick.engaged{bottom:auto;transform:translate(-50%,-50%);opacity:1}
.touch-actions button{touch-action:none}
#touch-fast{grid-column:1 / -1;width:100%;height:44px;font-size:11px;border-radius:5px}
#touch-fast[aria-pressed=true]{background:#558e83c9;border-color:#b6d7c9;color:#f0f5dc}
#navigation{position:absolute;left:50%;top:26px;transform:translateX(-50%);width:260px;padding:9px 15px;border-top:1px solid #bad1bc55;background:linear-gradient(90deg,transparent,#12333b9c,transparent);text-align:center;pointer-events:none;font-variant-numeric:tabular-nums}
.nav-heading,.nav-course{display:flex;justify-content:center;align-items:center;gap:12px}.nav-heading{font-size:10px;letter-spacing:.09em;color:#bad0c4}.nav-heading b{font-size:14px;color:#f6e5b4}.nav-course{margin-top:6px;font-size:12px;color:#e4e8cd}.nav-course i{font-style:normal;color:#edcb87;font-size:17px}
#nav-marker{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:3px;pointer-events:none;text-shadow:0 1px 4px #082e38;color:#f3d99c}#nav-marker b{font-size:32px;font-weight:400}#nav-marker span{font-size:10px;background:#102f3866;padding:3px 6px;border-radius:3px}
#navigation[hidden],#nav-marker[hidden]{display:none!important}.waypoints{display:flex;gap:7px;flex-wrap:wrap;margin:15px 0 25px}.waypoints button{padding:9px 12px;min-height:44px;border:1px solid #839f8755;border-radius:4px;color:#d7e1c6;background:#1b4147;font-size:11px}.waypoints button:hover{background:#355d5b}
@media(pointer:coarse) and (orientation:portrait){#navigation{top:104px;width:calc(100% - 60px);padding:6px 12px}.nav-course{margin-top:3px}#objective{top:175px}#light-button{top:175px}}
@media(pointer:coarse) and (max-height:540px){#navigation{top:17px;width:230px;padding:4px 12px}#hint{top:auto;bottom:82px;width:34%;max-width:310px}}
@media(pointer:coarse){.survey-button{bottom:calc(242px + env(safe-area-inset-bottom))}}
@media(pointer:coarse) and (max-height:540px){.survey-button{bottom:calc(223px + env(safe-area-inset-bottom))}}
