@font-face{font-family:Game;src:local('Trebuchet MS')}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#052448;font-family:Game,'Trebuchet MS',system-ui,sans-serif;color:#123863}button{font:inherit;cursor:pointer;border:0}button:focus-visible{outline:4px solid #ffc452;outline-offset:5px}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}#game{position:relative;width:100%;height:100dvh;max-width:1800px;margin:auto;overflow:hidden;isolation:isolate;background:#8bd3f6;touch-action:none}canvas{display:block;width:100%;height:100%}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:30px;background:linear-gradient(110deg,rgba(0,34,79,.65),rgba(0,55,98,.12));z-index:5;overflow:auto}.start-card,.end-card{display:flex;align-items:center;width:min(960px,100%);gap:26px;padding:32px 44px;border-radius:36px;background:linear-gradient(140deg,#fff,#eaf7ff);box-shadow:0 14px 0 #02376a55,0 32px 80px #001c3f70;border:3px solid #ffffffcc}.hero-character{width:42%;align-self:stretch;display:flex;align-items:flex-end;justify-content:center;background:radial-gradient(ellipse,#b7e6ff 0%,transparent 70%)}.hero-character img{width:100%;max-height:570px;object-fit:contain;filter:drop-shadow(0 12px 7px #082b5628)}.start-copy{flex:1;text-align:left}.eyebrow{font-size:12px;font-weight:900;letter-spacing:.13em;color:#377399;line-height:1.5}h1{font-size:clamp(54px,7.8vw,100px);font-weight:1000;line-height:.85;letter-spacing:-.045em;margin:22px 0 12px;color:#064699;text-shadow:0 4px 0 #ccdfff}h1 em{font-style:normal;color:#f79a15;font-size:1.4em;text-shadow:0 5px 0 #ce7207}.with-veter{display:inline-block;font-size:17px;font-weight:900;letter-spacing:.22em;color:white;background:#094d9d;padding:7px 18px;transform:rotate(-3deg);border-radius:9px;margin:12px 0}.start-copy p{font-size:18px;line-height:1.5;margin:16px 0 20px;color:#456380}.primary{background:linear-gradient(#ffb13d,#f18c0d);border:2px solid #ffd48a;color:#422e0d;font-size:21px;font-weight:900;padding:15px 26px;border-radius:17px;box-shadow:0 6px 0 #bd6909;transition:transform .12s}.primary:active{transform:translateY(4px);box-shadow:0 2px 0 #bd6909}#start{width:100%;text-transform:uppercase;letter-spacing:.05em}.mini-instructions{display:flex;gap:26px;font-weight:900;font-size:16px;margin-top:29px}.mini-instructions small{display:block;font-weight:500;font-size:13px;color:#627c95;margin-top:4px}.start-copy .touch-note{font-size:13px;line-height:1.35;margin-top:16px;margin-bottom:0;color:#678197}#hud{position:absolute;top:max(20px,env(safe-area-inset-top));left:3%;right:3%;z-index:2;pointer-events:none;max-width:1300px;margin:auto}.hud-top{display:flex;align-items:center;gap:14px}.mission-title{line-height:.8;margin-right:auto;text-shadow:0 3px 0 #043b78;color:white;font-weight:1000}.mission-title>span{font-size:19px;display:block;letter-spacing:.06em}.mission-title strong{font-size:44px;color:#ffb328;letter-spacing:-.04em}.mission-title .paw{color:#ffcf75;font-size:22px}.counter{display:flex;align-items:center;gap:9px;background:#fffffff2;border:2px solid #fff;border-radius:18px;padding:8px 17px;box-shadow:0 4px 0 #083b5e33;min-width:118px}.counter b{font-size:26px;line-height:1;display:block}.counter small{font-size:12px;display:block;margin-top:3px;font-weight:700}.counter-icon{font-size:32px;color:#ff9b25}.lives{font-size:28px;color:#ec4f5d;text-shadow:0 2px 0 white;white-space:nowrap}.lives .lost{color:#59728c55}.icon-button{height:46px;min-width:46px;border-radius:15px;background:white;color:#0c4c90;font-size:25px;font-weight:900;box-shadow:0 4px 0 #083b5e33;pointer-events:auto}.route{display:flex;align-items:center;gap:14px;background:#06356bce;border:1px solid #ffffff30;border-radius:13px;padding:9px 15px;margin-top:16px;color:white;font-size:14px;font-weight:700}.route-track{height:7px;flex:1;background:#ffffff35;border-radius:20px;position:relative}#route-fill{height:100%;width:0%;background:#ffb638;border-radius:20px;transition:width .15s linear}.route-track i{position:absolute;top:-3px;width:13px;height:13px;border-radius:50%;border:2px solid white;background:#0e5eab;transform:translateX(-50%)}.route-track i.done{background:#ffba43}.pet-bag{display:flex;gap:12px;align-items:center;margin-top:10px;color:#14426c;font-size:13px;font-weight:800}.pet-bag span{background:#ffffffd9;padding:6px 11px;border-radius:9px}#magnet{background:#ffe2a3}#controls{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:3%;right:3%;display:flex;align-items:center;justify-content:space-between;gap:18px;z-index:2;pointer-events:none}.keyboard-hint{color:#164366;font-size:14px;font-weight:700;background:#ffffffd4;padding:10px 15px;border-radius:12px}kbd{font:800 12px system-ui;background:white;border:1px solid #aec9d7;border-bottom:3px solid #aec9d7;border-radius:5px;padding:4px 6px}.keyboard-hint span{margin:0 10px}.touch-controls{display:flex;gap:13px;pointer-events:auto;margin-left:auto}.touch-controls button{width:90px;height:79px;background:#ffffffeb;border:2px solid white;border-radius:22px;color:#0b4f95;box-shadow:0 6px 0 #103b6740;font-size:11px;font-weight:900;display:grid;place-content:center;gap:2px;touch-action:none}.touch-controls button:last-child{background:#ffaf33;border-color:#ffd077;color:#573908}.touch-controls span{font-size:33px;line-height:1.1}.touch-controls button:active{transform:translateY(4px);box-shadow:0 2px 0 #103b6740}#toast{position:absolute;left:50%;top:32%;transform:translate(-50%,-10px);padding:14px 24px;background:#fff7db;color:#4c380e;border:2px solid #ffc454;border-radius:18px;font-size:18px;font-weight:900;box-shadow:0 5px 0 #83521430;z-index:3;opacity:0;transition:opacity .2s,transform .2s;text-align:center;pointer-events:none;white-space:nowrap}#toast.show{opacity:1;transform:translate(-50%,0)}.pause-card{padding:38px;text-align:center;border-radius:28px;background:#f3fbff;box-shadow:0 10px 0 #043a6670}.pause-card h2{font-size:32px;margin:16px 0}.pause-card p{font-size:17px;margin:0 0 24px}.end-character{width:36%;align-self:flex-end}.end-character img{width:100%;max-height:450px;object-fit:contain;filter:drop-shadow(0 9px 6px #1b426728)}.end-copy{flex:1}.end-copy h2{font-size:clamp(32px,4.8vw,60px);line-height:1;margin:14px 0;color:#0855a5;letter-spacing:-.04em}.veter-message{font-size:19px;line-height:1.45;color:#476a87}.end-stats{display:flex;gap:25px;margin:20px 0 8px}.end-stats>div{display:flex;flex-direction:column}.end-stats b{font-size:50px;color:#f18d14;line-height:1}.end-stats span{font-size:13px;font-weight:800;margin-top:6px}#end-pets{height:47px;display:flex;align-items:flex-end;gap:6px;margin-top:16px}#end-pets img{height:43px;max-width:50px;object-fit:contain}.best{font-size:13px;color:#69839a}.end-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.secondary{background:#0c55a4;color:#fff;padding:14px 19px;font-size:16px;font-weight:800;border-radius:15px}.end-actions .primary{font-size:18px}#share-status{font-size:13px;min-height:18px;margin:12px 0 0;color:#3a6580}#load-error{font-size:14px;margin-top:16px}#reload{background:transparent;color:#095bac;text-decoration:underline} @media(max-width:700px){.overlay{padding:16px}.start-card{gap:8px;padding:27px 23px;max-width:430px;flex-direction:column}.hero-character{position:absolute;right:calc(50% - 155px);top:calc(50% - 203px);width:112px;height:174px;opacity:1}.hero-character img{max-height:174px}.start-copy{width:100%}.start-copy .eyebrow{font-size:10px;max-width:170px}h1{font-size:58px;margin-top:18px}.with-veter{font-size:13px;margin-bottom:2px}.start-copy p{font-size:16px}.mini-instructions{font-size:14px;gap:22px}.mini-instructions small{font-size:12px}.start-copy .touch-note{font-size:12px}.hud-top{gap:7px}.mission-title>span{font-size:13px}.mission-title strong{font-size:31px}.counter{min-width:70px;padding:7px 9px;gap:5px;border-radius:13px}.counter b{font-size:21px}.counter small{font-size:10px}.counter-icon{font-size:22px}.lives{font-size:21px;letter-spacing:-4px}.icon-button{height:37px;min-width:37px;border-radius:12px;font-size:21px}.coins{display:none}.route{gap:9px;font-size:12px;padding:9px 11px}.pet-bag{font-size:11px;gap:6px}.pet-bag span{padding:6px 8px}.keyboard-hint{display:none}#controls{bottom:max(25px,env(safe-area-inset-bottom))}.touch-controls button{width:85px;height:79px}#toast{font-size:15px;padding:12px 16px;max-width:92%;white-space:normal}.end-card{padding:25px 24px;display:block;max-width:460px;position:relative}.end-character{width:115px;float:right;margin:25px -10px 0 5px}.end-character img{max-height:190px}.end-copy .eyebrow{font-size:10px}.veter-message{font-size:16px}.end-stats{gap:18px}.end-stats b{font-size:40px}.end-stats span{font-size:11px}.end-copy h2{font-size:36px}.end-actions .primary{font-size:17px;padding:12px 17px}.secondary{font-size:14px}.best{font-size:12px}}
@media(max-height:560px) and (min-width:701px){.overlay{padding:18px}.start-card,.end-card{padding:20px 35px;max-width:800px;border-radius:25px;gap:26px}.hero-character{width:32%}.hero-character img{max-height:340px}h1{font-size:50px;margin:9px 0}.with-veter{font-size:12px;margin:8px 0}.start-copy p{font-size:15px;margin:10px 0}.eyebrow{font-size:10px}.primary{font-size:17px;padding:11px 22px}.mini-instructions{margin-top:18px;font-size:13px}.mini-instructions small{font-size:11px}.start-copy .touch-note{font-size:11px}.end-character img{max-height:300px}.end-copy h2{font-size:36px}.veter-message{font-size:15px}.end-stats{margin:10px 0;gap:22px}.end-stats b{font-size:36px}.end-actions{margin-top:10px}#end-pets{height:30px;margin-top:6px}#end-pets img{height:30px}#hud{top:12px}.route{margin-top:8px}.counter{padding:5px 10px}.counter b{font-size:21px}.mission-title strong{font-size:30px}.mission-title>span{font-size:13px}#controls{bottom:15px}.touch-controls button{height:56px;width:75px;border-radius:17px}.touch-controls span{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
/* Supplied campaign artwork, with room for both the logo and Veter. */
.start-card{position:relative;gap:32px;padding:28px 38px}.hero-character{width:38%;align-items:center}.hero-character img{max-height:490px}.brand-logo{width:min(225px,100%);margin:12px 0 14px;line-height:0;text-shadow:none;letter-spacing:normal}.brand-logo img{display:block;width:100%;height:auto;max-height:225px;object-fit:contain}.mission-title{margin-right:auto;line-height:0}.mission-title img{display:block;width:78px;height:78px;object-fit:contain;filter:drop-shadow(0 3px 3px #00366c44)}.hud-top{min-height:78px}.route{margin-top:9px}.end-character{width:35%;align-self:center}.end-character img{max-height:450px}.mini-instructions small{font-size:14px}.start-copy .touch-note{font-size:14px}
@media(max-width:700px){.start-card{padding:25px 23px;gap:0}.hero-character{right:20px;top:61px;width:32%;height:186px;align-items:center}.hero-character img{max-height:186px}.brand-logo{width:58%;height:178px;margin:12px 0 20px;display:flex;align-items:center}.brand-logo img{max-height:178px}.start-copy .eyebrow{max-width:100%;font-size:10px}.mission-title img{width:60px;height:60px}.hud-top{min-height:60px}.end-character{width:115px}.end-character img{max-height:230px}.mini-instructions small{font-size:12px}.start-copy .touch-note{font-size:12px}}
@media(max-height:560px) and (min-width:701px){.start-card{padding:20px 30px}.hero-character img{max-height:350px}.brand-logo{width:145px;margin:5px 0 8px}.brand-logo img{max-height:145px}.mission-title img{width:52px;height:52px}.hud-top{min-height:52px}.end-character img{max-height:315px}.mini-instructions small{font-size:12px}.start-copy .touch-note{font-size:12px}}
/* Two-thumb controls with the supplied logo centered between the actions. */
#game{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
#controls{left:max(4%,env(safe-area-inset-left));right:max(4%,env(safe-area-inset-right));bottom:calc(64px + env(safe-area-inset-bottom));display:block}
.touch-controls{width:100%;margin:0;display:grid;grid-template-columns:100px minmax(0,1fr) 100px;gap:16px;align-items:center;pointer-events:none}
.touch-controls button{width:100%;height:88px;pointer-events:auto;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.controls-logo{display:block;width:min(180px,100%);max-height:124px;height:auto;object-fit:contain;justify-self:center;pointer-events:none;filter:drop-shadow(0 3px 3px #23446a33)}
#sound{position:absolute;left:0;bottom:-51px}.keyboard-hint{position:absolute;left:62px;bottom:-47px}
@media(max-width:700px){#controls{bottom:calc(72px + env(safe-area-inset-bottom))}.touch-controls{grid-template-columns:84px minmax(0,1fr) 84px;gap:12px}.touch-controls button{height:82px;border-radius:22px}.controls-logo{width:min(160px,100%);max-height:115px}#sound{bottom:-51px}}
@media(max-height:560px) and (orientation:landscape){#controls{bottom:calc(34px + env(safe-area-inset-bottom));left:max(4%,env(safe-area-inset-left));right:max(4%,env(safe-area-inset-right))}.touch-controls{grid-template-columns:75px minmax(0,1fr) 75px}.touch-controls button{height:58px}.controls-logo{width:100px;max-height:76px}#sound{left:90px;bottom:0}.keyboard-hint{left:143px;bottom:0}}
.audio-controls{position:absolute;left:0;bottom:-53px;display:flex;gap:8px;pointer-events:auto}
.audio-controls #sound{position:static}.audio-button{min-height:36px;padding:8px 11px;border:1px solid #ffffffcc;border-radius:12px;background:#ffffffed;color:#08467d;font-size:13px;font-weight:800;box-shadow:0 3px 0 #0b3a5b26;touch-action:manipulation}.audio-button[aria-pressed=false]{background:#e2e7e9;color:#526371}.keyboard-hint{left:200px}
@media(max-height:560px) and (orientation:landscape){.audio-controls{left:90px;bottom:0;gap:5px}.audio-button{padding:8px;font-size:12px}.keyboard-hint{display:none}}
.end-character>img{max-height:310px}.end-protectors{display:flex;align-items:flex-end;justify-content:center;gap:7px;margin-top:8px}.end-protectors img{width:31%;height:110px;object-fit:contain;filter:drop-shadow(0 3px 3px #21425d20)}.protector-tribute{padding:12px 14px;border-left:4px solid #ff9e21;border-radius:0 10px 10px 0;background:#e0f0fc;font-size:15px;line-height:1.45;font-weight:700;color:#17548a;margin:14px 0}.end-card{max-height:calc(100dvh - 40px);overflow:auto}
@media(max-width:700px){.end-character>img{max-height:160px}.end-protectors{gap:2px;margin-top:3px}.end-protectors img{height:67px}.protector-tribute{font-size:13px;padding:10px;clear:both}}
@media(max-height:560px) and (min-width:701px){.end-character>img{max-height:210px}.end-protectors img{height:73px}.protector-tribute{font-size:13px;padding:8px 10px;margin:8px 0}}

/* Complete supplied opening artwork, fitted without cropping or distortion. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#start-screen{padding:0;background:#073b62;overflow:hidden}
.opening-art{position:relative;width:min(100%,calc(100dvh * 1672 / 941));aspect-ratio:1672/941}
.opening-art picture,.opening-art img{display:block;width:100%;height:100%;object-fit:contain}
.opening-art #start{position:absolute;left:59.9%;top:70.1%;width:29.3%;height:16.3%;padding:0;border-radius:20%;background:transparent;touch-action:manipulation}
.opening-art #start:not(:disabled):hover{background:#ffffff14;box-shadow:0 0 28px #f9ff9955}
.opening-art #start:focus-visible{outline:4px solid #fff;outline-offset:2px}
#start-status,#start-screen #load-error{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);border-radius:12px;padding:12px 20px;background:#fff9e9;box-shadow:0 3px 18px #001b3860;text-align:center;font-weight:800;max-width:90%;width:max-content;margin:0}
#start-screen #load-error{top:70px}
@media(orientation:portrait){.opening-art{width:min(100%,calc(100dvh * 941 / 1672));aspect-ratio:941/1672}.opening-art #start{left:19.1%;top:87.2%;width:61.6%;height:10%}}
.score-counter{min-width:100px}.score-counter b{font-variant-numeric:tabular-nums}.pet-bag{flex-wrap:wrap}
.end-score{display:flex;align-items:baseline;gap:10px;margin-top:14px}.end-score b{font-size:clamp(40px,5vw,64px);line-height:1;color:#0855a5;overflow-wrap:anywhere}.end-score span{font-weight:800;color:#377399}.end-stats{margin-top:15px}.end-stats b{font-size:36px}.run-detail{font-size:14px;font-weight:800;margin-bottom:7px}.score-rule{font-size:12px;color:#58758a;margin:0}.end-copy h2{font-size:clamp(30px,3.7vw,44px)}
@media(max-width:700px){.score-counter{min-width:60px}.score-counter b{font-size:18px}.hud-top{gap:6px}.counter{padding:7px}.mission-title img{width:48px;height:48px}.end-stats b{font-size:31px}.end-score b{font-size:40px}.end-copy h2{font-size:30px}}
@media(max-width:700px){.hud-top .counter-icon{display:none}.score-counter{min-width:60px}.lives{font-size:19px}}

/* A reserved footer keeps the supplied notice clear of artwork and controls. */
:root{--legal-height:calc(36px + env(safe-area-inset-bottom,0px));--play-height:calc(100dvh - var(--legal-height))}
#game{height:var(--play-height)}
#legal-notice{height:var(--legal-height);padding:4px max(12px,env(safe-area-inset-right)) calc(4px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:center;background:#052448;color:#fff;text-align:center;font:500 10px/13px system-ui,sans-serif;letter-spacing:.02em}
.opening-art{width:min(100%,calc(var(--play-height) * 1672 / 941))}
.end-card{max-height:calc(var(--play-height) - 40px)}
@media(orientation:portrait){.opening-art{width:min(100%,calc(var(--play-height) * 941 / 1672))}}
