@font-face{font-family:GameMono;src:url('font.woff') format('woff');font-display:swap}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#260b14;color:#fff5da;font-family:GameMono,'Courier New',monospace}body{min-height:100svh;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 40%,#5D1D2E,#260b14 70%)}button{font:inherit;color:inherit;cursor:pointer;border:2px solid #dcaa40;border-top-color:#ffe3a0;border-left-color:#ffe3a0;box-shadow:inset 0 0 0 2px #755521,3px 3px 0 #230911;background:#5D1D2E;padding:12px 10px;min-height:44px;touch-action:none}button:active,button.pressed{transform:translateY(2px);filter:brightness(1.3);box-shadow:inset 0 0 0 2px #755521}button:focus-visible{outline:3px solid #36c8f3;outline-offset:3px}button:disabled{opacity:.55;cursor:wait}button[hidden],[hidden]{display:none!important}#game{width:min(100vw,66.6667svh,560px);aspect-ratio:2/3;position:relative;overflow:hidden;isolation:isolate;outline:none;box-shadow:0 0 0 3px #863649,0 20px 90px #000a;container-type:inline-size;touch-action:none;user-select:none;-webkit-user-select:none}#field{width:100%;height:100%;display:block;image-rendering:pixelated}#hud{position:absolute;inset:0 0 auto;height:12%;border-bottom:3px solid #9c5365;background:linear-gradient(130deg,#6b263b,#431321);box-shadow:inset 0 0 0 3px #8c3f53;display:flex;align-items:center;padding:0 4%;gap:3%;font-size:clamp(16px,5.4cqw,28px)}.score{display:flex;align-items:center;gap:7px;color:#ffd05a;width:70%;padding-bottom:5%}.total{color:#ffdb78}.coin-icon{width:26px;height:30px;image-rendering:pixelated}.cup{position:absolute;right:16%;top:14%;height:67%;width:10%}.small{position:absolute;right:3%;top:18%;width:11%;height:55%;padding:0;font-size:22px}.progress{position:absolute;bottom:14%;left:5%;width:63%;height:7px;border:1px solid #73879a;background:#2c0d17}.progress div{height:100%;width:0;background:#38c9f2;box-shadow:inset 0 2px #c4efff}#controls{position:absolute;bottom:0;left:0;right:0;height:14.5%;padding:3% 3%;display:grid;grid-template-columns:1.25fr 1fr 1fr 1.25fr;gap:3%;background:linear-gradient(140deg,#6b263b,#431321);border-top:3px solid #9c5365}#controls button{padding:3px;font-size:clamp(16px,4.8cqw,25px);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1px}#controls button[data-move]{font-size:30px}.ball{width:38px;height:23px;display:block;background:none center/contain no-repeat;image-rendering:pixelated}.overlay{position:absolute;inset:0;background:linear-gradient(180deg,#5d1d2ef5,#3b101ef5);display:flex;align-items:center;justify-content:center;flex-direction:column;padding:5% 6%;gap:2%;text-align:center}.menu-cup{width:12%;height:10%;object-fit:contain}.eyebrow{font-size:clamp(12px,3.3cqw,17px);color:#8da9c3;letter-spacing:.06em;margin:0}h1,h2{font-size:clamp(19px,5.4cqw,28px);line-height:1.25;margin:1% 0 3%;letter-spacing:.02em}h2{color:#ffdb77;font-size:clamp(28px,8cqw,40px)}.teams{display:flex;width:100%;gap:4%}.team{width:48%;padding:4px 2px 10px;border-color:#96586b;background:#431321;box-shadow:inset 0 0 0 2px #713046}.team.selected{border-color:#ffe1a0;background:#743044;box-shadow:inset 0 0 0 2px #ac7929}.team canvas{width:65%;height:auto;display:block;margin:0 auto;image-rendering:pixelated}.team strong{display:block;font-size:clamp(12px,3.5cqw,18px);white-space:nowrap}.team small{display:block;font-size:clamp(10px,2.6cqw,13px);color:#9aafc3;margin-top:6px}.intro{font-size:clamp(14px,3.8cqw,19px);line-height:1.5;margin:1%}.tiers{display:flex;justify-content:space-between;width:100%;padding:3% 0;border-top:1px solid #96586b;border-bottom:1px solid #96586b}.tiers span{font-size:clamp(11px,3cqw,15px);color:#97afc6}.tiers b{display:block;color:#ffd46c;margin-top:5px;font-size:clamp(16px,4.2cqw,22px)}.primary{background:#efbb4a;color:#10223a;box-shadow:inset 0 0 0 2px #a7741b,3px 3px #230911;width:100%;font-weight:bold;margin-top:3%;font-size:clamp(16px,4.4cqw,23px)}.hint{font-size:clamp(11px,3.05cqw,16px);color:#a6bbcd;line-height:1.6;margin:2% 0}.test-note{font-size:clamp(10px,2.65cqw,13px);color:#6e8ba5}.compact{inset:12% 0 14.5%;gap:3%;padding:5% 8%;background:#461523f5}.compact button{width:100%;font-size:clamp(14px,3.9cqw,20px)}.compact p{margin:0}.compact .menu-cup{height:14%;width:14%}.reward span{display:block;color:#91a8bc;font-size:13px}.reward strong{display:block;font-size:clamp(38px,12cqw,64px);color:#ffd363;line-height:1.2}.text-button{border:0;box-shadow:none;background:none;color:#9bb8cf}.compact #promo-code{color:#ffdb76;font-size:clamp(17px,5cqw,24px);user-select:text}.compact #promo small{font-size:11px;color:#b2c3d1}#toast{position:absolute;top:15%;left:4%;right:4%;pointer-events:none;text-align:center;font-size:clamp(13px,3.5cqw,18px);color:#fff5d6;text-shadow:2px 2px #061529;transition:opacity .2s;opacity:0}#toast.show{opacity:1}#countdown{position:absolute;inset:12% 0 14.5%;display:grid;place-items:center;font-size:72px;color:#ffe1a0;background:#05142944;text-shadow:4px 4px #06142d;pointer-events:none}@media(max-height:480px){body{place-items:center}#game{width:min(100vw,66.6667svh)}.hint,.test-note{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#menu{padding:4% 6%;gap:1.2%}#menu .menu-cup{height:7%;flex-shrink:0}#menu h1{margin:1% 0}#menu .team canvas{height:21cqw;width:auto}#menu .team{padding:3px 2px 7px}#menu .intro{line-height:1.35}#menu .tiers{padding:2% 0}#menu .primary{margin-top:1%}#menu .hint{margin:1% 0;line-height:1.4}

/* Compact logo-led team selection; preserve mark aspect ratios. */
.cup{object-fit:contain;width:auto;max-width:10%;height:67%;image-rendering:pixelated}.menu-cup{object-fit:contain;image-rendering:pixelated}
#menu{gap:5%;padding:8% 7%;background:linear-gradient(180deg,#5d1d2ef0,#3b101ef5)}#menu .teams{gap:6%;align-items:stretch}#menu .team{padding:8% 2% 4%;position:relative}#menu .team.selected:after{content:'✓';position:absolute;right:6%;top:3%;color:#ffdc75;font-size:22px}#menu .team canvas{height:32cqw;width:auto;margin-top:15%}.team-logo{height:19cqw;width:86%;object-fit:contain;display:block;margin:auto;image-rendering:pixelated}#menu .primary{margin:0;font-size:28px}#menu .hint{font-size:clamp(13px,3.5cqw,18px);line-height:1.8;margin:0}

#timer{position:absolute;right:30%;top:17%;font-size:clamp(12px,3.2cqw,17px);color:#ffe3bf;font-variant-numeric:tabular-nums}.progress div{background:#e9aeb9;box-shadow:inset 0 2px #ffe3e8}button:focus-visible{outline-color:#ffb7c7}.score{width:58%}#hud{background:#5D1D2E}#controls{background:#5D1D2E}

/* Fit the entire canonical game, including overlays, into the visible safe area. */
html,body{width:100%;height:100%;min-height:0;overflow:hidden;overscroll-behavior:none;touch-action:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{display:block;position:fixed;inset:0}
#viewport{position:absolute;left:0;top:0;width:100%;height:100%;height:100dvh;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:calc(env(safe-area-inset-top,0px) + 4px) calc(env(safe-area-inset-right,0px) + 4px) calc(env(safe-area-inset-bottom,0px) + 4px) calc(env(safe-area-inset-left,0px) + 4px);touch-action:none}
#game{width:384px;height:576px;flex:none;aspect-ratio:auto;transform:scale(var(--game-scale,1));transform-origin:center; -webkit-touch-callout:none}
.compact{overflow-y:auto;justify-content:flex-start;overscroll-behavior:contain;touch-action:pan-y}
.compact>*{flex-shrink:0}
@media(max-height:480px){#menu .hint{display:block}}

#result{inset:12% 0 0;padding:5% 8%;gap:2.5%}#result #promo{order:0}#result #claim{margin-top:0}#result #promo-code{user-select:text;-webkit-user-select:text}

#game *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#field,#controls,#controls *{touch-action:none;-webkit-user-drag:none}#controls button>*{pointer-events:none}#game #promo-code{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}

/* Three contiguous large targets within one thumb's reach. */
#controls{grid-template-columns:3fr 4fr 3fr;gap:0;padding:9px 0 10px;border-left:0;border-right:0}
#controls button{min-height:60px;margin:0;border-width:2px;box-shadow:inset 0 0 0 2px #755521}
#controls button[data-pass]{background:#8b3449;font-size:21px}#controls .ball{width:44px;height:27px}
