@font-face{font-family:Arcade;src:url('assets/display.ttf') format('truetype');font-weight:800;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#081f1d;color:#f3e6c3;font:14px/1.65 Arial,'PingFang SC','Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:3px solid #fff0b8;outline-offset:4px}.wrap{max-width:1270px;padding:0 35px;margin:auto}.topbar{background:#071c1b;border-bottom:1px solid #d5bf8135}.nav{display:flex;align-items:center;gap:28px;min-height:91px}.brand{display:flex;align-items:center;gap:13px;margin-right:auto}.brand img{height:61px;width:61px;border:1px solid #d4be7e3b}.brand strong{font:800 23px/1 Arcade,Impact,sans-serif;letter-spacing:1.2px}.brand small{display:block;font-size:8px;letter-spacing:2px;color:#8da99a;margin-top:8px}.nav-tools{display:flex;align-items:center;gap:17px}.language{display:flex;gap:4px}.language button{border:0;background:none;padding:7px;color:#85a294;font-size:11px;white-space:nowrap}.language button[aria-pressed=true]{color:#f5dfa7;border-bottom:2px solid #d9bc75}.music{display:flex;gap:7px;align-items:center;background:none;border:0;font-size:9px;letter-spacing:1px;font-weight:bold;padding:6px 0;white-space:nowrap}.music[aria-pressed=false]{color:#779388}.music svg{width:15px;height:15px}.fb{display:grid;place-items:center;border:1px solid #b6c2a66b;width:33px;height:33px}.fb svg{fill:currentColor;width:16px;height:16px}.support{display:flex;align-items:center;gap:8px;background:#f39b70;color:#193a30;font-size:11px;font-weight:bold;padding:10px 14px;box-shadow:3px 3px 0 #704e36}.support svg{width:18px;height:18px}.eyebrow{text-transform:uppercase;color:#e0c587;font-size:10px;font-weight:bold;letter-spacing:3px;display:flex;align-items:center;gap:12px}.eyebrow:before,.eyebrow:after{content:'';width:23px;height:1px;background:#a48d57}.hero{position:relative;min-height:645px;display:flex;align-items:center;isolation:isolate;overflow:hidden;border-bottom:1px solid #d5bf814d}.hero-art{position:absolute;inset:0;z-index:-3;object-fit:cover;object-position:center 55%;height:100%;width:100%}.hero:after{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#05201deb 0%,#05201daa 30%,#05201d10 73%),linear-gradient(0deg,#081f1d,transparent 28%)}.hero .wrap{width:100%}.hero-copy{width:49%;padding:50px 0 70px}.hero h1{font:800 clamp(90px,9.2vw,137px)/.79 Arcade,Impact,sans-serif;letter-spacing:1px;margin:30px 0 25px;color:#ffe4a1;text-shadow:4px 5px 0 #182e25}.hero h1 span{display:block}.hero .ch-title{font-size:16px;font-weight:bold;letter-spacing:8px;color:#d1be87;margin-bottom:24px}.hero h2{font:800 27px/1.1 Arcade,Impact,sans-serif;letter-spacing:.6px;margin:0 0 13px}.hero p{max-width:350px;color:#c0cdb8;font-size:14px;line-height:1.8;margin:0}.actions{display:flex;gap:26px;align-items:center;margin-top:27px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:14px 26px;background:#efd397;color:#173d32;border:1px solid #ffe9b7;box-shadow:4px 4px 0 #705b36;font:800 22px/1.15 Arcade,Impact,sans-serif;letter-spacing:.7px;min-height:54px;transition:transform .15s,background .15s}.button:hover{background:#ffe9b7;transform:translateY(-2px)}.button.secondary{background:#12392f;color:#e7d6a2;border:1px solid #91a98b;box-shadow:3px 3px 0 #061b18;font-size:17px}.text-link{font-weight:bold;font-size:11px;color:#d8d2ab;border-bottom:1px solid #8a9b7d;padding:6px 0}.hero-note{position:absolute;bottom:25px;right:36px;color:#d9ce9e;font:800 14px Arcade,sans-serif;letter-spacing:3px}.hero-stamp{position:absolute;right:38px;top:30px;border:1px solid #edd8a177;display:flex;align-items:center;gap:10px;padding:9px 13px;font-size:9px;letter-spacing:2px;color:#ffe9b1}.hero-stamp b{font:800 32px Arcade,sans-serif}.ribbon{display:flex;justify-content:center;gap:36px;background:#10342c;border-bottom:1px solid #d5bf8135;padding:17px 20px;color:#b9c7a7;font-weight:bold;font-size:10px;letter-spacing:1px}.ribbon span:before{content:'◆';font-size:7px;color:#d3b977;margin-right:11px}.section{padding-top:65px;padding-bottom:65px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:28px}.section-head h2,.handbook h2{font:800 43px/1.05 Arcade,Impact,sans-serif;margin:12px 0 0;letter-spacing:.5px}.section-head p{font-size:12px;color:#93ac98;max-width:330px;margin:0}.handbook{background:#e8dcbc;color:#173d30;padding:48px 0 51px}.handbook .eyebrow{color:#806b3b}.rules{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:30px}.rule{border-top:1px solid #52644755;padding-top:20px;position:relative}.rule h3{font:800 28px/1 Arcade,sans-serif;margin:16px 0 10px}.rule p{color:#52644c;font-size:12px;margin:0;max-width:310px}.rule-no{font:800 18px Arcade,sans-serif;float:right;color:#8d764b}.demo-balls{display:flex;align-items:center;gap:5px;height:37px}.ball{width:29px;height:29px;border:2px solid #174b3e;border-radius:50%;background:radial-gradient(circle at 30% 26%,#bcffe2,#35bfa5 55%,#176759);display:inline-grid;place-items:center;color:#effedb;font-size:17px;box-shadow:0 2px 0 #173d3033}.ball.red{background:radial-gradient(circle at 30% 26%,#ffc5ad,#e65950 58%,#863243)}.ball.gold{background:radial-gradient(circle at 30% 26%,#fff4b6,#edbd50 58%,#8b662b)}.demo-balls .plus{margin:0 5px;font-size:18px;font-weight:bold;color:#8d764b}.rule-seal{height:37px;display:flex;align-items:center;gap:11px}.seal-icon{display:grid;place-items:center;width:36px;height:36px;background:#2d5945;color:#f0d18c;border:3px double #e5c783;border-radius:50%;font-size:21px}.rule-seal .mini-line{height:5px;width:90px;background:linear-gradient(90deg,#bd8d4e,#496f55)}.stages{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.stage-card{display:block;position:relative;overflow:hidden;border:1px solid #83927359;background:#13392f;transition:transform .15s,border-color .15s}.stage-card:hover{transform:translateY(-4px);border-color:#dfc885}.stage-scene{height:110px;background:linear-gradient(160deg,#5c7e54,#183f34);position:relative;overflow:hidden}.stage-scene:before{content:'';position:absolute;left:33%;top:20px;width:47%;height:96px;border:18px solid #89907188;border-bottom:0;border-radius:65px 65px 0 0;box-shadow:0 0 0 3px #183c2c}.stage-scene:after{content:'';position:absolute;left:-10%;bottom:-20px;width:90%;height:35px;border:7px solid #c0b17a66;border-radius:50%;transform:rotate(-12deg)}.stage-card:nth-child(2) .stage-scene{background:linear-gradient(160deg,#c0a669,#365844)}.stage-card:nth-child(3) .stage-scene{background:linear-gradient(160deg,#4b9a78,#14463d)}.stage-card:nth-child(4) .stage-scene{background:linear-gradient(160deg,#5a657f,#163b35)}.stage-card:nth-child(5) .stage-scene{background:linear-gradient(160deg,#8d8058,#26483c)}.stage-card:nth-child(6) .stage-scene{background:linear-gradient(160deg,#a77d53,#122f29)}.stage-number{position:absolute;left:16px;top:12px;font:800 46px/1 Arcade,sans-serif;color:#f2e0ad88;z-index:1}.stage-beads{position:absolute;right:18px;bottom:12px;display:flex;gap:1px;z-index:1}.stage-beads i{width:16px;height:16px;border:1px solid #073d30;border-radius:50%;background:#e7b954}.stage-beads i:nth-child(2){background:#dc7660}.stage-beads i:nth-child(3){background:#54bea8}.stage-info{padding:17px 19px}.stage-info h3{font:800 26px/1 Arcade,sans-serif;letter-spacing:.6px;margin:0 0 9px}.stage-info small{color:#90ab97;font-size:10px;letter-spacing:.6px}.stage-info .arrow{float:right;color:#ebcd8a}.daily-banner{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:29px 31px;margin-bottom:58px;background:#153c30;border:1px solid #ad9a6266;position:relative}.daily-banner:before{content:'◆';position:absolute;top:-14px;left:29px;color:#e2c586;background:#081f1d;padding:0 10px}.daily-banner h3{font:800 34px/1 Arcade,sans-serif;margin:0 0 10px}.daily-banner p{font-size:12px;color:#99b09a;margin:0}.footer{border-top:1px solid #cdb77732;padding:25px 0;display:flex;justify-content:space-between;gap:20px;color:#718e7d;font-size:10px}.footer-links{display:flex;gap:22px}.footer a{color:#c5bd91}.game-wrap{max-width:860px}.game-heading{display:flex;align-items:center;justify-content:space-between;padding:17px 0 19px}.game-heading h1{font:800 34px/.9 Arcade,sans-serif;letter-spacing:1px;margin:0 0 7px;color:#f6d797}.game-heading small{color:#8ba88f;font-size:9px;letter-spacing:1.7px}.back{font-size:10px;border-bottom:1px solid #67856e;color:#b1bda1}.cabinet{border:1px solid #ad976370;background:#10372c;box-shadow:0 15px 50px #0004}.hud{display:grid;grid-template-columns:1.3fr 1fr 1fr auto;align-items:center;gap:18px;padding:12px 19px;border-bottom:2px solid #bba16b;background:#133c30}.hud small{display:block;font-size:7px;letter-spacing:1.8px;font-weight:bold;color:#84a88e}.hud strong{font:800 24px/1.1 Arcade,sans-serif;color:#f3dda1;letter-spacing:.7px}.pause{width:32px;height:32px;border:1px solid #93a78266;background:#153d31;font-size:15px}.threat{position:relative;height:3px;background:#314c35}.threat i{height:3px;display:block;width:0;background:#d7b674;transition:width .1s}.threat.danger i{background:#ee8064}.viewport{position:relative;overflow:hidden;touch-action:auto;background:#214a3b;user-select:none}.viewport canvas{display:block;width:100%;aspect-ratio:800/650;touch-action:none}.seal-status{position:absolute;left:14px;bottom:12px;font:800 11px Arcade,sans-serif;letter-spacing:1.2px;color:#c8d2a8;pointer-events:none}.seal-status.danger{color:#ffc59d}.toast{position:absolute;left:50%;top:18px;transform:translateX(-50%);pointer-events:none;white-space:nowrap;color:#25452e;background:#f1d89e;font:800 23px/1 Arcade,sans-serif;padding:8px 15px;box-shadow:3px 3px 0 #30442c;opacity:0;transition:opacity .15s}.toast.show{opacity:1}.cancel-zone{position:absolute;bottom:0;left:0;right:0;height:32px;text-align:center;background:#162f27e6;font-size:10px;line-height:32px;color:#f1cc96;pointer-events:none;display:none}.viewport.aiming .cancel-zone{display:block}.overlay{position:absolute;inset:0;background:#041e1abf;display:flex;align-items:center;justify-content:center;padding:22px;touch-action:pan-y;z-index:2}.overlay[hidden]{display:none}.dialog{background:#0d342a;border:1px solid #c5ac6f;max-width:430px;width:100%;padding:27px;box-shadow:7px 7px 0 #03181388;max-height:calc(100% - 4px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y}.dialog .eyebrow{font-size:8px;letter-spacing:2px}.dialog h2{font:800 43px/.98 Arcade,sans-serif;letter-spacing:.5px;margin:17px 0 13px;color:#ffe0a0}.dialog p{font-size:12px;line-height:1.75;color:#b6c6a8;margin:11px 0}.dialog .button{width:100%;margin-top:13px;min-height:48px;font-size:21px}.dialog .button.secondary{font-size:15px;min-height:37px;margin-top:10px}.dialog .keyhint{font-size:9px;color:#819f86}.lesson{display:flex;align-items:center;justify-content:center;gap:7px;padding:12px 0 4px}.lesson .ball{height:32px;width:32px}.lesson .arrow{color:#e1c182;font-size:21px;margin:0 7px}.lesson .spark{font-size:27px;color:#ffdc88}.result-row{display:flex;justify-content:space-between;border-top:1px solid #4e69514d;padding:8px 0;font-size:12px;color:#bdd0ac}.result-row b{color:#f2d696}.result-seal{float:right;font-size:34px;color:#d4ca7b;margin-left:10px}.game-controls{display:flex;align-items:stretch;gap:10px;padding:12px 15px 15px;background:#0f352a}.control{border:1px solid #c7b778;background:#224c39;box-shadow:0 3px 0 #051e18;padding:8px 12px;font:800 20px/1.05 Arcade,sans-serif;letter-spacing:.5px;min-height:49px;color:#e2d6a6}.control small{display:block;font:8px Arial,sans-serif;letter-spacing:.7px;color:#a5b58e;margin-top:5px}.control.fire{flex:1;background:#efd195;color:#214831;box-shadow:0 3px 0 #8b7045;font-size:24px}.control.fire small{color:#646746}.control.swap{min-width:125px}.control.blast{min-width:140px}.control.blast[aria-pressed=true]{background:#f1cc7f;color:#173d2c}.control.blast[aria-pressed=true] small{color:#4e673d}.ammo-dot{display:inline-grid;place-items:center;width:17px;height:17px;border-radius:50%;border:1px solid #e8e0b8;margin-right:6px;color:#fff6d5;font:13px Arial,sans-serif;vertical-align:1px;background:#36c3ae}.utility{display:flex;justify-content:space-between;gap:18px;padding:14px 1px;font-size:10px;color:#8aa790}.utility-right{display:flex;gap:14px}.utility button{font-size:9px;border:0;border-bottom:1px solid #597d61;background:none;color:#b8c8a0;padding:0 0 2px}.play-note{font-size:11px;line-height:1.8;color:#8fad92;margin:8px 0 27px}.stage-select{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 30px}.stage-select button{flex:1;min-width:103px;background:#173d2f;border:1px solid #66805b66;padding:11px 12px;text-align:left;font:800 17px/1.1 Arcade,sans-serif;letter-spacing:.3px}.stage-select button.current{border-color:#d4b879;color:#ffe1a5}.stage-select small{font:8px Arial,sans-serif;display:block;color:#81a187;margin-top:7px}.cabinet:fullscreen{background:#061d19;width:100vw;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.cabinet:fullscreen .viewport{flex:1;min-height:0;width:100%;display:flex;justify-content:center}.cabinet:fullscreen canvas{width:auto;height:100%;max-width:100%;object-fit:contain}.cabinet:fullscreen .hud,.cabinet:fullscreen .game-controls{width:100%;max-width:1000px;flex-shrink:0}.cabinet:fullscreen .threat{width:100%;max-width:1000px}.noscript{background:#efd195;color:#1b452f;padding:30px}
@media(max-width:900px){.wrap{padding:0 23px}.nav{gap:14px}.nav-tools{gap:12px}.brand strong{font-size:20px}.brand small{font-size:7px}.support{font-size:10px;padding:9px 11px}.music span{display:none}.hero-copy{width:58%}.hero-art{object-position:60% center}.hero h1{font-size:118px}.hero p{max-width:310px}.rules{gap:27px}.stage-info h3{font-size:23px}.game-wrap{max-width:820px}.game-heading{padding-top:15px;padding-bottom:16px}.game-heading h1{font-size:31px}.footer{font-size:9px}}
@media(max-width:600px){.wrap{padding-left:18px;padding-right:18px}.nav{display:grid;grid-template-columns:1fr auto;min-height:0;gap:11px;padding-top:12px;padding-bottom:13px}.brand img{height:48px;width:48px}.brand{gap:10px}.brand strong{font-size:20px}.brand small{font-size:7px;letter-spacing:1.6px;margin-top:6px}.nav-tools{grid-column:1/-1;display:grid;grid-template-columns:85px 70px 31px minmax(0,1fr);gap:10px;align-items:center}.language{gap:1px}.language button{font-size:10px;padding:6px 4px}.music span{display:inline}.music{font-size:8px;gap:5px}.music svg{width:13px}.fb{width:30px;height:30px}.support{font-size:10px;padding:8px 7px;justify-content:center;box-shadow:2px 2px 0 #704e36;min-width:0;gap:5px}.support svg{width:15px;min-width:15px}.hero{min-height:735px;align-items:end}.hero-art{object-position:64% center}.hero:after{background:linear-gradient(0deg,#081f1d 0%,#071f1dd9 35%,#071f1d48 66%,#071f1d22)}.hero-copy{width:100%;padding:260px 0 43px}.hero h1{font-size:106px;margin:24px 0 20px;line-height:.78}.hero h1 span{display:inline}.hero h1 span+span:before{content:' '}.hero .ch-title{font-size:12px;letter-spacing:6px;margin-bottom:21px}.hero h2{font-size:25px}.hero p{font-size:12px;max-width:320px}.hero .eyebrow{font-size:8px;letter-spacing:2px}.hero-stamp{right:18px;top:18px;padding:6px 10px;font-size:8px}.hero-stamp b{font-size:26px}.hero-note{display:none}.actions{gap:24px;margin-top:23px}.button{min-height:49px;padding:13px 22px;font-size:21px}.ribbon{gap:13px;font-size:8px;letter-spacing:.5px;flex-wrap:wrap;padding:14px 9px}.ribbon span:before{margin-right:6px}.section{padding-top:44px;padding-bottom:44px}.section-head{display:block;margin-bottom:24px}.section-head h2,.handbook h2{font-size:34px}.section-head p{margin-top:16px;font-size:11px}.handbook{padding:35px 0}.rules{display:block;margin-top:23px}.rule{padding-top:17px;margin-top:22px}.rule h3{font-size:26px;margin-top:12px}.rule p{max-width:none;font-size:12px}.rule-no{font-size:19px}.stages{grid-template-columns:repeat(2,1fr);gap:10px}.stage-scene{height:86px}.stage-number{font-size:36px;left:11px}.stage-info{padding:14px 11px}.stage-info h3{font-size:22px;max-width:120px;min-height:43px;line-height:1.03;margin-bottom:8px}.stage-info small{font-size:8px;letter-spacing:0}.stage-beads{right:10px;bottom:8px}.stage-beads i{width:12px;height:12px}.daily-banner{display:block;margin-bottom:35px;padding:23px 21px}.daily-banner h3{font-size:31px}.daily-banner p{font-size:11px}.daily-banner .button{margin-top:21px}.footer{display:block;padding:23px 0;font-size:9px}.footer-links{margin-top:12px}.game-wrap{padding-left:9px;padding-right:9px}.game-heading{padding:18px 4px 15px}.game-heading h1{font-size:29px}.game-heading small{font-size:7px;letter-spacing:1px}.back{font-size:8px}.hud{padding:10px 12px;gap:9px}.hud small{font-size:7px;letter-spacing:1px}.hud strong{font-size:21px}.pause{width:29px;height:29px}.game-controls{gap:8px;padding:10px 9px 13px}.control{font-size:18px;padding:7px 8px;min-height:47px}.control.fire{font-size:22px}.control small{font-size:6px;letter-spacing:.3px}.control.swap{min-width:82px}.control.blast{min-width:94px}.ammo-dot{width:13px;height:13px;font-size:10px;margin-right:3px}.utility{padding:13px 3px;font-size:9px;gap:6px}.utility-right{gap:10px}.utility button{font-size:8px}.play-note{margin:7px 5px 25px;font-size:10px}.game-wrap .section-head{margin-left:4px}.game-wrap .section-head h2{font-size:28px}.stage-select{gap:6px;margin:14px 4px 25px}.stage-select button{min-width:86px;padding:10px;font-size:15px}.stage-select small{font-size:7px}.overlay{padding:13px}.dialog{padding:18px;max-height:calc(100% - 3px)}.dialog h2{font-size:33px;margin:12px 0 10px}.dialog .eyebrow{font-size:7px;letter-spacing:1px}.dialog p{font-size:10px;line-height:1.65;margin:9px 0}.dialog .button{font-size:18px;min-height:42px;margin-top:10px}.dialog .button.secondary{font-size:13px;min-height:32px;margin-top:8px}.dialog .keyhint{display:none}.dialog .lesson{padding:3px 0 0;height:30px}.lesson .ball{width:24px;height:24px;font-size:14px}.lesson .spark{font-size:23px}.dialog[data-kind=intro] p.intro-extra{display:none}.result-row{padding:5px 0;font-size:10px}.toast{font-size:18px;top:12px;padding:7px 12px}.seal-status{left:10px;bottom:9px;font-size:9px}.cancel-zone{font-size:8px}}
@media(max-width:360px){.nav-tools{grid-template-columns:80px 55px 28px minmax(0,1fr);gap:7px}.language button{font-size:9px;padding:6px 3px}.music{font-size:7px;gap:3px}.music svg{width:11px}.fb{width:28px;height:28px}.support{font-size:9px;padding:7px 5px}.support svg{min-width:12px;width:12px}.hero h1{font-size:88px}.hero h1 span{display:block}.hero h1 span+span:before{content:''}.hero-copy{padding-top:220px}.hero{min-height:760px}.control.swap{min-width:74px}.control.blast{min-width:86px}.control{font-size:16px;padding:7px 6px}.control.fire{font-size:21px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto;transition:none!important}}
@media(min-width:601px){.game-wrap{max-width:750px}.game-heading{padding:15px 0 13px}.game-heading h1{font-size:31px}}
@media(max-width:600px){.dialog[data-kind=intro]{padding:15px}.dialog[data-kind=intro] .eyebrow{display:none}.dialog[data-kind=intro] h2{font-size:29px;margin:5px 0 8px}.dialog[data-kind=intro] .lesson{height:25px}.dialog[data-kind=intro] p{margin:7px 0}.dialog[data-kind=intro] .button{margin-top:8px}}

@media(max-width:600px){.dialog[data-kind=intro][data-resume=true] .lesson,.dialog[data-kind=intro][data-resume=true] p{display:none}.dialog .button{padding:10px 18px}.dialog .button.secondary{padding:8px 14px}}
