:root{--bg:#0b1216;--panel:#0e161bdb;--panel-solid:#111b21;--line:#e3c07a38;--gold:#e3c07a;--gold-bright:#ffe2a0;--teal:#4fb3a5;--ink:#f1e9d8;--muted:#9aa7a6;--danger:#d8604f;--good:#7fd08a;--serif:"Noto Serif KR", "Apple SD Gothic Neo", serif;--sans:"Pretendard", -apple-system, "Apple SD Gothic Neo", "Malgun Gothic", system-ui, sans-serif;--card-ratio:3 / 4}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default}h1,h2,h3{font-family:var(--serif);margin:0}p{margin:0}.eyebrow{font-family:"Cinzel", var(--serif);letter-spacing:.22em;color:var(--gold);text-transform:uppercase;font-size:12px}.hint{color:var(--muted);font-size:13px}.btn{border:1px solid var(--line);white-space:nowrap;background:#ffffff0a;border-radius:10px;padding:9px 16px;font-weight:700;transition:transform .12s,background .15s,box-shadow .15s,opacity .15s}.btn:hover:not(:disabled){background:#ffffff1a;transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.45}.btn.primary{color:#2a1c05;background:linear-gradient(#f0cf8b,#c9983f);border-color:#ffe7b0;box-shadow:0 4px 18px #e3c07a47}.btn.primary:hover:not(:disabled){background:linear-gradient(#ffe2a0,#d9a84c)}.btn.danger{color:#ffd9d2;background:linear-gradient(#5b2a25,#3a1815);border-color:#d8604f99}.btn.ghost{background:#0a10148c}.btn.big{border-radius:12px;padding:14px 26px;font-size:17px}.btn.sm{padding:6px 11px;font-size:13px}.btn.pulse:not(:disabled){animation:1.4s ease-in-out infinite pulse}.icon-btn{opacity:.7;background:0 0;border:0;font-size:18px}.badge{border:1px solid var(--line);border-radius:999px;padding:3px 8px;font-size:12px}.badge.warn{color:#ffcf8a;border-color:#ffcf8a80}.lobby{background-position:50%;background-size:cover;height:100%;position:relative;overflow-y:auto}.bg-video{object-fit:cover;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}.run-video{opacity:0;transition:opacity 1.4s}.run-video.intro{opacity:.75}.lobby-shade{pointer-events:none;background:linear-gradient(#080d1159 0%,#080d11d1 38%,#080d11f7 100%);position:fixed;inset:0}.lobby-inner{max-width:1180px;margin:0 auto;padding:36px 20px 120px;position:relative}.lobby-head{text-align:center;margin-bottom:26px}.lobby-head h1{color:var(--gold-bright);text-shadow:0 2px #5a3d0d,0 10px 40px #000c;margin:6px 0 12px;font-size:clamp(34px,6vw,64px);font-weight:900;line-height:1.1}.lobby-head h1 span{letter-spacing:.4em;color:var(--teal);text-shadow:none;margin-bottom:6px;font-family:Cinzel,serif;font-size:.32em;display:block}.lobby-head .sub{color:#d5dbd6}.char-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.char-card{text-align:left;aspect-ratio:3/4.3;background:#0f171c;border:2px solid #ffffff1a;border-radius:14px;padding:0;transition:transform .18s,border-color .18s,box-shadow .18s,opacity .18s,filter .18s;position:relative;overflow:hidden}.char-card img{object-fit:cover;object-position:center top;width:100%;height:100%;transition:transform .4s;position:absolute;inset:0}.char-card:hover{border-color:var(--accent);transform:translateY(-4px)}.char-card:hover img{transform:scale(1.05)}.char-card.picked{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent), 0 12px 36px color-mix(in srgb, var(--accent) 45%, transparent)}.char-card.dim{opacity:.45;filter:grayscale(.6)}.char-order{background:var(--accent);color:#111;border-radius:50%;place-items:center;width:32px;height:32px;font-weight:900;display:grid;position:absolute;top:10px;right:10px;box-shadow:0 2px 10px #0009}.char-info{background:linear-gradient(#0000,#060a0deb 42%);flex-direction:column;gap:2px;padding:44px 12px 12px;display:flex;position:absolute;bottom:0;left:0;right:0}.char-info strong{font-family:var(--serif);color:var(--accent);font-size:20px}.char-info em{color:#dfe5df;font-size:12.5px;font-style:normal}.char-info q{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:4px;font-size:12px;display:-webkit-box;overflow:hidden}.char-stats{gap:8px;margin-top:6px;display:flex}.stat{color:var(--muted);flex:1;font-size:10.5px}.stat i{background:#ffffff1f;border-radius:2px;height:4px;margin-top:2px;display:block;overflow:hidden}.stat b{background:var(--accent);height:100%;display:block}.lobby-foot{padding:14px 20px calc(14px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#060a0df5 40%);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:0;right:0}.name-field{color:var(--muted);align-items:center;gap:8px;font-size:13px;display:flex}.name-field input,.chat-input input{border:1px solid var(--line);color:var(--ink);font:inherit;background:#00000080;border-radius:10px;outline:none;min-width:0;padding:10px 12px}.name-field input{width:140px}.name-field input:focus,.chat-input input:focus{border-color:var(--gold)}.game{background-position:50%;background-size:cover;grid-template-rows:auto minmax(0,1fr);grid-template-columns:minmax(0,1fr) 340px;height:100%;display:grid;position:relative}.game-shade{pointer-events:none;background:radial-gradient(at 40% 45%,#080d118c,#080d11e6);position:absolute;inset:0}.topbar{border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080d11b3;grid-column:1/-1;align-items:center;gap:14px;padding:8px 14px;display:flex;position:relative}.brand{font-family:var(--serif);color:var(--gold-bright);font-weight:900}.round{font-family:var(--serif);color:var(--teal);font-weight:700}.top-actions{align-items:center;gap:6px;margin-left:auto;display:flex}.board{grid-template-rows:auto minmax(min-content,1fr);grid-auto-rows:auto;gap:10px;min-height:0;padding:12px 16px;display:grid;position:relative;overflow-y:auto}.opponents{justify-content:center;gap:clamp(12px,4vw,56px);padding-top:4px;display:flex}.seat{text-align:center;width:clamp(92px,12vw,132px);transition:opacity .3s,filter .3s;position:relative}.seat-portrait{aspect-ratio:1;border:3px solid color-mix(in srgb, var(--accent) 55%, #000);border-radius:50%;transition:box-shadow .3s,border-color .3s,transform .3s;position:relative;box-shadow:0 6px 22px #0009}.seat-portrait img{object-fit:cover;object-position:center 18%;border-radius:50%;width:100%;height:100%}.seat.turn .seat-portrait{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 35%, transparent), 0 0 34px var(--accent);transform:scale(1.06)}.seat.passed{opacity:.55;filter:grayscale(.7)}.seat.out{opacity:.3;filter:grayscale()}.seat-status{border:1px solid var(--accent);color:var(--accent);white-space:nowrap;background:#0d1519;border-radius:999px;padding:1px 9px;font-size:11.5px;font-weight:800;position:absolute;bottom:-9px;left:50%;transform:translate(-50%)}.seat-status.dots:after{content:"";animation:1.2s steps(4,end) infinite dots}.seat-emoji{filter:drop-shadow(0 2px 4px #000000b3);font-size:26px;animation:.35s cubic-bezier(.3,1.6,.5,1) pop;position:absolute;top:-8px;right:-8px}.seat-peek{width:38px;animation:1.2s ease-in-out infinite peek;position:absolute;top:30%;left:-14px}.seat-name{flex-direction:column;align-items:center;gap:3px;margin-top:13px;display:flex}.seat-name strong{font-family:var(--serif);color:var(--accent)}.emo-nervous .seat-portrait,.emo-angry .seat-portrait,.emo-shock .seat-portrait{animation:.5s jitter}.emo-happy .seat-portrait{animation:.6s hop}.bubble{color:#2a2114;text-align:left;z-index:6;background:#f4ead2;border-radius:14px;width:max-content;max-width:min(250px,42vw);padding:8px 12px;font-size:13.5px;font-weight:600;line-height:1.4;animation:.3s cubic-bezier(.3,1.5,.5,1) bubble-in;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000008c}.bubble:before{content:"";border:6px solid #0000;border-top:0;border-bottom-color:#f4ead2;margin-left:-6px;position:absolute;top:-6px;left:50%}.tokens{vertical-align:middle;gap:3px;display:inline-flex}.tok{opacity:.22;background:#888;width:13px;height:13px;display:inline-block}.tok.treasure{border-radius:2px;margin:0 2px;transform:rotate(45deg)scale(.82)}.tok.treasure.on{opacity:1;background:linear-gradient(135deg,#fff3b8,#e0a92e);box-shadow:0 0 9px #f5c95a}.tok.wound{border-radius:50%}.tok.wound.on{opacity:1;background:radial-gradient(circle at 35% 35%,#ff9a85,#b3261a);box-shadow:0 0 8px #d8604f}.center{flex-wrap:wrap;justify-content:center;align-items:center;gap:clamp(14px,3vw,44px);min-height:0;padding:44px 0 6px;display:flex}.mcard{aspect-ratio:var(--card-ratio);background:#111;border:2px solid #c9a55c;border-radius:9px;flex:none;position:relative;overflow:hidden;box-shadow:0 6px 18px #0009}.mcard img{object-fit:cover;width:100%;height:100%;display:block}.mcard-xs{border-width:1px;border-radius:4px;width:38px}.mcard-sm{border-radius:6px;width:58px}.mcard-md{width:clamp(72px,9vw,104px)}.mcard-lg{border-width:3px;border-radius:13px;width:clamp(150px,20vw,210px)}.mcard-power{min-width:1.7em;height:1.7em;font-family:var(--serif);color:#fff;text-shadow:0 1px 2px #000;background:radial-gradient(circle at 35% 30%,#ff8a6b,#8a1b10);border:2px solid #ffd9a8;border-radius:50%;place-items:center;font-size:15px;font-weight:900;display:grid;position:absolute;top:5%;left:6%}.mcard-lg .mcard-power{font-size:24px}.mcard-sm .mcard-power{border-width:1px;font-size:11px}.mcard-foot{background:linear-gradient(#0000,#000000e0 55%);justify-content:space-between;align-items:baseline;gap:4px;padding:18px 8px 6px;display:flex;position:absolute;bottom:0;left:0;right:0}.mcard-name{font-family:var(--serif);font-size:12px;font-weight:700}.mcard-kind{color:var(--gold);font-size:10px}.mcard-lg .mcard-name{font-size:17px}.mcard-lg .mcard-kind{font-size:12px}.mcard-sm .mcard-foot{display:none}.pile{flex-direction:column;align-items:center;gap:6px;display:flex}.pile-stack{justify-content:center;align-items:center;min-width:clamp(72px,9vw,104px);min-height:clamp(96px,12vw,139px);display:flex;position:relative}.pile-stack .under{z-index:-1;position:absolute;transform:translate(5px,5px)rotate(3deg)}.pile-stack.fan .fan-card{margin-left:calc(clamp(72px,9vw,104px)/-1.21951);animation:.4s cubic-bezier(.2,1.2,.4,1) drop-in}.pile-stack.fan .fan-card:first-child{margin-left:0}.pile-stack.fan .fan-card:nth-child(odd){transform:rotate(-2deg)}.pile-stack.fan .fan-card:nth-child(2n){transform:rotate(2.5deg)translateY(-2px)}.pile-empty{width:clamp(72px,9vw,104px);aspect-ratio:var(--card-ratio);color:var(--muted);border:2px dashed #e3c07a59;border-radius:9px;place-items:center;font-size:12px;display:grid}.pile-label{color:var(--muted);font-size:13px}.pile-label b{color:var(--gold-bright);font-size:18px;font-family:var(--serif);margin-left:2px}.placers{gap:3px;min-height:8px;display:flex}.placers i{border-radius:50%;width:8px;height:8px}.explorer{background:var(--panel);border:1px solid var(--line);border-radius:14px;align-items:stretch;gap:12px;padding:10px;transition:box-shadow .3s,border-color .3s;display:flex}.explorer.choosing{border-color:var(--gold);box-shadow:0 0 0 2px #e3c07a4d,0 0 40px #e3c07a40}.explorer-hero{border:2px solid #c9a55c;border-radius:9px;flex:none;width:clamp(76px,9vw,112px);position:relative;overflow:hidden}.explorer-hero img{object-fit:cover;width:100%;height:100%;display:block}.hp{text-align:center;color:var(--muted);background:linear-gradient(#0000,#000000e6 45%);padding:16px 6px 4px;font-size:11px;position:absolute;bottom:0;left:0;right:0}.hp b{font-family:var(--serif);color:#ff9a85;font-size:26px;line-height:1;animation:.4s cubic-bezier(.3,1.6,.5,1) pop;display:block}.gear-rack{grid-template-columns:repeat(3,minmax(84px,112px));gap:7px;display:grid}.gear{text-align:center;background:#00000059;border:1px solid #ffffff1a;border-radius:10px;flex-direction:column;align-items:center;gap:1px;padding:5px 4px 6px;transition:transform .15s,border-color .15s,box-shadow .15s,opacity .3s,filter .3s;display:flex;position:relative}.gear:disabled{opacity:1}.gear img{object-fit:cover;border-radius:8px;width:46px;height:46px}.gear-name{font-size:11.5px;font-weight:700;line-height:1.2}.gear-short{color:var(--gold);font-size:10.5px;line-height:1.2}.explorer.choosing .gear:not(.gone){border-color:var(--gold);animation:1.3s ease-in-out infinite glow}.explorer.choosing .gear:not(.gone):hover{transform:translateY(-3px)scale(1.04);box-shadow:0 8px 20px #e3c07a59}.explorer.choosing .gear.locked{opacity:.45;border-color:#ffffff1a;animation:none}.gear.gone{filter:grayscale();opacity:.38}.gear.gone .gear-short{color:var(--danger)}.gear.gone:after{content:"✕";color:var(--danger);opacity:.85;font-size:34px;line-height:46px;position:absolute;top:6px}.me{background:var(--panel);border:1px solid var(--line);border-radius:14px;align-items:center;gap:18px;min-height:96px;padding:12px 16px;transition:border-color .3s,box-shadow .3s;display:flex}.me.my-turn{border-color:var(--gold);box-shadow:0 0 0 2px #e3c07a40,0 -6px 40px #e3c07a2e}.me-info{flex-direction:column;flex:1;gap:5px;min-width:0;display:flex}.me-name{font-family:var(--serif);align-items:center;gap:10px;font-size:18px;font-weight:900;display:flex}.me-memory{color:var(--muted);flex-wrap:wrap;gap:4px 14px;font-size:12.5px;display:flex}.chip{color:#bfeee6;background:#4fb3a52e;border:1px solid #4fb3a580;border-radius:999px;margin:0 2px;padding:1px 7px;font-weight:600;display:inline-block}.chip.out{color:var(--muted);background:#ffffff0f;border-color:#fff3;text-decoration:line-through}.odds{color:var(--muted);align-items:center;gap:8px;font-size:12.5px;display:flex}.odds b{color:var(--gold-bright)}.odds i{background:#ffffff1f;border-radius:3px;flex:0 0 110px;height:5px;overflow:hidden}.odds u{background:linear-gradient(90deg, var(--danger), var(--gold), var(--good));background-size:110px 100%;height:100%;transition:width .5s;display:block}.me-actions{flex:none}.turn-buttons{gap:10px;display:flex}.pending{align-items:center;gap:16px;display:flex}.pending-card{filter:drop-shadow(0 16px 30px #000000b3);margin-top:-110px}.pending-card .mcard-lg{width:clamp(120px,14vw,158px)}.pending-choices{flex-direction:column;align-items:flex-start;gap:7px;max-width:250px;display:flex}.flip-in{animation:.6s cubic-bezier(.2,.9,.3,1.2) flip-in}.chat{border-left:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#080d11d1;flex-direction:column;min-height:0;display:flex;position:relative}.chat-log{flex-direction:column;flex:1;gap:8px;padding:12px;display:flex;overflow-y:auto}.chat-sys{color:var(--muted);text-align:center;background:#ffffff0d;border-radius:999px;align-self:center;padding:2px 10px;font-size:12px}.chat-msg{align-items:flex-start;gap:8px;animation:.25s ease-out msg-in;display:flex}.chat-face{object-fit:cover;object-position:center 18%;border-radius:50%;flex:none;width:34px;height:34px}.chat-name{font-size:12px;font-weight:800}.chat-msg p{word-break:keep-all;overflow-wrap:anywhere;background:#ffffff12;border-radius:4px 13px 13px;padding:7px 11px;font-size:13.5px;line-height:1.45}.chat-msg.mine{text-align:right;justify-content:flex-end}.chat-msg.mine p{text-align:left;background:#e3c07a33;border-radius:13px 4px 13px 13px}.chat-quick{scrollbar-width:none;gap:6px;padding:6px 10px;display:flex;overflow-x:auto}.chat-quick button{border:1px solid var(--line);color:#d9d2bf;background:#ffffff0a;border-radius:999px;flex:none;padding:4px 10px;font-size:12px}.chat-quick button:hover{background:#e3c07a2e}.chat-input{padding:8px 10px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);gap:6px;display:flex}.chat-input input{flex:1}.run{z-index:30;background:#05090b;animation:.6s fade-in;position:fixed;inset:0;overflow-y:auto}.run-bg{opacity:.22;filter:blur(3px);background-position:50%;background-size:cover;animation:30s linear infinite alternate slow-zoom;position:absolute;inset:0}.run:after{content:"";pointer-events:none;background:radial-gradient(#0000 35%,#000000d9);position:fixed;inset:0}.run.fx-hit .run-inner,.run.fx-dead .run-inner{animation:.5s shake}.run.fx-hit:after,.run.fx-dead:after{animation:.6s red-flash}.run-inner{z-index:1;flex-direction:column;align-items:center;gap:12px;max-width:900px;min-height:100%;margin:0 auto;padding:18px 16px 20px;display:flex;position:relative}.run-head{text-align:center}.run-head h2{font-size:clamp(22px,4vw,32px)}.run-status{flex-wrap:wrap;justify-content:center;align-items:center;gap:18px;margin-top:8px;display:flex}.hearts{align-items:center;gap:4px;display:flex}.hearts i{width:17px;height:17px;clip-path:path("M8.5 15.5 C-4 7 2 -1 8.5 4 C15 -1 21 7 8.5 15.5 Z");background:#3a2422;transition:background .3s,transform .3s}.hearts i.on{background:linear-gradient(#ff8a78,#c0281c)}.hp-num{font-family:var(--serif);color:#ff9a85;margin-left:6px;font-size:24px;animation:.4s cubic-bezier(.3,1.6,.5,1) pop}.run-gear{gap:5px;display:flex}.run-gear img{border:1px solid var(--gold);object-fit:cover;border-radius:7px;width:34px;height:34px}.run-gear img.used{filter:grayscale();opacity:.35}.run-stage{perspective:1000px;flex:1;place-items:center;min-height:300px;display:grid}.spot{text-align:center;animation:.65s cubic-bezier(.2,.9,.3,1.15) card-reveal}.spot .mcard-lg{width:clamp(170px,26vw,240px);margin:0 auto}.spot.idle .mcard{animation:2.4s ease-in-out infinite float}.spot-by{color:var(--muted);margin-top:10px;font-size:13px}.stamp{font-family:var(--serif);text-align:center;text-shadow:0 2px 10px #000,0 0 2px #000;place-items:center;padding:10px;font-size:clamp(20px,3.4vw,30px);font-weight:900;animation:.5s cubic-bezier(.2,1.6,.4,1) .45s both stamp;display:grid;position:absolute;inset:0}.outcome-slain .stamp,.outcome-evaded .stamp,.outcome-revived .stamp{color:#b9ffc4;background:#143c2373}.outcome-hit .stamp{color:#ffb3a4;background:#5a0f0866;font-size:clamp(44px,8vw,72px)}.outcome-dead .stamp{color:#ff6a55;background:#3c0000a6}.outcome-slain .mcard img,.outcome-evaded .mcard img{filter:grayscale(.75)brightness(.7);transition:filter .6s .5s}.run-track{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.track-card{transition:transform .3s,opacity .3s}.track-card.done{animation:.35s pop}.track-card.done.outcome-slain,.track-card.done.outcome-evaded{opacity:.55}.track-card.done.outcome-dead .mcard{border-color:var(--danger);box-shadow:0 0 18px var(--danger)}.track-card.ghost{opacity:.3}.run-foot{text-align:center;place-items:center;min-height:92px;display:grid}.verdict h3{font-size:clamp(30px,6vw,48px);font-weight:900;animation:.7s cubic-bezier(.2,1.5,.4,1) verdict}.verdict.good h3{color:var(--gold-bright);text-shadow:0 0 34px #ffd778cc}.verdict.bad h3{color:#ff6a55;text-shadow:0 0 34px #d83c28cc}.verdict p{color:#d8d2c2;margin:4px 0 12px}.run-chat{flex-direction:column;gap:4px;width:100%;max-width:560px;min-height:70px;font-size:13.5px;display:flex}.run-chat p{background:#ffffff12;border-radius:10px;padding:6px 11px;animation:.25s ease-out msg-in}.run-chat b{margin-right:6px}.over-veil,.modal-veil{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#030608d1;place-items:center;padding:16px;animation:.4s fade-in;display:grid;position:fixed;inset:0}.over{text-align:center;background:var(--panel-solid);border:1px solid var(--line);border-radius:18px;width:100%;max-width:440px;padding:28px 30px;animation:.6s cubic-bezier(.2,1.3,.4,1) verdict}.over.won{border-color:var(--gold);box-shadow:0 0 80px #e3c07a59}.over-face{object-fit:cover;object-position:center 18%;border:4px solid var(--gold);border-radius:50%;width:150px;height:150px;margin:14px 0 10px;box-shadow:0 0 40px #e3c07a80}.over h2{color:var(--gold-bright);font-size:30px}.over h2 span{color:var(--ink);font-size:.6em}.scores{flex-direction:column;gap:6px;margin:16px 0 20px;padding:0;list-style:none;display:flex}.scores li{background:#ffffff0d;border-radius:9px;justify-content:space-between;align-items:center;gap:10px;padding:7px 12px;font-weight:700;display:flex}.scores .tokens{margin-left:auto}.scores li.top{background:#e3c07a29}.scores em{color:var(--danger);font-size:12px;font-style:normal}.over-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.modal{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;flex-direction:column;width:100%;max-width:720px;max-height:88vh;display:flex}.modal header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal h2{color:var(--gold-bright);font-size:20px}.modal-body{padding:16px 18px 20px;overflow-y:auto}.lead{color:#dcd6c6}.rules{color:#cfd5d0;flex-direction:column;gap:6px;padding-left:20px;display:flex}.codex h3{color:var(--teal);margin:18px 0 8px;font-size:15px}.codex-gear,.codex-mon{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.codex-gear-row,.codex-mon-row{background:#ffffff0a;border-radius:10px;align-items:center;gap:10px;padding:6px 8px;display:flex}.codex-gear-row img,.codex-mon-row img{object-fit:cover;border-radius:8px;flex:none;width:46px;height:46px}.codex-mon-row img{height:58px}.codex b{font-size:13.5px;display:block}.codex b i{color:var(--gold);font-size:12px;font-style:normal}.codex span{color:var(--muted);font-size:12px}.coach{color:#2a2114;background:linear-gradient(#fbf1d6,#ecd9a8);border-radius:14px;align-items:center;gap:12px;width:100%;max-width:640px;padding:10px 14px;animation:.3s ease-out msg-in;display:flex;box-shadow:0 10px 30px #00000080,0 0 0 2px #ffe2a099}.coach img{object-fit:cover;object-position:center 18%;border:2px solid #c9983f;border-radius:50%;flex:none;width:46px;height:46px}.coach-body{flex:1;min-width:0}.coach-step{color:#8a6418;letter-spacing:.04em;font-size:11px;font-weight:800}.coach p{word-break:keep-all;font-size:14px;font-weight:600;line-height:1.45}.has-coach .pending-card{margin-top:0}.has-coach .pending-card .mcard-lg{border-width:2px;border-radius:9px;width:76px}.has-coach .pending-card .mcard-name{font-size:12px}.has-coach .pending-card .mcard-kind{display:none}.has-coach .pending-card .mcard-power{font-size:16px}.has-coach .center{padding-top:16px}.me{z-index:5;background:#0c1318f5;position:sticky;bottom:0}.coach-row{justify-content:center;display:flex}.focus-explorer .explorer,.focus-piles .pile,.focus-opponents .seat-portrait,.focus-chat .chat,.focus-me .me-actions{border-radius:14px;animation:1.3s ease-in-out infinite spotlight}.focus-opponents .seat-portrait{border-radius:50%}.welcome{max-width:420px}.recap{text-align:left;color:#d8d2c2;flex-direction:column;gap:6px;margin:14px 0 20px;padding-left:20px;font-size:14px;display:flex}@keyframes spotlight{0%,to{box-shadow:0 0 0 2px #ffe2a0e6,0 0 #ffe2a080}50%{box-shadow:0 0 0 2px #ffe2a0e6,0 0 0 12px #ffe2a000}}@keyframes fade-in{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.3)}}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%)scale(.6)translateY(-8px)}}@keyframes msg-in{0%{opacity:0;transform:translateY(8px)}}@keyframes drop-in{0%{opacity:0;translate:0 -60px}}@keyframes flip-in{0%{opacity:0;transform:perspective(700px)rotateY(180deg)translateY(40px)scale(.6)}}@keyframes card-reveal{0%{opacity:0;transform:rotateY(180deg)scale(.5)}}@keyframes stamp{0%{opacity:0;transform:scale(2.6)rotate(-12deg)}}@keyframes verdict{0%{opacity:0;transform:scale(.4)}}@keyframes float{50%{transform:translateY(-10px)rotate(1.5deg)}}@keyframes peek{50%{transform:translateY(-6px)rotate(-8deg)}}@keyframes pulse{50%{transform:scale(1.03);box-shadow:0 0 0 10px #e3c07a00}0%{box-shadow:0 0 #e3c07a8c}}@keyframes glow{50%{box-shadow:0 0 16px #e3c07a8c}}@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}@keyframes jitter{20%{transform:translate(-4px)rotate(-3deg)}40%{transform:translate(4px)rotate(3deg)}60%{transform:translate(-3px)}80%{transform:translate(3px)}}@keyframes hop{40%{transform:translateY(-12px)}70%{transform:translateY(2px)}}@keyframes shake{15%{transform:translate(-12px,4px)}30%{transform:translate(11px,-5px)}45%{transform:translate(-8px,3px)}60%{transform:translate(6px,-2px)}80%{transform:translate(-3px,1px)}}@keyframes red-flash{0%{background:#c81e148c}}@keyframes slow-zoom{to{transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=900px){.char-grid{grid-template-columns:repeat(2,1fr);gap:10px}.lobby-inner{padding:22px 12px 150px}.game{grid-template-rows:auto minmax(0,1fr) 27vh;grid-template-columns:minmax(0,1fr)}.chat{border-left:0;border-top:1px solid var(--line)}.brand{display:none}.board{flex-direction:column;gap:8px;padding:8px 8px 0;display:flex}.board>*{flex:none}.opponents{gap:14px}.seat{width:78px}.seat-name{margin-top:10px;font-size:13px}.seat-emoji{font-size:20px}.bubble{display:none}.center{gap:10px 18px;padding:2px 0 0}.mcard-md,.pile-empty{width:54px}.pile-stack{min-width:54px;min-height:72px}.pile-stack.fan .fan-card{margin-left:-46px}.pile{flex-direction:row;gap:8px}.placers{flex-direction:column}.explorer{flex-basis:100%;gap:8px;padding:7px}.explorer-hero{width:64px}.hp b{font-size:21px}.gear-rack{flex:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.gear{text-align:left;flex-flow:wrap;justify-content:flex-start;align-items:center;column-gap:5px;padding:4px 5px}.gear img{border-radius:6px;width:26px;height:26px}.gear-name{flex:1;min-width:0;font-size:10.5px}.gear-short{flex-basis:100%;font-size:10px}.gear.gone:after{font-size:24px;line-height:34px;top:0;left:6px}.me{z-index:5;background:#0c1318f7;border-radius:14px 14px 0 0;flex-direction:column;align-items:stretch;gap:6px;min-height:0;padding:8px 10px;position:sticky;bottom:0}.me-name{font-size:15px}.coach{gap:8px;max-width:none;padding:8px 10px}.me:has(.pending) .me-info{display:none}.game.has-coach{grid-template-rows:auto minmax(0,1fr) 17vh}.has-coach .seat{width:60px}.has-coach .center{padding-top:0}.coach-row{z-index:6;order:-1;position:sticky;top:0}.coach img{width:34px;height:34px}.coach p{font-size:13px}.btn.big{padding:11px 18px;font-size:16px}.turn-buttons .btn{flex:1}.pending{gap:10px}.pending-card{margin-top:0}.pending-card .mcard-lg{border-width:2px;border-radius:9px;width:86px}.pending-card .mcard-name{font-size:11px}.pending-card .mcard-kind{display:none}.pending-card .mcard-power{font-size:15px}.pending-choices{flex:1;max-width:none;font-size:13px}.run-inner{gap:8px;padding:12px 10px 14px}.run-stage{min-height:250px}.mcard-sm{width:42px}.codex-gear,.codex-mon{grid-template-columns:1fr}}
