:root{--bg: #080d12;--panel: #141b20;--border: #39433f;--text: #f2eddf;--muted: #a5aaa1;--santa: #d36a63;--yamada: #6db889;--accent: #d8bd81;--success: #82c49a;--danger: #dc8178}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:linear-gradient(135deg,#0f172a,#1e1b4b);color:var(--text);font-family:Segoe UI,Hiragino Sans,Yu Gothic,sans-serif}button,input{font:inherit}#app{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:16px}.screen{width:100%;max-width:480px;max-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch}.hidden{display:none!important}.panel{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:32px 24px;text-align:center;box-shadow:0 20px 40px #0006}h1{font-size:1.6rem;margin-bottom:8px}h2{font-size:1.3rem;margin-bottom:12px}.subtitle{color:var(--muted);font-size:.9rem;margin-bottom:12px}.rule-note{color:var(--accent);font-size:.85rem;margin-bottom:24px;padding:8px 12px;background:#fbbf241a;border:1px solid rgba(251,191,36,.3);border-radius:8px}.role-select{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.role-btn{display:flex;align-items:center;gap:12px;padding:16px 20px;border:2px solid transparent;border-radius:12px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.role-btn:hover{transform:translateY(-2px)}.role-btn.santa{background:linear-gradient(135deg,#7f1d1d,#b91c1c);color:#fff}.role-btn.yamada{background:linear-gradient(135deg,#1e3a8a,#2563eb);color:#fff}.role-icon{width:42px;height:42px;object-fit:contain;flex:0 0 42px}.role-row{display:flex;flex-direction:row;gap:12px;margin-bottom:12px}.role-row .role-btn{flex:1;flex-direction:column;align-items:center;gap:8px;padding:18px 10px}.note{color:var(--muted);font-size:.8rem;margin-bottom:16px}.role-btn.friend{background:linear-gradient(135deg,#0f766e,#14b8a6);color:#fff}.role-btn.random{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff}.role-btn.com{background:linear-gradient(135deg,#0f766e,#0d9488);color:#fff}.big-start{width:100%;padding:18px;font-size:1.25rem;font-weight:700;margin-top:16px}.friend-code-area{margin-top:8px;padding-top:12px;border-top:1px solid var(--border)}.room-code-display{font-size:1.05rem;margin-bottom:10px}.room-code-display strong{font-size:1.6rem;letter-spacing:.2em;color:var(--accent)}@media(max-height:540px){#app{padding:8px;align-items:flex-start}.panel{padding:16px 18px}h1{font-size:1.3rem;margin-bottom:4px}h2{font-size:1.1rem;margin-bottom:8px}.subtitle{margin-bottom:8px}.story{font-size:.8rem;margin-bottom:8px}.role-btn{padding:10px 14px}.big-start{padding:12px;font-size:1.1rem;margin-top:8px}}.room-code-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px;text-align:left}.room-code-row label{color:var(--muted);font-size:.85rem}.room-code-row input{background:#0b1220;border:1px solid var(--border);border-radius:8px;padding:12px;color:var(--text);font-size:1.1rem;text-align:center;letter-spacing:.2em;text-transform:uppercase}.message{min-height:1.4em;color:var(--muted);font-size:.9rem;margin-top:12px}.message.error{color:var(--danger)}.message,.game-alert,.room-event-message,#encounterText,#itemModalDescription,#returnChoiceDescription,.item-target-prompt,.result-score,.score-history li{white-space:pre-line;overflow-wrap:normal;word-break:auto-phrase;text-wrap:wrap}.story p,.note,.settings-note,.finished-actions p,#itemTargetPicker p,.mission-label{word-break:auto-phrase;overflow-wrap:normal}.game-board-wrap{position:relative}.game-alert{position:absolute;top:50%;left:50%;z-index:5;width:min(88%,320px);color:#fef3c7f0;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:1rem;font-weight:700;line-height:1.45;text-align:center;letter-spacing:.02em;text-shadow:0 0 18px rgba(251,191,36,.26),0 2px 8px rgba(0,0,0,.9);pointer-events:none;opacity:0;transform:translate(-50%,-50%);transition:opacity .42s ease}.game-alert.is-visible{opacity:1}.role-label{font-size:1rem;font-weight:700;margin-bottom:8px}.role-label.santa{color:var(--santa)}.role-label.yamada{color:var(--yamada)}.room-code-display{color:var(--muted);margin-bottom:16px}.room-code-display strong{font-size:1.4rem;letter-spacing:.3em;color:var(--accent)}.primary{background:linear-gradient(135deg,var(--accent),#f59e0b);color:#1c1005;border:none;border-radius:10px;padding:12px 24px;font-weight:700;cursor:pointer;margin-top:12px}.secondary{background:#334155cc;color:var(--text);border:1px solid var(--border);border-radius:10px;padding:10px 20px;cursor:pointer;margin-top:12px}.game-header{margin-bottom:8px}.turn-panels{display:grid;grid-template-columns:1fr 1fr;gap:10px}.turn-card{min-width:0;padding:8px 10px;border-bottom:1px solid var(--border);text-align:left}.turn-card.is-acting.yamada{border-bottom-color:var(--yamada)}.turn-card.is-acting.santa{border-bottom-color:var(--santa)}.turn-label{display:block;overflow:hidden;color:var(--muted);font-size:.78rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.turn-label.yamada,.turn-value.yamada{color:var(--yamada)}.turn-label.santa,.turn-value.santa{color:var(--santa)}.opponent-turn{opacity:.72}.turn-card.opponent-turn.is-acting{opacity:1}.turn-card.opponent-turn.santa.is-acting{border-bottom-color:var(--santa);animation:santa-turn-pulse 1.6s ease-in-out infinite}.turn-card.opponent-turn.yamada.is-acting{border-bottom-color:var(--yamada);animation:yamada-turn-pulse 1.6s ease-in-out infinite}@keyframes santa-turn-pulse{50%{box-shadow:0 4px 14px #ef444447}}@keyframes yamada-turn-pulse{50%{box-shadow:0 4px 14px #22c55e47}}.turn-card strong{display:block;margin-top:3px;font-size:1rem}.panel.wide{max-width:min(96vw,560px);padding:20px 14px}.story{text-align:left;color:var(--muted);font-size:.85rem;line-height:1.7;margin-bottom:20px;background:#0f172a80;border:1px solid var(--border);border-radius:10px;padding:10px 14px}.story summary{cursor:pointer;color:var(--accent);font-weight:700;text-align:center}.story p{margin-top:10px}.grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:24px -2px 18px;padding:10px 6px 16px;perspective:1100px;transform:rotateX(4deg);transform-origin:center top}.cell{position:relative;isolation:isolate;aspect-ratio:.78;border:1px solid #101827;border-radius:2px;background:linear-gradient(135deg,rgba(255,255,255,.09) 25%,transparent 25%) 0 0 / 16px 16px,linear-gradient(45deg,rgba(0,0,0,.08) 25%,transparent 25%) 0 0 / 16px 16px,#46546a;color:var(--text);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:17px 7px 8px 12px;overflow:hidden;box-shadow:inset 0 0 0 2px #ffffff14,inset -8px -8px 14px #0000002e,3px 4px #172033}.cell:before,.cell:after{content:"";position:absolute;z-index:-1;pointer-events:none}.cell:before{top:0;left:0;width:100%;height:15px;border-bottom:2px solid rgba(9,15,28,.72);background:linear-gradient(#8493a7,#526075 72%,#344157);box-shadow:inset 0 1px #ffffff3d}.cell:after{top:0;left:0;width:10px;height:100%;border-right:2px solid rgba(9,15,28,.62);background:linear-gradient(90deg,#263247,#526075)}.cell:disabled{cursor:default}.cell.heat-sensor-target{z-index:10;outline:3px solid #fbbf24;outline-offset:-4px;box-shadow:0 0 15px #fbbf24cc,inset 0 0 0 2px #ffffff4d;cursor:crosshair;animation:heat-sensor-target-pulse 1s ease-in-out infinite alternate}@keyframes heat-sensor-target-pulse{0%{filter:brightness(1)}to{filter:brightness(1.3)}}.cell.unknown{color:#e2e8f0ad;font-size:1.4rem;background:radial-gradient(ellipse at 50% 110%,rgba(96,165,250,.12),transparent 62%),repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 2px,transparent 2px 8px),#182334}.cell.known{background:linear-gradient(135deg,rgba(255,255,255,.09) 25%,transparent 25%) 0 0 / 16px 16px,linear-gradient(45deg,rgba(0,0,0,.08) 25%,transparent 25%) 0 0 / 16px 16px,#46546a}.cell.room-bedroom{background-color:#7c6572}.cell.room-living{background-color:#65785d}.cell.room-hall{background-color:#627083}.cell.room-bath{background-color:#527688}.cell.room-japanese{background-color:#847453}.cell.room-storage{background-color:#695f52}.cell.room-guest{background-color:#736581}.cell.room-kitchen{background-color:#607880}.cell.room-toilet{background-color:#607c86}.cell.room-entrance{background-color:#6c716e}.cell.room-bedroom:before{background:linear-gradient(#a58b99,#6e5966)}.cell.room-bath:before,.cell.room-toilet:before{background:linear-gradient(#7faaba,#4e7180)}.cell.room-japanese:before{background:linear-gradient(#ad986f,#786642)}.cell.room-kitchen:before{background:linear-gradient(#8ea5a8,#596f72)}.cell.room-unknown:before{background:linear-gradient(#34465f,#1b2637)}.cell.room-unknown:after{background:linear-gradient(90deg,#101827,#304158)}.cell.wall{background:repeating-linear-gradient(45deg,#292524,#292524 8px,#1c1917 8px,#1c1917 16px);border-color:#26221f;box-shadow:3px 4px #0b101b}.cell-name{font-size:.7rem;color:#dbeafe;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.7);z-index:1}.cell.here{border-color:var(--accent);box-shadow:inset 0 0 0 2px #fbbf2473,3px 4px #614a0b}.cell.movable{border-color:#60a5fa;cursor:pointer;box-shadow:inset 0 0 0 2px #4ade8038,3px 4px #0f5c39d1,0 0 15px #22c55e38;transition:transform .18s ease,filter .18s ease,box-shadow .18s ease}.cell.movable:hover{transform:translateY(-3px) scale(1.02);filter:brightness(1.16)}.cell.movable:active{transform:translateY(1px);box-shadow:inset 0 3px 8px #0000004d}#gameGrid,#resultGrid{position:relative;width:100%;aspect-ratio:auto;gap:0;margin:16px 0;padding:0;overflow:hidden;border:4px solid #46546a;border-radius:4px;background:#1b2839;box-shadow:0 5px 13px #00000042;transform:none}#gameGrid .cell,#resultGrid .cell{--floor: #52657b;aspect-ratio:.88;border:0;border-right:1px solid #46546a;border-bottom:1px solid #46546a;border-radius:0;background:#46546a;transform:none;box-shadow:none;padding:6px}#gameGrid .cell:before,#resultGrid .cell:before{display:block;top:6px;right:6px;bottom:6px;left:6px;width:auto;height:auto;z-index:0;border:1px solid rgba(15,27,42,.34);clip-path:none;background:repeating-linear-gradient(45deg,rgba(0,0,0,.05) 0 1px,transparent 1px 8px),linear-gradient(180deg,rgba(8,18,32,.3),transparent 34%),var(--floor);box-shadow:inset 0 6px 7px #08122040,inset 0 -1px #ffffff14}#gameGrid .cell:after,#resultGrid .cell:after{display:block;top:0;right:0;bottom:0;left:0;width:auto;height:auto;z-index:0;border:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' preserveAspectRatio='none'%3E%3Cpath d='M0 0 L8 8 M100 0 L92 8 M0 100 L8 92 M100 100 L92 92' fill='none' stroke='%23627487' stroke-width='1.4'/%3E%3C/svg%3E") center / 100% 100% no-repeat;box-shadow:none;pointer-events:none}#gameGrid .cell>*,#resultGrid .cell>*{position:relative;z-index:1}#gameGrid .cell.room-bedroom,#resultGrid .cell.room-bedroom{--floor: #8a6572}#gameGrid .cell.room-living,#resultGrid .cell.room-living{--floor: #6b855f}#gameGrid .cell.room-hall,#resultGrid .cell.room-hall{--floor: #6b7f9b}#gameGrid .cell.room-bath,#resultGrid .cell.room-bath{--floor: #578da1}#gameGrid .cell.room-japanese,#resultGrid .cell.room-japanese{--floor: #978158}#gameGrid .cell.room-storage,#resultGrid .cell.room-storage{--floor: #776452}#gameGrid .cell.room-guest,#resultGrid .cell.room-guest{--floor: #7b6b91}#gameGrid .cell.room-kitchen,#resultGrid .cell.room-kitchen{--floor: #678b92}#gameGrid .cell.room-toilet,#resultGrid .cell.room-toilet{--floor: #668f9a}#gameGrid .cell.room-entrance,#resultGrid .cell.room-entrance{--floor: #77807a}#gameGrid .cell.room-unknown{--floor: #243449}#gameGrid .cell.opening-hint-candidate{animation:opening-hint-candidate-flash .9s ease-in-out infinite}@keyframes opening-hint-candidate-flash{0%,to{box-shadow:inset 0 0 0 2px #f871717a,0 0 8px #ef444447;filter:brightness(.94)}50%{box-shadow:inset 0 0 0 3px #f87171fa,0 0 20px #ef4444e6;filter:brightness(1.35)}}#gameGrid .cell.movable{box-shadow:inset 0 0 0 2px #1e3a5f4d;animation:movable-breathe 1.8s ease-in-out infinite}@keyframes movable-breathe{0%,to{border-color:#1e3a5f4d;box-shadow:inset 0 0 0 2px #1e3a5f4d,0 0 7px #3b82f60a}50%{border-color:#bfdbfe;box-shadow:inset 0 0 0 2px #bfdbfe,0 0 18px #3b82f6a6}}#gameGrid .cell.movable:hover{transform:none;filter:brightness(1.12)}#gameGrid .cell.movable:active{transform:none;filter:brightness(.94)}#gameGrid .cell .cell-name,#resultGrid .cell .cell-name{font-size:.62rem}#gameGrid .cell.has-room-image,#resultGrid .cell.has-room-image{color:#f8fafc;text-shadow:0 1px 4px rgba(0,0,0,.95)}#gameGrid .cell.has-room-image:before,#resultGrid .cell.has-room-image:before{display:block;z-index:2;background:linear-gradient(180deg,#0308101f,#0308106b);box-shadow:none}#gameGrid .cell.has-room-image:after,#resultGrid .cell.has-room-image:after{z-index:2}#gameGrid .cell-unknown-mark{font-size:1.2rem;color:#e2e8f0c2}#gameGrid .cell.here{box-shadow:inset 0 0 0 2px #d9a41c9e}#gameGrid .cell.wall,#resultGrid .cell.wall{background:repeating-linear-gradient(135deg,#050a12 0,#050a12 7px,#202e40 7px,#202e40 14px);border-color:transparent;box-shadow:inset 0 0 0 1px #1a2637}#gameGrid .cell.wall:before,#gameGrid .cell.wall:after,#resultGrid .cell.wall:before,#resultGrid .cell.wall:after{display:block;clip-path:none;background:#334155;opacity:1}#gameGrid .cell.wall:before,#resultGrid .cell.wall:before{top:0;right:0;bottom:0;left:0;width:auto;height:auto;background:repeating-linear-gradient(135deg,#050a12 0,#050a12 3px,#1f2d3f 3px,#1f2d3f 14px)}#gameGrid .cell.wall:after,#resultGrid .cell.wall:after{display:none}#gameGrid .cell>.room-door{position:absolute;z-index:3;display:block;border:1px solid #4b2d19;background:#98613a;box-shadow:inset 0 1px #ffffff38,inset -1px -1px #00000040;pointer-events:none}.room-door-right{top:50%;right:2px;width:5px;height:30%;transform:translateY(-50%)}.room-door-bottom{bottom:2px;left:50%;width:34%;height:5px;transform:translate(-50%)}.room-door-left{top:50%;left:2px;width:5px;height:30%;transform:translateY(-50%)}.room-door-top{top:2px;left:50%;width:34%;height:5px;transform:translate(-50%)}.room-entry-overlay{position:fixed;z-index:200;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#02060d;opacity:0;transition:opacity .22s ease;pointer-events:none;overflow:hidden}.room-entry-encounter{pointer-events:all}.room-entry-start{background:#02060d80;pointer-events:all}.room-entry-opening-hint{background:#0203066b;pointer-events:all}.room-entry-walking,.room-entry-reveal,.room-entry-floor,.room-entry-encounter,.room-entry-leaving{opacity:1}.room-entry-walking,.room-entry-reveal,.room-entry-floor,.room-entry-event,.room-entry-opponent-turn,.room-entry-encounter{animation:room-entry-fade-in .42s ease both}.room-entry-leaving{animation:room-entry-fade .34s ease forwards}.room-entry-scene{width:100%;height:100%;display:grid;place-items:center;color:#e2e8f0;font-family:Yu Mincho,Hiragino Mincho ProN,serif;isolation:isolate}.room-entry-walk,.room-reveal,.room-floor-view,.room-encounter{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;opacity:0}.room-entry-walking{background:#000}.room-entry-walking .room-entry-walk{opacity:1}.lantern-visual{width:min(44vw,260px);height:min(54vh,360px);object-fit:contain;transform-origin:50% 8%;opacity:0;filter:brightness(.35) drop-shadow(0 0 6px rgba(255,222,150,.08));animation:lantern-appear 3s linear both}@keyframes lantern-appear{0%{opacity:0;transform:translateY(12px) rotate(-8deg) scale(.82);filter:brightness(.25) drop-shadow(0 0 4px rgba(255,222,150,.04))}6.25%{opacity:.15;transform:translateY(4px) rotate(-7.39deg) scale(.88)}12.5%{opacity:.4;transform:translateY(0) rotate(-5.66deg) scale(.94)}18.75%{opacity:.75;transform:translateY(0) rotate(-3.06deg) scale(.98)}25%{opacity:1;transform:translateY(0) rotate(0) scale(1)}31.25%{transform:translateY(0) rotate(3.06deg) scale(1)}37.5%{transform:translateY(0) rotate(5.66deg) scale(1)}43.75%{transform:translateY(0) rotate(7.39deg) scale(1)}50%{transform:translateY(0) rotate(8deg) scale(1)}56.25%{transform:translateY(0) rotate(7.39deg) scale(1)}62.5%{transform:translateY(0) rotate(5.66deg) scale(1)}68.75%{transform:translateY(0) rotate(3.06deg) scale(1)}75%{transform:translateY(0) rotate(0) scale(1)}81.25%{transform:translateY(0) rotate(-3.06deg) scale(1)}87.5%{transform:translateY(0) rotate(-5.66deg) scale(1)}93.75%{transform:translateY(0) rotate(-7.39deg) scale(1)}to{opacity:1;transform:translateY(0) rotate(-8deg) scale(1);filter:brightness(1) drop-shadow(0 0 34px rgba(255,222,150,.5))}}.room-entry-walking .room-entry-walk{z-index:1;align-content:center}.room-entry-walking p,.room-floor-view p{margin:0;color:#e2e8f0c2;font-size:.88rem;letter-spacing:.12em}.room-entry-walking .walk-corridor{width:min(78vw,360px);height:min(45vh,310px);position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(3,8,16,.96),transparent 25% 75%,rgba(3,8,16,.96)),linear-gradient(180deg,#040914 0,#040914 28%,#152235 29%,#0b1422);clip-path:polygon(33% 0,67% 0,100% 100%,0 100%);animation:walking-bob .5s ease-in-out 3 both}.walk-corridor:before,.walk-corridor:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(90deg,transparent 0 21%,rgba(148,163,184,.12) 22% 23%,transparent 24% 100%);transform:perspective(360px) rotateX(58deg) scale(1.45);transform-origin:bottom}.walk-corridor:after{background:radial-gradient(ellipse at 50% 12%,rgba(173,216,255,.2),transparent 30%);transform:none}.walk-corridor span{position:absolute;left:50%;bottom:15%;width:14px;height:8px;border-radius:50%;background:#e2e8f08c;filter:blur(1px);animation:walking-steps .5s linear 3}.walk-corridor span:nth-child(2){animation-delay:.5s}.walk-corridor span:nth-child(3){animation-delay:1s}.room-entry-walking .walk-corridor{animation:walk-fade-in .25s ease both,walking-bob .5s ease-in-out 3 both}.room-entry-walking p{animation:walk-fade-in .25s ease both}.room-entry-reveal{z-index:2;background:#05080e;align-content:center;gap:22px}.room-reveal-visual{width:100vw;height:100vh;position:relative;overflow:hidden;border:0;box-shadow:inset 0 0 90px #000000ad;background:linear-gradient(#182335 0,#182335 39%,#6b5a43 39%)}.room-reveal-visual:before,.room-reveal-visual:after{content:"";position:absolute}.room-reveal-visual:before{left:50%;bottom:-10%;width:160%;height:76%;transform:translate(-50%) perspective(300px) rotateX(52deg);transform-origin:bottom;background:repeating-linear-gradient(90deg,rgba(255,255,255,.07) 0 1px,transparent 1px 23px),#766047}.room-reveal-visual:after{left:50%;bottom:35%;width:30%;height:28%;transform:translate(-50%);background:#3a2d24;border:4px solid #a47b4f;box-shadow:0 5px #211815}.room-reveal-visual.has-room-image:before,.room-reveal-visual.has-room-image:after{display:none}.room-reveal-visual.has-room-image{background-repeat:no-repeat}.scene-japanese{background:linear-gradient(#d8cfae 0,#d8cfae 39%,#a28c57 39%)}.scene-japanese:before{background:repeating-linear-gradient(90deg,rgba(70,55,30,.2) 0 2px,transparent 2px 25px),#a28c57}.scene-japanese:after{width:42%;height:42%;bottom:42%;background:repeating-linear-gradient(90deg,#ede6c9 0,#ede6c9 22%,#604f3b 22%,#604f3b 25%);border-color:#4c3d30}.scene-bedroom{background:linear-gradient(#253950 0,#253950 39%,#594239 39%)}.scene-bedroom:after{width:52%;height:21%;bottom:38%;background:#d5c5b8;border-color:#513d38}.scene-kitchen{background:linear-gradient(#263d45 0,#263d45 39%,#6b7771 39%)}.scene-kitchen:after{width:55%;height:25%;bottom:36%;background:#a6b6b1;border-color:#334641}.scene-bath{background:linear-gradient(#244354 0,#244354 39%,#57879b 39%)}.scene-bath:after{width:45%;height:23%;bottom:35%;border-radius:50% 50% 12% 12%;background:#b9e1e9;border-color:#426f7d}.scene-toilet{background:linear-gradient(#314650 0,#314650 39%,#7aa1a8 39%)}.scene-toilet:after{width:22%;height:32%;bottom:32%;border-radius:44% 44% 22% 22%;background:#e2eded;border-color:#527078}.scene-living{background:linear-gradient(#384441 0,#384441 39%,#75836c 39%)}.scene-living:after{width:58%;height:22%;bottom:36%;border-radius:14px;background:#7b5b48;border-color:#38251e}.scene-storage{background:linear-gradient(#302d2a 0,#302d2a 39%,#665b4e 39%)}.scene-storage:after{width:36%;height:42%;bottom:31%;background:repeating-linear-gradient(90deg,#76583b 0,#76583b 30%,#3d2c20 30%,#3d2c20 35%);border-color:#251b15}.scene-guest{background:linear-gradient(#383047 0,#383047 39%,#6f5f79 39%)}.scene-hall{background:linear-gradient(#1e2b3b 0,#1e2b3b 39%,#58677c 39%)}.scene-entrance{background:linear-gradient(#26313b 0,#26313b 39%,#70736c 39%)}.room-reveal-title{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);margin:0;color:#f1ead8;font-size:2rem;letter-spacing:.22em;text-indent:.22em;text-shadow:0 3px 18px rgba(0,0,0,.8)}.room-entry-floor{z-index:3;align-content:center;gap:22px;background:radial-gradient(ellipse at 50% 20%,#31495c,#0a111c 68%)}.floor-perspective{width:min(80vw,360px);aspect-ratio:1.35;position:relative;background:repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 36px),repeating-linear-gradient(0deg,rgba(0,0,0,.12) 0 1px,transparent 1px 26px),linear-gradient(#536878,#202f3d);transform:perspective(420px) rotateX(58deg);box-shadow:0 22px 25px #00000080}.room-footprint{width:58px;height:44px;position:absolute;padding:0;border:0;background:transparent;color:#e2e8f0db;font-size:1.15rem;font-weight:700;text-align:center;opacity:1}.room-footprint:before,.room-footprint:after{content:"";position:absolute;width:10px;height:21px;border-radius:48% 52% 38% 62%;background:radial-gradient(circle at 22% 9%,currentColor 0 2px,transparent 2.5px),radial-gradient(circle at 52% 4%,currentColor 0 2px,transparent 2.5px),radial-gradient(circle at 82% 14%,currentColor 0 1.8px,transparent 2.3px),linear-gradient(160deg,currentColor 0 100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.42))}.room-footprint:before{left:18px;top:14px;transform:rotate(-18deg)}.room-footprint:after{left:31px;top:8px;transform:rotate(18deg)}.room-footprint.yamada{color:var(--yamada)}.room-footprint.santa{color:var(--santa)}.room-footprint.fresh-step:before,.room-footprint.fresh-step:after{opacity:0}.room-entry-floor .room-footprint.fresh-step:before{animation:footprint-stamp .22s ease-out 1.2s both}.room-entry-floor .room-footprint.fresh-step:after{animation:footprint-stamp .22s ease-out 1.65s both}.room-footprint.new-trace{z-index:1}.room-footprint.new-trace:before,.room-footprint.new-trace:after{filter:drop-shadow(0 2px 2px rgba(0,0,0,.42)) drop-shadow(0 0 1px #fef08a) drop-shadow(0 0 5px rgba(250,204,21,.92)) drop-shadow(0 0 11px rgba(250,204,21,.72))}@keyframes footprint-stamp{0%{opacity:0;scale:1.25}to{opacity:1;scale:1}}.room-entry-walking .room-entry-walk,.room-entry-reveal .room-reveal,.room-entry-floor .room-floor-view,.room-entry-encounter .room-encounter{opacity:1}.room-entry-reveal .room-reveal-visual{animation:reveal-room 1.1s ease both}.room-entry-reveal .room-reveal-title{animation:reveal-title 1.8s ease both}.room-entry-floor .floor-perspective{animation:floor-camera 1.2s ease both}.room-encounter{z-index:4;align-content:center;gap:26px;background:radial-gradient(ellipse at 50% 48%,#4d1116,#13050a 42%,#020306 78%)}.room-entry-encounter.encounter-yamada .room-encounter{background:radial-gradient(ellipse at 50% 48%,#174b2b,#071b10 42%,#020603 78%)}.room-encounter p{margin:0;color:#f7d7d7;font-size:1.08rem;letter-spacing:.13em;text-indent:.13em}.room-entry-encounter.encounter-yamada .room-encounter p{color:#dcfce7;text-shadow:0 0 18px rgba(74,222,128,.42)}.room-entry-event{z-index:5;background:#020306;opacity:1;pointer-events:none}.room-entry-event.room-entry-opening-hint{background:#0203066b;pointer-events:all}.room-entry-opponent-turn{z-index:5;background:#0203066b;opacity:1;pointer-events:all}.room-event-message{position:absolute;z-index:6;top:50%;left:50%;width:min(88vw,620px);max-height:calc(100dvh - 32px);overflow-y:auto;padding:clamp(16px,4vw,28px);color:#f1ead8;font-family:Yu Mincho,Hiragino Mincho ProN,serif;font-size:clamp(1rem,4.5vw,1.25rem);line-height:1.7;letter-spacing:clamp(.02em,.7vw,.1em);text-align:center;text-shadow:0 2px 18px rgba(0,0,0,.9);opacity:0;overflow-wrap:normal;text-wrap:wrap;transform:translate(-50%,-50%)}.room-entry-event:not(.room-entry-start) .room-event-message{animation:com-turn-message-in .7s ease .35s forwards}.room-entry-start .room-event-message{animation:com-turn-message-in .7s ease .35s forwards}.room-entry-start .room-start-context{display:block;margin-top:.65em;color:#f1ead8d1;font-size:.78em}.room-entry-opponent-turn .room-event-message{animation:com-turn-message-in .7s ease .35s forwards}@keyframes com-turn-message-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px))}to{opacity:1;transform:translate(-50%,-50%)}}@keyframes room-entry-fade-in{0%{opacity:0}to{opacity:1}}.opponent-silhouette{width:min(48vw,210px);height:min(52vh,390px);position:relative;background:#07090d;clip-path:polygon(42% 0,58% 0,67% 19%,62% 29%,83% 46%,75% 100%,25% 100%,17% 46%,38% 29%,33% 19%);filter:drop-shadow(0 0 26px rgba(255,238,208,.18));animation:silhouette-reveal 1.8s ease both}.opponent-silhouette.silhouette-image{clip-path:none;background-color:transparent;background-position:center;background-repeat:no-repeat;background-size:contain;filter:drop-shadow(0 0 26px rgba(255,238,208,.24))}.room-entry-encounter .opponent-silhouette.silhouette-image{--encounter-glow-start: rgba(255, 238, 208, .1);--encounter-glow-peak: rgba(255, 238, 208, .5);--encounter-glow-end: rgba(255, 238, 208, .3);width:min(88vw,520px);height:min(88vh,720px);animation:opponent-encounter-reveal 1.15s cubic-bezier(.16,1,.3,1) both}.room-entry-encounter.encounter-yamada .opponent-silhouette.silhouette-image{--encounter-glow-start: rgba(74, 222, 128, .12);--encounter-glow-peak: rgba(74, 222, 128, .62);--encounter-glow-end: rgba(34, 197, 94, .38)}@keyframes opponent-encounter-reveal{0%{opacity:0;transform:scale(.28);filter:blur(18px) drop-shadow(0 0 4px var(--encounter-glow-start))}62%{opacity:1;transform:scale(1.08);filter:blur(0) drop-shadow(0 0 34px var(--encounter-glow-peak))}to{opacity:1;transform:scale(1);filter:blur(0) drop-shadow(0 0 24px var(--encounter-glow-end))}}@keyframes walking-steps{0%{transform:translate(-50%,120px) scale(.45);opacity:0}35%{opacity:.75}to{transform:translate(-50%,-165px) scale(2);opacity:0}}@keyframes walking-bob{0%,to{transform:translateY(0)}50%{transform:translateY(13px)}}@keyframes walk-fade-in{0%{opacity:0}to{opacity:1}}@keyframes reveal-room{0%{opacity:0;transform:scale(1.1);filter:brightness(.12)}to{opacity:1;transform:scale(1);filter:brightness(1)}}@keyframes reveal-title{0%,to{opacity:0;transform:translate(-50%,calc(-50% + 8px))}20%,80%{opacity:1;transform:translate(-50%,-50%)}}@keyframes floor-camera{0%{opacity:0;transform:perspective(420px) rotateX(58deg) translateY(-92px) scale(1.15)}to{opacity:1;transform:perspective(420px) rotateX(58deg) translateY(0)}}@keyframes silhouette-reveal{0%{opacity:0;transform:scale(1.25);filter:blur(14px)}55%{opacity:1;transform:scale(1);filter:blur(0)}to{opacity:1;transform:scale(1.02);filter:blur(0)}}@keyframes room-entry-fade{0%{opacity:1}to{opacity:0}}@media(max-height:540px){.room-event-message{max-height:calc(100dvh - 20px);padding:10px 16px;font-size:clamp(1rem,4.5vh,1.2rem);line-height:1.55}}.legend img{width:1.2rem;height:1.2rem;object-fit:contain;vertical-align:middle}.footprints{position:relative;z-index:5;display:flex;flex-wrap:wrap;gap:2px;justify-content:center;max-width:100%}.fp-chip{width:28px;height:28px;position:relative;display:inline-flex;align-items:center;justify-content:center;padding:2px;border:1px solid currentColor;border-radius:50%;background:#030810b3}.fp-chip.yamada{color:var(--yamada)}.fp-chip.santa{color:var(--santa)}.fp-chip img{width:100%;height:100%;object-fit:contain}.fp-turn{position:absolute;top:-5px;right:-5px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:#030810eb;color:#f8fafc;font-size:.5rem;line-height:14px;text-align:center}.mission-list{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px;font-size:.85rem}.mission-section{display:flex;flex-direction:column;gap:4px;padding:7px;border:1px solid var(--border);border-radius:10px}.main-missions{background:#0f172a7a}.main-missions.yamada-missions{border-color:#22c55e73}.main-missions.santa-missions{border-color:#ef444473}.side-missions{background:#452d0b47;border-color:#f59e0b47}.mission-section-title{margin:0 3px 2px;color:var(--text);font-size:.72rem;font-weight:800;letter-spacing:.08em;text-align:left}.yamada-missions .mission-section-title{color:var(--yamada)}.santa-missions .mission-section-title{color:var(--santa)}.side-missions .mission-section-title{color:#fcd34d}.mission-item{display:flex;align-items:center;gap:8px;color:var(--muted);text-align:left;padding:6px 10px;background:#0f172a73;border:1px solid var(--border);border-radius:8px}.mission-check-area{position:relative;display:grid;flex:0 0 20px;place-items:center;width:20px;height:20px}.mission-item .check{display:grid;width:18px;height:18px;place-items:center;border:1px solid currentColor;border-radius:5px;color:#94a3b8;font-size:.78rem;font-weight:900;line-height:1}.mission-lock{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;display:grid;place-items:center;border:1px solid rgba(148,163,184,.55);border-radius:5px;background:#0f172af5;color:#cbd5e1;font-size:.78rem}.mission-label{min-width:0}.mission-item.done{color:var(--success);border-color:#22c55e66}.mission-item.done .check{border-color:#22c55eb3;background:#16653459;color:#86efac}.yamada-missions .mission-item:not(.done){border-left:3px solid rgba(34,197,94,.7)}.santa-missions .mission-item:not(.done){border-left:3px solid rgba(239,68,68,.7)}.side-missions .mission-item:not(.done){border-left:3px solid rgba(245,158,11,.62)}.item-inventory{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;margin:4px 0 0;padding:9px 11px;border:1px solid var(--border);border-radius:9px;background:#0f172aa6}.item-inventory-empty{color:var(--muted);font-size:.82rem}.item-target-prompt{color:#fde68a;font-size:.82rem;line-height:1.4}.item-target-cancel{min-height:38px;padding:6px 10px;font-size:.82rem}.inventory-item{min-width:110px;padding:8px 12px;border:1px solid rgba(125,211,252,.48);border-radius:7px;background:#082f49c7;color:#e0f2fe;font-size:.88rem;font-weight:700}.inventory-item:disabled{opacity:.5;cursor:default}.item-dialog h2{margin:0 30px 10px 0;color:#f8fafc}.bell-wave{position:absolute;z-index:20;width:14px;height:14px;border:1px solid rgba(186,230,253,.58);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);animation:bell-wave-expand 1.65s cubic-bezier(.2,.6,.35,1) 1 both;box-shadow:0 0 6px #7dd3fc6b}.bell-wave:before,.bell-wave:after{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1px solid rgba(186,230,253,.48);border-radius:50%;content:"";animation:bell-wave-expand 1.65s cubic-bezier(.2,.6,.35,1) 1 both}.bell-wave:before{animation-delay:.28s}.bell-wave:after{animation-delay:.56s}@keyframes bell-wave-expand{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}12%{opacity:.46}to{opacity:0;transform:translate(-50%,-50%) scale(7.5)}}.legend{color:var(--muted);font-size:.8rem;margin-top:4px}.item-inventory{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-height:58px;margin:8px 0 2px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#0f172a8c}.item-inventory-title{flex:0 0 100%;color:var(--muted);font-size:.72rem;text-align:left}.item-inventory-empty{color:var(--muted);font-size:.85rem}.finished-actions{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid rgba(34,197,94,.45);border-radius:9px;background:#14532d47}.finished-actions p{color:#bbf7d0;font-size:.88rem}.score-history{margin-top:16px;border-top:1px solid var(--border);padding-top:12px;text-align:left}.score-history summary{color:#fde68a;cursor:pointer;font-weight:700}.score-total{margin:10px 0;color:#fde68a;font-weight:700}.score-history ol{display:grid;gap:7px;max-height:240px;margin:0;padding-left:22px;overflow-y:auto;color:var(--muted);font-size:.8rem;line-height:1.45}.result-score{margin:10px 0 16px;color:#fde68a;font-weight:700;line-height:1.5}.inventory-item{min-width:112px;padding:8px 12px;border:1px solid rgba(125,211,252,.45);border-radius:7px;background:#082f49b8;color:#e0f2fe;font-size:.88rem;font-weight:700}.inventory-item:disabled{opacity:.52;cursor:default}.item-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:18px;background:#020617c7;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.item-dialog{position:relative;width:min(100%,390px);padding:26px 20px 18px;border:1px solid rgba(125,211,252,.36);border-radius:12px;background:linear-gradient(155deg,#1e293b,#0f172a);box-shadow:0 22px 55px #00000094;text-align:left}.item-dialog h2{margin:0 28px 10px 0;color:#f8fafc}.item-dialog p{color:#cbd5e1;font-size:.92rem;line-height:1.55}.item-modal-close{position:absolute;top:8px;right:9px;width:34px;height:34px;padding:0;background:transparent;color:var(--muted);font-size:1.5rem}.item-target-picker{display:flex;flex-direction:column;gap:7px;margin-top:16px}.item-target-picker label{color:var(--muted);font-size:.82rem}.item-target-picker select{width:100%;min-height:42px;padding:8px 10px;border:1px solid var(--border);border-radius:7px;background:#0b1220;color:var(--text);font:inherit}.item-modal-actions{display:flex;gap:9px;margin-top:18px}.item-modal-actions button{flex:1;min-height:44px}.bell-wave{position:absolute;z-index:20;width:14px;height:14px;border:2px solid rgba(186,230,253,.95);border-radius:50%;pointer-events:none;transform:translate(-50%,-50%);animation:bell-wave .95s ease-out 2;box-shadow:0 0 12px #7dd3fce6}.bell-wave:before,.bell-wave:after{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border:1px solid rgba(186,230,253,.8);border-radius:50%;content:"";animation:bell-wave .95s ease-out 2}.bell-wave:after{animation-delay:.28s}@keyframes bell-wave{0%{opacity:.95;transform:scale(.35)}to{opacity:0;transform:scale(7.5)}}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;max-width:none;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#16213e,#0a0f1e 75%);cursor:pointer;opacity:1;transition:opacity .5s ease}.splash-screen.fade-out{opacity:0;pointer-events:none}.splash-inner{text-align:center;animation:splash-in .9s ease both}.splash-logo{width:min(60vw,55vh,340px);height:auto;filter:drop-shadow(0 8px 32px rgba(0,0,0,.6));-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.splash-caption{margin-top:18px;color:var(--muted);font-size:.85rem;letter-spacing:.3em;text-indent:.3em}@keyframes splash-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}html,body{background:radial-gradient(ellipse at 50% -15%,rgba(96,117,94,.2),transparent 54%),radial-gradient(ellipse at 8% 88%,rgba(117,63,50,.12),transparent 36%),#080d12;color:var(--text)}body{background-attachment:fixed}#app{padding:clamp(10px,3vw,24px)}.screen{max-width:520px}.panel{position:relative;border:1px solid rgba(216,189,129,.24);border-radius:20px;background:linear-gradient(145deg,#1c2527f7,#0f1519fa),var(--panel);padding:clamp(24px,6vw,36px) clamp(18px,5vw,30px);box-shadow:0 24px 64px #0000007a,inset 0 1px #fff4d60f}.panel:before{position:absolute;top:0;left:16%;width:68%;height:1px;background:linear-gradient(90deg,transparent,rgba(216,189,129,.68),transparent);content:"";pointer-events:none}h1,h2{color:#f5f0e4;font-family:Yu Mincho,Hiragino Mincho ProN,Yu Gothic,serif;letter-spacing:.035em}h1{font-size:clamp(1.45rem,5vw,1.8rem);line-height:1.45}h2{font-size:clamp(1.2rem,4.2vw,1.45rem)}.subtitle,.note,.message{color:var(--muted)}.subtitle{letter-spacing:.04em}.primary,.secondary,.role-btn{min-height:48px;border-radius:12px;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,filter .18s ease}.primary{border:1px solid rgba(255,233,182,.44);background:linear-gradient(135deg,#e1cb96,#c4a866);color:#171711;box-shadow:0 8px 22px #9c7d3a29,inset 0 1px #ffffff61}.primary:hover:not(:disabled){filter:brightness(1.08);box-shadow:0 10px 28px #9c7d3a42,inset 0 1px #ffffff7a}.primary:active:not(:disabled),.secondary:active:not(:disabled),.role-btn:active:not(:disabled){transform:translateY(1px)}.secondary{border:1px solid rgba(199,207,192,.18);background:linear-gradient(145deg,#3a4441d1,#252e2deb);color:#e3e2d8}.secondary:hover:not(:disabled){border-color:#d8bd8173;background:linear-gradient(145deg,#46514be6,#2b3532f5)}button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid rgba(216,189,129,.9);outline-offset:3px}.big-start{min-height:56px;border-radius:14px;font-size:1.08rem;letter-spacing:.07em}.story{border:1px solid rgba(216,189,129,.14);border-radius:13px;background:#070c0f75;color:#c3c4ba}.story summary,.score-history summary{color:var(--accent)}.score-history{border-color:#d8bd8133}.score-total,.result-score{color:var(--accent)}.role-select{gap:13px;margin:22px 0}.role-btn{min-height:74px;border:1px solid rgba(240,235,215,.12);box-shadow:inset 0 1px #ffffff14,0 8px 18px #00000029}.role-btn:hover:not(:disabled){transform:translateY(-2px);border-color:#d8bd8166;box-shadow:inset 0 1px #ffffff1f,0 12px 24px #00000040}.role-btn.friend{background:linear-gradient(120deg,#174a45,#21665a)}.role-btn.random{background:linear-gradient(120deg,#4d3a66,#63497d)}.role-btn.com{background:linear-gradient(120deg,#1b4d49,#267366)}.role-btn.santa{background:linear-gradient(145deg,#763a38,#a64d47)}.role-btn.yamada{background:linear-gradient(145deg,#315b45,#43815c)}.role-row{gap:10px;margin:22px 0 12px}.role-row .role-btn{min-height:112px;border-radius:15px}.role-icon{width:48px;height:48px;flex-basis:48px}.friend-code-area{margin-top:18px;padding-top:18px;border-top:1px solid rgba(216,189,129,.18)}.room-code-row input,.item-target-picker select{min-height:48px;border-color:#d8bd8142;border-radius:10px;background:#050a0cb8;color:var(--text)}.room-code-display strong{color:var(--accent)}#gameScreen .panel.wide,#resultScreen .panel.wide{max-width:min(96vw,600px);border-color:#d8bd8133;padding:clamp(14px,3vw,22px)}.game-header{margin:-2px 0 10px;padding-bottom:10px;border-bottom:1px solid rgba(216,189,129,.16)}.turn-panels{gap:8px}.turn-card{min-height:58px;padding:9px 11px;border:1px solid rgba(214,216,200,.12);border-radius:11px;background:#060c0e70}.turn-card.is-acting.yamada{border-color:#6db889b8;background:linear-gradient(145deg,#2553395c,#060c0e80)}.turn-card.is-acting.santa{border-color:#d36a63b8;background:linear-gradient(145deg,#6b2c2a57,#060c0e80)}.mission-list{gap:7px;margin:10px 0}.mission-section{gap:5px;padding:8px;border-color:#d6d8c824;border-radius:12px;background:#070c0e75}.mission-item{min-height:38px;border-color:#d6d8c81a;background:#ffffff06}.mission-item.done{color:#9dd1aa;border-color:#82c49a57}.side-missions{border-color:#d8bd813d;background:#5242232e}#gameGrid,#resultGrid{border:5px solid #574936;border-radius:10px;background:#1b211f;box-shadow:0 12px 28px #00000061,inset 0 0 0 1px #efdeb71f}#gameGrid .cell,#resultGrid .cell{border-color:#101717d1}#gameGrid .cell.here{box-shadow:inset 0 0 0 3px var(--current-room-color)}#gameGrid .cell.here.yamada{--current-room-color: var(--yamada)}#gameGrid .cell.here.santa{--current-room-color: var(--santa)}#gameGrid .cell.movable{animation-name:movable-breathe-villa}@keyframes movable-breathe-villa{0%,to{border-color:#81b3c873;box-shadow:inset 0 0 0 2px #81b3c86b,0 0 6px #81b3c814}50%{border-color:#d1e2d8;box-shadow:inset 0 0 0 2px #d1e2d8,0 0 17px #9dc4b194}}.item-inventory{border-color:#d8bd8133;border-radius:12px;background:#070c0e94}.item-inventory-title{color:#c6b98f;letter-spacing:.08em}.inventory-item{min-height:44px;border-color:#8cbac559;border-radius:9px;background:linear-gradient(145deg,#274e51c7,#163134e0);color:#d8e9e3}.finished-actions{border-color:#82c49a6b;border-radius:12px;background:#1f4e3038}.finished-actions p{color:#c5e4cc}.item-dialog{border-color:#d8bd816b;border-radius:18px;background:linear-gradient(150deg,#202a2b,#101719 78%);box-shadow:0 28px 72px #000000ad,inset 0 1px #fff6da14}.item-dialog h2{color:#f5f0e4}.item-dialog p{color:#c6c9bf}.item-modal{background:#020608d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.splash-screen{background:radial-gradient(ellipse at 50% 42%,rgba(127,105,64,.22),transparent 36%),radial-gradient(ellipse at 50% -15%,rgba(91,114,91,.22),transparent 56%),#080d12}.splash-logo{filter:drop-shadow(0 8px 32px rgba(0,0,0,.6)) drop-shadow(0 0 22px rgba(216,189,129,.12))}.splash-caption{color:#c3b58e}.settings-button{position:fixed;z-index:250;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:grid;width:46px;height:46px;place-items:center;padding:0;border:1px solid rgba(216,189,129,.55);border-radius:50%;background:#141b20f0;color:var(--accent);font-size:1.4rem;box-shadow:0 5px 18px #0006;cursor:pointer}.settings-button:hover{background:#26302e}.settings-dialog{width:min(100%,420px)}.settings-volume-row{margin-top:22px}.settings-volume-row>label{display:block;margin-bottom:10px;color:var(--text);font-weight:700}.settings-volume-control{display:flex;align-items:center;gap:14px}.settings-volume-control input{width:100%;accent-color:var(--accent)}.settings-volume-control output{min-width:3.5em;color:var(--accent);font-variant-numeric:tabular-nums;text-align:right}.settings-dialog .settings-note{margin-top:18px;color:var(--muted);font-size:.82rem}@media(max-width:380px){.panel{border-radius:16px;padding:22px 16px}.role-row .role-btn{min-height:100px;padding:14px 7px;font-size:.98rem}#gameScreen .panel.wide,#resultScreen .panel.wide{padding:12px 9px}#gameGrid .cell,#resultGrid .cell{padding:4px}}@media(max-height:540px){.panel{padding:16px 18px}h1{font-size:1.3rem}h2{font-size:1.1rem}.story{font-size:.8rem;margin-bottom:8px}.role-select{gap:8px;margin:12px 0}.role-btn{min-height:48px;padding:10px 14px}.role-row .role-btn{min-height:82px;padding:10px 8px}.big-start{min-height:48px;padding:12px;margin-top:8px}}html,body{overflow:hidden}#app{height:100dvh;min-height:0;padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.screen{max-height:100%;overflow:visible}.panel{padding:18px 16px}#lobbyScreen .panel{display:flex;flex-direction:column;gap:8px}#lobbyScreen .panel>button,.page-controls button,.result-tabs button{margin-top:0}.message:empty{display:none}#gameScreen,#resultScreen{height:100%}#gameScreen .panel.wide,#resultScreen .panel.wide{height:100%;max-width:100%;padding:8px;display:grid;gap:6px;min-height:0}#gameScreen .panel.wide{display:flex;flex-direction:column;justify-content:center;container-type:inline-size;padding:clamp(10px,2.5dvh,24px) clamp(8px,2vw,14px);gap:clamp(5px,1.2dvh,10px)}#gameScreen .panel.wide>:not(.game-board-wrap){flex-shrink:0}#gameScreen .game-board-wrap{flex:1 1 0;width:100%;max-height:100cqw}.game-header{margin:0;padding:0 40px 0 0;border:0}.turn-card{display:grid;grid-template-columns:minmax(0,1fr) auto;min-height:36px;padding:4px 6px;gap:2px}.turn-label{grid-column:1 / -1;font-size:.65rem;line-height:1.2}.turn-card strong{font-size:.75rem;line-height:1.2;margin:0}.header-timer{grid-column:2;grid-row:2;color:var(--accent);font-size:.65rem;font-variant-numeric:tabular-nums;line-height:1.2}.header-timer.is-low{color:var(--danger)}.mission-reward{flex:0 0 auto;margin-left:auto;color:var(--accent);font-size:.7rem;font-weight:800;font-variant-numeric:tabular-nums}.score-damage{position:fixed;top:0;right:0;bottom:0;left:0;z-index:240;display:grid;place-items:center;pointer-events:none;color:#ffaaa0;background:radial-gradient(ellipse,transparent 35%,rgba(150,20,30,.5));font-size:clamp(2rem,12vw,3.5rem);font-weight:900;text-shadow:0 2px 0 #66121b,0 0 20px rgba(255,55,55,.65)}#gameScreen .mission-list{margin:0;gap:4px}#gameScreen .mission-section{display:grid;grid-template-columns:54px minmax(0,1fr);position:relative;padding:5px 7px;gap:3px;border-radius:4px 12px;border-left:3px solid var(--objective-color, var(--accent));background:linear-gradient(110deg,#d8bd8117,#070c0ecc)}.mission-section.yamada-missions{--objective-color: var(--yamada)}.mission-section.santa-missions{--objective-color: var(--santa)}.mission-section.side-missions{--objective-color: var(--accent)}#gameScreen .mission-section-title{margin:0;font-size:.6rem;letter-spacing:.16em;line-height:1.1;color:var(--objective-color);grid-row:1 / span 2;align-self:center;line-height:1.5}#gameScreen .side-missions .mission-section-title{grid-row:1}#gameScreen .mission-item{min-height:26px;padding:3px 5px;gap:6px;font-size:.75rem;line-height:1.25;border:0;border-radius:3px;background:linear-gradient(90deg,rgba(255,255,255,.06),transparent)}#gameScreen .mission-check-area{flex-basis:18px;width:18px;height:18px}#gameScreen .mission-check-area .check,#gameScreen .mission-lock{border-radius:50%}.game-board-wrap,.result-map-wrap{min-height:0;min-width:0;display:grid;place-items:center;container-type:size}#gameGrid,#resultGrid{width:min(100%,100cqh);height:auto;aspect-ratio:1;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(4,minmax(0,1fr));margin:0;border-width:3px}#gameGrid .cell,#resultGrid .cell{aspect-ratio:auto;min-height:0;min-width:0;padding:3px}#gameScreen .game-tools-row{display:flex;align-items:center;gap:6px;min-width:0}#gameScreen .item-inventory{flex:1;min-width:0;margin:0;min-height:44px;padding:4px 6px;gap:5px;flex-wrap:nowrap}#gameScreen .item-inventory-title{flex:0 0 auto;font-size:.6rem;letter-spacing:0}#gameScreen .inventory-item{min-width:0;min-height:34px;padding:4px 7px;font-size:.75rem}#gameScreen .item-target-prompt{min-width:0;flex:1;font-size:.65rem}#gameScreen .item-inventory:has(.item-target-prompt){flex-wrap:wrap}#gameScreen .item-inventory .item-target-prompt{flex-basis:calc(100% - 40px)}#gameScreen .item-inventory:has(.memo-pin-prompt) .memo-pin-prompt{flex-basis:auto}#gameScreen .item-target-cancel{min-height:34px;margin:0;padding:4px 6px;font-size:.65rem}#gameScreen .memo-pin-open{flex:0 0 34px;width:34px;min-width:34px;height:34px;min-height:34px;margin:0;padding:0;border:1px solid rgba(216,189,129,.5);border-radius:50%;background:#463920cc;font-size:.9rem;line-height:1}#gameScreen .memo-pin-open img{display:block;width:32px;height:32px;object-fit:contain}.memo-pin-dialog{max-height:calc(100dvh - 28px);padding:24px 16px 14px}.memo-pin-dialog>p{margin:8px 0 12px;font-size:.78rem}.memo-pin-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.memo-pin-option{justify-self:center;width:40px;min-width:40px;height:40px;min-height:40px;margin:0;padding:0;border:0;border-radius:50%;background:transparent center / contain no-repeat;color:#fff;font-size:.84rem;font-weight:800;line-height:1;text-shadow:0 1px 2px #000,0 0 2px #000}.memo-pin-option.memo-pin-eraser{background:#4b5563;border:1px solid rgba(226,232,240,.45)}.cell-memo-pins{position:absolute;z-index:5;top:2px;right:2px;display:grid;grid-template-columns:repeat(2,20px);grid-auto-rows:20px;justify-items:end;align-items:center;gap:0;pointer-events:none}#gameGrid .cell>.cell-memo-pins{position:absolute;z-index:5}.cell-memo-pin,.cell-memo-pin-overflow{display:inline-flex;flex:0 0 14px;width:14px;height:14px;align-items:center;justify-content:center;overflow:hidden;border:1px solid rgba(255,255,255,.76);border-radius:50%;background:#29445a;color:#fff;font-size:.52rem;font-weight:800;line-height:1;text-shadow:0 1px 2px #000}.cell-memo-pin{width:24px;height:24px;font-size:.7rem;border:0;border-radius:0;background:transparent center / contain no-repeat}.cell-memo-pins>:only-child{grid-column:2}.cell-memo-pin-overflow{flex-basis:auto;width:auto;min-width:14px;padding:0 2px;border-radius:7px;background:#111827;font-size:.48rem}#gameGrid .cell.memo-pin-target{cursor:crosshair;box-shadow:inset 0 0 0 2px #facc15bf}#gameGrid .cell.memo-pin-target:hover{filter:brightness(1.2)}@media(max-height:480px){.memo-pin-option{width:34px;min-width:34px;height:34px;min-height:34px}.memo-pin-options{gap:4px}}.finished-actions{margin:0;padding:5px;gap:2px}.finished-actions p{font-size:.7rem}.finished-actions .secondary{min-height:36px;padding:4px;margin-top:3px}#gameScreen .panel:has(.finished-actions:not(.hidden)) .game-tools-row{display:none}#resultScreen .panel.wide{grid-template-rows:auto auto minmax(0,1fr) auto}#resultScreen h2{margin:0}#resultScreen .panel.wide:has(#resultStats:not(.hidden)){display:flex;flex-direction:column;justify-content:center;align-items:center;gap:clamp(8px,2dvh,20px)}#resultScreen .panel.wide:has(#resultStats:not(.hidden))>:not(.hidden){flex-shrink:0}#resultScreen .result-tabs,#resultScreen #backToLobbyBtn{width:min(100%,360px);justify-self:center}@media(max-width:360px){#gameScreen .mission-section{grid-template-columns:44px minmax(0,1fr);padding-inline:5px}#gameScreen .mission-item{font-size:.7rem}#gameScreen .item-inventory{gap:4px;padding-inline:4px}}@media(max-height:480px){#gameScreen .panel.wide{padding-block:6px;gap:4px}#gameScreen .turn-card{min-height:30px;padding-block:2px}#gameScreen .mission-section{padding-block:3px}#gameScreen .mission-item{min-height:22px;padding-block:2px;font-size:.68rem}#gameScreen .mission-check-area{width:16px;height:16px}#gameScreen .item-inventory{min-height:38px;padding-block:2px}#gameScreen .inventory-item,#gameScreen .item-target-cancel{min-height:30px;padding-block:2px}}@media(orientation:landscape)and (min-width:480px)and (max-height:540px){#gameScreen{max-width:100%}#gameScreen .panel.wide{display:grid;max-width:100%;grid-template-columns:minmax(230px,.75fr) minmax(0,1.25fr);grid-template-rows:auto minmax(min-content,1fr) auto;grid-template-areas:"header board" "missions board" "items board"}#gameScreen .game-header{grid-area:header}#gameScreen .mission-list{grid-area:missions}#gameScreen .game-board-wrap{grid-area:board;max-height:none}#gameScreen .game-tools-row{grid-area:items}#gameScreen .game-header,#gameScreen .mission-list,#gameScreen .game-tools-row{align-self:center}#gameScreen .panel:has(.finished-actions:not(.hidden)){grid-template-areas:"header board" "missions board" "finished board"}#gameScreen .finished-actions{grid-area:finished}}.result-tabs,.page-controls{display:flex;align-items:center;justify-content:center;gap:10px}.result-tabs button{flex:1;min-height:38px;padding:5px}.result-tabs button[aria-pressed=true]{color:var(--accent);border-color:var(--accent)}#resultStats{align-self:center;width:min(100%,460px)}#resultReason,#resultScore{margin:6px 0;font-size:clamp(.85rem,2dvh,1.05rem);line-height:1.4}#resultScore{width:min(100%,400px);margin:12px auto 0;white-space:normal}.result-score-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding:5px 0;opacity:0;transform:translateY(6px);transition:opacity .18s ease,transform .18s ease}.result-score-row.is-revealed,.result-score-team.is-revealed{opacity:1;transform:none}.result-score-value{display:inline-flex;align-items:baseline;flex-shrink:0;font-variant-numeric:tabular-nums}.score-reel{display:inline-block;width:.65em;height:1em;overflow:hidden;line-height:1}.score-reel-strip,.score-reel-strip>span{display:block;height:1em;line-height:1}.score-reel-strip{will-change:transform}#resultScreen:has(.is-counting){user-select:none;-webkit-user-select:none}.result-score-row.is-penalty{color:#fca5a5}.result-score-total{border-top:1px solid rgba(253,230,138,.6);margin-top:4px;padding-top:8px;font-size:1.35rem}.result-score-team{opacity:0;text-align:right;color:var(--muted);font-size:.85rem;margin-top:5px;transition:opacity .18s ease}.result-score-warning{color:#fca5a5;margin:4px 0 0}@media(max-height:540px){#resultScreen .panel.wide:has(#resultStats:not(.hidden)){gap:8px}#resultReason,#resultScore{font-size:.8rem}#resultScore{margin-top:6px}.result-score-row{padding:2px 0}.result-score-total{padding-top:4px;font-size:1rem}}@media(max-height:360px){#resultScreen .panel.wide:has(#resultStats:not(.hidden)){gap:4px}#resultReason{font-size:.7rem;line-height:1.2;margin:2px 0}#resultScore{font-size:.7rem;line-height:1.2;margin-top:4px}.result-score-row{padding:1px 0}.result-score-total{font-size:.85rem;margin-top:2px;padding-top:3px}.result-score-team,.result-score-warning{font-size:.65rem;margin-top:2px}}@media(prefers-reduced-motion:reduce){.result-score-row,.result-score-team{transform:none;transition:none}}#backToLobbyBtn{margin:0}.item-modal{padding:max(8px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left))}.item-dialog{max-height:100%;padding:36px 16px 16px}.item-dialog p{font-size:.85rem;line-height:1.45}.paged-dialog{display:grid;gap:12px}.paged-dialog h2{margin:0}.story-pages{min-height:180px;display:grid;align-items:center}#scoreHistoryList{min-height:140px;padding-left:24px;white-space:pre-line;font-size:.85rem;line-height:1.6}.page-controls button{min-height:44px;padding:6px 16px}.page-controls button:disabled{opacity:.4}.room-event-message{overflow:visible}.settings-button{width:36px;height:36px;top:max(8px,env(safe-area-inset-top));right:max(8px,env(safe-area-inset-right));font-size:1.1rem}@media(max-height:620px){.panel{padding:12px}.role-select{margin:12px 0;gap:8px}.role-select .role-btn{min-height:56px;padding:8px}.role-row{margin:10px 0}.role-row .role-btn{min-height:82px;padding:8px}.role-row .role-btn{gap:4px;line-height:1.2}.role-row .role-icon{width:34px;height:34px;flex-basis:34px}.friend-code-area{margin-top:8px;padding-top:8px}.room-code-display{margin-bottom:6px}.note,.message{font-size:.75rem;margin:6px 0;line-height:1.35}.item-dialog{padding:32px 12px 12px}.item-dialog p{font-size:.8rem}.item-modal-actions{margin-top:8px;gap:6px}.item-modal-actions button{padding:8px;min-height:40px}}@media(prefers-reduced-motion:reduce){.primary,.secondary,.role-btn{transition:none}}
