/* Squid Climb uses the shared arcade shell; the kitchen lives inside the canvas. */
.jungle-page{--jungle-green:#29483b;--jungle-deep:#24382d;--jungle-paper:#fff8e8;--jungle-red:#b93820;--jungle-gold:#d2a44f}
.jungle-page .jungle-heading{padding:16px 0 25px;align-items:center}
.jungle-page .jungle-heading h1{font:900 43px/1.05 var(--display);letter-spacing:-.7px;margin:0}
.jungle-page .jungle-heading>p{font:13px/1.6 var(--body);text-align:left;color:var(--muted);margin:0}
.jungle-eyebrow{font:700 10px/1.5 var(--body);letter-spacing:.7px;color:var(--muted)}
.jungle-beta-notice{padding:12px 16px;margin:0 0 24px;border-left:3px solid var(--accent);background:var(--soft);color:var(--muted);font:14px/1.7 var(--body)}
.jungle-beta-notice p{margin:0}.jungle-beta-notice p+p{margin-top:3px}.jungle-beta-notice strong{font-weight:700;color:var(--ink)}
.jungle-beta-notice a{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
html:lang(zh) .jungle-beta-notice{font-size:16px}
.jungle-page .jungle-layout{grid-template-columns:minmax(0,1fr) 268px;gap:24px}
.jungle-page .jungle-cabinet{position:relative;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:5px;box-shadow:none;touch-action:manipulation;container-type:inline-size;container-name:jungle;isolation:isolate;overflow:hidden}
.jungle-toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:48px;padding:2px 13px;background:var(--panel);border-bottom:1px solid var(--line)}
.jungle-cabinet-brand{display:flex;align-items:center;font:700 11px/1.3 var(--body);letter-spacing:.25px;white-space:nowrap}
.jungle-cabinet-brand i{width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:7px}
.jungle-tools{display:flex;align-items:center;gap:2px}
.jungle-tools button{display:flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;padding:8px;background:none;border:0;color:var(--ink);font:12px/1.3 var(--body);border-radius:3px;cursor:pointer}
.jungle-tools button:hover{background:var(--soft)}
.jungle-tools button:disabled{color:var(--muted);opacity:.65;cursor:default}
.jungle-tools .icon{width:17px;height:17px}
.jungle-hud{display:grid;grid-template-columns:1.1fr .75fr 1.15fr 1fr;align-items:center;gap:12px;padding:12px 20px;background:var(--panel);color:var(--ink);border-bottom:1px solid var(--line)}
.jungle-hud>div:nth-child(2),.jungle-bread-condition{text-align:center}.jungle-personal-best{text-align:right}
.jungle-hud>div>span{display:block;font:700 9px/1.4 var(--body);letter-spacing:.6px;color:var(--muted);margin-bottom:4px}
.jungle-hud strong{font:900 29px/1 var(--display);font-variant-numeric:tabular-nums;letter-spacing:.25px}
.jungle-hud .jungle-height strong{color:var(--accent);font-size:34px}
.jungle-hud small{font:12px/1 var(--body);margin-left:4px;color:var(--muted)}
.jungle-stage{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;max-height:none;min-height:0;min-width:0;overflow:hidden;background:#a54c35;isolation:isolate;touch-action:none}
#jungle-canvas{display:block;flex:none;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:fill;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:pointer;image-rendering:pixelated}
#jungle-canvas:focus-visible{outline:3px solid #fff4c9;outline-offset:-5px}
.jungle-overlay{position:absolute;inset:0;z-index:10;display:grid;place-items:center;padding:20px;overflow:auto;background:#37291d50;touch-action:pan-y;overscroll-behavior:contain}
.jungle-lobby{background:#37291d12}
.jungle-ticket{position:relative;width:320px;max-width:100%;max-height:100%;overflow:auto;padding:24px;background:var(--panel);color:var(--ink);text-align:center;border:1px solid var(--ink);border-radius:4px;box-shadow:4px 4px 0 #142e2544;overscroll-behavior:contain}
.jungle-ticket-eyebrow{display:block;font:700 10px/1.5 var(--body);letter-spacing:.6px;color:var(--muted)}
.jungle-ticket h2{font:900 43px/1.08 var(--display);letter-spacing:-.7px;margin:12px 0;color:var(--ink)}
.jungle-ticket h2 em{font-style:normal;color:var(--accent)}
.jungle-ticket p{font:12px/1.7 var(--body);margin:12px 0 18px;color:var(--muted)}
.jungle-primary,.jungle-secondary{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;min-height:46px;padding:12px 15px;border:0;border-radius:3px;background:var(--jungle-red);color:#fff8e8;font:700 12px/1.4 var(--body);letter-spacing:.2px;touch-action:manipulation;cursor:pointer}
.jungle-primary>span{font:22px/1 var(--body)}
.jungle-primary:hover{filter:brightness(1.12)}
.jungle-primary:active{transform:translateY(1px)}
.jungle-primary:disabled{opacity:.6;cursor:default}
.jungle-secondary{justify-content:center;margin-top:10px;min-height:44px;font-size:11px;border:1px solid var(--line);background:var(--soft);color:var(--ink)}
.jungle-ticket-foot{display:block;font:10px/1.5 var(--body);letter-spacing:.7px;margin-top:14px;color:var(--muted)}
.jungle-small-ticket{width:300px}.jungle-small-ticket h2{font-size:36px;margin:18px 0}
.jungle-result-ticket{width:350px;padding:22px}.jungle-result-ticket h2{font-size:36px;margin:10px 0}.jungle-result-ticket p{font-size:12px;margin:8px 0 12px}
.jungle-result-stats{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:14px 0;margin:13px 0 16px;border-block:1px solid var(--line)}
.jungle-result-stats>div>span{display:block;font:700 9px/1.4 var(--body);letter-spacing:.3px;margin-bottom:7px;color:var(--muted)}
.jungle-result-stats strong{font:900 32px/1 var(--display)}.jungle-result-stats small{font:12px/1 var(--body);margin-left:3px}
.jungle-result-entry form{text-align:left;margin-bottom:12px}.jungle-result-entry label{display:block;font:700 10px/1.4 var(--body);margin-bottom:6px}
.jungle-name-row{display:flex;gap:6px;align-items:stretch}.jungle-name-row input{width:100%;min-width:0;flex:1;min-height:44px;padding:9px;background:var(--paper);color:var(--ink);border:1px solid var(--line);border-radius:3px;font:16px/1.3 var(--body)}
.jungle-name-row button{flex:none;min-width:66px;min-height:44px;background:var(--jungle-green);color:#fff8e8;border:0;border-radius:3px;font:700 11px var(--body);cursor:pointer}
.jungle-name-row .score-account-name{font-size:16px;flex:1;overflow-wrap:anywhere}.jungle-result-entry .score-sign-in{font:12px/1.5 var(--body);margin:10px 0}.jungle-result-entry .score-sign-in small{display:block;font-size:10px}.jungle-result-entry .account-score-notice,.jungle-result-entry .score-register-invite{font:11px/1.6 var(--body);margin:8px 0}.jungle-result-entry .score-register-invite small{font-size:10px}
.jungle-result-ticket .jungle-save-status{font:11px/1.5 var(--body);margin:10px 0}.jungle-save-status:empty{display:none}.jungle-result-entry .human-check{margin:8px auto;max-width:100%}.jungle-result-entry .human-check-status{font-size:10px;color:var(--muted)}
.jungle-statusbar{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:32px;padding:6px 13px;border-top:1px solid var(--line);background:var(--panel);color:var(--muted);font:10px/1.5 var(--body)}
.jungle-statusbar p{font:inherit;margin:0}#jungle-connection{font-size:9px;letter-spacing:.4px;white-space:nowrap}
.jungle-sidebar .leaderboard{overflow:hidden;border-color:var(--line);border-radius:4px}.jungle-sidebar .board-heading{padding-top:21px}.jungle-sidebar .board-heading h2{font-size:27px;letter-spacing:-.5px}.jungle-sidebar .board-heading .icon{color:var(--gold)}.jungle-sidebar .scores{height:268px}
#jungle-help-dialog{position:fixed;width:560px;max-width:calc(100% - 28px);max-height:calc(100dvh - 28px);margin:auto;padding:27px;background:var(--panel);color:var(--ink);border:1px solid var(--ink);border-radius:4px;box-shadow:5px 5px 0 #142e2544;overflow:auto}#jungle-help-dialog::backdrop{background:#1d271ec9;backdrop-filter:blur(3px)}
#jungle-help-dialog h2{font:900 34px/1.1 var(--display);letter-spacing:-.5px;margin:10px 0 20px}#jungle-help-dialog ol{padding-left:20px;margin:17px 0 20px}#jungle-help-dialog li{padding-left:5px;margin:0 0 14px;font:13px/1.75 var(--body)}#jungle-help-dialog li strong{font-weight:700}#jungle-help-dialog p{font:11px/2 var(--body);margin-bottom:20px}#jungle-help-dialog kbd{font-size:10px}
.jungle-page .jungle-cabinet.is-expanded{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;margin:0;border:0;border-radius:0;z-index:100;display:grid;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);box-shadow:none;container-type:size}
.jungle-cabinet.is-expanded .jungle-stage{height:100%;max-height:none;min-height:0;aspect-ratio:auto}.game-expanded:has(.jungle-cabinet){overflow:hidden}
.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-stage{overflow:visible;isolation:auto}.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-overlay{position:fixed;inset:48px 0 32px;max-height:none;padding:16px}
@media(max-width:1100px){.jungle-page .jungle-layout{grid-template-columns:minmax(0,1fr) 244px;gap:20px}.jungle-tools button span{display:none}.jungle-sidebar .board-heading{padding-inline:18px}.jungle-sidebar .board-heading h2{font-size:25px}}
@media(max-width:800px){.jungle-page .jungle-layout{grid-template-columns:minmax(0,1fr)}.jungle-sidebar{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.jungle-tools button span{display:inline}.jungle-sidebar .scores{height:235px}}
@media(max-width:540px){.jungle-page .page{padding-inline:16px}.jungle-page .jungle-heading{display:block;padding:15px 0 22px}.jungle-page .jungle-heading h1{font-size:39px}.jungle-page .jungle-heading>p{font-size:12px;margin-top:7px}.jungle-toolbar{padding:0 8px;min-height:44px;gap:4px}.jungle-cabinet-brand{font-size:10px;letter-spacing:0}.jungle-cabinet-brand i{width:5px;height:5px;margin-right:5px}.jungle-tools{gap:0}.jungle-tools button{min-width:44px;padding:6px;min-height:44px}.jungle-tools button span{display:none}.jungle-tools .icon{width:16px;height:16px}.jungle-hud{padding:10px 13px;gap:6px}.jungle-hud>div>span{font-size:8px;letter-spacing:.3px}.jungle-hud strong{font-size:26px}.jungle-hud .jungle-height strong{font-size:30px}.jungle-hud small{font-size:11px}.jungle-stage{height:auto;max-height:none;aspect-ratio:4/5}.jungle-overlay{padding:14px}.jungle-ticket{width:286px;padding:19px}.jungle-ticket h2{font-size:37px;margin:8px 0 10px}.jungle-ticket p{font-size:11px;line-height:1.6;margin:8px 0 14px}.jungle-primary{font-size:11px;min-height:44px;padding:11px 12px}.jungle-ticket-foot{font-size:9px;margin-top:11px}.jungle-ticket-eyebrow{font-size:9px}.jungle-statusbar{padding:6px 10px;gap:9px;font-size:9px;min-height:32px}#jungle-connection{font-size:8px}.jungle-result-ticket{width:300px;padding:18px}.jungle-result-ticket h2{font-size:32px}.jungle-result-stats{padding:10px 0;margin:11px 0 13px;gap:8px}.jungle-result-stats strong{font-size:29px}.jungle-result-stats>div>span{font-size:8px}.jungle-result-ticket .jungle-save-status{font-size:10px;margin:8px 0}.jungle-sidebar{grid-template-columns:1fr}#jungle-help-dialog{padding:22px}#jungle-help-dialog h2{font-size:31px}#jungle-help-dialog li{font-size:12px}.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-overlay{inset:44px 0 32px}}
@media(max-width:370px){.jungle-page .page{padding-inline:12px}.jungle-cabinet-brand{font-size:9px}.jungle-cabinet-brand i{display:none}.jungle-toolbar{padding-inline:6px}.jungle-ticket{width:258px;padding:16px}.jungle-ticket h2{font-size:34px}.jungle-ticket p{font-size:10px}}
@media(max-height:600px) and (min-width:541px){.jungle-page .jungle-cabinet.is-expanded{grid-template-columns:100px minmax(0,1fr);}.jungle-cabinet.is-expanded .jungle-toolbar{grid-column:1/-1;grid-row:1}.jungle-cabinet.is-expanded .jungle-hud{grid-column:1;grid-row:2;grid-template-columns:1fr;align-content:space-evenly;padding:12px;border:0}.jungle-cabinet.is-expanded .jungle-hud>div{text-align:left}.jungle-cabinet.is-expanded .jungle-hud strong{font-size:27px}.jungle-cabinet.is-expanded .jungle-stage{grid-column:2;grid-row:2}.jungle-cabinet.is-expanded .jungle-statusbar{grid-column:1/-1;grid-row:3}.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-overlay{inset:44px 0 30px;padding:12px}.jungle-cabinet.is-expanded .jungle-lobby .jungle-ticket{display:grid;grid-template-columns:1fr 1.1fr;gap:0 24px;width:540px;padding:20px 24px;align-items:center}.jungle-cabinet.is-expanded .jungle-lobby h2{grid-column:1;grid-row:1/3;font-size:40px;margin:4px 0}.jungle-cabinet.is-expanded .jungle-lobby p{grid-column:2;grid-row:1;font-size:11px;margin:7px 0 13px}.jungle-cabinet.is-expanded .jungle-lobby .jungle-primary{grid-column:2;grid-row:2;font-size:11px}.jungle-cabinet.is-expanded .jungle-lobby .jungle-ticket-foot{grid-column:1/-1;grid-row:3;margin-top:12px}.jungle-cabinet.is-expanded .jungle-result-ticket{display:grid;grid-template-columns:1fr 1fr;gap:0 24px;align-items:center;width:590px;padding:16px 22px}.jungle-cabinet.is-expanded .jungle-result-summary{grid-column:1;grid-row:1/3}.jungle-cabinet.is-expanded .jungle-result-entry{grid-column:2;grid-row:1}.jungle-cabinet.is-expanded #jungle-again{grid-column:2;grid-row:2}.jungle-cabinet.is-expanded .jungle-result-ticket h2{font-size:32px}.jungle-cabinet.is-expanded .jungle-result-ticket p{font-size:11px}.jungle-cabinet.is-expanded .jungle-result-stats{padding:10px 0;margin:10px 0}.jungle-cabinet.is-expanded .jungle-small-ticket{padding:18px 22px}.jungle-cabinet.is-expanded .jungle-small-ticket h2{font-size:32px;margin:10px 0 18px}}
@media(max-height:470px) and (max-width:540px){.jungle-cabinet.is-expanded .jungle-hud{padding:6px 12px}.jungle-cabinet.is-expanded .jungle-hud>div>span{font-size:8px;margin-bottom:2px}.jungle-cabinet.is-expanded .jungle-hud strong,.jungle-cabinet.is-expanded .jungle-hud .jungle-height strong{font-size:23px}.jungle-cabinet.is-expanded .jungle-overlay{padding:12px}.jungle-cabinet.is-expanded .jungle-ticket{padding:15px 17px}.jungle-cabinet.is-expanded .jungle-ticket h2{font-size:32px;line-height:1.1;margin:8px 0}.jungle-cabinet.is-expanded .jungle-ticket p{font-size:11px;margin:8px 0 12px}.jungle-cabinet.is-expanded .jungle-ticket-foot{font-size:9px;margin-top:9px}.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-overlay{inset:44px 0 30px}}
html:lang(zh) .jungle-cabinet-brand{font-size:15px;letter-spacing:0}html:lang(zh) .jungle-tools button,html:lang(zh) .jungle-primary,html:lang(zh) .jungle-secondary{font-size:16px;letter-spacing:0}html:lang(zh) .jungle-hud>div>span{font-size:12px;letter-spacing:0}html:lang(zh) .jungle-ticket h2{font-size:39px;line-height:1.2}html:lang(zh) .jungle-ticket p{font-size:16px;line-height:1.7}html:lang(zh) .jungle-ticket-eyebrow,html:lang(zh) .jungle-ticket-foot{font-size:12px;letter-spacing:0}html:lang(zh) .jungle-statusbar{font-size:12px}html:lang(zh) #jungle-connection{font-size:11px}html:lang(zh) .jungle-result-stats>div>span,html:lang(zh) .jungle-result-entry label{font-size:12px;letter-spacing:0}html:lang(zh) .jungle-result-ticket .jungle-save-status{font-size:14px}html:lang(zh) #jungle-help-dialog li{font-size:16px}html:lang(zh) #jungle-help-dialog p{font-size:14px}html:lang(zh) .jungle-name-row button{font-size:14px}
@media(max-width:540px){html:lang(zh) .jungle-toolbar{padding-inline:6px}html:lang(zh) .jungle-cabinet-brand{font-size:13px}html:lang(zh) .jungle-hud>div>span{font-size:11px}html:lang(zh) .jungle-ticket h2{font-size:34px}html:lang(zh) .jungle-ticket p{font-size:14px}html:lang(zh) .jungle-ticket-eyebrow,html:lang(zh) .jungle-ticket-foot{font-size:11px}html:lang(zh) .jungle-statusbar{font-size:11px}html:lang(zh) #jungle-connection{font-size:10px}}
@media(max-height:470px) and (max-width:540px){html:lang(zh) .jungle-cabinet.is-expanded .jungle-ticket h2{font-size:30px}html:lang(zh) .jungle-cabinet.is-expanded .jungle-ticket p{font-size:14px;margin:8px 0}html:lang(zh) .jungle-cabinet.is-expanded .jungle-ticket-foot{font-size:10px}html:lang(zh) .jungle-cabinet.is-expanded .jungle-primary{font-size:15px}}

/* Bread condition shares the existing HUD row so short screens keep their play area. */
.jungle-hud>div{min-width:0}
#jungle-bread{display:block;font:700 11px/1.35 var(--body);letter-spacing:0;white-space:nowrap}
#jungle-bread-meter{--bread-meter:#52795b;display:block;width:100%;max-width:84px;height:4px;margin:5px auto 0;appearance:none;-webkit-appearance:none;border:0;border-radius:2px;overflow:hidden;background:var(--soft);color:var(--bread-meter);accent-color:var(--bread-meter)}
#jungle-bread-meter::-webkit-progress-bar{background:var(--soft);border-radius:2px}
#jungle-bread-meter::-webkit-progress-value{background:var(--bread-meter);border-radius:2px}
#jungle-bread-meter::-moz-progress-bar{background:var(--bread-meter);border-radius:2px}
#jungle-bread-meter[data-condition=stretching]{--bread-meter:#956812}
#jungle-bread-meter[data-condition=worn]{--bread-meter:#b34d32}
:root[data-theme=dark] #jungle-bread-meter{--bread-meter:#96c89c}
:root[data-theme=dark] #jungle-bread-meter[data-condition=stretching]{--bread-meter:#f2c766}
:root[data-theme=dark] #jungle-bread-meter[data-condition=worn]{--bread-meter:#f0a38b}
@media(max-width:540px){.jungle-hud{grid-template-columns:1.05fr .7fr 1.2fr 1fr;gap:7px;padding-inline:11px}#jungle-bread{font-size:9px}#jungle-bread-meter{max-width:65px;margin-top:4px}}
@media(max-height:600px) and (min-width:541px){.jungle-cabinet.is-expanded #jungle-bread{font-size:10px}.jungle-cabinet.is-expanded #jungle-bread-meter{margin-inline:0}}
@media(max-height:470px) and (max-width:540px){.jungle-cabinet.is-expanded #jungle-bread{font-size:9px}.jungle-cabinet.is-expanded #jungle-bread-meter{margin-top:3px}}
html:lang(zh) #jungle-bread{font-size:14px;line-height:1.35}
@media(max-width:540px){html:lang(zh) #jungle-bread{font-size:12px}html:lang(zh) .jungle-hud{gap:6px}html:lang(zh) .jungle-personal-best>span{font-size:10px;white-space:nowrap}}
@media(max-height:600px) and (min-width:541px){html:lang(zh) .jungle-cabinet.is-expanded #jungle-bread{font-size:13px}}
@media(max-height:470px) and (max-width:540px){html:lang(zh) .jungle-cabinet.is-expanded #jungle-bread{font-size:12px}}

@media(max-height:470px) and (max-width:540px){html:lang(zh) .jungle-cabinet.is-expanded .jungle-statusbar{font-size:10px;line-height:1.2;padding:2px 9px}}

/* The journey remains legible without taking over the play area. */
.jungle-routebar{padding:7px 16px 8px;background:#294d48;color:#fff2d0;border-bottom:1px solid #183e38}
.jungle-route-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;font:700 10px/1.3 var(--body);letter-spacing:.35px}
#jungle-route-next{font-size:9px;font-weight:400;letter-spacing:0;white-space:nowrap;color:#d8e5ce}
#jungle-route-progress{display:block;width:100%;height:3px;margin-top:5px;border:0;appearance:none;-webkit-appearance:none;background:#ffffff28;color:#efc978;accent-color:#efc978}
#jungle-route-progress::-webkit-progress-bar{background:#ffffff28}#jungle-route-progress::-webkit-progress-value{background:#efc978}#jungle-route-progress::-moz-progress-bar{background:#efc978}
.jungle-cabinet[data-route=balloons] .jungle-routebar{background:#874d4b}.jungle-cabinet[data-route=skyfleet] .jungle-routebar{background:#4c5366}.jungle-cabinet[data-route=moon] .jungle-routebar{background:#2e3551}
html:lang(zh) .jungle-route-heading{font-size:12px;letter-spacing:0}html:lang(zh) #jungle-route-next{font-size:11px}
@media(max-width:540px){.jungle-routebar{padding:6px 12px}.jungle-route-heading{font-size:9px}}
@media(max-height:470px) and (max-width:540px){.jungle-routebar{padding-block:4px}#jungle-route-progress{margin-top:3px;height:2px}}
@media(max-height:600px) and (min-width:541px){.jungle-cabinet.is-expanded .jungle-routebar{grid-column:2;grid-row:2;align-self:start;z-index:2;padding:6px 12px;background:#294d48e8;pointer-events:none}.jungle-cabinet.is-expanded .jungle-routebar #jungle-route-progress{height:2px;margin-top:3px}}

/* Compare the same swing at either camera scale; the control stays touch sized. */
.jungle-routebar{padding:2px 14px 3px}
.jungle-route-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:1fr 1fr;gap:0 12px;min-height:44px}
#jungle-route{grid-column:1;grid-row:1;align-self:end}
#jungle-route-next{grid-column:1;grid-row:2;align-self:start}
.jungle-view-control{grid-column:2;grid-row:1/3;display:flex;align-items:center;gap:8px;font:10px/1.2 var(--body);letter-spacing:0}
#jungle-zoom{min-height:44px;min-width:125px;max-width:160px;padding:6px 26px 6px 9px;border:1px solid #a7c4b5;border-radius:3px;background:#23463f;color:#fff2d0;color-scheme:dark;font:700 11px/1.3 var(--body);cursor:pointer}
#jungle-zoom:focus-visible{outline:2px solid #ffe5a3;outline-offset:2px}
#jungle-route-progress{height:2px;margin-top:2px}
html:lang(zh) .jungle-view-control{font-size:12px}html:lang(zh) #jungle-zoom{font-size:14px}
@media(max-width:540px){.jungle-routebar{padding:2px 11px 3px}.jungle-view-control>span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}#jungle-zoom{max-width:150px;min-width:120px}}
@media(max-height:470px) and (max-width:540px){.jungle-routebar{padding-block:2px}#jungle-route-progress{height:2px;margin-top:2px}}
@media(max-height:600px) and (min-width:541px){.jungle-cabinet.is-expanded .jungle-routebar{padding:2px 10px 3px;pointer-events:auto}.jungle-cabinet.is-expanded .jungle-routebar #jungle-route-progress{height:2px;margin-top:2px}}

/* Keep camera comparison reachable while the full-screen pause sheet is open. */
.jungle-cabinet.is-expanded .jungle-routebar{position:relative;z-index:11}

.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) #jungle-paused{inset:174px 0 32px}
@media(max-width:540px){.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) #jungle-paused{inset:163px 0 32px}}
@media(max-height:470px) and (max-width:540px){.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) #jungle-paused{inset:147px 0 30px}}
@media(max-height:600px) and (min-width:541px){.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) #jungle-paused{inset:98px 0 30px}}

/* Screen input leaves the former launch deck and right-hand control lane to the canvas. */
.jungle-page .jungle-cabinet.is-expanded{grid-template-rows:48px 72px 54px minmax(0,1fr) 32px}
@media(max-width:540px){.jungle-page .jungle-cabinet.is-expanded{grid-template-rows:44px 65px 54px minmax(0,1fr) 32px}}
@media(max-height:470px) and (max-width:540px){.jungle-page .jungle-cabinet.is-expanded{grid-template-rows:44px 49px 54px minmax(0,1fr) 30px}}
@media(max-height:600px) and (min-width:541px){.jungle-page .jungle-cabinet.is-expanded{grid-template-columns:100px minmax(0,1fr);grid-template-rows:44px minmax(0,1fr) 30px}}

/* Readable help and HUD, including text enlargement on short screens. */
#jungle-help-dialog{box-sizing:border-box;max-width:calc(100vw - 24px);overflow-x:hidden;overflow-wrap:anywhere}
#jungle-help-dialog p,#jungle-help-dialog li,#jungle-help-dialog td,#jungle-help-dialog th,#jungle-help-dialog details{font:16px/1.6 var(--body)}
#jungle-help-dialog h3{font:700 21px/1.3 var(--body);margin:24px 0 10px}
#jungle-help-dialog .jungle-help-objects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
#jungle-help-dialog figure{min-width:0;margin:0;padding:9px;border:1px solid var(--line);text-align:center}
#jungle-help-dialog figure span{display:block;font-size:34px;line-height:1.1}
#jungle-help-dialog figcaption{font:14px/1.35 var(--body)}
#jungle-help-dialog .jungle-help-table{display:block;width:100%;max-width:100%;border-collapse:collapse;overflow-x:auto}
#jungle-help-dialog .jungle-help-table th,#jungle-help-dialog .jungle-help-table td{padding:8px 5px;border-bottom:1px solid var(--line);text-align:left;overflow-wrap:anywhere}
#jungle-help-dialog .jungle-help-table th{font-weight:700}
#jungle-help-dialog details{margin:20px 0}#jungle-help-dialog summary{cursor:pointer;min-height:44px;padding:8px 0;font-weight:700}
html:lang(zh) #jungle-help-dialog p,html:lang(zh) #jungle-help-dialog li,html:lang(zh) #jungle-help-dialog td,html:lang(zh) #jungle-help-dialog th,html:lang(zh) #jungle-help-dialog details{font-size:18px}
.jungle-hud>div>span,.jungle-result-stats>div>span{font-size:12px}.jungle-statusbar,#jungle-connection{font-size:12px}
#jungle-canvas:focus-visible{outline:3px solid #101010;outline-offset:-5px;box-shadow:inset 0 0 0 6px #fff}
.jungle-view-control{min-width:0}.jungle-route-heading{min-width:0}#jungle-zoom{max-width:100%;min-width:0;width:clamp(110px,22vw,170px)}
@media(max-width:700px){.jungle-toolbar{flex-wrap:wrap}.jungle-tools{flex-wrap:wrap}.jungle-hud{grid-template-columns:repeat(2,minmax(0,1fr))}.jungle-hud>div{text-align:left}.jungle-route-heading{grid-template-columns:minmax(0,1fr) minmax(105px,40%)}#jungle-zoom{width:100%}}
@media(max-width:380px){#jungle-help-dialog{padding:14px}.jungle-help-objects{grid-template-columns:repeat(2,minmax(0,1fr))}.jungle-help-table th,.jungle-help-table td{font-size:14px!important}.jungle-statusbar{flex-wrap:wrap}}

/* Keep the shared chat launcher below the game rather than over its canvas. */
body.jungle-page .im-launcher{position:relative;right:auto;bottom:auto;display:flex;width:max-content;max-width:calc(100% - 32px);margin:16px 22px 16px auto}
.jungle-toolbar{flex-wrap:wrap;min-width:0}.jungle-tools{min-width:0;flex-wrap:wrap;justify-content:flex-end}.jungle-cabinet-brand{min-width:0;white-space:normal}
/* Review round 3: real in-game art, readable labels and safe enlarged-text flow. */
#jungle-help-dialog .jungle-help-art{display:block;width:96px;height:96px;max-width:100%;margin:auto;image-rendering:pixelated}
#jungle-help-dialog .jungle-help-example{margin:12px 0;padding:12px}
#jungle-help-dialog .jungle-help-example svg{display:block;width:100%;height:auto;max-height:120px}
#jungle-help-dialog .jungle-help-example text{fill:var(--ink);font:700 16px var(--body)}
.jungle-eyebrow,.jungle-ticket-eyebrow,.jungle-ticket-foot{font-size:12px}
#jungle-route-next{font-size:12px;white-space:normal}
#jungle-help-done{font-size:16px}
.jungle-overlay{place-items:safe center}
.jungle-ticket{box-sizing:border-box;max-height:100%;overflow-y:auto}
#jungle-connection{font-weight:700;color:var(--ink);white-space:normal}
@media(max-width:700px){
 .jungle-route-heading{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto;gap:2px}
 #jungle-route,#jungle-route-next,.jungle-view-control{grid-column:1;grid-row:auto}
 .jungle-view-control{width:100%;min-width:0}
 #jungle-zoom{box-sizing:border-box;width:100%;min-width:0;max-width:none;font-size:14px}
 .jungle-page .jungle-cabinet.is-expanded{grid-template-rows:auto auto auto minmax(0,1fr) auto}
}
@media(max-width:540px){.jungle-ticket-foot,.jungle-ticket-eyebrow,html:lang(zh) .jungle-ticket-foot,html:lang(zh) .jungle-ticket-eyebrow{font-size:12px}}
@media(max-height:470px) and (max-width:540px){.jungle-cabinet.is-expanded .jungle-ticket-foot,html:lang(zh) .jungle-cabinet.is-expanded .jungle-ticket-foot{font-size:12px}}
@media(max-height:600px){.jungle-stage:has(.jungle-lobby:not([hidden])){min-height:560px}}

/* A short viewport needs a tall lobby, but its aspect ratio must not widen the cabinet. */
@media(max-height:600px){.jungle-stage:has(.jungle-lobby:not([hidden])){width:100%;aspect-ratio:auto}}

/* Keep the compact HUD and lobby labels readable after all locale/mobile overrides. */
.jungle-cabinet-brand,.jungle-hud>div>span,#jungle-bread,.jungle-route-heading,
#jungle-route-next,.jungle-view-control,#jungle-zoom,.jungle-statusbar,
#jungle-connection,.jungle-ticket-eyebrow,.jungle-ticket-foot,
.jungle-lobby .jungle-ticket p,.jungle-lobby .jungle-primary{font-size:12px}
html:lang(zh) .jungle-hud>div>span,html:lang(zh) .jungle-personal-best>span,
html:lang(zh) #jungle-route-next,html:lang(zh) .jungle-statusbar,
html:lang(zh) #jungle-connection{font-size:12px}
#jungle-bread{white-space:normal;overflow-wrap:anywhere}
.jungle-route-heading{min-width:0}
#jungle-help-dialog .jungle-help-example svg{color:var(--ink)}
#jungle-help-dialog .jungle-help-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:4px;font:700 1rem/1.4 var(--body)}
#jungle-help-dialog .jungle-help-steps span{font-size:1rem;line-height:1.4;overflow-wrap:anywhere}

/* Enlarged text grows the rows instead of placing the HUD over controls. The
   fixed cabinet scrolls on short screens; overlays scroll within their stage. */
.jungle-page .jungle-cabinet.is-expanded{
 grid-template-columns:minmax(0,1fr);
 grid-template-rows:auto auto auto minmax(440px,1fr) auto;
 overflow-x:hidden;overflow-y:auto;align-content:start;
}
.jungle-cabinet.is-expanded .jungle-toolbar,
.jungle-cabinet.is-expanded .jungle-hud,
.jungle-cabinet.is-expanded .jungle-routebar,
.jungle-cabinet.is-expanded .jungle-stage,
.jungle-cabinet.is-expanded .jungle-statusbar{grid-column:1;grid-row:auto}
.jungle-cabinet.is-expanded .jungle-toolbar{position:relative;z-index:2}
.jungle-cabinet.is-expanded .jungle-hud{grid-template-columns:repeat(2,minmax(0,1fr));padding:10px 13px}
.jungle-cabinet.is-expanded .jungle-routebar{position:relative;z-index:1;align-self:stretch;pointer-events:auto}
.jungle-cabinet.is-expanded .jungle-stage,
.jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-stage{height:auto;min-height:440px;overflow:hidden;isolation:isolate}
.jungle-page .jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) .jungle-overlay{
 position:absolute;inset:0;max-height:100%;padding:12px;
}
.jungle-page .jungle-cabinet.is-expanded:has(.jungle-overlay:not([hidden])) #jungle-paused{inset:0}
.jungle-primary,.jungle-secondary{font-size:14px}
.jungle-cabinet.is-expanded .jungle-lobby .jungle-primary{font-size:14px}
.jungle-hud small{font-size:12px}
.jungle-sidebar .board-heading h2{overflow-wrap:anywhere}
