:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#142b43;background:#eaf5fb;--accent:#55caae;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-height:100svh;background:radial-gradient(circle at 18% 30%,#ffffffb8 0 9%,transparent 9.2%),radial-gradient(circle at 83% 78%,#bfe6ef88 0 15%,transparent 15.2%),linear-gradient(150deg,#e6f5ff,#f3eee8);color:#142b43}body[data-game="hole-harvest"]{background:radial-gradient(circle at 15% 20%,#fff9 0 10%,transparent 10.2%),linear-gradient(140deg,#bceee0,#f1ffe2)}body[data-game="bridge-dash"]{background:radial-gradient(circle at 18% 70%,#ffd9ba 0 14%,transparent 14.2%),linear-gradient(135deg,#fff0c6,#d6eaf8)}body[data-game="sling-rescue"]{background:radial-gradient(circle at 10% 20%,#bdd4fd 0 9%,transparent 9.2%),linear-gradient(140deg,#d7e7ff,#ebd6ef)}button,a,select{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}a{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #e27b19;outline-offset:3px}.topbar{height:48px;max-width:1120px;margin:auto;padding:5px 24px;display:flex;align-items:center;gap:8px}.back{text-decoration:none;font-size:13px;font-weight:800}.brand{margin-left:auto;font-size:10px;letter-spacing:2px;font-weight:800;color:#60788c}.quiet{background:#ffffffb8;border:1px solid #203e5724;border-radius:10px;padding:8px 11px;min-height:34px;font-size:11px;font-weight:700;color:#35546b}.game-layout{max-width:990px;margin:10px auto 22px;padding:0 20px;display:grid;grid-template-columns:minmax(210px,330px) minmax(360px,440px);gap:60px;align-items:center;justify-content:center}.game-brief{position:relative}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:850;color:#4e788e;margin:0 0 12px}h1{font-size:14px;letter-spacing:2px;line-height:1.1;margin:0 0 16px;font-weight:850;color:#5f7b8f}.headline{font-weight:950;font-size:clamp(38px,4.6vw,62px);line-height:1.18;letter-spacing:-2px;margin:0 0 20px;word-break:keep-all;overflow-wrap:anywhere;text-shadow:0 3px 0 #ffffffa6}.brief-goal{font-size:16px;font-weight:750;line-height:1.8;color:#31596f;margin:0 0 24px}.brief-step{padding:16px 18px;background:#fff9;border:2px solid #fff;border-radius:18px;box-shadow:0 8px 0 #18394d09;transform:rotate(-1deg)}.brief-step>span{font-size:11px;color:#56778a;font-weight:750}.brief-step p{font-size:14px;line-height:1.75;margin:6px 0 0;font-weight:700}.more-link{display:inline-block;margin-top:30px;font-size:12px;text-decoration:none;color:#57798b}.instructions[hidden]{display:none}.instructions{position:fixed;z-index:40;inset:15% max(20px,calc((100vw - 480px)/2)) auto;background:#fffef4;border:3px solid #1d3c54;border-radius:22px;padding:22px;box-shadow:0 0 0 100vmax #12374f99;font-size:15px;line-height:1.9;max-height:75svh;overflow:auto}.instructions h2{font-size:20px;margin:4px 0 10px}.instructions p{margin:10px 0}.instructions #close-help{float:right}.play-shell{overflow:hidden;border:2px solid #203e5724;background:#fff;border-radius:26px;box-shadow:0 10px 0 #17354e12,0 22px 60px #1f4b6115;max-width:440px;width:100%}.hud{min-height:42px;padding:6px 12px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:10px;font-weight:800;border-bottom:1px solid #dde9ee}.hud label{display:flex;align-items:center;gap:5px;color:#48677d;letter-spacing:.5px}.hud select{border:0;background:#e7f0f5;padding:5px 4px;border-radius:7px;color:#23465e;font-weight:850;min-height:28px}.hud #pause{background:#fff1ad;color:#5e4514;border-color:#e4c154;min-height:31px;padding:5px 8px;font-size:10px}#stats{font-variant-numeric:tabular-nums;color:#38576f;text-align:right;font-size:10px}.goal-strip{display:flex;align-items:center;gap:9px;padding:10px 14px;min-height:48px;background:#f5fbff;border-bottom:1px solid #dce8ee}.goal-strip>span{background:#ffc93e;color:#563c00;font-size:9px;font-weight:950;padding:5px 6px;border-radius:6px;letter-spacing:.8px}.goal-strip strong{font-size:12px;line-height:1.5}.board-wrap{position:relative;width:min(100%,360px);margin:0 auto}.board{aspect-ratio:6/7;position:relative;overflow:hidden;user-select:none;background:#f2f9fd}.board>svg{width:100%;height:100%;display:block}.board svg text{font-family:inherit}.board button{min-height:44px;min-width:44px}.controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;padding:6px 10px 9px;background:#fff}.control,.primary{border:1px solid #5d7c9230;border-bottom:4px solid #698aa755;background:#e9f2f8;padding:10px 13px;min-height:44px;border-radius:12px;color:#153c57;font-size:12px;font-weight:850;text-decoration:none;text-align:center;box-shadow:0 2px 0 #183a5510;transition:transform .1s}.primary,[data-action="shoot"],[data-action="release"],[data-action="start"],[data-action="drop"],[data-action="fire"],[data-action="pour"],[data-action="wave"]{background:#ffd24b;border-color:#dfa821;border-bottom-color:#c49425;color:#533e07}.control:active,.primary:active{transform:translateY(2px);border-bottom-width:2px}.feedback{padding:6px 12px 2px;text-align:center;min-height:31px;font-size:11px;font-weight:650;line-height:1.5;color:#426379;background:#fff}.bottom-controls{border-top:1px solid #e4ecf2;padding:5px 12px;display:flex;gap:8px;align-items:center;justify-content:space-between}.bottom-controls .quiet{border:0;padding:5px;min-height:30px;font-size:11px;background:transparent}.small{font-size:10px;color:#698698}.first-action[hidden]{display:none}.first-action{pointer-events:none;position:absolute;bottom:13px;left:16px;right:16px;display:flex;align-items:center;gap:10px;background:#14344feb;border:2px solid #fff;border-radius:15px;padding:10px 13px;color:white;box-shadow:0 5px 15px #102f5030;z-index:6;font-size:12px;font-weight:750;line-height:1.55}.gesture{font-size:31px;color:#ffe894;line-height:1;flex-shrink:0;text-shadow:0 2px 0 #0a284c}.gesture.drag,.gesture.aim{animation:swipe 1.5s ease-in-out infinite}.gesture.hold,.gesture.tap,.gesture.draw{animation:press 1.3s ease-in-out infinite}@keyframes swipe{0%,100%{transform:translateX(-5px) rotate(-15deg)}50%{transform:translateX(7px) rotate(10deg)}}@keyframes press{0%,100%{transform:scale(1)}45%{transform:scale(.82)}}.result[hidden]{display:none}.result{position:absolute;inset:0;background:#12344f65;backdrop-filter:blur(4px);display:grid;place-items:center;padding:22px;z-index:10}.result-card{background:#fffef2;border:3px solid #fff;border-radius:24px;padding:22px 19px;text-align:center;width:100%;box-shadow:0 9px 0 #132b3333;animation:pop .3s ease-out}.result-icon{font-size:48px;color:#f4b923;text-shadow:0 3px 0 #d49723}.result h2{font-size:30px;letter-spacing:-1px;margin:8px 0}.result p:not(.eyebrow){font-size:13px;line-height:1.7;color:#526b7c}.result .eyebrow{font-size:10px;color:#8c753c;margin-top:4px}.result-actions{display:grid;gap:7px}.fx{position:absolute;inset:0;pointer-events:none;z-index:9;overflow:hidden}.fx i{display:none}.fx.gain i,.fx.won i{display:block;position:absolute;left:50%;top:42%;width:7px;height:12px;background:hsl(calc(var(--i)*31),90%,65%);border-radius:2px;animation:confetti .6s ease-out both;transform:rotate(calc(var(--i)*30deg))}.fx.lost{animation:badflash .4s ease-out}@keyframes pop{from{transform:scale(.84);opacity:0}to{transform:scale(1);opacity:1}}@keyframes confetti{to{transform:rotate(calc(var(--i)*30deg)) translateY(-100px) rotate(130deg);opacity:0}}@keyframes badflash{from{background:#f34b4b44}to{background:transparent}}.board .grid{display:grid;gap:7px;padding:15px;height:100%}.board .tile{border:0;border-radius:10px;background:#e6eee8;box-shadow:0 3px 0 #c5d6ce;font-size:24px;font-weight:800;color:#315e52}.board .tile:disabled{opacity:1}.board .selected{outline:3px solid #e7a33e}.board .note{font-size:13px;text-align:center;padding:14px}.board .cell{min-width:0;min-height:0}@media(max-width:780px){.topbar{height:43px;padding:4px 12px}.brand{font-size:8px;letter-spacing:1px}.back{font-size:12px}.game-layout{display:block;margin:0 auto 14px;padding:0 8px;max-width:450px}.game-brief{display:flex;align-items:baseline;gap:8px;padding:7px 7px 9px;min-height:44px}.game-brief>.eyebrow,.brief-goal,.brief-step,.more-link{display:none}.game-brief h1{font-size:8px;letter-spacing:.5px;margin:0;order:2;color:#547788}.headline{font-size:23px;letter-spacing:-.8px;margin:0;line-height:1.15}.play-shell{border-radius:20px}.goal-strip{min-height:44px;padding:8px 10px}.goal-strip strong{font-size:11px}.board-wrap{width:min(100%,360px)}.hud{padding:5px 9px;min-height:39px}.controls{padding:5px 7px 8px}.control,.primary{padding:9px 10px;font-size:11px}.first-action{left:11px;right:11px;bottom:10px;font-size:11px}.result{padding:18px}.instructions{inset:10% 14px auto}.small{font-size:9px}}@media(max-height:720px) and (min-width:781px){.game-layout{margin-top:0}.board-wrap{width:310px}.goal-strip{min-height:41px;padding:7px 12px}.hud{min-height:37px}.controls{padding-top:3px}.headline{font-size:46px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.board-wrap[data-phase="won"] .board{animation:victory-bounce .55s ease-out}@keyframes victory-bounce{0%,100%{transform:scale(1)}40%{transform:scale(1.025)}}

/* The first action sits beside controls, never on top of the player. */
.first-action{position:relative;left:auto;right:auto;bottom:auto;margin:0;padding:7px 14px;min-height:46px;border:0;border-radius:0;background:#ecf5fa;color:#31596d;box-shadow:none;font-size:11px;line-height:1.45;justify-content:center}.first-action .gesture{font-size:25px;color:#e8b03e;text-shadow:none}.feedback{min-height:46px;padding:7px 12px;display:flex;align-items:center;justify-content:center}.feedback[hidden]{display:none}.headline{font-size:clamp(36px,4.1vw,54px);letter-spacing:-1.8px}@media(max-width:780px){.headline{font-size:23px}.first-action{left:auto;right:auto;bottom:auto;font-size:10px;padding:7px 10px}}
