canvas#gameCanvas{touch-action:none;width:100%;height:100dvh;margin:0;display:block}body{overscroll-behavior:none;margin:0;padding:0;overflow:hidden}.mic-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:10;background:#050c1299;place-items:center;display:grid;position:fixed;inset:0}.mic-overlay[hidden]{display:none}.mic-overlay__card{background:var(--secondary-color);max-width:28rem;color:var(--text-color);border-radius:.75rem;margin:1rem;padding:1.5rem 1.75rem;font-family:system-ui,sans-serif;line-height:1.45;box-shadow:0 10px 40px #00000073}.mic-overlay__card h2{margin:0 0 .5rem;font-size:1.4rem}.mic-overlay__card p,.mic-overlay__card ol{margin:0 0 1rem}.mic-overlay__card ol{padding-left:1.25rem}.mic-overlay__actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.mic-overlay__button{border:1px solid color-mix(in srgb, var(--text-color) 30%, transparent);color:var(--text-color);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:.55rem 1.1rem}.mic-overlay__button--primary{border-color:var(--primary-color);background:var(--primary-color);color:#fff}.mic-overlay__button:hover{filter:brightness(1.15)}.mic-overlay__button:focus-visible,.mic-pill:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.mic-pill{z-index:5;color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:999px;padding:.4rem .9rem;font:.9rem system-ui,sans-serif;position:fixed;bottom:1rem;left:1rem}.mic-pill--on{background:#12783cd9}.back-button{z-index:5;color:#fff;cursor:pointer;background:#0000008c;border:none;border-radius:999px;align-items:center;gap:.5rem;padding:.5rem 1rem;font:600 1rem system-ui,sans-serif;display:inline-flex;position:fixed;top:1rem;left:1rem}.back-button[hidden]{display:none}.back-button:hover{background:#000000bf}.back-button:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.back-button kbd{opacity:.8;border:1px solid #ffffff73;border-radius:4px;padding:.05rem .35rem;font:.75rem system-ui,sans-serif}.bearing-tape{z-index:4;pointer-events:none;color:#fff;text-shadow:0 1px 3px #0009;width:min(70vw,760px);font-family:system-ui,sans-serif;position:fixed;top:.75rem;left:50%;transform:translate(-50%)}.bearing-tape[hidden]{display:none}.bearing-tape__scale{opacity:.9;background:#00000059;border-radius:6px;width:100%;height:52px;padding:.2rem 0;display:block;-webkit-mask-image:linear-gradient(90deg,#0000,#000 22% 78%,#0000);mask-image:linear-gradient(90deg,#0000,#000 22% 78%,#0000)}.bearing-tape__readout{font-variant-numeric:tabular-nums;letter-spacing:.04em;background:#00000073;border-radius:999px;width:max-content;margin:.35rem auto 0;padding:.15rem .6rem;font-size:1.05rem;font-weight:700}.notebook-button{z-index:6;cursor:pointer;filter:drop-shadow(0 3px 4px #00000073);background:0 0;border:none;width:76px;height:76px;padding:0;transition:transform .15s;position:fixed;top:.6rem;right:.75rem}.notebook-button img{pointer-events:none;width:100%;height:100%}.notebook-button:hover,.notebook-button:focus-visible{transform:translateY(-2px)rotate(-4deg)scale(1.05)}.notebook-button:focus-visible{outline-offset:2px;border-radius:6px;outline:2px solid #ffb02e}.notebook-backdrop{z-index:20;background:#050c148c;place-items:center;animation:.15s ease-out notebook-fade;display:grid;position:fixed;inset:0}.notebook-backdrop[hidden]{display:none}@keyframes notebook-fade{0%{opacity:0}}@keyframes notebook-open{0%{opacity:0;transform:translateY(12px)scale(.97)}}.notebook{aspect-ratio:128/312;height:min(94vh,1000px);image-rendering:pixelated;filter:drop-shadow(0 10px 24px #0000008c);color:#1d2f6f;background:url(/assets/images/OOWNotebook_open.png) 50%/100% 100% no-repeat;grid-template-rows:minmax(0,1fr) minmax(0,1fr);padding:1.5% 4%;font-family:Segoe Print,Bradley Hand,Comic Neue,Comic Sans MS,Chalkboard SE,cursive;line-height:1.25;animation:.2s ease-out notebook-open;display:grid;position:relative;container-type:size}.notebook__page{flex-direction:column;gap:2.4cqw;min-height:0;padding:3cqw 2cqw;font-size:5.6cqw;display:flex;overflow:hidden auto}.notebook__page+.notebook__page{padding-top:5cqw}.notebook__page h2{border-bottom:.5cqw solid #1d2f6f59;margin:0 0 1cqw;font-size:8cqw;font-weight:700}.notebook__row{grid-template-columns:auto 1fr;align-items:center;column-gap:2.5cqw;display:grid}.notebook__row--range{grid-template-columns:1fr auto}.notebook__row--range input{grid-column:1/-1}.notebook__row--range output{font-variant-numeric:tabular-nums;font-weight:700}.notebook__row--choice{grid-template-columns:1fr;row-gap:1cqw}.notebook__row--disabled{opacity:.4}.notebook input[type=checkbox],.notebook input[type=radio]{accent-color:#1d2f6f;cursor:pointer;width:5cqw;height:5cqw;margin:0}.notebook input[type=range]{accent-color:#1d2f6f;cursor:pointer;width:100%;margin:0}.notebook label{cursor:pointer}.notebook__choices{grid-template-columns:1fr 1fr;gap:1cqw 3cqw;display:grid}.notebook__choices label{align-items:center;gap:1.6cqw;display:flex}.notebook__close{color:#fff;cursor:pointer;background:#1d2f6f;border:none;border-radius:50%;width:9cqw;height:9cqw;font:700 4.6cqw system-ui,sans-serif;position:absolute;top:2.2%;right:4%}.notebook__close:hover{background:#2c47a3}.notebook :focus-visible{outline-offset:2px;outline:2px solid #ffb02e}.options-button{z-index:6;color:#e8eef5;cursor:pointer;filter:drop-shadow(0 3px 4px #00000073);background:#0a1622b3;border:1px solid #ffffff40;border-radius:50%;width:48px;height:48px;padding:9px;transition:transform .2s,background .15s;position:fixed;top:1.1rem;right:calc(1.35rem + 76px)}.options-button svg{pointer-events:none;width:100%;height:100%}.options-button:hover,.options-button:focus-visible{background:#142c44d9;transform:rotate(30deg)}.options-button:focus-visible{outline-offset:2px;outline:2px solid #ffb02e}.options-backdrop{z-index:20;background:#050c1499;place-items:center;animation:.15s ease-out notebook-fade;display:grid;position:fixed;inset:0}.options-backdrop[hidden]{display:none}.options{color:#e8eef5;background:#0c1826f5;border:1px solid #78aadc4d;border-radius:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem 2rem;width:min(92vw,900px);max-height:90vh;padding:2.6rem 1.75rem 1.75rem;font:.95rem/1.3 system-ui,-apple-system,Segoe UI,sans-serif;animation:.2s ease-out notebook-open;display:grid;position:relative;overflow-y:auto;box-shadow:0 16px 40px #00000080}.options__page{flex-direction:column;gap:.85rem;min-width:0;display:flex}.options__page h2{letter-spacing:.12em;text-transform:uppercase;color:#8fbaf0;border-bottom:1px solid #8fbaf040;margin:0 0 .2rem;padding-bottom:.35rem;font-size:.8rem;font-weight:700}.options__row{grid-template-columns:auto 1fr;align-items:center;column-gap:.6rem;display:grid}.options__row--range{grid-template-columns:1fr auto;row-gap:.3rem}.options__row--range input{grid-column:1/-1}.options__row--range output{font-variant-numeric:tabular-nums;color:#b9d4f5;font-weight:600}.options__row--disabled{opacity:.4}.options__row--button{grid-template-columns:1fr;margin-top:.4rem}.options input[type=checkbox]{accent-color:#4d9bff;cursor:pointer;width:1.1rem;height:1.1rem;margin:0}.options input[type=range]{accent-color:#4d9bff;cursor:pointer;width:100%;margin:0}.options label{cursor:pointer}.options__action{color:#e8eef5;font:inherit;cursor:pointer;background:0 0;border:1px solid #8fbaf073;border-radius:8px;padding:.55rem .9rem}.options__action:hover{background:#4d9bff26}.options__close{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;width:2rem;height:2rem;font:700 1rem system-ui,sans-serif;position:absolute;top:.7rem;right:.8rem}.options__close:hover{background:#fff3}.options :focus-visible{outline-offset:2px;outline:2px solid #ffb02e}.fps-counter{z-index:5;color:#b9f5c9;pointer-events:none;background:#0000008c;border-radius:6px;padding:.15rem .5rem;font:600 .8rem/1.3 ui-monospace,monospace;position:fixed;bottom:.75rem;right:.75rem}.fps-counter[hidden]{display:none}.subtitles{z-index:5;color:#fff;text-align:center;pointer-events:none;opacity:1;background:#0009;border-radius:8px;max-width:min(80vw,46rem);padding:.4rem .9rem;font:600 1.05rem/1.35 system-ui,-apple-system,Segoe UI,sans-serif;transition:opacity .4s;position:fixed;bottom:4.5rem;left:50%;transform:translate(-50%)}.subtitles--hidden{opacity:0}.subtitles__speaker{color:#ffb74d}.options__row--choice{grid-template-columns:1fr;row-gap:.35rem}.options__choices{gap:.4rem;display:flex}.options__choices label{flex:1}.options__choices input{opacity:0;pointer-events:none;position:absolute}.options__choices span{text-align:center;border:1px solid #8fbaf066;border-radius:7px;padding:.35rem .5rem;display:block}.options__choices input:checked+span{background:#2c6fd6;border-color:#4d9bff}.options__choices input:focus-visible+span{outline-offset:2px;outline:2px solid #ffb02e}.binoculars-button{z-index:6;cursor:pointer;filter:drop-shadow(0 3px 4px #00000073);background:0 0;border:none;width:56px;height:56px;padding:0;transition:transform .15s,opacity .15s;position:fixed;top:.85rem;right:calc(1.95rem + 124px)}.binoculars-button img{pointer-events:none;width:100%;height:100%}.binoculars-button:hover:not(:disabled),.binoculars-button:focus-visible{transform:translateY(-2px)rotate(-6deg)scale(1.06)}.binoculars-button--raised{filter:drop-shadow(0 0 6px #ffb02ee6);transform:scale(.92)}.binoculars-button:disabled{opacity:.35;cursor:default}.binoculars-button:focus-visible{outline-offset:2px;border-radius:8px;outline:2px solid #ffb02e}.binoculars{z-index:3;pointer-events:none;position:fixed;inset:0}.binoculars[hidden]{display:none}.binoculars svg{width:100%;height:100%;display:block}.binoculars__zoom{color:#fff;font-variant-numeric:tabular-nums;opacity:0;background:#0000008c;border-radius:6px;padding:.2rem .6rem;font:600 .95rem/1.3 system-ui,sans-serif;transition:opacity .3s;position:absolute;bottom:9%;left:50%;transform:translate(-50%)}.binoculars__zoom--shown{opacity:1}.book-backdrop{z-index:20;background:#050c14a6;place-items:center;animation:.15s ease-out notebook-fade;display:grid;position:fixed;inset:0}.book-backdrop[hidden]{display:none}.book{--paper:#f6efdf;--ink:#2b241c;--cover:#5b2e1f;background:var(--cover);border-radius:10px;width:min(94vw,1180px);height:min(88vh,780px);padding:14px;animation:.2s ease-out notebook-open;display:flex;position:relative;box-shadow:0 18px 50px #0000008c}.book__page{background:var(--paper);min-width:0;color:var(--ink);flex-direction:column;flex:1 1 0;padding:clamp(1.2rem,3.5vh,2.6rem) clamp(1.2rem,3vw,2.8rem) .9rem;font:clamp(.95rem,.55rem + .75vw,1.12rem)/1.55 Georgia,Iowan Old Style,Palatino Linotype,Times New Roman,serif;display:flex;position:relative}.book__page[hidden]{display:none}.book__page--left{background-image:linear-gradient(270deg,#3c281438,#3c281400 9%);border-radius:6px 0 0 6px}.book__page--right{background-image:linear-gradient(90deg,#3c281438,#3c281400 9%);border-radius:0 6px 6px 0}.book__page--measure{visibility:hidden;pointer-events:none;position:absolute;top:14px;left:14px}.book__content{flex:auto;min-height:0;overflow:hidden}.book__content>:first-child,.book__content>:first-child>:first-child{margin-top:0}.book__content h1{margin:0 0 .6em;font-size:1.75em;font-weight:700;line-height:1.15}.book__content h2{margin:1em 0 .35em;font-size:1.25em;line-height:1.2}.book__content h3{margin:.9em 0 .3em;font-size:1.08em}.book__content p{text-align:justify;-webkit-hyphens:auto;hyphens:auto;margin:0 0 .75em}.book__content ul,.book__content ol{margin:0 0 .75em;padding-left:1.4em}.book__content li{margin-bottom:.2em}.book__content img{max-width:100%;max-height:40vh}.book__folio{text-align:center;color:#2b241c99;font-variant-numeric:oldstyle-nums;padding-top:.5rem;font-size:.85em}.book__page--blank{background-color:#ece2cc}.book__title-page{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;height:100%;display:flex}.book__title-page h1{margin:0 0 .6rem;font-size:2.4em;line-height:1.1}.book__title-page h1:after{content:"";opacity:.4;background:currentColor;width:3.5rem;height:2px;margin:1rem auto 0;display:block}.book__author{font-size:1.15em;font-style:italic}.book__year{opacity:.7}.book__turn{color:#fff;cursor:pointer;background:#140c068c;border:none;border-radius:8px;width:2.6rem;height:4.5rem;font:2rem/1 Georgia,serif;position:absolute;top:50%;transform:translateY(-50%)}.book__turn--prev{left:-3rem}.book__turn--next{right:-3rem}.book__turn:hover:not(:disabled){background:#140c06cc}.book__turn:disabled{opacity:.25;cursor:default}.book__close{border:2px solid var(--paper);background:var(--cover);color:#fff;cursor:pointer;border-radius:50%;width:2.2rem;height:2.2rem;font:700 1rem system-ui,sans-serif;position:absolute;top:-.9rem;right:-.9rem}.book :focus-visible{outline-offset:2px;outline:2px solid #ffb02e}@media (width<=760px){.book{width:min(94vw,520px);padding:10px}.book__page--left{background-image:none;border-radius:6px}.book__page--measure{top:10px;left:10px}.book__close{top:.3rem;right:.3rem}.book__turn{width:2.4rem;height:2.4rem;font-size:1.6rem;top:auto;bottom:.6rem;transform:none}.book__turn--prev{left:.8rem}.book__turn--next{right:.8rem}}@media (width<=1290px) and (width>=761px){.book__turn--prev{left:.4rem}.book__turn--next{right:.4rem}}.map-picker{background:var(--background-color);z-index:20;place-items:center;display:grid;position:fixed;inset:0;overflow-y:auto}.map-picker__card{box-sizing:border-box;background:var(--secondary-color);width:min(56rem,100% - 2rem);color:var(--text-color);box-shadow:var(--card-shadow);border-radius:.75rem;margin:1rem;padding:1.75rem 2rem;font-family:system-ui,sans-serif;line-height:1.45}.map-picker__card h2{margin:0 0 .25rem;font-size:1.6rem}.map-picker__lead{color:var(--text-muted);margin:0 0 1.25rem}.map-picker__card--loading{width:min(32rem,100% - 2rem)}.map-picker__card--loading .map-picker__lead{margin:0;animation:1.6s ease-in-out infinite map-picker-pulse}@keyframes map-picker-pulse{50%{opacity:.45}}.map-picker__list{grid-template-columns:repeat(auto-fit,minmax(min(18rem,100%),1fr));gap:.75rem;display:grid}.map-picker__map{border:1px solid var(--border-color);background:var(--background-color);color:var(--text-color);font:inherit;text-align:left;cursor:pointer;border-radius:.6rem;grid-template-rows:auto auto 1fr;grid-template-columns:1fr auto;align-items:center;gap:.25rem 1rem;padding:0 1.25rem 1rem;transition:border-color .15s,transform .15s;display:grid;overflow:hidden}.map-picker__map:hover{border-color:var(--primary-color);transform:translateY(-1px)}.map-picker__map:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.map-picker__image{aspect-ratio:16/9;object-fit:cover;background:var(--border-color);grid-column:1/-1;width:calc(100% + 2.5rem);margin:0 -1.25rem .6rem;display:block}.map-picker__name{font-size:1.15rem;font-weight:600}.map-picker__difficulty{background:color-mix(in srgb, var(--text-muted) 20%, transparent);border-radius:999px;padding:.15rem .65rem;font-size:.8rem;font-weight:600}.map-picker__difficulty--easy{background:#128c4640}.map-picker__difficulty--medium{background:#c88c0047}.map-picker__difficulty--hard{background:#c8282847}.map-picker__description{color:var(--text-muted);grid-column:1/-1;align-self:start;margin:0}.start-chooser{z-index:30;background:var(--background-color);color:var(--text-color);grid-template-rows:auto 1fr auto;font-family:system-ui,sans-serif;display:grid;position:fixed;inset:0}.start-chooser__bar{background:var(--secondary-color);box-shadow:var(--card-shadow);padding:.75rem 1.25rem}.start-chooser__bar h2{margin:0;font-size:1.3rem}.start-chooser__hint{color:var(--text-muted);margin:.2rem 0 0}.start-chooser__bar--footer{align-items:center;gap:1rem;display:flex}.start-chooser__chart{cursor:crosshair;touch-action:none;width:100%;height:100%;min-height:0;display:block}.start-chooser__readout{flex:1;font-family:ui-monospace,monospace;font-size:1rem}.start-chooser__credit{color:var(--text-muted);font-size:.8rem}.start-chooser__start{background:var(--primary-color);color:var(--on-primary);font:inherit;cursor:pointer;border:none;border-radius:999px;padding:.55rem 1.6rem;font-weight:600}.start-chooser__start:disabled{opacity:.45;cursor:not-allowed}.start-chooser__start:focus-visible{outline:2px solid var(--primary-color);outline-offset:2px}.score-hud{z-index:4;pointer-events:none;color:#fff;font-family:system-ui,sans-serif;position:fixed;inset:0}.score-hud[hidden]{display:none}.score-hud__total{text-shadow:0 1px 3px #000c;line-height:1.1;display:grid;position:absolute;top:4.1rem;left:1rem}.score-hud__label{letter-spacing:.12em;opacity:.8;font-size:.7rem;font-weight:700}.score-hud__points{font-variant-numeric:tabular-nums;font-size:1.5rem;font-weight:800}.score-hud__best{color:#f2c94c;font-size:.7rem;font-weight:700}.score-hud__meter{width:.7rem;position:absolute;top:9rem;bottom:4.5rem;left:1.4rem}.score-hud__track{background:#00000073;border-radius:999px;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff40}.score-hud__fill{background:linear-gradient(#ffd54f,#ff4fd8 30%,#7a5cff 60%,#00c6ff);border-radius:999px;height:0;transition:height .6s cubic-bezier(.2,.9,.3,1.2);position:absolute;bottom:0;left:0;right:0;box-shadow:0 0 12px #ffd54fb3}.score-hud__rank{opacity:.55;align-items:center;gap:.35rem;transition:opacity .4s;display:flex;position:absolute;left:1.3rem;transform:translateY(50%)}.score-hud__rank--lit{opacity:1}.score-hud__rank--lit svg{filter:drop-shadow(0 0 6px #f2c94ce6)}.score-hud__rank--new{animation:1s ease-out 2 rank-promoted}@keyframes rank-promoted{0%{transform:translateY(50%)scale(1)}40%{transform:translateY(50%)scale(1.5)}to{transform:translateY(50%)scale(1)}}.score-hud__feed{flex-direction:column;gap:.4rem;max-width:min(26rem,60vw);display:flex;position:absolute;top:4.1rem;left:7.5rem}.score-pop{text-shadow:0 1px 2px #000000e6,0 0 8px #0009;transform-origin:0;grid-template-columns:auto auto;justify-content:start;align-items:baseline;column-gap:.6rem;padding:.1rem 0;animation:.35s cubic-bezier(.2,1.6,.4,1) score-pop-in,.6s ease-in 2.6s forwards score-pop-out;display:grid}.score-pop__grade{letter-spacing:.02em;-webkit-text-stroke:1px #00000059;font-size:1.6rem;font-style:italic;font-weight:900}.score-pop__points{color:#fff;font-weight:800}.score-pop__reason{color:#e8eef5;grid-column:1/-1;font-size:.85rem}.score-pop--perfect .score-pop__grade{background:linear-gradient(90deg,#ffd54f,#ff4fd8,#00c6ff,#7dff4a);color:#0000;text-shadow:none;filter:drop-shadow(0 1px 1px #000000e6)drop-shadow(0 0 6px #00000080);-webkit-background-clip:text;background-clip:text}.score-pop--well-done .score-pop__grade{color:#7dff4a}.score-pop--ok .score-pop__grade{color:#4fc3ff}.score-pop--miss .score-pop__grade{color:#ff4a4a;font-size:1.9rem;font-style:normal}.score-pop--announce{grid-template-columns:auto auto;align-items:center}.score-pop--announce .score-pop__grade{color:#f2c94c}.score-pop__icon{grid-row:span 2;align-self:center}@keyframes score-pop-in{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}@keyframes score-pop-out{to{opacity:0;transform:translateY(-.6rem)}}@media (prefers-reduced-motion:reduce){.score-pop,.score-hud__rank--new{animation:.6s ease-in 2.6s forwards score-pop-out}.score-hud__fill{transition:none}}.map-picker__rank{color:var(--text-muted);grid-column:1/-1;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;display:flex}.score-pop--announce:has(.score-pop__icon) .score-pop__reason{grid-column:2}.rank-burst{pointer-events:none;width:0;height:0;position:absolute;top:50%;left:50%}.rank-burst__spark{left:calc(var(--size) / -2);top:calc(var(--size) / -2);width:var(--size);height:var(--size);opacity:0;animation:rank-spark 1.1s cubic-bezier(.15, .8, .3, 1) var(--delay) forwards;border-radius:50%;position:absolute;box-shadow:0 0 6px,0 0 10px #ffd54fcc}@keyframes rank-spark{0%{opacity:1;transform:translate(0)scale(1.4)}70%{opacity:1}to{opacity:0;transform:translate(var(--dx), calc(var(--dy) + 18px)) scale(.3)}}@media (prefers-reduced-motion:reduce){.rank-burst{display:none}}.map-picker__rank .conditions-icon{flex:none}.touch-ui{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.joystick{left:calc(1.25rem + env(safe-area-inset-left));bottom:calc(1.25rem + env(safe-area-inset-bottom));z-index:6;touch-action:none;background:radial-gradient(circle,#0a141e26,#0a141e73);border:2px solid #ffffff8c;border-radius:50%;place-items:center;width:132px;height:132px;display:grid;position:fixed}.joystick[hidden]{display:none}.joystick__knob{pointer-events:none;background:#ffffffbf;border-radius:50%;width:56px;height:56px;box-shadow:0 2px 8px #00000073}.joystick--held{border-color:#ffffffd9}.joystick--held .joystick__knob{background:#fffffff2}.touch-ui .mic-pill{left:auto;right:calc(1rem + env(safe-area-inset-right))}.touch-ui .fps-counter{bottom:4rem}.touch-ui .back-button kbd{display:none}.touch-ui .back-button{padding:.7rem 1.1rem}.fullscreen-button{z-index:6;cursor:pointer;background:#0a141e8c;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:44px;height:44px;display:grid;position:fixed;top:.95rem;right:calc(2.55rem + 172px)}.fullscreen-button svg{fill:none;stroke:#fff;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:22px;height:22px}.turn-prompt{display:none}@media (orientation:portrait){.touch-ui .turn-prompt{z-index:50;color:#fff;text-align:center;background:#0b1620;place-content:center;justify-items:center;gap:1rem;padding:2rem;font:600 1.2rem/1.4 system-ui,sans-serif;display:grid;position:fixed;inset:0}.turn-prompt svg{fill:none;stroke:#fff;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:96px;height:96px;animation:2.4s ease-in-out infinite turn-prompt-tilt}}@keyframes turn-prompt-tilt{0%,30%{transform:rotate(0)}55%,85%{transform:rotate(-90deg)}to{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.turn-prompt svg{animation:none;transform:rotate(-90deg)}}.ecpins-toolbar{left:calc(.75rem + env(safe-area-inset-left));z-index:6;grid-template-columns:repeat(2,3.4rem);grid-auto-rows:minmax(0,2.6rem);align-content:start;gap:.35rem;display:grid;position:fixed;top:4.25rem;bottom:.75rem}.ecpins-toolbar[hidden]{display:none}.ecpins-toolbar__button{color:#ffe14d;letter-spacing:.02em;touch-action:manipulation;cursor:pointer;background:#000000d1;border:1px solid #c8b400;border-radius:6px;min-height:0;font:700 .8rem/1 ui-monospace,Consolas,monospace}.ecpins-toolbar__button:active{color:#000;background:#c8b400}.ecpins-toolbar__button--lit{color:#000;background:#c8b400;animation:1s ease-in-out infinite ecpins-toolbar-pulse}@keyframes ecpins-toolbar-pulse{50%{box-shadow:0 0 0 4px #ffe14d73}}.touch-keyboard{opacity:0;pointer-events:none;border:0;width:1px;height:1px;padding:0;font-size:16px;position:fixed;bottom:0;left:0}
