@font-face{font-family:"Press Start 2P";src:url(/zomboy/assets/PressStart2P-2BZhbCiP.ttf) format("truetype");font-display:swap}:root{--bg-darkest: #1a1814;--bg-dark: #2a2724;--bg-mid: #3a3530;--panel: #f6f1e0;--panel-edge: #1a1814;--ink: #1a1814;--ink-soft: #4a4540;--accent-pink: #c93f74;--accent-pink-deep: #8a2552;--accent-yellow: #e9c84a;--accent-blue: #3a78c8;--gb-light: #c5d96a;--gb-mid: #8bac0f;--gb-dark: #306230;--gb-darkest: #0f380f;--tile: clamp(32px, calc((100vw - 64px)/8) , 58px);--body-font: "Noto Sans SC", "PingFang SC", -apple-system, "Segoe UI", sans-serif;--pixel-font: "Press Start 2P", "Courier New", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;font-family:var(--body-font);background:radial-gradient(ellipse at top left,#3a3530 0%,var(--bg-dark) 40%,var(--bg-darkest) 100%);color:var(--panel);overflow-x:hidden}#app{min-height:100vh;padding:12px 16px;display:grid;place-items:start center}.poster{width:min(880px,100%);background:var(--bg-dark);border:4px solid var(--panel-edge);box-shadow:inset 0 0 0 2px #ffffff0a,inset 0 0 80px #0006,0 30px 60px -20px #000c;padding:14px 16px;position:relative}.poster:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.012) 3px 4px)}.title-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 4px 9px;border-bottom:2px solid rgba(255,255,255,.08);margin-bottom:10px}.title-main{font-family:var(--pixel-font);font-size:clamp(20px,5.5vw,32px);letter-spacing:clamp(1px,.6vw,3px);color:var(--panel);text-shadow:3px 3px 0 var(--accent-pink);white-space:nowrap}.title-main .plus{color:var(--accent-yellow)}.top-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.topbtn{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0;font-family:var(--body-font);font-size:clamp(12px,3.4vw,15px);font-weight:700;padding:clamp(6px,1.8vw,10px) clamp(7px,2.2vw,15px);background:var(--panel);color:var(--ink);border:3px solid var(--panel-edge);cursor:pointer;box-shadow:3px 3px 0 var(--accent-pink);transition:transform 80ms,box-shadow 80ms,background 80ms;white-space:nowrap}.topbtn .tb-txt{letter-spacing:.5px}.topbtn:hover{background:var(--accent-yellow)}.topbtn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--accent-pink)}#btn-reset{box-shadow:3px 3px 0 var(--gb-dark)}#btn-regen{box-shadow:3px 3px 0 var(--accent-blue)}.hud{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.hud-scores{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.score-card{background:var(--panel);border:3px solid var(--panel-edge);padding:8px 16px;display:flex;align-items:center;gap:14px;min-width:0;overflow:hidden;position:relative;transition:transform .12s}.score-card.active{transform:translateY(-3px);box-shadow:5px 5px 0 var(--accent-pink)}.score-card.survivor.active{box-shadow:5px 5px 0 var(--accent-blue)}.score-card.zombie.active{box-shadow:5px 5px 0 var(--gb-dark)}.score-card img{width:clamp(34px,9vw,48px);height:clamp(34px,9vw,48px);image-rendering:pixelated;flex-shrink:0}.score-card .score-block{display:flex;flex-direction:column;gap:4px;min-width:0}.score-card .score-main{font-family:var(--pixel-font);font-size:clamp(20px,6vw,32px);color:var(--ink);letter-spacing:1px;line-height:1;white-space:nowrap}.score-card .score-main .of{font-size:.55em;color:var(--ink-soft);margin-left:6px}.score-card .score-sub{font-size:clamp(11px,3.2vw,15px);font-weight:600;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hud-hint{background:var(--panel);border:4px solid var(--panel-edge);padding:11px 18px;display:flex;flex-direction:column;justify-content:flex-start;gap:7px;box-shadow:5px 5px 0 var(--accent-pink);min-height:130px}@media (max-width: 920px){.hud-hint{min-height:156px}}@media (max-width: 560px){.hud-hint{min-height:176px}}.hud-hint.zombie{box-shadow:5px 5px 0 var(--gb-dark)}.hud-hint.survivor{box-shadow:5px 5px 0 var(--accent-blue)}.hint-top{display:flex;align-items:center;gap:14px}.hint-tag{font-family:var(--pixel-font);font-size:clamp(11px,3.4vw,15px);letter-spacing:clamp(1px,.5vw,2px);padding:clamp(6px,2vw,9px) clamp(9px,2.6vw,14px);background:var(--ink);color:var(--panel);white-space:nowrap;flex-shrink:0}.hud-hint.survivor .hint-tag{background:var(--accent-blue)}.hud-hint.zombie .hint-tag{background:var(--gb-dark)}.hint-title{font-size:clamp(16px,4.6vw,22px);font-weight:800;color:var(--ink);letter-spacing:.5px;line-height:1.3}.hint-detail{font-size:clamp(13px,3.8vw,17px);line-height:1.7;color:var(--ink)}.hint-detail .kw{display:inline-block;background:var(--accent-yellow);color:var(--ink);font-weight:800;padding:1px 7px;margin:2px 5px;border:2px solid var(--panel-edge);border-radius:3px;white-space:nowrap}.board-shell{background:var(--gb-darkest);border:4px solid var(--panel-edge);padding:6px;align-self:center;width:fit-content;margin:40px auto 4px;position:relative;transition:box-shadow .2s,outline-color .2s;box-shadow:inset 0 0 0 2px var(--gb-mid),4px 4px 0 var(--accent-pink)}.board-shell.survivor-turn{outline:5px solid var(--accent-blue);outline-offset:2px;box-shadow:inset 0 0 0 3px var(--accent-blue),0 0 22px 2px #3a78c88c}.board-shell.zombie-turn{outline:5px solid var(--gb-mid);outline-offset:2px;box-shadow:inset 0 0 0 3px var(--gb-mid),0 0 22px 2px #8bac0f80}.board-shell.survivor-turn:before,.board-shell.zombie-turn:before{position:absolute;top:-2px;left:50%;transform:translate(-50%,-100%);font-family:var(--pixel-font);font-size:clamp(10px,3vw,15px);letter-spacing:clamp(1px,.6vw,3px);padding:clamp(6px,1.8vw,9px) clamp(12px,4vw,22px);color:var(--panel);white-space:nowrap;z-index:4}.board-shell.survivor-turn:before{content:"▶ 幸 存 者 回 合";background:var(--accent-blue)}.board-shell.zombie-turn:before{content:"▶ 僵 尸 回 合";background:var(--gb-dark)}.cell-piece.pulse-survivor{animation:pulse-survivor 1.1s ease-in-out infinite}.cell-piece.pulse-zombie{animation:pulse-zombie 1.1s ease-in-out infinite}@keyframes pulse-survivor{0%,to{filter:drop-shadow(1px 2px 0 rgba(0,0,0,.45));transform:translateY(0)}50%{filter:drop-shadow(0 0 6px rgba(58,120,200,.95)) drop-shadow(1px 2px 0 rgba(0,0,0,.45));transform:translateY(-3px)}}@keyframes pulse-zombie{0%,to{filter:drop-shadow(1px 2px 0 rgba(0,0,0,.45));transform:translateY(0)}50%{filter:drop-shadow(0 0 6px rgba(139,172,15,.95)) drop-shadow(1px 2px 0 rgba(0,0,0,.45));transform:translateY(-3px)}}.board{display:grid;grid-template-columns:repeat(8,var(--tile));grid-template-rows:repeat(8,var(--tile));background:var(--gb-darkest)}.cell{position:relative;width:var(--tile);height:var(--tile);background-color:var(--gb-light);background-size:cover;background-repeat:no-repeat;background-position:center;cursor:pointer;outline:none;border:0;padding:0;image-rendering:pixelated}.cell.stone{cursor:default}.cell-piece{position:absolute;top:2px;right:2px;bottom:2px;left:2px;background-size:contain;background-repeat:no-repeat;background-position:center bottom;pointer-events:none;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.45))}.cell.selected:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:3px solid var(--accent-yellow);pointer-events:none;z-index:2;animation:pulse-border .6s ease-in-out infinite alternate}.cell.target:after{content:"";position:absolute;top:28%;right:28%;bottom:28%;left:28%;background:#ffffffeb;border:2px solid var(--gb-darkest);z-index:2;pointer-events:none;border-radius:50%;animation:pulse-target .7s ease-in-out infinite alternate}.cell.hi-zombie:after,.cell.hi-survivor:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;box-shadow:0 0 0 3px var(--accent-pink) inset,0 0 0 6px #fff6 inset;animation:pulse-border .6s ease-in-out infinite alternate}@keyframes pulse-border{0%{opacity:.5}to{opacity:1}}@keyframes pulse-target{0%{transform:scale(.7)}to{transform:scale(1.1)}}.log-line{margin-top:8px;background:var(--bg-darkest);border:2px solid var(--gb-mid);padding:9px 16px;font-size:15px;font-weight:600;color:var(--gb-light);min-height:36px;display:flex;align-items:center;gap:10px}.log-line .log-dot{color:var(--accent-pink)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a080eb3;display:flex;align-items:center;justify-content:center;z-index:50;animation:fade-in .2s ease-out}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.card{background:var(--panel);width:360px;padding:28px 22px 22px;position:relative;border:4px solid var(--panel-edge);box-shadow:8px 8px 0 var(--accent-pink),8px 8px 0 4px var(--gb-darkest);animation:card-pop .25s cubic-bezier(.34,1.56,.64,1)}@keyframes card-pop{0%{transform:scale(.55) rotate(-8deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}.card:before{content:"EVENT CARD";position:absolute;top:-16px;left:16px;background:var(--accent-pink);color:var(--panel);font-family:var(--pixel-font);font-size:10px;padding:5px 12px;letter-spacing:2px}.card-deck-row{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:4px 0 12px;border-bottom:2px dashed var(--ink-soft);font-size:12px;color:var(--ink-soft);letter-spacing:.5px}.card-deck-row .deck-icon{font-size:28px;animation:flip .5s ease-out}@keyframes flip{0%{transform:rotateY(-90deg) scale(.6);opacity:0}to{transform:rotateY(0) scale(1);opacity:1}}.card-title{font-family:var(--pixel-font);font-size:22px;color:var(--ink);margin:0 0 10px;letter-spacing:2px;text-shadow:2px 2px 0 var(--accent-pink)}.card-art{width:100%;height:100px;background:var(--gb-light);border:3px solid var(--panel-edge);margin-bottom:14px;display:grid;place-items:center;font-size:60px}.card-desc{font-size:13px;line-height:1.7;color:var(--ink);margin-bottom:14px}.card-action{display:flex;justify-content:space-between;align-items:center}.card-action .step{font-family:var(--pixel-font);font-size:10px;letter-spacing:1.5px;color:var(--ink-soft)}.card-action button{font-family:var(--pixel-font);font-size:11px;background:var(--ink);color:var(--panel);border:3px solid var(--ink);padding:10px 18px;letter-spacing:2px;cursor:pointer;box-shadow:3px 3px 0 var(--accent-pink)}.card-action button:hover{background:var(--accent-pink)}.card-action button:active{transform:translate(2px,2px);box-shadow:none}.card-action .auto-tag{font-family:var(--pixel-font);font-size:9px;letter-spacing:1px;color:var(--accent-pink);animation:ai-pulse 1s ease-in-out infinite}.step-toast{position:fixed;top:14px;left:50%;transform:translate(-50%);background:var(--panel);border:3px solid var(--panel-edge);padding:10px 16px;display:flex;align-items:center;gap:12px;font-family:var(--body-font);font-size:12px;color:var(--ink);box-shadow:4px 4px 0 var(--accent-pink);z-index:40;animation:slide-in .25s ease-out}@keyframes slide-in{0%{transform:translate(-50%,-120%);opacity:0}to{transform:translate(-50%);opacity:1}}.step-toast .step-pip{font-size:26px}.step-toast .step-name{font-family:var(--pixel-font);font-size:12px;color:var(--accent-pink);letter-spacing:2px}.step-toast .step-arrow{color:var(--ink-soft)}.rules-sheet{background:var(--panel);color:var(--ink);width:min(560px,100%);max-height:80vh;border:4px solid var(--panel-edge);box-shadow:8px 8px 0 var(--accent-pink),8px 8px 0 4px var(--gb-darkest);display:flex;flex-direction:column;animation:card-pop .2s ease-out}.rules-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:3px solid var(--panel-edge);background:var(--accent-pink);color:var(--panel)}.rules-head h2{margin:0;font-family:var(--pixel-font);font-size:16px;letter-spacing:3px}.rules-close{background:var(--panel);color:var(--ink);border:2px solid var(--panel-edge);width:32px;height:32px;font-size:20px;line-height:1;cursor:pointer}.rules-close:hover{background:var(--accent-yellow)}.rules-body{padding:16px 22px 22px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--accent-pink) transparent}.rules-body::-webkit-scrollbar{width:8px}.rules-body::-webkit-scrollbar-track{background:#00000014}.rules-body::-webkit-scrollbar-thumb{background:var(--accent-pink);border:2px solid var(--panel)}.rules-body section{margin-bottom:18px;padding-bottom:14px;border-bottom:1px dashed rgba(0,0,0,.15)}.rules-body section:last-child{border-bottom:none}.rules-body h3{font-family:var(--pixel-font);font-size:12px;letter-spacing:2px;color:var(--accent-pink);margin:0 0 10px}.rules-body ul{margin:0;padding-left:18px}.rules-body li{font-size:13px;line-height:1.7;margin:4px 0}.rules-body b{color:var(--accent-pink-deep)}.winner-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f380fe0;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;color:var(--gb-light)}.winner-overlay h1{font-family:var(--pixel-font);font-size:36px;letter-spacing:6px;text-shadow:4px 4px 0 var(--accent-pink);margin:0 0 12px;animation:shake .4s ease-in-out 3}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.winner-overlay .sub{font-size:13px;letter-spacing:1px;opacity:.85;margin-bottom:28px}.winner-overlay button{font-family:var(--pixel-font);font-size:12px;letter-spacing:3px;background:var(--gb-light);color:var(--gb-darkest);border:4px solid var(--gb-darkest);padding:14px 30px;cursor:pointer;box-shadow:5px 5px 0 var(--accent-pink)}.winner-overlay button:hover{background:var(--accent-yellow)}.win-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}.winner-overlay button.ghost{background:transparent;color:var(--gb-light);box-shadow:5px 5px 0 var(--gb-dark)}.winner-overlay button.ghost:hover{background:var(--gb-dark);color:var(--gb-light)}.start-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a080eeb;display:flex;align-items:center;justify-content:center;z-index:90;padding:20px;animation:fade-in .2s ease-out}.start-card{background:var(--bg-dark);border:4px solid var(--panel-edge);box-shadow:8px 8px 0 var(--accent-pink),8px 8px 0 4px var(--gb-darkest);padding:28px 24px;width:min(440px,100%);display:flex;flex-direction:column;align-items:stretch;gap:14px;text-align:center}.start-title{font-family:var(--pixel-font);font-size:clamp(24px,7vw,34px);letter-spacing:3px;color:var(--panel);text-shadow:3px 3px 0 var(--accent-pink)}.start-title .plus{color:var(--accent-yellow)}.start-sub{font-size:15px;color:#f6f1e0b3;margin-bottom:8px;letter-spacing:1px}.start-btn{display:flex;flex-direction:column;align-items:center;gap:4px;background:var(--panel);color:var(--ink);border:4px solid var(--panel-edge);padding:18px 16px;cursor:pointer;box-shadow:5px 5px 0 var(--accent-pink);transition:transform 80ms,box-shadow 80ms,background 80ms}.start-btn:hover{background:var(--accent-yellow);transform:translateY(-2px)}.start-btn:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--accent-pink)}.start-btn.pve{box-shadow:5px 5px 0 var(--gb-dark)}.start-btn .sb-ico{font-size:34px;line-height:1}.start-btn .sb-main{font-family:var(--pixel-font);font-size:15px;letter-spacing:2px}.start-btn .sb-desc{font-size:13px;color:var(--ink-soft)}.start-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.start-lbl{font-size:13px;color:#f6f1e0bf;flex:0 0 84px;width:84px;white-space:nowrap;text-align:left;letter-spacing:1px}.seg{display:flex;gap:8px;flex:1;flex-wrap:wrap}.seg-btn{flex:1;min-width:64px;font-family:var(--body-font);font-size:14px;font-weight:700;padding:10px 8px;background:var(--panel);color:var(--ink);border:3px solid var(--panel-edge);cursor:pointer;box-shadow:3px 3px #00000059;transition:transform 70ms,background 70ms,box-shadow 70ms}.seg-btn:hover{background:var(--accent-yellow)}.seg-btn.on{background:var(--accent-pink);color:var(--panel);box-shadow:3px 3px 0 var(--gb-darkest)}.seg-btn:active{transform:translate(2px,2px);box-shadow:0 0}.start-go{margin-top:6px;font-family:var(--pixel-font);font-size:16px;letter-spacing:4px;padding:14px;background:var(--gb-light);color:var(--gb-darkest);border:4px solid var(--gb-darkest);cursor:pointer;box-shadow:5px 5px 0 var(--accent-pink);transition:transform 80ms,background 80ms,box-shadow 80ms}.start-go:hover{background:var(--accent-yellow)}.start-go:active{transform:translate(3px,3px);box-shadow:0 0 0 var(--accent-pink)}.ai-badge{font-size:12px;font-weight:700;letter-spacing:1px;color:var(--panel);background:var(--gb-dark);border:2px solid var(--panel-edge);padding:4px 10px;margin-left:auto;white-space:nowrap;animation:ai-pulse 1s ease-in-out infinite}@keyframes ai-pulse{0%,to{opacity:.6}50%{opacity:1}}@media (max-width: 760px){.title-row{flex-wrap:wrap;gap:10px}.top-actions{width:100%;gap:6px;justify-content:space-between}.topbtn{flex:1 1 auto;min-width:0}}@media (max-width: 480px){#app{padding:8px}.poster{padding:10px;border-width:3px}.title-row{padding-bottom:8px;margin-bottom:8px;gap:8px}.top-actions{gap:5px}.topbtn{flex:1 1 0;padding:6px 4px;gap:3px;font-size:12px}.topbtn .tb-txt{letter-spacing:0}.hud-scores{gap:8px}.score-card{padding:7px 10px;gap:10px}.hud-hint{padding:10px 12px}.hint-detail .kw{margin:2px 4px}.board-shell{margin-top:34px;border-width:3px}.log-line{font-size:13px;padding:8px 12px}}@media (hover: none) and (pointer: coarse){.cell{touch-action:manipulation}.topbtn:active{transform:translate(2px,2px)}}
