:root{--bg-0: #05060e;--bg-1: #0a0d1c;--panel: rgba(16, 20, 40, .72);--panel-solid: #10142a;--border: rgba(126, 148, 214, .22);--border-strong: rgba(150, 180, 255, .42);--text: #e8edff;--muted: #9aa6cc;--gold: #ffd479;--cyan: #5fe8ff;--violet: #9b7bff;--danger: #ff6b7f;--success: #56e39f;--font-display: "Cinzel", "Georgia", serif;--font-ui: "Rajdhani", "Segoe UI", system-ui, sans-serif;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0}body{background:var(--bg-0);color:var(--text);font-family:var(--font-ui);font-size:16px;overflow:hidden;overscroll-behavior:none}button{font-family:inherit}.cosmos{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;overflow:hidden;background:radial-gradient(1200px 700px at 20% 15%,rgba(90,60,180,.35),transparent 60%),radial-gradient(900px 600px at 82% 78%,rgba(20,110,160,.3),transparent 62%),radial-gradient(700px 500px at 60% 30%,rgba(190,60,140,.16),transparent 65%),linear-gradient(180deg,#06070f,#0a0d1c 55%,#05060e)}.cosmos:before,.cosmos:after{content:"";position:absolute;top:-50%;right:-50%;bottom:-50%;left:-50%;background-image:radial-gradient(1.6px 1.6px at 20% 30%,rgba(255,255,255,.9),transparent),radial-gradient(1.4px 1.4px at 70% 60%,rgba(200,220,255,.8),transparent),radial-gradient(1.2px 1.2px at 40% 80%,rgba(255,235,200,.75),transparent),radial-gradient(1.8px 1.8px at 85% 20%,rgba(255,255,255,.85),transparent),radial-gradient(1.2px 1.2px at 10% 65%,rgba(180,210,255,.7),transparent);background-size:340px 340px,260px 260px,420px 420px,500px 500px,300px 300px;animation:drift 140s linear infinite;opacity:.55}.cosmos:after{background-size:700px 700px,560px 560px,820px 820px,900px 900px,640px 640px;animation-duration:240s;animation-direction:reverse;opacity:.35}@keyframes drift{0%{transform:translateZ(0)}to{transform:translate3d(-300px,-220px,0)}}.screen{position:relative;z-index:1;min-height:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:20px;overflow-y:auto}.brand{text-align:center;margin-bottom:22px}.brand h1{font-family:var(--font-display);font-size:clamp(30px,7vw,52px);letter-spacing:.16em;margin:0;background:linear-gradient(100deg,#fff2c8,#ffd479 25%,#9b7bff 60%,#5fe8ff);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 26px rgba(155,123,255,.45))}.brand p{margin:6px 0 0;color:var(--muted);letter-spacing:.28em;font-size:11px;text-transform:uppercase}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 24px 70px #0000008c,inset 0 1px #ffffff0f}.auth-card{width:100%;max-width:430px;padding:26px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:6px;background:#06091499;border:1px solid var(--border);border-radius:11px;padding:5px;margin-bottom:20px}.tabs button{border:0;background:transparent;color:var(--muted);padding:10px;border-radius:8px;font-weight:700;letter-spacing:.09em;font-size:13px;text-transform:uppercase;cursor:pointer;transition:.18s}.tabs button.active{background:linear-gradient(135deg,#9b7bff59,#5fe8ff38);color:#fff;box-shadow:inset 0 0 0 1px var(--border-strong)}.field{margin-bottom:14px}.field label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px;font-weight:700}.field input{width:100%;padding:12px 14px;background:#040710bf;border:1px solid var(--border);border-radius:10px;color:var(--text);font-size:16px;font-family:inherit;outline:none;transition:.18s}.field input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #5fe8ff24}.hint{font-size:12.5px;color:var(--muted);line-height:1.45}.btn{width:100%;padding:13px 16px;border-radius:11px;border:1px solid var(--border-strong);background:linear-gradient(135deg,#6b4bd6,#2f7fd6);color:#fff;font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:.18s;box-shadow:0 10px 26px #463cc859}.btn:hover:not(:disabled){filter:brightness(1.14);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.gold{background:linear-gradient(135deg,#d8a13a,#b8752c);box-shadow:0 10px 26px #c896324d}.btn.ghost{background:#ffffff0d;border-color:var(--border);box-shadow:none}.btn.small{width:auto;padding:9px 14px;font-size:12px}.alert{padding:11px 13px;border-radius:10px;font-size:13.5px;margin-bottom:14px;line-height:1.45}.alert.error{background:#ff6b7f21;border:1px solid rgba(255,107,127,.4);color:#ffc4cd}.alert.info{background:#5fe8ff1a;border:1px solid rgba(95,232,255,.34);color:#c4f2ff}.alert.warn{background:#ffd4791c;border:1px solid rgba(255,212,121,.36);color:#ffe6b5}.auth-screen{padding:16px}.auth-layout{width:100%;max-width:980px;display:grid;grid-template-columns:1fr 420px;gap:34px;align-items:center}.auth-hero{text-align:center}.auth-logo{width:min(340px,72vw);height:auto;display:block;margin:0 auto;filter:drop-shadow(0 0 40px rgba(155,123,255,.35));mix-blend-mode:screen}.auth-tagline{margin:2px 0 16px;color:var(--muted);letter-spacing:.3em;font-size:11px;text-transform:uppercase}.auth-lore{margin:0 auto;max-width:420px;color:#b8c4e6;font-size:14px;line-height:1.6;font-style:italic;border-left:2px solid rgba(155,123,255,.5);padding-left:14px;text-align:left}.auth-stats{display:flex;justify-content:center;gap:28px;margin-top:22px}.auth-stats div{display:grid}.auth-stats b{font-family:var(--font-display);font-size:26px;color:var(--gold);line-height:1}.auth-stats span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:4px}.creator-screen{align-items:flex-start;padding:16px 12px 30px}.creator-wrap{width:100%;max-width:1020px;margin:0 auto}.brand.compact h1{font-size:clamp(24px,6vw,38px)}.creator{width:100%;max-width:1020px;display:grid;grid-template-columns:340px 1fr;gap:18px;align-items:start}.preview-house{margin:12px 0;padding:10px 12px;border:1px solid var(--border);border-radius:11px;display:grid;gap:3px;text-align:left;background:#060a1680}.ph-title{font-family:var(--font-display);font-size:15px;letter-spacing:.05em}.ph-sub{font-size:11.5px;color:var(--muted)}.ph-perk{font-size:12px;color:#c3cfee;margin-top:4px;line-height:1.4}.house-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px}.house-card{display:grid;gap:1px;padding:10px 8px;border-radius:11px;border:1px solid var(--border);background:#060a1699;color:var(--text);cursor:pointer;transition:.16s;text-align:center}.house-card:hover{transform:translateY(-2px)}.house-card.active{border-color:var(--c);background:#161e3ad9;box-shadow:0 0 0 2px color-mix(in srgb,var(--c) 45%,transparent)}.hc-num{font-size:9.5px;letter-spacing:.16em;color:var(--muted)}.hc-name{font-family:var(--font-display);font-size:14px;color:var(--c)}.hc-title{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.bestiary{display:grid;gap:4px;background:#04071080;border:1px solid var(--border);border-radius:11px;padding:9px 11px}.bestiary-row{display:flex;align-items:center;gap:10px;font-size:13px}.bp-power{font-family:var(--font-display);font-weight:800;min-width:30px}.bp-name{flex:1}.sticky-actions{position:sticky;bottom:0;padding-top:6px}.creator-preview{padding:18px;text-align:center;position:sticky;top:0}.creator-preview canvas{width:100%;max-width:280px;aspect-ratio:3 / 4;border-radius:12px;background:radial-gradient(circle at 50% 62%,#7864dc4d,#050710e6);border:1px solid var(--border)}.creator-body{padding:20px;display:grid;gap:18px}.section-title{font-family:var(--font-display);font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin:0 0 10px;display:flex;align-items:center;gap:10px}.section-title:after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--border-strong),transparent)}.swatches{display:flex;flex-wrap:wrap;gap:8px}.swatch{width:34px;height:34px;border-radius:9px;border:2px solid rgba(255,255,255,.12);cursor:pointer;transition:.15s;padding:0}.swatch:hover{transform:scale(1.08)}.swatch.active{border-color:#fff;box-shadow:0 0 0 3px #5fe8ff59}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:8px 14px;border-radius:999px;border:1px solid var(--border);background:#060a1699;color:var(--muted);font-weight:600;font-size:13px;cursor:pointer;transition:.16s}.chip.active{color:#fff;border-color:var(--border-strong);background:linear-gradient(135deg,#9b7bff59,#5fe8ff33)}.class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px}.class-card{text-align:left;padding:12px;border-radius:12px;border:1px solid var(--border);background:#060a169e;cursor:pointer;transition:.16s;color:var(--text)}.class-card:hover{transform:translateY(-2px)}.class-card.active{border-color:var(--c, var(--cyan));box-shadow:0 0 0 2px color-mix(in srgb,var(--c, #5fe8ff) 40%,transparent),0 10px 24px #0006;background:#141c36cc}.class-card h4{margin:0 0 2px;font-family:var(--font-display);font-size:15px;letter-spacing:.06em;color:var(--c, #fff)}.class-card .role{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.class-card p{margin:7px 0 0;font-size:12px;color:var(--muted);line-height:1.42}.statline{display:flex;gap:8px;margin-top:8px;flex-wrap:wrap;font-size:11px;color:var(--muted)}.statline span b{color:var(--text)}.game-root{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;background:#05060d;touch-action:none}.game-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}.hud{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.hud>*{pointer-events:auto}.hud-topleft{position:absolute;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));display:flex;gap:10px;align-items:flex-start}.player-card{display:flex;gap:10px;align-items:center;padding:9px 13px 9px 9px;border-radius:13px;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);min-width:196px}.avatar-ring{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;font-family:var(--font-display);font-size:17px;color:#06080f;font-weight:800;flex-shrink:0}.player-card .name{font-weight:700;font-size:14.5px;line-height:1.1;display:flex;align-items:center;gap:6px}.player-card .lvl{font-size:10px;padding:2px 6px;border-radius:6px;background:#ffd4792e;color:var(--gold);font-weight:800;letter-spacing:.06em}.bars{display:grid;gap:3px;margin-top:4px}.bar{height:6px;width:130px;border-radius:4px;background:#00000080;overflow:hidden;border:1px solid rgba(255,255,255,.07)}.bar>i{display:block;height:100%;border-radius:3px}.bar.hp>i{background:linear-gradient(90deg,#ff5f6d,#ff9a6b)}.bar.mp>i{background:linear-gradient(90deg,#4facfe,#63f5d4)}.bar.xp>i{background:linear-gradient(90deg,#f6d365,#fda085)}.hud-topright{position:absolute;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:8px;align-items:flex-end}.pill-row{display:flex;gap:8px}.pill{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;border-radius:999px;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13px;font-weight:600}.dot{width:8px;height:8px;border-radius:50%;background:var(--success);box-shadow:0 0 10px var(--success)}.dot.off{background:var(--danger);box-shadow:0 0 10px var(--danger)}.dot.wait{background:var(--gold);box-shadow:0 0 10px var(--gold)}.icon-btn{width:42px;height:42px;border-radius:12px;background:var(--panel);border:1px solid var(--border);color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:18px;cursor:pointer;display:grid;place-items:center;transition:.16s}.icon-btn:hover{border-color:var(--border-strong);background:#28325acc}.icon-btn.on{background:linear-gradient(135deg,#9b7bff80,#5fe8ff52)}.net-error{width:230px;padding:11px 13px;border-radius:12px;background:#3c0c18d1;border:1px solid rgba(255,107,127,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);display:grid;gap:7px;font-size:12.5px;line-height:1.4}.net-error b{color:#ffc4cd;font-size:13px}.net-error span{color:#f3c7cf;word-break:break-word}.roster{width:210px;max-height:44vh;overflow-y:auto;padding:10px;border-radius:13px;background:var(--panel);border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.roster h5{margin:0 0 8px;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.roster-row{display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:8px;font-size:13px}.roster-row.self{background:#56e39f24}.roster-row .rlvl{color:var(--gold);font-weight:800;font-size:11px;min-width:22px}.roster-row .rname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.roster-row .rclass{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.minimap{width:148px;height:111px;border-radius:12px;border:1px solid var(--border);background:#080c1acc;position:relative;overflow:hidden;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.minimap canvas{width:100%;height:100%;display:block}.chat{position:absolute;left:max(12px,env(safe-area-inset-left));bottom:max(12px,env(safe-area-inset-bottom));width:min(360px,62vw);display:flex;flex-direction:column;gap:8px}.chat-log{max-height:30vh;overflow-y:auto;display:flex;flex-direction:column;gap:5px;padding:10px;border-radius:12px;background:#080b1899;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);scrollbar-width:thin}.chat-log.collapsed{display:none}.chat-line{font-size:13.5px;line-height:1.4;word-break:break-word}.chat-line .who{font-weight:800;color:var(--cyan)}.chat-line.self .who{color:var(--success)}.chat-line.system{color:var(--gold);font-style:italic;font-size:12.5px}.chat-input{display:flex;gap:7px}.chat-input input{flex:1;padding:10px 13px;border-radius:11px;border:1px solid var(--border);background:#060914d9;color:var(--text);font-family:inherit;font-size:15px;outline:none}.chat-input input:focus{border-color:var(--cyan)}.chat-input button{padding:0 15px;border-radius:11px;border:1px solid var(--border-strong);background:linear-gradient(135deg,#6b4bd6,#2f7fd6);color:#fff;font-weight:700;cursor:pointer}.joystick{position:absolute;left:max(20px,env(safe-area-inset-left));bottom:calc(24px + env(safe-area-inset-bottom));width:132px;height:132px;border-radius:50%;background:radial-gradient(circle,#1e285080,#080c1a9e);border:2px solid rgba(150,180,255,.26);touch-action:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.joystick .knob{position:absolute;width:56px;height:56px;left:50%;top:50%;margin:-28px 0 0 -28px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#b6c8ff,#5a6bd8 60%,#3a3f8f);border:2px solid rgba(220,235,255,.55);box-shadow:0 6px 18px #00000080;pointer-events:none}.action-stack{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:calc(24px + env(safe-area-inset-bottom));display:grid;gap:12px;justify-items:end}.action-btn{width:74px;height:74px;border-radius:50%;border:2px solid rgba(150,180,255,.36);background:radial-gradient(circle at 34% 28%,#9b7bffd9,#322882e6);color:#fff;font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;box-shadow:0 8px 24px #00000080;display:grid;place-items:center;line-height:1.1;padding:4px}.action-btn:active{transform:scale(.94)}.action-btn.small{width:58px;height:58px;font-size:11px;background:radial-gradient(circle at 34% 28%,#5fe8ffb3,#14466ee6)}.action-btn:disabled{opacity:.4}.portal-prompt{position:absolute;left:50%;bottom:calc(120px + env(safe-area-inset-bottom));transform:translate(-50%);padding:12px 20px;border-radius:14px;background:#080b18db;border:1px solid var(--border-strong);text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rise .22s ease-out;max-width:min(420px,88vw)}@keyframes rise{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.portal-prompt .pname{font-family:var(--font-display);font-size:17px;letter-spacing:.08em}.portal-prompt .pep{font-size:12.5px;color:var(--muted);margin-top:2px}.portal-prompt .pkey{font-size:12px;margin-top:7px;color:var(--cyan);font-weight:700}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#03040cb8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px}.modal{width:100%;max-width:460px;padding:22px;animation:pop .2s ease-out}@keyframes pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.modal h3{margin:0;font-family:var(--font-display);font-size:22px;letter-spacing:.06em}.modal .sub{color:var(--muted);font-size:13.5px;margin:4px 0 16px}.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:13.5px;margin-bottom:16px}.kv dt{color:var(--muted)}.kv dd{margin:0;font-weight:700}.row{display:flex;gap:10px}.boot{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:5}.spinner{width:54px;height:54px;border-radius:50%;border:3px solid rgba(155,180,255,.18);border-top-color:var(--cyan);animation:spin .9s linear infinite;margin:0 auto 14px}@keyframes spin{to{transform:rotate(360deg)}}.card{position:relative;display:grid;grid-template-rows:auto 1fr auto;gap:3px;padding:6px 7px;border-radius:10px;border:1px solid color-mix(in srgb,var(--card-color) 45%,transparent);background:linear-gradient(160deg,#141a30f5,#090c18fa);color:var(--text);cursor:pointer;text-align:left;overflow:hidden;flex-shrink:0;transition:transform .14s,box-shadow .14s,border-color .14s;box-shadow:inset 0 0 24px color-mix(in srgb,var(--card-color) 12%,transparent)}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 0%,color-mix(in srgb,var(--card-color) 26%,transparent),transparent 62%);pointer-events:none}.card-sm{width:78px;min-height:104px;font-size:10px}.card-md{width:118px;min-height:168px;font-size:11px}.card-lg{width:156px;min-height:220px;font-size:12px}.card:hover{transform:translateY(-3px)}.card.is-selected{border-color:var(--gold);box-shadow:0 0 0 2px #ffd47999,0 10px 26px #0000008c;transform:translateY(-5px)}.card.is-targetable{border-color:#ff8a9c;animation:pulseTarget 1.1s ease-in-out infinite}.card.is-dimmed{opacity:.45}@keyframes pulseTarget{0%,to{box-shadow:0 0 #ff6b7f8c}50%{box-shadow:0 0 0 6px #ff6b7f00}}.card-head{display:flex;align-items:flex-start;gap:4px;justify-content:space-between}.card-name{font-family:var(--font-display);font-weight:600;line-height:1.1;font-size:1.02em;color:#f2f6ff}.card-power{font-family:var(--font-display);font-weight:800;font-size:1.35em;color:var(--card-color);line-height:1;flex-shrink:0}.card-power.up{color:#7dffa8}.card-power.down{color:#ff8a9c}.card-art{position:relative;display:grid;place-items:center;min-height:34px}.sigil{width:78%;max-width:88px;opacity:.9}.card-flag{position:absolute;bottom:0;left:0;font-size:8.5px;padding:1px 5px;border-radius:5px;letter-spacing:.04em;text-transform:uppercase;font-weight:700}.card-flag.burn{background:#ff6b3de6;color:#2b0d04}.card-flag.shield{background:#5fe8ffd9;color:#04202b;right:0;left:auto}.card-flag.hidden{background:#9b7bffe6;color:#120a2b;top:0;bottom:auto}.card-foot{display:flex;align-items:center;justify-content:space-between;gap:4px}.card-origin{font-size:.82em;color:var(--muted);letter-spacing:.03em}.card-tag{font-size:.72em;padding:1px 5px;border-radius:5px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}.card-tag.activa{background:#ffd47933;color:var(--gold)}.card-tag.pasiva{background:#5fe8ff2e;color:var(--cyan)}.card-text{margin:0;font-size:.86em;line-height:1.32;color:#b9c5e4;max-height:4.4em;overflow:hidden}.card-back{background:repeating-linear-gradient(45deg,#1a1f3a,#1a1f3a 6px,#151933 6px,#151933 12px);border-color:#96b4ff4d;display:grid;place-items:center}.card-back-mark{font-family:var(--font-display);font-size:20px;color:#b4c8ff66;letter-spacing:.1em}.battle{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;overflow:hidden;background:#05060d}.battle-inner{height:100%;width:100%;max-width:780px;margin:0 auto;display:flex;flex-direction:column;gap:5px;padding:max(8px,env(safe-area-inset-top)) 8px calc(8px + env(safe-area-inset-bottom))}.battle-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(900px 500px at 50% -10%,rgba(120,40,160,.3),transparent 65%),radial-gradient(900px 500px at 50% 110%,rgba(30,90,160,.28),transparent 65%),linear-gradient(180deg,#0b0716,#070a17 50%,#05060d)}.side-bar{display:flex;align-items:center;gap:10px;flex-shrink:0}.side-name{font-family:var(--font-display);font-size:13.5px;letter-spacing:.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34%;flex-shrink:0}.life-bar{position:relative;flex:1;min-width:0;height:17px;border-radius:9px;background:#0000008c;border:1px solid var(--border);overflow:hidden}.life-bar>i{display:block;height:100%;background:linear-gradient(90deg,#ff5f6d,#ff9a6b);transition:width .35s ease}.life-bar.mine>i{background:linear-gradient(90deg,#35d68a,#7ef0c0)}.life-bar>span{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:11px;font-weight:800;letter-spacing:.06em;text-shadow:0 1px 2px rgba(0,0,0,.8)}.side-counters{display:flex;gap:8px;font-size:10px;color:var(--muted);flex-shrink:0;white-space:nowrap}.spell-row,.field-row{display:flex;gap:5px;justify-content:center;flex-shrink:0;overflow-x:auto;scrollbar-width:none;padding:1px}.spell-row::-webkit-scrollbar,.field-row::-webkit-scrollbar{display:none}.slot{width:78px;min-height:104px;border-radius:10px;border:1px dashed rgba(140,165,230,.22);flex-shrink:0;display:grid;place-items:center}.slot.spell{width:52px;min-height:68px}.slot.spell .card-sm{width:50px;min-height:66px;font-size:8.5px}.slot.spell .card-text{display:none}.battle-center{position:relative;flex:1;min-height:76px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.turn-pill{padding:5px 16px;border-radius:999px;font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border)}.turn-pill.mine{background:#35d68a2e;color:#8affc4;border-color:#35d68a80}.turn-pill.theirs{background:#ff6b7f26;color:#ffb3bf;border-color:#ff6b7f73}.turn-pill.win{background:#ffd4792e;color:var(--gold)}.hint-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;padding:7px 12px;border-radius:11px;background:#0a0e1ed9;border:1px solid var(--border-strong);font-size:12.5px}.battle-notice{padding:7px 14px;border-radius:10px;background:#ffd47924;border:1px solid rgba(255,212,121,.4);color:#ffe1a3;font-size:12.5px;max-width:min(440px,92vw);text-align:center;animation:rise .2s ease-out}.log-toggle{background:none;border:0;color:var(--muted);font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;font-family:inherit}.battle-log{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;width:min(560px,94vw);max-height:min(46vh,320px);overflow-y:auto;padding:10px 12px;border-radius:12px;background:#060914f5;border:1px solid var(--border-strong);box-shadow:0 18px 44px #0009;display:grid;gap:3px;font-size:12px;line-height:1.4}.log-line.p1{color:#9dffcf}.log-line.p2{color:#ffb3bf}.log-line.sys{color:var(--gold);font-style:italic}.inline-actions{display:flex;justify-content:center;gap:8px;flex-shrink:0}.hand-strip{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:4px 2px 6px;flex-shrink:0;scrollbar-width:thin;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hand-strip .card{scroll-snap-align:center}.hand-strip:after{content:"";flex:0 0 1px}.hand-empty{color:var(--muted);font-size:12.5px;padding:20px 8px}.hand-actions,.battle-actions{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;flex-shrink:0}.card-grid{display:flex;flex-wrap:wrap;gap:7px;max-height:46vh;overflow-y:auto;margin-bottom:14px}.modal.wide{max-width:620px}.relic-list{display:grid;gap:9px;margin-bottom:16px}.relic{display:flex;gap:12px;align-items:center;padding:11px 13px;border-radius:12px;border:1px solid var(--border);background:#060a1699}.relic.maxed{opacity:.6}.relic-main{flex:1;min-width:0}.relic-name{font-family:var(--font-display);font-size:15px;color:var(--gold)}.relic-seller{font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}.relic-text{margin:5px 0 0;font-size:12.5px;color:#bcc8e8;line-height:1.4}.relic-buy{display:grid;gap:5px;justify-items:center;flex-shrink:0}.relic-owned{font-size:11px;color:var(--muted)}.travel-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:7px;max-height:48vh;overflow-y:auto;margin-bottom:14px}.travel-card{display:grid;gap:1px;padding:9px 6px;border-radius:10px;border:1px solid var(--border);background:#060a1699;color:var(--text);cursor:pointer;transition:.15s;opacity:.55}.travel-card.open{opacity:1;border-color:color-mix(in srgb,var(--c) 55%,transparent)}.travel-card:hover{transform:translateY(-2px);background:#161e3ad9}.tc-num{font-size:9.5px;letter-spacing:.16em;color:var(--muted)}.tc-name{font-family:var(--font-display);font-size:13.5px;color:var(--c)}.tc-state{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.pc-body{min-width:0}.pc-house{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;margin-top:1px}.coins{font-size:11.5px;color:var(--gold);margin-top:3px;font-weight:700}.toast{position:absolute;left:50%;top:max(14px,env(safe-area-inset-top));transform:translate(-50%);padding:10px 18px;border-radius:12px;background:#0a0e1eeb;border:1px solid var(--border-strong);font-size:13px;max-width:min(420px,90vw);text-align:center;animation:rise .22s ease-out;z-index:6}.game-canvas.hidden{display:none}@media (max-width: 900px){.auth-layout{grid-template-columns:1fr;gap:18px;max-width:460px}.auth-logo{width:min(230px,58vw)}.auth-lore{display:none}.auth-stats{gap:22px;margin-top:14px}.auth-stats b{font-size:21px}}@media (max-width: 860px){.creator{grid-template-columns:1fr;max-width:520px}.creator-preview{position:static}.creator-preview canvas{max-width:190px}.roster{width:168px;max-height:28vh}.minimap{width:104px;height:78px}.player-card{min-width:0;padding:6px 10px 6px 6px}.avatar-ring{width:36px;height:36px;font-size:15px}.player-card .name{font-size:13px}.bar{width:88px}.chat{width:min(280px,62vw);bottom:calc(160px + env(safe-area-inset-bottom))}.chat-log{max-height:20vh}.hud-topleft{flex-direction:column;gap:7px}.slot{width:64px;min-height:86px}.card-sm{width:64px;min-height:86px;font-size:9px}.card-md{width:104px;min-height:142px;font-size:10.5px}.slot.spell{width:44px;min-height:58px}.slot.spell .card-sm{width:42px;min-height:56px;font-size:7.5px}.card-md .card-text{max-height:3.4em}.side-name{font-size:12px}.battle-log{font-size:11px}}@media (max-width: 480px){.chat{width:68vw}.joystick{width:112px;height:112px}.action-btn{width:62px;height:62px;font-size:11px}.action-btn.small{width:50px;height:50px;font-size:10px}.icon-btn{width:38px;height:38px;font-size:16px}.modal{padding:16px}.house-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}.relic{flex-direction:column;align-items:stretch}.relic-buy{justify-items:stretch}.card-md{width:98px;min-height:132px}.card-md .card-text{display:none}}@media (max-height: 760px){.card-md{min-height:124px}.card-md .card-text{display:none}.slot,.card-sm{min-height:96px}.slot.spell,.slot.spell .card-sm{min-height:54px}.battle-center{min-height:62px}}@media (max-height: 620px){.battle-inner{gap:3px;padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom))}.card-md{min-height:104px;width:92px}.slot,.card-sm{min-height:78px;width:62px}.slot.spell,.slot.spell .card-sm{min-height:48px;width:40px}.card-sm .card-foot{display:none}.battle-center{min-height:44px}.hand-strip{padding:2px 2px 3px}.side-counters{display:none}}.rotate-hint{display:none}@media (max-height: 520px) and (orientation: landscape){.rotate-hint{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-content:center;gap:10px;text-align:center;padding:24px;background:#05060df7}.rotate-hint b{font-family:var(--font-display);font-size:20px;color:var(--gold);letter-spacing:.06em}.rotate-hint span{color:var(--muted);font-size:13px;max-width:320px}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#8ca5e64d;border-radius:8px}
