:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;background:#080807;color:#d4d1b7}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid #dad39c;outline-offset:5px}button:disabled{cursor:default;opacity:.55}[hidden]{display:none!important}main{position:relative;min-height:100svh;overflow:hidden;isolation:isolate;display:flex;align-items:center;background:radial-gradient(ellipse at 60% 50%,#25241c,#080807 70%)}video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;z-index:-2;background:#000}.shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.1) 80%)}main[data-stage="cinematic"] .shade{background:none}.panel{margin:5vh 8vw;width:min(35rem,84vw);text-shadow:0 2px 12px #000}.eyebrow{font-weight:700;font-size:clamp(.8rem,1.3vw,1.1rem);letter-spacing:.23em;margin:0 0 .75rem}h1,h2{font-weight:800;letter-spacing:.055em;line-height:1;margin:0}h1{font-size:clamp(2.2rem,5vw,4.5rem)}h2{font-size:clamp(1.8rem,3.3vw,3rem);margin-bottom:2rem}.subtitle{font-size:clamp(1rem,2vw,1.5rem);letter-spacing:.18em;margin:1rem 0 4rem}.primary,.map{display:block;text-align:left;background:none;border:0;padding:.8rem 0;text-transform:uppercase;font-weight:700;letter-spacing:.045em}.primary{font-size:1rem;margin-top:1rem}.map{font-size:clamp(1.1rem,2vw,1.65rem);width:100%;color:#aaa895;padding:.7rem 1.1rem;margin-left:-1.1rem;border-left:3px solid transparent}.map:hover,.map[aria-pressed="true"]{color:#e0daba;border-color:#b8aa73;background:linear-gradient(90deg,#d4c48622,transparent)}.selection{font-size:.85rem;min-height:1.2em;margin:1.5rem 0 0;color:#a5a38e}.quiet{border:0;background:none;font-size:.85rem;padding:.75rem 0;color:#aaa895}.corner{position:absolute;right:3vw;bottom:3.8rem;text-shadow:0 2px 6px #000}.preview-note{position:absolute;bottom:1rem;left:3vw;right:3vw;margin:0;font-size:.72rem;line-height:1.4;color:#aba995;text-shadow:0 1px 4px #000}.loading{position:absolute;left:3vw;right:3vw;bottom:4rem;font-size:.75rem;text-shadow:0 1px 4px #000}.loading progress{display:block;width:100%;height:3px;margin-top:.65rem;accent-color:#c6c0a0;border:0}progress::-webkit-progress-bar{background:#464438}progress::-webkit-progress-value{background:#c6c0a0}@media(max-height:500px){.panel{margin-top:1rem;margin-bottom:5rem}h2{margin-bottom:.5rem}.map{padding:.35rem 1.1rem}.subtitle{margin-bottom:1rem}.selection{margin-top:.5rem}.primary{margin-top:.25rem}}
main[data-desktop="true"]{background:#000 var(--menu-art) center/100% 100% no-repeat}main[data-stage="cinematic"]{background:#000}main[data-stage="cinematic"] #map-art{display:none}.shade{background:linear-gradient(90deg,#0005,transparent 70%)}.map{font-weight:400;color:#ddd;letter-spacing:0;border:0;border-top:1px solid transparent;border-bottom:1px solid transparent;padding:.6rem 1.1rem}.map:hover,.map[aria-pressed="true"]{color:#edc263;border-color:#d6d6d655;background-image:var(--button-art);background-size:100% 100%}.map:focus-visible{outline:1px solid #dad39c;outline-offset:0}.panel{position:relative;z-index:2;width:min(30rem,42vw)}.primary,.quiet{font-weight:400}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map canvas{vertical-align:middle;height:clamp(26px,2.3vw,34px);width:auto;max-width:100%}#map-art{position:absolute;right:6vw;top:24vh;margin:0;width:38vw;z-index:1}#map-art img{display:block;width:100%;height:auto;border:1px solid #6666}#map-art figcaption{font-size:.7rem;color:#b9b9b9;margin-top:.5rem}.preview-note{z-index:3;background:#0007;padding:.35rem .5rem}.panel p:not(.sr-only){color:#ddd}h1 canvas,h2 canvas{max-width:100%;height:auto}main[data-stage="unsupported"] .panel{width:min(35rem,84vw)}@media(max-width:900px){#map-art{right:3vw;width:38vw}.panel{margin-left:5vw;width:50vw}}@media(max-width:600px){#map-art{display:none}.panel{width:84vw}}@media(max-height:500px){#map-art{top:16vh;width:32vw}.map canvas{height:24px}}
main:not([data-stage="cinematic"]) video{visibility:hidden}.map canvas{height:clamp(36px,3.5vw,52px)}@media(max-height:500px){.map canvas{height:24px}}
.map{position:relative;isolation:isolate}.map:hover,.map[aria-pressed="true"]{background-image:none}.map:hover::before,.map[aria-pressed="true"]::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--button-art) center/100% 100%;opacity:.18}
#map-image-frame{position:relative;width:100%;aspect-ratio:275/164;background:#000;border:1px solid #6666}
#map-image-frame #map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;border:0}
.project-credits{position:absolute;left:3vw;right:3vw;bottom:12px;z-index:3;color:#d4d1b7;font-size:.8rem;line-height:1.3;text-shadow:0 1px 4px #000}
.project-credits p{margin:3px 0}.credit-line{display:flex;flex-wrap:wrap;align-items:center;gap:0}.project-credits a{color:#edc263;text-decoration:none}.project-credits a:focus-visible{outline:1px solid #dad39c;outline-offset:4px}.project-credits canvas{height:18px;width:auto;max-width:100%;vertical-align:middle}.project-credits #route-credit canvas{max-width:100%}
.preview-note{bottom:92px}.corner{bottom:124px}.loading{bottom:164px}main[data-stage="playing"] .project-credits{display:none}
#desktop-link{display:block;width:100%;padding:10px;margin:8px 0;border:1px solid #aaa895;background:#0009;color:#ddd;font:16px monospace;user-select:all}
.desktop-actions{display:flex;flex-wrap:wrap;gap:20px}#desktop-status{min-height:1.5em}#desktop-title{margin-bottom:1rem}#desktop-copy{line-height:1.5}#desktop-copy canvas{max-width:100%;height:auto}#unsupported canvas{max-width:100%;vertical-align:middle}
main[data-stage="unsupported"]{display:block;overflow:auto;min-height:100svh;padding:5vh 0 20px}main[data-stage="unsupported"] .panel{margin:0 auto 32px;width:min(620px,86vw)}main[data-stage="unsupported"] .project-credits,main[data-stage="unsupported"] .preview-note{position:relative;left:auto;right:auto;bottom:auto;margin:12px auto;width:min(620px,86vw)}
@media(max-height:600px){main:not([data-stage="cinematic"]):not([data-stage="unsupported"]){padding-bottom:150px}main:not([data-stage="cinematic"]):not([data-stage="unsupported"]) .project-credits{position:relative;left:auto;right:auto;bottom:auto;margin:12px 3vw}main:not([data-stage="cinematic"]):not([data-stage="unsupported"]){flex-wrap:wrap}.preview-note{font-size:.65rem}}
.project-credits .preview-note{position:static;left:auto;right:auto;bottom:auto;margin:0 0 5px;padding:0;background:none}
main[data-stage="unsupported"] .project-credits .preview-note{width:auto;margin:0 0 10px}
#unsupported .text-line{display:block;max-width:100%}main[data-stage="unsupported"] #route-credit .text-line{display:block}
main[data-stage="unsupported"]{background:#080807}
#desktop-copy>span{display:block;margin:6px 0}#unsupported{isolation:isolate;padding:24px}#unsupported::before{content:'';position:absolute;inset:0;background:var(--button-art) center/100% 100% no-repeat;opacity:.18;z-index:-1}
#ui-fidelity-note{color:#edc263}
#map-image-frame{aspect-ratio:4/3}
#map-image-frame video{visibility:visible;z-index:0;opacity:0;pointer-events:none;background:transparent;object-fit:cover;object-position:center}
#menu-sound{padding:.65rem 0;font-size:.8rem}
main[data-desktop="true"],main[data-desktop="true"] button,main[data-desktop="true"] a{cursor:var(--menu-cursor,default)}
#map-image-frame{border-radius:16px;overflow:hidden;opacity:.95;background:#17181455;backdrop-filter:blur(12px);border:1px solid #dad7bc40;box-shadow:0 12px 40px #0005}
#map-image-frame{opacity:1;backdrop-filter:blur(20px);background:transparent;isolation:isolate}
#map-image-frame video{mix-blend-mode:plus-lighter}
main[data-stage="maps"]{display:grid;grid-template-columns:minmax(0,38%) minmax(0,1fr);column-gap:6vw;align-items:center;padding:5vh 6vw 140px}
main[data-stage="maps"] #maps{width:100%;margin:0;min-width:0}
main[data-stage="maps"] #map-art{position:static;inset:auto;width:100%;min-width:0;margin:0;align-self:center}
main[data-stage="maps"] #map-image-frame{aspect-ratio:16/9}
main[data-stage="maps"] #project-credits{position:absolute;left:3vw;right:3vw;bottom:12px;margin:0}
@media(max-width:900px){main[data-stage="maps"]{grid-template-columns:minmax(0,44%) minmax(0,1fr);column-gap:4vw;padding-inline:5vw}}
@media(max-width:600px){main[data-stage="maps"]{grid-template-columns:minmax(0,1fr)}main[data-stage="maps"] #map-art{display:none}main[data-stage="maps"] #maps{width:min(30rem,100%)}}
html[data-session],html[data-session] body{background:#000;overflow:hidden}
.session{position:fixed;inset:0;z-index:100;background:#000;color:#ddd;opacity:0;isolation:isolate;transition:opacity .45s cubic-bezier(.2,0,0,1);font-family:Arial,Helvetica,sans-serif}
.session.visible{opacity:1}
.session:not(.visible){transition:opacity .42s cubic-bezier(.4,0,1,1)}
.session .game-display{z-index:0;opacity:0}
.session .game-display.live{opacity:1}
.session.closing .game-display,.session.closing .loader,.session.closing .session-notice{opacity:0;transition:opacity .26s ease-in}
.loader{position:absolute;inset:0;z-index:1;background:#000;transition:opacity .7s cubic-bezier(.4,0,.2,1)}
.loader.leaving{opacity:0}
.loader .loader-video{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center;visibility:visible;background:#000;opacity:0;transition:opacity .9s ease;pointer-events:none}
.loader .loader-video.playing{opacity:1}
.loader-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(0deg,#000e 0%,#000a 24%,#0003 55%,#0000 75%),radial-gradient(ellipse at 50% 45%,#0000 45%,#0009 100%)}
.loader-info{position:absolute;z-index:2;left:6vw;right:6vw;bottom:8vh;display:grid;gap:.85rem;text-shadow:0 2px 10px #000}
.loader-title{margin:0;font-size:clamp(1.8rem,3.4vw,3rem);letter-spacing:.05em}
.loader-title canvas{height:clamp(30px,3.4vw,52px);width:auto;max-width:100%;display:block}
.loader-row{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;min-height:24px}
.loader-phase,.loader-detail{margin:0}
.loader-phase canvas,.loader-percent canvas{height:22px;width:auto;display:block}
.loader-percent{font-variant-numeric:tabular-nums}
.loader-detail{min-height:18px;color:#b9b6a2;font-size:.8rem}
.loader-detail canvas{height:16px;width:auto;max-width:100%;display:block}
.loader-bar{position:relative;height:3px;background:#ffffff1f;overflow:hidden;border-radius:2px}
.loader-fill{position:absolute;inset:0;background:linear-gradient(90deg,#b8954a,#edc263);transform-origin:0 50%;transform:scaleX(0);will-change:transform}
.session-notice{position:absolute;inset:0;z-index:3;display:grid;place-content:center;justify-items:center;gap:1.5rem;pointer-events:none;text-shadow:0 2px 10px #000}
.session[data-notice="error"] .session-notice{background:#000b;pointer-events:auto}
.session-notice-text{margin:0;max-width:80vw}.session-notice-text canvas{height:22px;width:auto;max-width:80vw;display:block}
.session-back{pointer-events:auto;color:#ddd;text-align:center}.session-back canvas{height:22px;width:auto;display:block}
.session-back:hover,.session-back:focus-visible{color:#edc263}
.session[data-notice="hint"] .session-notice{place-content:end center;padding-bottom:12vh}
.session[data-notice="hint"] .session-notice-text{padding:.45rem .9rem;border-radius:6px;background:#0008;animation:session-hint 2.4s ease-in-out infinite}
.session[data-notice="hint"] .session-notice-text canvas{height:18px}
@keyframes session-hint{0%,100%{opacity:.55}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.session[data-notice="hint"] .session-notice-text{animation:none}}
.map canvas{pointer-events:none}
.session-controller-button{position:absolute;right:2rem;bottom:1.5rem;z-index:4;color:#ddd;background:#111c;border:1px solid #777;padding:.6rem 1rem;cursor:pointer}
.session-controller-panel{position:absolute;inset:0;z-index:5;display:grid;place-content:center;background:#000c;padding:2rem}
.session-controller-panel[hidden],.session-controller-button[hidden]{display:none}
.native-controller-settings{width:min(30rem,85vw);background:#141414;border:1px solid #777;padding:2rem;color:#ddd}
.native-controller-settings h2{margin:0 0 1.5rem}.native-controller-settings label{display:block;margin-bottom:.5rem}
.native-controller-settings select,.native-controller-settings button{font:inherit;color:#eee;background:#262626;border:1px solid #777;padding:.6rem 1rem}
.native-controller-settings select{width:100%}.native-controller-settings button{cursor:pointer}
.map-load-estimate{font-size:.8rem;color:#b9b6a2;margin:.5rem 0 1rem}
.loader-remaining{margin:0;color:#edc263;font-size:.85rem;font-variant-numeric:tabular-nums}
.menu-settings{position:fixed;top:1rem;left:1.5rem;z-index:200;max-width:calc(100vw - 3rem)}
.menu-settings button{background:#111c;border:1px solid #777;color:#ddd;padding:.6rem 1rem;font:inherit;text-align:left}
.menu-settings button:hover,.menu-settings button:focus-visible{color:#edc263;border-color:#dad39c}
.menu-settings button canvas{height:18px;width:auto;max-width:100%;pointer-events:none;vertical-align:middle}
.entry-checks{display:flex;flex-direction:column;gap:.55rem;margin:0 0 1.25rem}
.entry-check{display:flex;align-items:center;gap:.75rem;cursor:var(--menu-cursor,pointer);color:#ddd;padding:.2rem 0}
.entry-check input{appearance:none;-webkit-appearance:none;flex:none;width:18px;height:18px;margin:0;border:1px solid #d6d6d688;background:#0009;display:grid;place-content:center;cursor:inherit}
.entry-check input::after{content:"";width:10px;height:10px;background:#edc263;transform:scale(0);transition:transform 120ms ease-out}
.entry-check input:checked::after{transform:scale(1)}
.entry-check input:focus-visible{outline:1px solid #dad39c;outline-offset:2px}
.entry-check:hover input{border-color:#edc263}
.entry-check span canvas{height:20px;width:auto;max-width:100%;vertical-align:middle;pointer-events:none}
main[data-stage="requirements"]{display:block;overflow:auto;min-height:100svh;padding:6vh 0 24px}
main[data-stage="requirements"] .panel{margin:0 0 32px 8vw;width:min(46rem,84vw)}
main[data-stage="requirements"] .project-credits{position:relative;left:auto;right:auto;bottom:auto;margin:12px 8vw;width:min(46rem,84vw)}
#requirements h2{margin-bottom:1rem}#requirements h2:focus{outline:none}#requirements h2 canvas{height:clamp(26px,2.6vw,36px);width:auto;max-width:100%}
#requirements p{margin:0}
.requirements-summary{margin-bottom:1.5rem!important}
.requirement{margin:0 0 1.5rem;padding:1rem 1.25rem;border-top:1px solid #d6d6d655;border-bottom:1px solid #d6d6d655;position:relative;isolation:isolate}
.requirement::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--button-art) center/100% 100%;opacity:.18}
.requirement h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:400;color:#edc263}
.requirement-why{margin-bottom:.75rem!important}
.requirement-steps{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.requirement-steps li{display:grid;grid-template-columns:2rem minmax(0,1fr);align-items:start}
.bitmap-words{display:flex;flex-wrap:wrap;column-gap:.2em;row-gap:3px;align-items:center}
.bitmap-words canvas{display:block;height:20px;width:auto;max-width:100%;pointer-events:none}
.requirements-verified .bitmap-words canvas,.requirements-status .bitmap-words canvas{height:18px}
.requirement h3 .bitmap-words canvas{height:24px}
.step-number canvas{display:block;height:20px;width:auto}
.requirements-verified{color:#b9b6a2}
.requirements-actions{display:flex;flex-wrap:wrap;gap:0 2rem;margin-top:.5rem}
.requirements-actions button canvas{height:24px;width:auto;max-width:100%;vertical-align:middle;pointer-events:none}
.requirements-actions button:hover,.requirements-actions button:focus-visible{color:#edc263}
.requirements-status{min-height:1.5em;margin-top:.25rem!important}
.requirements-actions button{position:relative;isolation:isolate;padding:.6rem 1.1rem;margin-left:-1.1rem;border-top:1px solid transparent;border-bottom:1px solid transparent}
.requirements-actions button+button{margin-left:0}
.requirements-actions button:hover,.requirements-actions button:focus-visible{border-color:#d6d6d655}
.requirements-actions button:hover::before,.requirements-actions button:focus-visible::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--button-art) center/100% 100%;opacity:.18}
.requirement-detail{margin:-.25rem 0 .75rem!important}.requirement-detail .bitmap-words canvas{height:18px}
.easy-mode{margin:1.1rem 0 0;display:grid;gap:.35rem}
.easy-toggle{position:relative;isolation:isolate;display:block;text-align:left;background:none;border:0;border-top:1px solid transparent;border-bottom:1px solid transparent;padding:.45rem 1.1rem;margin-left:-1.1rem;color:#ddd;font-weight:400}
.easy-toggle canvas{height:20px;width:auto;max-width:100%;vertical-align:middle;pointer-events:none}
.easy-toggle:hover,.easy-toggle:focus-visible{border-color:#d6d6d655;outline:none}
.easy-toggle:hover::before,.easy-toggle:focus-visible::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--button-art) center/100% 100%;opacity:.18}
.easy-round{display:grid;grid-template-columns:auto minmax(6rem,14rem) 2.5rem;align-items:center;gap:.9rem;padding:.25rem 0}
.easy-round label canvas,.easy-round output canvas{height:18px;width:auto;display:block;pointer-events:none}
.easy-round output{font-variant-numeric:tabular-nums;justify-self:end}
.easy-round input{appearance:none;-webkit-appearance:none;width:100%;height:18px;margin:0;background:transparent;cursor:var(--menu-cursor,pointer)}
.easy-round input::-webkit-slider-runnable-track{height:4px;background:linear-gradient(90deg,#edc263 var(--fill,0%),#ffffff2e var(--fill,0%));border:1px solid #d6d6d655}
.easy-round input::-moz-range-track{height:4px;background:#ffffff2e;border:1px solid #d6d6d655}
.easy-round input::-moz-range-progress{height:4px;background:#edc263}
.easy-round input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:8px;height:16px;margin-top:-7px;background:#edc263;border:1px solid #000a}
.easy-round input::-moz-range-thumb{width:8px;height:16px;border-radius:0;background:#edc263;border:1px solid #000a}
.easy-round input:focus-visible{outline:1px solid #dad39c;outline-offset:3px}
.easy-loadout{margin:.1rem 0 0;min-height:1.2em;color:#b9b6a2;font-size:.8rem}
.easy-loadout .bitmap-words canvas{height:16px}
