@import url("/art.css");
:root{font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#282333;background:#f3f1f6;font-size:16px;--ink:#282333;--green:#17725e;--line:#d4cedd;--purple:#73618e}
*{box-sizing:border-box}body{margin:0;padding-bottom:24px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;background:white;padding:10px 15px;color:var(--ink);font-weight:600}button:hover{border-color:#73618e;background:#f2edf8}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #288acb;outline-offset:3px}button[hidden],[hidden]{display:none!important}header{max-width:1180px;margin:auto;padding:20px 26px 16px;display:flex;align-items:center;justify-content:space-between;gap:20px}h1{font-size:32px;letter-spacing:-1.2px;margin:3px 0}h2{font-size:19px;margin:0 0 12px}h3{font-size:18px}.eyebrow{font-size:11px;letter-spacing:1.5px;font-weight:700;color:#80708f}nav{display:flex;gap:5px}nav .active,.primary,#begin{background:var(--ink);color:white;border-color:var(--ink)}main{max-width:1180px;margin:auto;padding:0 26px}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:0 0 10px}.toolbar strong{font-size:24px;letter-spacing:-.7px}.toolbar span{color:#756c80;font-size:13px}.round-actions{display:flex;gap:4px;align-items:center}.round-actions button{border:0;background:none;font-size:12px;font-weight:550;text-decoration:underline;text-underline-offset:3px;padding:10px 6px;min-height:40px;white-space:nowrap}.round-actions button:hover{color:var(--green)}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:28px}.arena-wrap{min-width:0}.tool-panel{background:#fff;border:1px solid var(--line);border-radius:9px;padding:8px 10px;margin:0 0 8px}.inventory-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.inventory-head h2{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin:0;color:#756c80}.inventory-head span{font-size:12px;color:#756c80}#inventory{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}#inventory button{min-width:0;min-height:44px;padding:5px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:13px}#inventory button:not(.empty-slot){background:#eff7f2;border-color:#9bbbab;color:#225e49}#inventory .empty-slot{border-style:dashed;color:#b4acbc;background:#fbfafc}#inventory svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}#saveHint{font-size:12px;margin:6px 0 0;color:#756c80;line-height:1.4}
#arena{--fall-zone:190px;--monster-height:32px;background:#fff;border:1px solid var(--line);border-radius:12px;height:570px;position:relative;overflow:hidden;touch-action:none;user-select:none;box-shadow:0 6px 28px #28233306}#sky{height:var(--fall-zone);position:absolute;top:0;left:0;right:0;background:linear-gradient(#f9f7fc,transparent);pointer-events:none;z-index:6}#dropLabel{display:block;position:relative;z-index:7;border:0;border-radius:0;background:transparent;text-align:left;font-weight:500;max-width:calc(100% - 45px);min-height:44px;font-size:13px;padding:10px 12px;color:#756c80;pointer-events:auto}#dropLabel:disabled{opacity:1;cursor:default;pointer-events:none}#dropLabel:not(:disabled){color:#17725e;text-decoration:underline;text-underline-offset:3px}#dropTime{position:absolute;right:10px;top:13px;font-size:13px;color:#756c80;font-variant-numeric:tabular-nums}#falling{position:absolute;top:45px;z-index:5;transition:left .09s linear}#falling.monster{height:clamp(27px,var(--monster-height),43px)}#lanes{position:absolute;inset:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px;padding:0 10px}.lane{position:relative;background:transparent;border:0;border-radius:0;margin:0;padding:0;min-width:0;overflow:visible}.lane:hover{background:#73618e04;border:0}.lane.selected{background:#73618e07}.tube{position:absolute;top:var(--fall-zone);bottom:30px;left:2px;right:2px;border:2px solid #b8aec5;border-top:0;border-radius:0 0 12px 12px;display:flex;flex-direction:column-reverse;align-items:center;padding:6px 0;gap:1px;overflow:visible;background:linear-gradient(90deg,#f3eff780,transparent 30%,transparent 70%,#f3eff780)}.lane.selected .tube{border-color:#8c77a8}.tube.empty{border-style:dashed;border-color:#d4cedd}.empty-label{position:absolute;bottom:18px;color:#a098ab;font-size:12px;line-height:1.5}.lane-label{position:absolute;bottom:8px;left:0;right:0;font-size:11px;color:#80708f;font-weight:650;white-space:nowrap}.monster{position:relative;flex:0 0 var(--monster-height);height:var(--monster-height);min-height:0}.monster-art{width:100%;height:100%;overflow:visible;display:block}.monster-art .pupil{fill:#302840;stroke:none}.monster-art .eyes{transform-origin:50% 35%}.gap-mark{flex:0 0 calc(var(--monster-height)*.24);height:calc(var(--monster-height)*.24);width:88%;position:relative}.gap-mark svg{display:block;width:100%;height:100%}.blocker{position:absolute;top:calc(var(--monster-height)*-.35);left:-5px;right:-5px;height:var(--monster-height);z-index:3}.tube.capped{border-color:#c49990;background:#f9efeb66}.tube.won{background:#e9f4ee80;border-color:#88b79f}.tube.won+.lane-label{color:#17725e}.shaft-goal{position:absolute;left:0;right:0;top:-31px;height:31px;pointer-events:none}.lever{position:absolute;right:0;width:40px;height:32px;overflow:visible;fill:none;stroke:#b7abbf;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.lever-base{fill:#f0ecf4}.lever-arm{transform-origin:40px 16px;transition:transform .5s .15s}.lever-arm circle{fill:#b9a6ce}.lever.pulled{stroke:#388060}.lever.pulled .lever-arm{transform:rotate(-60deg)}.lever.pulled circle{fill:#78ba94}.special{background:#e2f2e9;border:1.5px solid #77a18b;color:#245a43;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-size:11px;font-weight:750;height:46px}.special svg{width:24px;height:25px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.expectant .tube>.top-monster .monster-body{stroke:#178b76;stroke-width:4}.expectant .tube>.top-monster{animation:expectant .7s ease-in-out infinite alternate}.event-repair .tube>.top-monster{animation:repair .4s ease-out}.awaken{animation:awaken .55s ease-out;transform-origin:center bottom}.event-cap .blocker{animation:brace .3s ease-out}.event-place .tube>.top-monster{animation:none}.event-win .tube{animation:complete .7s ease-out}.pop-puff{position:absolute;top:-28px;left:0;right:0;font-size:44px;line-height:1;color:#bd8e87;animation:puff .6s both;pointer-events:none}
#veil{position:absolute;inset:0;z-index:10;background:#fffffff2;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:22px}#veil h2{font-size:28px;letter-spacing:-.7px}#veil>p{line-height:1.65;color:#756c80;max-width:360px}#veil[hidden]{display:none}.status{border-bottom:1px solid var(--line);margin-bottom:12px}.status p{margin:8px 0 16px;line-height:1.5;font-size:14px}.hint{font-size:13px;color:#756c80;line-height:1.5}details{border-top:1px solid var(--line);padding:13px 0;font-size:14px;line-height:1.5}summary{font-weight:650;cursor:pointer}ul{padding-left:20px;margin-bottom:0}li{margin-bottom:8px}a{color:var(--green)}label{display:block;margin:15px 0;font-size:14px}input:not([type=checkbox]),select{display:block;width:100%;padding:9px;border:1px solid var(--line);border-radius:6px;background:white;margin-top:6px;color:var(--ink)}input[type=range]{padding:0}.check{display:flex;gap:8px}.lab-intro{padding:20px 0;max-width:680px}.lab-intro h2{font-size:28px}.lab-intro p{line-height:1.6;color:#756c80}.lab-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;background:white;border:1px solid var(--line);padding:26px;border-radius:10px}#weights{display:grid;grid-template-columns:repeat(3,1fr);gap:5px 16px}#weights label{margin:6px 0}#simResults{margin-top:22px}.metric{font-size:30px;font-weight:700}.bar-row{display:grid;grid-template-columns:55px 1fr 65px;align-items:center;gap:8px;font-size:13px;margin:9px 0}.bar-track{background:#eef1f3;height:15px}.bar{height:15px;background:#348e76}footer{max-width:1180px;margin:25px auto;padding:0 26px;color:#92889c;font-size:12px}
@keyframes expectant{to{transform:translateY(-1.5px)}}@keyframes repair{40%{transform:scale(.85,.7)}70%{transform:scale(1.08,1.1)}}@keyframes awaken{from{transform:scaleY(.2);opacity:.45}70%{transform:scaleY(1.1)}}@keyframes brace{from{transform:translateY(-12px)}}@keyframes settle{50%{transform:scale(1.05,.8)}}@keyframes complete{50%{box-shadow:0 0 0 4px #80cba640}}@keyframes puff{to{transform:scale(1.6);opacity:0}}
@media(max-width:750px){
 header{padding:12px;gap:8px}header .eyebrow{display:none}h1{font-size:25px}nav button{font-size:12px;padding:8px}main{padding:0 10px}.toolbar{margin:0 0 6px;gap:3px;flex-wrap:nowrap;min-height:40px}.toolbar strong{font-size:19px}.toolbar span{font-size:10px}.round-actions{gap:0}.round-actions button{font-size:11px;padding:10px 4px;min-height:40px}.game-layout{grid-template-columns:1fr;gap:14px}.tool-panel{padding:6px;margin-bottom:6px}.inventory-head{margin-bottom:4px}.inventory-head h2,.inventory-head span{font-size:10px}#inventory{gap:4px}#inventory button{min-height:44px;padding:4px 1px;gap:2px;font-size:12px}#inventory svg{width:19px;height:22px}#saveHint{font-size:11px}#arena{height:clamp(340px,calc(100svh - 236px),650px);--fall-zone:clamp(120px,34%,210px)}#lanes{gap:2px;padding:0 4px}.tube{left:1px;right:1px;bottom:27px}.lane-label{font-size:9px;bottom:8px}.lever{width:32px}.status{margin-bottom:0}.status p{margin:4px 0 10px;font-size:14px}.lab-grid{grid-template-columns:1fr;padding:18px;gap:16px}.lab-intro h2{font-size:24px}footer{padding:0 12px}
 body:is(.playing,.settings-active){overflow:hidden;overscroll-behavior:none}body:is(.playing,.settings-active) header{display:none}body:is(.playing,.settings-active) #playView{position:fixed;inset:0 0 calc(16px + env(safe-area-inset-bottom));z-index:20;background:#f3f1f6;padding:5px 8px;display:flex;flex-direction:column}body:is(.playing,.settings-active) .toolbar{flex:none;margin:0 0 4px}body:is(.playing,.settings-active) .game-layout{display:flex;flex:1;min-height:0}body:is(.playing,.settings-active) .game-layout>aside{display:none}body:is(.playing,.settings-active) .arena-wrap{display:flex;flex-direction:column;flex:1;min-height:0}body:is(.playing,.settings-active) #arena{flex:1;min-height:200px;height:auto;--fall-zone:clamp(145px,36%,220px)}body:is(.playing,.settings-active) .tool-panel{flex:none}body:is(.playing,.settings-active) #saveHint,body:is(.playing,.settings-active) .inventory-head{display:none}body:is(.playing,.settings-active) #veil{padding:12px}body:is(.playing,.settings-active) #veil h2{font-size:24px}body:is(.playing,.settings-active) #veil p{font-size:14px;line-height:1.4}
}
@media(max-width:360px){.toolbar span{display:inline-block;max-width:56px;line-height:1.1;vertical-align:middle}.round-actions button{font-size:10px;padding:10px 3px}.toolbar strong{font-size:18px}#inventory button{font-size:11px}#inventory svg{width:17px}.lane-label{font-size:8px}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Round record: the approved quiet, neutral card; statistics are server-backed. */
body.round-complete #arena{height:auto;min-height:540px;touch-action:auto;user-select:text}
body.round-complete #veil{position:relative;inset:auto;justify-content:flex-start;background:#fff;padding:22px 14px 14px}
body.round-complete #veil h2{margin:0 0 10px}
body.round-complete #veil>p{max-width:550px;margin:0 0 12px;line-height:1.4;font-size:16px}
body.round-complete #begin{padding:11px 22px;font-size:18px;min-height:46px}
#playerRecord{width:100%;margin-top:14px;border-top:1px solid #e1e6ea;padding-top:10px;text-align:left;font-variant-numeric:tabular-nums}
.record-tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.record-tile{background:#f8f9fa;border:1px solid #e7ebee;border-radius:9px;padding:10px 12px;min-width:0}
.record-tile>span{display:block;color:#566371;font-size:14px;line-height:1.3;margin-bottom:3px}
.record-tile strong{font-size:30px;line-height:1.15;letter-spacing:-.5px}
.record-tile div>span{color:#566371;font-size:16px}
.distribution{border-top:1px solid #e1e6ea;margin-top:10px;padding-top:10px}
.distribution h3{font-size:18px;margin:0 0 8px}
.distribution-row{display:grid;grid-template-columns:20px minmax(0,1fr);gap:8px;align-items:center;height:24px;margin-top:3px;color:#67727c;font-size:14px}
.distribution-track{height:19px;position:relative;margin-right:44px}
.distribution-fill{height:100%;background:#9ca1a5}
.distribution-percent{position:absolute;top:0;left:calc(var(--bar-width) + 9px);line-height:19px;white-space:nowrap}
.current-result .distribution-rank{font-weight:750;color:#31841b}
.current-result .distribution-fill{background:#31841b}
.current-result .distribution-percent{font-weight:750;color:#287414}
#veil .record-status{font-size:14px;line-height:1.4;margin:8px 0}
.record-signin{display:inline-block;color:#175f50;font-size:14px;margin-top:10px;line-height:1.5}
body.round-complete .steering,body.round-complete .aim-hint{display:none}
@media(max-width:750px){
 body.round-complete{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
 body.round-complete header{display:none}
 body.round-complete .toolbar{flex-wrap:nowrap;min-height:44px;margin:8px 0}
 body.round-complete .toolbar strong{font-size:24px}
 body.round-complete .toolbar span{font-size:14px}
 body.round-complete #restart,body.round-complete #replay{display:none}
 body.round-complete .game-layout>aside{display:none}
 body.round-complete .tool-panel{display:block;padding:6px;margin:0 0 8px}
 body.round-complete .tool-panel .inventory-head,body.round-complete .tool-panel .wide,body.round-complete #saveHint{display:none}
 body.round-complete #inventory button{height:48px;font-size:16px;font-weight:750;border-width:2px}
 body.round-complete #inventory button:not(.empty-slot){background:#e0f6ec;border-color:#17725e;color:#104d40}
 body.round-complete #arena{min-height:0}
 body.round-complete #veil{padding:20px 12px 12px}
 body.round-complete #veil h2{font-size:26px}
 body.round-complete footer{display:none}
}
@media(max-width:360px){
 .record-tile{padding:9px 8px}
 .record-tiles{gap:7px}
 .record-tile strong{font-size:28px}
 .record-tile div>span{font-size:14px}
 body.round-complete #veil h2{font-size:23px}
}
.current-result .distribution-percent.label-inside{left:auto;right:calc(100% - var(--bar-width) + 5px);color:#fff}
body.round-complete #sky,body.round-complete #lanes{display:none}
/* Keep the reviewed results card, with the compact Home action. */
body.round-complete .tool-panel{display:none}
body.round-complete .toolbar .round-actions button{padding:10px 6px;font-size:12px}
body.round-complete #restart,body.round-complete #replay{display:none}
.event-win .lever-arm{animation:pull-lever .55s ease-out both}
@keyframes pull-lever{from{transform:rotate(0)}to{transform:rotate(-60deg)}}
.round-score{display:flex;align-items:center;gap:4px;flex-shrink:0}
.monster-rank{position:absolute;inset:0 0 2px;display:grid;place-items:center;font-size:clamp(14px,calc(var(--monster-height)*.62),22px);font-weight:800;line-height:1;color:#302840;letter-spacing:-.5px;pointer-events:none}
#score{white-space:nowrap;font-variant-numeric:tabular-nums}
.round-actions{flex-wrap:nowrap;flex-shrink:0}
.round-actions button{border-radius:0;box-shadow:none;flex:0 0 auto}
@media(max-width:750px){
 .round-score{flex-direction:column;align-items:flex-start;gap:0}
 .toolbar .round-score span{font-size:9px;line-height:1.2;max-width:none;white-space:nowrap}
 .round-actions{gap:2px}
 .round-actions button{font-size:11px;padding:10px 5px}
 .tool-panel .inventory-head,#saveHint{display:none}
 #arena{height:clamp(260px,calc(100svh - 180px),650px)}
}
@media(max-width:360px){
 .toolbar .round-score span{max-width:56px;white-space:normal;line-height:1}
 .toolbar .round-score strong{font-size:16px;line-height:20px}
 .round-actions{gap:0}
 .round-actions button{padding-inline:4px}
}
/* One shared wall per shaft; no inset tube outlines or gutters. */
#lanes{gap:0;padding:0}
.tube{left:0;right:0;border:0;border-bottom:1px solid #b8aec5;border-radius:0;background:none}
.lane+.lane .tube{border-left:1px solid #b8aec5}
.tube.empty{border-style:solid}
.lane.selected .tube{border-color:#b8aec5}
.blocker{left:50%;right:auto;width:var(--monster-width);transform:translateX(-50%)}
@keyframes brace{from{transform:translate(-50%,-12px)}}
#inventory button:not(.empty-slot){flex-direction:column;gap:1px}
.special-name{font-size:11px;font-weight:500;line-height:1.15}
.special-action{font-size:13px;font-weight:750;line-height:1.15;white-space:nowrap}
/* Keep the falling tools pictorial; the reserve and sky label teach the names. */
.falling-special svg{width:34px;height:34px;stroke-width:2.4}
.gap-mark{--gap-height:clamp(12px,calc(var(--monster-height)*.4),19px);flex-basis:var(--gap-height);height:var(--gap-height)}
.gap-rank{position:absolute;inset:0;display:grid;place-items:center;font-size:11px;font-weight:750;line-height:1;color:#fff;letter-spacing:-.3px;pointer-events:none}
/* Two shareable presentations; the switch changes only appearance. */
.build-switch{gap:16px;align-items:center;flex-wrap:wrap}
.build-switch a{font-size:14px;line-height:1.4;padding:6px 0;text-underline-offset:4px}
.build-switch a[aria-current="page"]{font-weight:750;color:var(--ink);text-decoration-thickness:2px}
html[data-skin="classic"]{color:#182230;background:#eef1f3;--ink:#182230;--line:#cbd2d9}
[data-skin="classic"] #sky{background:linear-gradient(#f8fafb,transparent)}
[data-skin="classic"] #lanes{gap:4px;padding:0 6px}
[data-skin="classic"] .lane.selected{background:#17725e0b}
[data-skin="classic"] .tube{border:2px solid #a6b2bd;border-top:0;border-radius:0 0 12px 12px;background:none}
[data-skin="classic"] .lane.selected .tube{border-color:#17725e}
[data-skin="classic"] .tube.empty{border-style:dashed;border-color:#cbd2d9}
[data-skin="classic"] .tube.capped{background:#b776690a}
[data-skin="classic"] .tube.won{background:#e6f5ef;border-color:#459a7f}
[data-skin="classic"] .monster{border:1.5px solid #536779;border-radius:50% / 35%;background:#dce6ee}
[data-skin="classic"] .monster-rank{inset:0;color:#243f53;letter-spacing:0}
[data-skin="classic"] #falling.monster{height:28px;box-shadow:0 3px 0 #18223025}
[data-skin="classic"] .gap-mark{height:12px;flex-basis:12px;width:70%;border-bottom:1px dashed #b37832;color:#956022;line-height:10px}
[data-skin="classic"] .classic-gap{font-size:11px;font-weight:600}
[data-skin="classic"] .blocker{top:-10px;width:calc(100% + 6px);height:18px;background:repeating-linear-gradient(135deg,#a96051 0 6px,#b77669 6px 12px);border:2px solid #8e5145;border-radius:5px}
[data-skin="classic"] .classic-goal{color:#17725e;font-size:22px;font-weight:750}
[data-skin="classic"] .special{background:#bceada;border-color:#17725e;color:#104d40}
[data-skin="classic"] .falling-special .special-action{font-size:11px}
[data-skin="classic"] .expectant .top-monster{border-color:#178b76;border-width:2px}
@media(max-width:750px){
 [data-skin="classic"] body:is(.playing,.settings-active) #playView{background:#eef1f3}
 [data-skin="classic"] #lanes{gap:3px;padding:0 3px}
}

/* Five shafts make room for faces and separate, live belly numerals. */
html[data-character-game]{--ink:#233446;--line:#bfcedb;color:var(--ink);background:#eaf3fb}
[data-character-game] header{display:none}
[data-character-game] main{padding-top:8px}
#lanes{grid-template-columns:repeat(var(--lane-count,7),minmax(0,1fr))}
[data-character-game] #arena{background:#f5fbff;border-color:#bbcedf}
[data-character-game] #sky{background:linear-gradient(#e9f4fe,transparent)}
[data-character-game] .lane:hover,[data-character-game] .lane.selected{background:#a9d5f017}
[data-character-game] #lanes .tube{padding:6px 0;gap:1px;border:0;border-bottom:1px solid #a2bdd1;background:linear-gradient(90deg,#c5dcec99,#e1effa55 20%,#e1effa55 80%,#c5dcec99);isolation:isolate}
[data-character-game] #lanes .lane+.lane .tube{border-left:2px solid #a8c2d7}
[data-character-game] .monster,[data-character-game] #falling.monster{height:calc(var(--monster-height)*var(--balloon-scale,1));flex-basis:calc(var(--monster-height)*var(--balloon-scale,1));transform-origin:center bottom}
.penguin-sprite{position:absolute;inset:0;display:block;background-image:url('/penguin-atlas-v1.png');background-repeat:no-repeat;pointer-events:none}
[data-character-game] .monster-rank{inset:52% 0 9%;font-size:clamp(16px,calc(var(--monster-height)*.39),31px);font-weight:850;letter-spacing:-.7px;line-height:1;color:#172c49;text-shadow:0 1px #fff;z-index:2}
[data-character-game] .gap-mark{--gap-height:calc(var(--monster-height)*.4);height:var(--gap-height);flex-basis:var(--gap-height);width:var(--monster-width);max-width:98%;z-index:1}
[data-character-game] .gap-rank{inset:52% 0 10%;font-size:clamp(12px,calc(var(--monster-height)*.23),19px);color:#172c49;text-shadow:0 1px #fff;font-weight:850;z-index:2}
[data-character-game] .blocker{top:0;height:var(--monster-height);width:var(--monster-width)}
[data-character-game] .tube.capped+.lane-label{color:#b31f36}
[data-character-game] .shaft-goal{display:none}
[data-character-game] .tube>.monster{z-index:1}
[data-character-game] .tube.won>.monster{visibility:hidden}
.shaft-door{display:none}
[data-character-game] .shaft-door{display:grid;place-items:center;position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(100deg,#1c2a3b,#34465b 55%,#1b293b);border-top:4px solid #7891a9;box-shadow:inset 0 8px 12px #07121d70;transform:scaleY(0);transform-origin:top;will-change:transform}
[data-character-game] .shaft-door span{color:#a2d7bc;font-size:26px}
[data-character-game] .tube.won .shaft-door{transform:scaleY(1)}
[data-character-game] .penguin-launching .shaft-door{transform:scaleY(0)}
[data-character-game] .empty-label{font-size:13px;color:#748b9c}
[data-character-game] .lane-label{font-size:11px}
[data-character-game] .event-win .tube,[data-character-game] .event-place .tube>.monster,[data-character-game] .event-repair .tube>.monster,[data-character-game] .tube>.awaken,[data-character-game] .expectant .tube>.top-monster{animation:none}
[data-character-game] .expectant .tube>.top-monster{filter:drop-shadow(0 0 3px #278a93)}
.penguin-effect{position:absolute;overflow:hidden;pointer-events:none;z-index:7}
.penguin-actor{position:absolute;transform-origin:center bottom;pointer-events:none;will-change:transform}
.penguin-pump{position:absolute;left:0;width:42px;height:48px}
.penguin-pump .balloon-tool{inset:0}
[data-character-game] .falling-special{background:none;border:0}
[data-character-game] .balloon-tool{inset:0}
[data-character-game] #inventory .reserve-tool{position:relative;display:block;width:26px;height:26px;flex:none;pointer-events:none}
/* One gear replaces the two audio buttons in the existing toolbar. */
.round-actions #settingsButton{width:42px;min-height:42px;padding:9px;text-decoration:none;color:#43647d;border-radius:7px}
#settingsButton svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
#gameSettings{inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;padding:0;background:#edf4fa;color:#233446;overflow:auto}
#gameSettings::backdrop{background:#edf4fa}
.settings-sheet{max-width:560px;margin:auto;padding:24px 22px calc(30px + env(safe-area-inset-bottom))}
.settings-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:20px}
.settings-heading h1{font-size:28px;margin:0;letter-spacing:-.6px}
.settings-heading button{min-height:44px;color:#196857}
.settings-sheet fieldset{border:0;margin:0 0 28px;padding:0}
.settings-sheet legend{font-size:18px;font-weight:750;margin-bottom:14px}
.game-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.game-choices a{display:flex;flex-direction:column;gap:7px;border:2px solid #c9d8e3;border-radius:12px;padding:18px 14px;text-decoration:none;color:#233446;background:#fff}
.game-choices a strong{font-size:20px}
.game-choices a span{font-size:14px;color:#536b80}
.game-choices a[aria-current]{border-color:#197462;box-shadow:inset 0 0 0 1px #197462;background:#f1faf6}
.settings-note{color:#536b80;font-size:14px;line-height:1.5}
.volume-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}
.volume-heading label{font-size:17px;font-weight:650;margin:0}
.volume-heading input{width:24px;height:24px;accent-color:#197462}
.volume-label{display:flex;justify-content:space-between;font-size:14px;margin:14px 0 4px}
.settings-sheet input[type="range"]{accent-color:#197462;min-height:38px;margin:0;cursor:pointer}
.settings-credits{font-size:14px}
.settings-demo{display:inline-block;min-height:44px;padding:10px 0;color:#197462;font-weight:650;text-underline-offset:3px}
.round-actions #diamondButton{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:52px;min-height:44px;padding:6px;color:#075bac;text-decoration:none;border-radius:8px;background:#e5f4ff;font-weight:750;font-variant-numeric:tabular-nums}
.round-actions #diamondButton:hover:not(:disabled){background:#c8eaff;color:#06458a}
#diamondButton svg{width:25px;height:26px;flex:none}
.toolbar #diamondCount{font-size:14px;color:#075bac}
#diamondButton:disabled{opacity:.5}
#falling.falling-diamond{height:48px;filter:drop-shadow(0 3px 6px #087ce850)}
#falling.falling-diamond svg{display:block;width:100%;height:100%}
#veil .diamond-earned{display:flex;align-items:center;justify-content:center;gap:9px;color:#075bac;font-weight:700}
.diamond-earned svg{width:28px;height:28px;flex:none}
@media(max-width:750px){
 [data-character-game] body:is(.playing,.settings-active) #playView{background:#eaf3fb}
 [data-character-game] #arena{--fall-zone:28%;height:clamp(280px,calc(100svh - 136px),700px)}
 [data-character-game] body:is(.playing,.settings-active) #arena{--fall-zone:clamp(105px,26%,190px)}
 [data-character-game] .lane-label{font-size:10px}
}

/* Approved compact reserve / snowy five-shaft treatment. */
[data-character-game] .tool-panel{padding:2px 3px;margin-bottom:5px;background:#f9fdff;border-color:#c5dce9}
[data-character-game] .tool-panel .inventory-head,[data-character-game] #saveHint{display:none}
[data-character-game] #inventory{gap:4px}
[data-character-game] #inventory button{min-height:44px;height:44px;padding:3px;border-radius:7px;box-shadow:inset 0 1px 0 #fff}
[data-character-game] #inventory button:not(.empty-slot){background:#edf7ff;border-color:#acc9dc}
[data-character-game] #inventory .empty-slot{background:#f3f9fc;border-color:#d1e0eb;font-size:15px}
[data-character-game] #arena{background:#e2eff9}
[data-character-game] #sky{background:linear-gradient(#f1f8ff70,#e7f3ff08 65%),url('/penguin-snow-v1.png') center bottom / cover no-repeat}
[data-character-game] #lanes{gap:5px;padding:0 5px}
[data-character-game] .lane,[data-character-game] .lane:hover,[data-character-game] .lane.selected{background:transparent}
[data-character-game] #lanes .tube,[data-character-game] #lanes .lane+.lane .tube{border:0;background:none;padding:8px 0 6px;border-radius:3px;box-shadow:0 2px 3px #31577920}
/* Frame the shaft inside the generated image's transparent side gutters. */
[data-character-game] .tube::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:url('/penguin-shaft-v1.png') 50.18% 0 / 162% 100.61% no-repeat}
[data-character-game] .lane.selected .tube::before{filter:brightness(1.06)}
[data-character-game] .empty-label{z-index:1;color:#5f7d91;text-shadow:0 1px #fff}
[data-character-game] .shaft-door{inset:2px 3px 3px;border-radius:2px}
[data-character-game] #dropLabel{padding:18px 10px 8px;max-width:calc(100% - 64px);font-size:14px;font-weight:600;color:#304e69}
[data-character-game] #dropLabel:not(:disabled){color:#176d59}
[data-character-game] #dropTime{top:19px;font-size:16px;font-weight:750;color:#263e59}
#dropClock{position:absolute;top:7px;left:10px;right:10px;height:5px;border-radius:5px;background:#9cbace70;overflow:hidden;pointer-events:none}
#dropClockFill{display:block;width:100%;height:100%;border-radius:5px;background:#19896f;transform-origin:left center;will-change:transform}
#dropClock.time-low #dropClockFill{background:#b16a20}

/* Pigs share the five-shaft layout; the environment and celebration are skins. */
html[data-skin="pigs"]{--ink:#30353d;--line:#cdd4d2;color:var(--ink);background:#f7f9f8}
[data-skin="pigs"] #playView{background:#f7f9f8}
[data-skin="pigs"] .toolbar span{color:#66716d}
[data-skin="pigs"] .round-actions #settingsButton{color:#434b51}
[data-skin="pigs"] .tool-panel{background:#fff;border-color:#cdd4d2}
[data-skin="pigs"] #inventory button:not(.empty-slot){background:linear-gradient(#fff,#f2f5f3);border-color:#bfc9c4}
[data-skin="pigs"] #inventory .empty-slot{background:#fafbfa;border-color:#dce1de;color:#b6bfbb}
[data-skin="pigs"] #arena{border-color:#ccd5cf;background:linear-gradient(#ffffff20,#ffffff20),#dfe9d5 url('/pig-pasture-v2.png') center / 100% 100% no-repeat}
[data-skin="pigs"] #sky{background:linear-gradient(#ffffff40,#ffffff00 75%)}
[data-skin="pigs"] .tube::before{content:none}
/* Image frame: x=330..603, y=30..1662 in the original 932×1688 PNG. */
.pig-shaft-art{position:absolute;inset:0;display:block;z-index:0;pointer-events:none;background:url('/pig-shaft-v2.png') 50.0759% 53.5714% / 341.3919% 103.4314% no-repeat}
.pig-sprite{position:absolute;inset:0;display:block;background-image:url('/pig-atlas-v1.png');background-repeat:no-repeat;pointer-events:none}
.pig-body{z-index:1}
/* Frame x=39..1375, y=116..1017; retain the original gray sprite pixels. */
.pig-deflated{position:absolute;inset:0;display:block;background:url('/pig-deflated-gray-v1.png') 28.4672% 69.4611% / 110.2545% 118.535% no-repeat;pointer-events:none}
.pig-wings{position:absolute;left:-17%;top:14%;width:134%;height:61%;z-index:0;pointer-events:none;transform-origin:50% 75%;will-change:transform,opacity}
[data-skin="pigs"] .monster-rank{inset:57% 0 8%;color:#332539;text-shadow:0 1px #fff8}
[data-skin="pigs"] .gap-rank{inset:61% 0 0;color:#252a30;text-shadow:0 1px #ffffffa0}
[data-skin="pigs"] .empty-label{color:#65716d;text-shadow:0 1px #fff}
[data-skin="pigs"] .lane-label{bottom:0;height:27px;display:grid;place-items:center;background:#fffffff2;border-radius:0 0 4px 4px;color:#3c4942;text-shadow:none}
[data-skin="pigs"] .tube.capped+.lane-label{color:#b31f36}
[data-skin="pigs"] .tube.won+.lane-label{color:#17725e}
[data-skin="pigs"] .lane.selected .pig-shaft-art{filter:brightness(1.04)}
[data-skin="pigs"] .shaft-door{inset:5px 6px 7px;background:linear-gradient(90deg,#252c30,#485256 55%,#293135);border-top-color:#909c98;box-shadow:inset 0 8px 12px #14231b70}
[data-skin="pigs"] #dropLabel,[data-skin="pigs"] #dropTime{color:#30353d}
[data-skin="pigs"] #dropLabel:not(:disabled){color:#12533d}
[data-skin="pigs"] #veil{background:#fffffff0}
[data-skin="pigs"] .lane-label{display:none}
[data-skin="pigs"] #lanes .tube{bottom:6px}
[data-skin="pigs"] .round-score>span:not(#pigLevelLabel){display:none}
@media(max-width:750px){
 [data-skin="pigs"] body:is(.playing,.settings-active) #playView{bottom:env(safe-area-inset-bottom)}
}
[data-skin="classic"] header .eyebrow{display:block;font-size:11px}
@media(max-width:750px){[data-skin="pigs"] body:is(.playing,.settings-active) #playView{background:#f7f9f8}}

/* Start screen: the same flavors as Settings, before the first drop. */
#veil{overflow-y:auto;touch-action:pan-y;justify-content:safe center}
#veil>h2{flex-shrink:0;margin-bottom:6px}
#veil>p{margin:8px 0 16px}
.start-choices{width:100%;max-width:420px;margin:0 0 18px;flex-shrink:0}
.start-choices h3{font-size:16px;margin:0 0 10px}
.start-choices .game-choices{text-align:left;gap:8px}
.start-choices .game-choices a{padding:12px;gap:5px;min-height:76px}
.start-choices .game-choices strong{font-size:16px}
.start-choices .game-choices span{font-size:14px;line-height:1.3}
#veil>#begin{flex-shrink:0;min-height:44px}
.tube>.monster,.penguin-actor{transform-origin:center bottom}
@media(max-width:380px){
 #veil{padding:14px}
 #veil>h2{font-size:24px}
 #veil>p{line-height:1.4}
 .start-choices .game-choices a{padding:10px}
}

#veil>.start-brand{font-size:18px;font-weight:800;color:var(--ink);margin:0 0 12px;flex-shrink:0}
#arena:has(#veil:not([hidden])){touch-action:pan-y}
#arena:has(#veil:not([hidden]) .start-choices){min-height:450px}

#arena:has(#veil:not([hidden]) .start-choices){height:auto}
#veil:has(.start-choices):not([hidden]){position:relative;inset:auto;min-height:450px;overflow:visible}
@media(max-width:380px){
 #veil:has(.start-choices)>h2{font-size:20px}
 #veil:has(.start-choices)>p:not(.start-brand){font-size:14px;line-height:1.4;margin:6px 0 12px}
 #veil:has(.start-choices)>.start-brand{font-size:16px;margin-bottom:8px}
 .start-choices{margin-bottom:12px}
 .start-choices .game-choices a{padding:9px;gap:4px}
}

/* Shared game controls: a permanent entry target and the actual five saved slots. */
[data-game-controls] #inventory{grid-template-columns:repeat(6,minmax(0,1fr))}
[data-game-controls] #inventory button{height:44px;min-height:44px;padding:3px}
[data-game-controls] #inventory .reserve-tool{width:min(36px,100%);height:auto;aspect-ratio:1}
[data-game-controls] #inventory button.reserve-entry{
 border:1px dotted #398764;background:#fff;box-shadow:inset 0 0 4px 1px #71bc8c40;opacity:1;
}
[data-game-controls] #inventory button.reserve-entry[aria-disabled="true"]{cursor:default}
[data-game-controls] #inventory button.empty-slot{background:#fff;border:1px dotted #b7c2bd;opacity:1}
[data-game-controls] #inventory button:not(.empty-slot):not(.reserve-entry){background:#aed4bc;border-color:#79a58b}
[data-game-controls] .tool-panel.reserve-full{border-color:#92958f;box-shadow:0 0 0 1px #92958f40}
/* Keep the action under the save entry; descriptive text is separate. */
[data-game-controls] #dropLabel{
 position:absolute;top:0;left:var(--reserve-center,32px);transform:translateX(-50%);
 display:flex;align-items:center;justify-content:center;width:44px;height:44px;
 max-width:none;min-height:44px;padding:6px 0;text-align:center;text-decoration:none;
}
[data-game-controls] #dropLabel:not(:disabled){text-decoration:none}
[data-game-controls] .incoming-save-cta{display:flex;flex-direction:column;align-items:center;font-size:12px;font-weight:750;line-height:1}
[data-game-controls] .incoming-save-cta .cta-arrow{font-size:18px;line-height:18px}
[data-game-controls] #ringDescription{
 position:absolute;top:10px;right:10px;max-width:calc(100% - 80px);
 font-size:13px;font-weight:500;line-height:18px;color:#756c80;text-align:right;
 pointer-events:auto;cursor:default;
}
[data-game-controls] #dropTime{top:32px}

/* Fountain is a separate Rings art option; it shares all Rings controls. */
[data-skin="fountain"] .ring-pole.fountain-rod{
 --cap-height:22px;top:auto;bottom:6px;width:22px;height:38px;
 overflow:visible;filter:none;z-index:0;
}
[data-skin="fountain"] .fountain-art{position:absolute;inset:0;transform:scaleX(var(--rod-proportion,1));pointer-events:none}
[data-skin="fountain"] .fountain-stem{position:absolute;left:29%;width:42%;top:calc(var(--cap-height) - 4px);bottom:0;overflow:hidden}
[data-skin="fountain"] .fountain-cap{position:absolute;top:0;left:0;width:100%;height:var(--cap-height);overflow:hidden}
[data-skin="fountain"] .fountain-art img{position:absolute;max-width:none;pointer-events:none}
[data-skin="fountain"] .lane.selected .fountain-art{filter:drop-shadow(0 0 2px #3b819a50)}
[data-skin="fountain"] .shaft-goal{display:none}
[data-skin="fountain"] .empty-label{bottom:48px}
[data-skin="fountain"] .fountain-water{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none}
[data-skin="fountain"] .event-win .tube{animation:none}
@media(min-width:751px){[data-skin="fountain"] .ring-pole.fountain-rod{width:25px;--cap-height:26px}}

/* Fountain blockers rest below a visible cap; no upward brace over it. */
[data-skin="fountain"] .event-cap .blocker{animation:none}

.settings-guide{margin-bottom:20px}

/* A newly earned diamond approaches over the completed round. */
.diamond-reward{position:fixed;inset:0;margin:auto;width:100vw;max-width:none;height:100svh;max-height:none;padding:0;border:0;background:transparent;overflow:hidden;color:#fff}
.diamond-reward::backdrop{background:#05233be8}
.diamond-reward-gem{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;animation:diamond-approach 1.4s cubic-bezier(.16,1,.3,1) both}
.diamond-reward-gem svg{width:min(92vw,88svh);height:min(92vw,88svh);filter:drop-shadow(0 0 35px #2baaff88)}
.diamond-reward-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;animation:diamond-copy .7s .7s both;text-shadow:0 2px 8px #002c55,0 1px 3px #002c55}
.diamond-reward-copy h2{font-size:clamp(26px,5vw,48px);line-height:1.15;max-width:650px;margin:0 0 16px;color:#fff}
.diamond-reward-copy p{font-size:clamp(16px,2.6vw,22px);line-height:1.4;max-width:380px;margin:0 0 28px;color:#fff}
.diamond-reward-copy button{background:#fff;color:#075bac;border:0;border-radius:9px;padding:12px 26px;font-weight:750;min-height:44px;text-shadow:none}
@keyframes diamond-approach{from{transform:scale(.035);opacity:0}15%{opacity:1}to{transform:scale(1);opacity:1}}
@keyframes diamond-copy{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.diamond-reward-gem,.diamond-reward-copy{animation:none}}

[data-game-controls][data-character-game] #dropClock{top:2px}
[data-game-controls][data-character-game] #dropLabel{top:7px}
[data-game-controls][data-character-game] #ringDescription{top:14px;color:#304e69}
[data-game-controls][data-character-game] #dropTime{top:36px}
[data-game-controls] #falling.falling-diamond{background:transparent;border:0;border-radius:0}

/* Open sky: more visual breathing room without changing board geometry. */
:is([data-skin="rings"],[data-skin="ring-save"]) #arena{background-color:#fff;background-image:linear-gradient(#eaf5fc,#f8fbfe 62%,#fff);background-size:100% var(--fall-zone);background-position:top;background-repeat:no-repeat}
/* The sky is an input layer; keep its paint behind travelling rings and badges. */
:is([data-skin="rings"],[data-skin="ring-save"]) #sky{background:transparent}
:is([data-skin="rings"],[data-skin="ring-save"]) .ring-pole{opacity:.58}
:is([data-skin="rings"],[data-skin="ring-save"]) .lane.selected .ring-pole{filter:drop-shadow(0 0 2px #3b819a30)}

[data-skin="ring-save"] #inventory .saved-ring-slot{background:#f0f6fb;border-color:#9abace}
[data-skin="ring-save"] .saved-ring{position:relative;display:block;width:34px;height:22px;flex:none}
[data-skin="ring-save"] .saved-ring .monster-rank{font-size:17px}

/* Pigs fly through the camera, leaving a full-screen level color. */
#pigLevelLabel{display:block;font-size:12px;font-weight:750;color:#4d3a2a;line-height:1.2;margin-bottom:2px}
.pig-level-intro{--pig-color:#249fec;position:fixed;inset:0;margin:auto;width:100vw;max-width:none;height:100svh;max-height:none;padding:0;border:0;background:transparent;overflow:hidden;color:#fff}
.pig-level-intro::backdrop{background:#13253770}
.pig-level-intro.pig-intro-loss{--pig-color:#e52d35}
.pig-flight{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.pig-flight-avatar{position:relative;width:min(94vw,90svh);aspect-ratio:1;animation:pig-fly-through 1.6s cubic-bezier(.25,.55,.4,1) both;will-change:transform}
.pig-flight-avatar img{display:block;width:100%;height:100%;object-fit:contain}
.pig-flight-red{position:absolute;inset:0;background-image:url('/pig-atlas-v1.png');background-repeat:no-repeat}
.pig-screen-fill{position:absolute;inset:0;background:var(--pig-color);pointer-events:none;animation:pig-fill-screen .35s 1.05s both}
.pig-level-copy{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;padding:24px;text-align:center;animation:pig-level-reveal .8s .8s both}
.pig-level-copy h2{font-size:clamp(52px,12vw,116px);font-weight:900;line-height:1;letter-spacing:-2px;color:#fff;margin:0;max-width:92vw;text-shadow:0 3px 12px #13253745}
.pig-level-copy button{background:#fff;color:#1d405a;border:0;border-radius:10px;min-height:48px;padding:12px 28px;font-size:17px;font-weight:750;box-shadow:0 3px 14px #13253730}
.pig-intro-loss .pig-level-copy button{color:#8f1520}
@keyframes pig-fly-through{0%{transform:scale(.025) rotate(-720deg)}60%{transform:scale(1) rotate(0deg)}100%{transform:scale(14) rotate(0deg)}}
@keyframes pig-fill-screen{from{opacity:0}to{opacity:1}}
@keyframes pig-level-reveal{from{opacity:0;transform:translateY(16vmin) scale(.4)}70%{opacity:1;transform:translateY(4vmin) scale(1.06)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(prefers-reduced-motion:reduce){.pig-flight-avatar,.pig-screen-fill,.pig-level-copy{animation:none}.pig-flight{display:none}}
