@font-face{font-family:Black Ops One;src:url(/fonts/black-ops-one.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{--ink: #1d1e33;--night-1: #0e1434;--night-2: #232f63;--search: #ffd23f;--alert: #ff5d4d;--paper: #f7edd6;--stencil: "Black Ops One", "Arial Black", sans-serif;--zh: -apple-system, "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", "Microsoft YaHei", sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;overflow:hidden;overscroll-behavior:none;background:#070b1e;color:#fff;font-family:var(--zh);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}#app{max-width:480px;margin:0 auto;height:100dvh}.hidden{display:none!important}.screen{height:100%;display:flex;flex-direction:column;position:relative;overflow:hidden}.btn{font-family:var(--zh);font-weight:900;font-size:1.12rem;padding:.75em 2em;border-radius:999px;border:3px solid var(--ink);background:var(--search);color:var(--ink);box-shadow:0 5px #00000059;cursor:pointer;transition:transform .08s}.btn:active{transform:translateY(4px);box-shadow:0 1px #00000059}.btn.ghost{background:transparent;color:#fff;border-color:#ffffff8c;box-shadow:none}.btn.ghost.light{color:#fff}.select-screen,.battle-screen{background:linear-gradient(180deg,var(--night-1),var(--night-2) 78%,#1a2144)}.select-screen:before,.battle-screen:before{content:"";position:absolute;top:0;right:0;bottom:32%;left:0;background:repeating-linear-gradient(90deg,rgba(5,7,20,.5) 0 9px,transparent 9px 48px);mask-image:linear-gradient(180deg,#000 55%,transparent);-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);pointer-events:none}.select-screen:after,.battle-screen:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 42% at 72% 22%,rgba(255,210,63,.16),transparent 70%);pointer-events:none}.select-header{text-align:center;padding:calc(env(safe-area-inset-top) + 56px) 20px 10px;z-index:1}.game-title{font-family:var(--stencil);font-weight:400;line-height:.92;display:flex;flex-direction:column;text-shadow:4px 4px 0 rgba(0,0,0,.45)}.game-title span:first-child{font-size:clamp(2rem,9.5vw,2.8rem);color:#fff;letter-spacing:.06em}.game-title span:last-child{font-size:clamp(3rem,14.5vw,4.2rem);color:var(--search);letter-spacing:.1em}.select-hint{margin-top:16px;font-size:1rem;font-weight:700;letter-spacing:.2em;text-indent:.2em;color:#ffffffd1}.select-note{text-align:center;padding:0 24px calc(env(safe-area-inset-bottom) + 14px);font-size:.72rem;letter-spacing:.02em;color:#ffffff6b;z-index:1}.hero-grid{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:14px 22px;align-content:center;z-index:1}.hero-card{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 6px 12px;background:#ffffff12;border:3px solid rgba(255,255,255,.18);border-radius:22px;cursor:pointer;animation:pop-in .45s cubic-bezier(.2,1.4,.4,1) both;animation-delay:var(--pop-delay, 0s);transition:transform .1s,border-color .1s}.hero-card:active{transform:scale(.93);border-color:var(--accent)}.hero-portrait{width:min(31vw,140px)}.hero-portrait svg,.hero-portrait img{display:block;width:100%;height:auto}.hero-name{font-size:1.05rem;font-weight:900;color:#fff}.hero-name:after{content:"";display:block;height:4px;border-radius:2px;margin-top:3px;background:var(--accent)}@keyframes pop-in{0%{opacity:0;transform:scale(.55) translateY(24px)}}.music-bar{display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 10px) 16px 0;z-index:3}.music-toggle{flex:0 0 auto;width:34px;height:34px;border-radius:50%;border:2.5px solid rgba(255,255,255,.5);background:#ffffff1a;color:#fff;font-size:1rem;cursor:pointer;display:grid;place-items:center}.music-title{flex:1 1 auto;min-width:0;overflow:hidden;white-space:nowrap}.music-title .marquee{display:inline-flex;white-space:nowrap;font-size:.9rem;font-weight:700;color:#ffffffd1}.music-bar.scrolling .music-title{-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.music-bar.scrolling .marquee{animation:marquee var(--marquee-dur, 9s) linear infinite}.music-bar.scrolling .marquee span{padding-right:2.4rem}.music-bar.muted{opacity:.55}@keyframes marquee{to{transform:translate(-50%)}}.hud{display:flex;align-items:center;gap:12px;padding:6px 18px 8px;z-index:2}.cells{display:flex;gap:6px}.cell{width:26px;height:11px;border-radius:6px;background:#ffffff2e;border:2px solid rgba(0,0,0,.25)}.cell.done{background:var(--search)}.cell.active{background:var(--alert);animation:cell-pulse 1s infinite}@keyframes cell-pulse{50%{opacity:.45}}.level-name{font-size:1.08rem;font-weight:900;text-shadow:2px 2px 0 rgba(0,0,0,.4)}.stage{flex:1;position:relative;z-index:1}.stage:after{content:"";position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(180deg,transparent,rgba(6,8,22,.5));pointer-events:none}.monster-wrap{position:absolute;top:9%;right:5%;width:min(56vw,252px)}.monster-wrap:before{content:"";position:absolute;top:-12%;right:-8%;bottom:-12%;left:-8%;background:radial-gradient(ellipse at 50% 55%,rgba(255,210,63,.2),transparent 68%);z-index:-1}.monster-svg{display:block;width:100%;height:auto;transform-origin:50% 85%}.monster-wrap.hit .monster-svg{animation:shake .18s;filter:brightness(1.7) saturate(.5)}.monster-wrap.ko .monster-svg{animation:ko .65s ease-in forwards}.monster-wrap.gone{visibility:hidden}@keyframes shake{25%{transform:translate(-6px,2px) rotate(-3deg)}60%{transform:translate(5px,-2px) rotate(2.5deg)}}@keyframes ko{35%{transform:rotate(10deg)}to{transform:rotate(82deg) translate(24px,34px);opacity:0}}.hp-bar{height:13px;margin:0 10px 8px;background:#00000073;border:2.5px solid var(--ink);border-radius:8px;overflow:hidden}.hp-fill{height:100%;border-radius:5px;background:linear-gradient(90deg,#8bea7c,#3fbf5a);transition:width .09s}.hp-fill.low{background:linear-gradient(90deg,#ff8d6e,#ff5d4d)}.hero-wrap{position:absolute;bottom:4%;left:4%;width:min(52vw,235px)}.char-box{position:relative;width:100%;aspect-ratio:1 / 1}.char-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain}.cuffs-break{animation:cuffs-break .55s ease-in forwards}@keyframes cuffs-break{30%{transform:rotate(-16deg) scale(1.08)}to{transform:translate(60%,140%) rotate(60deg);opacity:0}}.hero-svg{display:block;width:100%;height:auto}.mouth-open{display:none}.spitting .mouth-open{display:block}.spitting .mouth-closed{display:none}.spitting .hero-svg{transform:translate(3px) scale(1.02)}.bean{position:absolute;left:0;top:0;pointer-events:none;z-index:5;transform:translate(var(--x0),var(--y0));animation:bean-fly .17s linear forwards}@keyframes bean-fly{to{transform:translate(var(--x1),var(--y1)) rotate(160deg)}}.dmg-float{position:absolute;z-index:6;font-family:var(--stencil);font-size:1.5rem;color:var(--search);text-shadow:2.5px 2.5px 0 rgba(0,0,0,.55);pointer-events:none;animation:dmg-rise .55s ease-out forwards}@keyframes dmg-rise{to{transform:translateY(-46px);opacity:0}}.tap-hint{position:absolute;left:0;right:0;bottom:31%;text-align:center;font-size:1.05rem;font-weight:900;letter-spacing:.14em;color:#ffffffe6;text-shadow:2px 2px 0 rgba(0,0,0,.5);animation:hint-blink 1.2s infinite;pointer-events:none}@keyframes hint-blink{50%{opacity:.35}}.level-intro{position:absolute;top:0;right:0;bottom:0;left:0;z-index:12;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:#07091adb;transition:opacity .32s}.level-intro.leaving{opacity:0;pointer-events:none}.li-tag{font-size:1.05rem;font-weight:800;letter-spacing:.5em;text-indent:.5em;color:#ffffffbf;animation:fade-in .4s both}.li-name{font-size:clamp(2.6rem,14vw,3.6rem);font-weight:900;color:var(--search);text-shadow:3px 3px 0 rgba(0,0,0,.55),-1.5px -1.5px 0 rgba(0,0,0,.35);animation:intro-stamp .42s cubic-bezier(.2,1.4,.4,1) both;animation-delay:.12s}.li-desc{font-size:1rem;font-weight:700;color:#ffffffd9;animation:fade-in .5s both;animation-delay:.45s}@keyframes intro-stamp{0%{opacity:0;transform:scale(2.4) rotate(-6deg)}to{opacity:1;transform:scale(1) rotate(-2deg)}}.clear-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#07091abd;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);animation:fade-in .3s}@keyframes fade-in{0%{opacity:0}}.victory-screen{background:linear-gradient(180deg,#6fc3f0,#cdeefd 56%,#9edda3);color:var(--ink)}.victory-screen:before{content:"";position:absolute;top:-60%;right:-40%;bottom:30%;left:-40%;background:repeating-conic-gradient(from 0deg at 50% 40%,rgba(255,255,255,.28) 0deg 9deg,transparent 9deg 24deg);animation:rays-spin 26s linear infinite;pointer-events:none}@keyframes rays-spin{to{transform:rotate(360deg)}}.victory-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:1;padding:20px;text-align:center}.victory-title{font-size:clamp(2.5rem,13vw,3.6rem);font-weight:900;color:#fff;text-shadow:3px 3px 0 var(--ink),-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),6px 7px 0 rgba(0,0,0,.18);animation:title-drop .6s cubic-bezier(.2,1.5,.4,1) both}@keyframes title-drop{0%{opacity:0;transform:scale(1.8)}}.victory-hero .cheer-img{display:block;width:100%;height:auto}.victory-hero{width:min(56vw,250px);animation:hero-jump .95s cubic-bezier(.35,0,.3,1) infinite}@keyframes hero-jump{0%,to{transform:translateY(0) scale(1)}12%{transform:translateY(2px) scale(1.06,.92)}42%{transform:translateY(-52px) scale(.98,1.04) rotate(-2.5deg)}58%{transform:translateY(-56px) rotate(2deg)}88%{transform:translateY(0) scale(1.05,.94)}}.victory-line{font-size:.95rem;font-weight:700;opacity:.82}.victory-actions{display:flex;flex-direction:column;gap:12px;margin-top:6px}.victory-screen .btn.ghost{color:var(--ink);border-color:#1d1e3373}.confetti{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:2}.confetti span{position:absolute;top:-22px;width:10px;height:15px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:linear;animation-iteration-count:infinite}@keyframes confetti-fall{to{transform:translateY(115vh) rotate(calc(var(--spin, 1) * 640deg))}}.cert-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#0a0c1eed;padding:24px;animation:fade-in .25s}.cert-card{position:relative;width:min(86vw,350px);background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:14px;padding:24px 22px 20px;box-shadow:0 18px 50px #00000073}.cert-heading{font-size:1.65rem;font-weight:900;text-align:center;letter-spacing:.5em;text-indent:.5em;padding-bottom:12px;margin-bottom:14px;border-bottom:2px dashed rgba(29,30,51,.35)}.cert-line{text-align:center;font-size:1.02rem;font-weight:600;line-height:2}.cert-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin-top:18px;font-size:.78rem;font-weight:700;opacity:.75}.cert-seal{position:absolute;right:16px;bottom:58px;width:92px;height:92px;border:4px solid rgba(198,40,40,.72);border-radius:50%;display:grid;place-items:center;transform:rotate(-14deg);color:#c62828d1;font-weight:900;font-size:1.06rem;letter-spacing:.12em}.cert-seal:before{content:"";position:absolute;top:5px;right:5px;bottom:5px;left:5px;border:1.5px solid rgba(198,40,40,.5);border-radius:50%}.cert-hint{font-size:.85rem;color:#fff9;animation:hint-blink 1.6s infinite}.demo-screen{background:linear-gradient(180deg,var(--night-1),var(--night-2))}.demo-tip{text-align:center;padding:calc(env(safe-area-inset-top) + 24px) 20px 6px;font-size:.95rem;font-weight:700;color:#ffffffd9}.demo-tip.dim{opacity:.55;padding-top:14px}.row-title{padding:14px 20px 2px;font-size:.95rem;font-weight:900;color:var(--search)}.fullbody-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 14px}.flow-row{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px}.flow-row .fb-label{font-size:.66rem}.cuffs-img{position:absolute;left:37.5%;top:57%;width:25%;z-index:2;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.25))}.jump-once{animation:hero-jump .85s cubic-bezier(.35,0,.3,1)}.demo-cell .hybrid-hero{width:100%}.fb-label{font-size:.78rem;font-weight:700;color:#ffffffd9;text-align:center}.demo-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 12px;padding:10px 22px 30px}.demo-cell{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.hybrid-hero{position:relative;width:min(38vw,172px);aspect-ratio:1 / 1}.hybrid-hero:before{content:"";position:absolute;top:-6%;right:-14%;bottom:-6%;left:-14%;background:radial-gradient(ellipse 55% 42% at 50% 42%,rgba(255,220,140,.14),transparent 70%);pointer-events:none}.hybrid-hero:after{content:"";position:absolute;left:18%;bottom:.5%;width:64%;height:4.5%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(0,0,0,.4),transparent 70%);pointer-events:none}.hybrid-hero .painted-body{position:absolute;top:48%;left:7.5%;width:85%;z-index:2}.head-img{position:absolute;z-index:1;width:88%;left:6%;transform-origin:52% 88%;pointer-events:none}.fullbody-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;transform-origin:52% 40%;pointer-events:none}.head-img.chomp{animation:chomp .2s ease-out}@keyframes chomp{40%{transform:scale(1.07,.8) rotate(3deg)}}.demo-bean{position:absolute;pointer-events:none;z-index:3;animation:demo-bean-fly .45s ease-out forwards}@keyframes demo-bean-fly{to{transform:translate(var(--dx, 100px),var(--dy, -40px)) rotate(150deg);opacity:.15}}.demo-foot{text-align:center;padding:0 24px calc(env(safe-area-inset-bottom) + 16px);font-size:.8rem;color:#ffffff80}.clear-hint{font-size:1.05rem;font-weight:800;letter-spacing:.18em;text-indent:.18em;color:#ffffffeb;text-shadow:2px 2px 0 rgba(0,0,0,.5);animation:hint-blink 1.4s infinite}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding:30px;background:#e6e7ef;min-height:100dvh}.gallery-cell svg{width:100%;height:auto}.gallery-solo{display:grid;place-items:center;height:100dvh;background:#e6e7ef}.gallery-solo svg{width:min(80vw,380px);height:auto}@media(max-height:640px){.game-title span:last-child{font-size:2.6rem}.victory-hero{width:42vw}}
