:root{color-scheme:light;font-family:Segoe UI,Trebuchet MS,Arial,sans-serif;--green: #b7e47d;--green-deep: #71b86a;--pink: #f0b3d2;--pink-deep: #df79ad;--purple: #704d9c;--purple-dark: #573b5d;--yellow: #ffd34e;--orange: #f09a3e;--coral: #e85d68;--cream: #fff5d8;--white: #ffffff;--ink: #131b36;--gold: #ffe6a2;--shadow: 0 14px 50px rgba(10, 17, 41, .48)}*{box-sizing:border-box}html,body{min-width:320px;min-height:100%}body{margin:0;overflow-x:hidden;background:radial-gradient(circle at 15% 14%,rgba(105,187,235,.28),transparent 28%),radial-gradient(circle at 87% 72%,rgba(180,110,224,.25),transparent 32%),linear-gradient(145deg,#0b1733,#253667 58%,#101a38);color:#f5f1ff}button{font:inherit}button:focus-visible{outline:4px solid var(--yellow);outline-offset:3px}#app{min-height:100vh;display:grid;place-items:center;padding:clamp(10px,2vw,24px)}.app-shell{position:relative;width:min(1320px,100%);aspect-ratio:16 / 10;display:grid;place-items:stretch;isolation:isolate;border-radius:22px;box-shadow:0 0 0 1px #e4edff59,0 32px 100px #040719a6,0 0 85px #5394f924}#game-root{width:100%;height:100%;display:block;border:3px solid rgba(213,227,255,.67);border-radius:22px;background:#8bcf72;box-shadow:inset 0 0 0 4px #111d3da6;overflow:hidden}#game-root canvas{display:block}#ui-root{position:absolute;inset:0;pointer-events:none}.ui-layer{pointer-events:auto}.menu-screen,.result-screen,.asset-error{position:absolute;inset:0;display:grid;place-items:center;padding:0;background:#0d1c3d;overflow:auto}.menu-card,.result-card,.asset-error-card{position:relative;width:100%;min-height:100%;padding:clamp(22px,4vw,58px);border:1px solid rgba(239,230,187,.55);border-radius:22px;background:radial-gradient(circle at 75% 30%,#416395,#111d42 64%,#0d1532);color:#fff9ed;box-shadow:var(--shadow)}.menu-card{overflow:hidden;display:flex;align-items:stretch}.menu-illustration{position:absolute;inset:0;background-image:linear-gradient(90deg,rgba(13,24,58,.7),rgba(13,24,58,.15) 45%,transparent 75%),linear-gradient(0deg,#0f1a38 0%,rgba(15,26,56,.75) 15%,transparent 52%),url(/assets/title/house-heroes-v2.webp);background-size:cover;background-position:center;opacity:.97}.menu-illustration:after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 84% 40%,transparent 20%,rgba(6,13,39,.12) 70%)}.menu-content{position:relative;width:100%;display:flex;flex-direction:column;align-items:flex-start;z-index:1}.edition-label{padding:8px 14px;border:1px solid rgba(255,230,162,.65);border-radius:5px;background:#0e1e40bf;color:#ffe6a2;font-size:clamp(10px,1vw,12px);font-weight:800;letter-spacing:.2em}.edition-star{color:#ffcb76;font-size:16px}.mascot{width:78px;height:78px;display:grid;place-items:center;margin:0 auto 10px;border:5px solid var(--purple-dark);border-radius:50%;background:var(--pink);font-size:19px;font-weight:900;transform:rotate(-4deg)}.menu-card h1,.result-card h1,.asset-error-card h1{margin:clamp(20px,3vw,42px) 0 0;color:#fff;font-size:clamp(36px,5.2vw,76px);font-weight:900;line-height:.97;letter-spacing:-.055em;text-shadow:0 4px 25px rgba(4,10,35,.8)}.menu-card h1 span{background:linear-gradient(165deg,#fff6c9,#f7b77e);background-clip:text;color:transparent}.menu-subtitle{margin:20px 0 0;color:#e5e7f6;font-size:clamp(13px,1.4vw,18px);line-height:1.5;text-shadow:0 2px 12px #101a39}.menu-selection{width:100%;margin-top:auto}.menu-card h2{margin:32px 0 15px;color:#ffe9ae;font-size:clamp(15px,1.6vw,21px);letter-spacing:.025em}.character-list{display:grid;grid-template-columns:repeat(4,minmax(0,145px));gap:10px}.character-card{min-height:126px;padding:10px 7px;border:1px solid rgba(193,211,255,.45);border-radius:11px;background:linear-gradient(135deg,#1e305bf0,#111c3df2);color:#fff9ed;box-shadow:inset 0 1px #ffffff29,0 6px 14px #050a2157;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease}.character-card:hover,.character-card[aria-pressed=true]{border-color:#ffe6a2;background:linear-gradient(135deg,#456591,#253a69);transform:translateY(-4px);box-shadow:0 0 0 2px #ffe6a259,0 0 24px #ffd78b59}.character-card strong,.character-card small{display:block}.character-card strong{margin-top:4px;font-size:15px}.character-card strong span{color:#ffe6a2}.character-card small{margin-top:3px;color:#cddcf2;font-size:11px;line-height:1.25}.character-icon{width:68px;height:68px;display:grid;place-items:center;margin:0 auto;border:2px solid #ffd891;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 45% 32%,#61769c,#273754)}.character-icon img{width:100%;height:100%;object-fit:contain;transform:scale(1.28);filter:drop-shadow(0 3px 4px rgba(5,10,30,.55))}.primary-button,.secondary-button,.danger-button,.ability-button,.action-button{border:1px solid #ffe6a2;border-radius:8px;color:var(--white);font-weight:900;box-shadow:inset 0 1px #ffffff8c,0 8px 22px #070d2752;cursor:pointer;transition:transform .12s ease,filter .12s ease,opacity .12s ease}.primary-button:hover,.secondary-button:hover,.danger-button:hover,.ability-button:hover,.action-button:hover{filter:brightness(1.08);transform:translateY(-2px)}.primary-button:active,.secondary-button:active,.danger-button:active,.ability-button:active,.action-button:active{transform:translateY(2px);box-shadow:0 2px #070d27b3}.primary-button{margin-top:18px;padding:14px 26px;background:linear-gradient(135deg,#e9aa72,#c88062 52%,#ad6080);font-size:17px;letter-spacing:.025em}.primary-button span{margin:0 6px}.controls-note{color:#cad5ec;font-size:11px;letter-spacing:.02em}.secondary-button{padding:12px 20px;background:var(--purple)}.danger-button{padding:12px 20px;background:var(--coral)}.hud{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:12px 16px 16px;pointer-events:none}.hud-top,.hud-bottom{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.hud-top{display:block}.hud-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:7px;pointer-events:auto}.pill{min-height:36px;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid rgba(230,233,255,.65);border-radius:6px;background:linear-gradient(150deg,#2a3f69f5,#0f1a3af5);color:#f5f7ff;font-size:13px;font-weight:750;box-shadow:0 4px 15px #070b2659}.pill>span{font-size:17px;color:#ffe4a1}.pill small{color:#d3dff5;font-size:10px}.room-pill{color:#ffe7bb}.timer-pill{border-color:#ffcfad}.coin-pill{border-color:#ffe0a3}.bot-pill{border-color:#c1c5fa}.aggro-track{display:inline-block;width:58px;height:6px;margin-left:7px;border-radius:4px;background:#08132dc7;border:1px solid rgba(232,223,255,.42);overflow:hidden;vertical-align:middle}.aggro-fill{display:block;width:0;height:100%;background:linear-gradient(90deg,#ffd166,#ff8f5e,#ff5c5c);transition:width .18s linear}.timer-track{width:min(360px,43%);height:5px;margin-top:7px;border-radius:5px;background:#08132db3;border:1px solid rgba(232,223,255,.38);overflow:hidden}.timer-fill{width:100%;height:100%;background:linear-gradient(90deg,#61cdd8,#ae9bf9,#ffcf86);transition:width .25s linear}.phase-overlay{position:absolute;top:21%;left:50%;transform:translate(-50%);min-width:min(465px,75%);padding:17px 24px;border:1px solid #ffe1aa;border-radius:10px;background:linear-gradient(130deg,#14224af5,#2c3460f0);box-shadow:0 12px 45px #03091d61;color:#fff8dc;text-align:center;font-size:clamp(14px,1.5vw,21px);font-weight:800;pointer-events:none}.phase-emblem{margin-right:12px;color:#ffcc82}.ability-panel{max-width:min(610px,100%);display:flex;flex-wrap:wrap;gap:5px;pointer-events:auto}.ability-button,.action-button{min-height:37px;padding:7px 10px;background:linear-gradient(140deg,#475b99,#293664);font-size:11px;white-space:nowrap}.ability-button.special{background:linear-gradient(140deg,#aa78d1,#724899)}.action-button.hide{background:linear-gradient(140deg,#52b5a0,#2b7e8e)}.action-button.rehide{background:linear-gradient(140deg,#e19a74,#a8667c)}.action-button.pause{background:#1c294c}.action-button[disabled],.ability-button[disabled]{cursor:not-allowed;opacity:.68;filter:grayscale(.24);transform:none}.toast{position:absolute;top:66px;left:50%;translate:-50% 0;max-width:min(600px,calc(100% - 28px));padding:10px 18px;border:1px solid #f3d3a4;border-radius:8px;background:#15244af5;color:var(--white);text-align:center;font-weight:900;box-shadow:0 8px 25px #04091d61;pointer-events:none}.hidden{display:none!important}.result-card,.asset-error-card{width:min(530px,calc(100% - 28px));min-height:0;padding:48px;text-align:center;border-color:#ffdaab}.result-card p{font-size:20px;line-height:1.5}.result-screen{background:linear-gradient(115deg,#071433d1,#101b3f94),url(/assets/title/house-heroes-v2.webp) center / cover}.result-card{backdrop-filter:blur(14px);background:linear-gradient(145deg,#2a3f6cf0,#111c41f0);box-shadow:inset 0 1px #fff3,0 20px 65px #060c258c}.result-card h1{margin:12px 0 20px;color:#fff4d6;text-shadow:0 3px 25px rgba(251,204,132,.35)}.result-stars{color:#ffe5a3;letter-spacing:.8em;font-size:20px}.result-mascot{display:block;width:90px;height:90px;margin:10px auto;filter:drop-shadow(0 8px 12px rgba(9,16,41,.5))}.result-eyebrow{color:#ffe0a2;font-size:11px;font-weight:800;letter-spacing:.18em}.result-won .result-card{border-color:#ffe6b8}.result-won .result-stars{animation:star-glow 2s ease-in-out infinite alternate}@keyframes star-glow{0%{opacity:.5;text-shadow:0 0 4px #ffdea2}to{opacity:1;text-shadow:0 0 22px #ffe1a7}}.asset-error-card{background:#ffe0df}.asset-error-card code{display:block;margin:14px 0;overflow-wrap:anywhere}.boot-screen{text-align:center}.boot-screen h1{color:var(--coral);text-shadow:3px 3px var(--yellow)}@media(max-width:760px){#app{padding:8px}.app-shell{height:calc(100svh - 16px);min-height:0;aspect-ratio:auto}#game-root{position:absolute;inset:0;border-width:4px;border-radius:22px}.menu-card{min-height:100%}.menu-illustration{background-position:63% center;opacity:.75}.character-list{grid-template-columns:repeat(2,minmax(0,1fr))}.character-card{min-height:115px}.hud{padding:8px}.hud-bottom{align-items:flex-end}.phase-overlay{top:125px}.pill{min-height:32px;padding:5px 8px;font-size:11px}.ability-button,.action-button{min-height:38px;padding:7px 8px;font-size:11px}}@media(max-width:480px){.menu-card,.result-card,.asset-error-card{padding:22px 15px;border-radius:16px}.menu-content{min-height:720px}.menu-illustration{background-image:linear-gradient(0deg,#101a39,#101a39e6 42%,#101a3933 80%),url(/assets/title/house-heroes-v2.webp);background-position:77% top}.menu-card h1{margin-top:18px;font-size:clamp(34px,9vw,45px)}.menu-subtitle{font-size:13px}.menu-card h2{margin-top:22px}.character-list{gap:8px}.character-card{padding:8px 5px}.character-icon{width:50px;height:50px}.character-card strong{font-size:15px}.character-card small{font-size:10px}.hud-bottom{flex-direction:column;align-items:stretch;gap:11px;padding:12px 0 0;border-top:1px solid rgba(255,236,190,.25);background:linear-gradient(0deg,rgba(17,28,62,.95),rgba(17,28,62,.78) 85%,transparent)}.ability-panel,.hud-cluster{justify-content:center}.phase-overlay{top:131px;min-width:calc(100% - 40px);padding:10px;font-size:13px}.toast{top:78px;font-size:12px}}@media(max-width:480px)and (min-height:740px){.hud-bottom{position:absolute;top:calc(141px + (100vw - 16px)/1.6);right:8px;bottom:8px;left:8px;justify-content:space-between}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.rotate-hint{display:none}.joystick-base{display:none;position:fixed;width:104px;height:104px;margin:-52px 0 0 -52px;border-radius:50%;background:radial-gradient(circle,#ffffff1f,#14204642);border:2px solid rgba(255,255,255,.55);box-shadow:0 6px 18px #060b2059;pointer-events:none;z-index:40}.joystick-base.active{display:block}.joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fffffff2,#c9d4f2e6);box-shadow:0 6px 14px #080e2880}body.is-touch #game-root canvas,body.is-touch .ability-button,body.is-touch .action-button{touch-action:none}body.layout-mobile.layout-landscape html,body.layout-mobile.layout-landscape{height:100%;overflow:hidden;overscroll-behavior:none}body.layout-mobile.layout-landscape #app{padding:0;height:100svh;min-height:0}body.layout-mobile.layout-landscape .app-shell{width:100vw;height:100svh;min-height:0;aspect-ratio:auto;border-radius:0;box-shadow:none}body.layout-mobile.layout-landscape #game-root{position:absolute;inset:0;width:100%;height:100%;border:none;border-radius:0;box-shadow:none;background:#0f1a38}body.layout-mobile.layout-landscape .hud{padding:6px 10px 8px}body.layout-mobile.layout-landscape .hud-bottom{position:absolute;left:0;right:0;bottom:6px;padding:0 10px;border:none;background:none;flex-direction:row;align-items:flex-end;justify-content:space-between;gap:8px;z-index:3}body.layout-mobile.layout-landscape .ability-panel{display:flex;flex-wrap:nowrap;justify-content:flex-start;gap:4px;max-width:none;position:relative;z-index:3}body.layout-mobile.layout-landscape .hud-cluster{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:4px;position:relative;z-index:3}body.layout-mobile.layout-landscape .ability-button,body.layout-mobile.layout-landscape .action-button{min-height:32px;padding:4px 8px;font-size:10.5px;white-space:nowrap}body.layout-mobile.layout-landscape .pill{min-height:26px;padding:4px 8px;font-size:11px}body.layout-mobile.layout-landscape .aggro-track{width:36px}body.layout-mobile.layout-landscape .timer-track{width:min(240px,32%)}body.layout-mobile.layout-landscape .phase-overlay{top:60px;min-width:0;max-width:70%;padding:8px 14px;font-size:14px}body.layout-mobile.layout-landscape .toast{top:112px;font-size:12px}body.layout-mobile.layout-landscape .menu-card{width:100vw;min-height:100svh;height:100svh;padding:max(12px,env(safe-area-inset-top)) 20px max(12px,env(safe-area-inset-bottom));border:none;border-radius:0;box-shadow:none;overflow-y:auto;overflow-x:hidden}body.layout-mobile.layout-landscape .menu-illustration{background-position:78% top}body.layout-mobile.layout-landscape .menu-content{min-height:0;align-items:center;text-align:center}body.layout-mobile.layout-landscape .menu-card h1{font-size:clamp(20px,3.6vw,32px);margin:4px 0 0}body.layout-mobile.layout-landscape .menu-subtitle{margin:6px 0 0;font-size:11px;line-height:1.35}body.layout-mobile.layout-landscape .menu-card h2{margin:6px 0 4px;font-size:14px}body.layout-mobile.layout-landscape .character-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:100%}body.layout-mobile.layout-landscape .character-card{min-height:72px;padding:5px 4px}body.layout-mobile.layout-landscape .character-icon{width:36px;height:36px}body.layout-mobile.layout-landscape .character-card strong{font-size:13px}body.layout-mobile.layout-landscape .character-card small{font-size:10px}body.layout-mobile.layout-landscape .primary-button{min-height:38px;margin-top:8px;font-size:14px}body.layout-mobile.layout-landscape .controls-note{display:none}body.layout-mobile.layout-landscape .result-card,body.layout-mobile.layout-landscape .asset-error-card{padding:18px 22px;max-height:92svh;overflow:auto}body.layout-mobile.layout-landscape .result-card h1{font-size:24px;margin:4px 0 10px}body.layout-mobile.layout-landscape .result-card p{font-size:15px}body.layout-mobile.layout-landscape .result-mascot{width:56px;height:56px;margin:4px auto}body.layout-mobile.layout-landscape .result-stars{font-size:16px}body.gameplay-active.layout-mobile:not(.layout-landscape) .rotate-hint{display:flex;flex-direction:column;align-items:center;justify-content:space-between;position:fixed;inset:0;z-index:80;padding:26px 22px 30px;text-align:center;color:#fff9ed;background-color:#0d1c3d;background-image:linear-gradient(180deg,#0a122cdb,#0a122c57 26%,#0a122c1f,#0a122c99 74%,#0a122cf0),url(/assets/title/house-heroes-v2.webp);background-size:cover,auto 85%;background-position:right bottom,right bottom;background-repeat:no-repeat}.rotate-content{display:flex;flex-direction:column;align-items:center}.rotate-hint h1{margin:14px 0 0;color:#fff;font-size:clamp(30px,10.5vw,48px);font-weight:900;line-height:.97;letter-spacing:-.055em;text-shadow:0 4px 25px rgba(4,10,35,.85)}.rotate-hint h1 span{background:linear-gradient(165deg,#fff6c9,#f7b77e);background-clip:text;color:transparent}.rotate-welcome{margin:14px 0 0;max-width:340px;color:#e7e9f8;font-size:14px;font-weight:600;line-height:1.55;text-shadow:0 2px 12px #101a39}.rotate-action{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 20px 16px;border:1px solid rgba(255,230,162,.6);border-radius:16px;background:#0d183ab8;box-shadow:0 14px 45px #04091d8c;backdrop-filter:blur(6px)}.rotate-action .rotate-icon{font-size:46px;animation:rotate-hint 2.4s ease-in-out infinite}.rotate-action strong{color:#ffe9a8;font-size:16px;letter-spacing:.01em}.rotate-note{color:#cbd6f0;font-size:12px}@keyframes rotate-hint{0%,25%{transform:rotate(0)}70%,to{transform:rotate(90deg)}}.lobby-screen{position:absolute;inset:0;display:grid;place-items:center;overflow:auto;padding:clamp(10px,2vw,24px);background:linear-gradient(100deg,#08122cf7,#0b1838d4 46%,#09122beb),url(/assets/title/house-heroes-v2.webp) center / cover}.lobby-card{position:relative;width:min(1080px,100%);min-height:min(650px,calc(100svh - 40px));display:flex;flex-direction:column;gap:18px;padding:clamp(22px,3vw,38px);overflow:hidden;border:1px solid rgba(255,235,180,.5);border-radius:26px;background:linear-gradient(145deg,#1f345bf5,#0c1839f7);color:#fff9ed;box-shadow:0 30px 90px #03081ba6,inset 0 1px #ffffff1a;isolation:isolate}.lobby-backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 90% 5%,rgba(110,185,232,.18),transparent 34%),radial-gradient(circle at 7% 100%,rgba(202,112,177,.14),transparent 32%)}.lobby-back{position:absolute;top:24px;right:28px;min-height:42px;padding:8px 14px;border:1px solid rgba(207,220,249,.42);border-radius:12px;background:#0b183994;color:#e5ebfa;font-weight:800;cursor:pointer;transition:background .14s ease,transform .14s ease}.lobby-back:hover{background:#455b91b3;transform:translateY(-1px)}.lobby-heading{max-width:760px;padding-right:100px}.lobby-card h1{margin:10px 0 0;font-size:clamp(30px,4vw,52px);font-weight:900;line-height:.98;letter-spacing:-.045em}.lobby-card h1 span{background:linear-gradient(165deg,#fff6c9,#f2ad7d);background-clip:text;color:transparent}.lobby-status{min-height:24px;margin:9px 0 0;color:#d9e1f3;font-size:15px;font-weight:650}.lobby-status-error{color:#ffb6b6}.lobby-entry{flex:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(330px,.9fr);gap:16px}.lobby-panel{min-width:0;padding:20px;border:1px solid rgba(192,211,250,.28);border-radius:20px;background:linear-gradient(145deg,#2f4674b8,#111f44c7);box-shadow:inset 0 1px #ffffff17,0 14px 30px #040a1f38;backdrop-filter:blur(8px)}.lobby-section-heading{display:flex;align-items:center;gap:11px;margin-bottom:16px}.lobby-section-heading div{display:flex;flex-direction:column;gap:2px;min-width:0}.lobby-section-heading strong{color:#fff8e8;font-size:18px}.lobby-section-heading small{color:#bdcae5;font-size:12px;line-height:1.3}.lobby-step{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:1px solid rgba(255,232,169,.65);border-radius:50%;background:linear-gradient(145deg,#db9a6b,#ad5f82);color:#fff;font-weight:900;box-shadow:0 5px 14px #090e254d}.lobby-field{display:flex;flex-direction:column;gap:7px;color:#ffe9ae;font-size:12px;font-weight:850;letter-spacing:.03em}.lobby-input{width:100%;min-height:48px;padding:10px 14px;border:1px solid rgba(203,219,255,.5);border-radius:12px;outline:none;background:#07112bc2;color:#fff;font:inherit;font-size:16px;font-weight:750;box-shadow:inset 0 2px 8px #02071840}.lobby-input::placeholder{color:#8998b9}.lobby-input:focus{border-color:#ffe6a2;box-shadow:0 0 0 3px #ffe6a229}.lobby-characters{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.lobby-character{min-height:108px;padding:8px 5px}.lobby-character .character-icon{width:54px;height:54px}.lobby-character strong{font-size:13px}.lobby-character small{font-size:9px}.lobby-choice-panel{display:flex;flex-direction:column}.lobby-choice{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;min-height:88px;padding:14px;border:1px solid rgba(193,211,255,.36);border-radius:16px;color:#fff;text-align:left;box-shadow:inset 0 1px #ffffff1a,0 8px 20px #050b213b}.lobby-create-choice{background:linear-gradient(135deg,#d99467,#ba6882 58%,#835d99);cursor:pointer;transition:transform .14s ease,filter .14s ease}.lobby-create-choice:hover{filter:brightness(1.08);transform:translateY(-2px)}.lobby-choice-icon{width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.43);border-radius:14px;background:#151e4247;color:#fff1ba;font-size:24px}.lobby-choice-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.lobby-choice-copy strong{font-size:17px}.lobby-choice-copy small{color:#f2e3e3;font-size:11px;line-height:1.35}.lobby-choice-arrow{font-size:25px}.lobby-join-choice{grid-template-columns:48px minmax(0,1fr);margin-top:12px;background:#0e1c41bd}.lobby-join-row{grid-column:1 / -1;display:grid;grid-template-columns:minmax(100px,1fr) minmax(120px,.85fr);gap:8px}.lobby-code-input{text-transform:uppercase;letter-spacing:.22em;text-align:center}.lobby-join-button,.room-copy-button,.room-leave-button,.room-ready-button,.room-start-button{min-height:48px;padding:10px 16px;border:1px solid rgba(255,232,169,.64);border-radius:12px;color:#fff;font-weight:900;cursor:pointer;transition:transform .12s ease,filter .12s ease,background .12s ease}.lobby-join-button{background:linear-gradient(140deg,#5673b0,#394b86)}.lobby-join-button:hover,.room-copy-button:hover,.room-leave-button:hover,.room-ready-button:hover,.room-start-button:hover{filter:brightness(1.1);transform:translateY(-1px)}.lobby-friendly-note{margin:auto 0 0;padding-top:12px;color:#c8d4ec;font-size:11px;text-align:center}.lobby-friendly-note span{color:#f0a3bd}.lobby-room{flex:1;display:grid;grid-template-columns:minmax(210px,.8fr) minmax(290px,1.2fr) minmax(230px,1fr);grid-template-rows:minmax(0,1fr) auto;gap:14px}.room-code-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.room-eyebrow{color:#b9c8e5;font-size:10px;font-weight:900;letter-spacing:.18em}.lobby-code{margin:9px 0 4px;color:#ffe6a2;font-size:clamp(34px,4vw,50px);font-weight:950;letter-spacing:.18em;text-indent:.18em;text-shadow:0 5px 22px rgba(0,0,0,.5);user-select:all}.room-code-panel p,.room-hero-panel>p{margin:4px 0 13px;color:#bcc9e3;font-size:11px;line-height:1.4}.room-copy-button{width:100%;background:linear-gradient(140deg,#4f69a4,#35477c)}.room-copy-button.is-copied{background:linear-gradient(140deg,#4da58b,#347663)}.room-panel-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff4d4;font-size:17px;font-weight:900}.room-panel-heading div span{color:#ffd98d}.room-player-count{padding:4px 9px;border-radius:999px;background:#07122da3;color:#dce6fa;font-size:11px}.room-ready-track{height:6px;margin-top:12px;overflow:hidden;border-radius:8px;background:#040d23c2}.room-ready-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#65d0ad,#b9e879);transition:width .18s ease}.room-ready-caption{margin:5px 0 9px;color:#aebddd;font-size:10px}.lobby-players{max-height:300px;display:flex;flex-direction:column;gap:7px;margin:0;padding:0;overflow:auto;list-style:none}.lobby-player{min-height:52px;display:flex;align-items:center;gap:9px;padding:6px 8px;border:1px solid rgba(190,210,249,.22);border-radius:12px;background:#0b183894}.lobby-player.is-ready{border-color:#8cdeae8c;background:#245c4e57}.lobby-player-portrait{--player-accent: #89a5db;width:40px;height:40px;flex:0 0 40px;overflow:hidden;border:2px solid var(--player-accent);border-radius:50%;background:#273754}.lobby-player-portrait img{width:100%;height:100%;object-fit:contain;transform:scale(1.28)}.lobby-player-details{min-width:0;display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:6px}.lobby-player-details strong{grid-column:1 / -1;overflow:hidden;color:#f8f5ed;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.lobby-player-details small{color:#acbad7;font-size:10px}.lobby-host-badge{padding:2px 5px;border-radius:999px;background:#deac6538;color:#ffdda3;font-size:8px;font-weight:900}.lobby-player-state{margin-left:auto;color:#aebbd6;font-size:10px;font-weight:900;white-space:nowrap}.lobby-player.is-ready .lobby-player-state{color:#9ce7c2}.lobby-player.is-empty{min-height:42px;border-style:dashed;background:#0a153138;color:#8292b3;font-size:11px}.lobby-empty-icon{width:27px;height:27px;display:grid;place-items:center;border:1px dashed #7283a7;border-radius:50%;font-size:16px}.room-hero-panel{display:flex;flex-direction:column}.lobby-characters-room{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:auto}.lobby-characters-room .character-card{min-height:82px;padding:6px 3px}.lobby-characters-room .character-icon{width:42px;height:42px}.lobby-characters-room .character-card strong{font-size:11px}.lobby-characters-room .character-card small{display:none}.room-actions{grid-column:1 / -1;display:flex;justify-content:flex-end;gap:9px;padding-top:2px}.room-leave-button{margin-right:auto;border-color:#cad7f461;background:#1f2f54c7;color:#ccd6ea}.room-ready-button{background:linear-gradient(140deg,#4a9e88,#337260)}.room-ready-button.is-ready{background:linear-gradient(140deg,#5b6f9f,#3b4b78)}.room-start-button{background:linear-gradient(135deg,#e4a06c,#bb6981 58%,#815e98)}.room-start-button:disabled{opacity:.42;cursor:not-allowed;filter:grayscale(.35);transform:none}.multiplayer-button{margin-top:10px;align-self:center}@media(max-width:760px){.lobby-screen{place-items:start center;padding:0;background:#101d3e}.lobby-card{width:100%;min-height:100svh;padding:max(18px,env(safe-area-inset-top)) 14px max(18px,env(safe-area-inset-bottom));gap:14px;border:0;border-radius:0;box-shadow:none;overflow:visible}.lobby-back{position:relative;top:auto;right:auto;align-self:flex-start;min-height:44px;margin-bottom:-4px;padding:7px 12px}.lobby-heading{padding-right:0}.lobby-card h1{margin-top:8px;font-size:clamp(30px,10vw,42px)}.lobby-status{min-height:38px;font-size:13px;line-height:1.4}.lobby-entry{grid-template-columns:1fr}.lobby-panel{padding:15px;border-radius:17px}.lobby-characters{grid-template-columns:repeat(2,minmax(0,1fr))}.lobby-character{min-height:100px}.lobby-choice{min-height:92px}.lobby-join-row{grid-template-columns:1fr}.lobby-join-button{min-height:48px}.lobby-room{grid-template-columns:1fr;grid-template-rows:auto}.room-code-panel,.room-roster-panel,.room-hero-panel,.room-actions{grid-column:1}.room-code-panel{padding:20px}.lobby-code{font-size:44px}.lobby-players{max-height:none}.lobby-characters-room{grid-template-columns:repeat(4,minmax(0,1fr))}.room-actions{position:sticky;bottom:0;z-index:2;display:grid;grid-template-columns:.65fr 1.35fr;padding:10px 0 max(4px,env(safe-area-inset-bottom));background:linear-gradient(180deg,transparent,#102040 18%)}.room-start-button{grid-column:1 / -1;grid-row:1}.room-leave-button{width:100%;margin:0}}body.layout-mobile.layout-landscape .lobby-screen{padding:0}body.layout-mobile.layout-landscape .lobby-card{width:100vw;min-height:100svh;height:100svh;padding:10px max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));gap:7px;border:0;border-radius:0;overflow:auto;box-shadow:none}body.layout-mobile.layout-landscape .lobby-back{top:9px;right:max(14px,env(safe-area-inset-right));min-height:36px;padding:5px 10px;font-size:11px}body.layout-mobile.layout-landscape .lobby-heading{padding-right:90px}body.layout-mobile.layout-landscape .lobby-heading .edition-label{display:none}body.layout-mobile.layout-landscape .lobby-card h1{margin:0;font-size:24px}body.layout-mobile.layout-landscape .lobby-status{min-height:16px;margin-top:3px;font-size:10px}body.layout-mobile.layout-landscape .lobby-entry{grid-template-columns:1fr .85fr;gap:8px}body.layout-mobile.layout-landscape .lobby-panel{padding:9px;border-radius:13px}body.layout-mobile.layout-landscape .lobby-section-heading{gap:7px;margin-bottom:7px}body.layout-mobile.layout-landscape .lobby-step{width:26px;height:26px;flex-basis:26px;font-size:11px}body.layout-mobile.layout-landscape .lobby-section-heading strong{font-size:13px}body.layout-mobile.layout-landscape .lobby-section-heading small{display:none}body.layout-mobile.layout-landscape .lobby-field{gap:3px;font-size:9px}body.layout-mobile.layout-landscape .lobby-input{min-height:34px;padding:5px 9px;font-size:12px}body.layout-mobile.layout-landscape .lobby-characters{grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin-top:6px}body.layout-mobile.layout-landscape .lobby-character{min-height:66px;padding:3px}body.layout-mobile.layout-landscape .lobby-character .character-icon{width:34px;height:34px}body.layout-mobile.layout-landscape .lobby-character strong{font-size:10px}body.layout-mobile.layout-landscape .lobby-character small{display:none}body.layout-mobile.layout-landscape .lobby-choice{min-height:57px;grid-template-columns:34px minmax(0,1fr) auto;gap:7px;padding:7px;border-radius:11px}body.layout-mobile.layout-landscape .lobby-choice-icon{width:34px;height:34px;border-radius:10px;font-size:17px}body.layout-mobile.layout-landscape .lobby-choice-copy strong{font-size:12px}body.layout-mobile.layout-landscape .lobby-choice-copy small{display:none}body.layout-mobile.layout-landscape .lobby-join-choice{grid-template-columns:34px minmax(0,1fr);margin-top:6px}body.layout-mobile.layout-landscape .lobby-join-row{grid-column:2;grid-row:1;grid-template-columns:minmax(76px,1fr) minmax(76px,.8fr)}body.layout-mobile.layout-landscape .lobby-join-button{min-height:34px;padding:4px 7px;font-size:11px}body.layout-mobile.layout-landscape .lobby-friendly-note{padding-top:5px;font-size:9px}body.layout-mobile.layout-landscape .lobby-room{grid-template-columns:minmax(160px,.75fr) minmax(250px,1.2fr) minmax(180px,.9fr);gap:7px}body.layout-mobile.layout-landscape .room-eyebrow{font-size:8px}body.layout-mobile.layout-landscape .lobby-code{margin:3px 0;font-size:30px}body.layout-mobile.layout-landscape .room-code-panel p,body.layout-mobile.layout-landscape .room-hero-panel>p{margin:2px 0 6px;font-size:8px}body.layout-mobile.layout-landscape .room-copy-button,body.layout-mobile.layout-landscape .room-leave-button,body.layout-mobile.layout-landscape .room-ready-button,body.layout-mobile.layout-landscape .room-start-button{min-height:34px;padding:5px 9px;font-size:10px}body.layout-mobile.layout-landscape .room-panel-heading{font-size:12px}body.layout-mobile.layout-landscape .room-ready-track{margin-top:5px}body.layout-mobile.layout-landscape .room-ready-caption{margin:2px 0 4px;font-size:8px}body.layout-mobile.layout-landscape .lobby-players{max-height:184px;gap:4px}body.layout-mobile.layout-landscape .lobby-player{min-height:38px;padding:3px 5px}body.layout-mobile.layout-landscape .lobby-player-portrait{width:30px;height:30px;flex-basis:30px}body.layout-mobile.layout-landscape .lobby-player-details strong{font-size:10px}body.layout-mobile.layout-landscape .lobby-player-details small,body.layout-mobile.layout-landscape .lobby-player-state{font-size:8px}body.layout-mobile.layout-landscape .lobby-player.is-empty{min-height:30px}body.layout-mobile.layout-landscape .lobby-empty-icon{width:21px;height:21px}body.layout-mobile.layout-landscape .lobby-characters-room{grid-template-columns:repeat(2,minmax(0,1fr))}body.layout-mobile.layout-landscape .lobby-characters-room .character-card{min-height:58px}body.layout-mobile.layout-landscape .lobby-characters-room .character-icon{width:30px;height:30px}body.layout-mobile.layout-landscape .room-actions{grid-column:1 / -1;gap:6px}@media(prefers-reduced-motion:reduce){.lobby-screen *,.room-ready-track span{scroll-behavior:auto;transition-duration:.01ms!important;animation-duration:.01ms!important}}.eliminated{position:absolute;inset:0;display:grid;place-items:center;background:#080e248c;z-index:30;pointer-events:none}.eliminated-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:22px 28px;border-radius:18px;border:1px solid rgba(255,230,162,.6);background:#142042ed;color:#ffe9a8;text-align:center;box-shadow:var(--shadow);max-width:min(420px,90%)}.eliminated-card strong{font-size:22px}.eliminated-card span{color:#d7def2;font-weight:600;font-size:14px;line-height:1.45}.eliminated-icon{font-size:38px}
