@font-face{font-family:ImpactFallback;src:local('Impact')}:root{font-family:Arial,Helvetica,sans-serif;color:#fff7e7;background:#101a2c;color-scheme:dark;--gold:#ffda69;--red:#ed6253;--ink:#111d31;--cyan:#88e4ed}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 40%,#314658 0,#152238 50%,#0b1423 100%)}button{font:inherit;color:inherit;cursor:pointer;border:0;touch-action:manipulation}button:disabled{cursor:wait;opacity:.7}button:focus-visible{outline:3px solid #90eaff;outline-offset:4px}button:active{transform:translateY(2px) scale(.98)}[hidden]{display:none!important}h1,h2,p{margin-top:0}h1,h2{font-family:ImpactFallback,Impact,'Arial Narrow',Arial,sans-serif;font-style:italic;font-weight:950;letter-spacing:-2.5px}
#cabinet{position:relative;width:min(100%,520px);height:100%;max-height:1120px;overflow:hidden;isolation:isolate;box-shadow:0 0 110px #0009;background:#263e52;border-inline:1px solid #ffffff1f;touch-action:none;user-select:none;-webkit-user-select:none}#game{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.vignette{position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(#091d388c,transparent 35%,transparent 65%,#07182eea)}
#topbar{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:calc(20px + env(safe-area-inset-top)) 24px 12px;z-index:6}.brand{display:flex;align-items:center;gap:8px;font-size:11px;line-height:.96;font-weight:950}.brand>b{font-size:25px;color:var(--gold);font-style:italic;letter-spacing:-2px}.icon-button{display:inline-flex;align-items:center;justify-content:center;background:#112742d9;border:1px solid #c8e8ff38;border-radius:8px;min-height:37px;min-width:38px;padding:0 10px;gap:7px}.sound>span{font-size:22px;color:var(--gold)}.sound>b{font-size:10px;letter-spacing:.7px}.sound.off>span{opacity:.4}.sound.off>span:after{content:'/';position:absolute;transform:translateX(-10px);color:#fc8475}
.screen{position:absolute;inset:0;z-index:4}.menu{pointer-events:none}.menu button{pointer-events:auto}.menu-heading{position:absolute;top:max(13.2%,96px);left:0;right:0;text-align:center}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:900;color:var(--gold);margin:0 0 15px}h1{font-size:clamp(65px,10.8vh,94px);line-height:.82;margin:0;transform:rotate(-4deg);text-shadow:3px 5px #14273e,5px 8px #14273e,0 8px 22px #00192a7f}h1 em{font-style:inherit;color:var(--gold)}.tagline{font-size:14px;font-weight:700;letter-spacing:.25px;margin-top:23px;color:#fff8e1;text-shadow:0 2px 5px #071b32}.menu-bottom{position:absolute;bottom:max(18px,env(safe-area-inset-bottom));left:7%;right:7%;text-align:center}.highscore{display:inline-flex;align-items:center;gap:12px;padding:10px 13px;border:1px solid #d9e8f732;border-radius:7px;background:#10243ae3;margin-bottom:14px}.highscore span{font-size:10px;font-weight:800;letter-spacing:.6px;color:#c7d5df}.highscore b{color:var(--gold);font-size:17px;letter-spacing:1px;font-variant-numeric:tabular-nums}.play-button{height:64px;border-radius:9px;width:100%;display:flex;justify-content:center;align-items:center;gap:22px;background:linear-gradient(#ffe087,#ffd064);box-shadow:0 5px 0 #a7742e,0 12px 28px #0005;color:#18263b;font-size:22px;font-weight:950;letter-spacing:1px}.play-button:active{box-shadow:0 2px 0 #a7742e}.play-button>span:last-child:not(:first-child){font-size:20px}.gesture-guide{display:flex;justify-content:space-between;margin-top:25px;gap:8px}.gesture-guide>div{flex:1}.gesture-guide strong{display:block;color:#ffe19a;font-size:12px;font-weight:900;letter-spacing:1.5px}.gesture-guide small{display:block;color:#adc0cf;font-size:10px;margin-top:5px;white-space:nowrap}.menu-footer{font-size:9px;color:#98b1c58a;letter-spacing:1.7px;font-weight:800;margin:19px 0 0}
.hud{position:absolute;left:0;right:0;top:0;z-index:5;padding:calc(16px + env(safe-area-inset-top)) 18px 20px;background:linear-gradient(#09182df5,#102a42d9 70%,transparent);pointer-events:none}.hud-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px}.hud-top>div{display:flex;gap:7px;pointer-events:auto}.game-name{font-size:12px;font-weight:900;letter-spacing:1.3px;color:#d8e0e6}.game-name b{color:var(--gold)}#pause{font-size:22px;line-height:1}.hud-main{display:flex;justify-content:space-between;align-items:center;gap:15px}.score-box>span{font-size:10px;letter-spacing:2px;font-weight:800;color:#a9bfd0}.score-box>strong{display:block;font-size:31px;font-weight:900;line-height:1.1;letter-spacing:.7px;color:var(--gold);font-variant-numeric:tabular-nums}.combo{font-size:9px;letter-spacing:.6px;color:#b9dce5;font-weight:900;margin-top:5px;min-height:17px}.combo.active{font-size:14px;font-style:italic;color:#ffd989}.health-box{width:125px}.health-label{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px}.health-label>span{font-size:9px;letter-spacing:1px;color:#c0d0db;font-weight:800}.health-label>b{font-size:12px;color:#fff5df}.hearts{display:grid;grid-template-columns:repeat(5,1fr);gap:3px 5px}.hearts svg{width:20px;height:18px;fill:#f87567;filter:drop-shadow(0 1px 1px #070d18);transition:opacity .16s,transform .16s}.hearts svg.lost{fill:#7891a1;opacity:.24;transform:scale(.8)}.stage-info{display:flex;gap:9px;align-items:center;margin-top:10px}.stage-info>span{font-size:11px;color:#122539;background:var(--gold);font-weight:900;padding:3px 6px;border-radius:3px}.stage-info>b{font-size:11px;letter-spacing:1px;font-weight:900;color:#e0ebeb}.stage-track{display:flex;gap:4px;margin-top:7px}.stage-track>i{height:3px;flex:1;background:#a6b9c52e;border-radius:2px}.stage-track>i.done{background:#a5ddcd}.stage-track>i.current{background:var(--gold)}.boss-hud{position:absolute;z-index:4;left:20px;right:20px;top:calc(187px + env(safe-area-inset-top))}.boss-hud>div:first-child{display:flex;justify-content:space-between;font-size:11px;font-weight:900;letter-spacing:.7px;margin-bottom:6px}.boss-hud b{color:#ffbb8e;font-size:10px;white-space:nowrap}.boss-track{height:10px;border-radius:5px;overflow:hidden;background:#071628cc;border:1px solid #b2c7d540}.boss-track>div{height:100%;width:100%;background:linear-gradient(90deg,#d53545,#ff8062);transition:width .12s}.boss-hud p{font-size:9px;text-align:right;margin:5px 0;color:#ffdac2;font-weight:900;letter-spacing:.6px;text-shadow:0 1px #0d1526}
.boss-intro{position:absolute;top:29%;left:14px;right:14px;text-align:center;z-index:4;transform:rotate(-3deg);pointer-events:none}.boss-intro p{font-size:12px;letter-spacing:2px;color:#ff9581;background:#12263dea;padding:10px;font-weight:900}.boss-intro h2{font-size:42px;line-height:.94;text-shadow:3px 4px #14243d;color:#fff0d4;margin-bottom:15px}.boss-intro span{background:#152940ed;padding:7px;color:var(--gold);font-size:10px;font-weight:900;letter-spacing:1px}.stage-clear{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#102b4399;backdrop-filter:blur(4px);z-index:5;pointer-events:none}.stage-clear>span{font-size:12px;letter-spacing:2px;color:var(--gold);font-weight:900}.stage-clear h2{font-size:66px;line-height:.9;transform:rotate(-5deg);text-shadow:4px 4px #122039;margin:27px 0}.stage-clear em{color:var(--gold)}.stage-clear p{font-size:16px;letter-spacing:1px;font-weight:900}.ascent{display:flex;gap:7px;width:80%;margin:16px 0}.ascent i{height:8px;flex:1;background:#a5c2d436;border-radius:3px}.ascent i.done{background:var(--gold)}.stage-clear small{font-size:11px;font-weight:800;letter-spacing:1px;color:#d2e1e7}.stage-banner{position:absolute;top:29%;left:18px;right:18px;text-align:center;pointer-events:none;z-index:3}.stage-banner span{display:block;font-size:10px;letter-spacing:2px;color:var(--gold);font-weight:900;text-shadow:0 2px 5px #082037}.stage-banner b{display:block;font-family:ImpactFallback,Impact,Arial,sans-serif;font-size:29px;font-style:italic;letter-spacing:-.5px;margin-top:5px;text-shadow:2px 3px #162943,0 0 8px #12395a}
.game-guide{position:absolute;left:12px;right:12px;bottom:calc(max(19px,env(safe-area-inset-bottom)) + 102px);text-align:center;font-size:11px;font-weight:900;letter-spacing:.75px;color:#fff4d5;z-index:4;pointer-events:none;text-shadow:0 2px 5px #001b35,0 0 8px #002346}.audio-retry{position:absolute;z-index:8;top:calc(225px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);border-radius:6px;background:#ffdb74;color:#15263c;padding:8px 13px;font-size:11px;font-weight:900;white-space:nowrap}.controls{position:absolute;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;align-items:center;z-index:4;padding:0 26px;pointer-events:none}.action-button{width:82px;height:82px;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;touch-action:none;border-radius:50%;background:radial-gradient(circle at 40% 25%,#fc8a65,#e6423f 70%);border:2px solid #ffc5a6;box-shadow:0 5px 0 #592e3c,0 0 0 4px #152c49,0 0 0 6px #809baa;position:relative}.action-button>svg:not(.charge-ring){width:29px;height:29px;stroke:#fff4dc;fill:none;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.action-button>span{font-size:10px;font-weight:900;letter-spacing:1.2px;margin-top:4px}.special-button{background:radial-gradient(circle at 40% 25%,#dfb24e,#a36e28 80%);border-color:#eeddaa;box-shadow:0 5px 0 #594732,0 0 0 4px #152c49,0 0 0 6px #718b98}.special-button.ready{background:radial-gradient(circle at 40% 25%,#ffe48a,#e6a923 80%);box-shadow:0 5px 0 #594732,0 0 0 4px #152c49,0 0 0 6px #dfbe70,0 0 25px #ffdd5966}.special-button>svg:not(.charge-ring){fill:#fff1c9;stroke:none}.charge-ring{position:absolute;inset:-6px;width:calc(100% + 12px);height:calc(100% + 12px);fill:none;stroke:#ffedac;stroke-width:3;transform:rotate(-90deg);pointer-events:none}.charge-ring circle{stroke-dasharray:289;stroke-dashoffset:180}.swipe-cue{display:flex;align-items:center;gap:10px;text-shadow:0 2px 4px #001732}.swipe-cue>span{color:#92bdce;font-size:35px;font-weight:300}.swipe-cue>div{font-size:11px;letter-spacing:2px;font-weight:900;text-align:center;color:#e9eeee}.swipe-cue small{display:block;font-size:8px;letter-spacing:.5px;color:#a2becc;margin-top:4px}
.modal-screen{background:#0a1b2feb;backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10;padding:28px;overflow-y:auto}.modal-card,.result-card{width:100%;max-width:370px;text-align:center}.modal-card h2{font-size:50px;margin:24px 0 18px}.modal-card>p:not(.eyebrow){font-size:14px;line-height:1.5;color:#b0c2d0;margin-bottom:28px}.modal-card .play-button{font-size:19px;margin-top:20px}.secondary-button{border:1px solid #9fbed44a;background:#2c425926;border-radius:7px;width:100%;height:48px;font-size:12px;letter-spacing:.6px;font-weight:800;margin-top:15px}.text-button{background:none;color:#abc0cf;font-size:11px;font-weight:800;letter-spacing:1px;margin-top:18px;padding:10px}.sound-settings{display:flex;gap:10px}.sound-settings .sound{display:flex;gap:8px;align-items:center;justify-content:center}.modal-card .sound-status{font-size:11px!important;margin:12px 0 0!important;color:#9bc7d5!important}.result h2{font-size:48px;line-height:.95;transform:rotate(-4deg);margin:17px 0 21px}.result h2 em{color:var(--gold)}.new-best{display:inline-block;background:var(--gold);color:#15263d;padding:5px 10px;font-size:9px;letter-spacing:1.7px;font-weight:900;border-radius:3px;margin-bottom:7px}.final-score{display:block;font-size:53px;font-weight:950;letter-spacing:-1px;line-height:1.15;color:#fff3d5;font-variant-numeric:tabular-nums}.final-label{display:block;font-size:9px;letter-spacing:3px;color:#a9bdcb;margin-top:3px}.score-breakdown{border-block:1px solid #8cabc342;margin:20px 0 16px;padding:13px 0;display:grid;gap:7px}.score-breakdown>div{display:flex;justify-content:space-between;color:#aec5d1;font-size:12px}.score-breakdown b{color:#fce9ba;font-variant-numeric:tabular-nums}.result-stats{display:flex;justify-content:space-around;margin-bottom:25px}.result-stats b{display:block;font-size:22px;color:var(--gold)}.result-stats span{font-size:8px;font-weight:800;letter-spacing:.5px;color:#a8c0cf}.result .play-button{font-size:18px;height:57px}.result .text-button{margin-top:12px}.result .eyebrow{font-size:10px;letter-spacing:1.5px}
.desktop-wordmark{position:fixed;left:max(4%,calc(50% - 615px));top:34%;pointer-events:none}.desktop-wordmark>span{font-size:10px;letter-spacing:2.8px;color:#7693a7}.desktop-wordmark strong{font-family:ImpactFallback,Impact,Arial,sans-serif;font-size:59px;font-style:italic;letter-spacing:-2px;line-height:1;display:block;color:#bdd0dd2b;margin:20px 0 35px}.desktop-wordmark i{font-style:normal;font-size:9px;letter-spacing:1.6px;color:#63859b}.desktop-help{position:fixed;right:max(4%,calc(50% - 610px));top:36%;width:205px}.desktop-help>span{font-size:10px;letter-spacing:1.4px;color:#9ab5c9;font-weight:800}.desktop-help>div{margin-top:25px}.desktop-help kbd{font:10px Arial;padding:5px 7px;border:1px solid #b5daea37;border-bottom-width:3px;border-radius:4px;color:#d4e7eb;margin-right:4px}.desktop-help p{font-size:12px;color:#7a9cb2;margin:10px 0}.desktop-help small{display:block;font-size:9px;letter-spacing:1.6px;line-height:1.8;color:#7192a8;margin-top:36px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}#load-error{position:absolute;inset:0;background:#10283eed;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;text-align:center;line-height:1.6}#load-error button{padding:15px 24px;border-radius:7px;background:var(--gold);color:#152539;font-weight:900}
@media(max-width:1060px){.desktop-help,.desktop-wordmark{display:none}}@media(min-width:600px){#cabinet{height:calc(100dvh - 24px);border:1px solid #b7d5ee38;border-radius:17px}}@media(max-height:750px){.menu-heading{top:13%}h1{font-size:75px}.tagline{font-size:12px;margin-top:20px}.menu-bottom{bottom:max(14px,env(safe-area-inset-bottom))}.play-button{height:55px}.gesture-guide{margin-top:20px}.gesture-guide small{font-size:9px}.menu-footer{margin-top:15px}.hud{padding-top:calc(10px + env(safe-area-inset-top))}.hud-top{margin-bottom:5px}.score-box>strong{font-size:27px}.boss-hud{top:calc(177px + env(safe-area-inset-top))}.result h2{font-size:40px;margin:10px 0 15px}.final-score{font-size:43px}.score-breakdown{margin:12px 0;padding:10px 0;gap:5px}.result-stats{margin-bottom:15px}.result .play-button{height:50px}.result .text-button{margin-top:6px}.modal-card h2{font-size:44px}.modal-card>p:not(.eyebrow){margin-bottom:18px}.action-button{width:74px;height:74px}.controls{padding:0 23px}.game-guide{bottom:calc(max(18px,env(safe-area-inset-bottom)) + 88px)}}
@media(max-height:540px){#cabinet{width:min(100%,400px);height:100%}.menu-heading{top:16%;left:0;right:0}h1{font-size:53px}.eyebrow{font-size:9px;margin-bottom:9px}.tagline{font-size:10px;margin-top:13px}.menu-footer,.gesture-guide small{display:none}.play-button{height:44px;font-size:17px}.gesture-guide{margin-top:13px}.highscore{padding:6px 10px;margin-bottom:8px}.modal-screen{align-items:flex-start}.modal-card,.result-card{padding:20px 0}.hud{padding-top:8px}.hud-top{margin-bottom:2px}.hud-main{max-width:230px}.hearts svg{width:13px;height:12px}.health-box{width:90px}.score-box>strong{font-size:23px}.stage-info{margin-top:3px}.boss-hud{top:140px}.stage-banner{top:34%}.boss-intro{top:32%}.boss-intro h2{font-size:29px}.action-button{width:55px;height:55px}.action-button>svg:not(.charge-ring){width:22px;height:22px}.swipe-cue>div{font-size:9px}.swipe-cue small{font-size:7px}.game-guide{bottom:82px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.hearts svg,.boss-track>div{transition:none}}

/* Keep the existing cabinet; give the essentials enough weight on a phone. */
.stage-info>b{font-size:12px;letter-spacing:.65px}.stage-info>span{font-size:12px}.action-button>span{font-size:12px}.game-guide{font-size:12px}.gesture-guide small{font-size:11px}.health-label>span,.score-box>span{font-size:11px}.boss-hud>div:first-child{font-size:12px}.boss-hud p{font-size:11px}.sound>b{font-size:11px}.icon-button{min-height:40px;min-width:40px}

/* Persian results keep the cabinet's palette, with unshaped Latin numerals. */
.creator-credit{font-family:Tahoma,Arial,sans-serif;font-size:14px;line-height:1.6;letter-spacing:0;font-weight:400;color:#b3c8d6;margin:14px 0 0}
.creator-credit bdi{font-family:Arial,Helvetica,sans-serif;color:#e8d5a4;font-weight:700;white-space:nowrap}
#cabinet.showing-result{touch-action:pan-y}
#result{font-family:Tahoma,Arial,sans-serif;align-items:flex-start;padding:max(24px,env(safe-area-inset-top)) 24px max(24px,env(safe-area-inset-bottom));touch-action:pan-y;overscroll-behavior:contain}
#result .result-card{margin-block:auto;flex-shrink:0}
#result h2{font-family:inherit;font-size:clamp(32px,8vw,42px);font-style:normal;letter-spacing:0;line-height:1.4;transform:none;margin:10px 0 14px}
#result h2 em{font-style:normal}
#result .eyebrow,#result .new-best,#result .final-label,#result .result-stats span,#result .text-button{font-size:14px;letter-spacing:0;line-height:1.7}
#result .eyebrow{margin-bottom:10px}
#result .new-best{padding:4px 10px}
#result .final-label{margin-top:4px}
#result .score-breakdown{gap:8px;margin:16px 0;padding:12px 0}
#result .score-breakdown>div{gap:12px;font-size:14px;line-height:1.6;text-align:right;align-items:baseline}
#result .score-breakdown b{white-space:nowrap;flex-shrink:0}
#result [dir=ltr]{font-family:Arial,Helvetica,sans-serif;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
#result .result-stats{gap:8px;margin-bottom:20px}
#result .result-stats>div{flex:1;min-width:0}
#result .result-stats span{display:block}
#result .play-button{letter-spacing:0;font-size:20px;min-height:52px}
#result .text-button{min-height:44px}
#result .creator-credit{padding-top:10px;border-top:1px solid #8cabc32b;margin-top:10px}
@media(max-height:750px){#result h2{font-size:32px;line-height:1.3;margin:8px 0 10px}#result .score-breakdown{margin:12px 0;padding:10px 0;gap:6px}#result .result-stats{margin-bottom:14px}}

/* Brief chapter handoff, matching the existing navy/gold game UI. */
.stage-clear{background:#102b43b3;backdrop-filter:none;padding:20px;overflow:hidden}
.stage-clear>span{font:700 20px/1.6 Arial,sans-serif;letter-spacing:0}
.stage-clear h2{font:900 clamp(25px,7vw,36px)/1.7 Arial,sans-serif;transform:none;text-align:center;color:var(--gold);margin:14px 0}
.stage-clear p,.stage-clear small{font:700 16px/1.7 Arial,sans-serif;letter-spacing:0;text-align:center}
.stage-clear:not([hidden])::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#ffe4a030 50%,transparent 65%);animation:chapter-light 2s ease-out both}
.stage-banner{background:linear-gradient(90deg,transparent,#102b43e8 18%,#102b43e8 82%,transparent);padding:12px 8px}
.stage-banner span{font:700 20px/1.5 Arial,sans-serif;letter-spacing:0}.stage-banner b{font:900 27px/1.5 Arial,sans-serif;letter-spacing:0}
@keyframes chapter-light{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.stage-clear:not([hidden])::after{animation:none;background:none}}
