:root{--bg:#1d2b3a;--fg:#fff8e7;--accent:#ff7a2f;--ink:#1d1a2b;--cream:#fff8e7;--mustard:#fc3;--ketchup:#e4572e;--sky-top:#48aef5;--sky-bottom:#c4ecff;--grass:#67c04a;--grass-dark:#3f8f2c;--font-display:"Luckiest Guy", "Arial Black", Impact, system-ui, sans-serif;--font-body:"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif;--safe-top:max(10px, env(safe-area-inset-top));--safe-right:max(16px, env(safe-area-inset-right));--safe-bottom:max(10px, env(safe-area-inset-bottom));--safe-left:max(16px, env(safe-area-inset-left));--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--fg);font-family:var(--font-body);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;overscroll-behavior:none;margin:0;overflow:hidden}#game{touch-action:none;position:fixed;inset:0}#ui,.screen-layer,.overlay-layer{pointer-events:none;position:fixed;inset:0}#ui{z-index:5}.screen,.overlay{pointer-events:auto}.screen{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);padding-top:max(var(--safe-top), 14px);text-align:center;color:var(--ink);background:linear-gradient(#1d1a2b40, #1d1a2b66), url(/assets/maps/backyard/menu-backdrop.jpg) center 35% / cover no-repeat, linear-gradient(var(--sky-top), var(--sky-bottom) 75%);touch-action:pan-y;flex-direction:column;justify-content:safe center;align-items:center;gap:clamp(8px,2.6vh,20px);animation:.18s ease-out screen-in;display:flex;position:absolute;inset:0;overflow:hidden auto}@keyframes screen-in{0%{opacity:0;transform:scale(.98)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}.screen-title,.logo,.victory-title,.handover-title{font-family:var(--font-display);letter-spacing:.03em;margin:0;font-weight:400;line-height:1}.screen-title{color:var(--cream);-webkit-text-stroke:6px var(--ink);paint-order:stroke fill;text-shadow:0 4px 0 var(--ink);font-size:clamp(26px,8.5vh,44px)}.screen-sub{max-width:40em;color:var(--ink);margin:0;font-size:clamp(15px,4.2vh,18px);font-weight:900}.screen>.screen-sub,.invite-message,.invite-status,.lobby-note{color:var(--cream);text-shadow:0 2px 0 var(--ink), 0 0 6px #1d1a2bcc, 0 0 2px var(--ink)}.btn{--btn-bg:var(--mustard);--btn-fg:var(--ink);appearance:none;border:4px solid var(--ink);background:var(--btn-bg);min-width:52px;min-height:52px;color:var(--btn-fg);font-family:var(--font-display);letter-spacing:.04em;cursor:pointer;box-shadow:0 6px 0 var(--ink);touch-action:manipulation;border-radius:18px;padding:6px 26px 2px;font-size:22px;line-height:1;transition:transform 80ms ease-out,box-shadow 80ms ease-out,filter .12s}.btn:hover:not(:disabled){filter:brightness(1.06)}.btn:active:not(:disabled){box-shadow:0 2px 0 var(--ink);transform:translateY(4px)}.btn:disabled{cursor:default;--btn-bg:#d9d2c0;--btn-fg:#6b6578;box-shadow:0 3px 0 var(--ink);transform:translateY(3px)}.btn-big{border-radius:22px;min-height:64px;padding:8px 46px 3px;font-size:clamp(26px,8vh,36px)}.btn-secondary{--btn-bg:var(--cream)}.btn-danger{--btn-bg:var(--ketchup);--btn-fg:var(--cream)}.btn-back{top:var(--safe-top);left:var(--safe-left);border:4px solid var(--ink);background:var(--cream);width:52px;height:52px;color:var(--ink);font-family:var(--font-body);cursor:pointer;box-shadow:0 4px 0 var(--ink);touch-action:manipulation;z-index:1;border-radius:50%;padding:0 0 6px;font-size:40px;font-weight:900;line-height:1;position:absolute}.btn-back:active{box-shadow:0 1px 0 var(--ink);transform:translateY(3px)}:focus-visible{outline:4px solid var(--ink);outline-offset:4px}.btn:focus-visible,.mode-card:focus-visible,.btn-back:focus-visible,.link-box:focus-visible{outline-offset:2px;box-shadow:0 0 0 10px var(--ink), 0 6px 0 var(--ink);outline:4px solid #fff}.btn-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;display:flex}.screen-home{background:#6fae3c;gap:0;padding:0;animation:none;overflow:hidden}.start-stage{position:absolute;inset:0;overflow:hidden;container-type:size}.start-stage>*{--sw:max(100cqw, 100cqh * 1.781);--sh:max(100cqh, 100cqw / 1.781);--sx:calc((100cqw - var(--sw)) / 2);--sy:calc((100cqh - var(--sh)) * .35)}.start-bg,.start-bg img{width:100%;height:100%;display:block;position:absolute;inset:0}.start-bg img{object-fit:cover;object-position:50% 35%}.start-logo{left:50%;top:max(var(--safe-top), calc(var(--sy) + var(--sh) * .15));width:min(var(--sw) * .524, 94cqw);margin:0;position:absolute;transform:translate(-50%)}.start-logo img{filter:drop-shadow(0 .4cqh #1d1a2b40);width:100%;height:auto;display:block}.start-dog{top:calc(var(--sy) + var(--sh) * .506);transform-origin:50% 100%;animation:2.6s ease-in-out infinite start-dog-idle;position:absolute}.start-dog img{width:100%;height:auto;display:block}.start-dog-left{left:max(1.5cqw, var(--safe-left) - 10px, calc(var(--sx) + var(--sw) * .0712));width:min(var(--sw) * .1727, 26cqw)}.start-dog-right{top:calc(var(--sy) + var(--sh) * .52);right:max(1.5cqw, var(--safe-right) - 10px, calc(100cqw - var(--sx) - var(--sw) * .9054));width:min(var(--sw) * .168, 25.5cqw);animation-delay:-1.3s}@keyframes start-dog-idle{50%{transform:translateY(-1.2%)scale(1.012,1.03)}}.made-by{right:max(var(--safe-right), 1.2cqw);bottom:max(var(--safe-bottom), 1.5cqh);width:clamp(56px, var(--sw) * .084, 170px);height:auto;position:absolute}.start-actions{left:50%;bottom:max(calc(var(--safe-bottom) + 30px), 7vh);z-index:1;position:absolute;transform:translate(-50%)}.start-buttons{white-space:nowrap;justify-content:center;align-items:center;gap:14px;display:flex}.start-buttons .btn-big{min-width:190px}.start-buttons .btn:not(:disabled){animation:.26s ease-out play-ready}@keyframes play-ready{60%{transform:scale(1.08)}}.start-loading{border:3px solid var(--ink);background:var(--cream);color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:2px 10px 2px 12px;font-size:13px;font-weight:900;line-height:1.3;transition:opacity .3s ease-out;display:flex;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%)}.start-loading.is-done{opacity:0;visibility:hidden;transition:opacity .3s ease-out,visibility 0s .3s}.start-loading-bar{border:2px solid var(--ink);background:#ead9b8;border-radius:999px;width:70px;height:10px;position:relative;overflow:hidden}.start-loading-fill{border-radius:inherit;background:linear-gradient(#ff9a6b, var(--ketchup));transform:scaleX(max(.08, var(--p,0)));transform-origin:0;transition:transform .25s ease-out;position:absolute;inset:0}.is-booting .start-loading-fill{animation:1.2s ease-in-out infinite alternate loading-wiggle}@keyframes loading-wiggle{to{transform:scaleX(.3)}}@media (prefers-reduced-motion:reduce){.start-dog,.start-buttons .btn,.is-booting .start-loading-fill{animation:none}}@media (max-height:420px){.start-buttons .btn-big{min-width:170px;min-height:56px;padding:6px 36px 2px;font-size:28px}.start-actions{bottom:calc(var(--safe-bottom) + 24px)}.start-loading{top:calc(100% + 6px)}}.flip .dog-svg{transform:scaleX(-1)}@keyframes bob{50%{transform:translateY(-6px)rotate(-2deg)}}.dog-svg{width:100%;height:auto;display:block;overflow:visible}.mode-cards{flex-wrap:wrap;justify-content:center;gap:clamp(14px,3vw,28px);display:flex}.mode-card{border:5px solid var(--ink);background:var(--cream);width:min(300px,40vw);min-width:220px;min-height:clamp(130px,44vh,210px);color:var(--ink);cursor:pointer;box-shadow:0 8px 0 var(--ink);touch-action:manipulation;border-radius:26px;flex-direction:column;justify-content:center;align-items:center;gap:4px;padding:14px 16px 18px;transition:transform 80ms ease-out;display:flex}.mode-card:first-child{background:linear-gradient(var(--mustard), #ffb21e);transform:rotate(-1.5deg)}.mode-card:nth-child(2){background:linear-gradient(#ff8a5c, var(--ketchup));color:var(--cream);transform:rotate(1.5deg)}.mode-card:hover{transform:rotate(0)scale(1.03)}.mode-card:active{box-shadow:0 3px 0 var(--ink);transform:translateY(5px)}.mode-emoji{font-size:clamp(30px,10vh,48px);line-height:1}.mode-title{font-family:var(--font-display);padding-top:4px;font-size:clamp(26px,8.5vh,38px);line-height:1}.mode-card:nth-child(2) .mode-title{-webkit-text-stroke:5px var(--ink);paint-order:stroke fill}.mode-blurb{font-size:15px;font-weight:900}.pp-form,.online-form{flex-direction:column;align-items:center;gap:clamp(10px,3.4vh,22px);width:min(760px,100%);display:flex}.online-form{width:min(420px,100%)}.field{text-align:left;flex-direction:column;align-items:stretch;gap:4px;width:100%;display:flex}.field-label{font-family:var(--font-display);letter-spacing:.05em;color:var(--team,var(--ink));-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;padding-left:6px;font-size:17px}.field:not([style]) .field-label{color:var(--cream)}.name-input{border:4px solid var(--ink);width:100%;height:56px;color:var(--ink);font-family:var(--font-body);box-shadow:inset 10px 0 0 var(--team,var(--mustard)), 0 4px 0 var(--ink);-webkit-user-select:text;user-select:text;touch-action:manipulation;background:#fff;border-radius:16px;padding:2px 16px 0 22px;font-size:22px;font-weight:900}.name-input::placeholder{color:#9a93a8}.name-input:focus-visible{outline-offset:2px;outline:4px solid #fff}.form-error{color:#8f1d00;min-height:1.2em;margin:0;font-weight:900}.versus-row{grid-template-columns:1fr auto 1fr;align-items:center;gap:clamp(10px,3vw,28px);width:100%;display:grid}.versus-side{flex-direction:column;align-items:center;gap:2px;display:flex}.versus-dog{width:clamp(80px,24vh,128px);animation:1.6s ease-in-out infinite bob}.versus-side:nth-child(3) .versus-dog{animation-delay:-.8s}.vs-badge{border:4px solid var(--ink);background:var(--ketchup);width:64px;height:64px;color:var(--cream);font-family:var(--font-display);box-shadow:0 4px 0 var(--ink);border-radius:50%;place-items:center;padding-top:6px;font-size:28px;display:grid;transform:rotate(-10deg)}.challenge .challenger{color:var(--mustard)}.invite{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:clamp(16px,4vw,36px);width:min(820px,100%);padding-left:48px;display:grid}.invite-main{flex-direction:column;align-items:stretch;gap:clamp(8px,2.4vh,14px);min-width:0;display:flex}.invite .screen-title{font-size:clamp(24px,7.5vh,40px)}.link-box{border:4px dashed var(--ink);width:100%;min-height:52px;color:var(--ink);white-space:nowrap;text-overflow:ellipsis;cursor:copy;touch-action:manipulation;background:#fff;border-radius:16px;padding:8px 14px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:clamp(15px,4.6vh,20px);font-weight:800;overflow:hidden}.invite .btn-row{justify-content:flex-start;position:relative}.invite-message{text-align:left;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:14px;font-style:italic;font-weight:700;display:-webkit-box;overflow:hidden}.invite-status,.lobby-note{margin:0;font-size:17px;font-weight:900}.invite-status{text-align:left}.invite-status:before,.lobby-note:before{content:"";background:var(--ketchup);border:2px solid var(--ink);vertical-align:-1px;border-radius:50%;width:12px;height:12px;margin-right:8px;animation:1s ease-in-out infinite pulse;display:inline-block}@keyframes pulse{50%{opacity:.5;transform:scale(.6)}}.qr{aspect-ratio:1;border:4px solid var(--ink);width:clamp(130px,46vh,200px);box-shadow:0 6px 0 var(--ink);color:var(--ink);background:#fff;border-radius:18px;place-items:center;padding:6px;font-size:13px;font-weight:900;display:grid}.qr svg{width:100%;height:100%}.copy-toast{background:var(--ink);color:var(--cream);opacity:0;pointer-events:none;border-radius:999px;padding:6px 12px;font-size:14px;font-weight:900}.copy-toast.show{animation:2.2s ease-out toast}@keyframes toast{0%,80%{opacity:1}}.lobby-title{font-size:clamp(24px,7.5vh,38px)}.match-code{color:var(--mustard);letter-spacing:.12em}.lobby-row{width:min(820px,100%)}.team-card{border:4px solid var(--ink);border-top:14px solid var(--team,#9a93a8);background:var(--cream);min-width:0;box-shadow:0 6px 0 var(--ink);border-radius:22px;flex-direction:column;align-items:center;gap:6px;padding:8px 12px 10px;transition:opacity .2s;display:flex}.team-empty{background:#fffa;border-style:dashed;justify-content:center;min-height:140px}.team-offline{opacity:.6}.team-name{max-width:100%;font-family:var(--font-display);color:var(--team,var(--ink));-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:clamp(22px,7vh,30px);line-height:1.1;overflow:hidden}.team-you{background:var(--ink);color:var(--cream);-webkit-text-stroke:0;vertical-align:middle;border-radius:8px;margin-left:8px;padding:3px 7px 0;font-size:13px;display:inline-block}.team-dogs{justify-content:center;gap:2px;display:flex}.dog-icon{place-items:center;width:clamp(36px,11vh,52px);height:clamp(36px,11vh,52px);display:grid}.dog-icon img,.dog-icon .dog-svg{width:100%;height:auto}.team-card:nth-child(3) .dog-icon .dog-svg{transform:scaleX(-1)}.team-status{color:var(--ink);margin:0;font-size:14px;font-weight:900}.dot{border:2px solid var(--ink);vertical-align:-1px;border-radius:50%;width:11px;height:11px;margin-right:6px;display:inline-block}.dot-on{background:#3ccb5a}.dot-off{background:#b5b0bf}.lobby-actions{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:64px;display:flex}.overlay{padding:var(--safe-top) var(--safe-right) var(--safe-bottom) var(--safe-left);color:var(--ink);text-align:center;touch-action:manipulation;justify-content:center;align-items:center;animation:.2s ease-out screen-in;display:flex;position:absolute;inset:0}.victory,.confirm{-webkit-backdrop-filter:blur(3px);background:#1d1a2b99;overflow-y:auto}.victory-card{border:5px solid var(--ink);background:var(--cream);max-width:720px;box-shadow:0 10px 0 var(--ink);border-radius:30px;flex-direction:column;align-items:center;gap:clamp(6px,2.4vh,14px);margin:auto;padding:clamp(10px,3vh,20px) clamp(18px,4vw,34px);display:flex}.victory-dog{width:clamp(80px,22vh,130px);padding-top:8px;animation:.9s ease-in-out infinite hop}@keyframes hop{50%{transform:translateY(-8px)rotate(4deg)}}.victory-actions{flex-direction:column;align-items:center;gap:clamp(10px,3vh,16px);display:flex}.confirm .victory-card{padding-top:clamp(20px,6vh,32px)}.victory-title{color:var(--team,var(--mustard));-webkit-text-stroke:8px var(--ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--ink);font-size:clamp(32px,11vh,58px)}.victory-stats{margin:0;font-size:clamp(16px,5vh,22px);font-weight:900}.victory-note{min-height:1.2em;margin:0;font-weight:900}.victory-note:empty{display:none}.handover{appearance:none;background:repeating-conic-gradient(from 0deg at 50% 50%, #fff2 0 10deg, transparent 10deg 20deg), var(--team,var(--ketchup));width:100%;height:100%;color:var(--cream);font-family:var(--font-body);cursor:pointer;border:0;flex-direction:column;gap:clamp(4px,2vh,14px);margin:0}.handover:focus-visible{outline:6px solid var(--cream);outline-offset:-14px}.handover-phone{font-size:clamp(40px,16vh,80px);line-height:1;animation:1.2s ease-in-out infinite slide-phone}.handover.ready .handover-phone{animation:none}@keyframes slide-phone{0%{transform:translate(-40px)rotate(-12deg)}50%{transform:translate(40px)rotate(12deg)}to{transform:translate(-40px)rotate(-12deg)}}.handover-title{color:var(--cream);-webkit-text-stroke:10px var(--ink);paint-order:stroke fill;text-shadow:0 6px 0 var(--ink);font-size:clamp(36px,15vh,84px)}.handover-sub{font-family:var(--font-display);-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;margin:0;font-size:clamp(22px,7vh,34px)}.handover-sub:empty,.handover-hint:empty{display:none}.handover-hint{border:4px solid var(--ink);background:var(--mustard);color:var(--ink);font-family:var(--font-display);box-shadow:0 5px 0 var(--ink);border-radius:999px;margin:0;padding:8px 18px 4px;font-size:22px;animation:1s ease-in-out infinite pulse-scale}@keyframes pulse-scale{50%{transform:scale(1.06)}}.error-emoji{font-size:clamp(40px,14vh,72px);line-height:1}.loading-dog{width:140px;animation:1.4s ease-in-out infinite alternate walk}@keyframes walk{0%{transform:translate(-40px)rotate(-2deg)}to{transform:translate(40px)rotate(2deg)}}.loading-text{font-family:var(--font-display);color:var(--cream);-webkit-text-stroke:5px var(--ink);paint-order:stroke fill;margin:0;font-size:26px}.banner{max-width:calc(100% - 32px);padding:calc(env(safe-area-inset-top) + 8px) 18px 6px;border:3px solid var(--ink);background:var(--ketchup);color:var(--cream);font-family:var(--font-display);letter-spacing:.03em;box-shadow:0 4px 0 var(--ink);z-index:2;pointer-events:none;border-top:0;border-radius:0 0 16px 16px;font-size:17px;position:fixed;top:0;left:50%;transform:translate(-50%)}.banner[hidden]{display:none}@media (max-width:560px){.versus-row{grid-template-columns:1fr}.vs-badge{justify-self:center}.invite{grid-template-columns:1fr;padding-top:56px;padding-left:0}.qr{justify-self:center}}#rotate-prompt{--u:min(1vw, .56vh);z-index:10;text-align:center;color:var(--ink);background:#6fae3c 50%/cover no-repeat;flex-direction:column;align-items:center;display:none;position:fixed;inset:0;overflow:hidden}.rotate-content{z-index:1;width:100%;padding:max(env(safe-area-inset-top), 2vh) 4vw calc(12vh + env(safe-area-inset-bottom));flex-direction:column;flex:1;justify-content:space-evenly;align-items:center;display:flex;position:relative}.rotate-logo{filter:drop-shadow(0 4px #8a4b0055);width:min(86vw,52vh);height:auto;display:block}.rotate-title{padding:0 calc(var(--u) * 2);font-family:var(--font-display);font-weight:400;font-size:calc(var(--u) * 9.4);letter-spacing:.01em;white-space:nowrap;-webkit-text-stroke:calc(var(--u) * 2.2) #b4410f;paint-order:stroke fill;text-shadow:0 calc(var(--u) * 1.2) 0 #7a2a08;margin:0;line-height:1;position:relative;transform:rotate(-3deg)}.rotate-title-white{color:#fff8e7}.rotate-title-yellow{color:#ffe14a}.rotate-title:before,.rotate-title:after{content:"";width:calc(var(--u) * 5);height:calc(var(--u) * 10);background:linear-gradient(#ffe14a, #ffe14a) 0 15% / 100% calc(var(--u) * 1.4) no-repeat, linear-gradient(#ffe14a, #ffe14a) 0 50% / 100% calc(var(--u) * 1.4) no-repeat, linear-gradient(#ffe14a, #ffe14a) 0 85% / 100% calc(var(--u) * 1.4) no-repeat;filter:drop-shadow(0 0 1px #b4410f);position:absolute;top:50%;transform:translateY(-50%)}.rotate-title:before{right:100%;transform:translateY(-50%)skewY(-12deg)}.rotate-title:after{left:100%;transform:translateY(-50%)skewY(12deg)}.rotate-sign{max-width:90vw;padding:calc(var(--u) * 2.4) calc(var(--u) * 6);border:calc(var(--u) * 1) solid #6b3e1c;border-radius:calc(var(--u) * 3);background:radial-gradient(circle, #8b8f99 0 40%, #4a4d55 45% 60%, transparent 62%) calc(var(--u) * 1.4) calc(var(--u) * 1.4) / calc(var(--u) * 3) calc(var(--u) * 3) no-repeat, radial-gradient(circle, #8b8f99 0 40%, #4a4d55 45% 60%, transparent 62%) calc(100% - var(--u) * 1.4) calc(var(--u) * 1.4) / calc(var(--u) * 3) calc(var(--u) * 3) no-repeat, radial-gradient(circle, #8b8f99 0 40%, #4a4d55 45% 60%, transparent 62%) calc(var(--u) * 1.4) calc(100% - var(--u) * 1.4) / calc(var(--u) * 3) calc(var(--u) * 3) no-repeat, radial-gradient(circle, #8b8f99 0 40%, #4a4d55 45% 60%, transparent 62%) calc(100% - var(--u) * 1.4) calc(100% - var(--u) * 1.4) / calc(var(--u) * 3) calc(var(--u) * 3) no-repeat, repeating-linear-gradient(178deg, #0000 0 calc(var(--u) * 3), #b8763a33 calc(var(--u) * 3) calc(var(--u) * 3.4)), linear-gradient(#f3c98a, #e0a865);box-shadow:inset 0 calc(var(--u) * -1) 0 #c48546, 0 calc(var(--u) * 1.2) 0 #6b3e1c;color:#4a2a10;font-family:var(--font-body);font-weight:900;font-size:calc(var(--u) * 4.7);text-wrap:balance;margin:0;line-height:1.2;position:relative;transform:rotate(1deg)}.rotate-phones{width:min(80vw,46vh);height:auto;display:block;overflow:visible}.rotate-phone-portrait{transform-box:fill-box;transform-origin:50%;animation:2.8s ease-in-out infinite rotate-phone}.rotate-arrow{animation:2.8s ease-in-out infinite rotate-arrow}@keyframes rotate-phone{0%,45%,to{transform:rotate(0)}65%,80%{transform:rotate(-20deg)}}@keyframes rotate-arrow{0%,45%,to{opacity:1;transform:translate(0)}65%,80%{opacity:.85;transform:translate(4px)}}.rotate-badge{bottom:max(env(safe-area-inset-bottom), 1.5vh);z-index:1;width:clamp(56px,18vw,84px);height:auto;position:absolute;left:50%;transform:translate(-50%)}@media (prefers-reduced-motion:reduce){.rotate-phone-portrait,.rotate-arrow{animation:none}}@media (orientation:portrait) and (pointer:coarse){#rotate-prompt{background-image:-webkit-image-set(url(/assets/ui/start/rotate-bg-720.webp) 1x,url(/assets/ui/start/rotate-bg-1080.webp) 2x);background-image:image-set("/assets/ui/start/rotate-bg-720.webp" 1x,"/assets/ui/start/rotate-bg-1080.webp" 2x);display:flex}}.sound-toggle-wrap{top:max(10px, env(safe-area-inset-top));right:max(10px, env(safe-area-inset-right));z-index:9;pointer-events:none;align-items:center;gap:6px;display:flex;position:fixed}.sound-toggle{pointer-events:auto;cursor:pointer;touch-action:manipulation;background:#fff8e7;border:3px solid #1d1a2b;border-radius:50%;width:44px;height:44px;padding:0;font-size:20px;line-height:1;box-shadow:0 4px #1d1a2b}.sound-toggle:active{transform:translateY(2px);box-shadow:0 2px #1d1a2b}.sound-toggle:focus-visible{outline-offset:3px;outline:3px solid #ffcf2e}.sound-hint{color:#1d1a2b;white-space:nowrap;background:#ffe14a;border:2px solid #1d1a2b;border-radius:999px;padding:4px 9px;font:900 12px/1.1 Nunito,system-ui,sans-serif;animation:1.6s ease-in-out infinite sound-nudge}.sound-hint[hidden]{display:none}@keyframes sound-nudge{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.sound-hint{animation:none}}body[data-music-scene=battle] .sound-toggle-wrap{display:none}.sound-switch{margin-top:12px}.screen-gallery{--s:4;--aim:-20deg;--gal-box:#00a8f0;--gal-joint:#ff9500;--gal-weapon:#ff2d55;--gal-muzzle:#22b14c;justify-content:flex-start;gap:8px;overflow:hidden}.gal-head{justify-content:center;align-items:center;gap:10px 16px;width:100%;min-height:52px;padding:0 52px 0 64px;display:flex}.gal-title{-webkit-text-stroke-width:5px;flex:none;font-size:clamp(22px,6.5vh,34px)}.gal-picker{gap:6px;min-width:0;display:flex}.gal-pick{border:3px solid var(--ink);background:var(--cream);min-width:44px;min-height:44px;color:var(--ink);font:900 14px/1 var(--font-body);white-space:nowrap;cursor:pointer;box-shadow:0 3px 0 var(--ink);touch-action:manipulation;border-radius:999px;align-items:center;gap:6px;padding:3px 10px 3px 4px;display:flex}.gal-pick[aria-current=true]{background:var(--mustard);box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.gal-pick-icon,.gal-pick .dog-svg{object-fit:contain;flex:none;width:32px;height:32px}.gal-main{flex:1;grid-template-columns:minmax(0,1.6fr) minmax(240px,1fr);gap:12px;width:100%;max-width:1200px;min-height:0;display:grid}.gal-left{flex-direction:column;gap:8px;min-width:0;min-height:0;display:flex}.gal-stage{border:4px solid var(--ink);min-height:140px;box-shadow:0 6px 0 var(--ink);touch-action:pan-y;background:radial-gradient(at 50% 40%,#fffdf5 0%,#fff3d2 60%,#f4dfae 100%);border-radius:22px;flex:1;position:relative;overflow:hidden}.gal-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.gal-ground{height:calc(var(--s) * 6px);margin-top:calc(var(--s) * -3px);background:radial-gradient(closest-side,#1d1a2b40,#1d1a2b00);border-radius:50%;position:absolute;left:18%;right:18%}.gal-flip,.gal-rig{position:absolute;inset:0}.screen-gallery.face-left .gal-flip{transform:scaleX(-1)}.gal-part{pointer-events:none;-webkit-user-drag:none;max-width:none;display:block;position:absolute}.gal-part[data-role=weapon]{transform:rotate(var(--aim))}.gal-fallback{width:80%;position:absolute;inset:10%}.gal-rig{animation:1.6s ease-in-out infinite gal-bob}.gal-part[data-role=tail]{animation:.45s ease-in-out infinite alternate gal-wag}.gal-part[data-role=earFront],.gal-part[data-role=earBack]{animation:1.6s ease-in-out infinite gal-flop}.gal-part[data-role=earBack]{animation-delay:-.12s}@keyframes gal-bob{0%,to{transform:translateY(0)}50%{transform:translateY(calc(var(--s) * -1.2px))}}@keyframes gal-wag{0%{transform:rotate(-16deg)}to{transform:rotate(18deg)}}@keyframes gal-flop{0%,to{transform:rotate(0)}50%{transform:rotate(14deg)}}@media (prefers-reduced-motion:reduce){.gal-rig,.gal-part[data-role]{animation:none}}.gal-guides{z-index:100;pointer-events:none;display:none;position:absolute;inset:0}.screen-gallery.show-guides .gal-guides{display:block}.gal-hitbox{border:2px dashed var(--gal-box);background:#00a8f014;position:absolute}.gal-mark{background:var(--gal-joint);width:12px;height:12px;box-shadow:0 0 0 1.5px var(--ink);border:2px solid #fff;border-radius:50%;margin:-6px 0 0 -6px;position:absolute}.gal-mark.mark-centre{background:var(--gal-box)}.gal-mark.mark-weapon{background:var(--gal-weapon);width:16px;height:16px;margin:-8px 0 0 -8px}.gal-mark.mark-muzzle{background:var(--gal-muzzle)}.gal-aimer{width:0;height:0;transform:rotate(var(--aim));position:absolute}.gal-legend{max-width:calc(100% - 16px);font:900 12px/1 var(--font-body);color:var(--ink);flex-wrap:wrap;gap:4px 10px;display:none;position:absolute;bottom:6px;left:8px}.screen-gallery.show-guides .gal-legend{display:flex}.gal-key:before{content:"";vertical-align:-1px;border:1.5px solid var(--ink);border-radius:50%;width:10px;height:10px;margin-right:4px;display:inline-block}.key-box:before{border-style:dashed;border-color:var(--gal-box);border-radius:2px}.key-joint:before{background:var(--gal-joint)}.key-weapon:before{background:var(--gal-weapon)}.key-muzzle:before{background:var(--gal-muzzle)}.gal-arrow{z-index:2;border:3px solid var(--ink);background:var(--cream);width:44px;height:44px;color:var(--ink);font:900 30px/1 var(--font-body);cursor:pointer;box-shadow:0 3px 0 var(--ink);touch-action:manipulation;border-radius:50%;margin-top:-22px;padding:0 0 4px;position:absolute;top:50%}.gal-prev{left:6px}.gal-next{right:6px}.gal-arrow:active,.gal-chip:active{box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.gal-bubble{z-index:3;border:3px solid var(--ink);max-width:70%;color:var(--ink);font:900 15px/1.2 var(--font-body);background:#fff;border-radius:14px;margin:0;padding:6px 12px;animation:.16s ease-out gal-pop;position:absolute;top:8px;left:50%;transform:translate(-50%)}.gal-bubble[hidden]{display:none}@keyframes gal-pop{0%{transform:translate(-50%)scale(.8)}}.gal-controls{flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;display:flex}.gal-chip{border:3px solid var(--ink);background:var(--cream);min-height:40px;color:var(--ink);font:900 14px/1 var(--font-body);white-space:nowrap;cursor:pointer;box-shadow:0 3px 0 var(--ink);touch-action:manipulation;border-radius:999px;padding:4px 12px}.gal-chip[aria-pressed=true],.gal-hear{background:var(--mustard)}.gal-aim{border:3px solid var(--ink);background:var(--cream);min-height:40px;color:var(--ink);font:900 14px/1 var(--font-body);box-shadow:0 3px 0 var(--ink);border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:flex}.gal-aim-slider{width:clamp(70px,14vw,160px);accent-color:var(--ketchup)}.gal-pick:focus-visible,.gal-arrow:focus-visible,.gal-chip:focus-visible,.gal-aim:focus-within{outline-offset:1px;box-shadow:0 0 0 7px var(--ink);outline:4px solid #fff}.gal-info{overscroll-behavior:contain;border:4px solid var(--ink);background:var(--cream);min-height:0;color:var(--ink);text-align:left;box-shadow:0 6px 0 var(--ink);-webkit-user-select:text;user-select:text;border-radius:22px;padding:10px 14px 14px;overflow-y:auto}.gal-name{font-family:var(--font-display);color:var(--ketchup);-webkit-text-stroke:4px var(--ink);paint-order:stroke fill;margin:0;font-size:clamp(24px,7vh,34px);font-weight:400;line-height:1}.gal-class{margin:4px 0 8px;font-size:15px;font-weight:900}.gal-stats{gap:5px;margin:0 0 10px;padding:0;list-style:none;display:grid}.gal-stat{grid-template-columns:8.5em 1fr 2.6em;align-items:center;gap:8px;font-size:14px;font-weight:900;display:grid}.gal-bar{border:2.5px solid var(--ink);background:#fff;border-radius:999px;height:14px;overflow:hidden}.gal-bar-fill{background:linear-gradient(var(--mustard), #ffb21e);border-radius:999px;height:100%;display:block}.stat-hp .gal-bar-fill{background:linear-gradient(#ff8a5c, var(--ketchup))}.stat-speed .gal-bar-fill{background:linear-gradient(#8fd8ff,#3aa6e8)}.stat-jump .gal-bar-fill{background:linear-gradient(#9be27a, var(--grass))}.stat-mass .gal-bar-fill{background:linear-gradient(#c5b6a6,#8e7a66)}.gal-stat-num{color:#6b6578;text-align:right;font-size:12px}.gal-weapons{gap:8px;display:grid}.gal-weapon{border:3px solid var(--ink);background:#fff;border-radius:16px;padding:8px 10px}.gal-weapon-head{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.gal-weapon-tag{background:var(--ink);color:var(--cream);font:900 11px/1 var(--font-body);letter-spacing:.06em;border-radius:8px;padding:3px 7px 2px}.gal-weapon-name{font-family:var(--font-display);font-size:20px;line-height:1}.gal-proj{object-fit:contain;max-height:40px;display:block}.gal-weapon-blurb{margin:6px 0;font-size:14px;font-weight:700;line-height:1.25}.gal-facts{flex-wrap:wrap;gap:4px;margin:0;padding:0;list-style:none;display:flex}.gal-facts li{background:#fff3d2;border:2px solid #1d1a2b33;border-radius:999px;padding:3px 8px;font-size:12px;font-weight:900}@media (max-height:500px),(max-width:980px){.gal-pick{padding:3px}.gal-pick-name{display:none}}@media (max-height:420px){.screen-gallery{gap:6px}.gal-head{min-height:46px}.gal-stat{grid-template-columns:7.6em 1fr 2.4em;font-size:13px}}@media (max-width:600px){.screen-gallery{overflow-y:auto}.gal-head{flex-wrap:wrap}.gal-main{flex-direction:column;flex:none;display:flex}.gal-stage{flex:none;height:300px}.gal-info{overflow:visible}}.mode-gallery-btn{min-height:44px;box-shadow:0 4px 0 var(--ink);padding:5px 18px 2px;font-size:18px}.gal-name-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px 10px;display:flex}.gal-name-row .gal-hear{min-height:36px;padding:3px 10px}@media (max-width:900px){.gal-chip-text{display:none}.gal-controls .gal-chip{min-width:44px;padding:4px 8px;font-size:18px}}.swb-hud{--swb-ink:#1d1a2b;--swb-cream:#fff8e7;--swb-mustard:#fc3;--swb-ketchup:#e4572e;--swb-display:var(--font-display,"Luckiest Guy", "Arial Black", Impact, system-ui, sans-serif);--swb-body:var(--font-body,"Nunito", system-ui, -apple-system, "Segoe UI", sans-serif);--swb-top:max(6px, env(safe-area-inset-top));--swb-right:max(10px, env(safe-area-inset-right));--swb-bottom:max(8px, env(safe-area-inset-bottom));--swb-left:max(10px, env(safe-area-inset-left));z-index:1;pointer-events:none;color:var(--swb-cream);font-family:var(--swb-body);-webkit-user-select:none;user-select:none;touch-action:none;font-weight:900;position:absolute;inset:0}:where(.swb-hud) button{font:inherit}.swb-btn{pointer-events:auto;appearance:none;border:3px solid var(--swb-ink);background:var(--swb-cream);color:var(--swb-ink);box-shadow:0 4px 0 var(--swb-ink);cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;border-radius:14px}.swb-btn:active:not([aria-disabled=true]):not(:disabled){box-shadow:0 1px 0 var(--swb-ink);transform:translateY(3px)}.swb-btn[aria-disabled=true],.swb-btn:disabled{opacity:.45;cursor:default}.swb-btn:focus-visible{outline:3px solid var(--swb-mustard);outline-offset:2px}.swb-top{top:var(--swb-top);left:var(--swb-left);right:var(--swb-right);grid-template-columns:1fr auto 1fr;align-items:start;gap:8px;display:grid;position:absolute}.swb-top-side{align-items:flex-start;gap:8px;min-width:0;display:flex}.swb-top-right{justify-content:flex-end}.swb-menu{border-radius:12px;flex:none;place-content:center;gap:4px;width:44px;height:44px;padding:0;display:grid}.swb-menu span{background:var(--swb-ink);border-radius:2px;width:18px;height:3px;display:block}.swb-teams{flex-direction:column;gap:4px;min-width:0;display:flex}.swb-team{border:3px solid var(--swb-ink);background:#1d1a2bcc;border-radius:12px;flex-direction:column;gap:2px;width:clamp(110px,18vw,180px);min-width:0;padding:3px 8px 5px;transition:box-shadow .15s;display:flex}.swb-team[data-turn=true]{box-shadow:0 0 0 3px var(--team)}.swb-team-name{color:var(--team);font-family:var(--swb-display);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;line-height:1.1;overflow:hidden}.swb-meter{background:#0006;border-radius:6px;height:12px;position:relative;overflow:hidden}.swb-meter-fill{transform-origin:0;background:#5fd35f;transition:transform .25s ease-out;position:absolute;inset:0}.swb-team-meter .swb-meter-fill{background:var(--team)}.swb-meter-fill[data-level=warn]{background:#ffc23f}.swb-meter-fill[data-level=low]{background:#ff4f4f}.swb-meter-text{text-shadow:0 1px #000;padding:0 5px;font-size:10px;line-height:12px;display:block;position:relative}.swb-top-centre{flex-direction:column;align-items:center;gap:3px;display:flex}.swb-turn{border:3px solid var(--swb-ink);background:#1d1a2bcc;border-radius:999px;align-items:center;gap:8px;padding:2px 12px 2px 4px;display:flex}.swb-timer{background:var(--swb-cream);min-width:36px;height:36px;color:var(--swb-ink);font-family:var(--swb-display);border-radius:50%;place-items:center;font-size:20px;line-height:1;display:grid}.swb-timer[data-low=true]{background:var(--swb-ketchup);color:var(--swb-cream);animation:.5s ease-in-out infinite alternate swb-pulse}.swb-turn-name{max-width:28vw;font-family:var(--swb-display);letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;-webkit-text-stroke:4px var(--swb-ink);paint-order:stroke fill;font-size:18px;overflow:hidden}.swb-wind{letter-spacing:.08em;background:#1d1a2b99;border-radius:999px;align-items:center;gap:5px;padding:1px 8px;font-size:11px;display:flex}.swb-wind-arrow{font-size:14px;transition:transform .2s;display:inline-block}.swb-wind-arrow[data-dir=left]{transform:scaleX(-1)}.swb-wind-arrow[data-dir=none]{opacity:.3}.swb-wind-pips{gap:2px;display:flex}.swb-pip{background:#fff3;border-radius:2px;width:6px;height:10px}.swb-pip.swb-on{background:#9fe3ff}.swb-sudden-badge{letter-spacing:.08em;background:#3a7bd5;border-radius:999px;padding:1px 8px;font-size:11px;display:none}.swb-sudden-badge[data-on=true]{display:block}.swb-view{left:var(--swb-left);top:calc(var(--swb-top) + 54px);border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid;position:absolute}.swb-view svg{fill:none;width:24px;height:24px;stroke:var(--swb-ink);stroke-width:2.6px;stroke-linecap:round;stroke-linejoin:round}.swb-view .swb-dot{fill:var(--swb-ketchup);stroke:none}.swb-view[data-mode=back]{background:var(--swb-mustard)}.swb-banner{opacity:0;color:var(--swb-mustard);font-family:var(--swb-display);white-space:nowrap;-webkit-text-stroke:8px var(--swb-ink);paint-order:stroke fill;text-shadow:0 5px 0 var(--swb-ink);font-size:clamp(30px,10vh,56px);transition:opacity .25s,transform .25s cubic-bezier(.3,1.6,.5,1);position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)scale(.6)}.swb-banner.swb-show{opacity:1;transform:translate(-50%,-50%)scale(1)}.swb-status{font-family:var(--swb-display);letter-spacing:.04em;white-space:nowrap;-webkit-text-stroke:5px var(--swb-ink);paint-order:stroke fill;margin-top:2px;font-size:18px}.swb-status:empty{display:none}.swb-bottom{left:var(--swb-left);right:var(--swb-right);bottom:var(--swb-bottom);grid-template-columns:1fr auto 1fr;align-items:end;gap:8px;display:grid;position:absolute}.swb-hud[data-local=false] .swb-local-only{visibility:hidden}.swb-move{align-items:flex-end;gap:10px;display:flex}.swb-stick{pointer-events:auto;border:3px solid var(--swb-ink);touch-action:none;background:#1d1a2b99;border-radius:999px;flex:none;width:124px;height:60px;position:relative}.swb-stick-arrow{opacity:.7;font-size:14px;position:absolute;top:50%;transform:translateY(-50%)}.swb-stick-l{left:10px}.swb-stick-r{right:10px}.swb-knob{border:3px solid var(--swb-ink);background:var(--swb-cream);border-radius:50%;width:46px;height:46px;margin:-23px 0 0 -23px;transition:transform 80ms;position:absolute;top:50%;left:50%}.swb-stick.swb-active .swb-knob{background:var(--swb-mustard);transition:none}.swb-jump{width:60px;height:60px;font-family:var(--swb-display);border-radius:50%;padding:0;font-size:15px}.swb-keys{background:#1d1a2b99;border-radius:8px;align-self:center;padding:4px 8px;font-size:11px;font-weight:800;display:none}@media (hover:hover) and (pointer:fine){.swb-stick,.swb-jump{display:none}.swb-keys{display:block}}.swb-middle{justify-content:center;min-width:0;display:flex}.swb-card{border:3px solid var(--swb-ink);background:#1d1a2bcc;border-radius:14px;flex-direction:column;gap:3px;width:clamp(170px,26vw,250px);padding:4px 10px 6px;display:none}.swb-card[data-on=true]{display:flex}.swb-hud[data-phase=select_dog][data-local=true] .swb-card{display:none}.swb-card-name{font-family:var(--swb-display);letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.swb-meter-stamina .swb-meter-fill{background:#6ec6ff}.swb-card-weapon{letter-spacing:.03em;white-space:nowrap;text-overflow:ellipsis;opacity:.9;font-size:11px;overflow:hidden}.swb-squad{gap:6px;display:none}.swb-squad[data-on=true]{display:flex}.swb-squad-dog{border-color:var(--swb-ink);background:var(--swb-cream);width:64px;height:46px;box-shadow:0 4px 0 var(--swb-ink), inset 0 -5px 0 var(--team);flex-direction:column;justify-content:center;align-items:center;gap:1px;padding:2px 2px 4px;display:flex;position:relative}.swb-squad-icon{background:var(--team);width:22px;height:22px;color:var(--swb-cream);font-family:var(--swb-display);border-radius:50%;place-items:center;font-size:13px;display:grid;position:relative}.swb-squad-img{width:26px;height:26px;position:absolute;inset:-2px}.swb-squad-name{white-space:nowrap;text-overflow:ellipsis;max-width:60px;font-size:10px;line-height:1.1;overflow:hidden}.swb-squad-hp{opacity:.75;font-size:9px;line-height:1;position:absolute;top:2px;right:3px}.swb-actions{justify-content:flex-end;align-items:flex-end;gap:10px;display:flex}.swb-toggle{flex-direction:column;justify-content:center;align-items:center;width:64px;height:60px;padding:2px;line-height:1;display:flex}.swb-toggle-star{color:#b0a58f;font-size:20px}.swb-toggle-label{white-space:nowrap;text-overflow:ellipsis;max-width:58px;font-size:9px;overflow:hidden}.swb-toggle[aria-pressed=true]{background:var(--swb-mustard)}.swb-toggle[aria-pressed=true] .swb-toggle-star{color:var(--swb-ketchup)}.swb-fire{background:var(--swb-ketchup);width:84px;height:84px;color:var(--swb-cream);font-family:var(--swb-display);letter-spacing:.04em;border-width:4px;border-radius:50%;padding:0;font-size:22px;position:relative;overflow:hidden}.swb-fire-label{z-index:1;-webkit-text-stroke:4px var(--swb-ink);paint-order:stroke fill;position:relative}.swb-fire-meter{transform-origin:0;background:var(--swb-mustard);height:12px;position:absolute;bottom:0;left:0;right:0}.swb-end{min-width:56px;height:44px;padding:0 8px;font-size:11px;line-height:1.05}.swb-hud[data-phase=select_dog] .swb-toggle,.swb-hud[data-phase=select_dog] .swb-fire,.swb-hud[data-phase=select_dog] .swb-move{visibility:hidden}@keyframes swb-pulse{to{transform:scale(1.12)}}@media (max-height:420px){.swb-team{width:clamp(100px,17vw,160px)}.swb-status{font-size:16px}}
