/* Compact scenery progression; existing game, lobby and purchase layouts remain intact. */
#altitude-hud{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center;background:#16241e;padding:9px 12px;border-radius:12px 12px 0 0;border:1px solid #78abb545;margin:8px 0 0;position:relative;z-index:2;min-width:0}
#altitude-next-name{font-size:13px;font-weight:800;color:#e9f1de;overflow-wrap:anywhere;line-height:1.25}
#altitude-distance{font-size:11px;color:#d0f45b;white-space:nowrap;font-weight:750;font-variant-numeric:tabular-nums}
#altitude-track{grid-column:1/-1;height:3px;border-radius:5px;overflow:hidden;background:#b6d0c51a}
#altitude-track-fill{height:100%;width:0;background:#d0f45b;transition:width .25s}
#altitude-fact-card{display:grid;gap:5px;min-width:0;width:100%;margin:0;padding:11px 12px;text-align:left;text-transform:none;letter-spacing:0;border:0;border-left:3px solid #8dc2c5;border-radius:0 10px 10px 0;background:#8dc2c50a;color:#d5e4d4;line-height:1.4;}
#altitude-fact-card:disabled{opacity:1;cursor:default;}
#altitude-fact-label{font-size:9px;font-weight:750;letter-spacing:1px;color:#93bfc0;line-height:1.3;}
#altitude-fact-height{font-size:14px;line-height:1.3;color:#e5efdf;}
#altitude-fact-copy{font-size:13px;line-height:1.4;}
#altitude-fact-open{font-size:11px;color:#a6d0d5;text-decoration:underline;text-underline-offset:3px;}
#altitude-fact-card:focus-visible{outline:3px solid #d0f45b;outline-offset:3px;}
#altitude-caption{grid-column:1/-1;margin:0;color:#c5d6b9;font-size:11px;line-height:1.35;overflow-wrap:break-word}
#play #stage{border-top-left-radius:0;border-top-right-radius:0;border-top:0;background:#14231d}
#altitude-reveal{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;z-index:6;pointer-events:none;padding:10px 12px;background:#eeddac;color:#1f2518;border-radius:12px;box-shadow:0 5px 0 #5f6b3350;animation:altitude-arrive .4s ease-out}
#altitude-reveal[hidden]{display:none}
#altitude-reveal strong{display:block;font-size:16px;margin-top:4px;line-height:1.2}
#altitude-reveal small{font-size:10px;font-weight:800;letter-spacing:1px}
#altitude-collection-menu{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid #8eb6c138;padding:10px 2px 2px;margin:8px 0 0;min-width:0}
#altitude-collection-menu>div{min-width:0}
#altitude-collection-menu small{display:block;font-size:10px;line-height:1.25;letter-spacing:.5px;color:#a9d4d7;font-weight:750}
#altitude-menu-next{display:block;font-size:11px;line-height:1.3;color:#cbd8bf;margin-top:3px}
#altitude-gallery-open{min-height:44px;flex-shrink:0;background:#a6d0d514;border:1px solid #99c8cf50;border-radius:9px;padding:9px 12px;font-size:11px;font-weight:750;letter-spacing:0;width:auto;margin:0;white-space:nowrap}
#altitude-result{display:flex;align-items:center;justify-content:space-between;gap:8px 14px;flex-wrap:wrap;border-left:3px solid #9bc5bd;background:#9bc5bd09;padding:9px 12px;margin:12px 0}
#altitude-result p{font-size:12px;line-height:1.4;color:#d0dcc7;margin:0}
#altitude-result button{font-size:12px;min-height:44px;line-height:1.3;padding:8px 0;margin:0;width:auto;text-align:left;color:#a9d4d7}
#altitude-dialog{width:calc(100% - 24px);max-width:760px;padding:0;border:1px solid #779c89;border-radius:18px;background:#101d18;max-height:calc(100dvh - 24px);overflow:auto;color:#edf2e3}
#altitude-dialog::backdrop{background:#020805c9}
#altitude-dialog .altitude-dialog-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid #a4b3992b;position:sticky;top:0;background:#101d18;z-index:3}
#altitude-dialog h2{font-size:19px;margin:0;line-height:1.2}
#altitude-dialog-close{min-width:44px;min-height:44px;width:44px;flex:0 0 44px;border-radius:50%;background:#ffffff0c;font-size:24px;margin:0;padding:0;color:#edf2e3}
#altitude-dialog .altitude-dialog-body{padding:16px}
#altitude-dialog .altitude-viewer{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:18px;align-items:start}
#altitude-scene-canvas{width:100%;height:auto;aspect-ratio:5/4;display:block;border-radius:14px;background:#13211c;touch-action:auto}
#altitude-stage-select{margin:0 0 10px;width:100%;font-size:16px;min-height:46px;padding:10px;background:#223b2e;color:#eff4e7;border:1px solid #97b18b70;border-radius:10px}
#altitude-stage-select option:disabled{color:#a6b09e}
.altitude-scene-copy{min-width:0;padding-top:5px}
.altitude-speech{position:relative;background:#f3e7bf;color:#222b1d;padding:16px 18px 18px;border:2px solid #c2ac6c;border-radius:20px 20px 20px 5px;margin:0 0 20px;box-shadow:0 5px 0 #65713466}
.altitude-speech::before{content:"";position:absolute;left:-17px;top:40px;border-top:11px solid transparent;border-bottom:11px solid transparent;border-right:17px solid #c2ac6c}
.altitude-speech::after{content:"";position:absolute;left:-13px;top:43px;border-top:8px solid transparent;border-bottom:8px solid transparent;border-right:14px solid #f3e7bf}
.altitude-speaker{display:block;font-size:10px;line-height:1.2;letter-spacing:2px;font-weight:850;color:#687035;margin-bottom:8px}
#altitude-scene-roast{font-size:clamp(18px,3vw,24px);line-height:1.25;font-weight:800;color:#222b1d;margin:0;letter-spacing:-.3px;overflow-wrap:break-word}
#altitude-scene-height{display:block;color:#9bd1d8;font-size:12px;font-weight:700;margin-bottom:10px;line-height:1.4}
#altitude-scene-fact{font-size:13px;line-height:1.5;color:#d0dbca;margin:0 0 10px}
#altitude-scene-progress{font-size:11px;color:#bdcaa9;margin:6px 0}
#altitude-dialog .altitude-scene-nav{display:flex;gap:8px;justify-content:space-between;margin:8px 0 12px}
#altitude-dialog .altitude-scene-nav button{min-height:44px;min-width:44px;width:auto;padding:8px 14px;background:#2c4033;border-radius:10px;font-size:12px;letter-spacing:0;margin:0;color:#edf2e3}
#altitude-dialog .altitude-scene-nav button:disabled{opacity:.4}
#altitude-extras{margin-top:18px;border-top:1px solid #9ab88e30;padding-top:12px;color:#bdcbb7;font-size:12px}
#altitude-extras[hidden]{display:none}
#altitude-extras summary{min-height:44px;font-weight:750;color:#bedfe0;cursor:pointer;line-height:1.4;padding:9px 0}
#altitude-extras article{padding:12px 0;border-top:1px solid #ffffff12}
#altitude-extras h3{margin:0 0 5px;font-size:14px;color:#e7d192;line-height:1.4}
#altitude-extras p{margin:5px 0;font-size:12px;color:#c5d0bc;line-height:1.5}
#altitude-dialog button:focus-visible,#altitude-gallery-open:focus-visible,#altitude-fact-button:focus-visible{outline:3px solid #d0f45b;outline-offset:3px}
@media(max-width:560px){#altitude-dialog .altitude-viewer{grid-template-columns:1fr;gap:12px}#altitude-scene-canvas{max-height:280px;aspect-ratio:1.25/1}#altitude-dialog .altitude-dialog-body{padding:12px}.altitude-scene-copy{padding-top:0}.altitude-speech{border-radius:5px 20px 20px 20px;padding:15px 16px;margin-bottom:18px}.altitude-speech::before{left:35px;top:-17px;border-left:11px solid transparent;border-right:11px solid transparent;border-bottom:17px solid #c2ac6c;border-top:0}.altitude-speech::after{left:38px;top:-13px;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:14px solid #f3e7bf;border-top:0}#altitude-scene-roast{font-size:21px}#altitude-next-name{font-size:12px}#altitude-distance{font-size:10px}#altitude-collection-menu{gap:8px}#altitude-gallery-open{padding:8px;font-size:10px}}
@keyframes altitude-arrive{from{transform:translateY(6px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(prefers-reduced-motion:reduce){#altitude-reveal{animation:none}#altitude-track-fill{transition:none}}

:root[data-reduced-motion="true"] #altitude-reveal{animation:none}
:root[data-reduced-motion="true"] #altitude-track-fill{transition:none}

/* The speaker now travels in the left vignette, outside the aiming lane. */
#play #stage #comment::after{top:auto;right:auto;left:24px;bottom:-14px;width:24px;height:16px;border:0;filter:none;background:#7f9468;clip-path:polygon(0 0,100% 0,0 100%)}
#play #stage #comment::before{top:auto;right:auto;left:26px;bottom:-10px;width:18px;height:12px;border:0;filter:none;background:#263423;clip-path:polygon(0 0,100% 0,0 100%)}

/* Keep the fact visible before the board on phones without a second text panel. */
@media(max-width:759px){
 #play.arena-ready[data-arena-layout=portrait] #altitude-fact-card{gap:3px;padding:6px 9px;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-fact-label{display:none;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-fact-height{font-size:11px;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-fact-copy{font-size:11px;line-height:1.3;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-fact-open{display:none;}
}

/* A short moving route, never the entire 0–200 list. Each landing lifts the marker. */
#altitude-hud.has-scenic-route #altitude-track{display:none}
#altitude-route{position:relative;grid-column:1/-1;height:132px;overflow:hidden;margin-top:3px;isolation:isolate;}
#altitude-route-stops{position:absolute;inset:0;transform:translateY(var(--route-shift,0px));transition:transform .42s cubic-bezier(.2,.65,.25,1);}
#altitude-route-line{position:absolute;left:24px;top:10px;bottom:20px;width:2px;background:linear-gradient(#a7c6cd66,#d0f45b99);}
.altitude-route-stop{position:absolute;left:0;right:0;display:grid;grid-template-columns:46px minmax(0,1fr) 35px;gap:5px;align-items:center;transform:translateY(-50%);min-height:28px;color:#9eafb0;}
.altitude-route-dot{width:10px;height:10px;margin-left:20px;border:2px solid #748e91;background:#172c2a;border-radius:50%;box-sizing:border-box;}
.altitude-route-stop strong{font-size:13px;line-height:1.2;overflow-wrap:anywhere;}
.altitude-route-stop small{font-size:11px;text-align:right;padding-right:4px;font-variant-numeric:tabular-nums;}
.altitude-route-stop.is-reached{color:#d9e6c8;}
.altitude-route-stop.is-reached .altitude-route-dot{background:#92b76c;border-color:#cceba8;}
.altitude-route-stop.is-next{color:#f0dd9c;}
.altitude-route-stop.is-next strong{font-size:15px;}
#altitude-route-marker{position:absolute;left:7px;min-width:36px;padding:4px 3px;transform:translateY(-50%);border-radius:8px;background:#d0f45b;color:#1b2b15;font-size:12px;line-height:1;font-weight:950;text-align:center;box-shadow:0 0 0 3px #172c2a,0 2px 8px #0006;z-index:2;transition:top .42s cubic-bezier(.2,.65,.25,1);font-variant-numeric:tabular-nums;}
#altitude-gallery-tiles{display:flex;gap:7px;overflow:auto;padding:2px 1px 12px;margin-bottom:4px;scrollbar-width:thin;}
#altitude-dialog .altitude-gallery-tile{flex:0 0 90px;display:grid;gap:4px;align-content:center;min-height:66px;width:90px;margin:0;padding:8px 5px;border:1px solid #a6c89c55;border-radius:10px;background:linear-gradient(135deg,#294a3b,#13261f);color:#e4ecd6;text-align:center;letter-spacing:0;}
#altitude-dialog .altitude-gallery-tile strong{font-size:11px;line-height:1.2;overflow-wrap:anywhere;}
#altitude-dialog .altitude-gallery-tile>span{font-size:12px;color:#c8e994;}
#altitude-dialog .altitude-gallery-tile[aria-pressed=true]{border-color:#d0f45b;box-shadow:inset 0 0 0 1px #d0f45b;}
#altitude-dialog .altitude-gallery-tile.is-locked{filter:grayscale(1);background:#1a2725;color:#94a8a3;opacity:.7;}
#altitude-dialog .altitude-gallery-lock{display:block;font-size:19px;color:#8c9e97;}
@media(max-width:759px){
 #play.arena-ready[data-arena-layout=portrait] #altitude-hud.has-scenic-route{grid-template-columns:minmax(0,1fr) auto;padding:5px 8px;gap:2px 8px;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-route{height:70px;grid-row:1/4;grid-column:2;width:130px;margin:0;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-next-name{grid-column:1;font-size:13px;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-distance{grid-column:1;font-size:10px;white-space:normal;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-route-stops{transform:scaleY(.5) translateY(var(--route-shift,0px));transform-origin:top;}
 #play.arena-ready[data-arena-layout=portrait] .altitude-route-stop>*{transform:scaleY(2);}
 #play.arena-ready[data-arena-layout=portrait] .altitude-route-stop{grid-template-columns:34px minmax(0,1fr) 22px;gap:2px;}
 #play.arena-ready[data-arena-layout=portrait] .altitude-route-stop strong,#play.arena-ready[data-arena-layout=portrait] .altitude-route-stop.is-next strong{font-size:10px;}
 #play.arena-ready[data-arena-layout=portrait] .altitude-route-stop small{font-size:9px;padding:0;}
 #play.arena-ready[data-arena-layout=portrait] .altitude-route-dot{width:7px;height:7px;margin-left:12px;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-route-marker{left:2px;min-width:28px;padding:3px 2px;font-size:10px;transform:translateY(-50%);top:var(--route-mobile-marker-y,55px)!important;}
 #play.arena-ready[data-arena-layout=portrait] #altitude-route-line{left:15px;top:5px;bottom:14px;}
}
@media(prefers-reduced-motion:reduce){#altitude-route-marker,#altitude-route-stops{transition:none}}
:root[data-reduced-motion=true] #altitude-route-marker,:root[data-reduced-motion=true] #altitude-route-stops{transition:none}
