@keyframes cks-twinkle{0%,to{opacity:.95}50%{opacity:.25}}.cks-twinkle{animation:cks-twinkle 2.4s steps(4) infinite}@keyframes cks-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.96)}}.cks-pulse{animation:cks-pulse 4s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes cks-sky-lantern-float{0%{transform:translate(0) rotate(-2deg)}50%{transform:translateY(-6px) rotate(2deg)}to{transform:translate(0) rotate(-2deg)}}.cks-sky-lantern{animation:cks-sky-lantern-float 6s ease-in-out infinite;transform-box:fill-box;transform-origin:center top}@keyframes cks-lantern-sway{0%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}to{transform:rotate(-3deg)}}.cks-lantern{animation:cks-lantern-sway 2.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center top}@keyframes cks-neon-flicker{0%,to{opacity:1}50%{opacity:.5}}.cks-neon{animation:cks-neon-flicker 1.6s steps(2) infinite}@keyframes cks-steam-rise{0%{transform:translate(0) scale(.6);opacity:0}20%{opacity:.8}to{transform:translateY(-32px) scale(1.4);opacity:0}}.cks-steam{animation:cks-steam-rise 2.8s ease-in-out infinite;transform-box:fill-box;transform-origin:center}.cks-steam-2{animation-duration:3.4s;animation-delay:.6s}.cks-steam-3{animation-duration:3.8s;animation-delay:1.1s}.cks-steam-4{animation-duration:4.2s;animation-delay:1.6s}@keyframes cks-arm-stir{0%,to{transform:translate(0) rotate(0)}50%{transform:translateY(-3px) rotate(8deg)}}.cks-arm{animation:cks-arm-stir 1.2s steps(4) infinite;transform-box:fill-box;transform-origin:top center}.cks-arm-r{animation-direction:reverse;animation-delay:.6s}@keyframes cks-energy-pulse{0%,to{transform:scaleX(1)}50%{transform:scaleX(.7)}}.cks-energy{animation:cks-energy-pulse 1.4s steps(4) infinite;transform-box:fill-box;transform-origin:left center}.cks-wrap.is-banquet .cks-svg{filter:brightness(.78) saturate(1.05)}.cks-wrap.is-splash .cks-svg{filter:brightness(1) saturate(1.05)}@media (prefers-reduced-motion: reduce){.cks-twinkle,.cks-pulse,.cks-sky-lantern,.cks-lantern,.cks-neon,.cks-steam,.cks-arm,.cks-energy{animation:none}}.landing{position:relative;width:100vw;height:100vh;overflow:hidden;font-family:var(--font-ui);color:var(--cream);image-rendering:pixelated}.landing-scene{position:absolute;inset:0;z-index:0}.landing-scene .cks-svg{width:100%;height:100%;display:block}.lp-hud-top{position:relative;z-index:5;display:grid;grid-template-columns:160px 1fr 160px;align-items:stretch;margin:18px auto 0;width:min(820px,calc(100% - 32px));background:var(--ink);border:3px solid var(--cyan);box-shadow:4px 4px 0 0 var(--magenta)}.lp-hud-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 10px;background:var(--magenta);color:var(--ink)}.lp-hud-side-l{border-right:3px solid var(--cyan)}.lp-hud-side-r{border-left:3px solid var(--cyan);background:var(--yellow)}.lp-hud-label{font-family:var(--font-serif);font-size:18px;font-weight:900;letter-spacing:6px;line-height:1;text-shadow:2px 2px 0 rgba(255,255,255,.3)}.lp-hud-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:3px;font-weight:800;margin-top:2px;opacity:.85}.lp-hud-center{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 16px;background:var(--night)}.lp-hud-dot{width:6px;height:6px;background:var(--cyan);border:1px solid var(--ink);animation:lp-blink 1.2s steps(2) infinite}.lp-hud-meta{font-family:var(--font-mono);font-size:12px;color:var(--cyan);letter-spacing:4px;font-weight:700;text-shadow:1px 1px 0 var(--ink)}@keyframes lp-blink{0%,to{background:var(--cyan)}50%{background:var(--magenta)}}.lp-main{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;margin:7vh 0 4vh;padding:0 16px}.lp-stamp{display:inline-flex;align-items:center;justify-content:center;width:76px;height:76px;background:var(--red);border:3px solid var(--yellow);box-shadow:4px 4px 0 0 var(--cyan);transform:rotate(-6deg);margin-bottom:4px}.lp-stamp-year{font-family:var(--font-mono);font-size:22px;font-weight:900;color:var(--yellow);letter-spacing:1px;text-shadow:2px 2px 0 var(--ink)}.lp-title{margin:0;font-family:var(--font-serif);font-size:clamp(36px,7.2vw,96px);font-weight:900;color:var(--yellow);letter-spacing:clamp(4px,1.2vw,10px);line-height:1;text-align:center;text-shadow:4px 4px 0 var(--magenta),8px 8px 0 var(--ink);animation:lp-title-pulse 2.4s ease-in-out infinite}@keyframes lp-title-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.lp-tag{font-family:var(--font-mono);font-size:12px;color:var(--cream);letter-spacing:4px;background:var(--ink);padding:6px 16px;border:2px solid var(--yellow);box-shadow:3px 3px 0 0 var(--magenta)}.lp-foot{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;gap:14px;margin-bottom:28px}.open-fire-btn{position:relative;display:inline-flex;align-items:center;gap:14px;padding:14px 30px;background:linear-gradient(135deg,#c92424,#ff4081,#ffd84d);color:var(--ink);font-family:var(--font-serif);font-size:20px;font-weight:900;letter-spacing:6px;border:3px solid var(--ink);box-shadow:4px 4px 0 0 var(--cyan),4px 4px 0 3px var(--ink);cursor:pointer;transition:transform .12s steps(2),box-shadow .12s steps(2);animation:lp-cta-pulse 2.4s ease-in-out infinite;touch-action:manipulation}@keyframes lp-cta-pulse{0%,to{box-shadow:4px 4px 0 0 var(--cyan),4px 4px 0 3px var(--ink),0 0 #ffd84d80}50%{box-shadow:4px 4px 0 0 var(--cyan),4px 4px 0 3px var(--ink),0 0 0 12px #ffd84d00}}.open-fire-btn:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 0 var(--cyan),2px 2px 0 3px var(--ink)}.open-fire-btn:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}.open-fire-btn.is-loading{opacity:.7;cursor:wait;animation:none}.ofb-flame{display:inline-block;width:14px;height:20px;background:var(--yellow);clip-path:polygon(50% 0%,80% 30%,100% 60%,80% 100%,20% 100%,0% 60%,20% 30%);box-shadow:0 0 12px var(--yellow);animation:ofb-flicker .4s steps(2) infinite}@keyframes ofb-flicker{0%,to{transform:scaleY(1) translateY(0)}50%{transform:scaleY(1.1) translateY(-2px)}}.ofb-arrow{font-size:14px;color:var(--ink)}.lp-howto{display:inline-flex;align-items:center;gap:12px;padding:8px 18px;background:var(--ink);border:2px solid var(--magenta);box-shadow:3px 3px 0 0 var(--cyan)}.lp-how{display:inline-flex;align-items:center;gap:8px;font-family:var(--font-serif);font-size:12px;color:var(--cream);letter-spacing:3px;font-weight:700;text-shadow:1px 1px 0 var(--ink)}.lp-how-num{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;background:var(--magenta);color:var(--yellow);font-family:var(--font-serif);font-weight:900;font-size:12px;border:2px solid var(--ink);box-shadow:2px 2px 0 0 var(--yellow)}.lp-how-sep{width:2px;height:14px;background:var(--cyan);box-shadow:0 0 4px var(--cyan)}.hint-card{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 24px;background:var(--ink);border:3px solid var(--red);box-shadow:4px 4px 0 0 var(--yellow);text-align:center;z-index:10}.hint-card p{margin:4px 0;font-family:var(--font-mono);font-size:12px;color:var(--cream);letter-spacing:2px}.hint-card .hint-detail{color:var(--yellow);opacity:.7;word-break:break-all}@media (max-width: 760px){.lp-hud-top{grid-template-columns:110px 1fr 110px;margin:12px auto 0}.lp-hud-label{font-size:14px;letter-spacing:3px}.lp-hud-sub{font-size:8px;letter-spacing:2px}.lp-hud-meta{font-size:10px;letter-spacing:2px}.lp-stamp{width:56px;height:56px}.lp-stamp-year{font-size:16px}.lp-title{letter-spacing:4px}.lp-tag{font-size:10px;letter-spacing:2px;padding:4px 10px}.open-fire-btn{font-size:16px;padding:10px 20px;letter-spacing:4px}.lp-how{font-size:10px;letter-spacing:2px}.lp-how-num{width:18px;height:18px;font-size:10px}}.cook-page{position:relative;width:100%;height:100%;overflow:hidden;background:var(--night);font-family:var(--font-ui);color:var(--cream);image-rendering:pixelated}.cook-stage{position:absolute;inset:0;z-index:0}.stage-canvas{position:absolute;inset:0}.top-bar{position:absolute;top:18px;left:50%;transform:translate(-50%);z-index:5;display:grid;grid-template-columns:140px 1fr 120px;align-items:stretch;background:var(--ink);border:3px solid var(--cyan);box-shadow:4px 4px 0 0 var(--magenta)}.tb-timer{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 10px;background:var(--magenta);border-right:3px solid var(--cyan);color:var(--ink)}.tb-timer-label{font-family:var(--font-mono);font-size:10px;letter-spacing:3px;font-weight:800;color:var(--ink);opacity:.85}.tb-timer-value{font-family:var(--font-mono);font-size:26px;font-weight:800;line-height:1;color:var(--ink);margin-top:2px;text-shadow:2px 2px 0 rgba(255,255,255,.3)}.tb-progress{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 16px;background:var(--night);min-width:240px}.tb-dish-name{font-family:var(--font-serif);font-size:18px;font-weight:900;color:var(--yellow);letter-spacing:4px;line-height:1.1;text-shadow:2px 2px 0 var(--magenta)}.tb-dish-sub{font-family:var(--font-mono);font-size:10px;color:var(--cyan);letter-spacing:3px;font-weight:700;margin-top:2px;text-transform:uppercase}.tb-step{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:8px 10px;background:var(--yellow);border-left:3px solid var(--cyan);color:var(--ink)}.tb-step-label{font-family:var(--font-mono);font-size:10px;letter-spacing:3px;font-weight:800;color:var(--ink);opacity:.85}.tb-step-value{font-family:var(--font-mono);font-size:22px;font-weight:800;line-height:1;color:var(--ink);margin-top:2px;text-shadow:2px 2px 0 rgba(255,255,255,.3)}.camera-wrap{position:absolute;top:90px;left:20px;z-index:6;display:flex;flex-direction:column;align-items:flex-start;gap:8px}.gesture-status{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--ink);border:2px solid var(--cyan);box-shadow:3px 3px 0 0 var(--magenta);font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--cyan);letter-spacing:2px}.gs-dot{width:12px;height:12px;background:var(--magenta);border:1px solid var(--ink)}.gs-dot.on{background:var(--cyan);animation:blink .6s steps(2) infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.4}}.gs-text{font-size:16px;line-height:1}.gs-target{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 6px;background:var(--yellow);color:var(--ink);border:2px solid var(--ink);box-shadow:2px 2px 0 0 var(--magenta);font-family:var(--font-mono);font-size:10px;font-weight:800;letter-spacing:1px;line-height:1}.gs-target-label{opacity:.8}.gs-target-glyph{font-size:18px;line-height:1}.order-board{position:absolute;top:90px;right:20px;z-index:5;width:200px;background:var(--ink);border:3px solid var(--yellow);box-shadow:4px 4px 0 0 var(--cyan)}.ob-head{padding:6px 10px;background:var(--yellow);color:var(--ink);font-family:var(--font-mono);font-size:12px;font-weight:800;letter-spacing:4px;text-align:center;border-bottom:3px solid var(--cyan)}.ob-list{margin:0;padding:6px 8px;list-style:none;display:flex;flex-direction:column;gap:3px}.ob-item{display:grid;grid-template-columns:22px 1fr 18px;align-items:center;gap:6px;padding:4px 6px;font-family:var(--font-mono);font-size:12px;color:#fff5d880;border:1px solid transparent}.ob-item.done{color:var(--cyan);background:#1ad5e81a;border-color:var(--cyan-deep)}.ob-item.done .ob-name{text-decoration:line-through;opacity:.7}.ob-item.current{color:var(--ink);background:var(--magenta);border-color:var(--yellow);font-weight:800}.ob-item.current .ob-num,.ob-item.current .ob-status{color:var(--ink)}.ob-num{font-size:10px;opacity:.7;letter-spacing:1px}.ob-name{letter-spacing:2px;font-weight:700}.ob-status{font-family:var(--font-mono);font-size:13px;color:var(--yellow);text-align:center}.ob-item.done .ob-status{color:var(--cyan)}.wok-monitor{background:var(--ink);border-top:3px solid var(--cyan)}.wm-head{padding:4px 10px;background:var(--cyan);color:var(--ink);font-family:var(--font-mono);font-size:11px;font-weight:800;letter-spacing:4px;text-align:center}.wm-list{display:flex;flex-wrap:wrap;gap:4px;padding:6px 8px;min-height:32px;align-items:center}.wm-empty{font-family:var(--font-mono);font-size:12px;color:var(--cream);opacity:.5;letter-spacing:2px}.wm-item{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;font-size:16px;background:var(--red);border:2px solid var(--yellow);animation:drop-in .4s steps(4) both}@keyframes drop-in{0%{transform:translateY(-20px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.action-card{position:absolute;bottom:24px;left:50%;transform:translate(-50%);z-index:6;display:flex;align-items:center;gap:16px;padding:12px 22px 14px;min-width:580px;max-width:720px;background:var(--ink);border:3px solid var(--magenta);box-shadow:4px 4px 0 0 var(--cyan),4px 4px 0 3px var(--magenta);animation:ac-in .32s steps(6) both}@keyframes ac-in{0%{transform:translate(-50%) translateY(20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.ac-emoji{width:64px;height:64px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:44px;line-height:1;background:var(--yellow);border:3px solid var(--cyan);box-shadow:3px 3px 0 0 var(--magenta);animation:emoji-bob 1.4s steps(4) infinite}.ac-emoji[data-kind=fire],.ac-emoji[data-kind=cook]{background:var(--red);border-color:var(--yellow)}.ac-emoji[data-kind=lift]{background:var(--magenta);border-color:var(--yellow)}.ac-emoji[data-kind=add]{background:var(--cyan);border-color:var(--yellow)}@keyframes emoji-bob{0%,to{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-4px) rotate(4deg)}}.ac-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.ac-row1{display:flex;align-items:center;gap:10px}.ac-row2{display:flex;align-items:center}.ac-step-num{display:inline-block;padding:2px 8px;font-family:var(--font-mono);font-size:10px;font-weight:800;color:var(--ink);background:var(--cyan);letter-spacing:2px;flex-shrink:0}.ac-instruction{font-family:var(--font-serif);font-size:22px;font-weight:900;color:var(--yellow);letter-spacing:4px;line-height:1;text-shadow:2px 2px 0 var(--magenta)}.ac-gesture{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding:0 10px;background:var(--magenta);color:var(--yellow);border:3px solid var(--ink);box-shadow:3px 3px 0 0 var(--cyan);font-size:28px;line-height:1;font-family:var(--font-serif);text-shadow:2px 2px 0 var(--ink);animation:ac-gesture-pop .3s steps(2) both}.ac-gesture[data-gesture=fist]{background:var(--magenta)}.ac-gesture[data-gesture=open]{background:var(--cyan);color:var(--ink);text-shadow:2px 2px 0 var(--yellow)}.ac-gesture[data-gesture=peace]{background:var(--magenta)}.ac-gesture[data-gesture=thumb]{background:var(--yellow);color:var(--ink);text-shadow:2px 2px 0 var(--magenta)}.ac-gesture[data-gesture=chop]{background:var(--magenta)}.ac-gesture[data-gesture=pinch]{background:var(--cyan);color:var(--ink);text-shadow:2px 2px 0 var(--magenta)}.ac-gesture[data-gesture=lift]{background:var(--red)}@keyframes ac-gesture-pop{0%{transform:scale(.6) rotate(-10deg)}60%{transform:scale(1.1) rotate(4deg)}to{transform:scale(1) rotate(0)}}.ac-hint{font-family:var(--font-mono);font-size:12px;color:var(--cream);letter-spacing:1px;line-height:1.4;opacity:.9}.ac-progress{flex-shrink:0;width:140px;height:8px;background:var(--ink);border:2px solid var(--cyan);overflow:hidden;position:relative}.ac-progress-fill{height:100%;background:repeating-linear-gradient(90deg,var(--yellow) 0 8px,var(--magenta) 8px 16px);transition:width 60ms steps(20);box-shadow:inset -2px 0 #0006}.stuck-tip{position:absolute;bottom:150px;left:50%;transform:translate(-50%);z-index:7;display:flex;align-items:center;gap:10px;padding:6px 16px;background:var(--ink);border:2px solid var(--magenta);box-shadow:3px 3px 0 0 var(--yellow);color:var(--magenta);font-family:var(--font-mono);font-size:12px;font-weight:800;letter-spacing:2px;animation:pulse-strong 1.2s steps(2) infinite}.st-glyph{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;background:var(--magenta);color:var(--ink);font-weight:900;border:1px solid var(--yellow)}.bottom-bar{position:absolute;bottom:0;left:0;right:0;z-index:5;display:flex;justify-content:space-between;align-items:center;padding:0 24px 12px;pointer-events:none}.bottom-bar>*{pointer-events:auto}.ctrl-btn{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;background:var(--ink);border:2px solid var(--cyan);box-shadow:3px 3px 0 0 var(--cyan);color:var(--cyan);font-family:var(--font-mono);font-size:12px;font-weight:800;letter-spacing:2px;cursor:pointer;transition:transform .1s steps(2),box-shadow .1s steps(2)}.ctrl-btn:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 0 var(--cyan)}.ctrl-btn:active{transform:translate(3px,3px);box-shadow:0 0 0 0 var(--cyan)}.ctrl-btn.primary{border-color:var(--magenta);color:var(--magenta);box-shadow:3px 3px 0 0 var(--magenta)}.ctrl-btn.primary:hover{background:var(--magenta);color:var(--ink);box-shadow:1px 1px 0 0 var(--magenta)}.dish-done-overlay{position:absolute;inset:0;z-index:30;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--ink);pointer-events:none;animation:fade-in .4s steps(6) both}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.dd-stamp{padding:28px 56px;background:var(--yellow);color:var(--ink);font-family:var(--font-serif);font-size:60px;font-weight:900;letter-spacing:10px;border:4px solid var(--magenta);box-shadow:8px 8px 0 0 var(--cyan),8px 8px 0 4px var(--magenta);transform:rotate(-4deg);animation:stamp-in .5s steps(8) both;text-shadow:3px 3px 0 var(--magenta)}@keyframes stamp-in{0%{transform:rotate(-4deg) scale(.3);opacity:0}60%{transform:rotate(-4deg) scale(1.15);opacity:1}to{transform:rotate(-4deg) scale(1);opacity:1}}.dd-subtitle{margin-top:24px;font-family:var(--font-mono);font-size:22px;font-weight:800;color:var(--cyan);letter-spacing:10px;text-shadow:3px 3px 0 var(--magenta)}.firework-overlay{position:absolute;inset:0;z-index:40;background:#0a1530e6;pointer-events:none}.fw-piece{position:absolute;width:14px;height:14px;border:2px solid var(--ink);animation:fw-explode 2.4s steps(8) 1 both}@keyframes fw-explode{0%{transform:translate(0) scale(0);opacity:0}15%{transform:translate(var(--dx, 30px),var(--dy, -50px)) scale(1.6);opacity:1}to{transform:translate(var(--dx2, 60px),var(--dy2, -120px)) scale(.2);opacity:0}}.fw-title{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-family:var(--font-serif);font-size:72px;font-weight:900;color:var(--yellow);letter-spacing:16px;text-shadow:4px 4px 0 var(--magenta),8px 8px 0 var(--cyan);animation:fw-title-in .6s steps(8) both}@keyframes fw-title-in{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@media (max-width: 1100px){.action-card{min-width:480px;max-width:90vw;padding:10px 18px 12px}.ac-emoji{width:56px;height:56px;font-size:36px}.ac-instruction{font-size:18px}.ac-progress{width:100px}.order-board{width:180px}}@media (max-width: 760px){.top-bar{grid-template-columns:100px 1fr 88px;width:calc(100vw - 32px)}.tb-progress{padding:4px 10px;min-width:0}.tb-dish-name{font-size:14px;letter-spacing:2px}.tb-timer-value{font-size:20px}.tb-step-value{font-size:18px}.order-board{width:calc(100vw - 40px);top:auto;bottom:200px;right:20px}.camera-wrap{top:90px;left:10px}.action-card{min-width:0;width:calc(100vw - 24px);padding:10px 14px;gap:10px}.ac-emoji{width:48px;height:48px;font-size:30px}.ac-instruction{font-size:16px;letter-spacing:2px}.ac-hint{font-size:11px}.ac-progress{width:70px}}.banquet-page{position:relative;width:100vw;height:100vh;overflow:hidden;font-family:var(--font-ui);color:var(--cream);image-rendering:pixelated}.bp-scene{position:absolute;inset:0;z-index:0;pointer-events:none}.bp-scene .cks-svg{width:100%;height:100%;display:block}.bp-top{position:relative;z-index:5;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;padding:18px 24px 0}.bp-back{font-family:var(--font-mono)}.bp-stamp-wrap{display:flex;justify-content:center}.bp-stamp{display:inline-flex;align-items:baseline;gap:12px;padding:6px 18px;background:var(--ink);border:3px solid var(--yellow);box-shadow:4px 4px 0 0 var(--magenta)}.bp-stamp-year{font-family:var(--font-mono);font-size:22px;font-weight:900;color:var(--yellow);letter-spacing:1px;text-shadow:2px 2px 0 var(--magenta)}.bp-stamp-sub{font-family:var(--font-serif);font-size:16px;font-weight:900;color:var(--cyan);letter-spacing:4px;text-shadow:2px 2px 0 var(--ink)}.bp-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.bp-meta-row{font-family:var(--font-mono);font-size:12px;font-weight:800;color:var(--cyan);letter-spacing:3px;background:var(--ink);padding:4px 10px;border:2px solid var(--cyan);box-shadow:3px 3px 0 0 var(--magenta)}.bp-meta-sub{font-family:var(--font-mono);font-size:9px;font-weight:800;color:var(--yellow);letter-spacing:4px;opacity:.8}.bp-stage{position:relative;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:3vh 24px 1vh;min-height:0}.bp-card{width:min(620px,92%);background:var(--ink);border:3px solid var(--cyan);box-shadow:6px 6px 0 0 var(--magenta),6px 6px 0 3px var(--ink);padding:16px 22px 18px}.bp-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;padding-bottom:10px;border-bottom:2px dashed var(--magenta)}.bp-card-tag{font-family:var(--font-mono);font-size:12px;font-weight:800;color:var(--yellow);letter-spacing:4px;background:var(--magenta);padding:4px 10px;border:2px solid var(--ink);box-shadow:2px 2px 0 0 var(--cyan)}.bp-card-tag-r{font-family:var(--font-mono);font-size:11px;font-weight:800;color:var(--cyan);letter-spacing:3px;opacity:.85}.bp-rank-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.bp-rank{display:inline-flex;align-items:center;padding:10px 16px;background:var(--red);border:3px solid var(--yellow);box-shadow:4px 4px 0 0 var(--cyan);transform:rotate(-2deg)}.bp-rank-label{font-family:var(--font-serif);font-size:22px;font-weight:900;color:var(--yellow);letter-spacing:6px;line-height:1;text-shadow:2px 2px 0 var(--ink)}.bp-reroll{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;font-family:var(--font-mono);font-size:12px;font-weight:800;letter-spacing:3px;color:var(--ink);background:var(--yellow);border:2px solid var(--ink);box-shadow:3px 3px 0 0 var(--cyan);cursor:pointer;transition:transform .12s steps(2),box-shadow .12s steps(2)}.bp-reroll:hover{transform:translate(2px,2px);box-shadow:1px 1px 0 0 var(--cyan)}.bp-reroll:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.bp-comment{margin:0 0 16px;padding:14px 16px;font-family:var(--font-serif);font-size:18px;font-weight:700;line-height:1.6;letter-spacing:2px;color:var(--cream);background:var(--night);border:2px solid var(--magenta);box-shadow:4px 4px 0 0 var(--yellow);text-shadow:1px 1px 0 var(--ink)}.bp-card-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.bp-stat{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 6px;background:var(--night);border:2px solid var(--cyan);box-shadow:3px 3px 0 0 var(--cyan)}.bp-stat.is-magenta{border-color:var(--magenta);box-shadow:3px 3px 0 0 var(--magenta)}.bp-stat.is-cyan{border-color:var(--cyan);box-shadow:3px 3px 0 0 var(--magenta)}.bp-stat-label{font-family:var(--font-mono);font-size:10px;letter-spacing:3px;color:var(--cream);opacity:.7}.bp-stat-value{font-family:var(--font-mono);font-size:20px;font-weight:900;color:var(--yellow);line-height:1;text-shadow:2px 2px 0 var(--magenta);font-variant-numeric:tabular-nums}.bp-stat-value em{font-style:normal;font-size:10px;margin-left:2px;color:var(--cyan);letter-spacing:1px}.bp-stat.is-magenta .bp-stat-value{color:var(--magenta);text-shadow:2px 2px 0 var(--yellow)}.bp-stat.is-cyan .bp-stat-value{color:var(--cyan);text-shadow:2px 2px 0 var(--magenta)}.bp-stamp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;width:min(720px,96%);padding:6px 0 0}.bp-mini-stamp{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:12px 10px 10px;background:var(--night);border:3px dashed var(--yellow);box-shadow:3px 3px 0 0 var(--magenta);cursor:pointer;font-family:var(--font-ui);color:var(--cream);text-align:center;transition:transform .16s steps(3),box-shadow .16s steps(3),background .16s steps(2);touch-action:manipulation}.bp-mini-stamp:hover{background:var(--ink);box-shadow:5px 5px 0 0 var(--magenta),5px 5px 0 2px var(--cyan)}.bp-mini-stamp:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.bp-mini-stamp-edge{position:absolute;width:6px;height:6px;background:var(--ink);box-shadow:0 0 0 1px var(--yellow)}.bp-mini-stamp-edge-tl{top:-4px;left:-4px}.bp-mini-stamp-edge-tr{top:-4px;right:-4px}.bp-mini-stamp-edge-bl{bottom:-4px;left:-4px}.bp-mini-stamp-edge-br{bottom:-4px;right:-4px}.bp-mini-stamp.is-r0{background:var(--night);border-color:var(--yellow)}.bp-mini-stamp.is-r1{background:var(--ink);border-color:var(--cyan)}.bp-mini-stamp.is-r2{background:var(--night);border-color:var(--magenta)}.bp-mini-stamp.is-r3{background:var(--ink);border-color:var(--yellow)}.bp-mini-stamp-rank{font-family:var(--font-serif);font-size:14px;font-weight:900;color:var(--yellow);letter-spacing:2px;line-height:1.1;text-shadow:1px 1px 0 var(--magenta)}.bp-mini-stamp.is-r1 .bp-mini-stamp-rank{color:var(--cyan);text-shadow:1px 1px 0 var(--magenta)}.bp-mini-stamp.is-r2 .bp-mini-stamp-rank{color:var(--magenta);text-shadow:1px 1px 0 var(--yellow)}.bp-mini-stamp.is-r3 .bp-mini-stamp-rank{color:var(--yellow);text-shadow:1px 1px 0 var(--cyan)}.bp-mini-stamp-sub{font-family:var(--font-mono);font-size:8px;font-weight:800;letter-spacing:2px;color:var(--cream);opacity:.75;border:1px solid var(--cream);padding:1px 4px;margin:1px 0 2px;line-height:1}.bp-mini-stamp-cmt{font-family:var(--font-serif);font-size:11px;font-weight:700;letter-spacing:1px;line-height:1.4;color:var(--cream);text-shadow:1px 1px 0 var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.bp-foot{position:relative;z-index:4;display:flex;justify-content:center;gap:12px;padding:0 24px 22px}.bp-foot .ctrl-btn{padding:10px 20px;font-size:14px;letter-spacing:3px}.bp-foot .ctrl-btn:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}@media (max-width: 760px){.bp-top{grid-template-columns:auto 1fr auto;padding:12px 14px 0;gap:10px}.bp-stamp{padding:4px 12px}.bp-stamp-year{font-size:18px}.bp-stamp-sub{font-size:13px;letter-spacing:2px}.bp-meta-row{font-size:10px;letter-spacing:2px;padding:3px 8px}.bp-meta-sub{font-size:8px}.bp-back{font-size:11px;padding:4px 8px}.bp-stage{padding:2vh 12px 1vh;gap:14px}.bp-card{padding:12px 14px 14px}.bp-rank{padding:8px 12px}.bp-rank-label{font-size:18px;letter-spacing:3px}.bp-comment{font-size:14px;padding:10px 12px;line-height:1.5}.bp-reroll{font-size:11px;padding:6px 10px}.bp-card-stats{gap:6px}.bp-stat-value{font-size:18px}.bp-stamp-grid{grid-template-columns:repeat(2,1fr);gap:10px}.bp-mini-stamp{padding:10px 8px 8px}.bp-mini-stamp-rank{font-size:12px;letter-spacing:1px}.bp-mini-stamp-sub{font-size:7px}.bp-mini-stamp-cmt{font-size:10px;-webkit-line-clamp:2}.bp-foot{padding:0 14px 14px}.bp-foot .ctrl-btn{padding:8px 14px;font-size:12px;letter-spacing:2px}}@media (max-width: 420px){.bp-stamp-grid{grid-template-columns:1fr 1fr;gap:8px}.bp-mini-stamp-cmt{font-size:9px;-webkit-line-clamp:2}}.gallery-page{position:relative;width:100%;height:100%;overflow:hidden;padding:32px 32px 100px;background:radial-gradient(ellipse at 50% 0%,rgba(26,213,232,.25),transparent 50%),var(--night)}.gallery-header{text-align:center;padding-bottom:12px}.gallery-line{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:4px}.brand-line-deco{color:var(--cyan);font-size:14px}.gallery-line-text{font-family:var(--font-mono);font-size:14px;color:var(--cyan);letter-spacing:6px;font-weight:700}.gallery-title{font-family:var(--font-serif);font-size:64px;margin:0;color:var(--yellow);letter-spacing:12px;text-shadow:0 0 24px rgba(255,216,77,.5)}.gallery-sub{font-family:var(--font-serif);font-size:14px;color:var(--cream);opacity:.7;margin:4px 0 0;letter-spacing:4px}.gallery-main{height:calc(100% - 130px);overflow:auto;padding:8px 0}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60vh;text-align:center;font-family:var(--font-serif);font-size:18px;color:var(--cream);gap:16px}.empty-glyph{font-size:72px}.open-fire-btn.small{padding:12px 28px;font-size:14px;letter-spacing:4px;border-radius:24px}.ofb-flame.small{width:16px;height:18px}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px;padding:12px}.banquet-card{position:relative;padding:24px 20px 20px;background:linear-gradient(180deg,#003c7ad9,#0a1530f2);border:2px solid var(--cyan);border-radius:4px;box-shadow:0 6px 18px #1ad5e833;transition:background-color .24s var(--ease-out-soft),color .24s var(--ease-out-soft),transform .24s var(--ease-out-soft)}.banquet-card:hover{transform:translateY(-3px);box-shadow:0 12px 30px #ffd84d66;border-color:var(--yellow)}.bc-stamp{position:absolute;top:16px;right:16px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:28px;font-weight:900;color:var(--ink);background:linear-gradient(135deg,var(--yellow),var(--magenta));border:2px solid var(--cyan);border-radius:4px;transform:rotate(-6deg)}.bc-date{font-family:var(--font-mono);font-size:14px;color:var(--cyan);letter-spacing:4px;margin-bottom:8px;font-weight:700}.bc-stat{display:flex;align-items:baseline;gap:6px;margin:8px 0}.bc-stat-num{font-family:var(--font-serif);font-size:48px;font-weight:900;color:var(--yellow);line-height:1}.bc-stat-label{font-family:var(--font-serif);font-size:14px;color:var(--magenta);letter-spacing:4px}.bc-time{font-family:var(--font-mono);font-size:14px;color:var(--cream);opacity:.6;letter-spacing:2px}.bc-dishes{list-style:none;margin:16px 0 12px;padding:12px 0 0;border-top:1px dashed var(--magenta);font-family:var(--font-serif);font-size:13px;color:var(--cream);display:flex;flex-wrap:wrap;gap:4px}.bc-dishes li{padding:3px 8px;background:#ff408126;border:1px solid rgba(255,64,129,.4);border-radius:10px;letter-spacing:1px}.bc-actions{display:flex;justify-content:flex-end}.bc-btn{padding:6px 14px;border-radius:14px;font-family:var(--font-mono);font-size:12px;letter-spacing:2px;transition:background-color .2s,color .2s,transform .2s}.bc-btn.delete{background:transparent;border:1px solid var(--magenta);color:var(--magenta)}.bc-btn.delete:hover{background:var(--magenta);color:var(--ink)}.settings-page{position:relative;width:100%;height:100%;overflow:auto;padding:28px 32px 100px}.settings-header{text-align:center;padding-bottom:16px}.settings-title{font-family:var(--font-title);font-size:72px;margin:6px 0 0;color:var(--cocoa);letter-spacing:6px}.settings-main{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:18px}.setting-card{background:var(--paper);border:2px solid var(--cocoa);border-radius:20px;padding:18px 22px;box-shadow:0 8px 22px var(--shadow-soft)}.setting-card h3{margin:0 0 12px;font-family:var(--font-title);font-size:28px;color:var(--cocoa)}.setting-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}.setting-card-head h3{margin:0}.mute-toggle{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--cream);border:1.5px solid var(--cocoa);border-radius:12px;font-family:var(--font-hand);font-size:14px;color:var(--cocoa);cursor:pointer;transition:background-color .16s,color .16s,transform 80ms}.mute-toggle:hover{background:var(--warm-orange);color:var(--paper)}.mute-toggle:active{transform:translateY(1px)}.mute-toggle.is-muted{background:var(--brick);color:var(--paper);border-color:var(--brick-deep)}.mute-glyph{font-size:16px;line-height:1}.cam-preview{position:relative;width:100%;aspect-ratio:16 / 9;background:#2a1e10;border-radius:12px;overflow:hidden;margin-bottom:12px}.cam-preview video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.cam-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--paper);font-family:var(--font-script);font-size:22px}.device-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.device-chip{padding:8px 14px;background:var(--cream);border:1.5px solid var(--cocoa-soft);border-radius:14px;font-family:var(--font-hand);font-size:14px;color:var(--cocoa)}.device-chip.on{background:var(--warm-orange);color:var(--paper)}.meter{width:100%;height:14px;background:var(--oat);border-radius:7px;overflow:hidden;margin-bottom:8px}.meter-fill{height:100%;background:linear-gradient(90deg,#5ce4ff,#7a3cff);transition:width 80ms}.hint{font-family:var(--font-script);color:var(--cocoa-soft);font-size:16px;margin:0 0 8px}.slider{display:flex;align-items:center;gap:10px;font-family:var(--font-hand);font-size:16px;color:var(--cocoa)}.slider input{flex:1;accent-color:var(--warm-orange-deep)}.err{font-family:var(--font-ui);color:var(--brick-deep);background:#e88a8a33;border:1px dashed var(--brick);border-radius:8px;padding:6px 10px;margin-bottom:8px}.app-shell{position:relative;width:100%;height:100%;display:flex;flex-direction:column;background:#1a120a}.app-main{position:relative;flex:1;z-index:1;overflow:hidden}.app-nav{position:fixed;bottom:18px;left:50%;transform:translate(-50%);z-index:10;display:flex;gap:14px;padding:10px 16px;background:#1a120aeb;border:1.5px solid var(--gold);border-radius:26px;box-shadow:0 8px 24px #0009;backdrop-filter:blur(6px)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;padding:8px 18px;border-radius:18px;font-family:var(--font-serif);font-size:11px;color:var(--gold);letter-spacing:3px;transition:background-color .22s var(--ease-out-soft),color .22s var(--ease-out-soft),transform .22s var(--ease-out-soft)}.nav-item.active{background:var(--gold);color:var(--ink);transform:translateY(-2px)}.nav-glyph{font-family:var(--font-serif);font-size:22px;line-height:1;font-weight:700}.nav-label{font-size:10px;letter-spacing:2px}:root{--cyan: #1ad5e8;--cyan-deep: #0f9baf;--magenta: #ff4081;--magenta-deep: #c92464;--yellow: #ffd84d;--yellow-deep: #d4a317;--red: #e63946;--red-deep: #b92835;--blue: #0066cc;--blue-deep: #003c7a;--night: #0a1530;--cream: #fff5d8;--paper: #fffaf0;--ink: #1a0a14;--gold: #d4a317;--shadow: rgba(10, 21, 48, .6);--shadow-soft: rgba(10, 21, 48, .3);--font-serif: "Noto Serif SC", "STZhongsong", "Songti SC", serif;--font-ui: "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-script: "Caveat", "Long Cang", cursive;--font-mono: "JetBrains Mono", monospace;--ease-out-soft: cubic-bezier(.22, .9, .28, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;padding:0;height:100%;background:var(--night);color:var(--cream);font-family:var(--font-ui);overflow:hidden;user-select:none;-webkit-user-select:none}html{color-scheme:dark}button{font-family:inherit;border:none;background:none;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--yellow);color:var(--ink)}:focus-visible{outline:3px solid var(--yellow);outline-offset:2px;box-shadow:0 0 0 5px #ffd84d40}button:focus-visible,a:focus-visible,.nav-item:focus-visible,.ctrl-btn:focus-visible,.bp-mini-stamp:focus-visible,.bp-reroll:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;box-shadow:0 0 0 5px #ffd84d4d}.gesture-glyph{display:inline-block;vertical-align:middle;image-rendering:pixelated}.gesture-glyph.is-empty{display:inline-flex;align-items:center;justify-content:center;font-size:24px;line-height:1}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.fw-piece,.dd-stamp,.lp-title,.lp-cta-pulse,.ofb-flame,.cks-twinkle,.cks-pulse,.cks-neon-flicker,.cks-steam-rise,.cks-float-bowl,.cks-led-marquee,.cks-lantern-sway,.cks-arm-stir,.cks-energy,.ac-emoji,.ac-gesture,.stuck-tip,.gs-dot,.lp-hud-dot{animation:none!important}}@keyframes float-up{0%{transform:translateY(0) scale(1);opacity:0}10%{opacity:.85}to{transform:translateY(-180px) scale(.6);opacity:0}}@keyframes pulse-strong{0%,to{box-shadow:0 0 #ff4081b3}50%{box-shadow:0 0 0 16px #ff408100}}@keyframes glow-pulse{0%,to{filter:brightness(1) drop-shadow(0 0 8px var(--yellow))}50%{filter:brightness(1.3) drop-shadow(0 0 16px var(--yellow))}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}
