:root{color-scheme:dark;--bg:#100a1c;--surface:#191127;--ink:#f7f0ff;--muted:#b7a8ca;--line:#39274d;--purple:#aa73ff;--lime:#d7ff63;--orange:#ffb856;--pink:#f987ba;--font:Inter,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 35%,#25123c 0,transparent 65%),var(--bg);color:var(--ink);font:16px/1.55 var(--font);min-width:320px}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:disabled{cursor:not-allowed;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible+label,canvas:focus-visible{outline:2px solid var(--lime);outline-offset:5px}button{border:0}h1,h2,h3,p{margin:0}h2{font-size:18px}h3{font-size:16px}.topbar{height:80px;border-bottom:1px solid #ffffff10;padding:0 max(28px,calc((100vw - 1336px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;background:#0e0918a8}.brand{font-size:24px;font-weight:950;letter-spacing:-1.2px;line-height:1}.brand span{display:block;font-size:12px;letter-spacing:4px;margin-top:5px}.topbar-right{display:flex;align-items:center;gap:28px;font-size:14px}.edition{letter-spacing:2px;font-size:12px;color:var(--muted)}.text-button{padding:6px 0;background:none;color:var(--muted);font-size:14px}.text-button:hover{color:var(--lime)}.shop-link{padding:9px 15px;border:1px solid #57416f;border-radius:6px;white-space:nowrap}.shop-link span{margin-left:14px}.shop-link:hover{background:#2a1a3e}.arcade{max-width:1336px;padding:30px 28px 0;margin:auto}.game-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:28px}.eyebrow{font-size:12px;font-weight:700;letter-spacing:2px;color:var(--purple);display:flex;align-items:center;gap:10px}.tiny-line{width:20px;height:2px;background:var(--purple)}.demo-tag{font-size:12px;letter-spacing:1px;color:var(--muted);background:#ffffff08;border:1px solid var(--line);padding:1px 6px;border-radius:3px}h1{font-size:36px;letter-spacing:1px;line-height:1.35;font-weight:900;margin-top:8px}h1 span{color:var(--lime);margin-left:14px}.subtitle{font-size:14px;color:var(--muted);margin-top:5px;letter-spacing:2px}.heading-art{width:235px;transform:rotate(-5deg);margin-right:10px}.sprite{position:relative;display:block;overflow:hidden;mix-blend-mode:screen;aspect-ratio:1;flex-shrink:0}.sprite img{position:absolute;max-width:none;pointer-events:none;user-select:none}.game-layout{display:grid;grid-template-columns:248px minmax(300px,532px) 248px;gap:26px;justify-content:center;align-items:start}.section-heading{display:flex;gap:10px;align-items:center;margin-top:2px}.section-number{font-size:12px;letter-spacing:1px;color:var(--purple);border:1px solid #614086;border-radius:50%;height:26px;width:26px;display:grid;place-items:center}.section-heading h2{font-size:17px;letter-spacing:.5px}.panel-caption{font-size:13px;color:var(--muted);margin:8px 0 21px}.character-grid{border:0;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.character-option{position:relative;min-width:0}.character-option input{position:absolute;width:1px;height:1px;opacity:0}.character-option label{display:block;cursor:pointer;border:1px solid var(--line);border-radius:10px;background:linear-gradient(135deg,#231630,#151020);padding:9px 7px 10px;text-align:center;transition:border-color .2s,background .2s,transform .2s;position:relative;overflow:hidden}.character-option input:checked+label{border-color:var(--lime);background:radial-gradient(ellipse at 50% 20%,#3e3439,#211a27 75%);box-shadow:0 0 0 1px #d7ff631a}.character-option input:disabled+label{cursor:default}.character-option label:hover{border-color:var(--purple);transform:translateY(-2px)}.character-option .sprite{height:122px;width:100%;margin:auto}.character-option .character-name{display:block;font-size:14px;font-weight:700;margin-top:3px}.character-code{font:10px/1.5 monospace;letter-spacing:1px;color:var(--muted)}.selected-check{position:absolute;right:6px;top:6px;background:var(--lime);color:#1b1920;width:18px;height:18px;border-radius:50%;font-size:12px;font-weight:900;display:none}.character-option input:checked+label .selected-check{display:block}.selected-note{display:flex;align-items:center;gap:9px;margin:18px 0 22px;padding-bottom:20px;border-bottom:1px solid var(--line)}#selected-dot{background:var(--lime);width:6px;height:6px;border-radius:50%}.selected-note p{display:flex;flex-direction:column}.selected-note strong{font-size:14px}.selected-note p span{font-size:12px;color:var(--muted);margin-top:2px}.mini-label{font-size:10px;color:var(--lime);margin-left:auto;letter-spacing:1px}.mini-poster{position:relative;overflow:hidden;border-radius:9px;border:1px solid var(--line);background:#07040e}.mini-poster img{width:100%;display:block}.mini-poster>span{display:block;font-size:10px;text-align:center;letter-spacing:1px;padding:8px 3px;color:var(--muted)}.local-note{font-size:12px;line-height:1.7;color:#9d8bb3;margin-top:12px}.game-machine{border:1px solid #664398;border-radius:14px;background:#110c1d;box-shadow:0 0 0 5px #a670ff06,0 25px 65px #0005;overflow:hidden;position:relative}.machine-top{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #553178;padding:8px 16px;min-height:46px;background:linear-gradient(90deg,#321c4c,#241535);font-size:14px;font-weight:700}.machine-top>div{display:flex;align-items:center;gap:8px}.live-mark{height:6px;width:6px;background:var(--lime);border-radius:50%}.level{font-size:10px;letter-spacing:1px;color:#b2a0c9;margin-left:7px}.machine-actions{gap:4px!important}.icon-button{width:32px;height:32px;border-radius:5px;background:transparent;display:grid;place-items:center}.icon-button:hover{background:#ffffff12}.icon-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.scorebar{display:flex;align-items:center;justify-content:space-between;height:74px;padding:12px 22px;border-bottom:1px solid #302041}.scorebar>div{display:flex;flex-direction:column;gap:2px}.score-label{font-size:10px;font-family:monospace;letter-spacing:2px;color:#ae99c7}.scorebar strong{font-family:"Courier New",monospace;font-size:26px;line-height:1.1;font-weight:700;font-variant-numeric:tabular-nums;color:var(--lime)}.scorebar .timer{flex-direction:row;align-items:center;gap:6px;border:1px solid #6c4a23;color:var(--orange);border-radius:50px;padding:7px 15px;background:#34201455}.timer strong{color:var(--orange);font-size:24px}.timer>span:last-child{font-size:13px}.timer.urgent{border-color:#ff6787;color:#ff6787}.timer.urgent strong{color:#ff6787}.lives-wrap{align-items:flex-end}.lives{color:var(--pink);font-size:19px;letter-spacing:2px;line-height:1.5}.lives .lost{color:#4c344b}.board-wrap{position:relative;background:#110a1d;isolation:isolate}#game-canvas{display:block;width:100%;height:auto;aspect-ratio:19/21;touch-action:none;outline-offset:-4px}.board-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#10091d90;backdrop-filter:blur(2px);padding:20px}.board-overlay[hidden]{display:none}.overlay-panel{text-align:center;padding:24px 20px 25px;border:1px solid #9f70d55c;background:linear-gradient(160deg,#2b1943ed,#170e29f5);border-radius:16px;box-shadow:0 20px 50px #0007;width:310px;max-width:100%;position:relative}.overlay-kicker{font-size:10px;letter-spacing:2px;color:var(--lime)}.start-character{width:152px;height:145px;margin:12px auto 8px;position:relative}.start-character:before{content:"";position:absolute;inset:15%;border-radius:50%;background:#b277ff;filter:blur(40px);opacity:.2}.start-character .sprite{width:100%;height:100%;animation:float 3s ease-in-out infinite}.overlay-panel h2{font-size:24px;font-weight:900;letter-spacing:1px}.overlay-panel>p{font-size:14px;color:#cbbbdc;line-height:1.85;margin:8px 0 20px}.overlay-panel>p b{color:var(--ink)}.primary-button{background:var(--lime);color:#242419;border:1px solid var(--lime);border-radius:7px;display:flex;align-items:center;justify-content:center;gap:18px;padding:13px 18px;min-height:48px;font-size:16px;font-weight:800;transition:filter .2s,transform .2s;width:100%;box-shadow:0 4px 0 #8caa2c}.primary-button:hover{filter:brightness(1.07);transform:translateY(-1px)}.primary-button:active{transform:translateY(2px);box-shadow:0 1px 0 #8caa2c}.start-hint{display:block;font-size:12px;color:var(--muted);margin-top:16px}.machine-bottom{padding:10px 13px;border-top:1px solid #3b2653;display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:11px;gap:7px}.machine-bottom>span:first-child{display:flex;align-items:center;gap:2px}.key-cap{border:1px solid #62467d;background:#241731;border-radius:3px;font-style:normal;font-size:11px;display:inline-grid;place-items:center;width:18px;height:20px}.desktop-help{margin-left:5px}.best-label{font-family:monospace;white-space:nowrap}.best-label b{color:var(--orange);margin-left:4px}.touch-controls{display:none}.mission-card{border:1px solid var(--line);background:#1c122a;border-radius:10px;padding:17px 12px;display:flex;align-items:flex-start;gap:10px;margin-bottom:11px}.mission-art{width:40px;height:49px}.mission-info{flex:1;min-width:0}.mission-title{font-size:14px;font-weight:700;display:block}.mission-title>span{color:var(--lime)}.mission-sub{font-size:12px;color:var(--muted);display:block;margin-top:3px}.progress-track{height:5px;background:#473056;border-radius:3px;overflow:hidden;margin-top:13px}.progress-track>span{display:block;width:0;height:100%;background:var(--lime);transition:width .3s}.mission-count{display:block;color:var(--lime);font-size:16px;margin-top:5px}.mission-count>span:last-child{font-size:12px;color:#9e89b6;font-weight:400}.pumpkin-slots{display:flex;gap:7px;margin-top:14px}.pumpkin-slots>span{width:34px;height:34px;border:1px dashed #7b583a;background:#3a281933;color:#b8a08b;display:grid;place-items:center;border-radius:50%;font-size:11px;font-family:monospace}.pumpkin-slots>span.found{background:#ffb856;border:1px solid #ffb856;color:#3b270f}.legend{margin:25px 0}.legend h3{color:#aa94bf;font-size:12px;letter-spacing:1px;margin-bottom:12px}.legend>div{display:flex;gap:11px;align-items:center;margin:10px 0}.legend .sprite{width:34px;height:36px}.legend p{font-size:13px;font-weight:700}.legend p>span{display:block;font-size:12px;color:var(--muted);font-weight:400}.reward-ticket{border:1px solid #ad72fa5c;border-radius:10px;background:linear-gradient(140deg,#36204b,#211431);padding:16px 18px;position:relative}.ticket-top{display:flex;justify-content:space-between;border-bottom:1px dashed #805c9e;padding-bottom:10px;margin-bottom:13px;color:#b793df;font-size:10px;letter-spacing:2px}.reward-ticket h3{font-size:21px;line-height:1.5;letter-spacing:1px}.reward-ticket p{font-size:12px;color:#baa6cd;line-height:1.8;margin-top:10px}.ticket-link{display:flex;justify-content:space-between;align-items:center;font-size:14px;font-weight:700;color:var(--lime);padding:13px 0 10px;border-bottom:1px dashed #805c9e}.ticket-foot{font-size:10px;color:#baa6cd;display:block;margin-top:10px}.power-message{position:absolute;top:8px;left:50%;transform:translateX(-50%);background:var(--lime);color:#241d17;font-size:12px;padding:6px 12px;border-radius:20px;white-space:nowrap;font-weight:700;box-shadow:0 5px 20px #0004;pointer-events:none}.power-message strong{margin-left:8px}.board-toast{position:absolute;top:43%;left:50%;transform:translate(-50%,-50%);background:#190c2deb;border:1px solid var(--purple);box-shadow:0 10px 40px #0006;border-radius:8px;padding:12px 18px;font-size:15px;white-space:nowrap;text-align:center;pointer-events:none}.pause-ghost{width:100px;height:100px;margin:0 auto 14px}.overlay-panel>.text-button{margin-top:15px}.arcade footer{display:flex;justify-content:space-between;gap:16px;border-top:1px solid #ffffff0b;margin-top:32px;padding:18px 0 24px;color:#8c779f;font-size:10px}.modal{border:1px solid #77549f;background:linear-gradient(140deg,#2a183e,#150d22);color:var(--ink);border-radius:18px;width:min(480px,calc(100vw - 32px));padding:32px;box-shadow:0 30px 100px #000a;max-height:calc(100dvh - 40px);overflow:auto}.modal::backdrop{background:#080410ce;backdrop-filter:blur(8px)}.modal>.eyebrow{font-size:11px;margin-bottom:8px}.modal h2{font-size:27px;margin-bottom:20px}.dialog-close{position:absolute;right:14px;top:12px;background:#ffffff0b;color:var(--muted);width:32px;height:32px;border-radius:50%;font-size:23px}.rules-list{padding-left:22px;margin:0}.rules-list li{padding-left:7px;margin-bottom:16px}.rules-list li::marker{color:var(--lime)}.rules-list strong{font-size:16px}.rules-list p{font-size:14px;color:var(--muted);margin-top:3px}.disclaimer{font-size:12px;color:var(--muted);line-height:1.75;padding:12px;background:#0a051733;border:1px solid #8e61ac26;border-radius:6px;margin:18px 0}.result-modal{text-align:center}.result-modal>.eyebrow{justify-content:center}.result-modal h2{margin:10px 0 20px}.result-card{border:1px dashed #916fbd;border-radius:12px;background:radial-gradient(ellipse at 50% 25%,#65408250,transparent 70%),#110b1e;padding:16px 20px}.result-card .sprite{width:116px;height:126px;margin:0 auto}.result-card>p{font-size:14px;color:var(--muted)}.result-card>strong{font-family:"Courier New",monospace;font-size:54px;display:block;color:var(--lime);line-height:1.3}.result-card>span{font-size:10px;letter-spacing:3px;color:var(--muted)}.result-stats{display:flex;justify-content:space-around;font-size:13px;border-top:1px dashed #684484;margin-top:15px;padding-top:12px}.result-stats b{color:var(--orange);margin-left:8px}#result-description{font-size:14px;color:var(--muted);margin:17px 0}.result-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-buttons>.primary-button{grid-column:1/-1;margin-bottom:4px}.secondary-button{border:1px solid #6d4c8d;background:#2b1b3d;border-radius:6px;font-size:14px;padding:10px 8px;min-height:44px}.secondary-button:hover{background:#3d2753}#play-again{margin-top:18px}.result-modal .disclaimer{background:none;border:0;margin-bottom:0;padding-bottom:0}.global-toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);width:max-content;padding:13px 20px;border:1px solid var(--purple);border-radius:8px;color:var(--ink);background:#271938;box-shadow:0 5px 40px #0008;font-size:14px;z-index:50}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@media(min-width:1250px){.game-layout{grid-template-columns:248px minmax(300px,504px) 248px;gap:30px}}
@media(max-width:1100px){.game-layout{grid-template-columns:210px minmax(300px,500px);gap:24px}.mission-panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:16px}.mission-panel>.section-heading{grid-column:1/-1}.mission-panel>.panel-caption{display:none}.mission-card{margin:0}.legend{margin:0}.reward-ticket{grid-row:3 / 5;grid-column:2}.heading-art{width:200px}.character-option .sprite{height:102px}.game-heading h1{font-size:31px}.machine-bottom{font-size:10px}.desktop-help{display:none}}
@media(max-width:720px){.topbar{height:64px;padding:0 18px}.brand{font-size:20px}.brand span{font-size:10px;letter-spacing:3px}.topbar-right{gap:13px}.edition{display:none}.shop-link{font-size:12px;padding:7px 10px}.shop-link span{margin-left:5px}.topbar .text-button{font-size:12px}.arcade{padding:20px 16px 0}.game-heading{margin-bottom:18px;gap:0}.game-heading h1{font-size:26px;letter-spacing:0;line-height:1.5}.game-heading h1 span{margin-left:8px}.eyebrow{font-size:9px;letter-spacing:1px;gap:6px}.demo-tag{font-size:10px}.tiny-line{width:12px}.subtitle{font-size:12px;letter-spacing:1px}.heading-art{display:none}.game-layout{display:flex;flex-direction:column;gap:18px;align-items:stretch;max-width:504px;margin:auto}.character-panel .section-heading{display:none}.character-panel>.panel-caption{display:none}.character-grid{grid-template-columns:repeat(4,1fr);gap:7px}.character-option label{padding:4px 3px 7px;border-radius:8px}.character-option .sprite{width:100%;height:84px}.character-option .character-name{font-size:12px}.character-code{font-size:8px;letter-spacing:.5px}.selected-check{height:14px;width:14px;font-size:9px;right:4px;top:4px}.selected-note,.mini-poster,.local-note{display:none}.game-machine{border-radius:10px}.machine-top{padding:6px 12px;min-height:39px}.scorebar{height:63px;padding:8px 18px}.scorebar strong{font-size:23px}.scorebar .timer{padding:6px 12px}.timer strong{font-size:21px}.lives{font-size:16px}.machine-bottom{padding:9px 12px}.machine-bottom>span:nth-child(2){display:none}.desktop-help{display:inline;font-size:10px}.overlay-panel{padding:20px 18px;width:278px}.start-character{width:125px;height:115px;margin-top:9px}.overlay-panel h2{font-size:22px}.overlay-panel>p{margin-bottom:16px}.touch-controls{display:grid;grid-template-columns:44px 44px 44px 1fr;grid-template-rows:42px 42px 42px;gap:4px;padding:14px 22px 18px;border-top:1px solid #3b2653;align-items:center}.direction{height:42px;width:44px;display:grid;place-items:center;background:#322045;border:1px solid #684988;border-radius:8px;color:#ddc8f5;font-size:25px;font-weight:700;touch-action:none;user-select:none}.direction:active{color:#201523;background:var(--lime)}.direction.up{grid-column:2;grid-row:1}.direction.left{grid-column:1;grid-row:2}.direction.right{grid-column:3;grid-row:2}.direction.down{grid-column:2;grid-row:3}.pad-center{grid-column:2;grid-row:2;font-size:9px;text-align:center;color:#9e79c8;letter-spacing:1px}.touch-tip{grid-column:4;grid-row:1/4;font-size:12px;color:var(--muted);padding-left:16px;line-height:1.9}.mission-panel{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.mission-panel>.section-heading{margin-bottom:6px}.mission-card{padding:13px 10px;gap:6px}.mission-art{width:28px;height:37px}.mission-title{font-size:12px}.mission-sub{font-size:10px}.mission-count{font-size:15px}.pumpkin-slots{gap:5px}.pumpkin-slots>span{width:27px;height:27px;font-size:10px}.legend{margin-top:10px}.legend>div{gap:7px}.legend p{font-size:12px}.legend p>span{font-size:10px}.legend .sprite{width:30px;height:32px}.reward-ticket{padding:12px;margin-top:10px}.reward-ticket h3{font-size:17px}.reward-ticket p{font-size:11px}.ticket-link{font-size:12px}.ticket-foot{font-size:9px}.ticket-top{font-size:9px}.arcade footer{display:block;text-align:center;font-size:9px;margin-top:25px}.arcade footer p+p{margin-top:5px}.modal{padding:27px 23px}.modal h2{font-size:24px}.rules-list p{font-size:13px}.board-toast{font-size:13px;padding:10px 13px}.power-message{font-size:10px;max-width:95%;padding:5px 9px}}
@media(max-width:374px){.arcade{padding-left:10px;padding-right:10px}.game-heading h1{font-size:23px}.character-option .sprite{height:70px}.character-code{display:none}.character-option .character-name{font-size:11px}.touch-controls{padding-left:14px}.touch-tip{padding-left:10px;font-size:11px}.mission-art{display:none}}

@media(max-width:720px){#pause-toggle{width:44px;height:44px;background:#ffffff10;border:1px solid #ffffff18}#pause-toggle:active{background:var(--lime);color:#211629}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* Keep compact arcade metadata legible without changing the artwork. */
.brand span,.eyebrow,.demo-tag,.edition,.character-code,.mini-label,.mini-poster>span,.overlay-kicker,.score-label,.level,.machine-bottom,.key-cap,.ticket-top,.ticket-foot,.arcade footer,.modal>.eyebrow,.result-card>span{font-size:12px}
.sprite>svg{display:block;overflow:hidden;width:100%;height:100%;pointer-events:none}
.heading-art>.sprite{aspect-ratio:2.2}
.character-code{display:block;font-size:12px;letter-spacing:0;line-height:1.4;margin-top:4px}
.mission-title,.legend p,.ticket-link{font-size:14px}
.panel-caption,.subtitle,.overlay-panel>p,.rules-list p{font-size:14px}
.legend p>span,.mission-sub,.ticket-foot,.ticket-top,.reward-ticket p{font-size:12px}
.touch-controls .direction{min-height:44px}
@media(max-width:720px){
  .character-code{display:none}
  .character-option .character-name{font-size:14px;line-height:1.5;min-height:21px}
  .topbar .text-button,.shop-link{font-size:14px}
  .brand span{letter-spacing:2px}
  .desktop-help,.eyebrow,.demo-tag,.arcade footer,.ticket-foot,.ticket-top,.mission-sub,.legend p>span{font-size:12px}
  .machine-bottom .desktop-help{display:none}
  .machine-bottom{font-size:12px}
  .mission-card{display:block}
  .mission-art{width:36px;height:38px;margin-bottom:7px}
  .mission-title,.legend p{font-size:14px}
  .legend>div{align-items:flex-start}
  .reward-ticket p{font-size:12px}
  .game-heading h1{font-size:clamp(23px,6vw,28px)}
  .power-message{font-size:12px;white-space:normal;text-align:center;width:max-content}
  .touch-controls{grid-template-rows:44px 44px 44px}
}
@media(max-width:374px){.character-option .character-name{font-size:12px}.topbar{padding:0 12px}.topbar-right{gap:10px}.eyebrow{letter-spacing:0}.touch-tip{font-size:12px}}
