:root {
  color-scheme: dark;
  --bg: #101416;
  --ink: #f5f4ed;
  --ink-2: #ced0cf;
  --ink-3: #a8b0b0;
  --amber: #ffba47;
  --amber-dark: #e99d21;
  --green: #7be2b2;
  --blue: #92c7f8;
  --glass: rgba(18, 24, 27, .87);
  --border: rgba(231, 240, 241, .17);
  --line: rgba(231, 240, 241, .11);
  --radius: 22px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --mono: ui-monospace, "SFMono-Regular", Consolas, monospace;
  --ease: cubic-bezier(.2, .8, .2, 1);
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  font-family: var(--font);
  color: var(--ink);
  background: var(--bg);
  font-synthesis: none;
  -webkit-font-smoothing: antialiased;
}
* { box-sizing: border-box; }
html, body { margin: 0; width: 100%; height: 100%; overflow: hidden; }
body { font-size: 14px; line-height: 1.4; }
button, input { font: inherit; color: inherit; }
button { cursor: pointer; border: 0; background: none; padding: 0; -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
button:disabled { cursor: default; opacity: .5; }
input { min-width: 0; }
button, a, input { outline: none; }
:focus-visible { outline: 2px solid var(--amber); outline-offset: 4px; }
button:focus-visible { border-radius: 10px; }
[hidden] { display: none !important; }
h1, h2, h3, p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
.icon-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { display: block; width: 22px; height: 22px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; stroke-linejoin: round; }

/* One coordinate space contains the image, every line, every label and the skier. */
#map-stage { position: fixed; inset: 0; overflow: hidden; overflow: clip; background: #5d778a; touch-action: none; }
#map3d-canvas { position: absolute; inset: 0; display: block; width: 100%; height: 100%; opacity: 0; visibility: hidden; pointer-events: none; touch-action: none; }
#map-screen-labels { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; visibility: hidden; pointer-events: none; }
#weather-layer { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 3; pointer-events: none; }
body.map3d-active #map3d-canvas { opacity: 1; visibility: visible; pointer-events: auto; }
body.map3d-active #map-screen-labels { visibility: visible; }
body.map3d-active #map-content { visibility: hidden; pointer-events: none; }
body.map3d-active .map-atmosphere { background: linear-gradient(180deg, #080f173d, transparent 22%, transparent 70%, #080f172e); }
#map-content { position: absolute; inset: 0 auto auto 0; width: 100%; height: 100%; transform-origin: 0 0; will-change: transform; }
#terrain-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: fill; user-select: none; pointer-events: none; filter: saturate(.78) contrast(1.035) brightness(.88); transition: filter 380ms var(--ease); }
#map-overlay, #map-labels { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
#map-overlay { pointer-events: none; }
#map-labels { pointer-events: none; }
.map-atmosphere { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(8, 15, 23, .66) 0%, rgba(8, 15, 23, .14) 16%, transparent 36%, transparent 64%, rgba(8, 15, 23, .3) 100%); }
body.trails-view #terrain-image, body[data-view="trails"] #terrain-image { filter: saturate(.1) contrast(.9) brightness(.62); }
.trail-line, .run-path, .lift-line, .route-line, .route-halo { fill: none; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.trail-line, .run-path { stroke-width: 5; filter: drop-shadow(0 1px 2px #101416); }
.lift-line { stroke: var(--amber); stroke-width: 2.5; stroke-dasharray: 2 6; }
.route-line { stroke: #ffc760; stroke-width: 7; filter: drop-shadow(0 0 6px rgba(255, 186, 71, .75)); }
.route-halo { stroke: rgba(23, 23, 19, .88); stroke-width: 13; }
.trail-hit { pointer-events: stroke; cursor: pointer; }
.trail-hit:focus-visible { outline: none; stroke: #ffcf747a; filter: drop-shadow(0 0 4px #ffe0a7); }

.map-label { position: absolute; display: flex; align-items: center; gap: 7px; min-height: 44px; padding: 7px 12px; transform: translate(-50%, -50%); white-space: nowrap; font-size: 12px; font-weight: 600; letter-spacing: .015em; color: #fafaf6; background: rgba(14, 22, 26, .82); border: 1px solid rgba(235, 244, 243, .26); border-radius: 12px; box-shadow: 0 3px 14px rgba(2, 8, 12, .18); pointer-events: auto; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); transition: background 160ms, border-color 160ms, opacity 160ms; }
.map-label:hover { background: #18242b; border-color: rgba(255, 255, 255, .7); z-index: 7; }
.map-label.is-selected { color: #1b1c18; background: var(--amber); border-color: #ffe0a7; box-shadow: 0 0 0 4px rgba(255, 186, 71, .15), 0 4px 20px #0004; z-index: 8; }
.map-label.is-muted { opacity: .58; }
.map-label.type-lift { color: #ffd58e; background: rgba(28, 29, 23, .87); }
.map-label.type-lodge { padding-inline: 12px; color: #fbfbf6; background: rgba(15, 22, 25, .88); }
.map-label .label-icon, .map-label .difficulty-sign { width: 12px; height: 12px; flex: none; }
.map-label .label-status { font-family: var(--mono); font-size: 9px; font-weight: 400; color: #bdc2bf; }
.map-label .label-symbol { font-size: 14px; line-height: 1; flex: none; }
.map-label .label-state { color: #c8d0d1; font: 9px var(--mono); text-transform: uppercase; }
.difficulty-green .label-symbol { color: var(--green); }
.difficulty-blue .label-symbol { color: var(--blue); }
.difficulty-black .label-symbol, .difficulty-double-black .label-symbol { color: #eef3ef; }
.map-label.is-selected .label-symbol { color: #23372e; }
.difficulty-green .difficulty-sign, .difficulty-green .label-icon { border-radius: 50%; background: var(--green); }
.difficulty-blue .difficulty-sign, .difficulty-blue .label-icon { border-radius: 2px; background: var(--blue); }
.difficulty-black .difficulty-sign, .difficulty-black .label-icon, .difficulty-double-black .difficulty-sign { width: 10px; height: 10px; transform: rotate(45deg); background: #252b2f; border: 1.5px solid #f1f3ef; }
#skier-marker { position: absolute; z-index: 6; display: flex; align-items: center; gap: 8px; transform: translate(-11px, -11px); pointer-events: none; }
#skier-marker-3d { position: absolute; z-index: 6; display: flex; align-items: center; gap: 8px; transform: translate(-50%, -50%); pointer-events: none; }
.skier-dot { width: 22px; height: 22px; flex: none; border-radius: 50%; background: var(--amber); border: 3px solid #fff6d8; box-shadow: 0 0 0 9px #ffb84629, 0 0 0 18px #ffb84615, 0 2px 12px #33220285; }
.skier-caption { padding: 5px 10px; border-radius: 8px; background: rgba(22, 25, 24, .9); color: #ffdc99; font-size: 12px; font-weight: 650; }

/* Temperature values stay aligned to the screen as the terrain moves beneath them. */
.weather-pin { position: absolute; display: grid; grid-template-columns: auto auto; align-items: center; gap: 2px 11px; min-width: 113px; min-height: 59px; padding: 10px 12px; transform: translate(-50%, -100%); color: #e8f6ff; background: #102632f2; border: 1px solid #bddff780; border-radius: 13px; box-shadow: 0 5px 20px #0615203b, inset 0 1px 0 #e9f7ff0b; text-align: left; pointer-events: auto; white-space: nowrap; backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.weather-pin::before { content: ""; position: absolute; bottom: -3px; left: calc(50% - 3px); width: 6px; height: 6px; border-radius: 50%; background: #d7edff; box-shadow: 0 0 0 3px #16334390; }
.weather-pin:hover { background: #183846; border-color: #ecf9ff; z-index: 9; }
.weather-pin.is-selected, .weather-pin[aria-pressed="true"] { border-color: #e3f5ff; box-shadow: 0 0 0 3px #c9e8ff20, 0 6px 22px #0615204d; z-index: 10; background: #173948f5; }
.weather-pin-label { font-size: 11px; font-weight: 550; color: #def0fc; }
.weather-pin-temp { grid-column: 2; grid-row: 1 / span 2; color: #f1f9ff; font-size: 26px; font-weight: 450; line-height: 1; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.weather-pin-source { display: flex; align-items: center; gap: 5px; color: #a8c5d7; font: 9px/1.4 var(--mono); text-transform: uppercase; letter-spacing: .025em; }
.weather-pin-source::before { content: ""; width: 4px; height: 4px; border-radius: 50%; background: #c6e4f8; }
.weather-pin.is-modelled .weather-pin-source::before, .weather-pin[data-source="modelled"] .weather-pin-source::before, .weather-pin[data-source="forecast"] .weather-pin-source::before, .weather-pin-source.is-modelled::before, .weather-pin-source.is-forecast::before { border-radius: 0; transform: rotate(45deg); background: transparent; border: 1px solid #c6e4f8; width: 5px; height: 5px; }
.weather-pin.is-stale, .weather-pin[data-stale="true"] { border-style: dashed; }
.weather-pin.is-unavailable { border-color: #a9c1cc50; color: #a9c1cc; }

.weather-strip { position: absolute; left: 28px; bottom: 68px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); width: min(546px, calc(100vw - 460px)); min-height: 65px; padding: 5px; gap: 3px; border: 1px solid #c5e4f22e; border-radius: 17px; background: #12232ee8; box-shadow: 0 8px 25px #00112026; backdrop-filter: blur(22px); -webkit-backdrop-filter: blur(22px); pointer-events: auto; }
.weather-strip > button, .weather-item { display: flex; align-items: center; justify-content: space-between; gap: 6px; min-width: 0; min-height: 53px; padding: 8px 11px; border: 1px solid transparent; border-radius: 12px; text-align: left; color: #cfe3ef; }
.weather-strip > button:hover, .weather-strip > button.is-selected, .weather-strip > button[aria-pressed="true"] { border-color: #caeaff30; background: #c8e8ff0b; }
.weather-strip > button + button { box-shadow: -1px 0 0 #c9e6f011; }
.weather-strip .weather-item { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; gap: 1px 8px; }
.weather-strip .weather-pin-label, .weather-item-label { display: block; font-size: 10px; color: #c6dce9; font-weight: 500; }
.weather-strip .weather-pin-temp, .weather-item-temp { display: block; color: #edf8ff; font-size: 24px; font-weight: 450; line-height: 1.1; letter-spacing: -.05em; font-variant-numeric: tabular-nums; }
.weather-strip .weather-pin-source, .weather-item-source { font-size: 8px; color: #9cb8c9; letter-spacing: 0; margin-top: 3px; }
.weather-item-label { grid-column: 1; grid-row: 1; white-space: nowrap; }
.weather-item-temp { grid-column: 2; grid-row: 1 / span 2; justify-self: end; }
.weather-item-source { grid-column: 1; grid-row: 2; }
.weather-strip .weather-pin-source::before { width: 3px; height: 3px; }
.weather-reading { margin: 17px 0; color: #def2ff; font-size: 65px; line-height: 1; letter-spacing: -.065em; font-variant-numeric: tabular-nums; }
.weather-reading > span { margin-left: 3px; color: #bcd7e8; font-size: 24px; letter-spacing: -.02em; }
.weather-meta { color: #b5cedd; font-size: 11px; line-height: 1.6; }
.weather-location { margin: 11px 0; color: #cedde3; font-size: 12px; line-height: 1.5; }
.info-panel { position: absolute; top: max(104px, calc(var(--safe-top) + 92px)); right: 28px; width: 356px; max-height: calc(100svh - max(104px, calc(var(--safe-top) + 92px)) - 62px); padding: 22px; overflow-y: auto; overscroll-behavior: contain; pointer-events: auto; border-radius: var(--radius); border: 1px solid #e2eaeb28; background: linear-gradient(145deg, rgba(255, 255, 255, .035), transparent 60%), rgba(15, 23, 27, .93); box-shadow: inset 0 1px 0 #ffffff0c, 0 15px 55px #04101938; backdrop-filter: blur(28px); -webkit-backdrop-filter: blur(28px); scrollbar-width: thin; scrollbar-color: #ffffff36 transparent; }
.panel-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.kicker, .section-label { font: 10px/1.5 var(--mono); font-weight: 400; letter-spacing: .12em; color: #aebdc0; text-transform: uppercase; }
.kicker { margin-bottom: 8px; color: #e2c793; }
.panel-title { color: #fbfaf3; font-size: 28px; font-weight: 580; line-height: 1.12; letter-spacing: -.045em; }
.panel-subtitle { margin-top: 9px; color: #c6d1d2; font-size: 13px; line-height: 1.55; }
.panel-close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin: -7px -9px 0 0; border-radius: 12px; color: #c7d0d2; background: #ffffff08; font-size: 23px; font-weight: 300; }
.panel-close:hover { background: #ffffff15; }
.section-label { margin-top: 22px; margin-bottom: 10px; }
.entity-list { display: grid; gap: 5px; }
.entity-row { width: 100%; display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 11px 10px; border-radius: 13px; text-align: left; background: #ffffff04; border: 1px solid transparent; }
.entity-row:hover, .entity-row.is-selected { background: #ffffff0b; border-color: #ffffff1b; }
.entity-icon { flex: none; display: grid; place-items: center; width: 31px; height: 31px; border-radius: 8px; color: #efcf96; background: #ffffff08; font-size: 18px; }
.entity-icon.green, .entity-icon.difficulty-green { color: var(--green); }
.entity-icon.blue, .entity-icon.difficulty-blue { color: var(--blue); }
.entity-copy { min-width: 0; flex: 1; }
.entity-title { display: block; color: #f5f5ee; font-weight: 550; font-size: 14px; line-height: 1.35; }
.entity-meta { display: block; margin-top: 3px; color: #acbec1; font-size: 11px; line-height: 1.45; }
.row-arrow { color: #aabdc2; font-size: 16px; }
.home-answer { display: flex; align-items: center; gap: 14px; margin: 8px 0 19px; padding: 18px 0; border-block: 1px solid #ffffff10; font-size: 12px; color: #b4c4c6; line-height: 1.7; }
.answer-count { color: #f3eadb; font-size: 57px; line-height: 1; font-weight: 400; letter-spacing: -.07em; }
.home-answer strong { color: #ecf0e9; font-weight: 550; }
.level-summary { width: 100%; justify-content: flex-start; font-size: 11px; }
.level-summary > span { margin-left: auto; color: #f6d59a; }
.groomed-note { margin-top: 10px; color: #c8e6d8; font-size: 11px; }
.elevation-profile { margin-block: 16px; padding: 12px; background: #ffffff04; border: 1px solid #ffffff11; border-radius: 12px; color: #adcbbb; }
.elevation-profile .section-label { margin: 0 0 6px; }
.elevation-profile svg { display: block; width: 100%; height: 90px; }
.profile-caption { display: flex; justify-content: space-between; color: #adbdc0; font: 9px var(--mono); }
.completion-symbol { display: grid; place-items: center; width: 60px; height: 60px; margin: 25px auto; color: #ffcc71; border: 1px solid #ffcc7170; border-radius: 50%; font-size: 30px; background: #ffba4710; }
.notice.emphasis { color: #f7dca8; }
.route-note { border: 1px solid #ffba4720; border-radius: 10px; padding: 10px 12px; background: #ffba4705; }
.status-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 25px; padding: 4px 8px; border: 1px solid #d2ead220; border-radius: 7px; color: #c2e8d1; background: #87d9b20a; font: 9px/1.4 var(--mono); letter-spacing: .04em; }
.status-chip.closed, .status-chip.status-closed { color: #ccd0d1; background: #ffffff05; border-color: #ffffff1b; }
.status-chip.opening { color: #e9d39f; background: #ffba4708; border-color: #ffba4728; }
.status-chip.status-scheduled { color: #e9d39f; background: #ffba4708; border-color: #ffba4728; }
.stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.stat { padding: 12px; border: 1px solid var(--line); border-radius: 12px; background: #ffffff03; }
.stat strong { display: block; font-size: 21px; font-weight: 500; letter-spacing: -.035em; color: #f6f5ed; }
.stat span { display: block; margin-top: 3px; font-size: 10px; color: #b1c0c3; }
.primary-button { display: flex; justify-content: center; align-items: center; gap: 8px; width: 100%; min-height: 51px; margin-top: 18px; padding: 13px 15px; border: 1px solid #ffd994a6; border-radius: 13px; color: #222418; font-weight: 650; font-size: 14px; letter-spacing: -.012em; background: linear-gradient(145deg, #ffc86a, #f9b13d); box-shadow: inset 0 1px 0 #ffe7b777, 0 4px 12px #060e181c; }
.primary-button:hover { background: #ffd080; }
.primary-button:focus-visible { outline-color: #fff1d4; }
.secondary-button { display: flex; justify-content: center; align-items: center; gap: 7px; min-height: 46px; padding: 10px 13px; border: 1px solid #ffffff25; border-radius: 12px; color: #dce4e4; background: #ffffff04; font-size: 12px; }
.secondary-button:hover { background: #ffffff0c; }
.info-panel > .secondary-button { width: 100%; margin-top: 9px; }
.button-row { display: flex; gap: 8px; margin-top: 9px; }
.button-row > * { flex: 1; }
.button-row .primary-button { margin-top: 0; }
.level-options { display: grid; gap: 8px; margin-top: 18px; }
.level-option { display: flex; align-items: center; gap: 10px; min-height: 58px; width: 100%; padding: 14px; border: 1px solid #ffffff25; border-radius: 13px; background: #ffffff03; text-align: left; color: #e4e9e8; font-size: 14px; }
.level-option.is-selected, .level-option[aria-pressed="true"] { color: #ffe0a4; background: #ffba4710; border-color: #ffba4780; }
.level-option small { display: block; color: #b8c5c6; font-size: 11px; margin-top: 2px; }
.level-options .difficulty-green { color: var(--green); }
.level-options .difficulty-blue { color: var(--blue); }
.level-options .difficulty-black { color: #eef2ee; }
.route-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin: 13px 0 18px; color: #d9e1de; font-size: 12px; }
.route-steps { display: grid; gap: 5px; margin-top: 14px; }
.route-step { width: 100%; display: flex; align-items: flex-start; gap: 12px; min-height: 65px; padding: 12px 10px; border: 1px solid transparent; border-radius: 12px; text-align: left; }
.route-step:hover { background: #ffffff06; }
.route-step.is-current, .route-step.is-active, .route-step[aria-current="step"] { background: #ffba470c; border-color: #ffba4733; }
.step-number { display: grid; place-items: center; width: 28px; height: 28px; flex: none; margin-top: 2px; border: 1px solid #ffcf8b4d; border-radius: 50%; color: #ffd288; background: #ffba470a; font: 12px var(--mono); }
.route-step.is-current .step-number, .route-step.is-active .step-number { color: #2c2819; background: #ffc768; border-color: #ffda91; }
.route-step.is-complete .step-number { color: #a1dac1; border-color: #a1dac150; }
.step-copy { min-width: 0; }
.step-title { display: block; margin-top: 3px; color: #f0f1ea; font-size: 13px; font-weight: 550; }
.step-detail { display: block; margin-top: 3px; color: #b0c0c4; font-size: 11px; line-height: 1.5; }
.route-progress { margin: 17px 0 0; height: 4px; overflow: hidden; border-radius: 9px; background: #ffffff13; }
.route-progress > span { display: block; height: 100%; border-radius: inherit; background: var(--amber); transition: width 260ms var(--ease); }
.empty-state { padding: 18px 0; color: #c5d0d1; font-size: 13px; line-height: 1.6; }
.notice { margin-top: 17px; padding-top: 14px; border-top: 1px solid #ffffff12; color: #aabcbf; font-size: 11px; line-height: 1.55; }


/* Quiet shell: search and layers above the map, contextual details on demand. */
.interface { position:fixed;inset:0;pointer-events:none; }
.topbar { position:absolute;z-index:40;top:max(18px,calc(var(--safe-top) + 10px));left:24px;width:min(680px,calc(100% - 48px));display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:13px;align-items:center;pointer-events:auto; }
.brand { display:flex;align-items:center;gap:7px;min-height:46px;white-space:nowrap;color:#fffdf4;font-size:20px;font-weight:650;letter-spacing:-.055em;text-shadow:0 1px 5px #10232a70; }
.brand-mark { width:23px;height:23px;color:var(--amber); }
.brand-domain { font-weight:450;color:#f0f4ef; }
.demo-badge { display:flex;align-items:center;gap:4px;margin-left:5px;color:#e5d2ad;font:8px var(--mono);letter-spacing:.06em; }
.status-dot { width:4px;height:4px;border-radius:50%;background:#ffca75; }
.discovery-dock { position:relative;min-width:0; }
.search-field { display:flex;align-items:center;gap:10px;min-height:46px;padding:0 13px;border:1px solid #eaf4ef38;border-radius:13px;background:#152832dd;box-shadow:0 4px 18px #10212b1c;backdrop-filter:blur(16px); }
.search-field .icon { width:18px;height:18px;color:#d9e6e9; }
.search-field:focus-within { border-color:#ffd293; }
#search-input { width:100%;height:44px;padding:0;border:0;background:transparent;font-size:14px;outline:none; }
#search-input::placeholder { color:#cbdade;opacity:1; }
.search-hint { color:#9bb2bc;font:11px var(--mono); }
.search-results { position:absolute;z-index:60;top:calc(100% + 8px);left:0;right:0;max-height:min(62svh,420px);overflow-y:auto;overscroll-behavior:contain;padding:7px;border:1px solid var(--border);border-radius:15px;background:var(--glass);box-shadow:0 14px 36px #10212b35; }
.search-results .entity-row { min-height:58px; }
summary { cursor:pointer;list-style:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent; }
summary::-webkit-details-marker { display:none; }
.map-options,.camera-options { position:relative; }
.map-options > summary { display:flex;justify-content:center;align-items:center;gap:7px;min-height:46px;padding:0 13px;border:1px solid #eaf4ef38;border-radius:13px;background:#152832dd;color:#e2ebeb;font-size:12px;backdrop-filter:blur(16px); }
.map-options > summary .icon { width:17px;height:17px; }
.map-options[open] > summary,.camera-options[open] > summary { border-color:#f4d4a178;color:#ffe2ad;background:#1b303bee; }
.options-panel,.camera-panel { position:absolute;z-index:50;padding:16px;border:1px solid #e5f0ec38;border-radius:17px;background:var(--glass);box-shadow:0 16px 40px #091c2b36;backdrop-filter:blur(20px);overscroll-behavior:contain;pointer-events:auto; }
.options-panel { top:calc(100% + 9px);right:0;width:286px;max-height:calc(100svh - 104px);overflow-y:auto; }
.options-panel .section-label:first-child { margin-top:0; }
.discover-shortcuts,.discovery-shortcuts { display:grid;grid-template-columns:1fr 1fr;gap:6px; }
.shortcut { display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#ffffff04;color:#e1e9e8;font-size:12px; }
.shortcut .icon { width:17px;height:17px; }
.easy-shortcut { grid-column:1 / -1;justify-content:flex-start; }
.easy-shortcut > .icon { margin-left:auto; }
.easy-sign { width:9px;height:9px;border-radius:50%;background:var(--green); }
.view-switch { display:grid;grid-template-columns:1fr 1fr;padding:3px;border:1px solid var(--line);border-radius:10px;background:#ffffff03; }
.view-button { min-height:40px;border-radius:7px;color:#b8cbd0;font-size:12px; }
.view-button.is-active,.view-button[aria-pressed="true"] { color:#f5dfb7;background:#ffffff09; }
.weather-toggle,.ability-button,.glove-button { display:flex;align-items:center;gap:9px;min-height:44px;width:100%;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#ffffff03;color:#dae6e7;font-size:12px;text-align:left; }
.weather-toggle,.glove-button { margin-top:7px; }
.weather-toggle-icon { color:#b7dff8;font-size:22px;line-height:1; }
.weather-toggle[aria-pressed="true"],.glove-button[aria-pressed="true"] { color:#e2f3fb;border-color:#b3dff454;background:#b5dff508; }
.ability-shape { width:9px;height:9px;background:var(--blue); }
.small-chevron { width:5px;height:5px;margin-left:auto;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg); }
.glove-button .icon { width:18px;height:18px; }
.options-status { margin-top:16px;padding-top:12px;border-top:1px solid var(--line);color:#a9c0c9;font-size:10px;line-height:1.7; }
.options-attribution { display:grid;margin-top:10px; }
.options-attribution a { display:flex;align-items:center;min-height:44px;color:#bdcfd6;font-size:10px;text-decoration:none; }
.options-attribution a:hover { color:#ffddb0;text-decoration:underline; }
.map-controls:has(#camera-options[open]) { z-index:45; }
.map-controls { position:absolute;z-index:15;right:22px;bottom:max(108px,calc(var(--safe-bottom) + 94px));display:grid;gap:7px;width:44px;pointer-events:auto; }
.map-control { display:grid;place-items:center;width:44px;height:44px;border:1px solid #e4eee833;border-radius:11px;background:#142935dc;color:#edf3ee;backdrop-filter:blur(12px); }
.map-control:hover { background:#23404bec; }
.map-control .icon { width:19px;height:19px; }
.map-control.is-active,.map-control[aria-pressed="true"] { color:#ffe0a4;border-color:#ffc57869; }
.compass-control { display:grid;grid-template-rows:10px 20px;align-content:center;gap:2px; }
.compass-letter { color:#dce8e6;font:8px var(--mono); }
#compass-arrow { width:12px;height:20px;color:#f3c578;fill:currentColor;transform-origin:center; }
.zoom-controls { display:grid;border:1px solid #e4eee833;border-radius:11px;overflow:hidden;background:#142935dc;backdrop-filter:blur(12px); }
.zoom-controls .map-control { border:0;border-radius:0;background:transparent; }
.zoom-controls .map-control + .map-control { border-top:1px solid #e4eee81a; }
.camera-options > summary { font-size:11px;font-weight:500; }
.camera-panel { right:calc(100% + 9px);bottom:0;width:210px;max-height:calc(100svh - 196px);overflow-y:auto; }
.viewer-capability { margin:0 0 8px;color:#edf3ee;font-size:12px;font-weight:650; }
.viewer-explanation { margin:0 0 12px;color:#b9ced8;font-size:11px;line-height:1.5; }
.whitehorn-pilot { margin:12px 0 15px;padding:11px;border:1px solid #e4c58c36;border-radius:12px;background:#f2cb7a06; }
.pilot-focus { display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:44px;color:#ffe1ae;font-size:12px;font-weight:600;text-align:left; }
.pilot-focus span { font-size:17px; }
.pilot-comparison { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:5px; }
.pilot-comparison button { min-height:44px;padding:7px 3px;border:1px solid #d8e8ee25;border-radius:9px;background:#ffffff04;color:#c8dce6;font-size:11px; }
.pilot-comparison button[aria-pressed="true"] { color:#ffe1ac;border-color:#efc07663;background:#f4ce7910; }
.pilot-status { min-height:58px;margin-top:9px;color:#b9cbd0;font-size:10px;line-height:1.55; }
.pilot-status.is-error { color:#ffd5ac; }
body.glove-mode .pilot-focus,body.glove-mode .pilot-comparison button { min-height:60px; }
.graphics-details { margin-top:12px;color:#a9c0c8;font-size:10px; }
.graphics-details summary { cursor:pointer;min-height:32px;display:flex;align-items:center; }
.graphics-details pre { white-space:pre-wrap;overflow-wrap:anywhere;font:10px/1.6 var(--mono);margin:4px 0 0; }
.rotation-controls { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px; }
.rotation-controls:has(#drag-mode-button[hidden]) { grid-template-columns:repeat(2,minmax(0,1fr)); }
.control-label { grid-column:1 / -1;color:#c4d7dc;font:10px var(--mono);margin-bottom:2px; }
.rotation-label { display:flex;justify-content:space-between;align-items:center; }
.camera-panel .map-control { width:100%; }
.rotate-control { font-size:25px; }
.drag-mode-control { font-size:11px; }
.orientation-controls { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px; }
.tilt-control { display:flex;justify-content:center;align-items:center;gap:6px; }
.tilt-control span,.mode-control { font-size:11px; }
.map-gesture-hint { margin-top:13px;color:#a9c0c8;font-size:10px;line-height:1.6; }
.touch-gesture-hint { display:none; }
/* Unselected place names are quiet annotations; selection earns the amber plate. */
.map-label { min-height:44px;padding:3px 7px;gap:6px;background:transparent;border-color:transparent;border-radius:9px;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;font-size:12px;font-weight:650;text-shadow:0 1px 2px #101e29,0 0 4px #101e29,-1px 0 1px #101e29,1px 0 1px #101e29; }
.map-label.type-lodge,.map-label.type-lift { background:transparent;padding-inline:7px; }
.map-label.type-lift { font-size:11px;color:#ffe0a7; }
.map-label:hover,.map-label:focus-visible { background:#132832cb;border-color:#ffffff45; }
.map-label.is-selected { background:var(--amber);color:#252a22;border-color:#ffe0a8;text-shadow:none;box-shadow:0 2px 12px #0a19272b; }
.type-lodge .label-symbol { color:#ffdd9f; }
#skier-marker,#skier-marker-3d { transform:translate(-9px,-9px); }
.skier-dot { width:18px;height:18px;border-width:3px;box-shadow:0 0 0 6px #ffbd4f24,0 2px 9px #5e421950; }
.skier-caption { padding:0;background:transparent;color:#ffe0a5;font-size:11px;text-shadow:0 1px 3px #142332,0 0 5px #142332; }
.weather-strip { z-index:12;left:50%;right:auto;bottom:max(35px,calc(var(--safe-bottom) + 22px));width:min(356px,calc(100% - 104px));min-height:0;padding:3px;gap:0;border-color:#e4eff02e;border-radius:15px;background:#172e3be6;transform:translateX(-50%);backdrop-filter:blur(14px); }
.weather-strip .weather-item { display:grid;grid-template-columns:1fr;grid-template-rows:auto auto;justify-items:center;align-content:center;min-width:0;min-height:49px;padding:5px 6px;gap:1px;border:1px solid transparent;border-radius:11px;text-align:center; }
.weather-strip .weather-item .weather-item-label { grid-column:1;grid-row:1;color:#bed3de;font-size:9px;line-height:1.4; }
.weather-strip .weather-item .weather-item-temp { grid-column:1;grid-row:2;justify-self:center;color:#e9f7ff;font-size:20px;line-height:1.15;font-weight:450;letter-spacing:-.04em; }
.weather-item-source { display:none; }
.info-panel { z-index:20;top:max(84px,calc(var(--safe-top) + 74px));right:84px;width:340px;max-height:calc(100svh - 182px);padding:21px;border-radius:20px;background:var(--glass); }
.panel-title { font-size:27px;font-weight:550; }
.panel-controls { display:flex;align-items:center;gap:2px;flex:none;margin:-5px -6px 0 0; }
.panel-controls .panel-close { margin:0; }
.panel-expand { display:none;width:44px;height:44px;border-radius:11px;background:#ffffff04;color:#ccdce0;font-size:16px; }
.level-options { grid-template-columns:repeat(3,minmax(0,1fr));gap:5px; }
.level-option { min-height:46px;justify-content:center;padding:8px 5px;font-size:10px;line-height:1.4; }
.map-footer { position:absolute;z-index:12;left:24px;bottom:max(3px,calc(var(--safe-bottom) - 7px));display:flex;align-items:center;gap:11px;color:#ebf1ec;font-size:9px;line-height:1.3;text-shadow:0 1px 3px #152530;pointer-events:auto; }
.footer-attribution { display:flex;gap:10px; }
.footer-attribution a { display:flex;align-items:center;min-height:27px;color:#e0ebeb;text-decoration:none; }
.footer-attribution a:hover { color:#ffe0b4;text-decoration:underline; }
.toast { position:absolute;z-index:70;left:50%;bottom:112px;max-width:calc(100% - 32px);width:max-content;padding:11px 15px;border:1px solid #ead3a73a;border-radius:12px;color:#edf3ed;background:#17303bea;font-size:11px;transform:translateX(-50%);pointer-events:none;opacity:0;visibility:hidden; }
.toast.is-visible { opacity:1;visibility:visible; }
body.glove-mode .map-control,body.glove .map-control { width:60px;height:60px; }
body.glove-mode .map-controls,body.glove .map-controls { width:60px; }
body.glove-mode .camera-panel .map-control,body.glove .camera-panel .map-control { width:100%; }
body.glove-mode .weather-strip .weather-item,body.glove .weather-strip .weather-item { min-height:60px; }
body.glove-mode .shortcut,body.glove-mode .weather-toggle,body.glove-mode .ability-button,body.glove-mode .glove-button,body.glove-mode .primary-button,body.glove-mode .secondary-button,body.glove-mode .level-option { min-height:60px;font-size:14px; }
body.glove-mode .entity-row,body.glove-mode .route-step { min-height:72px; }
body.glove-mode .map-label { min-height:60px;font-size:14px; }
body.glove-mode .map-options > summary,body.glove-mode .search-field { min-height:60px; }
body.glove-mode #search-input { height:58px; }
@media (max-width:899px) {
 .topbar { top:max(12px,calc(var(--safe-top) + 8px));left:12px;width:calc(100% - 24px);gap:8px; }
 .brand { gap:5px;font-size:18px; }.brand-mark { width:22px;height:22px; }.demo-badge { display:none; }
 .search-field { padding:0 10px;gap:7px; }#search-input { font-size:16px; }.search-hint { display:none; }
 .map-options > summary { min-width:44px;padding:0;font-size:11px; }.map-options > summary > span { display:none; }.map-options > summary .icon { width:19px;height:19px; }
 .options-panel { width:min(300px,calc(100vw - 24px));max-height:calc(100svh - var(--safe-top) - 92px); }
 .search-results { position:fixed;top:max(73px,calc(var(--safe-top) + 69px));left:12px;right:12px;max-height:calc(100svh - var(--safe-top) - 100px); }
 .map-controls { right:14px; }
 .interface:has(#info-panel:not([hidden])) .map-controls { bottom:calc(var(--sheet-height, 0px) + 12px); }
 .interface:has(#info-panel:not([hidden])) .map-controls > .zoom-controls,.interface:has(#info-panel:not([hidden])) .map-controls > .recenter-control { display:none; }
 .interface:has(#info-panel.expanded:not([hidden])) .map-controls { display:none; }
 .camera-panel,.interface:has(#info-panel:not([hidden])) .camera-panel,.interface:has(#info-panel.expanded:not([hidden])) .camera-panel { position:fixed;right:73px;bottom:max(28px,calc(var(--safe-bottom) + 24px));width:min(260px,calc(100vw - 89px));max-height:calc(100svh - var(--safe-top) - 110px);padding:15px; }
 .desktop-gesture-hint { display:none; }.touch-gesture-hint { display:inline; }
 .weather-strip { width:min(374px,calc(100% - 28px)); }
 .info-panel { top:auto;left:10px;right:10px;bottom:max(30px,calc(var(--safe-bottom) + 24px));width:auto;max-height:min(390px,48svh);padding:16px;border-radius:20px; }
 .info-panel.panel-browser { max-height:58svh; }
 .info-panel.expanded { max-height:calc(100svh - var(--safe-top) - var(--safe-bottom) - 110px); }
 .panel-heading { margin-bottom:12px; }.panel-title { font-size:23px; }.panel-expand { display:grid;place-items:center; }
 .weather-pin-temp { grid-row:1;font-size:23px; }.weather-pin-source { grid-column:1 / -1;grid-row:2; }.weather-reading { font-size:56px; }
 .map-label { font-size:11px; }.label-state,.label-status { display:inline; }
 .map-footer { left:12px;right:12px;justify-content:center;gap:8px;font-size:8px;white-space:nowrap; }.footer-attribution { gap:8px; }
 .toast { bottom:max(116px,calc(var(--safe-bottom) + 103px)); }
 body.glove-mode .search-results { top:max(87px,calc(var(--safe-top) + 83px)); }
 body.glove-mode .camera-panel { right:88px;width:min(280px,calc(100vw - 104px)); }
}
@media (max-width:379px) {
 .topbar { gap:7px; }.brand { font-size:16px;gap:4px; }.brand-mark { width:18px;height:18px; }.demo-badge { display:none; }
 .map-options > summary { padding-inline:9px; }.search-field { padding-inline:8px; }.search-field .icon { width:16px;height:16px; }
 .panel-title { font-size:22px; }.map-footer { gap:6px;font-size:7.5px; }
}
@media (max-height:580px) and (min-width:900px) { .topbar { top:12px; }.info-panel { top:74px;max-height:calc(100svh - 154px);padding:17px; }.map-controls { bottom:94px; } }
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; } }

/* Rendered viewpoints preserve the Blender appearance without implying a freely movable camera. */
.render-view-title { display:none;margin-bottom:11px;color:#c7dbe5;font:10px/1.5 var(--mono); }
body.rendered-active .render-view-title { display:block; }
.render-view-picker { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin-bottom:14px; }
.render-view-picker button { display:grid;place-items:center;min-height:44px;padding:8px 5px;border:1px solid #d8e8ee25;border-radius:10px;background:#ffffff04;color:#c8dce6;font-size:11px; }
.render-view-picker button[aria-pressed="true"],.render-view-picker button.is-active { color:#ffe1ac;border-color:#efc07663;background:#f4ce7910; }
.quality-options { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px; }
.quality-options button { min-height:40px;padding:6px 2px;border:1px solid #d8e8ee25;border-radius:9px;background:#ffffff04;color:#c8dce6;font-size:10px; }
.quality-options button[aria-pressed="true"] { color:#ffe1ac;border-color:#efc07663;background:#f4ce7910; }
body.glove-mode .quality-options button { min-height:56px; }
.viewer-mode-actions { display:grid;gap:6px;margin-top:12px; }
.viewer-mode-actions .secondary-button { font-size:10px; }
body.rendered-active .rotation-controls,body.rendered-active #tilt-button,body.rendered-active #compass-button { display:none; }
body.rendered-active .orientation-controls { grid-template-columns:1fr; }
body.rendered-active [data-action="rendered-mode"] { display:none; }
#viewer-loading { position:absolute;inset:0;z-index:4;pointer-events:none;background:#7493a4; }
#viewer-loading picture,#viewer-loading img { display:block;width:100%;height:100%; }
#viewer-loading img { object-fit:cover; }
#viewer-loading > span { position:absolute;left:50%;bottom:120px;transform:translateX(-50%);padding:8px 12px;border-radius:10px;background:#162d3bd9;color:#d4e7ef;font-size:11px; }
body.viewer-loading #map-labels,body.viewer-loading #map-screen-labels,body.viewer-loading #weather-layer { visibility:hidden; }
body.glove-mode .render-view-picker button { min-height:60px;font-size:13px; }

.context-source { text-decoration: none; }
.map-label.type-zone .label-symbol { color: #ee9e8c; }
.map-label.type-road .label-symbol { color: #d8dedb; }

.map-label-leaders { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.map-label-leaders line { stroke: #ead7af; stroke-width: 1; opacity: .65; }

/* Public exploration: a quiet map, one selected place, details on demand. */
.skip-link { position:fixed;z-index:100;top:8px;left:12px;padding:12px;background:#142a35;color:#fff;transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.topbar { width:min(820px,calc(100% - 48px));grid-template-columns:auto minmax(0,1fr) auto auto; }
.browse-button { display:grid;place-items:center;min-height:46px;padding:0 15px;border:1px solid #eaf4ef38;border-radius:13px;background:#152832ed;color:#eff3ed;font-size:12px; }
.browse-button[aria-expanded="true"] { color:#ffe0aa;border-color:#f4d4a178; }
.search-caption { padding:8px 10px;color:#c9d8da;font-size:11px; }
.search-discovery { display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:3px; }
.search-discovery button { min-height:46px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#ffffff05;text-align:left; }
.search-footnote { padding:10px;color:#b3c6cd;font-size:11px; }
.panel-heading .kicker { font:10px/1.4 var(--font);letter-spacing:.025em;text-transform:none;color:#bdd0d5;margin-bottom:6px; }
.panel-heading .panel-subtitle { font-size:11px;line-height:1.45;margin-top:7px; }
.panel-title:focus { outline:none; }
.panel-title:focus-visible { outline:2px solid var(--amber);outline-offset:5px;border-radius:4px; }
.panel-expand { font-size:10px; }
.place-operation { display:flex;align-items:center;gap:10px;justify-content:space-between;margin:4px 0 12px; }
.status-chip { font:11px/1.4 var(--font);letter-spacing:0; }
.status-chip.status-unavailable { color:#c8d4d8;border-color:#d1e1e525;background:#d1e1e506; }
.status-chip.status-closed { color:#ffd0c5;border-color:#e8a08b55;background:#e89b8610; }
.status-chip.status-open { color:#bbefcf;border-color:#92d8ae45;background:#92d8ae10; }
.text-link { display:inline-flex;align-items:center;min-height:36px;color:#e7d4ae;text-decoration:none;font-size:11px; }
.text-link:hover { text-decoration:underline; }
.place-facts { margin:13px 0;color:#d9e4e4;font-size:12px; }
.place-facts > span { color:#93a9b0;padding:0 4px; }
.place-weather-list { display:grid;gap:7px;margin-top:12px; }
.place-weather { border:1px solid #c3d9e62b;border-radius:12px;background:#c9e4f207; }
.place-weather.is-selected { border-color:#b6ddef6b;background:#c9e4f20e; }
.place-weather > summary { display:flex;align-items:center;gap:10px;min-height:71px;padding:11px 12px; }
.place-weather-copy { flex:1;min-width:0; }
.place-weather-label { display:block;font-size:11px;color:#d9edf5; }
.place-weather-date { display:block;margin-top:4px;font-size:10px;line-height:1.45;color:#b6c7cd; }
.place-weather > summary strong { flex:none;font-size:30px;font-weight:450;letter-spacing:-.045em;white-space:nowrap; }
.place-weather > summary strong small { font-size:13px;letter-spacing:0; }
.disclosure-chevron { color:#a9c7d5; }
.place-weather[open] .disclosure-chevron { transform:rotate(180deg); }
.weather-provenance { padding:0 13px 12px;color:#b6c9d0;font-size:11px;line-height:1.65; }
.weather-provenance dl { display:grid;gap:8px;margin:13px 0 5px; }
.weather-provenance dl > div { display:grid;grid-template-columns:105px 1fr;gap:8px; }
.weather-provenance dt { color:#a9bdc5; }.weather-provenance dd { margin:0;color:#d1e0e3; }
.weather-provenance .text-link { display:flex; }
.detail-actions { display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:14px; }
.detail-actions .secondary-button { font-size:11px;padding:8px; }
.data-disclosure,.prototype-details { margin-top:13px;border-top:1px solid var(--line);color:#adc0c8;font-size:11px;line-height:1.65; }
.data-disclosure > summary,.prototype-details > summary { min-height:44px;display:flex;align-items:center;justify-content:space-between;color:#d2e0e2; }
.data-disclosure > summary::after,.prototype-details > summary::after { content:'+';color:#9eb4bd; }
.data-disclosure[open] > summary::after,.prototype-details[open] > summary::after { content:'−'; }
.data-disclosure p,.prototype-details p { margin:6px 0 11px; }
.prototype-details { color:#a7b8bf; }
.prototype-details > summary { color:#a7b8bf; }
.prototype-details .secondary-button { width:100%; }
.unavailable-note { margin:12px 0;color:#a9bdc5;font-size:11px; }
.browse-search { display:grid;gap:6px;margin-bottom:12px; }
.browse-search label { color:#a8bec5;font-size:10px; }
.browse-search input { height:42px;padding:0 11px;border:1px solid var(--border);border-radius:10px;background:#ffffff04;font:14px var(--font); }
.browse-categories { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:3px;border:1px solid var(--line);border-radius:11px; }
.browse-category { min-height:42px;border-radius:8px;font-size:11px;color:#bcd0d7; }
.browse-category[aria-pressed="true"] { color:#ffe1b0;background:#ffffff0b; }
.browse-grades { display:flex;flex-wrap:wrap;gap:5px;margin:12px 0; }
.browse-grade { min-height:36px;padding:7px 10px;border:1px solid #d6e4e528;border-radius:20px;font-size:10px;color:#bfd1d6; }
.browse-grade[aria-pressed="true"] { color:#f8e8c6;border-color:#e6c57b80;background:#e6c57b10; }
.browse-count { margin:13px 2px 9px;color:#c7d8dd;font-size:11px; }
.browse-data-note { margin:8px 2px;color:#9fb4bd;font-size:10px; }
.mountain-browser-list { gap:0; }.mountain-browser-list li+li { border-top:1px solid #d6e4e512; }
.mountain-browser-list .entity-row { min-height:65px;padding:11px 5px;background:transparent; }
.mountain-browser-list .entity-icon { width:26px;background:none; }
.mountain-browser-list .entity-meta { font-size:10px; }.mountain-browser-list .entity-title { font-size:13px; }
.browse-operation { display:block;margin-top:4px;font-size:10px;color:#b9cbd0; }
.operation-closed { color:#efb9ac; }.operation-open { color:#b6e8c8; }
.browse-temperature { font-size:24px;white-space:nowrap;font-weight:400; }
.browse-coverage { margin:14px 2px 0;color:#9cb1ba;font-size:10px;line-height:1.6; }
.browse-official { margin-top:7px; }
.weather-strip-caption { grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;gap:6px;padding:0 7px;color:#b7cbd4;font-size:10px;line-height:1.4; }
.weather-strip-caption > button { min-height:28px;flex:none;color:#e2d8bd;font-size:9px; }
.weather-strip .weather-item { min-height:44px; }
.map-footer > button { min-height:28px;color:#e0ebeb;font-size:inherit;text-shadow:inherit; }
.map-key { margin-top:12px;border-top:1px solid var(--line);font-size:11px;color:#bfd0d5; }
.map-key > summary { display:flex;align-items:center;min-height:44px;color:#e2ece9; }
.map-key p { margin-bottom:12px;line-height:1.9; }.map-key a { display:flex;min-height:44px;align-items:center;color:#e5d5b6; }
.key-lift { color:#edc37e; }.key-closed { color:#f2bba9; }
.view-quick-controls { display:grid;grid-template-columns:44px 1fr 44px;gap:4px;margin-top:12px; }
.view-quick-controls button { min-height:44px;border:1px solid var(--border);border-radius:9px;font-size:11px; }
.view-quick-controls button:first-child,.view-quick-controls button:last-child { font-size:20px; }
.experimental-tools { margin-top:14px;border-top:1px solid var(--line); }
.experimental-tools > summary { display:flex;align-items:center;min-height:44px;font-size:10px;color:#9fb6bf; }
.experimental-tools .whitehorn-pilot { margin:0 0 12px; }
.about-intro { color:#d0dfe1;font-size:13px;line-height:1.65; }.about-data { display:grid;gap:16px;margin:20px 0;color:#b3c8d0;font-size:12px;line-height:1.6; }
.about-data dt { color:#e1e9e7;font-weight:550;margin-bottom:4px; }.about-data dd { margin:0; }
.level-options { grid-template-columns:1fr 1fr; }
body.glove-mode .browse-button,body.glove-mode .browse-category,body.glove-mode .browse-grade,body.glove-mode .view-quick-controls button { min-height:60px; }
body.glove-mode .place-weather > summary { min-height:84px; }
@media (max-width:899px) {
 .topbar { width:calc(100% - 24px); }
 .browse-button { padding:0 12px; }
 .map-controls { bottom:max(118px,calc(var(--safe-bottom) + 104px)); }
 .map-footer { font-size:8px; }
}
@media (max-width:599px) {
 .brand > span { display:none; }.brand { min-width:30px;justify-content:center; }.topbar { grid-template-columns:30px minmax(0,1fr) auto 44px;gap:7px; }
 .search-field .icon { width:16px;height:16px; }.browse-button { font-size:11px;padding:0 11px; }
}
@media (max-height:600px) and (min-width:640px) {
 .topbar { top:10px; }
 .info-panel,.info-panel.panel-browser,.info-panel.expanded { top:74px;left:auto;right:78px;bottom:auto;width:min(340px,calc(100vw - 110px));max-height:calc(100svh - 104px);padding:16px; }
 .interface:has(#info-panel:not([hidden])) .map-controls,.interface:has(#info-panel.expanded:not([hidden])) .map-controls { display:grid;bottom:30px; }
 .interface:has(#info-panel:not([hidden])) .map-controls > .compass-control { display:none; }
 .camera-panel,.interface:has(#info-panel:not([hidden])) .camera-panel,.interface:has(#info-panel.expanded:not([hidden])) .camera-panel { position:fixed;top:74px;bottom:25px;right:78px;max-height:none; }
 .weather-strip { left:18px;transform:none;max-width:360px; }
 .panel-expand { display:none; }
}
