html,body{height:100%}:root{--qdm-site-bg: color-mix(in srgb, #111827 50%, hsl(0 0% 11%) 50%);--qdm-panel-bg: color-mix(in srgb, #1f2937 50%, hsl(0 0% 17%) 50%);--qdm-radar-bg: color-mix(in srgb, #111827 50%, hsl(0 0% 15%) 50%)}body{font-family:Inter,sans-serif;margin:0}.game-body{background-color:var(--qdm-site-bg);min-height:100%;min-height:100dvh}.game-shell{display:flex;flex-direction:column;width:100%;max-width:56rem;margin-inline:auto;min-height:100%;min-height:100dvh}.game-header{display:flex;flex-direction:column;gap:.75rem;flex-shrink:0;padding:max(.75rem,env(safe-area-inset-top)) 1rem .75rem;background-color:var(--qdm-panel-bg)}.game-header__mode-actions{display:flex;gap:.5rem}.game-header__daily-btn{width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;border:2px solid #854d0e;border-radius:.5rem;background-color:#422006;color:#fde68a;box-shadow:0 0 0 1px #fde68a14;transition:background-color .15s,border-color .15s,color .15s}.game-header__time-btn{border-color:#155e75;background-color:#083344;color:#a5f3fc;box-shadow:0 0 0 1px #a5f3fc14}.game-header__daily-btn:hover,.game-header__daily-btn--active{border-color:#facc15;background-color:#713f12;color:#fef3c7}.game-header__time-btn:hover,.game-header__time-btn.game-header__daily-btn--active{border-color:#22d3ee;background-color:#164e63;color:#ecfeff}.game-header__daily-icon{width:1.5rem;height:1.5rem}.timer-progress{flex-shrink:0;width:100%;height:.35rem;overflow:hidden;background-color:#1f2937f2}.timer-progress.hidden{display:none}.timer-progress__fill{width:100%;height:100%;background-color:#22d3ee;transform-origin:left center;transform:scaleX(1);transition:transform .25s linear,background-color .2s}.timer-progress__fill--warning{background-color:#facc15}.timer-progress__fill--danger{background-color:#ef4444}.game-radar{flex:1 1 0;min-height:0;background-color:var(--qdm-radar-bg)}.game-controls{flex-shrink:0;display:flex;flex-direction:column;gap:.75rem;padding:.75rem 1rem max(.75rem,env(safe-area-inset-bottom));background-color:var(--qdm-panel-bg)}.game-controls__result:empty{display:none}.game-controls__explanation.hidden{display:none}.game-controls__submit:disabled{background-color:#374151;color:#9ca3af;cursor:not-allowed;opacity:.85;box-shadow:none}.game-controls__submit:disabled:hover{background-color:#374151}.game-controls__submit.game-controls__submit--danger,.game-controls__submit.game-controls__submit--danger:disabled,.game-controls__submit.game-controls__submit--danger:disabled:hover{background-color:#dc2626;color:#fff;opacity:1;animation:qdm-submit-danger-pulse .7s ease-in-out infinite alternate}@keyframes qdm-submit-danger-pulse{0%{box-shadow:0 0 #f8717133}to{box-shadow:0 0 0 4px #f8717159}}html.game-scrollable,html.game-scrollable body{height:auto;min-height:100%;min-height:100dvh;overflow-y:auto}html.game-scrollable .game-body{min-height:100dvh;height:auto;overflow:visible}html.game-scrollable .game-shell--scrollable{min-height:auto}html.game-scrollable .game-shell--scrollable .game-radar{flex:none}@media (min-width: 640px){html.game-scrollable .game-body{align-items:flex-start}.game-body{display:flex;align-items:flex-start;justify-content:center;padding:1rem}.game-shell{gap:1rem;min-height:auto}.game-header,.game-controls{padding:1rem;border-radius:.5rem}.timer-progress{border-radius:9999px}.game-radar{flex:none;aspect-ratio:16 / 9;border-radius:.5rem}}.game-header__score{display:flex;align-items:baseline;gap:.375rem}.game-header__score-label{margin:0;font-size:1.125rem;font-weight:600}.game-header__score-label:after{content:":"}.game-header__score-value{margin:0;font-size:1.5rem;font-weight:700;color:#4ade80}.game-header__timer{margin:0;font-size:.8125rem;font-weight:700;color:#a5f3fc}.game-header__timer b{color:#f9fafb}.game-header__levels{display:flex;flex-wrap:nowrap;gap:clamp(.25rem,1.5vw,.5rem)}.game-header__levels .level-item{flex:1 1 0;min-width:0}.game-header__levels .level-btn{width:100%;height:auto;aspect-ratio:1;margin-inline:auto;font-size:clamp(.625rem,2.8vw,.875rem)}@media (min-width: 640px){.game-header{flex-direction:row;justify-content:space-between;align-items:center;gap:1rem}.game-header__mode-actions{order:3;flex-shrink:0}.game-header__score{order:2;flex-direction:column;align-items:flex-end;gap:0;flex-shrink:0;text-align:right}.game-header__score-label:after{content:none}.game-header__score-value{font-size:1.5rem;line-height:1.25}.game-header__levels{order:1;flex:1;flex-wrap:wrap;gap:.5rem}.game-header__levels .level-item{flex:0 0 auto;min-width:auto}.game-header__levels .level-btn{width:2.5rem;height:2.5rem;max-width:none;aspect-ratio:auto;margin-inline:0;font-size:1rem}}.level-item{display:flex;flex-direction:column;align-items:center;gap:.2rem}.level-score{font-size:.625rem;font-weight:600;line-height:1;min-height:.625rem;color:#6b7280}.level-score--positive{color:#4ade80}.level-score--zero{color:#6b7280}.level-item--current .level-score--positive{color:#86efac}.level-btn{position:relative;z-index:0;width:2.25rem;height:2.25rem;border-radius:.5rem;border:2px solid #4b5563;background-color:transparent;background-image:none;color:#6b7280;font-size:.875rem;font-weight:700;line-height:1;cursor:pointer;overflow:hidden;transition:background-color .15s,border-color .15s,color .15s,--level-fill .45s ease-out;--level-fill: 0%;--level-fill-color: transparent;--level-base-color: transparent}@property --level-fill{syntax: "<percentage>"; inherits: false; initial-value: 0%;}.level-btn--fill-light{--level-fill-color: #86efac;--level-base-color: #ffffff;color:#14532d;background-image:linear-gradient(to top,var(--level-fill-color) var(--level-fill),var(--level-base-color) var(--level-fill))}.level-btn--fill-dark{--level-fill-color: #166534;--level-base-color: #374151;color:#f9fafb;text-shadow:0 1px 2px rgba(0,0,0,.45);background-image:linear-gradient(to top,var(--level-fill-color) var(--level-fill),var(--level-base-color) var(--level-fill))}.level-btn--fill-bright{--level-fill-color: #22c55e;--level-base-color: #374151;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);background-image:linear-gradient(to top,var(--level-fill-color) var(--level-fill),var(--level-base-color) var(--level-fill))}.level-btn--idle{cursor:pointer}.level-btn--idle:hover{border-color:#9ca3af;color:#d1d5db}.level-btn:disabled{cursor:default}.level-btn--passed{background-color:#374151}.level-btn--passed.level-btn--fill-dark,.level-btn--passed.level-btn--fill-bright{background-color:transparent}.level-btn--current{background-color:#fff;color:#14532d;box-shadow:0 0 0 2px #ffffff59}.level-btn--current.level-btn--fill-light{background-color:transparent}#radar-canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}#radar-canvas.radar-canvas--panning{cursor:grabbing}.radar-container--awaiting-crossing #radar-canvas:not(.radar-canvas--panning){cursor:crosshair}.aircraft-label{background-color:#000000b3;padding:4px 8px;border-radius:4px;font-size:12px;white-space:pre;line-height:1.2;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.aircraft-label--selectable{pointer-events:auto;cursor:pointer;touch-action:manipulation}.qdm-label{position:absolute;background-color:#2d1e0acc;color:gold;padding:2px 6px;border-radius:4px;font-size:11px;white-space:nowrap;line-height:1.2;pointer-events:none}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;cursor:pointer;outline:none;border-radius:9999px;height:8px;background:linear-gradient(to right,#3b82f6,#3b82f6 49%,#fff 49%,#fff 51%,#ef4444 51%,#ef4444)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:24px;width:24px;background-color:#fff;border-radius:50%;border:2px solid #4b5563;box-shadow:0 1px 3px #0003;margin-top:-8px}input[type=range]::-moz-range-thumb{height:24px;width:24px;background-color:#fff;border-radius:50%;border:2px solid #4b5563;box-shadow:0 1px 3px #0003}input[type=range].submitted::-webkit-slider-thumb{background-color:transparent;border-color:transparent}input[type=range].submitted::-moz-range-thumb{background-color:transparent;border-color:transparent}.bracket{position:absolute;top:50%;transform:translateY(-50%);font-weight:700;font-size:20px;pointer-events:none}.marker-triangle{position:absolute;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;pointer-events:none;transform:translate(-50%)}.qdm-name-modal{z-index:60}.daily-leaderboard-panel{box-sizing:border-box;display:flex;flex-direction:column;max-height:calc(100dvh - 2rem - env(safe-area-inset-top) - env(safe-area-inset-bottom));max-width:calc(100vw - 2rem - env(safe-area-inset-left) - env(safe-area-inset-right));overflow:hidden}.daily-leaderboard-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:.25rem}.daily-leaderboard-list:empty:before{content:"No scores yet.";display:block;padding:1rem;text-align:center;color:#9ca3af}.daily-leaderboard-row{display:grid;grid-template-columns:2.5rem minmax(0,1fr) auto;align-items:center;gap:.75rem;padding:.75rem;border-radius:.5rem;background-color:#111827bf}.daily-leaderboard-rank{font-weight:800;color:#fde68a}.daily-leaderboard-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.daily-leaderboard-meta{color:#9ca3af;font-size:.75rem}.daily-leaderboard-score{font-size:1.125rem;font-weight:800;color:#4ade80}.qdm-challenge-help{margin-bottom:1rem;font-size:.875rem}.qdm-challenge-help summary{color:#d1d5db;cursor:pointer;text-decoration:underline;text-underline-offset:3px;width:-moz-fit-content;width:fit-content;list-style:none}.qdm-challenge-help summary::-webkit-details-marker{display:none}.qdm-challenge-help summary:focus-visible{outline:2px solid #22d3ee;outline-offset:3px}.qdm-challenge-help p{color:#9ca3af;margin-top:.75rem;line-height:1.5}.time-leaderboard-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.time-leaderboard-tab{border:1px solid #374151;border-radius:.5rem;padding:.5rem .75rem;background-color:#111827;color:#9ca3af;font-weight:800;transition:background-color .15s,border-color .15s,color .15s}.time-leaderboard-tab:hover,.time-leaderboard-tab--active{border-color:#22d3ee;background-color:#164e63;color:#ecfeff}
