@import url("https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;700;800;900&display=swap");:root{--bg-dark:#09090d;--bg-card:rgba(18,18,24,.75);--bg-card-hover:rgba(28,28,38,.85);--border-color:hsla(0,0%,100%,.08);--border-color-glow:rgba(59,130,246,.4);--text-main:#f3f4f6;--text-muted:#9ca3af;--text-subtle:#6b7280;--accent-red:#ef4444;--accent-red-glow:rgba(239,68,68,.3);--accent-green:#10b981;--accent-green-glow:rgba(16,185,129,.3);--accent-blue:#3b82f6;--accent-blue-glow:rgba(59,130,246,.3);--accent-purple:#8b5cf6;--accent-purple-glow:rgba(139,92,246,.3);--accent-pink:#ec4899;--accent-gold:#f59e0b;--accent-gold-glow:rgba(245,158,11,.35);--font-family:"Outfit",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--bottom-nav-height:64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body,html{background-color:var(--bg-dark);color:var(--text-main);font-family:var(--font-family);margin:0;padding:0;overflow-x:hidden;min-height:100vh}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:rgba(9,9,13,.8)}::-webkit-scrollbar-thumb{background:hsla(0,0%,100%,.15);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,100%,.3)}.glass-card{background:var(--bg-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-color);border-radius:16px;transition:all .25s cubic-bezier(.4,0,.2,1)}.glass-card:hover{border-color:hsla(0,0%,100%,.18);box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}.glass-card-active{background:rgba(28,28,40,.9);border:1.5px solid var(--accent-blue);box-shadow:0 0 20px var(--accent-blue-glow)}@keyframes pulseGlow{0%{box-shadow:0 0 5px var(--accent-blue-glow)}50%{box-shadow:0 0 20px var(--accent-blue-glow),0 0 10px var(--accent-purple-glow)}to{box-shadow:0 0 5px var(--accent-blue-glow)}}.pulse-active{animation:pulseGlow 2.5s ease-in-out infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.text-gradient-gold{background:linear-gradient(135deg,#fbbf24,#f59e0b 50%,#d97706);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.text-gradient-epic{background:linear-gradient(135deg,#c084fc,#a855f7);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.text-gradient-legendary{background:linear-gradient(135deg,#ffe259,#ffa751);-webkit-background-clip:text;-webkit-text-fill-color:transparent}@keyframes redPulse{0%{box-shadow:inset 0 0 15px rgba(239,68,68,.2)}50%{box-shadow:inset 0 0 50px rgba(239,68,68,.6)}to{box-shadow:inset 0 0 15px rgba(239,68,68,.2)}}.warning-pulse{animation:redPulse 1.2s ease-in-out infinite}@keyframes screenShake{0%{transform:translate(0)}20%{transform:translate(-4px,4px)}40%{transform:translate(4px,-4px)}60%{transform:translate(-3px,-2px)}80%{transform:translate(3px,2px)}to{transform:translate(0)}}.shake-active{animation:screenShake .25s ease-in-out}.battle-layout-grid{display:grid;grid-template-columns:1fr;grid-gap:1rem;gap:1rem;width:100%;margin-top:1rem}@media (min-width:900px){.battle-layout-grid{grid-template-columns:1fr 340px;gap:1.25rem}}.battle-canvas-container{position:relative;width:100%;max-height:520px;background:radial-gradient(circle at center,#1a1a24 0,#09090d 100%);border:1px solid var(--border-color);border-radius:16px;overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.6)}.battle-canvas-container canvas{width:100%!important;height:100%!important;display:block}@media (max-width:767px){.desktop-only{display:none!important}.mobile-padded{padding-bottom:calc(var(--bottom-nav-height) + 24px)!important}}@media (min-width:768px){.mobile-only{display:none!important}}.battle-hud{--hud-ink:#f6f7fb;--hud-muted:#91a0ad;--hud-panel:rgba(10,18,31,.92);--hud-panel-soft:rgba(17,28,45,.84);--hud-line:rgba(147,175,199,.18);width:100%;margin-top:1rem;color:var(--hud-ink)}.boss-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--hud-line);border-radius:18px;background:linear-gradient(135deg,rgba(17,35,58,.96),rgba(9,16,28,.96));box-shadow:0 14px 35px rgba(1,7,16,.35)}.boss-header-copy{min-width:0;flex:1 1}.boss-eyebrow{display:block;color:#7bd9e7;font-size:10px;font-weight:800;letter-spacing:.14em}.boss-header h3{margin:.25rem 0 .75rem;font-size:clamp(1rem,2.5vw,1.45rem);line-height:1.1}.boss-header-stats{display:flex;flex-direction:column;align-items:flex-end;gap:.35rem;min-width:88px}.boss-header-stats strong{color:#ffd36e;font-size:1.2rem}.boss-cast{color:#ff9e71;font-size:10px;font-weight:800;letter-spacing:.06em;text-align:right}.boss-hp-track,.raid-member-hp-track{overflow:hidden;border-radius:999px;background:rgba(0,0,0,.46)}.boss-hp-track{height:10px;border:1px solid rgba(255,211,110,.25)}.boss-hp-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#f0a94b,#ff6b50);box-shadow:0 0 14px rgba(255,126,72,.5);transition:width .2s ease}.mechanic-timeline{display:flex;gap:.5rem;margin:.65rem 0;overflow-x:auto;scrollbar-width:none}.mechanic-timeline::-webkit-scrollbar{display:none}.mechanic-chip{display:inline-flex;align-items:center;gap:.55rem;flex:0 0 auto;min-height:32px;padding:.35rem .65rem;border:1px solid rgba(123,217,231,.22);border-radius:10px;background:rgba(18,46,63,.72);color:#c8d5df;font-size:11px;font-weight:700}.mechanic-chip strong{color:#7bd9e7}.mechanic-chip.critical{border-color:rgba(255,126,72,.4);background:rgba(91,37,32,.72)}.mechanic-chip.critical strong{color:#ffae77}.battle-hud-main{display:grid;grid-template-columns:minmax(190px,230px) minmax(0,1fr) minmax(190px,230px);grid-gap:.75rem;gap:.75rem;align-items:stretch}.raid-rail{display:flex;flex-direction:column;justify-content:center;gap:.55rem;min-width:0}.raid-member-card{--role-color:#b6c1cc;display:flex;align-items:center;gap:.55rem;min-height:56px;padding:.45rem;border:1px solid color-mix(in srgb,var(--role-color) 34%,transparent);border-radius:13px;background:linear-gradient(135deg,rgba(20,34,51,.96),rgba(11,20,33,.96));box-shadow:inset 3px 0 0 var(--role-color)}.raid-member-card.is-active{border-color:var(--role-color);box-shadow:inset 3px 0 0 var(--role-color),0 0 18px color-mix(in srgb,var(--role-color) 25%,transparent);transform:translateY(-1px)}.raid-member-card.is-dead{opacity:.5;filter:grayscale(.8)}.raid-member-portrait{width:42px;height:42px;flex:0 0 auto;border-radius:10px;object-fit:cover;border:1px solid color-mix(in srgb,var(--role-color) 72%,#fff)}.raid-member-copy{min-width:0;flex:1 1}.raid-member-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem;min-width:0}.raid-member-heading strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.raid-member-heading span{flex:0 0 auto;color:var(--role-color);font-size:8px;font-weight:900;letter-spacing:.08em}.raid-tag-row{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.18rem}.raid-tag-row-centered{justify-content:center;margin-top:.35rem}.raid-tag-chip{display:inline-flex;align-items:center;min-height:14px;padding:.1rem .28rem;border:1px solid color-mix(in srgb,var(--role-color,#7bd9e7) 45%,transparent);border-radius:999px;background:color-mix(in srgb,var(--role-color,#7bd9e7) 12%,transparent);color:var(--role-color,#7bd9e7);font-size:7px;font-weight:900;line-height:1;letter-spacing:.03em;text-transform:uppercase}.raid-member-hp-track{height:5px;margin-top:.35rem}.raid-member-hp-track span{display:block;height:100%;border-radius:inherit;background:var(--role-color);transition:width .2s ease}.raid-member-state{flex:0 0 auto;color:#b9c7d0;font-size:9px;font-weight:800}.raid-member-card.is-dead .raid-member-state{color:#ff8478}.battle-stage-shell{position:relative;min-width:0}.battle-stage-shell>.battle-canvas-container{margin:0}.battle-canvas-container{aspect-ratio:4/3;max-height:560px;border:1px solid var(--hud-line);border-radius:18px;background:radial-gradient(circle at 50% 50%,#172a3b 0,#09111d 70%);box-shadow:0 18px 40px rgba(0,0,0,.45)}.battle-canvas-container canvas{image-rendering:auto}.battle-warning{position:absolute;top:1rem;left:50%;z-index:12;display:flex;align-items:center;gap:.7rem;min-width:min(82%,420px);padding:.8rem 1rem;transform:translateX(-50%);border:1px solid rgba(255,211,110,.7);border-radius:14px;background:rgba(20,31,47,.96);box-shadow:0 14px 30px rgba(1,5,10,.45);pointer-events:none}.battle-warning-active{min-height:74px}.battle-warning-preview{opacity:.92}.battle-warning-critical{border-color:rgba(255,126,72,.8);background:linear-gradient(135deg,rgba(105,39,34,.97),rgba(38,25,34,.97))}.battle-warning-success{border-color:rgba(96,215,173,.8);background:rgba(18,67,57,.96)}.battle-warning-mark{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto;border-radius:9px;background:#ff9e71;color:#231618;font-size:17px;font-weight:900}.battle-warning>div{display:flex;flex-direction:column;gap:.18rem;min-width:0}.battle-warning strong{font-size:14px;line-height:1.1}.battle-warning span:not(.battle-warning-mark){color:#ffd6bf;font-size:11px;font-weight:700}.battle-warning>b{margin-left:auto;color:#ffd36e;font-size:18px;white-space:nowrap}.raid-dock{display:none}.battle-hud-bottom{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.75rem}.combat-log-toggle{min-height:42px;padding:.65rem .85rem;border:1px solid var(--hud-line);border-radius:11px;background:rgba(17,28,45,.88);color:#c2d0da;cursor:pointer;font-size:11px;font-weight:800}.combat-log-toggle span{display:inline-grid;place-items:center;min-width:22px;height:18px;margin-left:.3rem;border-radius:999px;background:rgba(123,217,231,.16);color:#7bd9e7}.combat-log-toggle.is-open{border-color:rgba(123,217,231,.6);color:#fff}.combat-log-panel{max-height:170px;margin-top:.65rem;overflow-y:auto;padding:.8rem;border:1px solid var(--hud-line);border-radius:13px;background:rgba(5,10,18,.92);color:#becbd4;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;line-height:1.65}.replay-controls{display:grid;grid-template-columns:auto minmax(120px,1fr) auto;align-items:center;grid-gap:.65rem;gap:.65rem;flex:1 1;min-width:0}.replay-progress-copy{display:flex;align-items:center;gap:.45rem;color:var(--hud-muted);font-size:10px;font-weight:800;white-space:nowrap}.replay-progress-copy strong{color:#ffd36e}.replay-progress-track{height:6px;overflow:hidden;border-radius:999px;background:rgba(0,0,0,.45)}.replay-progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#7bd9e7,#ffd36e);transition:width .15s ease}.replay-control-row{display:flex;align-items:center;gap:.4rem}.replay-button,.replay-speed{min-height:42px;border:1px solid var(--hud-line);border-radius:10px;background:rgba(17,28,45,.88);color:#c2d0da;cursor:pointer;font-size:10px;font-weight:900}.replay-button{padding:.55rem .8rem}.replay-button-primary{border-color:rgba(123,217,231,.55);color:#7bd9e7}.replay-speed-group{display:flex;gap:.25rem}.replay-speed{min-width:38px;padding:.45rem .55rem}.replay-speed.is-active{border-color:#ffd36e;background:rgba(255,211,110,.14);color:#ffd36e}@media (max-width:767px){.battle-hud{padding-bottom:env(safe-area-inset-bottom)}.boss-header{align-items:center;padding:.8rem;border-radius:15px}.boss-eyebrow{font-size:8px}.boss-header h3{margin-bottom:.55rem;font-size:1rem}.boss-hp-track{height:8px}.boss-header-stats{min-width:62px}.boss-header-stats strong{font-size:1rem}.boss-cast{max-width:90px;font-size:8px}.mechanic-timeline{margin:.5rem 0}.mechanic-chip{min-height:30px;font-size:10px}.battle-hud-main{display:block}.raid-rail{display:none}.battle-canvas-container{border-radius:14px}.battle-warning{top:.65rem;min-width:calc(100% - 1.4rem);padding:.7rem .8rem;border-radius:12px}.battle-warning-active{min-height:62px}.battle-warning strong{font-size:13px}.battle-warning>b{font-size:16px}.raid-dock{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-gap:.35rem;gap:.35rem;margin-top:.55rem;padding:.45rem;border:1px solid var(--hud-line);border-radius:14px;background:rgba(9,18,30,.9)}.raid-dock .raid-member-card{display:block;min-height:82px;padding:.3rem;border-radius:9px;box-shadow:inset 0 2px 0 var(--role-color);text-align:center}.raid-dock .raid-member-portrait{width:34px;height:34px;border-radius:8px}.raid-dock .raid-member-copy{display:block}.raid-dock .raid-member-heading{display:block;margin-top:.15rem}.raid-dock .raid-member-heading strong{display:block;overflow:hidden;font-size:8px;text-overflow:ellipsis;white-space:nowrap}.raid-dock .raid-member-heading span{display:block;margin-top:.12rem;overflow:hidden;font-size:7px;text-overflow:ellipsis;white-space:nowrap}.raid-dock .raid-tag-row{justify-content:center;min-height:14px;margin-top:.12rem}.raid-dock .raid-tag-chip{font-size:6px}.raid-dock .raid-member-hp-track{height:4px;margin-top:.2rem}.raid-dock .raid-member-state{display:block;margin-top:.15rem;font-size:8px}.battle-hud-bottom{align-items:stretch;flex-direction:column}.battle-hud-bottom>*{width:100%}.replay-controls{grid-template-columns:1fr;gap:.5rem}.replay-control-row,.replay-progress-copy{justify-content:space-between}.replay-button,.replay-speed{min-height:44px}}