*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{display:flex;align-items:center;justify-content:center;background:#102b39;font-family:Arial,Helvetica,sans-serif;color:#132e42;overscroll-behavior:none}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:3px solid #b33b2c;outline-offset:4px}[hidden]{display:none!important}#game{position:relative;width:min(100vw,66.667dvh);height:100dvh;overflow:hidden;isolation:isolate;touch-action:none;user-select:none;background:#d5e8ec}canvas{display:block;width:100%;height:100%}.shade{position:absolute;inset:0;background:linear-gradient(#fff9e529,transparent 50%,transparent 78%,#5b32153d);pointer-events:none}header{position:absolute;top:max(19px,env(safe-area-inset-top));left:23px;right:20px;display:flex;justify-content:space-between;align-items:center;z-index:6}#brand{border:none;background:none;color:#153449;font-weight:950;font-size:17px;letter-spacing:-1px;text-align:left;line-height:.85;position:relative;padding:4px 23px 4px 0}#brand span{display:block;color:#b43c32}#brand i{position:absolute;right:0;bottom:7px;font-style:normal;font-size:19px}.tools{display:flex;gap:8px}.tools button{border:1px solid #fff7e999;background:#fff9e8d9;border-radius:50%;width:36px;height:36px;color:#17354a;font-size:21px;box-shadow:0 3px 0 #37556316}.screen{position:absolute;inset:0;pointer-events:none;text-align:center}#title{padding-top:17%}.eyebrow{font-size:9px;font-weight:800;letter-spacing:3px}h1{font-family:Impact,'Arial Black',Arial,sans-serif;font-weight:950;font-size:clamp(64px,13.4dvh,124px);letter-spacing:-3px;line-height:.81;color:#153549;text-shadow:0 3px #fff7dd;margin:22px 0 18px;transform:rotate(-4deg)}h1 span{color:#b73d30}.home-tag{font-size:9px;letter-spacing:2px;font-weight:800}.home-tag span{color:#b13d30}.start-actions{position:absolute;bottom:9%;left:15%;width:70%;pointer-events:auto}.primary{display:flex;justify-content:center;gap:26px;align-items:center;background:#bb4033;border:1px solid #db5d46;border-radius:8px;box-shadow:0 5px #813029,0 10px 20px #58392933;color:#fff7e7;padding:16px 18px;font-size:12px;font-weight:850;letter-spacing:2px;width:100%}.primary:active{transform:translateY(3px);box-shadow:0 2px #813029}.primary:hover{background:#ca493c}.secondary{background:none;color:inherit;border:none;font-size:9px;letter-spacing:2px;font-weight:800;padding:13px 9px}.start-actions .secondary{margin-top:12px}.start-actions p{font-size:8px;letter-spacing:2px;font-weight:700;margin:7px 0;color:#70482d}footer{position:absolute;bottom:max(15px,env(safe-area-inset-bottom));width:100%;font-size:7px;text-align:center;letter-spacing:2px;font-weight:800;color:#633e28;pointer-events:none}footer span{padding:0 10px;color:#b33e30}#hud{position:absolute;top:12%;left:7%;right:7%;pointer-events:none}.level-info small{font-size:9px;letter-spacing:2px;font-weight:800;color:#426075}.level-info h2{font-family:Georgia,serif;font-size:30px;letter-spacing:-1px;margin:8px 0}.level-info p{font-size:11px;color:#536774;margin:0}.scoreboard{display:flex;gap:25px;margin-top:21px}.scoreboard div{border-left:2px solid #bc4637;padding-left:10px}.scoreboard span{display:block;font-size:7px;font-weight:800;letter-spacing:2px}.scoreboard strong{display:block;font-family:Georgia,serif;font-size:24px;margin-top:5px}.modal{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#fff6e6ee;backdrop-filter:blur(7px);padding:35px 14%;text-align:center}.modal h2{font-family:Georgia,serif;font-size:38px;letter-spacing:-1px;line-height:1.05;margin:21px 0}.modal p{font-size:12px;line-height:1.7;color:#647078;max-width:270px}.modal .primary{margin-top:21px}.modal .secondary{margin-top:8px}.result-score{width:100%;padding:17px;border-top:1px solid #d9c9b5;border-bottom:1px solid #d9c9b5;margin:13px 0 6px}.result-score small{display:block;font-size:8px;letter-spacing:2px;font-weight:800}.result-score strong{font:40px Georgia,serif;display:block;margin-top:6px}#stars{font-size:38px;color:#d39227;letter-spacing:5px;margin-top:20px}.faded-star{color:#d9d1c5}#levelGrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:100%;margin:10px 0 23px}#levelGrid button{border:1px solid #d2c9b8;background:#fffaf0;border-radius:9px;padding:17px 7px;color:#183447;font-weight:800}#levelGrid strong{display:block;font:26px Georgia,serif;color:#b44134;margin-bottom:8px}#levelGrid span{display:block;font-size:8px;margin-top:7px;color:#b98b38;letter-spacing:2px}#shotPanel{position:absolute;bottom:5%;left:7%;right:7%;text-align:center}.balls-row{display:flex;justify-content:center;gap:16px;align-items:center}.balls-row>span{font-size:8px;letter-spacing:2px;font-weight:800;color:#543a27}#balls{display:flex;gap:6px}.ball-dot{width:15px;height:15px;border-radius:50%;background:#fff9e9;border:1px solid #ab3d30;box-shadow:inset 3px 0 #e0cdb7}.ball-dot.used{opacity:.22}#status{font-size:10px;color:#563e2e;min-height:24px;line-height:1.5;margin:10px 0 5px}.power-track{height:4px;width:110px;margin:0 auto;background:#78482d33;border-radius:5px;overflow:hidden}#power{height:100%;width:0;background:#ad3b2d}#keyboardControls{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:12px}#keyboardControls label{font-size:7px;font-weight:800;letter-spacing:1px;display:flex;align-items:center;gap:4px}#keyboardControls input{width:60px;accent-color:#b54132}#throwButton{border:1px solid #966c4e;background:#fff4dc;border-radius:5px;color:#5b3829;font-size:9px;font-weight:800;padding:7px}#throwButton:disabled{opacity:.45}#toast{position:absolute;top:40%;left:10%;width:80%;text-align:center;color:#b93a2d;font-family:Georgia,serif;font-weight:bold;font-size:25px;pointer-events:none;text-shadow:0 2px #fff5d4}aside{position:absolute;left:calc(50% + 39dvh);bottom:16%;color:#9eb1b7}aside>span{font-size:12px;font-weight:800;letter-spacing:3px;color:#f3d9ac}aside p{font:italic 19px/1.6 Georgia,serif}aside small{font-size:8px;line-height:2;letter-spacing:2px;color:#77949e}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1050px){aside{display:none}}@media(max-height:600px) and (orientation:landscape),(orientation:landscape) and (pointer:coarse){#game{width:100vw;height:100dvh}#title{padding-top:max(58px,calc(env(safe-area-inset-top) + 44px))}h1{font-size:min(75px,17dvh);margin:14px 0 12px}.start-actions{width:28%;left:66%;bottom:22%}#title>.eyebrow,#title>h1,#title>.home-tag{width:40%}#hud{top:max(14px,env(safe-area-inset-top));left:max(150px,calc(env(safe-area-inset-left) + 130px));right:max(150px,calc(env(safe-area-inset-right) + 130px));display:flex;align-items:center;justify-content:center;gap:26px}.level-info{text-align:left;min-width:0}.level-info small{font-size:8px}.level-info h2{font-size:21px;margin:3px 0;white-space:nowrap}.level-info p{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scoreboard{margin-top:0;gap:16px;flex:none}.scoreboard strong{font-size:19px;margin-top:3px}header{left:max(23px,env(safe-area-inset-left));right:max(20px,env(safe-area-inset-right))}#shotPanel{left:max(18px,env(safe-area-inset-left));right:max(18px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:16px}#status{flex:1;margin:0;min-height:0;font-size:9px}.power-track{margin:0;flex:none}#keyboardControls{margin-top:0;flex:none}#toast{top:30%}.modal{padding:max(14px,env(safe-area-inset-top)) 24% max(10px,env(safe-area-inset-bottom));overflow-y:auto;justify-content:safe center}.modal h2{font-size:28px;margin:10px 0}.modal .primary{margin-top:10px;padding:12px 18px}.modal .secondary{margin-top:2px;padding:9px}#levels h2{font-size:24px;margin:6px 0}#levelGrid{grid-template-columns:repeat(3,1fr);gap:8px;margin:4px 0 6px}#levelGrid button{padding:8px 6px;font-size:12px}#levelGrid strong{font-size:20px;margin-bottom:3px}#levelGrid span{margin-top:3px}#stars{font-size:22px;margin-top:2px}#result h2{font-size:22px;margin:4px 0}#result p{margin:2px 0;font-size:11px;line-height:1.4}#result .primary{margin-top:6px}.result-score{padding:7px;margin:4px}.result-score strong{font-size:27px}}@media(max-height:600px) and (orientation:landscape) and (max-width:720px){.level-info p{display:none}#status{display:none}#shotPanel{justify-content:space-between}}@media(pointer:coarse){#game{width:100vw}aside{display:none}}@media(pointer:coarse) and (min-height:650px) and (min-width:650px){header,#hud,#shotPanel,#toast,.modal>*{zoom:1.35}}
