@font-face{font-family:Lilita;src:url('./fonts/LilitaOne-Regular.ttf') format('truetype');font-display:swap}
@font-face{font-family:Nunito;src:url('./fonts/Nunito-Variable.ttf') format('truetype');font-weight:200 1000;font-display:swap}
:root{--ink:#173d36;--deep:#102f2b;--cream:#fff3d5;--paper:#fff9e8;--gold:#ffd16b;--teal:#4ad4bc;--ease:cubic-bezier(.22,1,.36,1);font-family:Nunito,system-ui,sans-serif;color:var(--ink);font-synthesis:none;color-scheme:light;-webkit-tap-highlight-color:transparent}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#254b40}button,a{-webkit-user-select:none;user-select:none}button{font:inherit;border:0;cursor:pointer;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,a:focus-visible{outline:3px solid white;outline-offset:5px;filter:drop-shadow(0 0 3px var(--ink))}[hidden]{display:none!important}svg{width:24px;height:24px;flex:none;overflow:visible;pointer-events:none}.svg-library{position:absolute;width:0;height:0;overflow:hidden}h1,h2,p{margin:0}h2,.display{font-family:Lilita,sans-serif}kbd{font-family:Nunito,sans-serif}#game{position:relative;width:100%;height:100%;height:100dvh;isolation:isolate;overflow:hidden;touch-action:none}.arena-frame{position:absolute;inset:0}.arena-frame canvas{width:100%;height:100%;display:block;outline:none}.world-grade{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 52% 43%,transparent 30%,#0c332b25 76%,#0c2d2959 100%),linear-gradient(0deg,#123e3350,transparent 25%,transparent 70%,#153e3540)}#game[data-screen="title"] .world-grade{background:radial-gradient(ellipse at 58% 41%,transparent 20%,#153f3544 80%),linear-gradient(0deg,#123e33b0,transparent 44%,#19453525)}
.screen-panel{position:absolute;inset:0;z-index:10}.title-screen{pointer-events:none}.title-screen button,.title-screen a{pointer-events:auto}.game-logo{position:relative;display:inline-flex;flex-direction:column;font:clamp(64px,13vw,100px)/.76 Lilita,sans-serif;letter-spacing:-2px;color:var(--cream);text-align:center;filter:drop-shadow(0 8px 0 #102f2b55);transform:rotate(-4deg)}.game-logo span,.game-logo strong{font-weight:400;-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink)}.game-logo strong{color:var(--gold);font-size:1.14em;margin-top:10px}.logo-bag{position:absolute;width:.4em;height:.49em;right:-.36em;top:-.04em;transform:rotate(18deg);color:var(--gold);filter:drop-shadow(2px 3px 0 var(--ink))}.title-copy{position:absolute;top:max(6.8dvh,36px);left:0;width:100%;text-align:center}.title-ribbon{display:table;margin:0 auto 23px;padding:7px 16px 6px;background:var(--ink);border:2px solid #55786a;border-radius:5px;color:#f0e7c6;font-size:9px;font-weight:1000;letter-spacing:.15em;transform:rotate(-3deg);box-shadow:0 4px 0 #173d3633}.title-tagline{display:none;font-size:17px;font-weight:750;color:var(--cream);margin-top:29px;line-height:1.45;text-shadow:0 2px 0 #173d3655}.title-tagline strong{color:var(--gold)}.title-actions{position:absolute;bottom:calc(39px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(320px,calc(100% - 72px));display:grid;gap:15px}.play-hint{font-size:9px;font-weight:1000;letter-spacing:.15em;color:#f7edcc;text-align:center;text-shadow:0 2px 0 #173d3655}.title-tools{position:absolute;left:18px;right:18px;bottom:calc(22px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;pointer-events:none}.title-tools .round-button{width:44px;height:44px}.hero-caption{position:absolute;top:71%;left:50%;transform:translateX(-50%) rotate(-3deg);display:flex;align-items:center;gap:8px;color:var(--cream);font-size:8px;font-weight:850;letter-spacing:.09em;line-height:1.35;text-shadow:0 2px 0 #173d3655;white-space:nowrap}.hero-caption b{font-weight:1000}.hero-pin{display:grid;place-items:center;width:34px;height:34px;background:var(--teal);border:3px solid var(--ink);border-radius:50%;font:12px Lilita;color:var(--ink);text-shadow:none;box-shadow:0 3px 0 #123b3066}
.game-button{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;min-height:60px;width:100%;padding:13px 22px 15px;border:3px solid var(--ink);border-radius:17px;font:25px/1.05 Lilita,sans-serif;letter-spacing:.01em;color:var(--ink);background:linear-gradient(#fff1ad,#ffd16b);box-shadow:inset 0 3px 0 #fff8d4,0 7px 0 #b78534,0 10px 0 var(--ink),0 13px 13px #102f2b35;transform:translateY(0);transition:transform .11s,box-shadow .11s,filter .15s}.game-button svg{width:27px;height:27px}.game-button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px)}.game-button:active:not(:disabled),.game-button.is-pressed:not(:disabled){transform:translateY(6px);box-shadow:inset 0 3px 0 #fff8d4,0 1px 0 #b78534,0 4px 0 var(--ink),0 6px 7px #102f2b35}.game-button:disabled{filter:saturate(.25);opacity:.6}.game-button.secondary{font-size:18px;min-height:48px;background:linear-gradient(#edf7d7,#caddb1);box-shadow:inset 0 3px 0 #fff7df,0 5px 0 #839c71,0 8px 0 var(--ink);margin-top:19px}.secondary:active,.secondary.is-pressed{transform:translateY(4px);box-shadow:0 1px 0 #839c71,0 4px 0 var(--ink)}.round-button{width:48px;height:48px;display:inline-grid;place-items:center;flex-shrink:0;border-radius:15px;border:3px solid var(--ink);background:linear-gradient(#fffae6,#e8d9b9);color:var(--ink);box-shadow:inset 0 2px 0 #fff,0 4px 0 #a39777,0 6px 0 var(--ink);transition:transform .12s,box-shadow .12s}.round-button:hover{filter:brightness(1.06)}.round-button:active,.round-button.is-pressed{transform:translateY(4px);box-shadow:0 2px 0 var(--ink)}.help-button{font:30px Lilita}.match-ticket{min-height:61px;border-radius:12px;border:2px solid #a4c5a285;background:#173d36d9;box-shadow:0 4px 0 #102f2b55;color:var(--cream);display:flex;align-items:center;gap:12px;padding:10px 14px;text-align:left;transition:transform .15s,background .15s}.match-ticket:hover{background:#1d5348}.match-ticket:active{transform:translateY(3px)}.match-ticket svg{width:31px;height:28px;color:var(--gold)}.match-ticket strong{font:19px Lilita;display:block;letter-spacing:.025em}.match-ticket small{font-size:8px;letter-spacing:.07em;font-weight:900;display:block;margin-top:3px;color:#b8d6b9}.ticket-chevron{font:30px Lilita;margin-left:auto;color:var(--teal)}
/* Match overlays leave the world in view. */
#hud{position:absolute;inset:0 0 auto;z-index:4;padding:calc(14px + env(safe-area-inset-top)) 16px 0;pointer-events:none}.hud-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.hud-top button{pointer-events:auto}.mini-brand{font:24px/.8 Lilita;color:var(--cream);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;transform:rotate(-5deg);text-shadow:0 3px var(--ink)}.mini-brand span{display:block;color:var(--gold);font-size:27px}.match-medal{position:absolute;left:50%;top:calc(11px + env(safe-area-inset-top));transform:translateX(-50%) rotate(-2deg);display:flex;align-items:center;gap:8px;min-width:100px;justify-content:center;padding:6px 14px;background:var(--cream);border:3px solid var(--ink);border-radius:13px;box-shadow:0 4px 0 #102f2b55}.match-medal svg{width:27px;height:27px;color:#e1a142}.match-medal>div{text-align:center}.match-medal span{display:block;font-size:8px;font-weight:1000;letter-spacing:.1em}.match-medal strong{display:block;font:28px/.95 Lilita;font-variant-numeric:tabular-nums}.scores{display:flex;gap:7px;justify-content:center;margin:18px auto 0;max-width:580px}.score-pill{position:relative;display:flex;align-items:center;justify-content:space-between;gap:5px;min-width:0;flex:1;max-width:130px;min-height:45px;background:#fff3d5f2;border:2px solid var(--ink);border-radius:12px;box-shadow:0 4px 0 #102f2b45;padding:5px 8px 6px}.score-pill::before{content:'';position:absolute;inset:0 0 auto;height:5px;border-radius:9px 9px 0 0;background:var(--team)}.score-pill.mine{background:#dcfff0;border-color:#153e36;box-shadow:0 4px 0 #148c80}.score-left{display:grid;gap:2px;font-size:8px;font-weight:1000;letter-spacing:.015em;overflow:hidden}.score-left>span{display:flex;align-items:center;gap:4px}.score-dot{display:inline-block;width:7px;height:7px;background:var(--team);border:1px solid #173d3650;border-radius:50%;flex:none}.score-pill b{font:25px/1 Lilita;font-variant-numeric:tabular-nums}.score-pips{display:flex;gap:2px}.score-pips i{width:7px;height:4px;border-radius:2px;background:#173d3622}.score-pips i.filled{background:var(--team);box-shadow:inset 0 1px 0 #ffffff50}.objective{display:table;margin:12px auto 0;padding:5px 11px 6px;border-radius:20px;background:#163f35d9;border:1px solid #78988370;color:var(--cream);font-size:10px;font-weight:900;text-align:center;max-width:95%;line-height:1.3;box-shadow:0 2px 0 #173d3633}.urgent .match-medal{background:#ffd6a7;color:#af4a30}.urgent .match-medal svg{color:#db573a}.urgent .match-medal strong{animation:clock-pulse .65s ease-in-out infinite alternate}
#world-labels{position:absolute;inset:0;pointer-events:none;z-index:3}.home-marker,.you-marker,.supply-marker{position:absolute;white-space:nowrap;transform:translate(-50%,-50%);font-weight:1000}.home-marker{font:10px Lilita;letter-spacing:.06em;padding:5px 9px;background:#9eeadf;border:2px solid var(--ink);border-radius:6px;box-shadow:0 3px 0 #173d3655;transform:translate(-50%,-50%) rotate(-3deg)}.you-marker{color:#fff3d5;font:11px Lilita;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill;text-align:center;text-shadow:0 2px var(--ink)}.you-marker i{display:block;margin:4px auto 0;width:0;height:0;border:5px solid transparent;border-top-color:#4bd9d0;filter:drop-shadow(0 2px 0 var(--ink))}.supply-marker{font-size:9px;color:var(--cream);padding:3px 7px;border-radius:9px;background:#173d36bb}
#controls{position:absolute;inset:auto 0 calc(22px + env(safe-area-inset-bottom));height:119px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;z-index:5;pointer-events:none}.move-dock,.action-wrap{display:grid;justify-items:center;gap:11px;pointer-events:auto}.joystick{position:relative;width:104px;height:104px;border-radius:50%;border:3px solid #deebca95;background:#173d3659;box-shadow:inset 0 3px 8px #102f2b55,0 2px 0 #173d3655;touch-action:none;user-select:none}.stick-cross::before,.stick-cross::after{content:'';position:absolute;inset:50% 15px auto;height:2px;background:#d4e5c244}.stick-cross::after{transform:rotate(90deg)}.stick-knob{position:absolute;left:calc(50% - 27px);top:calc(50% - 27px);width:54px;height:54px;border-radius:50%;border:3px solid var(--ink);background:linear-gradient(#fff5d3,#c4d3a7);box-shadow:inset 0 3px 0 #fff9e7,0 5px 0 #728c68,0 7px 0 var(--ink);pointer-events:none}.stick-knob i{position:absolute;inset:16px;border-radius:50%;background:#748f7438;border:1px solid #a9bc9670}.held .stick-knob{background:linear-gradient(#b1ffee,#4dd3b9);box-shadow:inset 0 3px 0 #dcfff5,0 5px 0 #318b79,0 7px 0 var(--ink)}.dock-label,#action-hint{font-size:9px;color:#eef2d3;font-weight:1000;letter-spacing:.13em;text-shadow:0 2px 0 #173d3655}.action-wrap{width:110px;gap:12px}.action-button{--recharge:100%;position:relative;width:98px;height:98px;border:3px solid var(--ink);border-radius:50%;background:linear-gradient(#fff1b4,#ffc458);box-shadow:inset 0 4px 0 #fff8d7,0 6px 0 #b08439,0 9px 0 var(--ink),0 12px 15px #102f2b55;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:transform .12s,box-shadow .12s,filter .2s}.action-button svg{width:32px;height:32px}.action-button strong{font:18px Lilita;letter-spacing:.025em}.action-button kbd{display:none}.action-button[data-ready="false"]{background:linear-gradient(#dde3c5,#aabd9d);box-shadow:inset 0 3px #f5efdb,0 6px #647f63,0 9px var(--ink)}.action-button[data-kind="3"]{background:linear-gradient(#ffdaa2,#f29c65)}.action-button[data-ready="true"]::after{content:'';position:absolute;inset:-9px;border:2px solid #ffedb59c;border-radius:50%;animation:ready-ring 1.25s ease-out infinite;pointer-events:none}.action-button:active:not(:disabled),.action-button.is-pressed:not(:disabled){transform:translateY(6px);box-shadow:inset 0 2px #fff5d6,0 3px var(--ink)}.action-button:disabled{filter:saturate(.3)}.carry-badge{position:absolute;left:50%;transform:translateX(-50%);bottom:13px;display:grid;justify-items:center;gap:7px;text-align:center;color:var(--cream);max-width:120px;pointer-events:none}.carry-badge>svg{width:24px;height:27px;color:#f8e7b5;filter:drop-shadow(0 2px 0 var(--ink));opacity:.55}.carry-badge.carrying>svg{color:var(--gold);opacity:1;animation:bag-bob 1.4s ease-in-out infinite}.carry-badge strong{font-size:8px;font-weight:1000;letter-spacing:.05em;display:block}.carry-badge span{font-size:9px;font-weight:750;display:block;margin-top:3px}.keyboard-dock{display:none}.toast{position:absolute;top:calc(157px + env(safe-area-inset-top));left:50%;z-index:8;transform:translateX(-50%) rotate(-2deg);width:max-content;max-width:86%;padding:11px 18px;border:3px solid var(--ink);border-radius:10px;background:var(--gold);box-shadow:0 4px var(--ink);font:16px Lilita;text-align:center;pointer-events:none}
/* Menus have their own input/focus ownership and a single animated tray. */
.overlay{display:grid;place-items:center;padding:24px 20px;background:#0c302aad;backdrop-filter:blur(7px);z-index:15;overflow:hidden}.popup{position:absolute;inset:0;z-index:25}.panel{position:relative;width:min(430px,100%);max-height:calc(100dvh - 48px);overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;background:var(--paper);border:4px solid var(--ink);border-radius:25px;padding:31px 23px 22px;box-shadow:inset 0 3px 0 white,0 8px 0 #b5ac8c,0 12px 0 var(--ink),0 22px 55px #071f2759;text-align:center}.panel::after{content:'';position:absolute;left:12px;right:12px;top:12px;height:4px;border-radius:6px;background:#e1d8b733;pointer-events:none}.panel-tab{display:table;padding:6px 12px;background:var(--ink);color:var(--gold);border-radius:5px;margin:0 auto 15px;font-size:9px;letter-spacing:.12em;font-weight:1000;transform:rotate(-2deg)}.panel h2{font:35px/1 Lilita;letter-spacing:-.02em;margin:0 0 12px}.panel>p{font-size:13px;line-height:1.5;font-weight:750;color:#647563;margin:0 0 23px}.close-popup{position:absolute;right:9px;top:9px;width:35px;height:35px;border-radius:11px;z-index:2}.close-popup svg{width:19px;height:19px}.quiet-button{font-size:11px;min-height:44px;padding:10px 12px;font-weight:1000;letter-spacing:.055em;background:transparent;color:#607462;border-radius:8px}.quiet-button:hover{background:#dae4cb}.pause-tools{display:flex;justify-content:center;align-items:center;gap:13px;margin-top:27px}.pause-tools .round-button{width:40px;height:40px;border-radius:13px}.pause-tools .quiet-button{font-size:9px;padding:8px}.mode-options{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px}.choice-button{display:flex;align-items:center;flex-direction:column;gap:7px;padding:15px 9px 12px;min-height:116px;border:2px solid #b9c9ac;border-radius:14px;background:#e8ecd9;box-shadow:0 4px #b9c9ac;color:var(--ink);transition:transform .15s,background .2s}.choice-button svg{width:31px;height:29px;color:#b08439}.choice-button strong{font:16px Lilita}.choice-button small{font-size:9px;font-weight:800;line-height:1.25}.choice-button[aria-pressed="true"]{background:#ffe19a;border-color:var(--ink);box-shadow:0 4px #b78534,0 6px var(--ink);transform:translateY(-2px)}.clock-icon{display:grid;place-items:center;width:29px;height:29px;border:3px solid currentColor;border-radius:50%;font:13px Lilita}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:68px;border-top:2px solid #dbe2ce;text-align:left;font-size:10px;font-weight:1000}.setting-row small{display:block;font-size:9px;font-weight:750;margin-top:4px;color:#718269}.pill-options{display:flex;gap:6px}.pill-options button{min-width:68px;min-height:40px;border:2px solid #bdcdae;border-radius:10px;background:#e4ead5;font:14px Lilita;color:var(--ink)}.pill-options button[aria-pressed="true"]{background:#4fd2b5;border-color:var(--ink);box-shadow:0 3px #238d79}.stepper{display:flex;align-items:center;gap:14px}.stepper button{width:40px;height:40px;background:#e5ecd6;border:2px solid #b9c9ac;border-radius:10px;font:25px Lilita;color:var(--ink)}.stepper button:disabled{opacity:.3}.stepper output{font:29px Lilita;min-width:20px;text-align:center}.panel .rule-note{margin:12px 0 19px;font-size:10px;line-height:1.5;color:#698060}.setting-button{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:15px 13px;border:2px solid #c3d0b2;border-radius:12px;background:#e8efd9;color:var(--ink);font-size:12px;font-weight:1000;margin-top:12px;min-height:57px}.setting-button>span{display:flex;align-items:center;gap:10px}.setting-button svg{width:19px;height:19px}.setting-button strong{font:15px Lilita;color:#277d68}.setting-button[aria-pressed="false"] strong{color:#8b7963}.panel .setting-note{font-size:10px;margin:8px 0 22px}.version-links{display:flex;justify-content:center;align-items:center;gap:10px;margin-top:30px;font-size:9px;font-weight:1000}.version-links a{color:#658367;text-decoration:none;padding:6px 0}.build-mark{display:block;font-size:8px;font-weight:900;letter-spacing:.13em;color:#9dA68c;margin-top:13px}.how-to{list-style:none;margin:8px 0 18px;padding:0;display:grid;gap:20px;text-align:left}.how-to li{display:flex;align-items:center;gap:14px}.rule-icon{display:grid;place-items:center;flex:none;width:49px;height:52px;border:2px solid var(--ink);border-radius:12px;background:#ffe2a4;box-shadow:0 4px #c6ae7c;transform:rotate(-5deg)}.how-to li:nth-child(2) .rule-icon{background:#95dcc2;transform:rotate(4deg)}.how-to li:nth-child(3) .rule-icon{background:#f3bc95;transform:rotate(-2deg)}.how-to strong{font:15px Lilita}.how-to p{font-size:11px;line-height:1.4;margin-top:4px;color:#6b7c65;font-weight:750}.help-controls{padding:13px 0 18px;border-top:2px dashed #cdd8bc}.help-controls strong{font-size:9px;display:block}.help-controls span{font-size:9px;line-height:1.5;display:block;margin-top:4px;color:#718369}
.countdown{display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;gap:17px;background:#173d361c;z-index:8;color:var(--cream);text-align:center}.countdown>span{font:19px Lilita;letter-spacing:.04em;-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;text-shadow:0 3px var(--ink)}.countdown strong{font:130px/.9 Lilita;color:var(--gold);-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 8px var(--ink);filter:drop-shadow(0 6px 0 #102f2b35)}.countdown .countdown-tip{font:10px Nunito;font-weight:1000;letter-spacing:.18em;-webkit-text-stroke:0;text-shadow:0 2px var(--ink)}.result-crown{width:74px;height:65px;margin:0 auto 6px;border-radius:50%;display:grid;place-items:center;background:#ffdd84;transform:rotate(-6deg);box-shadow:inset 0 3px #ffedba}.result-crown svg{width:56px;height:45px;color:#f0ad3e}.eyebrow{display:block;font-size:9px;font-weight:1000;letter-spacing:.14em;color:#8d936f;margin:8px 0}.results-panel h2{font-size:36px;color:#24634c}.results-panel>p{font-size:11px;margin-bottom:13px}.leaderboard{display:grid;gap:5px;margin:8px 0 14px}.leader-row{display:flex;align-items:center;gap:9px;min-height:34px;border-radius:9px;padding:5px 10px;background:#e9eddc;text-align:left;border:2px solid transparent}.leader-row:first-child{background:#ffedba;border-color:#e7ce82}.leader-row.mine{border-color:#64c9b4}.leader-row .rank{font:15px Lilita;color:#7b9373;width:14px}.leader-row .score-dot{width:13px;height:13px;border:2px solid #173d3633}.leader-row strong{font:16px Lilita;flex:1}.leader-row small{font-size:8px;font-weight:1000;color:#789078}.leader-row b{font:22px Lilita}.leader-row svg{width:14px;height:16px;color:#83967a}.round-stats{display:flex;justify-content:center;gap:18px;margin:12px 0 21px}.round-stats span{display:grid;gap:1px;font-size:8px;font-weight:1000;color:#869575;letter-spacing:.04em}.round-stats b{font:22px Lilita;color:var(--ink)}.results-panel>.quiet-button{margin-top:14px}
.splash{display:grid;place-items:center;background:#244f43;overflow:hidden;z-index:40;color:var(--cream)}.splash-rays{position:absolute;inset:-100%;background:repeating-conic-gradient(from 0deg,#315e4d 0deg 12deg,#244f43 12deg 24deg);opacity:.55;animation:rays 65s linear infinite}.splash-content{position:relative;text-align:center}.club-seal{position:relative;display:grid;place-items:center;background:var(--gold);border:5px solid var(--ink);outline:2px solid #b5d1a144;outline-offset:10px;border-radius:30%;width:85px;height:87px;margin:0 auto 29px;box-shadow:0 6px var(--ink);transform:rotate(-8deg);animation:seal-in .75s var(--ease) both}.club-seal svg{width:42px;height:49px;color:var(--ink)}.club-seal i{position:absolute;right:-10px;top:-12px;color:var(--cream);font-size:31px;font-style:normal;-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}.splash .game-logo{font-size:85px}.splash-content p{font-size:9px;font-weight:1000;letter-spacing:.16em;margin:26px 0 34px;color:#cee0b9}.load-track{width:165px;height:12px;margin:0 auto 12px;padding:2px;border:2px solid #102f2b;background:#17382e;border-radius:8px;box-shadow:0 2px #8bae7330}.load-track>span{display:block;width:3%;height:100%;border-radius:5px;background:var(--gold);box-shadow:0 1px #fff5c1 inset;transition:width .3s var(--ease)}#load-label{font-size:10px;color:#bfd3b1;font-weight:850}.splash-foot{position:absolute;bottom:30px;font-size:8px;font-weight:1000;letter-spacing:.16em;color:#7dA58a}.splash .game-logo{animation:logo-in .8s .08s var(--ease) both}
#screen-fx{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:18}.float-label{position:absolute;left:0;top:0;font:25px Lilita;color:var(--gold);-webkit-text-stroke:3px var(--ink);paint-order:stroke fill;white-space:nowrap;text-shadow:0 3px var(--ink);will-change:transform,opacity}.confetti{position:absolute;width:8px;height:13px;border-radius:2px;background:var(--gold);will-change:transform,opacity}#impact-flash{position:absolute;inset:0;pointer-events:none;z-index:7;opacity:0;box-shadow:inset 0 0 90px #ef9c5780}.screen-panel[inert],.popup[inert]{pointer-events:none!important}
@keyframes ready-ring{from{transform:scale(.98);opacity:.8}to{transform:scale(1.16);opacity:0}}@keyframes bag-bob{50%{transform:translateY(-3px) rotate(-7deg)}}@keyframes clock-pulse{to{transform:scale(1.08)}}@keyframes rays{to{transform:rotate(360deg)}}@keyframes seal-in{from{transform:translateY(25px) rotate(-25deg) scale(.6);opacity:0}to{transform:rotate(-8deg);opacity:1}}@keyframes logo-in{from{transform:translateY(20px) rotate(-9deg) scale(.8);opacity:0}to{transform:rotate(-4deg);opacity:1}}
@media(min-width:900px) and (hover:hover) and (pointer:fine){.title-copy{top:17%;left:8%;width:31%;text-align:center}.game-logo{font-size:clamp(85px,8vw,140px)}.title-ribbon{font-size:10px;margin-bottom:33px}.title-tagline{display:block}.title-actions{left:23.5%;bottom:13%;width:min(320px,28vw)}.title-tools{left:31px;right:31px;bottom:28px}.title-tools .round-button{width:48px;height:48px}.hero-caption{top:75%;left:65%;font-size:10px}.hero-pin{width:40px;height:40px;font-size:15px}#hud{padding:24px 29px 0}.hud-top{height:49px}.mini-brand{font-size:29px}.mini-brand span{font-size:32px}.match-medal{left:140px;top:22px;transform:rotate(-3deg);min-width:96px}.scores{position:absolute;top:26px;left:50%;transform:translateX(-50%);margin:0;width:min(560px,calc(100vw - 580px))}.score-pill{min-height:47px}.objective{margin-top:16px}#controls{padding:0 37px;bottom:30px;height:110px}.move-dock{display:none}.keyboard-dock{display:flex;align-items:center;gap:13px;color:var(--cream);font:15px Lilita}.keyboard-dock>div{display:grid;justify-items:center;gap:4px}.keyboard-dock>div>span{display:flex;gap:4px}.keyboard-dock kbd{display:grid;place-items:center;width:29px;height:29px;border:2px solid #b8cfae;border-radius:6px;box-shadow:0 3px #102f2b;background:#173d36c7;font:14px Lilita}.keyboard-dock small{font:10px Nunito;font-weight:800;color:#b6ceac}.carry-badge{bottom:23px;display:flex;gap:12px;text-align:left;max-width:240px}.carry-badge>svg{width:31px;height:37px}.carry-badge strong{font:17px Lilita}.carry-badge span{font-size:11px}.action-wrap{width:110px}.action-button{width:91px;height:91px}.action-button svg{width:28px;height:28px}.action-button kbd{display:block;font-size:8px;letter-spacing:.08em;font-weight:1000;margin-top:2px}.toast{top:130px}.home-marker{font-size:12px}.you-marker{font-size:14px}.supply-marker{font-size:10px}.world-grade{background:radial-gradient(ellipse at center,transparent 38%,#102f2b5c 100%)}}
@media(max-width:600px){#game[data-players="5"] .scores,#game[data-players="6"] .scores{flex-wrap:wrap;max-width:380px;gap:5px}#game[data-players="5"] .score-pill,#game[data-players="6"] .score-pill{flex:0 0 calc(33.333% - 4px);max-width:none;min-height:33px;padding:4px 8px}#game[data-players="5"] .score-pill b,#game[data-players="6"] .score-pill b{font-size:20px}#game[data-players="5"] .score-left,#game[data-players="6"] .score-left{display:flex;align-items:center;gap:6px}#game[data-players="5"] .score-pips,#game[data-players="6"] .score-pips{display:none}#game[data-players="5"] .toast,#game[data-players="6"] .toast{top:190px}}
@media(max-height:730px){.title-copy{top:30px}.game-logo{font-size:61px}.title-ribbon{font-size:8px;margin-bottom:19px;padding:5px 12px}.title-actions{bottom:34px;gap:12px;width:min(285px,calc(100% - 82px))}.title-actions .game-button{font-size:23px;min-height:53px}.match-ticket{min-height:54px;padding:8px 11px}.match-ticket strong{font-size:17px}.match-ticket small{font-size:7px}.title-tools{left:12px;right:12px;bottom:16px}.title-tools .round-button{width:39px;height:39px;border-radius:12px}.hero-caption{top:69%;font-size:7px}.hero-pin{width:29px;height:29px;font-size:10px}.panel{padding:27px 19px 19px}.panel h2{font-size:30px}.panel>p{font-size:11px;margin-bottom:16px}.panel-tab{font-size:8px;margin-bottom:13px}.how-to{gap:14px}.how-to p{font-size:10px}.game-button{min-height:54px;font-size:22px}.result-crown{height:45px;width:56px}.result-crown svg{width:43px;height:35px}.leader-row{min-height:29px;padding:3px 8px}.leader-row strong{font-size:14px}.leader-row b{font-size:20px}.round-stats{margin:9px 0 15px}.round-stats b{font-size:19px}.results-panel .eyebrow{margin:5px 0}.results-panel h2{margin-bottom:7px}.mode-options{margin-bottom:14px}.choice-button{min-height:105px;padding-top:12px}.setting-row{min-height:61px}}
@media(max-height:620px) and (max-width:899px){#hud{padding:9px 12px 0}.hud-top{height:41px}.mini-brand{font-size:20px}.mini-brand span{font-size:22px}.hud-top .round-button{width:40px;height:40px;border-radius:12px}.match-medal{top:7px;padding:5px 11px}.match-medal strong{font-size:25px}.scores{margin-top:14px}.score-pill{min-height:35px}.objective{margin-top:8px;font-size:9px;padding:4px 9px}#controls{height:91px;bottom:21px;padding:0 16px}.joystick{width:82px;height:82px}.stick-knob{width:44px;height:44px;left:calc(50% - 22px);top:calc(50% - 22px)}.stick-knob i{inset:13px}.action-wrap{width:86px;gap:10px}.action-button{width:81px;height:81px}.action-button svg{width:27px;height:27px}.action-button strong{font-size:16px}.carry-badge{max-width:106px;bottom:6px;gap:5px}.carry-badge strong{font-size:7px}.carry-badge span{font-size:8px}.carry-badge>svg{width:20px;height:23px}.dock-label,#action-hint{font-size:8px}.title-copy{top:23px}.game-logo{font-size:53px}.title-ribbon{margin-bottom:16px}.title-actions{bottom:32px;gap:10px}.match-ticket{min-height:49px}.play-hint{font-size:7px}.hero-caption{display:none}.toast{top:135px;font-size:14px;padding:8px 12px}.panel{max-height:calc(100dvh - 30px)}.overlay{padding:15px}.how-to{gap:12px}.how-to strong{font-size:13px}.help-controls{padding:10px 0 15px}.rule-icon{width:42px;height:46px}.panel h2{font-size:28px}.panel-tab{font-size:7px}.results-panel{padding-top:17px}.results-panel .quiet-button{margin-top:9px;min-height:35px}}
@media(max-width:350px){#controls{padding-left:15px;padding-right:15px}.title-actions{width:calc(100% - 66px)}.title-tools .round-button{width:36px;height:36px}.title-tools{left:8px;right:8px;bottom:13px}.score-left{font-size:7px}.scores{gap:5px}.score-pill{padding:5px 6px}.panel{padding-left:16px;padding-right:16px}.choice-button strong{font-size:14px}.setting-row{font-size:9px}.pill-options button{min-width:60px}.setting-button{font-size:10px}.setting-button strong{font-size:13px}}
@media(max-height:500px) and (min-width:600px){.title-copy{left:5%;width:36%;top:25px}.title-ribbon{font-size:7px}.game-logo{font-size:55px}.title-tagline,.hero-caption{display:none}.title-actions{left:23%;width:260px;bottom:30px}.title-tools{left:auto;right:18px;top:20px;bottom:auto;gap:10px}.scores{position:absolute;top:13px;left:50%;transform:translateX(-50%);width:55%;margin:0}.hud-top{height:43px}.match-medal{display:none}.objective{margin-top:7px}#controls{bottom:18px;height:83px}.joystick{width:73px;height:73px}.action-button{width:73px;height:73px}.action-wrap{width:82px}.carry-badge{bottom:5px}.panel{max-height:calc(100dvh - 28px)}.title-actions .game-button{min-height:49px}.match-ticket{min-height:48px}}
.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reduced-motion .game-button:hover{transform:none}

@media(min-width:900px) and (hover:hover) and (pointer:fine){.hud-top{justify-content:flex-end}.mini-brand{display:none}.match-medal{left:28px}.scores{width:min(610px,calc(100vw - 310px))}}
@media(max-height:500px) and (min-width:600px){.carry-badge{display:none}.match-medal{display:flex;left:12px;top:64px;transform:rotate(-2deg);min-width:0;padding:5px 10px}.match-medal svg{width:20px;height:20px}.match-medal strong{font-size:21px}.match-medal span{font-size:7px}}
/* Multiplayer follows the same paper, ink and team-colour language as the yard. */
.play-options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.title-actions .play-options .game-button{font-size:14px;min-height:45px;padding:10px 5px;margin:0;border-radius:12px}.title-actions .match-ticket{min-height:42px;padding:7px 12px;gap:9px}.title-actions .match-ticket strong{font-size:13px}.title-actions .match-ticket small{font-size:7px}.title-actions .match-ticket svg{width:20px;height:20px}.title-actions{gap:13px}.hero-caption{display:none}.lobby-panel{max-width:430px}.lobby-panel>p#lobby-status{min-height:34px;margin-bottom:20px}.lobby-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:8px 0 18px}.lobby-slot{display:flex;flex-direction:column;align-items:center;gap:7px;padding:14px 4px 12px;border:2px dashed #bdc9ad;background:#ebefd9;border-radius:15px;min-width:0}.lobby-slot.joined{border-style:solid;border-color:var(--team);background:#fffdf1}.lobby-slot .collector-token{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--team,#c7d1b6);border:3px solid var(--ink);box-shadow:0 4px #173d3620;font:24px Lilita}.collector-token svg{width:23px;height:27px}.lobby-slot strong{font:15px Lilita}.lobby-slot small{font:800 8px Nunito;min-height:12px;letter-spacing:.025em}.lobby-panel>p.lobby-rule{font:800 11px/1.5 Nunito;color:#627962;margin:15px 0}.lobby-countdown{font:55px/1 Lilita;color:#247a68;margin:0 0 12px}.invite-tools{text-align:left;margin:18px 0 10px}.invite-tools label{font:1000 8px Nunito;letter-spacing:.09em}.invite-tools>div{display:flex;gap:7px;margin-top:6px}.invite-tools input{width:100%;min-width:0;border:2px solid #c1cfb1;border-radius:10px;background:#e9efdc;padding:10px;color:var(--ink);font:11px Nunito;user-select:text;touch-action:auto}.invite-tools button{width:42px;height:42px;border-radius:11px}.invite-tools>span{display:block;min-height:16px;font:800 9px Nunito;color:#53755c;margin-top:6px}.lobby-panel .setting-note{font:800 10px/1.5 Nunito;color:#678266;margin:16px 0 3px}.lobby-panel .quiet-button{margin-top:14px}.connection-status{position:absolute;z-index:28;top:calc(8px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);width:max-content;max-width:90%;background:var(--ink);color:var(--cream);padding:10px 16px;border:2px solid var(--gold);border-radius:12px;font:800 12px/1.4 Nunito;text-align:center}.home-marker{background:var(--local-team,#9eeadf)}.you-marker i{border-top-color:var(--local-team,#4bd9d0)}
@media(max-height:620px) and (max-width:899px){.title-actions{gap:10px;bottom:30px}.title-actions .game-button{min-height:47px;font-size:21px}.title-actions .match-ticket{min-height:38px}.lobby-panel{padding-top:22px}.lobby-slots{margin:5px 0 10px}.lobby-slot{padding:10px 4px;gap:5px}.lobby-slot .collector-token{width:38px;height:38px}.lobby-panel>p#lobby-status{margin-bottom:12px}.invite-tools{margin-top:12px}.lobby-countdown{font-size:40px}}

.score-left small{font-size:7px;opacity:.7;letter-spacing:.03em}

/* A nonmodal lobby tray: the yard and thumb controls keep receiving input. */
.lobby-screen{pointer-events:none;z-index:10;padding:calc(12px + env(safe-area-inset-top)) 12px 0;display:flex;justify-content:center;align-items:flex-start}
.lobby-screen .lobby-panel{pointer-events:auto;width:min(430px,100%);max-height:calc(100dvh - 180px);padding:12px 15px 13px;border-width:3px;border-radius:20px;overflow:auto;box-shadow:inset 0 3px 0 white,0 5px 0 #b5ac8c,0 8px 0 var(--ink),0 12px 25px #071f2733;text-align:left}
.lobby-panel::after{display:none}.lobby-top{display:flex;align-items:center;gap:12px}.lobby-top>div{flex:1}.lobby-eyebrow{display:block;font:1000 8px/1 Nunito;letter-spacing:.13em;color:#607562;margin-bottom:4px}.lobby-panel h2{font:27px/.95 Lilita;margin:0;letter-spacing:.015em}.lobby-top .round-button{width:44px;height:44px;border-radius:12px;box-shadow:0 3px 0 #a39777,0 5px 0 var(--ink)}.lobby-capacity{font:23px Lilita;color:#607562;white-space:nowrap}.lobby-panel .lobby-countdown{font:32px/1 Lilita;margin:0;color:#218a6d;min-width:27px;text-align:center}
.lobby-panel .lobby-slots{display:flex;gap:7px;margin:11px 0 7px}.lobby-panel .lobby-slot{flex:1;min-width:0;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:5px 4px;border-radius:8px;border-width:1px;background:#e8ecd9}.lobby-panel .lobby-slot.joined{background:#fffdf3}.lobby-panel .lobby-slot .collector-token{display:block;width:12px;height:12px;border:2px solid var(--ink);box-shadow:none;flex-shrink:0}.lobby-panel .lobby-slot:not(.joined) .collector-token{background:transparent;opacity:.45}.lobby-panel .lobby-slot strong{font:12px/1 Lilita}.lobby-panel>p#lobby-status{font:800 11px/1.35 Nunito;margin:0 0 9px;min-height:0;color:#607562}
.lobby-actions{display:flex;align-items:center;gap:9px}.lobby-panel .lobby-actions .game-button{flex:1;margin:0;min-height:44px;padding:8px 9px;font:14px/1 Lilita;border-width:2px;border-radius:11px;box-shadow:inset 0 2px 0 #fff7df,0 3px 0 #839c71,0 5px 0 var(--ink)}.lobby-panel .lobby-actions .setting-note{flex:1;margin:0;text-align:center;font:800 10px/1.3 Nunito;color:#6a7c68}.lobby-panel .invite-tools{margin:13px 0 0;padding-top:9px;border-top:1px dashed #bac7aa}.lobby-panel .invite-tools>span{margin:7px 0 0;min-height:0}.lobby-panel .invite-tools input{font-size:12px;height:44px}.lobby-panel .invite-tools button{width:44px;height:44px}
.lobby-walk-note{position:absolute;bottom:calc(35px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:max-content;max-width:55%;color:var(--cream);text-align:center;text-shadow:0 2px 2px #173d36;line-height:1.4}.lobby-walk-note b{display:block;font:15px Lilita}.lobby-walk-note span{font:800 10px Nunito}.lobby-screen:has(#retry-online:not([hidden])) .lobby-walk-note{display:none}
#game[data-screen="lobby"] #controls .action-wrap,#game[data-screen="lobby"] #controls .carry-badge,#game[data-screen="lobby"] .home-marker,#game[data-screen="lobby"] .supply-marker{display:none}
#game[data-screen="lobby"] #controls{bottom:calc(23px + env(safe-area-inset-bottom));height:90px}#game[data-screen="lobby"] .you-marker{color:var(--local-team,#9eeadf)}
@media(max-width:599px){.lobby-walk-note{left:auto;right:18px;transform:none;max-width:calc(100% - 145px);bottom:calc(51px + env(safe-area-inset-bottom))}.lobby-walk-note b{font-size:13px}.lobby-walk-note span{font-size:10px}.lobby-screen .lobby-panel{padding:10px 12px 12px}.lobby-panel h2{font-size:25px}.lobby-panel .lobby-actions .game-button{font-size:13px}.lobby-panel>p#lobby-status{font-size:10px}.lobby-top{gap:9px}}
@media(max-height:500px) and (min-width:600px){.lobby-screen{padding-top:8px}.lobby-screen .lobby-panel{width:min(480px,75%);padding:8px 12px;max-height:calc(100dvh - 112px)}.lobby-top{float:left;width:165px;margin-right:12px}.lobby-top h2{font-size:22px}.lobby-eyebrow{font-size:7px}.lobby-capacity{font-size:18px}.lobby-top .round-button{width:44px;height:44px}.lobby-panel .lobby-slots{margin:1px 0 5px}.lobby-panel>p#lobby-status{font-size:9px;margin-bottom:7px}.lobby-actions{clear:both;padding-top:5px}.lobby-panel .invite-tools{margin-top:8px}.lobby-walk-note{bottom:24px}}
