:root{font-family:Tahoma,Verdana,system-ui,sans-serif;color:#172d3a;background:#008282;font-synthesis:none}*{box-sizing:border-box}body{margin:0;padding:24px 20px 14px;background:radial-gradient(ellipse at 20% 5%,#19a1a0,transparent 55%),linear-gradient(145deg,#007779,#075963);min-height:100dvh}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;font:inherit;color:inherit;border:2px solid;border-color:#fff #6e797e #6e797e #fff;background:#d8dedd;min-height:34px;padding:6px 13px}button:active{border-color:#6e797e #fff #fff #6e797e;transform:translateY(1px)}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #df5e37;outline-offset:3px}button[aria-pressed=true]{background:#bedde8;border-color:#647984 #fff #fff #647984}button[hidden],[hidden]{display:none!important}.desktop-brand{max-width:1050px;margin:0 auto 12px;display:flex;justify-content:space-between;color:#c0edec;letter-spacing:2px;font-size:10px}.desktop-brand a{color:#f0ffff;text-decoration:none}.window{max-width:1050px;margin:auto;background:#c5cdcc;border:3px solid;border-color:#f6fffd #3b5157 #3b5157 #f6fffd;box-shadow:14px 18px 0 #003a4c45;padding:3px;display:flex;flex-direction:column}.titlebar{display:flex;align-items:center;gap:8px;height:35px;background:linear-gradient(90deg,#071b70,#175b94);color:white;padding:3px 5px}.titlebar h1{font-size:15px;margin:0;letter-spacing:.6px}.app-icon{font-size:23px}.edition{font-size:9px;letter-spacing:2px;margin-left:auto;color:#c3e2f3}.titlebar button,.close-window{height:24px;min-height:24px;width:26px;text-align:center;padding:0;color:#183648;line-height:19px;background:#d6dcd9;border:2px solid;border-color:#fff #637477 #637477 #fff;text-decoration:none;font-size:20px;font-weight:bold}.menubar{display:flex;align-items:center;gap:3px;min-height:38px;padding:3px}.menubar button{font-size:12px;border-color:transparent;background:transparent;padding:4px 10px;min-height:30px}.menubar button:hover{background:#f0f4ec;border-color:white #829193 #829193 white}.weather{margin-left:auto;padding-right:9px;font-size:10px;color:#446269;letter-spacing:1px}.instrument-panel{display:grid;grid-template-columns:repeat(4,1fr);background:#f4f6ee;border:2px solid;border-color:#849697 white white #849697;padding:12px 22px;gap:20px}.instrument-panel>div{border-right:1px solid #cfdbd8;display:grid;gap:3px}.instrument-panel>div:last-child{border:0}.instrument-panel span{font-size:9px;letter-spacing:2px;color:#51717a}.instrument-panel strong{font-family:ui-monospace,monospace;font-size:25px;font-weight:600;letter-spacing:-1px;color:#103d59}.instrument-panel small{font-size:10px;font-weight:400;letter-spacing:0}.slope{position:relative;background:#fcfdf8;height:clamp(370px,62vh,640px);overflow:hidden;border:2px solid;border-color:#72848a white white #72848a;margin-top:4px;isolation:isolate}canvas{display:block;width:100%;height:100%;touch-action:none;outline:none!important;image-rendering:pixelated}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow:auto;padding:18px;background:#f6fff93d;backdrop-filter:blur(1px)}.menu-sheet,.small-sheet{position:relative;width:min(100%,430px);background:#fffff9f5;padding:26px;border:1px solid #b6cac6;box-shadow:6px 7px 0 #355a6920;text-align:center}.stamp{font:9px ui-monospace,monospace;letter-spacing:2px;color:#537b86}.menu-sheet h2{font:900 68px/.95 Georgia,serif;letter-spacing:-6px;margin:17px 0 12px;color:#123e5a;position:relative}.menu-sheet h2 span{color:#dd563d}.menu-sheet h2 i{font:normal 19px monospace;color:#7dabba;vertical-align:top;letter-spacing:0;margin-left:5px}.tagline{font:italic 16px/1.5 Georgia,serif;color:#4c747e;margin:0 0 18px}fieldset{border:0;margin:0;padding:0}legend{width:100%;font-size:9px;letter-spacing:2px;color:#5c757e;margin-bottom:8px}.modes{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.modes button{padding:8px 2px;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:11px;background:#eff4ed}.modes b{font-size:24px;color:#1d607b}.modes small{font-size:8px;color:#56747d}.modes button[aria-pressed=true]{background:#d7e9ea;box-shadow:inset 0 -3px #157284}#mode-note{font-size:10px;line-height:1.6;margin:12px 0;min-height:32px;color:#54737c}.primary{background:#db5b3d;color:white;border-color:#fa9a7d #893c2b #893c2b #fa9a7d;font-size:11px;letter-spacing:1px;width:100%;min-height:43px;font-weight:bold}.primary span{float:right;font-size:20px;line-height:14px}.menu-hint{font:9px/1.8 ui-monospace,monospace;color:#405f6b;margin:13px 0 0}.menu-hint span{color:#82979b}#record{font:10px ui-monospace,monospace;margin:11px 0 0;color:#316b70}.touch-controls{display:flex;justify-content:space-between;gap:8px;padding:7px 4px}.touch-controls>div{display:flex;gap:6px}.touch-controls button{min-width:49px;min-height:43px;font-size:11px;touch-action:none;user-select:none}.touch-controls button.jump{background:#c6ddeb;font-weight:bold;color:#244c70}.statusbar{display:flex;justify-content:space-between;gap:10px;min-height:27px;border:1px solid;border-color:#899b9d #f7fffa #f7fffa #899b9d;padding:6px;font-size:10px}.statusbar #device{font:9px ui-monospace,monospace;color:#62787c;white-space:nowrap}.credit{font-size:10px;color:#a9d6d5;text-align:center;line-height:1.7}.credit a{color:#ecffff}#toast{position:absolute;top:20px;left:50%;transform:translateX(-50%);padding:7px 13px;color:#1e6272;background:#fffff9e8;border:1px solid #bed6d9;font:bold 12px ui-monospace,monospace;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}#toast.show{opacity:1}#yeti-warning{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);width:max-content;max-width:94%;padding:10px;background:#792d41;color:white;font-size:10px;text-align:center;box-shadow:3px 3px #ffffff80}#yeti-warning b{display:block;margin-top:4px;color:#ffd77e}.small-sheet{max-width:390px}.small-sheet h2{font:italic bold 45px Georgia,serif;margin:14px 0;color:#174059}.small-sheet p{font-size:12px;line-height:1.6;color:#536e79}.secondary{width:100%;margin-top:9px;background:#e9eee7;min-height:39px;font-size:11px}.save-row{display:flex;gap:6px;margin:5px 0}.save-row input{min-width:0;flex:1;padding:8px;background:white;border:1px solid #8faeb5;font:13px inherit}#save-form{text-align:left;border-top:1px solid #cdd8d6;margin:14px 0;padding-top:12px}#save-form label{font-size:9px;letter-spacing:1px}#save-form small{display:block;font-size:9px;line-height:1.5;color:#748a90}#save-form p{margin:5px 0;font-size:10px}#result-stats{display:flex;justify-content:space-around;gap:12px;padding:10px 0;border-top:1px solid #cdd8d6;border-bottom:1px solid #cdd8d6;font:20px ui-monospace,monospace}#result-stats small{display:block;font:9px/2 system-ui;color:#54737c}#new-best{color:#bb6332!important;font-weight:bold}dialog{width:min(92vw,550px);max-height:85dvh;overflow:auto;border:3px solid;border-color:white #627c81 #627c81 white;background:#fbfcf4;color:#214252;padding:28px;box-shadow:14px 14px #001a2933}dialog::backdrop{background:#032b3e9e}dialog h2{font:italic bold 31px Georgia,serif;margin:15px 0}dialog p{font-size:12px;line-height:1.7}dialog .dialog-close{float:right;min-height:28px;padding:0 7px;font-size:20px}details{font-size:12px}#bindings{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:12px 0}#bindings button{font-size:11px;display:flex;justify-content:space-between;align-items:center}.dv-expanded.window,.window:fullscreen{max-width:none;width:100%;height:100dvh;box-shadow:none}.dv-expanded .slope,.window:fullscreen .slope{flex:1;min-height:180px;height:auto}.dv-expanded .instrument-panel,.window:fullscreen .instrument-panel{padding:7px 18px}#skiWindow #dv-screen-exit{right:8px;top:40px}.dv-expanded .statusbar{flex-shrink:0}
@media(min-width:800px){.touch-controls{padding:7px 13px}.menu-sheet{padding:25px 34px}.slope{min-height:540px}}
@media(max-width:600px){body{padding:12px 7px 7px}.desktop-brand{margin:0 2px 10px;font-size:9px;letter-spacing:1px}.desktop-brand>span{display:none}.window{box-shadow:5px 6px #003a4c45}.edition{font-size:7px;letter-spacing:1px}.menubar{gap:0}.menubar button{font-size:10px;padding:4px 7px}.weather{font-size:8px;padding:0 3px;letter-spacing:0}.instrument-panel{padding:9px 10px;gap:8px}.instrument-panel span{font-size:7px;letter-spacing:1px}.instrument-panel strong{font-size:20px}.instrument-panel small{font-size:8px}.slope{height:clamp(420px,62dvh,590px)}.overlay{padding:10px}.menu-sheet,.small-sheet{padding:20px 17px}.menu-sheet h2{font-size:57px;letter-spacing:-5px}.tagline{font-size:14px;margin-bottom:15px}.menu-hint{font-size:8px}.touch-controls{gap:4px;padding:7px 0}.touch-controls>div{gap:4px}.touch-controls button{min-width:42px;padding:7px;font-size:10px}.statusbar{font-size:9px}.statusbar #device{display:none}.credit{font-size:8px;margin:12px 6px}.small-sheet h2{font-size:38px}.stamp{font-size:8px;letter-spacing:1px}}
@media(max-height:550px) and (orientation:landscape){body{padding:5px}.desktop-brand,.credit{display:none}.slope{height:350px}.dv-expanded .instrument-panel,.window:fullscreen .instrument-panel{padding:3px 15px}.dv-expanded .instrument-panel strong,.window:fullscreen .instrument-panel strong{font-size:16px}.dv-expanded .menubar,.window:fullscreen .menubar{min-height:29px}.overlay{align-items:flex-start}.menu-sheet{margin:auto}.dv-expanded .touch-controls button,.window:fullscreen .touch-controls button{min-height:34px}.dv-expanded .statusbar,.window:fullscreen .statusbar{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Center when there is room; scroll from the top on short screens. */
.overlay{align-items:flex-start}.menu-sheet,.small-sheet{margin:auto;flex-shrink:0}
