.artifact-viewer{--plate-a:var(--neutral-500);--plate-b:var(--neutral-600);position:relative;display:flex;flex-direction:column;flex:0 0 min(45%,var(--artifact-panel-w));width:min(45%,var(--artifact-panel-w));max-width:min(45%,var(--artifact-panel-w));min-width:0;align-self:stretch;max-height:100%;overflow:hidden;border-left:1px solid var(--border);border:1px solid var(--border);border-radius:0;background:var(--surface);box-shadow:var(--shadow-raised)}.artifact-viewer:after,.artifact-viewer:before{content:none}.artifact-viewer.answer-card--ink{background:var(--surface);box-shadow:var(--shadow-raised);border-color:var(--border)}.artifact-viewer.answer-card--ink:after,.artifact-viewer.answer-card--ink:before{content:none}.artifact-viewer.answer-card--multi{border-color:var(--border)}.artifact-viewer.answer-card--multi:after,.artifact-viewer.answer-card--multi:before{content:none}.artifact-viewer__header{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border);background:var(--surface)}.artifact-viewer.answer-card--ink .artifact-viewer__header{background:var(--surface);border-bottom-color:var(--border)}.artifact-viewer__control-actions,.artifact-viewer__topline{display:flex;align-items:center;gap:var(--space-2)}.artifact-viewer__control-actions{flex:0 0 auto;margin-left:auto}.artifact-viewer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--display);font-size:1.05rem;color:var(--text-strong)}.artifact-viewer__format-tag,.artifact-viewer__title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artifact-viewer__format-tag{align-self:flex-start;max-width:100%;padding:2px var(--space-2);background:var(--surface-sunken);border:1px solid var(--border-strong);border-radius:var(--radius-pill)}.artifact-viewer__btn{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:var(--radius-md);padding:var(--space-1) var(--space-2);transition:background var(--motion-fast)}.artifact-viewer__btn:hover{background:var(--surface-sunken)}.artifact-viewer__close{border-radius:var(--radius-pill);line-height:1}.artifact-viewer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}.artifact-viewer__loading,.artifact-viewer__state{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-2);color:var(--text-muted)}.artifact-viewer__state{flex-direction:column;text-align:center}.artifact-viewer__suggestions{color:var(--text-faint);font-size:.85rem}.artifact-viewer__suggestion{display:inline;padding:0;border:none;background:none;font:inherit;color:var(--poke-red);text-decoration:underline;cursor:pointer}.artifact-viewer__suggestion:focus-visible,.artifact-viewer__suggestion:hover{color:var(--text)}.artifact-skeleton{flex-direction:column;align-items:stretch;gap:var(--space-3);padding:var(--space-4) 0}.artifact-skeleton__head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-2)}.artifact-skeleton__art{flex:none;width:104px;height:104px;border-radius:var(--radius-lg)}.artifact-skeleton__title{flex:1 1;display:flex;flex-direction:column;gap:var(--space-2)}.artifact-skeleton__line{display:block;height:12px;width:100%}.artifact-skeleton__line--title{height:20px;width:60%}.artifact-skeleton__line--short{width:40%}.pokemon-usage__skeleton{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-2) 0}.pokemon-usage__skeleton-row{display:block;height:28px;border-radius:var(--radius-md)}@media (prefers-reduced-motion:reduce){.entity-link--chip,.entity-link--move{transition:background var(--motion-fast);transform:none}}@media (max-width:768px){.artifact-viewer{position:fixed;inset:0;z-index:var(--z-overlay);flex-basis:auto;width:100%;max-width:100%;min-width:0;max-height:100%;border-radius:0}.artifact-viewer__header{padding-top:max(var(--space-2),env(safe-area-inset-top))}.artifact-viewer__body{padding-bottom:max(var(--space-4),env(safe-area-inset-bottom))}.artifact-viewer__topline{flex-wrap:wrap}.artifact-viewer__title{flex-basis:100%;order:1}.artifact-viewer__btn,.artifact-viewer__close{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center}.kv-grid,.team-member__moves{grid-template-columns:1fr}}.artifact-section__title{margin:0 0 var(--space-2)}.artifact-text{margin:0;line-height:1.5;color:var(--text)}.artifact-empty{margin:0;color:var(--text-faint);font-style:italic}.entity-link{font:inherit;cursor:pointer;border:none;background:none;color:inherit;padding:0;display:inline-flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-sm)}.entity-link--chip,.entity-link--move{padding:var(--space-1) var(--space-2);font-size:.82rem;font-weight:600;background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);transition:background var(--motion-fast),border-color var(--motion-fast),transform var(--motion-spring)}@media (pointer:coarse){.entity-link--chip,.entity-link--move{border-color:color-mix(in srgb,var(--azure) 28%,var(--border))}}.entity-link--chip:hover,.entity-link--move:hover{background:var(--azure-soft);border-color:var(--azure);color:var(--text-strong);transform:translateY(-1px)}.entity-link--chip:active,.entity-link--move:active{transform:translateY(0)}.entity-link--card{width:100%;text-align:left}.pokemon-artifact{display:flex;flex-direction:column;gap:var(--space-4)}.pokemon-artifact__tabs{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pokemon-artifact__tab{display:inline-flex;align-items:center;height:32px;padding:0 var(--space-4);border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:background var(--motion-fast),color var(--motion-fast)}.pokemon-artifact__tab:hover{background:var(--surface-sunken);color:var(--text-strong)}.pokemon-artifact__tab[aria-selected=true]{color:var(--poke-red);background:var(--poke-red-soft)}.pokemon-usage{display:flex;flex-direction:column;gap:var(--space-4)}.pokemon-usage__ladders{display:flex;flex-wrap:wrap;gap:var(--space-2)}.pokemon-usage__ladder{display:inline-flex;align-items:center;height:32px;padding:0 var(--space-4);border:none;border-radius:var(--radius-pill);background:transparent;color:var(--text-muted);font:inherit;font-size:var(--text-sm);font-weight:600;cursor:pointer}.pokemon-usage__ladder:hover{background:var(--surface-sunken);color:var(--text-strong)}.pokemon-usage__ladder[aria-pressed=true]{color:var(--poke-red);background:var(--poke-red-soft)}.pokemon-usage__fetched,.pokemon-usage__kicker,.pokemon-usage__status{margin:0;font-size:var(--text-sm);color:var(--text-muted)}.pokemon-usage__group-title{margin:0 0 var(--space-2)}.pokemon-usage__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}.pokemon-usage__item{display:flex;justify-content:space-between;gap:var(--space-3);font-size:var(--text-sm);padding:var(--space-1) 0}.pokemon-usage__name{color:var(--text-strong);text-decoration:none;text-align:left}.pokemon-usage__name.entity-link:hover,button.pokemon-usage__name:hover{color:var(--poke-red)}.pokemon-usage__pct{color:var(--text-muted);flex-shrink:0}.pokemon-usage__set{padding-top:var(--space-4);border-top:1px solid var(--border)}.pokemon-usage .ref-meta-set,.pokemon-usage__set{display:flex;flex-direction:column;gap:var(--space-3)}.pokemon-usage .ref-meta-set__text{font-family:var(--mono);font-size:var(--text-sm);color:var(--text-strong);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4);white-space:pre-wrap;margin:0}.pokemon-usage .ref-meta-set__button{align-self:flex-start;font-size:var(--text-sm);font-weight:600;color:var(--poke-red);background:var(--poke-red-soft);border:1px solid var(--border-strong);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);cursor:pointer}.pokemon-usage .ref-meta-source{display:flex;flex-direction:column;gap:var(--space-1);margin:var(--space-2) 0 0;padding-top:var(--space-4);border-top:1px solid var(--border);font-size:var(--text-xs);color:var(--text-muted)}.pokemon-usage .ref-meta-source__label{font-family:var(--mono);font-weight:600;font-size:var(--text-2xs);text-transform:uppercase;letter-spacing:.08em}.pokemon-artifact__head{display:flex;align-items:center;gap:var(--space-4)}.pokemon-artifact__halo{--plate-a:var(--type-normal);--plate-b:var(--type-normal);flex:0 0 auto;display:grid;place-items:center;width:136px;height:136px;border-radius:28px;background:radial-gradient(circle at 50% 45%,color-mix(in srgb,var(--plate-a) var(--plate-radial-b),transparent),transparent 65%),var(--surface-sunken);border:1px solid color-mix(in srgb,var(--plate-a) 32%,var(--border-strong));box-shadow:var(--shadow-well)}.pokemon-artifact__art{width:104px;height:104px;object-fit:contain}.pokemon-artifact__id{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.pokemon-artifact__name{font-family:var(--display);font-size:var(--text-2xl);line-height:1.2;letter-spacing:-.02em;color:var(--text-strong)}.pokemon-artifact__dex{color:var(--text-muted)}.move-artifact__type,.pokemon-artifact__types{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-1)}.stat-meters{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}.stat-meter{display:grid;grid-template-columns:56px 1fr 32px;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);font-size:.85rem}.stat-meter__label{color:var(--text-muted)}.stat-meter__value{text-align:right;color:var(--text-strong)}.stat-meter__bar{height:8px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.stat-meter__fill{--fill:0%;display:block;height:100%;width:var(--fill);border-radius:var(--radius-pill);animation:stat-fill-in var(--motion-base) both}@keyframes stat-fill-in{0%{width:0}to{width:var(--fill)}}.stat-meter__fill--danger{background:var(--danger)}.stat-meter__fill--warning{background:var(--warning)}.stat-meter__fill--success{background:var(--success)}.stat-meter__fill--azure{background:var(--azure)}.stat-meters__bst{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-1);padding-top:var(--space-2);border-top:1px solid var(--border)}@media (prefers-reduced-motion:reduce){.stat-meter__fill,.team-stat__bar-fill{animation:none}}.ability-chips,.matchup-row__badges{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.ability-chip__hidden-badge{margin-left:var(--space-1);padding:0 var(--space-1);font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--azure);background:var(--surface);border:1px solid var(--azure);border-radius:var(--radius-sm)}.matchup-grid{display:flex;flex-direction:column;gap:var(--space-2)}.matchup-row{display:grid;grid-template-columns:140px 1fr;align-items:center;grid-gap:var(--space-2);gap:var(--space-2)}.matchup-row__empty{color:var(--text-faint)}.matchup-row__entry{display:inline-flex;align-items:center;gap:var(--space-1)}.matchup-row__mult{font-family:var(--mono);font-size:.68rem;font-weight:700;color:var(--text-muted)}.kv-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-2);gap:var(--space-2);margin:0}.kv-grid__pair{display:flex;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--surface-sunken);border-radius:var(--radius-sm)}.kv-grid__key{color:var(--text-muted);font-size:.85rem}.kv-grid__value{margin:0;font-weight:600;text-transform:capitalize}.movepool{display:flex;flex-direction:column;gap:var(--space-3)}.movepool__method{margin:0 0 var(--space-2)}.movepool__moves{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-2)}.movepool__type-dot{--dot-type:var(--type-normal);flex:0 0 auto;width:8px;height:8px;border-radius:50%;background:var(--dot-type)}.held-list{list-style:none;margin:0;padding:0}.held-list__row{display:flex;justify-content:space-between;padding:var(--space-1) 0;border-bottom:1px solid var(--border)}.comparison-artifact__cards{display:flex;flex-wrap:wrap;gap:var(--space-3)}.comparison-artifact__card{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}.comparison-artifact__format{align-self:flex-start}.comparison-artifact__diff{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.comparison-artifact__stats{width:100%;border-collapse:collapse;font-size:.8125rem}.comparison-artifact__stats td,.comparison-artifact__stats th{padding:var(--space-1) var(--space-2);text-align:left;border-bottom:1px solid var(--border)}.comparison-artifact__diff-title{margin:0 0 var(--space-1);font-size:.85rem}.comparison-artifact__diff-block p,.comparison-artifact__speed{margin:0;font-size:.8125rem}.team-artifact{display:flex;flex-direction:column;gap:var(--space-4)}.team-artifact__members{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.team-artifact__empty{margin:0;color:var(--text-faint);font-style:italic}.team-member{--member-type:var(--type-normal);display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-3);background:var(--surface-raised);border:1px solid var(--border);border-left:3px solid color-mix(in srgb,var(--member-type) 55%,var(--border));border-radius:var(--radius-lg);box-shadow:0 1px 2px rgba(0,0,0,.05)}.team-member--empty{align-items:center;justify-content:center;padding:var(--space-5) var(--space-3);border-style:solid;border-left-color:var(--border)}.team-member__empty{color:var(--text-faint);font-style:italic}.team-member__head{display:flex;align-items:center;gap:var(--space-3)}.team-member__sprite-chip{flex:0 0 auto;width:64px;height:64px;display:grid;place-items:center;border-radius:var(--radius-md);background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--member-type) 26%,var(--surface)),color-mix(in srgb,var(--member-type) 8%,var(--surface-sunken)));border:1px solid color-mix(in srgb,var(--member-type) 28%,transparent)}.team-member__sprite{width:64px;height:64px;object-fit:contain;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18))}.team-member__sprite-fallback{font-size:1.4rem;font-weight:700;color:color-mix(in srgb,var(--member-type) 55%,var(--text-faint))}.team-member__ident{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:var(--space-2)}.team-member__name-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2)}.team-member__name{font-family:var(--display);font-size:1rem;color:var(--text-strong)}.team-member__dex{font-family:var(--mono);font-size:.72rem;color:var(--text-faint)}.team-member__level{margin-left:auto;padding:1px var(--space-2);font-size:.7rem;font-weight:600;color:var(--text-muted);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-pill)}.team-member__badges{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.team-member__tera{--tera-type:var(--type-normal);display:inline-flex;align-items:center;gap:3px;padding:2px var(--space-2);font-size:11px;font-weight:700;border-radius:var(--radius-sm);color:color-mix(in srgb,var(--tera-type) 72%,var(--text-strong));background:color-mix(in srgb,var(--tera-type) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--tera-type) 40%,transparent)}.team-member__tera-glyph{font-size:9px;color:var(--tera-type)}.team-member__meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-2);font-size:.82rem;color:var(--text-muted)}.team-member__meta>*+:before{content:"·";margin-right:var(--space-2);color:var(--text-faint)}.team-member__item{color:var(--text);font-weight:600}.team-member__stats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.team-stat{display:grid;grid-template-columns:42px 30px 1fr 38px;align-items:center;grid-gap:var(--space-2);gap:var(--space-2);font-size:.75rem}.team-stat__label{color:var(--text-muted);font-weight:600}.team-stat__arrow{margin-left:2px;font-size:.6rem;vertical-align:1px}.team-stat__value{font-family:var(--mono);text-align:right;color:var(--text-strong)}.team-stat__bar{height:7px;background:var(--surface-sunken);border-radius:var(--radius-pill);overflow:hidden}.team-stat__bar-fill{--fill:0%;display:block;height:100%;width:var(--fill);border-radius:var(--radius-pill);animation:stat-fill-in var(--motion-base) both}.team-stat__bar-fill--danger{background:var(--danger)}.team-stat__bar-fill--warning{background:var(--warning)}.team-stat__bar-fill--success{background:var(--success)}.team-stat__bar-fill--azure{background:var(--azure)}.team-stat__ev{font-size:.66rem;text-align:right;color:var(--text-faint)}.team-stat--boosted .team-stat__label,.team-stat--boosted .team-stat__value{color:var(--success)}.team-stat--boosted .team-stat__bar-fill{background:var(--success)}.team-stat--hindered .team-stat__label,.team-stat--hindered .team-stat__value{color:var(--danger)}.team-stat--hindered .team-stat__bar-fill{background:color-mix(in srgb,var(--danger) 70%,var(--surface-sunken))}.team-member__moves{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--space-1) var(--space-2);gap:var(--space-1) var(--space-2)}.team-member__move{padding:var(--space-1) var(--space-2);font-size:.78rem;font-weight:600;color:var(--text);background:var(--surface-sunken);border:1px solid var(--border);border-radius:var(--radius-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-member__no-moves{font-size:.78rem;font-style:italic;color:var(--text-faint)}.team-artifact__warnings{list-style:none;margin:0;padding:var(--space-3);display:flex;flex-direction:column;gap:var(--space-1);font-size:.82rem;color:color-mix(in srgb,var(--danger) 80%,var(--text));background:var(--danger-soft);border:1px solid color-mix(in srgb,var(--danger) 25%,transparent);border-radius:var(--radius-md)}.team-artifact__edit{align-self:flex-start;color:var(--azure);font-weight:600;text-decoration:none}.team-artifact__edit:hover{text-decoration:underline}.ability-artifact,.item-artifact,.move-artifact,.type-artifact{display:flex;flex-direction:column;gap:var(--space-5)}.ability-artifact__effect,.ability-artifact__holders,.item-artifact__effect,.item-artifact__held,.move-artifact__effect,.pokemon-artifact__section,.type-artifact__section{display:flex;flex-direction:column;gap:var(--space-2)}