:root{--s-xs: 4px;--s-sm: 8px;--s-md: 16px;--s-lg: 24px;--s-xl: 32px;--s-2xl: 48px;--s-3xl: 64px;--fs-xs: .75rem;--fs-sm: .875rem;--fs-md: 1rem;--fs-lg: 1.25rem;--fs-xl: 1.5625rem;--fs-2xl: 1.9375rem;--fs-3xl: 2.4375rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.2;--lh-normal: 1.5;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-pill: 999px;--dur-fast: .12s;--dur-base: .2s;--dur-slow: .32s;--ease-standard: cubic-bezier(.2, 0, 0, 1);--ease-emphasized: cubic-bezier(.2, 0, 0, 1.2);--z-sticky: 10;--z-overlay: 100;--z-tooltip: 200;--font-sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: ui-monospace, "SF Mono", "JetBrains Mono", "Cascadia Code", Menlo, Consolas, monospace;--maxw-content: 1200px;--header-h: 56px}:root,:root[data-theme=dark]{color-scheme:dark;--bg: #0b1020;--bg-elev-1: #141a2e;--bg-elev-2: #1c2440;--bg-inset: #090d1a;--surface-hover: #222c4d;--text: #eef2fb;--text-muted: #aeb8d4;--text-faint: #7d88a6;--border: #2a3556;--border-strong: #3a4670;--focus-ring: #8fb0ff;--color-brand: #5b8cff;--color-brand-strong: #7aa2ff;--on-brand: #081020;--color-accent: #2ee6cf;--on-accent: #042522;--color-success: #46d486;--color-success-bg: #10301f;--color-warning: #f0b54e;--color-warning-bg: #332512;--color-danger: #ff6166;--color-danger-bg: #361417;--color-info: #7aa2ff;--color-info-bg: #14224a;--state-idle: #aab4c8;--state-working: #5db4ff;--state-alert: #f0b54e;--state-quarantined: #ff7a7a;--state-killed: #7a7a7a;--shadow-1: 0 1px 2px rgba(0, 0, 0, .4);--shadow-2: 0 4px 16px rgba(0, 0, 0, .45);--shadow-3: 0 12px 40px rgba(0, 0, 0, .55);--scene-bg-top: #0a1330;--scene-bg-bottom: #060a18}:root[data-theme=light]{color-scheme:light;--bg: #f6f8fe;--bg-elev-1: #ffffff;--bg-elev-2: #ffffff;--bg-inset: #eef1fa;--surface-hover: #eaeefb;--text: #14192b;--text-muted: #4a5673;--text-faint: #6b7691;--border: #d6ddf0;--border-strong: #b9c3e0;--focus-ring: #2f5fe0;--color-brand: #2f5fe0;--color-brand-strong: #2348bd;--on-brand: #ffffff;--color-accent: #0a8f82;--on-accent: #ffffff;--color-success: #138a52;--color-success-bg: #e3f6ec;--color-warning: #9a6512;--color-warning-bg: #fcf1dc;--color-danger: #c4282d;--color-danger-bg: #fbe6e7;--color-info: #2f5fe0;--color-info-bg: #e7eefc;--state-idle: #5d6883;--state-working: #1f74c9;--state-alert: #9a6512;--state-quarantined: #c4282d;--state-killed: #6b7691;--shadow-1: 0 1px 2px rgba(20, 30, 60, .08);--shadow-2: 0 4px 16px rgba(20, 30, 60, .1);--shadow-3: 0 12px 40px rgba(20, 30, 60, .14);--scene-bg-top: #dde6fb;--scene-bg-bottom: #c7d4f4}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-normal);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0 0 var(--s-sm);line-height:var(--lh-tight);font-weight:var(--fw-semibold)}h1{font-size:var(--fs-2xl)}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}p{margin:0 0 var(--s-md)}a{color:var(--color-brand);text-decoration:none}a:hover{text-decoration:underline}.mono{font-family:var(--font-mono);font-size:.92em}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}:where(a,button,[role=button],[role=tab],input,select,summary,[tabindex]):focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.skip-link{position:absolute;left:var(--s-sm);top:-100px;z-index:var(--z-tooltip);background:var(--color-brand);color:var(--on-brand);padding:var(--s-sm) var(--s-md);border-radius:var(--radius-sm);transition:top var(--dur-fast) var(--ease-standard)}.skip-link:focus{top:var(--s-sm)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app-shell{min-height:100%;display:flex;flex-direction:column}.app-header{position:sticky;top:0;z-index:var(--z-sticky);display:flex;align-items:center;gap:var(--s-md);height:var(--header-h);padding:0 var(--s-lg);background:color-mix(in srgb,var(--bg-elev-1) 88%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(8px);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--border)}.brand-lockup{display:inline-flex;align-items:center;gap:var(--s-sm);font-weight:var(--fw-bold);letter-spacing:.02em}.brand-lockup .brand-dot{width:18px;height:18px;border-radius:var(--radius-pill);background:radial-gradient(circle at 30% 30%,var(--color-accent),var(--color-brand));box-shadow:0 0 12px color-mix(in srgb,var(--color-brand) 60%,transparent)}.app-nav{display:flex;gap:var(--s-xs);margin-left:var(--s-md);flex:1;overflow-x:auto}.nav-link{appearance:none;border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:var(--fw-medium);padding:var(--s-sm) var(--s-md);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:background var(--dur-fast) var(--ease-standard),color var(--dur-fast)}.nav-link:hover{background:var(--surface-hover);color:var(--text)}.nav-link[aria-current=page]{color:var(--text);background:var(--surface-hover);box-shadow:inset 0 -2px 0 var(--color-brand)}.header-spacer{flex:1}.header-actions{display:flex;align-items:center;gap:var(--s-sm)}.app-main{flex:1;width:100%;max-width:var(--maxw-content);margin:0 auto;padding:var(--s-lg)}.app-footer{border-top:1px solid var(--border);color:var(--text-faint);font-size:var(--fs-sm);padding:var(--s-md) var(--s-lg);text-align:center}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--s-md);margin-bottom:var(--s-lg);flex-wrap:wrap}.page-head .lede{color:var(--text-muted);margin:0;max-width:60ch}.grid{display:grid;gap:var(--s-md)}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stack{display:flex;flex-direction:column;gap:var(--s-md)}.row{display:flex;gap:var(--s-sm);align-items:center;flex-wrap:wrap}.spread{display:flex;justify-content:space-between;align-items:center;gap:var(--s-sm)}.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-sm);font:inherit;font-weight:var(--fw-semibold);line-height:1;padding:var(--s-sm) var(--s-md);min-height:40px;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background var(--dur-fast) var(--ease-standard),transform var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.btn:active{transform:translateY(1px)}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-brand);color:var(--on-brand)}.btn-primary:hover{background:var(--color-brand-strong)}.btn-secondary{background:var(--bg-elev-2);color:var(--text);border-color:var(--border-strong)}.btn-secondary:hover{background:var(--surface-hover)}.btn-ghost{background:transparent;color:var(--text)}.btn-ghost:hover{background:var(--surface-hover)}.btn-sm{min-height:32px;padding:var(--s-xs) var(--s-sm);font-size:var(--fs-sm)}.card{background:var(--bg-elev-1);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-1);padding:var(--s-lg)}.card.elev-2{box-shadow:var(--shadow-2)}.card-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-sm);margin-bottom:var(--s-md)}.card-title{font-size:var(--fs-lg);font-weight:var(--fw-semibold)}.card-sub{color:var(--text-muted);font-size:var(--fs-sm)}.stat{display:flex;flex-direction:column;gap:var(--s-xs)}.stat-label{color:var(--text-muted);font-size:var(--fs-sm)}.stat-value{font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:1;font-variant-numeric:tabular-nums}.stat-sub{font-size:var(--fs-sm)}.delta-up{color:var(--color-success)}.delta-down{color:var(--color-danger)}.badge{display:inline-flex;align-items:center;gap:var(--s-xs);font-size:var(--fs-xs);font-weight:var(--fw-semibold);padding:2px var(--s-sm);border-radius:var(--radius-pill);border:1px solid var(--border-strong);background:var(--bg-inset);color:var(--text-muted);white-space:nowrap}.badge .dot{width:8px;height:8px;border-radius:50%;background:currentColor}.badge-neutral{color:var(--text-muted)}.badge-success{color:var(--color-success);background:var(--color-success-bg);border-color:transparent}.badge-warning{color:var(--color-warning);background:var(--color-warning-bg);border-color:transparent}.badge-danger{color:var(--color-danger);background:var(--color-danger-bg);border-color:transparent}.badge-info{color:var(--color-info);background:var(--color-info-bg);border-color:transparent}.badge-brand{color:var(--on-brand);background:var(--color-brand);border-color:transparent}.badge-state-idle{color:var(--state-idle)}.badge-state-working{color:var(--state-working)}.badge-state-alert{color:var(--state-alert)}.badge-state-quarantined{color:var(--state-quarantined)}.badge-state-killed{color:var(--state-killed)}.gauge{display:flex;flex-direction:column;gap:var(--s-sm)}.gauge-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-sm)}.gauge-value{font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums}.gauge-track{position:relative;height:12px;border-radius:var(--radius-pill);background:var(--bg-inset);overflow:hidden;border:1px solid var(--border)}.gauge-fill{position:absolute;inset:0 auto 0 0;border-radius:var(--radius-pill);background:linear-gradient(90deg,var(--color-brand),var(--color-accent));transition:width var(--dur-slow) var(--ease-standard)}.gauge-fill.warn{background:linear-gradient(90deg,var(--color-warning),var(--color-danger))}.gauge-fill.danger{background:linear-gradient(90deg,var(--color-danger),#ff8a3d)}.gauge-foot{display:flex;justify-content:space-between;gap:var(--s-sm);font-size:var(--fs-sm);color:var(--text-muted)}.tabs-list{display:flex;gap:var(--s-xs);border-bottom:1px solid var(--border);margin-bottom:var(--s-md);overflow-x:auto}.tabs-trigger{appearance:none;border:0;background:transparent;color:var(--text-muted);font:inherit;font-weight:var(--fw-medium);padding:var(--s-sm) var(--s-md);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.tabs-trigger:hover{color:var(--text)}.tabs-trigger[data-state=active]{color:var(--text);border-bottom-color:var(--color-brand)}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}table.data{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}table.data caption{text-align:left;padding:var(--s-sm) var(--s-md);color:var(--text-muted)}table.data th,table.data td{text-align:left;padding:var(--s-sm) var(--s-md);border-bottom:1px solid var(--border);vertical-align:top}table.data thead th{position:sticky;top:0;background:var(--bg-elev-2);color:var(--text-muted);font-weight:var(--fw-semibold);white-space:nowrap}table.data tbody tr:hover{background:var(--surface-hover)}table.data tbody tr:last-child td{border-bottom:0}.row-trap td{background:var(--color-danger-bg)}.tooltip-content{background:var(--bg-elev-2);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:var(--s-xs) var(--s-sm);font-size:var(--fs-sm);box-shadow:var(--shadow-2);max-width:36ch;z-index:var(--z-tooltip)}.tooltip-arrow{fill:var(--bg-elev-2)}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--bg-inset) 25%,var(--surface-hover) 37%,var(--bg-inset) 63%);background-size:400% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.tree ul{list-style:none;margin:0;padding-left:var(--s-lg);position:relative}.tree>ul{padding-left:0}.tree li{position:relative;padding:var(--s-xs) 0}.tree li .node-chip{display:inline-flex;align-items:center;gap:var(--s-sm);padding:var(--s-xs) var(--s-sm);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--bg-elev-2)}.tree li .node-chip.is-selected{border-color:var(--color-brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 35%,transparent)}.tree ul ul{border-left:1px dashed var(--border-strong);margin-left:var(--s-sm)}.timeline{list-style:none;margin:0;padding:0}.timeline li{position:relative;padding:var(--s-sm) 0 var(--s-sm) var(--s-lg);border-left:2px solid var(--border)}.timeline li:before{content:"";position:absolute;left:-5px;top:var(--s-md);width:8px;height:8px;border-radius:50%;background:var(--color-brand)}.timeline .ts{color:var(--text-faint);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.scene-frame{position:relative;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:linear-gradient(180deg,var(--scene-bg-top),var(--scene-bg-bottom));min-height:320px}.scene-canvas-host{display:block;width:100%;height:100%}.scene-overlay{position:absolute;left:var(--s-md);bottom:var(--s-md);display:flex;gap:var(--s-xs);flex-wrap:wrap}.scene-fallback{display:flex;align-items:center;justify-content:center;min-height:320px;color:var(--text-muted);text-align:center;padding:var(--s-lg)}.scene-controls{display:flex;gap:var(--s-sm);margin-top:var(--s-sm);flex-wrap:wrap}.trap-alarm{border:1px solid var(--color-danger);background:var(--color-danger-bg);border-radius:var(--radius-md);padding:var(--s-sm) var(--s-md);color:var(--color-danger)}.menu-panel{background:var(--bg-elev-2);border:1px solid var(--border-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-2);padding:var(--s-sm);min-width:220px}.menu-item{display:block;width:100%;text-align:left;padding:var(--s-sm);border-radius:var(--radius-sm);background:transparent;border:0;color:var(--text);font:inherit;cursor:pointer}.menu-item:hover{background:var(--surface-hover)}.rank-pill{display:inline-flex;align-items:center;justify-content:center;min-width:2.2em;padding:2px var(--s-sm);border-radius:var(--radius-pill);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;background:var(--bg-inset);border:1px solid var(--border-strong)}.rank-1{background:linear-gradient(135deg,#f6c544,#e0992a);color:#1a1205;border-color:transparent}.rank-2{background:linear-gradient(135deg,#cfd6e6,#9aa6c0);color:#11151f;border-color:transparent}.rank-3{background:linear-gradient(135deg,#d8975a,#b06d33);color:#190f05;border-color:transparent}.rank-you{box-shadow:0 0 0 2px var(--color-brand)}.season-chip{background:var(--color-info-bg);color:var(--color-info);border:0}.disq-banner{border:1px solid var(--color-danger);background:var(--color-danger-bg);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--s-sm) var(--s-md);font-size:var(--fs-sm)}.skill-credit-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-xs)}.skill-credit{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-xs) var(--s-sm)}.skill-credit-name{font-size:var(--fs-sm)}.skill-credit-by{white-space:nowrap}.skill-link{text-decoration:underline;text-underline-offset:2px}.skill-credit-matches{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-md)}.skill-credit-match{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-sm) var(--s-md);background:var(--bg-inset)}.royale-journey{list-style:none;margin:var(--s-xs) 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-xs) var(--s-lg)}.royale-journey li{display:flex;align-items:baseline;gap:var(--s-xs)}.badge-tier-group{margin:0}.badge-tier-head{margin:0 0 var(--s-sm);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:capitalize;color:var(--text-muted)}.spotlight{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-xs) var(--s-sm)}:root,:root[data-theme=dark]{--rarity-common: #8d99b4;--rarity-rare: #4aa8ff;--rarity-epic: #b07aff;--rarity-legendary: #e6b400}:root[data-theme=light]{--rarity-common: #5d6883;--rarity-rare: #1f74c9;--rarity-epic: #7a3fe0;--rarity-legendary: #8a6a0a}.rarity-common{--rarity-color: var(--rarity-common)}.rarity-rare{--rarity-color: var(--rarity-rare)}.rarity-epic{--rarity-color: var(--rarity-epic)}.rarity-legendary{--rarity-color: var(--rarity-legendary)}.rarity-unknown{--rarity-color: var(--color-warning)}.rarity-chip{color:var(--rarity-color, var(--text-muted));border:1px solid var(--rarity-color, var(--border-strong));background:transparent;text-transform:uppercase;letter-spacing:.04em}.rarity-chip.rarity-unknown{border-style:dashed;text-transform:none}.cosmetic-grid{display:grid;gap:var(--s-md);grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.cosmetic-card{display:flex;flex-direction:column;gap:var(--s-sm);padding:var(--s-md);border-radius:var(--radius-lg);background:var(--bg-elev-1);border:1px solid var(--rarity-color, var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--rarity-color, transparent) 35%,transparent),0 0 18px color-mix(in srgb,var(--rarity-color, transparent) 16%,transparent)}.cosmetic-card.rarity-unknown{border-style:dashed}.cosmetic-tile{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;font-size:28px;border-radius:var(--radius-md);color:var(--rarity-color, var(--text-muted));border:1px solid var(--rarity-color, var(--border));background:color-mix(in srgb,var(--rarity-color, var(--border)) 14%,var(--bg-inset))}.cosmetic-name{font-weight:var(--fw-semibold)}.cosmetic-section-head{margin:var(--s-lg) 0 var(--s-sm);font-size:var(--fs-sm);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.shop-price{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.corp-emblem{border-color:var(--rarity-color, var(--border-strong));color:var(--rarity-color, var(--text-muted));background:transparent}.corp-banner{display:flex;align-items:center;justify-content:space-between;gap:var(--s-sm);flex-wrap:wrap;padding:var(--s-sm) var(--s-md);margin-bottom:var(--s-lg);border:1px solid var(--rarity-color, var(--border));border-left-width:6px;border-radius:var(--radius-md);background:color-mix(in srgb,var(--rarity-color, var(--border)) 10%,var(--bg-elev-1))}.reward-track{list-style:none;margin:0;padding:0;display:grid;gap:var(--s-sm);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.reward-tier{border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--s-sm) var(--s-md);background:var(--bg-inset)}.reward-tier-you{border-color:var(--color-brand);box-shadow:0 0 0 2px color-mix(in srgb,var(--color-brand) 35%,transparent)}.reward-tier-locked{opacity:.7}.reward-tier-head{display:flex;align-items:center;justify-content:space-between;gap:var(--s-xs);flex-wrap:wrap;margin-bottom:var(--s-xs)}.reward-tier-name{font-weight:var(--fw-bold);font-size:var(--fs-sm);letter-spacing:.05em}.reward-tier-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--s-xs)}.reward-tier-item{display:flex;align-items:center;gap:var(--s-xs);flex-wrap:wrap}.reward-item-glyph{color:var(--rarity-color, var(--text-muted))}.victory-hero{border:1px solid var(--color-brand);border-radius:var(--radius-lg);padding:var(--s-lg);margin-bottom:var(--s-lg);box-shadow:var(--shadow-2);background:linear-gradient(135deg,color-mix(in srgb,var(--color-brand) 14%,var(--bg-elev-1)),color-mix(in srgb,var(--color-accent) 10%,var(--bg-elev-1)))}.victory-hero-row{display:flex;align-items:center;gap:var(--s-md);flex-wrap:wrap}.victory-title{margin:0;font-size:var(--fs-3xl);font-weight:var(--fw-bold);letter-spacing:.08em;background:linear-gradient(100deg,var(--color-warning),var(--color-brand) 55%,var(--color-accent));background-size:200% 100%;background-position:0% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--color-warning)}.victory-hero-motion .victory-title{animation:victory-sweep 2.4s var(--ease-standard) 1 both}@keyframes victory-sweep{0%{background-position:180% 0}to{background-position:0% 0}}.victory-season{margin:var(--s-xs) 0;color:var(--text-muted)}.victory-emblem{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;font-size:40px;border-radius:var(--radius-lg);color:var(--rarity-color, var(--rarity-legendary));border:2px solid var(--rarity-color, var(--rarity-legendary));background:color-mix(in srgb,var(--rarity-color, var(--rarity-legendary)) 14%,var(--bg-inset))}.victory-rewards{display:flex;flex-direction:column;gap:var(--s-xs);margin-top:var(--s-md)}.victory-rewards-head{font-size:var(--fs-sm);font-weight:var(--fw-bold);letter-spacing:.06em;color:var(--text-muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.skeleton{animation:none}}
