@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:ManusCC0;src:url(../fonts/ManusCC0-Bold.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:ManusCC0 Sans CJK SC;src:url(../fonts/ManusCC0SansCJKSC-Regular.woff2)format("woff2");font-weight:400;font-display:swap}:root{--ink:#1b1838;--ink-2:#2a2552;--ink-3:#3d3673;--cream:#fff7e8;--gold:#ffd35c;--gold-2:#ffb020;--orange:#ff7a45;--cyan:#7ef9ff;--red:#ff4d6d;--display:"ManusCC0", "ManusCC0 Sans CJK SC", system-ui, sans-serif;--body:"ManusCC0", "ManusCC0 Sans CJK SC", system-ui, sans-serif;--safe-t:env(safe-area-inset-top,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--safe-r:env(safe-area-inset-right,0px);--notch:14px}:lang(zh-CN){--label-spacing:.06em;--display:"ManusCC0 Sans CJK SC", "ManusCC0", system-ui, sans-serif;--body:"ManusCC0 Sans CJK SC", "ManusCC0", system-ui, sans-serif}:lang(ar){--label-spacing:0;--display:Tahoma, Arial, sans-serif;--body:Tahoma, Arial, sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;color:var(--cream);font-family:var(--body);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;touch-action:none;margin:0;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#ui{pointer-events:none;position:fixed;inset:0}button{font:inherit;color:inherit}.screen{opacity:0;visibility:hidden;transition:opacity .28s,visibility 0s linear .28s;position:absolute;inset:0}.screen.is-active{opacity:1;visibility:visible;transition:opacity .28s}.screen.is-active :is(button,input,.modal){pointer-events:auto}.outlined,.logo-text,.modal-title,.hud-clock b,.hud-cores b,.popup,.banner,.hud-combo b,.boot-logo{font-family:var(--display);paint-order:stroke fill;-webkit-text-stroke:.16em var(--ink);letter-spacing:.01em}.screen-boot{background:radial-gradient(120% 90% at 50% 30%, #3b3380 0%, var(--ink) 70%);place-content:center;justify-items:center;gap:22px;display:grid}.boot-mark{background:radial-gradient(circle,#7ef9ff47,#0000 68%);border-radius:50%;place-items:center;width:92px;height:92px;display:grid;box-shadow:0 0 34px #7ef9ff6b}.boot-mark img{object-fit:contain;width:74px;height:74px;animation:2.4s ease-in-out infinite bootPulse}.boot-logo{color:var(--gold);font-size:clamp(34px,7vw,64px);font-style:italic;font-weight:800}.boot-bar{background:var(--ink-2);border:2px solid var(--ink-3);border-radius:6px;width:min(320px,70vw);height:12px;overflow:hidden}.boot-bar i{background:linear-gradient(90deg, var(--gold-2), var(--gold));transform-origin:0;height:100%;transition:transform .3s;display:block;transform:scaleX(.04)}.boot-label{letter-spacing:.3em;text-transform:uppercase;opacity:.7;font-size:12px;font-weight:700}.screen-cinematic{isolation:isolate;background:#020407;overflow:hidden}.cinematic-video{object-fit:cover;background:#020407;width:100%;height:100%;display:block}.cinematic-shade{pointer-events:none;background:linear-gradient(90deg,#01050a61,#0000 36% 64%,#01050a61),linear-gradient(#0000 72%,#01050a9e);position:absolute;inset:0}.cinematic-controls{padding:calc(22px + var(--safe-t)) calc(24px + var(--safe-r)) calc(22px + var(--safe-b)) calc(24px + var(--safe-l));pointer-events:none;justify-content:space-between;align-items:flex-end;display:flex;position:absolute;inset:0}.cinematic-controls button,.cinematic-activate{pointer-events:auto;color:var(--cream);cursor:pointer;font:800 13px var(--display);text-shadow:0 1px 2px #000;background:#070f1cad;border:1px solid #fff7e859;border-radius:999px;padding:9px 14px;transition:transform .14s,background .14s}.cinematic-controls button:hover,.cinematic-controls button:focus-visible,.cinematic-activate:hover,.cinematic-activate:focus-visible{background:#254f6ce6;outline:none;transform:translateY(-2px)}.cinematic-skip{text-transform:uppercase}.cinematic-skip kbd{font:700 10px var(--body);border:1px solid #ffffff59;border-radius:4px;margin-inline-start:6px;padding:1px 4px}.cinematic-activate{opacity:0;pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.screen-cinematic.needs-play .cinematic-activate{opacity:1;pointer-events:auto}.menu{flex-direction:column;align-items:flex-start;gap:12px;display:flex}.menu-row{flex-flow:wrap;justify-content:center;align-items:center;gap:14px}.btn{--skew:-10deg;cursor:pointer;min-width:260px;font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;text-align:left;color:var(--cream);isolation:isolate;background:0 0;border:0;outline:none;padding:14px 30px;font-size:21px;font-weight:800;transition:transform .14s cubic-bezier(.3,1.6,.5,1),color .14s;position:relative}.btn:before,.btn:after{content:"";transform:skewX(var(--skew));z-index:-1;border-radius:6px;position:absolute;inset:0}.btn:before{background:var(--ink-3);opacity:.9;translate:5px 5px}.btn:after{background:#1b1838db;border:3px solid #fff7e833}.btn span{align-items:center;gap:12px;display:inline-flex;position:relative}.btn span:before{content:"";opacity:0;border-top:7px solid #0000;border-bottom:7px solid #0000;border-left:10px solid;width:0;height:0;margin-left:-22px;transition:all .14s;transform:translate(-8px)}.btn:is(:hover,:focus-visible,:focus){color:var(--ink);transform:translate(8px)scale(1.03)}.btn:is(:hover,:focus-visible,:focus):after{background:linear-gradient(180deg, #ffe38a, var(--gold) 55%, var(--gold-2));border-color:#fff4c2}.btn:is(:hover,:focus-visible,:focus):before{background:var(--orange)}.btn:is(:hover,:focus-visible,:focus) span:before{opacity:1;transform:none}.btn:active{transform:translate(8px)scale(.98)}.btn-primary:after{border-color:var(--gold)}.btn-primary{color:var(--gold)}.btn-small{min-width:0;padding:10px 20px;font-size:16px}.menu-row .btn{text-align:center;min-width:200px}.menu-row .btn span{justify-content:center}.menu-row .btn:is(:hover,:focus-visible,:focus){transform:translateY(-3px)scale(1.03)}kbd{background:var(--cream);min-width:1.9em;height:1.9em;color:var(--ink);font:800 .72em/1 var(--display);vertical-align:.1em;border-radius:6px;place-items:center;margin:0 .1em;padding:0 .45em;display:inline-grid;box-shadow:0 3px #b9ad98}kbd.wide{min-width:4em}kbd.round{background:var(--ink-3);color:var(--cream);border-radius:50%;padding:0;box-shadow:0 3px #16132e}kbd.a{background:#4cc46f}kbd.b{background:var(--red)}kbd.x{background:#3f8cff}.bottom-bar{padding:18px calc(32px + var(--safe-r)) calc(18px + var(--safe-b)) calc(32px + var(--safe-l));background:linear-gradient(#0000,#13112acc);justify-content:space-between;align-items:center;gap:16px;font-size:14px;font-weight:700;display:flex;position:absolute;bottom:0;left:0;right:0}.bottom-bar small{opacity:.55;font-size:11px;font-weight:500}.prompts{gap:22px;display:flex}.prompts span{align-items:center;gap:6px;display:inline-flex}.title-vignette{background:linear-gradient(90deg,#1b1838c7 0%,#1b183859 42%,#0000 70%),radial-gradient(140% 100%,#0000 55%,#13112a8c);position:absolute;inset:0}.title-block{left:calc(clamp(24px, 7vw, 110px) + var(--safe-l));flex-direction:column;gap:18px;display:flex;position:absolute;top:50%;transform:translateY(-54%)}:lang(ar) .title-vignette{background:linear-gradient(270deg,#1b1838d1 0%,#1b183859 42%,#0000 70%),radial-gradient(140% 100%,#0000 55%,#13112a8c)}:lang(ar) .title-block{left:auto;right:calc(clamp(24px, 7vw, 110px) + var(--safe-r));align-items:flex-start}:lang(ar) .logo-text{letter-spacing:0;text-align:right;max-width:min(680px,56vw);font-size:clamp(44px,6.2vw,82px);line-height:1.05}:lang(ar) .btn{text-align:right}:lang(ar) .btn span:before{border-left:0;border-right:10px solid;margin-left:0;margin-right:-22px;transform:translate(8px)}:lang(ar) .btn:is(:hover,:focus-visible,:focus){transform:translate(-8px)scale(1.03)}:lang(ar) .btn:is(:hover,:focus-visible,:focus) span:before{transform:none}.screen-title.is-active .title-block>*{animation:.6s cubic-bezier(.2,1.2,.4,1) both rise}.screen-title.is-active .tagline{animation-delay:80ms}.screen-title.is-active .menu{animation-delay:.16s}.logo{align-items:center;gap:16px;display:flex}.logo-gem{width:clamp(48px,7vw,76px);color:var(--gold);filter:drop-shadow(0 0 18px #ffbe3ccc) drop-shadow(4px 5px 0 var(--ink));animation:3s ease-in-out infinite bob}.logo-text{text-transform:uppercase;background:linear-gradient(180deg, #fff6d6 0%, var(--gold) 45%, var(--orange) 100%);color:#0000;-webkit-text-stroke:.012em var(--ink);filter:drop-shadow(.05em .07em 0 var(--ink));-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(52px,10vw,118px);font-style:italic;font-weight:800;line-height:.9}:lang(zh-CN) .logo-text{letter-spacing:.06em;-webkit-text-stroke:.004em var(--ink);filter:drop-shadow(.04em .05em 0 var(--ink));margin-bottom:.08em;font-style:normal;font-weight:900}.tagline{opacity:.9;max-width:30ch;text-shadow:0 2px 0 var(--ink);margin:0 0 18px;font-size:clamp(15px,1.6vw,19px);font-weight:600}.title-best{top:calc(22px + var(--safe-t));right:calc(26px + var(--safe-r));border:2px solid var(--gold);font:800 15px var(--display);color:var(--gold);background:#1b1838cc;border-radius:999px;padding:8px 18px;position:absolute}.is-hidden{display:none!important}.screen-modal{-webkit-backdrop-filter:blur(6px)saturate(.8);background:#13112a8c;place-items:center;display:grid}.modal{width:min(460px,100vw - 32px);max-height:calc(100dvh - 24px);clip-path:polygon(var(--notch) 0, 100% 0, 100% calc(100% - var(--notch)), calc(100% - var(--notch)) 100%, 0 100%, 0 var(--notch));background:linear-gradient(#312b61f7,#1b1838f7);border:3px solid #fff7e829;flex-direction:column;align-items:center;gap:22px;padding:30px 34px 32px;display:flex;position:relative;overflow:auto;box-shadow:inset 0 3px #ffffff14}.screen-modal.is-active .modal{animation:.34s cubic-bezier(.2,1.4,.4,1) both pop}.modal:before{content:"";background:linear-gradient(90deg, var(--orange), var(--gold));height:6px;position:absolute;top:0;left:0;right:0}.modal .menu{align-items:stretch;width:100%}.modal .menu:not(.menu-row) .btn{text-align:center;min-width:0}.modal .menu:not(.menu-row) .btn span{justify-content:center}.modal .menu:not(.menu-row) .btn:is(:hover,:focus-visible,:focus){transform:scale(1.04)}.modal-wide{width:min(760px,100vw - 32px)}.modal-title{text-transform:uppercase;color:var(--cream);text-align:center;margin:0;font-size:clamp(32px,5vw,46px);font-style:italic;font-weight:800}:lang(zh-CN) .modal-title{font-style:normal;font-weight:900}.settings-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px 24px;width:100%;display:grid}fieldset{background:#13112a59;border:2px solid #fff7e81f;border-radius:10px;margin:0;padding:14px 16px 6px}fieldset:last-child{grid-column:1/-1}legend{font:800 12px var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);padding:0 8px}.row{justify-content:space-between;align-items:center;gap:16px;min-height:48px;font-size:16px;font-weight:700;display:flex}.world-note strong{color:var(--gold);font-size:13px}input[type=range]{--fill:50%;appearance:none;background:linear-gradient(90deg, var(--gold) var(--fill), var(--ink) var(--fill));border:2px solid var(--ink-3);cursor:pointer;border-radius:6px;outline:none;width:150px;height:12px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--cream);border:4px solid var(--ink);width:24px;height:24px;box-shadow:0 2px 0 var(--ink);border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--cream);border:4px solid var(--ink);border-radius:50%;width:18px;height:18px}input[type=range]:focus-visible,input[type=range]:focus{border-color:var(--gold);box-shadow:0 0 0 3px #ffd35c59}.toggle{cursor:pointer;background:0 0;border:0;outline:none;justify-content:flex-end;align-items:center;gap:10px;min-width:88px;padding:0;font-size:14px;font-weight:800;display:inline-flex}.toggle i{background:var(--ink);border:2px solid var(--ink-3);border-radius:14px;width:50px;height:28px;transition:all .18s;position:relative}.toggle i:after{content:"";background:#8a84b3;border-radius:50%;width:18px;height:18px;transition:all .18s cubic-bezier(.3,1.5,.5,1);position:absolute;top:3px;left:3px}.toggle[aria-pressed=true] i{background:var(--gold);border-color:var(--gold-2)}.toggle[aria-pressed=true] i:after{background:var(--ink);left:25px}.toggle:focus-visible i,.toggle:focus i{box-shadow:0 0 0 3px #ffd35c73}.seg{background:var(--ink);border:2px solid var(--ink-3);border-radius:10px;gap:3px;padding:3px;display:inline-flex}.seg button{cursor:pointer;color:#fff7e8a6;background:0 0;border:0;border-radius:7px;outline:none;padding:8px 14px;font-size:14px;font-weight:800;transition:all .14s}.seg button[aria-pressed=true]{background:var(--gold);color:var(--ink)}.seg button:is(:focus-visible,:focus){color:var(--cream);box-shadow:0 0 0 3px #ffd35c80}.seg button[aria-pressed=true]:is(:focus-visible,:focus){color:var(--ink)}.board-head,.board li{grid-template-columns:44px 1fr 70px 90px;align-items:center;gap:8px;width:100%;display:grid}.board-head{font:800 11px var(--display);letter-spacing:.2em;text-transform:uppercase;opacity:.6;padding:0 14px}.board-head em,.board em{text-align:right;font-style:normal}.board{flex-direction:column;gap:6px;width:100%;margin:-12px 0 0;padding:0;list-style:none;display:flex}.board li{font-variant-numeric:tabular-nums;background:#13112a80;border-radius:8px;padding:10px 14px;font-weight:700}.board li b{font:800 18px var(--display);color:#fff7e899}.board li:first-child b{color:var(--gold)}.board li:nth-child(2) b{color:#d8dcef}.board li:nth-child(3) b{color:#f0a574}.board li em{font:800 17px var(--display);color:var(--gold)}.board li.is-me{outline:2px solid var(--gold);background:#ffd35c2e}.board-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.board .board-empty{text-align:center;opacity:.7;background:0 0;padding:22px;display:block}.modal-results{gap:14px;width:min(520px,100vw - 32px);padding-top:22px}.modal-results .modal-title{font-size:clamp(28px,4.2vw,40px);line-height:1.05}.results-stars{gap:10px;margin-top:4px;display:flex}.results-stars .star{width:52px;color:var(--ink);filter:drop-shadow(0 4px #0000004d)}.results-stars .star:nth-child(2){width:66px;margin-top:-12px}.results-stars .star svg{stroke:#fff7e840;stroke-width:1.2px}.results-stars .star.is-on{color:var(--gold);animation:.5s cubic-bezier(.2,1.6,.4,1) both starIn}.results-stars .star.is-on svg{stroke:#fff4c2;filter:drop-shadow(0 0 10px #ffbe3cb3)}.screen-results:not(.is-won) .modal-title{color:#ffb3c1}.results-best{background:var(--orange);color:var(--ink);font:800 13px var(--display);letter-spacing:.1em;text-transform:uppercase;border-radius:999px;margin-top:-14px;padding:4px 14px;animation:1s ease-in-out infinite pulse;display:none}.results-best.is-active{display:block}.results-table{flex-direction:column;gap:4px;width:100%;margin:0;display:flex}.results-table>div{font-variant-numeric:tabular-nums;background:#13112a66;border-radius:8px;grid-template-columns:1fr auto 110px;align-items:baseline;gap:12px;padding:6px 12px;display:grid}.results-table dt{opacity:.8;font-weight:700}.results-table dd{text-align:right;font:700 16px var(--display);margin:0}.screen-results:not(.is-won) .r-bonus{display:none}.results-table .r-total-row{background:#ffd35c24;border:2px solid #ffd35c66;margin-top:6px}.results-table .r-total-row dt{opacity:1;font:800 16px var(--display);text-transform:uppercase;letter-spacing:.1em;color:var(--gold)}.r-total{color:var(--gold);font-size:26px!important}.results-save{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;width:100%;display:flex}.results-name{border:2px solid var(--ink-3);background:var(--ink);max-width:220px;height:44px;color:var(--cream);font:700 16px var(--body);-webkit-user-select:text;user-select:text;border-radius:8px;outline:none;flex:160px;padding:0 14px}.results-name:focus{border-color:var(--gold)}.results-saved,.results-rank{font:800 15px var(--display);color:var(--gold);display:none}.results-save.is-saved :is(.results-name,.btn){display:none}.results-save.is-saved :is(.results-saved,.results-rank){display:inline}.screen-hud{font-variant-numeric:tabular-nums}.hud-top-left,.hud-top-center,.hud-top-right{top:calc(18px + var(--safe-t));flex-direction:column;gap:8px;display:flex;position:absolute}.hud-top-left{left:calc(22px + var(--safe-l));align-items:flex-start}.hud-top-center{align-items:center;left:50%;transform:translate(-50%)}.hud-top-right{right:calc(22px + var(--safe-r));flex-direction:row;align-items:center;gap:14px}.hud-panel{background:#1b1838b8;border:3px solid #fff7e826;border-radius:12px;align-items:center;gap:10px;padding:6px 18px 6px 10px;display:flex;transform:skew(-8deg)}.hud-panel>*{transform:skew(8deg)}.hud-core-icon{width:30px;color:var(--gold);filter:drop-shadow(0 0 8px #ffb428cc)}.hud-cores b{color:var(--cream);font-size:34px;font-weight:800;line-height:1}.hud-cores b small{opacity:.7;font-size:.55em}.hud-score{text-shadow:0 2px 0 var(--ink);align-items:baseline;gap:8px;padding-left:12px;display:flex}.hud-score span{font:800 11px var(--display);letter-spacing:var(--label-spacing,.2em);text-transform:uppercase;opacity:.75}.hud-score b{font:800 22px var(--display);color:var(--gold)}.hud-clock{text-align:center;min-width:128px;margin-top:calc(-18px - var(--safe-t));padding:4px 22px 6px;padding-top:calc(10px + var(--safe-t));background:#1b1838b8;border:3px solid #fff7e826;border-top:0;border-radius:0 0 16px 16px}.hud-clock b{color:var(--cream);font-size:40px;font-weight:800;line-height:1}.hud-clock.is-low{border-color:var(--red);animation:.8s ease-in-out infinite pulse}.hud-clock.is-low b{color:#ffc2cd}.hud-compass{font:800 14px var(--display);text-shadow:0 1px 0 var(--ink);background:#1b183899;border-radius:999px;align-items:center;gap:6px;padding:4px 12px 4px 8px;transition:opacity .2s;display:flex}.hud-compass-arrow{width:22px;height:22px;color:var(--gold);transition:transform 80ms linear;display:grid}.hud-compass b:after{content:"";vertical-align:.12em;border-left:5px solid #0000;border-right:5px solid #0000;margin-left:6px;display:inline-block}.hud-compass[data-rise=up] b:after{border-bottom:8px solid var(--cyan)}.hud-compass[data-rise=down] b:after{border-top:8px solid var(--orange)}.hud-cells{background:#1b1838b8;border:3px solid #fff7e826;border-radius:12px;gap:6px;padding:8px 12px;display:flex}.hud-cell{width:22px;color:var(--cyan);filter:drop-shadow(0 0 6px #7ef9ff99);transition:color .2s,filter .2s}.hud-cell.is-empty{color:#fff7e840;filter:none}.hud-cell.is-empty .fill{opacity:0}.hud-pause{cursor:pointer;background:#1b1838b8;border:3px solid #fff7e826;border-radius:12px;place-items:center;width:48px;height:48px;padding:11px;display:grid}.hud-combo{right:calc(28px + var(--safe-r));opacity:0;justify-items:end;gap:2px;transition:all .2s;display:grid;position:absolute;top:36%;transform:translate(20px)}[data-active-screen=hud] .hud-combo.is-active{opacity:1;transform:none}.hud-combo.pop b{animation:.35s cubic-bezier(.2,1.8,.4,1) comboPop}.hud-combo b{color:var(--orange);font-size:54px;font-style:italic;font-weight:800;line-height:1}.hud-combo span{font:800 13px var(--display);letter-spacing:.3em;text-transform:uppercase;text-shadow:0 2px 0 var(--ink)}.hud-combo-bar{background:#1b1838b3;border-radius:3px;width:96px;height:6px;overflow:hidden}.hud-combo-bar i{background:var(--orange);transform-origin:100%;height:100%;display:block}.hud-stage{right:calc(22px + var(--safe-r));bottom:calc(22px + var(--safe-b));border-right:3px solid var(--gold);text-align:right;max-width:min(360px,46vw);text-shadow:0 2px 0 var(--ink);background:linear-gradient(270deg,#1b1838e0,#1b183852);border-radius:8px 0 0 8px;justify-items:end;padding:10px 14px;display:grid;position:absolute}.hud-stage b{color:var(--gold);font:800 15px var(--display)}.hud-stage span{font:700 13px/1.35 var(--body);margin-top:3px}.hud-stage small{color:var(--cyan);font:800 11px var(--display);margin-top:5px}.hud-stage em{color:#d7ff9b;font:800 11px var(--display);margin-top:4px;font-style:normal}.hud-interact{left:50%;bottom:calc(116px + var(--safe-b));max-width:min(440px,78vw);color:var(--cyan);font:800 13px var(--display);text-align:center;opacity:0;background:#112139e0;border:1px solid #7ef9ff8c;border-radius:999px;padding:9px 15px;transition:all .2s;position:absolute;transform:translate(-50%,8px)}.hud-interact.is-active{opacity:1;transform:translate(-50%)}.mini-map{left:calc(14px + var(--safe-l));top:calc(118px + var(--safe-t));background:#1121399e;border:1px solid #fff7e852;border-radius:12px;width:116px;height:108px;padding:5px;transition:width .2s,height .2s,opacity .2s;position:absolute;overflow:hidden;box-shadow:0 7px 18px #0003,inset 0 0 16px #7ef9ff14}.mini-map:after{content:"";pointer-events:none;border:1px solid #7ef9ff33;border-radius:8px;position:absolute;inset:5px}.mini-map svg{width:100%;height:100%;transition:opacity .16s;display:block}.mini-map-toggle{z-index:2;width:19px;height:19px;color:var(--cream);cursor:pointer;font:800 17px/1 var(--display);background:#10182fc7;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:3px;right:4px}.mini-map-toggle:focus-visible{outline:2px solid var(--gold)}.mini-map.is-collapsed{background:#112139d6;border-radius:50%;width:30px;height:30px;padding:0}.mini-map.is-collapsed:after,.mini-map.is-collapsed svg,.mini-map.is-collapsed .mini-map-north{opacity:0;pointer-events:none}.mini-map.is-collapsed .mini-map-toggle{top:4px;right:5px;transform:rotate(45deg)}.mini-map-ocean{fill:#1d5f82}.mini-map-sand{fill:#d8bd80;stroke:#f1e4bc;stroke-width:2px}.mini-map-land{fill:#4d7f4e;stroke:#294f38;stroke-width:2px}.mini-map-route{stroke:#ffef9fb3;stroke-width:1.5px;stroke-dasharray:4 4}.mini-map-target{fill:var(--gold);stroke:#fff6cf;stroke-width:1.6px;filter:drop-shadow(0 0 3px #ffd35cf2)}.mini-map-player{fill:var(--cyan);stroke:#fff;stroke-width:1.2px;filter:drop-shadow(0 0 3px #7ef9ffe6)}.mini-map[data-stage=river] .mini-map-ocean{fill:#193e55}.mini-map[data-stage=river] .mini-map-land{fill:#698255}.mini-map[data-stage=river] .mini-map-sand{fill:#88906a}.mini-map-north{z-index:1;color:var(--cream);font:800 11px/1 var(--display);text-shadow:0 1px 3px var(--ink);position:absolute;top:7px;left:50%;transform:translate(-50%)}.hint{left:50%;bottom:calc(46px + var(--safe-b));white-space:nowrap;opacity:0;background:#1b1838d1;border:3px solid #ffd35c80;border-radius:14px;padding:12px 24px;font-size:18px;font-weight:700;transition:all .3s cubic-bezier(.2,1.3,.4,1);position:absolute;transform:translate(-50%,20px)}.hint.is-active{opacity:1;transform:translate(-50%)}.banner{text-align:center;text-transform:uppercase;color:#ffc2cd;opacity:0;font-size:clamp(30px,5vw,52px);font-style:italic;font-weight:800;position:absolute;top:30%;left:0;right:0}.banner.show{animation:2.4s both banner}.popups{position:absolute;inset:0;overflow:hidden}.popup{color:var(--gold);white-space:nowrap;font-size:30px;font-style:italic;font-weight:800;animation:.9s ease-out both popup;position:absolute;transform:translate(-50%,-50%)}.popup-hurt{color:var(--red);font-size:36px}.hurt-vignette{opacity:0;background:radial-gradient(#0000 45%,#ff2d558c);position:absolute;inset:0}.hurt-vignette.flash{animation:.6s ease-out hurt}.touch{display:none}body.has-touch .touch{display:block}body.has-touch .hint{top:calc(118px + var(--safe-t));white-space:normal;text-align:center;width:max-content;max-width:60vw;padding:8px 18px;font-size:15px;bottom:auto;transform:translate(-50%,-12px)}body.has-touch .hint.is-active{transform:translate(-50%)}.touch-stick{opacity:.55;pointer-events:none;background:#1b183840;border:3px solid #fff7e859;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;position:absolute;top:72%;left:22%}.touch-stick.is-active{opacity:1}.touch-stick i{background:var(--cream);border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%;box-shadow:0 4px #0000004d}.touch-btn{border:4px solid var(--ink);font:800 14px var(--display);color:var(--ink);box-shadow:0 5px 0 var(--ink);touch-action:none;border-radius:50%;place-items:center;display:grid;position:absolute}.touch-btn.is-down{box-shadow:0 1px 0 var(--ink);transform:translateY(4px)}.touch-jump{right:calc(28px + var(--safe-r));bottom:calc(34px + var(--safe-b));background:var(--gold);width:96px;height:96px}.touch-dash{right:calc(140px + var(--safe-r));bottom:calc(40px + var(--safe-b));background:var(--cyan);width:72px;height:72px}.touch-interact{right:calc(224px + var(--safe-r));bottom:calc(54px + var(--safe-b));background:#d7b4ff;width:64px;height:64px;font-size:12px}.modal-dialogue{text-align:right;align-items:stretch;width:min(620px,100vw - 32px)}.dialogue-kicker{color:var(--cyan);font:800 11px var(--display);letter-spacing:.12em;background:#7ef9ff24;border-radius:999px;align-self:center;padding:5px 12px}.dialogue-role{text-align:center;color:var(--gold);font:800 14px var(--display);margin:-16px 0 0}.dialogue-greeting{background:#13112a61;border:1px solid #fff7e82b;border-radius:10px;margin:0;padding:14px 16px;font-weight:700;line-height:1.7}.dialogue-voice{color:var(--cyan);cursor:pointer;font:800 13px var(--display);background:#7ef9ff1f;border:1px solid #7ef9ff80;border-radius:999px;align-self:center;padding:8px 14px}.dialogue-voice:focus-visible,.dialogue-voice:hover{background:#7ef9ff3d;outline:none}.dialogue-choice{width:100%;min-width:0;font-size:16px}.dialogue-choice span{white-space:normal}.modal-property{text-align:right;width:min(570px,100vw - 32px)}.property-aether{color:var(--gold);font:800 14px var(--display);background:#ffd35c24;border-radius:999px;align-self:center;padding:7px 13px}.property-description{border-right:3px solid var(--cyan);background:#13112a61;margin:0;padding:14px 16px;font-weight:700;line-height:1.7}.skill-tree-modal{text-align:center;background:linear-gradient(145deg,#231c4cf7,#0c1226f7);border:1px solid #7ef9ff4d;border-radius:18px;gap:14px;width:min(1080px,100vw - 28px);max-height:min(88vh,760px);padding:24px;display:grid;overflow:auto}.skill-tree-intro{color:#fff7e8b8;max-width:720px;margin:0 auto;line-height:1.7}.skill-aether{color:var(--gold);font:800 14px var(--display);background:#ffd35c24;border-radius:999px;justify-self:center;padding:7px 15px}.skill-tree-grid{text-align:right;grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.skill-column{background:#ffffff09;border:1px solid #ffffff1f;border-radius:13px;padding:13px}.skill-column h3{color:var(--cyan);text-align:center;font:800 16px var(--display);margin:0 0 11px}.skill-path{gap:9px;display:grid}.skill-node{width:100%;min-width:0;color:var(--cream);cursor:pointer;text-align:right;background:#7ef9ff12;border:1px solid #7ef9ff47;border-radius:9px;gap:5px;padding:12px;display:grid;position:relative}.skill-node:after{content:"◆";color:var(--cyan);opacity:.5;position:absolute;top:11px;left:11px}.skill-node b{font:800 15px var(--display);padding-left:22px}.skill-node small{color:var(--gold);font-weight:800}.skill-node span{color:#fff7e8b3;font-size:12px;line-height:1.5}.skill-node.is-unlocked{border-color:var(--gold);background:linear-gradient(135deg,#ffd35c2e,#7ef9ff1a);box-shadow:inset 0 0 20px #ffd35c14}.skill-node.is-locked{opacity:.45}.skill-node:disabled{cursor:default}.combat-skill-lian:not(:disabled){border-color:#78efff}.combat-skill-rami:not(:disabled){border-color:#f2d27b}.combat-skill-suha:not(:disabled){border-color:#d7b4ff}.combat-arena{text-align:center;background:linear-gradient(145deg,#231c4cf5,#0c1226f5);border:1px solid #7ef9ff57;border-radius:18px;gap:16px;width:min(720px,100vw - 30px);padding:26px;display:grid;position:relative;overflow:hidden;box-shadow:0 20px 70px #00000073,inset 0 0 45px #7ef9ff0f}.combat-arena:before{content:"";pointer-events:none;opacity:0;background:repeating-conic-gradient(#7ef9ff38 0deg 2deg,#0000 2deg 15deg);border-radius:50%;width:min(720px,100vw - 30px);height:min(720px,100vw - 30px);position:absolute}.combat-arena.combat-cast-crystal:before{animation:.85s cubic-bezier(.2,.75,.25,1) both crystalRays}.combat-arena.combat-cast-strike{animation:.28s ease-out both strikeShake}.combat-arena.combat-cast-guard{animation:.48s ease-out both guardPulse}.combat-kicker,.combat-duel,.combat-crystals,.combat-log,.combat-actions{z-index:1;position:relative}.combat-kicker{color:var(--cyan);font:800 12px var(--display);letter-spacing:.14em}.combat-effect-label{z-index:2;min-height:23px;color:var(--cyan);font:900 20px var(--display);letter-spacing:.08em;opacity:0;text-shadow:0 0 18px;position:relative;transform:translateY(8px)scale(.8)}.combat-effect-label.is-visible{animation:.85s cubic-bezier(.2,.8,.2,1) both effectLabel}.combat-boss-panel{z-index:1;text-align:right;background:linear-gradient(90deg,#ff5a6921,#ffd35c1a);border:1px solid #ffd35c66;border-radius:10px;gap:5px;padding:10px 13px;display:grid;position:relative}.combat-party{z-index:1;grid-template-columns:repeat(3,1fr);gap:8px;width:min(620px,100%);margin:4px auto 0;display:grid;position:relative}.party-member{text-align:right;background:#7ef9ff0f;border:1px solid #7ef9ff40;border-radius:9px;gap:2px;padding:8px 10px;display:grid;position:relative;overflow:hidden}.party-member b{color:var(--cream);font:800 14px var(--display)}.party-member small{color:var(--cyan);font-size:10px}.party-member span{color:#fff7e8b3;font-size:11px}.party-member i{transform-origin:100%;background:var(--cyan);height:3px;transition:transform .3s;display:block}.party-member.is-down{opacity:.45;border-color:#ff5a698c}.party-member.is-down i{background:#ff5a69}.team-help{color:#fff7e8b8;text-align:center;max-width:620px;margin:0 auto 16px}.team-grid{grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0;display:grid}.team-choice{color:var(--cream);text-align:right;cursor:pointer;background:#7ef9ff0d;border:1px solid #7ef9ff38;border-radius:12px;gap:7px;padding:18px 12px;display:grid}.team-choice.is-selected{border-color:var(--cyan);background:#7ef9ff21;box-shadow:0 0 24px #7ef9ff1f}.team-choice.is-leader{border-color:#f4d28b;box-shadow:0 0 24px #f4d28b24}.team-choice b{font:800 19px var(--display)}.team-choice small{color:var(--cyan)}.team-choice span{color:#fff7e8ad;font-size:12px}.combat-boss-title{color:var(--gold);font:800 16px var(--display)}.combat-boss-mechanic{color:#fff7e8ad;font-size:12px;line-height:1.5}.combat-weakness{color:var(--cyan);font-size:12px}.combat-duel{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;display:grid}.combat-card{text-align:right;background:#ffffff0f;border-radius:11px;gap:7px;padding:13px;display:grid}.combat-card span{color:#fff7e8a6;font-size:12px}.combat-card b{color:var(--cream);font:800 18px var(--display)}.combat-enemy-hp{color:#ff9a9a!important}.combat-hero-hp{color:var(--cyan)!important}.combat-bar{background:#0000006b;border-radius:999px;height:8px;overflow:hidden}.combat-bar i{transform-origin:100%;background:linear-gradient(90deg,#e45768,#ffbd72);width:100%;height:100%;transition:transform .25s;display:block}.combat-hero-bar i{background:linear-gradient(90deg,#2fa9c7,#8ffff0)}.combat-crystal-mark{width:38px;color:var(--cyan);filter:drop-shadow(0 0 12px #7ef9ffbf);animation:2.4s ease-in-out infinite bob}.combat-crystal-mark svg{width:100%;height:auto}.combat-crystals{color:var(--gold);font:800 13px var(--display);background:#ffd35c1f;border-radius:999px;justify-self:center;padding:6px 14px}.combat-log{color:#fff7e8c7;min-height:24px;margin:0;font-weight:700}.combat-actions{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.combat-actions .btn{width:100%;min-width:0}.screen-cutscene{isolation:isolate;background:radial-gradient(at 50% 42%,#41468480,#050713f5 68%);overflow:hidden}.cutscene-vignette{background:radial-gradient(#0000 24%,#02040cdb 72%),repeating-conic-gradient(from 15deg,#7ef9ff12 0deg 1deg,#0000 1deg 17deg);animation:18s linear infinite cutsceneOrbit;position:absolute;inset:-20%}.cutscene-content{z-index:1;text-align:center;justify-items:center;gap:12px;width:min(740px,100vw - 34px);padding:32px 24px;display:grid;position:relative}.cutscene-phase{color:var(--gold);font:800 12px var(--display);letter-spacing:.22em;text-transform:uppercase}.cutscene-crystal{width:54px;height:54px;color:var(--cyan);background:#7ef9ff1f;border:1px solid #7ef9ff99;place-items:center;font-size:0;animation:3s ease-in-out infinite crystalFloat;display:grid;transform:rotate(45deg);box-shadow:0 0 35px #7ef9ff59}.cutscene-crystal:after{content:"✦";font-size:27px;transform:rotate(-45deg)}.cutscene-boss-name{color:var(--cream);font:900 clamp(36px, 7vw, 78px) var(--display);text-shadow:0 4px #0006,0 0 35px #7ef9ff38;margin:2px 0 0}.cutscene-boss-title{color:var(--cyan);font:800 clamp(15px, 2.4vw, 24px) var(--display);margin:-5px 0 8px}.cutscene-line{color:#fff7e8db;max-width:650px;min-height:82px;margin:0;font-size:clamp(17px,2.2vw,23px);font-weight:700;line-height:1.9;animation:.42s ease-out both cutsceneText}.cutscene-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}.cutscene-actions .btn{min-width:190px}.fatal{text-align:center;background:radial-gradient(circle at 50% 35%, #3b3380, var(--ink) 68%);place-items:center;padding:24px;font-weight:700;display:grid;position:fixed;inset:0}.fatal>div{justify-items:center;gap:14px;max-width:480px;display:grid}.fatal img{object-fit:contain;width:82px;height:82px}.fatal strong{font:800 28px var(--display);color:var(--gold)}.fatal p{opacity:.75;-webkit-user-select:text;user-select:text;margin:0}.fatal button{pointer-events:auto;border:2px solid var(--gold);background:var(--ink-2);color:var(--cream);cursor:pointer;font:800 16px var(--body);border-radius:8px;padding:10px 20px}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}@keyframes pop{0%{opacity:0;transform:scale(.86)}}@keyframes bob{50%{transform:translateY(-6px)rotate(6deg)}}@keyframes pulse{50%{transform:scale(1.05)}}@keyframes starIn{0%{opacity:0;transform:scale(0)rotate(-40deg)}}@keyframes comboPop{0%{transform:scale(1.6)}}@keyframes popup{0%{opacity:0;transform:translate(-50%,-30%)scale(.6)}15%{opacity:1;transform:translate(-50%,-60%)scale(1.15)}to{opacity:0;transform:translate(-50%,-190%)scale(1)}}@keyframes hurt{0%{opacity:1}}@keyframes banner{0%{opacity:0;transform:scale(1.4)}12%{opacity:1;transform:scale(1)}80%{opacity:1}to{opacity:0;transform:translateY(-20px)}}@keyframes bootPulse{50%{transform:scale(1.08)rotate(4deg)}}@keyframes crystalRays{0%{opacity:0;transform:scale(.2)rotate(-25deg)}25%{opacity:.95}to{opacity:0;transform:scale(1.5)rotate(18deg)}}@keyframes effectLabel{0%{opacity:0;transform:translateY(8px)scale(.78)}18%{opacity:1;transform:translateY(0)scale(1.08)}78%{opacity:1}to{opacity:0;transform:translateY(-15px)scale(1)}}@keyframes strikeShake{0%,to{transform:translate(0)}35%{transform:translate(-5px)}70%{transform:translate(4px)}}@keyframes guardPulse{0%{box-shadow:0 20px 70px #00000073,inset 0 0 #7ef9ff00}50%{box-shadow:0 20px 70px #00000073,inset 0 0 55px #7ef9ff59}to{box-shadow:0 20px 70px #00000073,inset 0 0 45px #7ef9ff0f}}@keyframes cutsceneOrbit{to{transform:rotate(360deg)scale(1.15)}}@keyframes crystalFloat{50%{transform:rotate(45deg)translateY(-8px);box-shadow:0 0 55px #7ef9ff8c}}@keyframes cutsceneText{0%{opacity:0;transform:translateY(12px)}}@media (max-width:720px),(max-height:520px){.btn{min-width:220px;padding:12px 24px;font-size:18px}.hud-cores b{font-size:26px}.hud-clock b{font-size:30px}.hud-clock{min-width:96px}.mini-map{top:calc(104px + var(--safe-t));width:94px;height:88px}.bottom-bar small{display:none}.modal{gap:16px;padding:22px 20px 24px}.hud-combo b{font-size:40px}.hud-stage{right:calc(12px + var(--safe-r));bottom:calc(16px + var(--safe-b));max-width:44vw;padding:7px 10px}.hud-stage b{font-size:12px}.hud-stage span{font-size:11px}.hud-stage small,.hud-stage em{font-size:9px}.hud-interact{bottom:calc(128px + var(--safe-b));font-size:11px}.touch-interact{right:calc(212px + var(--safe-r));bottom:calc(54px + var(--safe-b));width:58px;height:58px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
