.source-link[data-v-e187a28a]{display:block;margin-top:.4rem;font-size:.8rem;opacity:.7}.build-version[data-v-e187a28a]{display:block;margin-top:.4rem;font-size:.8rem;opacity:.6}.dev-toggle[data-v-e187a28a]{margin-top:.3rem;font:inherit;font-size:.75rem;background:none;border:none;color:inherit;opacity:.45;cursor:pointer;text-decoration:underline;padding:0}.dev-toggle[data-v-e187a28a]:hover{opacity:.8}.exit-confirm[data-v-631014d9]{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#0009}.exit-confirm-box[data-v-631014d9]{max-width:min(22rem,90%);padding:1.25rem 1.5rem;border-radius:.75rem;background:var(--card, #1d1f2b);color:var(--text, #f2f2f2);box-shadow:0 .5rem 2rem #00000080;text-align:center}.exit-confirm-title[data-v-631014d9]{margin:0 0 .5rem;font-size:1.1rem;font-weight:700}.exit-confirm-body[data-v-631014d9]{margin:0 0 1rem;opacity:.85}.exit-confirm-actions[data-v-631014d9]{display:flex;gap:.75rem;justify-content:center}.exit-confirm-btn[data-v-631014d9]{min-width:6rem;padding:.5rem 1rem;border:1px solid currentColor;border-radius:999px;background:transparent;color:inherit;font:inherit;cursor:pointer}.exit-confirm-danger[data-v-631014d9]{border-color:#e05a5a;background:#e05a5a;color:#fff}.games-intro[data-v-f818c620]{margin:12px 0 64px}.games-intro h1[data-v-f818c620]{margin-bottom:16px}.games-intro .lead[data-v-f818c620]{margin-bottom:8px}.games-intro .intro-line[data-v-f818c620]{margin-bottom:26px}.gauge-list[data-v-dd9e62bf],.chapter-list[data-v-dd9e62bf]{list-style:none;padding:0;margin:0}.gauge-list>li[data-v-dd9e62bf]{margin-bottom:.9rem}.gauge-head[data-v-dd9e62bf]{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem;margin-bottom:.25rem}.gauge-label[data-v-dd9e62bf]{font-weight:600}.gauge-warning[data-v-dd9e62bf]{margin:.3rem 0 0;font-size:.85em;color:var(--muted, #888)}.chapter-list>li[data-v-dd9e62bf]{padding:.5rem 0;border-top:1px solid var(--line, #2a2a2a)}.chapter-head[data-v-dd9e62bf]{display:flex;justify-content:space-between;align-items:baseline;gap:.8rem}.chapter-state[data-v-dd9e62bf]{font-size:.85em;color:var(--muted, #888)}.chapter-state.playable[data-v-dd9e62bf]{color:var(--accent, #3a7);font-weight:700}.chapter-parts[data-v-dd9e62bf]{margin:.25rem 0 0;font-size:.85em;color:var(--muted, #888);display:flex;flex-wrap:wrap;gap:.2rem .9rem}.teaser-card[data-v-b8e74461]{margin:18px 0 6px}.teaser-card h3[data-v-b8e74461]{margin:6px 0 8px}.teaser-card p[data-v-b8e74461]{margin:0}.feature-list[data-v-b8e74461]{list-style:none;padding:0;margin:0 0 1.5rem;display:grid;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));gap:.4rem .8rem}.feature-list li[data-v-b8e74461]{display:flex;align-items:center;gap:.5rem}.feature-list li[data-v-b8e74461]:before{content:"✓";color:var(--accent, #3a7);font-weight:700}.feature-list li.planned[data-v-b8e74461]:before{content:"·";color:var(--muted, #888)}.tier-systems-heading[data-v-390b9d67]{margin:.6rem 0 .2rem;font-size:.85em;color:var(--muted, #888)}.tier-systems[data-v-390b9d67]{list-style:none;padding:0;margin:0 0 .6rem;font-size:.9em}.tier-systems li[data-v-390b9d67]{padding:.1rem 0;color:var(--muted, #888)}.tier-systems li.done[data-v-390b9d67],#systems li.done[data-v-390b9d67],#engine-systems li.done[data-v-390b9d67]{color:inherit}@font-face{font-family:FusionPixel;src:url(/assets/fonts/fusion_pixel_12_zh_hant.woff2) format("woff2");font-display:swap}:root{--mint: #a8d5ba;--mint-light: #d4ede0;--mint-ink: #4f8a68;--lavender: #c4b8e0;--lavender-light: #e4ddf0;--lavender-ink: #7a6aa8;--sand: #e8d5b7;--sand-light: #f3ebe0;--coral: #e8998d;--coral-dark: #d0776a;--coral-light: #f5cec8;--bg: #f7f5f0;--bg-alt: #efede7;--white: #fff;--text: #4a4545;--muted: #7a7575;--heading: #3a3535;--line: #e2ded4;--radius: 16px;--radius-sm: 10px;--radius-lg: 24px;--shadow: 0 8px 30px rgba(74, 69, 69, .08);--shadow-lg: 0 16px 50px rgba(74, 69, 69, .12);--ease: .3s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:Noto Sans TC,system-ui,-apple-system,PingFang TC,Microsoft JhengHei,sans-serif;line-height:1.75;overflow-x:hidden;-webkit-font-smoothing:antialiased}img{max-width:100%;height:auto;display:block}a{color:var(--lavender-ink);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{color:var(--heading);line-height:1.35;margin:0 0 12px}h1{font-size:clamp(1.9rem,4.4vw,2.7rem);font-weight:700}h2{font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;margin-top:8px}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 14px}:root{--page-gutter: 20px}.wrap{max-width:1120px;margin:0 auto;padding:0 var(--page-gutter)}.nav{position:relative;z-index:50;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:12px 20px;max-width:1120px}.nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:50%;z-index:-1;width:100vw;transform:translate(-50%);background:#f7f5f0e0;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.brand{display:inline-flex;align-items:center;gap:9px;font-family:FusionPixel,ui-monospace,monospace;font-size:1.3rem;letter-spacing:1px;color:var(--heading)}.brand:hover{text-decoration:none}.brand-icon-wrap{display:inline-flex;line-height:0}.brand-icon{width:24px;height:24px;border-radius:7px;box-shadow:0 3px 10px #4a454529}.nav ul{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0 0 0 auto;padding:0}.nav ul a{display:block;padding:7px 14px;border-radius:999px;font-size:.93rem;font-weight:500;color:var(--muted);transition:var(--ease)}.nav ul a:hover{background:var(--sand-light);color:var(--heading);text-decoration:none}.nav a.active{background:var(--mint-light);color:var(--mint-ink);font-weight:700}.locale-switcher{flex:0 0 auto;font:inherit;font-size:.88rem;color:var(--muted);padding:4px 8px;border:1px solid var(--line);border-radius:999px;background:var(--card);transition:var(--ease)}.locale-switcher:hover{background:var(--sand-light);color:var(--heading)}.btn{display:inline-flex;align-items:center;justify-content:center;padding:12px 28px;margin:0 8px 8px 0;border:0;border-radius:999px;background:var(--coral);color:var(--white);font:inherit;font-weight:600;cursor:pointer;box-shadow:0 4px 16px #e8998d4d;transition:var(--ease)}.btn:hover{background:var(--coral-dark);transform:translateY(-2px);color:var(--white);text-decoration:none}.btn.secondary{background:transparent;color:var(--text);border:2px solid var(--sand);box-shadow:none}.btn.secondary:hover{background:var(--sand-light);border-color:var(--coral);color:var(--text)}.btn.disabled{background:var(--bg-alt);color:var(--muted);box-shadow:none;cursor:not-allowed;transform:none}main.wrap{padding-top:28px;padding-bottom:24px}section{margin:64px 0}.section-head{max-width:640px;margin:0 auto 36px;text-align:center}.section-head p{color:var(--muted);margin:0}.lead{font-size:1.08rem;color:var(--muted)}.muted{color:var(--muted)}.hero{margin:12px 0 72px}.hero-split{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}.hero h1{margin-bottom:16px}.hero .accent{color:var(--coral)}.hero p.sub{font-size:1.12rem;color:var(--muted);margin-bottom:28px}.hero-art{display:block;margin:0}.hero-art img{width:100%;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow);transition:var(--ease)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card p{color:var(--muted);margin-bottom:0}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:22px}.intro-line{margin-bottom:22px}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}.game-grid>*{min-width:0}.game-grid-card{display:flex;gap:14px;align-items:flex-start;padding:18px;min-width:0}.game-grid-card .cover-sm{flex-shrink:0;width:104px;height:104px;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius-sm);background:var(--bg-alt)}.game-grid-body{flex:1;min-width:0}.game-grid-body h3{margin:0 0 3px;font-size:1.02rem}.game-grid-body .orig{color:var(--muted);font-size:.78rem;margin:0 0 6px}.game-grid-body .tag{margin:0 0 8px}.game-grid-body .blurb{color:var(--muted);font-size:.86rem;margin:0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.game-grid-body .progress-link{margin-top:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}.step-card{position:relative;text-align:center;padding-top:30px}.step-num{position:absolute;top:-18px;left:50%;transform:translate(-50%);width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--coral);color:var(--white);font-weight:700;box-shadow:0 4px 12px #e8998d4d}.step-card img{border-radius:var(--radius);margin:0 0 18px}.duo{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}.duo.narrow-art{grid-template-columns:.85fr 1.15fr}.figure{margin:0;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);background:var(--white)}.figure img{width:100%}.figure figcaption{padding:10px 16px;font-size:.85rem;color:var(--muted)}.banner{margin:0 0 36px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow)}.banner img{width:100%}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.facts.four{grid-template-columns:repeat(4,1fr)}.fact{display:flex;gap:12px;align-items:flex-start}.fact .fact-icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);background:var(--white);box-shadow:var(--shadow);font-size:1.25rem}.fact strong{display:block;color:var(--heading)}.fact p{font-size:.9rem;color:var(--muted);margin:0}.tag{display:inline-block;margin:0 6px 6px 0;padding:3px 12px;border-radius:999px;background:var(--mint-light);color:var(--mint-ink);font-size:.78rem;font-weight:600}.tag+.tag{background:var(--lavender-light);color:var(--lavender-ink)}.tag.soon{background:var(--sand-light);color:#9a7c4a}.tag.state-active,.tag+.tag.state-active{background:var(--mint-light);color:var(--mint-ink)}.tag.state-fan,.tag+.tag.state-fan{background:var(--bg-alt);color:var(--muted)}.tag.state-none,.tag+.tag.state-none{background:var(--coral-light);color:var(--coral-dark);opacity:.85}.card .cover{width:100%;aspect-ratio:3 / 4;object-fit:cover;border-radius:var(--radius);margin-bottom:14px;background:var(--bg-alt)}.card .credit{font-size:.75rem;color:var(--muted);margin:10px 0 0}.progress-link{display:inline-block;margin-top:10px;font-size:.85rem;font-weight:600;color:var(--lavender-ink)}.mono{font-family:ui-monospace,Consolas,monospace;font-size:.72rem;color:var(--muted);word-break:break-all}.untranslated{display:inline-block;margin-left:6px;font-size:.78rem;font-style:italic;color:var(--muted);text-decoration:none;border-bottom:1px dotted currentColor}.untranslated:hover,.untranslated:focus-visible{color:var(--text)}.empty-state{text-align:center;padding:8px 0 0}.empty-state img{max-width:320px;margin:0 auto 12px;border-radius:var(--radius)}.empty-state p{color:var(--muted)}.progress{height:14px;background:var(--bg-alt);border-radius:999px;overflow:hidden}.progress>div{height:100%;background:linear-gradient(90deg,var(--mint),var(--coral));transition:width .6s ease}.tier.reached{border-color:var(--mint);background:var(--mint-light)}.tier h3{color:var(--coral-dark)}#systems,#reports{list-style:none;padding:0}#systems li,#reports li{background:var(--white);border-radius:var(--radius-sm);padding:12px 16px;margin-bottom:10px;box-shadow:var(--shadow)}#funding-links{display:flex;flex-wrap:wrap;gap:4px}.slot{display:flex;align-items:center;justify-content:center;margin:32px auto;border:2px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:.82rem;background:var(--bg-alt)}.slot-leaderboard{width:min(728px,100%);height:90px}.slot-rect{width:min(300px,100%);height:250px}footer{margin-top:72px;padding:32px 0;background:var(--heading);color:#ffffffb8;font-size:.85rem}footer a{color:var(--coral-light)}.prose{max-width:820px}.prose h2{margin-top:40px}.prose ul{padding-left:22px}.prose li{margin:8px 0}.note{background:var(--lavender-light);border-radius:var(--radius);padding:18px 22px;color:var(--text)}.note p:last-child{margin-bottom:0}.play-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}.play-grid>*{min-width:0}.options-drawer{position:fixed;top:0;right:0;bottom:0;z-index:60;width:min(380px,100vw);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;gap:12px;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));background:var(--sand-light, #f7f2ea);box-shadow:var(--shadow-lg);transform:translate(100%);visibility:hidden;transition:transform .22s ease,visibility 0s linear .22s}.options-drawer.open{transform:none;visibility:visible;transition:transform .22s ease}.options-drawer>*{min-width:0;max-width:100%;flex:0 0 auto}.options-drawer .options-panel{margin:0}.options-drawer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.options-drawer-head .btn{margin:0}.options-drawer-title{margin:0;font-size:1.05rem;color:var(--heading)}.drawer-close{display:grid;place-items:center;width:36px;height:36px;flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--text);cursor:pointer;transition:var(--ease)}.drawer-close svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.drawer-close:hover{background:var(--sand-light);border-color:var(--sand)}.drawer-close:focus-visible{outline:3px solid var(--lavender-ink);outline-offset:2px}.options-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:59;background:#17151a59;opacity:0;pointer-events:none;transition:opacity .22s ease}.options-backdrop.open{opacity:1;pointer-events:auto}.options-toggle-icon{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}@media(prefers-reduced-motion:reduce){.options-drawer,.options-drawer.open,.options-backdrop{transition:none}}.panel-toolbar{margin:0}.panel-divider{display:flex;align-items:center;gap:14px;margin:26px 0 22px}.panel-divider:before,.panel-divider:after{content:"";flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--lavender))}.panel-divider:after{background:linear-gradient(90deg,var(--lavender),transparent)}.panel-divider-gem{width:10px;height:10px;background:var(--lavender-ink);transform:rotate(45deg);box-shadow:0 0 0 3px var(--white),0 0 0 5px var(--lavender)}.toolbar{display:flex;flex-direction:column;align-items:center;gap:10px;width:100%}.toolbar .btn{width:100%;margin:0}.toolbar .status{color:var(--muted);font-size:.88rem}.toolbar .save-hint{color:var(--muted);font-size:.8rem}.stage{position:relative;width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-lg);overflow:hidden;background:#17151a;box-shadow:var(--shadow-lg)}.stage iframe{width:100%;height:100%;border:0;display:block;touch-action:none}.stage.fit-game{aspect-ratio:var(--stage-ar);max-height:none}.stage.fit-game iframe{position:absolute;left:var(--frame-x);top:var(--frame-y);width:var(--frame-w);height:var(--frame-h)}.stage.dragover{outline:3px dashed var(--coral);outline-offset:-6px}.stage{position:relative}.play-main{--stage-w: 100%}.play-main.scale-native{--stage-w: 640px}.play-main.scale-2x{--stage-w: 960px}.play-main.scale-4x{--stage-w: 100%}.stage-backdrop{background:#000;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.play-main .stage,.play-main .web-controls,.play-main .stage-tools{width:min(100%,var(--stage-w));margin-inline:auto}.play-main .stage{box-shadow:none}.stage.scale-native{max-height:480px}.dropzone-hint{color:var(--muted);font-size:.88rem;margin-top:14px}.options-panel{padding:22px 24px;position:relative;overflow:hidden}.option-static{color:var(--muted);font-size:.9rem}.option-body{position:relative}.option-disable-layer{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;overflow:hidden;display:flex;align-items:center;justify-content:center;background:#ffffff59;pointer-events:none;animation:option-disable-in .45s ease-out both}.option-disable{transform:rotate(-45deg);padding:10px 120px;white-space:nowrap;background:#ddd;color:#444;opacity:.55;font-size:1.05rem;letter-spacing:.08em}@keyframes option-disable-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.option-disable-layer{animation:none}}.options-panel h3{margin:0 0 4px;font-size:1.05rem}.option-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0;border-bottom:1px solid var(--line)}.option-row:last-child{border-bottom:0;padding-bottom:0}.option-label{font-size:.88rem;color:var(--heading);font-weight:500;flex-shrink:0}.option-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;min-width:0}.option-control select{font:inherit;font-size:.84rem;padding:6px 10px;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--white);color:var(--text)}.option-control select:disabled{opacity:.55;cursor:not-allowed;background:var(--bg-alt)}.option-hint{position:relative;display:inline-flex;align-items:center;flex-shrink:0}.option-hint-btn{width:18px;height:18px;padding:0;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--muted);font:inherit;font-size:.72rem;line-height:1;cursor:help}.option-hint-btn:hover,.option-hint-btn:focus-visible{color:var(--heading);border-color:var(--heading)}.option-hint-bubble{position:absolute;right:0;bottom:calc(100% + 6px);z-index:6;min-width:180px;max-width:280px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--card, #fff);color:var(--muted);font-size:.72rem;line-height:1.5;overflow-wrap:anywhere;box-shadow:var(--shadow-lg);visibility:hidden;opacity:0;transition:opacity .15s ease-out}.option-hint:hover .option-hint-bubble,.option-hint:focus-within .option-hint-bubble,.option-hint.is-open .option-hint-bubble{visibility:visible;opacity:1}@media(prefers-reduced-motion:reduce){.option-hint-bubble{transition:none}}.segmented{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.segmented button{font:inherit;font-size:.78rem;padding:5px 12px;border:0;background:var(--white);color:var(--muted);cursor:not-allowed}.segmented button.active{background:var(--mint-light);color:var(--mint-ink);font-weight:600}.switch{position:relative;display:inline-block;width:38px;height:21px;flex-shrink:0}.switch input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;margin:0;cursor:not-allowed}.switch input:not(:disabled){cursor:pointer}.switch-track{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--bg-alt);border-radius:999px;transition:var(--ease);pointer-events:none}.switch-track:before{content:"";position:absolute;width:15px;height:15px;left:3px;top:3px;background:var(--white);border-radius:50%;box-shadow:0 1px 3px #4a454540;transition:var(--ease)}.switch input:checked+.switch-track{background:var(--mint)}.switch input:checked+.switch-track:before{transform:translate(17px)}.switch input:disabled+.switch-track{opacity:.6}.back-link{display:inline-block;margin:0 0 4px;color:var(--muted);font-size:.92rem;font-weight:500}.back-link a{color:var(--muted)}.back-link a:hover{color:var(--coral-dark)}.game-header{margin:20px 0 40px}.game-header .orig{color:var(--muted);font-size:.95rem;margin:0 0 12px}.game-detail-layout{display:grid;grid-template-columns:300px 1fr;gap:36px;align-items:start}.game-poster-box{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-lg);position:sticky;top:96px}.game-poster-box .cover{width:100%;aspect-ratio:1 / 1;object-fit:cover;border-radius:var(--radius);margin-bottom:14px;background:var(--bg-alt)}.game-poster-box .btn{width:100%;margin:12px 0 0}.game-poster-box .credit{font-size:.75rem;color:var(--muted);margin:0}.game-info-pane{background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px 36px;box-shadow:var(--shadow)}.game-info-pane h2{margin-top:34px;font-size:1.2rem}.game-info-pane h2:first-child{margin-top:0}.game-info-pane .note{margin-top:6px}.milestone-list{list-style:none;padding:0;margin:0 0 6px}.milestone-item{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--line)}.milestone-item:last-child{border-bottom:0}.milestone-dot{flex-shrink:0;width:10px;height:10px;border-radius:50%;background:var(--line)}.milestone-item.done .milestone-dot{background:var(--mint-ink)}.milestone-item.in-progress .milestone-dot{background:var(--coral)}.milestone-item.planned .milestone-dot{background:transparent;border:2px solid var(--lavender);box-sizing:border-box}.milestone-item.todo .milestone-dot{background:var(--line)}.milestone-item.teaser{opacity:.7;font-style:italic}.milestone-item.teaser .milestone-dot{background:transparent;border:2px dashed var(--lavender);box-sizing:border-box}.milestone-item.teaser .milestone-state{color:var(--lavender-ink)}.milestone-title{flex:1;color:var(--heading);font-size:.95rem}.milestone-state{flex-shrink:0;padding:2px 11px;border-radius:999px;font-size:.76rem;font-weight:600;background:var(--bg-alt);color:var(--muted)}.milestone-item.done .milestone-state{background:var(--mint-light);color:var(--mint-ink)}.milestone-item.in-progress .milestone-state{background:var(--coral-light);color:var(--coral-dark)}.milestone-item.planned .milestone-state{color:var(--lavender-ink)}.milestone-date{flex-shrink:0;font-size:.76rem;color:var(--muted);font-variant-numeric:tabular-nums}.progress-text{font-size:.85rem;color:var(--muted);margin:8px 0 14px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}label.btn:focus-within{outline:3px solid var(--lavender-ink);outline-offset:2px}:focus-visible{outline:3px solid var(--lavender-ink);outline-offset:2px}.fade-in{opacity:0;transform:translateY(26px);transition:opacity .6s ease-out,transform .6s ease-out}.fade-in.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.fade-in{opacity:1;transform:none;transition:none}.card:hover,.btn:hover,.pad-action:hover{transform:none}}@media(max-width:900px){.hero-split{grid-template-columns:1fr;gap:28px}.hero-art{order:-1}.steps{grid-template-columns:1fr;max-width:420px;margin-inline:auto}.duo,.duo.narrow-art{grid-template-columns:1fr;gap:28px}.facts,.facts.four,.game-detail-layout{grid-template-columns:1fr}.game-poster-box{position:static;max-width:340px;margin:0 auto}.game-info-pane{padding:26px 22px}section{margin:48px 0}}@media(max-width:560px){.nav{gap:8px;padding:10px 16px;flex-wrap:nowrap}.nav .brand{flex:0 0 auto}.nav ul{margin:0;justify-content:flex-start;min-width:0;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav ul::-webkit-scrollbar{display:none}.nav ul a{padding:6px 8px;font-size:.88rem;white-space:nowrap}.nav .locale-switcher{padding:4px}.nav{transition:transform .22s ease;will-change:transform}.nav.nav-hidden{transform:translateY(-100%)}@media(prefers-reduced-motion:reduce){.nav{transition:none}}.btn{width:100%;margin-right:0}.option-row{flex-wrap:wrap}.game-grid{grid-template-columns:minmax(0,1fr)}.game-grid-card .cover-sm{width:80px;height:80px}}a.game-grid-card{color:inherit;text-decoration:none}a.game-grid-card:focus-visible{outline:2px solid var(--mint-ink);outline-offset:3px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.tag.region{background:var(--lavender-light);color:var(--lavender-ink)}.tag.region.current{background:var(--lavender);color:#fff}.card-progress{margin-top:10px}.card-progress .progress.mini{height:8px}.card-progress .progress-text{display:block;margin:6px 0 0}.version-list{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}.stage-tools{margin-top:4px}.play-status{margin:4px 0 10px;text-align:center;color:var(--muted);font-size:.88rem}.play-status:empty{display:none}.play-status{animation:status-flash .45s ease-out}@keyframes status-flash{0%{color:var(--mint-ink);transform:translateY(-2px)}to{color:var(--muted);transform:none}}@media(prefers-reduced-motion:reduce){.play-status{animation:none}}.state-slots{list-style:none;margin:4px 0 10px;padding:0;display:flex;justify-content:center;gap:6px}.state-slots li{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-size:.72rem;color:var(--muted);background:var(--white);border:1px solid var(--line)}.state-slots li.filled{background:var(--lavender-light);color:var(--lavender-ink);border-color:var(--lavender)}.state-slots li.current{outline:2px solid var(--mint-ink);outline-offset:1px;font-weight:700}@keyframes slot-pulse{0%{transform:scale(1.35)}to{transform:scale(1)}}.state-slots li.current[data-pulse]{animation:slot-pulse .18s ease-out}@media(prefers-reduced-motion:reduce){.state-slots li.current[data-pulse]{animation:none}}.tool-rows{--tool-gap: 2px}.stage-tools .actions-row.tool-row{flex-wrap:nowrap;justify-content:space-between;gap:var(--tool-gap)}.tool-row>*{flex:0 1 calc((100% - 3 * var(--tool-gap)) / 4);min-width:0;justify-content:center;text-align:center;box-shadow:none}.tool-row>* span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tool-row-second{margin-top:15px}.stage-tools .actions-row.tool-row{background:var(--line);border-radius:30px;padding:0;overflow:hidden}.tool-rows .tool-row>.pad-action,.tool-rows .tool-row>#load-rom{border:0;border-radius:0;background:var(--white);color:var(--text);box-shadow:none;padding-block:12px}.tool-rows .tool-row>.pad-action:hover,.tool-rows .tool-row>#load-rom:hover{background:var(--bg-alt);color:var(--text);transform:none}.tool-rows .tool-row>.pad-action[aria-pressed=true]{background:var(--bg-alt);color:var(--heading)}.tool-rows .tool-row>.pad-action:disabled,.tool-rows .tool-row>.pad-action:disabled:hover{background:var(--white);color:var(--text);opacity:.45;cursor:not-allowed}.tool-extra{display:flex;justify-content:flex-end;margin-top:15px}@media(max-width:560px){.tool-rows{--tool-gap: 2px}.tool-rows .tool-row>*{flex-direction:column;gap:4px;padding:10px 4px;border-radius:0;font-size:.78rem}}.play-keys-hint{margin:6px 0 0;font-size:.85rem;opacity:.8;text-align:center}.play-keys-hint span{display:inline-block;white-space:nowrap;margin:0 .5em}.dev-tools .dev-group{margin:6px 0;padding:4px 8px;border-left:3px solid var(--muted)}.dev-tools .dev-group>summary{font-weight:600;cursor:pointer}.dev-tools .dev-group .dev-hint{margin:2px 0;font-variant-numeric:tabular-nums}.dev-tools .dev-group .dev-row{margin:4px 0}.stage-tools .actions-row{justify-content:flex-start}.stage-button{font:inherit;font-size:.9rem;padding:6px 14px;border-radius:8px;cursor:pointer;border:1px solid rgba(255,255,255,.3);background:#0000008c;color:#fff}.stage-button:hover{background:#000c}.stage:fullscreen{background:#000;max-width:none;aspect-ratio:auto;border-radius:0}.stage:fullscreen iframe{width:100vw;height:100vh}.stage.fit-game:fullscreen iframe{position:static}.dev-tools{margin-top:.6rem;padding:.4rem .8rem;border:1px dashed rgba(255,255,255,.25);border-radius:8px;font-size:.85rem;opacity:.85}.dev-tools summary{cursor:pointer}.dev-hint{margin:.4rem 0 0;opacity:.7}.dev-rows{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:.5rem}.dev-row{display:flex;align-items:center;gap:.4rem}.dev-row select{font:inherit;padding:4px 6px;border-radius:6px}.web-controls{margin-top:12px;display:flex;flex-direction:column;gap:10px;touch-action:none;-webkit-user-select:none;user-select:none}.controls-row{display:flex;align-items:center;justify-content:space-between;gap:16px}.dpad{--dpad-key: 44px;position:relative;flex:0 0 auto}.dpad{width:calc(3 * var(--dpad-key));height:calc(3 * var(--dpad-key))}.dpad-key{position:absolute;width:var(--dpad-key);height:var(--dpad-key);font-size:1.2rem;line-height:1;display:grid;place-items:center}.dpad-up{left:var(--dpad-key);top:0}.dpad-left{left:0;top:var(--dpad-key)}.dpad-right{left:calc(2 * var(--dpad-key));top:var(--dpad-key)}.dpad-down{left:var(--dpad-key);top:calc(2 * var(--dpad-key))}.face-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:1 1 auto;max-width:228px}.pad-key{border:0;background:transparent;padding:0;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent}.dpad-key{background:#2b2732;color:#f4efe6;border-radius:10px}.pad-key:active{filter:brightness(1.25)}.face-key img,.start-key img{width:100%;height:auto;display:block}.pad-key,.pad-action,.pad-key img,.pad-action img{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.pad-key img,.pad-action img{-webkit-user-drag:none;pointer-events:none}.web-controls .controls-row{align-items:stretch}.web-controls .dpad,.web-controls .face-keys{align-self:center}.pad-center{position:relative;flex:1 1 0;min-width:88px;max-width:160px;min-height:132px}.pad-center .start-key{position:absolute;left:0;right:0;bottom:20px;width:100%;min-height:48px;display:grid;place-items:center}@media(max-width:560px){.web-controls .controls-row{gap:4px;flex-wrap:wrap;justify-content:space-between;align-items:center;margin:40px -10px}.dpad{--dpad-key: 40px;order:1}.face-keys{flex:0 0 auto;max-width:none;grid-template-columns:repeat(3,54px);gap:4px;order:2}.pad-center{order:3;flex:0 0 100%;min-width:0;max-width:none;min-height:0;position:static;display:flex;justify-content:center;margin-top:25px}.pad-center .start-key{position:static;width:130px;min-height:48px}}.actions-row{flex-wrap:wrap;justify-content:center;gap:8px}.pad-action{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border:1px solid var(--line);border-radius:999px;background:var(--white);color:var(--text);font:inherit;font-size:.82rem;font-weight:600;line-height:1.2;box-shadow:0 2px 8px #4a45450f;transition:var(--ease);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.pad-action:hover{background:var(--sand-light);border-color:var(--sand);transform:translateY(-1px)}.pad-action:active{transform:none;box-shadow:none}.pad-action:focus-visible{outline:3px solid var(--lavender-ink);outline-offset:2px}.pad-action[aria-pressed=true]{background:var(--mint-light);border-color:var(--mint);color:var(--mint-ink)}#load-rom{background:var(--coral);border-color:var(--coral);color:var(--white);box-shadow:0 4px 16px #e8998d4d}#load-rom:hover{background:var(--coral-dark);border-color:var(--coral-dark);color:var(--white)}.pad-action img{width:26px;height:26px}@media(max-width:720px),(pointer:coarse){.play-page .stage-backdrop{border-radius:0;margin-inline:calc(-1 * var(--page-gutter));width:calc(100% + 2 * var(--page-gutter))}.play-page .play-main .stage{width:100%;max-width:none;max-height:none;border-radius:0}.play-page .play-main .web-controls,.play-page .play-main .stage-tools{width:100%}main.wrap.play-page{padding-top:0}body{touch-action:pan-y}}.pad-editor{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.pad-preview-wrap{position:relative}.pad-preview{width:100%;max-height:360px;display:block;background:#111;border-radius:6px;touch-action:none;-webkit-user-select:none;user-select:none}.pad-bg{fill:#111}.pad-bar{fill:#2a2a2a}.pad-picture{fill:#3a3f55;stroke:#ffffff40;stroke-width:1}.pad-ctl rect{fill:#78c8ff59;stroke:#78c8ffe6;stroke-width:1.5;cursor:grab}.pad-ctl.tool rect{fill:#ffd27859;stroke:#ffd278e6}.pad-ctl.decor rect{fill:#b4b4b433;stroke:#b4b4b499}.pad-ctl.selected rect{stroke:#fff;stroke-width:3}.pad-ctl text{fill:#fff;font-size:11px;pointer-events:none}.pad-drag{fill:none;stroke:#fff;stroke-dasharray:4 3}.pad-drag-coords{position:absolute;right:8px;top:8px;padding:2px 6px;background:#000000b3;border-radius:4px;font-size:.8rem}.pad-columns{display:grid;grid-template-columns:minmax(180px,1fr) minmax(220px,1.4fr);gap:.8rem}.pad-list ul{list-style:none;margin:.4rem 0 0;padding:0;max-height:260px;overflow:auto}.pad-row{display:flex;flex-wrap:wrap;gap:.4rem;padding:3px 6px;border-radius:4px;cursor:pointer}.pad-row:hover{background:#ffffff0f}.pad-row.selected{background:#78c8ff2e}.pad-row.bad{outline:1px solid #ff6b6b}.pad-row-label{font-weight:600}.pad-row-id{opacity:.55;font-size:.8em}.pad-row-error,.pad-error{color:#ff6b6b;font-size:.8rem}.pad-props{display:flex;flex-wrap:wrap;gap:.4rem .8rem;align-content:flex-start}.pad-props label{display:flex;align-items:center;gap:.3rem;font-size:.8rem}.pad-props input[type=number]{width:4.5em}.pad-props input,.pad-props select{font:inherit;padding:2px 4px;border-radius:4px}.pad-props option.danger{color:#ff6b6b}.pad-image{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;width:100%}.pad-thumb{width:28px;height:28px;image-rendering:pixelated}#pad-json{width:100%;font:12px/1.3 monospace;border-radius:6px}@media(max-width:640px){.pad-columns{grid-template-columns:1fr}}
