.gas-section{background:#0f1a28;--sail-scale:.72}.gas-heading{align-items:center}.gas-heading h2{font-size:clamp(27px,3.4vw,47px);line-height:1.5}.gas-heading .gas-intro{max-width:410px;font-size:17px}.gas-intro>p{margin-bottom:12px}.gas-intro .gas-joke{font-size:13px;line-height:1.8;color:#819daa;margin-bottom:0}.gas-layout{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(230px,1fr);gap:64px;align-items:start}.gas-play-panel{min-width:0}.gas-topline{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;scroll-margin-top:90px}.gas-time{color:var(--lime);font:400 30px/1 var(--pixel);font-variant-numeric:tabular-nums;letter-spacing:-1px}.gas-time span{font:400 12px var(--body);color:#8ba7b6;margin-left:7px;letter-spacing:0}.gas-time.is-low{color:#edb398}
.gas-stage{position:relative;border:1px solid #496174;background:#152b3e;overflow:hidden;isolation:isolate}.gas-scene-label{position:absolute;top:18px;left:20px;right:20px;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:15px;font-size:8px;letter-spacing:.9px;line-height:1.8;color:#91a9b8}.gas-mic-state{white-space:nowrap;color:#809bab}.gas-stage.is-listening .gas-mic-state{color:var(--lime)}.gas-stage.is-listening .gas-mic-state:before{content:'';display:inline-block;background:var(--lime);width:5px;height:5px;margin-right:6px}.gas-scene{display:block;width:100%;height:auto;aspect-ratio:12/7}.gas-viking{image-rendering:pixelated}.gas-boat{transform-origin:center;animation:gas-bob 2.6s steps(2,end) infinite}.gas-sail{transform-box:fill-box;transform-origin:left center;transform:scaleX(var(--sail-scale,.72));transition:transform .17s ease-out}.gas-wind{opacity:0;transition:opacity .18s;transform:translateX(-5px)}.gas-stage.is-qualifying .gas-wind{opacity:.8;animation:gas-wind .32s steps(2,end) infinite}.gas-left-helmet,.gas-splash{opacity:0}.gas-stage.is-success .gas-boat{animation:gas-launch 1.1s cubic-bezier(.24,.04,.79,.71) forwards}.gas-stage.is-success .gas-left-helmet{animation:gas-helmet .65s steps(6,end) .05s forwards}.gas-stage.is-success .gas-splash{animation:gas-splash .8s steps(3,end) forwards}.gas-stage.is-success .gas-wind{opacity:1;transform:translateX(140px);transition:transform .7s,opacity .5s}
.gas-meter-wrap{background:#132333;border-top:1px solid #385568;padding:20px 23px 18px}.gas-meter-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:13px}.gas-meter-heading>span{font-size:9px;letter-spacing:1.4px;color:#90a9b9}.gas-meter-heading strong{font-size:17px;font-weight:550;font-variant-numeric:tabular-nums;line-height:1;color:var(--ice)}.gas-meter-heading strong span{font-size:10px;color:#7693a5;margin-left:4px}.gas-meter{height:10px;position:relative;background:#284054;overflow:hidden}.gas-meter>span{display:block;width:0;height:100%;background:var(--lime);transition:width .12s linear}.gas-meter>i{position:absolute;top:0;bottom:0;width:2px;background:#132333;left:33.333%}.gas-meter>i:last-child{left:66.667%}.gas-meter-wrap>p{font-size:11px;line-height:1.6;margin:11px 0 0;color:#7f9cad}.gas-stage.is-success .gas-meter-heading strong{color:var(--lime)}
.gas-controls{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:26px 0 17px}.gas-controls>div:first-child{min-width:0;max-width:365px}.gas-controls h3{font-size:20px;line-height:1.5;font-weight:550;letter-spacing:-.35px;margin:0 0 8px;color:#e1ebe9}.gas-controls p{font-size:12px;line-height:1.8;margin:0;color:#8ba5b5}.gas-buttons{display:flex;flex-direction:column;align-items:center;gap:11px;flex-shrink:0}.gas-buttons .button{font-size:11px;min-height:49px;padding:13px 18px;white-space:nowrap;letter-spacing:.15px}.gas-cancel{border:0;border-bottom:1px solid #40596d;background:none;color:#93adbe;font-size:11px;padding:2px 0}.gas-local-note{font-size:10px;line-height:1.8;margin:0;color:#607f96}.gas-status{font-size:12px;margin-top:16px;margin-bottom:0;padding-top:15px;border-top:1px solid #293d50;min-height:38px}.gas-status.is-win{color:var(--lime)}.gas-status.is-error{color:#ecb09d}.gas-context-note{font-size:12px;margin:18px 0 0;padding:14px 17px;border-left:2px solid #e7b795;background:#b57f3d12;color:#d6b99f}.gas-claim{margin-top:24px}.gas-claim h3{font-size:24px}.gas-claim .eyebrow{font-family:var(--pixel);font-size:10px;line-height:1.8;letter-spacing:0}.gas-claim .button{font-size:12px}.gas-claim a{text-decoration:underline;text-underline-offset:4px;font-size:12px}
.gas-sidebar{min-width:0;padding-top:3px}.gas-reward{border-top:2px solid var(--lime);padding-top:23px}.gas-reward>.eyebrow{font-size:9px;color:#82a0b3;margin-bottom:15px}.gas-reward h3{font-size:36px;line-height:1.3;font-weight:500;letter-spacing:-1px;color:#e4ede9;margin-bottom:17px}.gas-reward h3 span{color:var(--lime)}.gas-reward>p:not(.eyebrow){font-size:13px;color:#9fb4bf;line-height:1.9;margin-bottom:20px}.gas-reward .gas-practice-note{font-size:11px!important;color:#7e9aad!important;padding:13px 0 22px;margin-bottom:0!important;border-bottom:1px solid #314658}.gas-scoreboard{margin-top:25px}.gas-scoreboard .winners-heading{align-items:center;margin-bottom:7px;gap:14px}.gas-scoreboard .eyebrow{font-size:9px;letter-spacing:1.2px;color:#6f8da2;margin-bottom:0}.gas-stat-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid #2a4051}.gas-stat-row>span{font-size:12px;color:#89a6b8}.gas-stat-row>strong{font-size:25px;line-height:1.2;font-weight:450;color:var(--ice);font-variant-numeric:tabular-nums}.gas-scoreboard .game-stats-note{font-size:10px;color:#6e8ea3;margin:15px 0 24px;line-height:1.8}.gas-scoreboard h4{font-size:12px;font-weight:600;color:#a7c0cb;margin:0 0 8px}.gas-log-note{font-size:10px;color:#607f95;line-height:1.8;margin:15px 0 0}.gas-scoreboard .recent-winners>li{padding-block:12px;font-size:11px}.gas-scoreboard .winner-time{font-size:9px}.gas-scoreboard .winner-kind{font-size:8px}.gas-scoreboard .recent-winners .winner-empty{font-size:11px;color:#7695a9;line-height:1.8}
@keyframes gas-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(2px)}}@keyframes gas-wind{from{transform:translateX(-9px)}to{transform:translateX(0)}}@keyframes gas-launch{0%{transform:translateX(0)}25%{transform:translateX(18px) translateY(-2px)}100%{transform:translateX(420px) translateY(-8px)}}@keyframes gas-helmet{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}55%{transform:translate(-12px,-17px) rotate(-8deg);transform-origin:195px 154px}100%{opacity:1;transform:translate(-35px,65px) rotate(12deg);transform-origin:195px 154px}}@keyframes gas-splash{0%{opacity:0}35%{opacity:1;transform:translateX(25px)}100%{opacity:0;transform:translateX(90px)}}
@media(max-width:1100px){.gas-layout{gap:40px;grid-template-columns:minmax(0,1.7fr) minmax(210px,1fr)}.gas-controls{align-items:flex-start;flex-direction:column;gap:19px}.gas-buttons{flex-direction:row;gap:20px}.gas-controls>div:first-child{max-width:100%}.gas-heading .gas-intro{max-width:350px;font-size:15px}.gas-heading .gas-joke{font-size:12px}.gas-scene-label{font-size:7px;left:15px;right:15px;top:14px}.gas-reward h3{font-size:31px}}
@media(max-width:760px){.gas-heading{gap:27px;align-items:flex-start}.gas-heading h2{font-size:28px}.gas-heading .gas-intro{max-width:400px}.gas-layout{grid-template-columns:1fr;gap:43px}.gas-topline{margin-bottom:15px}.gas-time{font-size:26px}.gas-controls{padding-top:23px;gap:17px}.gas-controls h3{font-size:19px}.gas-meter-wrap{padding:17px 19px 15px}.gas-sidebar{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px}.gas-scoreboard{margin-top:0}.gas-reward .gas-practice-note{border-bottom:0;padding-bottom:0}.gas-reward h3{font-size:29px}.gas-local-note{font-size:10px}}
@media(max-width:480px){.gas-heading h2{font-size:24px}.gas-heading .gas-intro{font-size:14px}.gas-heading .gas-joke{font-size:12px}.gas-sidebar{grid-template-columns:1fr;gap:30px}.gas-reward{padding-top:20px}.gas-reward h3{font-size:30px}.gas-reward .gas-practice-note{padding-bottom:20px;border-bottom:1px solid #314658}.gas-scene-label>span:first-child{font-size:6px;letter-spacing:.5px;max-width:150px}.gas-scene-label{left:13px;right:13px;top:11px;gap:8px}.gas-meter-wrap{padding:15px}.gas-meter-heading>span{font-size:8px;letter-spacing:1px}.gas-meter-heading strong{font-size:15px}.gas-meter-heading strong span{font-size:8px}.gas-controls h3{font-size:17px}.gas-buttons .button{font-size:10px;padding:12px 16px}.gas-status{font-size:11px}.gas-claim{padding:20px}.gas-claim .eyebrow{font-size:9px}.gas-claim h3{font-size:22px}.gas-claim>p{font-size:12px}.gas-log-note{font-size:10px}}
@media(prefers-reduced-motion:reduce){.gas-boat,.gas-wind,.gas-left-helmet,.gas-splash{animation:none!important;transition:none!important}.gas-sail,.gas-meter>span{transition:none!important}.gas-stage.is-success .gas-boat{transform:translateX(420px)}.gas-stage.is-success .gas-left-helmet{opacity:1;transform:translate(-35px,65px)}.gas-stage.is-success .gas-wind{opacity:0}.gas-stage.is-success .gas-splash{opacity:0}}
/* V12 scene: source PNGs remain unchanged; the original Viking uses an SVG silhouette clip. */
.gas-scene-v12 .gas-v30-viking{image-rendering:pixelated}.gas-scene-v12 .gas-opensea-mark{image-rendering:auto}.gas-scene-v12 .gas-opensea-flag{transform-origin:281px 56px}.gas-stage.is-qualifying .gas-scene-v12 .gas-opensea-flag{animation:gas-v12-flag .4s steps(2,end) infinite}.gas-stage.is-success .gas-scene-v12 .gas-left-helmet{transform-origin:223px 140px;animation:gas-v12-helmet .75s steps(7,end) .04s forwards}
@keyframes gas-v12-flag{0%,100%{transform:skewY(0)}50%{transform:skewY(-2deg)}}@keyframes gas-v12-helmet{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}50%{transform:translate(-12px,-16px) rotate(-8deg)}100%{opacity:1;transform:translate(-44px,78px) rotate(10deg)}}
@media(prefers-reduced-motion:reduce){.gas-scene-v12 .gas-opensea-flag{animation:none!important}.gas-stage.is-success .gas-scene-v12 .gas-left-helmet{animation:none!important;opacity:1;transform:translate(-44px,78px)}}
/* V14: the boat and near water share one swell; the outer vessel still launches on success. */
.gas-scene-v14 .gas-boat{animation:none}.gas-scene-v14 .gas-vessel-swell,.gas-scene-v14 .gas-wave-swell{animation:gas-v14-swell 3.2s steps(4,end) infinite;animation-delay:0s}.gas-scene-v14 .gas-wave-drift{animation:gas-v14-wave-drift 9.6s steps(8,end) infinite}.gas-stage.is-success .gas-scene-v14 .gas-boat{animation:gas-launch 1.1s cubic-bezier(.24,.04,.79,.71) forwards}
@keyframes gas-v14-swell{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes gas-v14-wave-drift{0%,100%{transform:translateX(-8px)}50%{transform:translateX(8px)}}
@media(prefers-reduced-motion:reduce){.gas-scene-v14 .gas-boat,.gas-scene-v14 .gas-vessel-swell,.gas-scene-v14 .gas-wave-swell,.gas-scene-v14 .gas-wave-drift{animation:none!important;transition:none!important}.gas-stage.is-success .gas-scene-v14 .gas-boat{transform:translateX(420px)}}
/* V15: a light reward card on mobile; desktop keeps the dark sidebar. */
@media(max-width:760px){.gas-reward{background:var(--paper);color:#17252e;border:1px solid #cdd4cb;border-top:2px solid #b1c784;padding:24px 22px}.gas-reward>.eyebrow{color:#58716c}.gas-reward h3{color:#17252e}.gas-reward h3 span{color:#356774}.gas-reward>p:not(.eyebrow){color:#5c6a6e}.gas-reward .gas-practice-note{color:#667773!important;border-bottom:0;padding-bottom:0}.gas-reward .mint-usd[data-mint-usd]{color:#356774;margin-inline-start:0}}
/* V15 actor: disjoint clips share the original PNG and return to its exact resting pose. */
.gas-scene-v15 .gas-actor-idle{animation:gas-v15-idle 6.4s steps(2,end) infinite}.gas-scene-v15 .gas-actor-head{animation:gas-v15-nod 9.6s steps(2,end) infinite}.gas-scene-v15 .gas-actor-axe{transform-box:view-box;transform-origin:193px 166px;animation:gas-v15-encourage 9.6s steps(4,end) infinite}
@keyframes gas-v15-idle{0%,34%,58%,100%{transform:translateX(0)}42%,50%{transform:translateX(1px)}}@keyframes gas-v15-nod{0%,29%,39%,69%,79%,100%{transform:translateY(0)}33%,35%,73%,75%{transform:translateY(1px)}}@keyframes gas-v15-encourage{0%,80%,97%,100%{transform:translateY(0) rotate(0)}84%{transform:translateY(-15px) rotate(-10deg)}87%{transform:translateY(-3px) rotate(-2deg)}91%{transform:translateY(-15px) rotate(-10deg)}95%{transform:translateY(-3px) rotate(-2deg)}}
.gas-stage.is-success .gas-scene-v15 .gas-actor-idle,.gas-stage.is-success .gas-scene-v15 .gas-actor-head,.gas-stage.is-success .gas-scene-v15 .gas-actor-axe{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.gas-scene-v15 .gas-actor-idle,.gas-scene-v15 .gas-actor-head,.gas-scene-v15 .gas-actor-axe{animation:none!important;transition:none!important;transform:none!important}}
/* V16: the shoulder lifts the whole arm; the wrist keeps its original axe upright. */
.gas-scene-v16 .gas-actor-idle{animation:gas-v15-idle 6.4s steps(2,end) infinite}.gas-scene-v16 .gas-actor-head{animation:gas-v15-nod 9.6s steps(2,end) infinite}.gas-scene-v16 .gas-actor-arm{transform-box:view-box;transform-origin:209.5px 164.5px;animation:gas-v16-shoulder 9.6s steps(4,end) infinite}.gas-scene-v16 .gas-actor-axe{transform-box:view-box;transform-origin:194.5px 166px;animation:gas-v16-wrist 9.6s steps(4,end) infinite}
@keyframes gas-v16-shoulder{0%,80%,97%,100%{transform:rotate(0)}84%,91%{transform:rotate(24deg)}87%,95%{transform:rotate(4deg)}}@keyframes gas-v16-wrist{0%,80%,97%,100%{transform:rotate(0)}84%,91%{transform:rotate(-24deg)}87%,95%{transform:rotate(-4deg)}}
.gas-stage.is-success .gas-scene-v16 .gas-actor-idle,.gas-stage.is-success .gas-scene-v16 .gas-actor-head,.gas-stage.is-success .gas-scene-v16 .gas-actor-arm,.gas-stage.is-success .gas-scene-v16 .gas-actor-axe{animation:none;transform:none}
@media(prefers-reduced-motion:reduce){.gas-scene-v16 .gas-actor-idle,.gas-scene-v16 .gas-actor-head,.gas-scene-v16 .gas-actor-arm,.gas-scene-v16 .gas-actor-axe{animation:none!important;transition:none!important;transform:none!important}}
/* The two single-use bot checks stay beside their own start/claim controls. */
.gas-verification{margin:0 0 18px;padding:13px 15px;border:1px solid #314b60;background:#142637;min-width:0}.gas-verification-note{margin:0 0 8px;font-size:11px;line-height:1.7;color:#9cb8c6}.gas-turnstile{max-width:100%;min-width:0}.gas-verification-retry{background:none;border:0;border-bottom:1px solid #658698;color:#b8ced7;font-size:11px;padding:3px 0;margin-top:10px}.gas-claim form .gas-verification{grid-column:1/-1;flex-basis:100%;margin:0 0 15px}.gas-verification[hidden],.gas-verification-retry[hidden]{display:none}
/* V19: the sea moves continuously. Every drawn cell keeps its square geometry. */
.gas-scene-v19{aspect-ratio:80/47;width:var(--gas-scene-grid-width,100%);max-width:100%;margin-inline:auto;image-rendering:pixelated}
.gas-scene-v19 image{image-rendering:pixelated}
.gas-scene-v19 .gas-boat{animation:none}
.gas-scene-v19 .gas-vessel-swell,.gas-scene-v19 .gas-wave-swell{animation:gas-v19-swell 4s ease-in-out infinite;animation-delay:0s}
.gas-scene-v19 .gas-wave-drift{animation:gas-v19-drift 12s ease-in-out infinite}
.gas-scene-v19 .gas-sail,.gas-scene-v19 .gas-opensea-flag{transform:none;animation:none;transition:none}
.gas-stage.is-qualifying .gas-scene-v19 .gas-opensea-flag{animation:none;transform:none}
.gas-scene-v19 .gas-actor-idle{animation:gas-v19-idle 6.4s ease-in-out infinite}
.gas-scene-v19 .gas-actor-rest{opacity:1;animation:gas-v19-rest 9.6s steps(1,end) infinite}
.gas-scene-v19 .gas-actor-cheer{opacity:0;animation:gas-v19-cheer 9.6s steps(1,end) infinite}
.gas-stage.is-success .gas-scene-v19 .gas-boat{animation:gas-launch 1.1s cubic-bezier(.24,.04,.79,.71) forwards}
.gas-stage.is-success .gas-scene-v19 .gas-left-helmet{animation:gas-v19-helmet .75s ease-in .04s forwards;transform-origin:initial}
.gas-stage.is-success .gas-scene-v19 .gas-actor-idle,.gas-stage.is-success .gas-scene-v19 .gas-actor-rest,.gas-stage.is-success .gas-scene-v19 .gas-actor-cheer{animation:none;transform:none}
.gas-stage.is-success .gas-scene-v19 .gas-actor-rest{opacity:1}
.gas-stage.is-success .gas-scene-v19 .gas-actor-cheer{opacity:0}
/* No invisible animation work while the scene is out of view or the tab is hidden. */
.gas-stage.is-motion-paused .gas-scene *{animation-play-state:paused!important}
@keyframes gas-v19-swell{0%,100%{transform:translateY(0)}50%{transform:translateY(3px)}}
@keyframes gas-v19-drift{0%,100%{transform:translateX(-6px)}50%{transform:translateX(6px)}}
@keyframes gas-v19-idle{0%,34%,58%,100%{transform:translateX(0)}42%,50%{transform:translateX(3px)}}
@keyframes gas-v19-rest{0%,80%,87%,90%,95%,100%{opacity:1}81%,86%,91%,94%{opacity:0}}
@keyframes gas-v19-cheer{0%,80%,87%,90%,95%,100%{opacity:0}81%,86%,91%,94%{opacity:1}}
@keyframes gas-v19-helmet{0%{opacity:0;transform:translate(0,0)}15%{opacity:1}50%{transform:translate(-12px,-15px)}100%{opacity:1;transform:translate(-45px,78px)}}
@media(prefers-reduced-motion:reduce){.gas-scene-v19 .gas-boat,.gas-scene-v19 .gas-vessel-swell,.gas-scene-v19 .gas-wave-swell,.gas-scene-v19 .gas-wave-drift,.gas-scene-v19 .gas-actor-idle,.gas-scene-v19 .gas-actor-rest,.gas-scene-v19 .gas-actor-cheer{animation:none!important;transition:none!important;transform:none!important}.gas-stage.is-success .gas-scene-v19 .gas-boat{transform:translateX(420px)!important}.gas-stage.is-success .gas-scene-v19 .gas-left-helmet{animation:none!important;opacity:1;transform:translate(-45px,78px)}}
/* V20: the challenge is the first thing to read below the game title. */
.gas-heading{display:block}
.gas-heading .gas-intro{max-width:780px;margin-top:18px}
.gas-intro .gas-challenge-copy{font-family:var(--body);font-size:20px;line-height:1.55;font-weight:550;color:var(--lime);margin:0 0 10px;text-wrap:pretty}
.gas-intro .gas-attempt-time{font-size:14px;line-height:1.7;color:#a6bbc6;margin:0}
.gas-action-instructions[hidden]{display:none}
.gas-controls{padding-top:22px}
@media(max-width:760px){.gas-heading .gas-intro{max-width:none;margin-top:15px}.gas-intro .gas-challenge-copy{font-size:20px}.gas-controls{padding-top:22px}}
