@layer components.primitives{.toc-panel{--toc-icon:1.25rem;--toc-ability-icon:1rem;--toc-font-size:var(--text-xs);--toc-line-height:var(--leading-xs);--toc-row-gap:.375rem;--toc-row-padding:.125rem 0 .125rem .75rem;--toc-section-inset:.75rem;--toc-ability-font-size:var(--text-2xs);font-size:var(--toc-font-size);line-height:var(--toc-line-height);border:1px solid var(--border-soft);background:color-mix(in srgb, var(--card) var(--mix-veil), transparent);box-shadow:var(--shadow-sm);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.75rem}.toc-tree>*+*{margin-top:.25rem}.toc-group{padding-top:.5rem}.toc-section{padding:.25rem 0 .25rem var(--toc-section-inset);color:var(--foreground);transition:color var(--duration-normal);align-items:center;gap:.5rem;font-weight:600;display:flex;position:relative}.toc-section:hover{color:var(--signal)}.toc-subsection{color:var(--muted-foreground);padding-inline-start:calc(var(--toc-section-inset) + .75rem);font-weight:400}.toc-year{font-family:var(--font-mono)}.toc-section:before{content:"";block-size:1rem;inline-size:1px;transition:scale var(--duration-normal) var(--ease-out), background-color var(--duration-normal);background:0 0;position:absolute;top:50%;left:-.5px;translate:0 -50%;scale:1 .75}.toc-section:hover:before{background:var(--signal);scale:1}.toc-count{color:var(--signal);font-family:var(--font-mono);font-size:var(--text-2xs);flex-shrink:0;margin-left:auto}.toc-link{border-radius:var(--radius-sm);min-inline-size:0;color:var(--muted-foreground);transition:background-color var(--duration-normal), color var(--duration-normal);align-items:center;display:flex}.toc-link:hover{background:var(--card-accent);color:var(--foreground)}.toc-link-text{text-overflow:ellipsis;white-space:nowrap;min-inline-size:0;overflow:hidden}.toc-heading-text{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.toc-entities{margin-top:.125rem}.toc-entities>*+*,.toc-abilities>*+*{margin-top:1px}.toc-entity{gap:var(--toc-row-gap);padding:var(--toc-row-padding)}.toc-entity-img{inline-size:var(--toc-icon);block-size:var(--toc-icon);border-radius:var(--radius-md);object-fit:cover;flex-shrink:0}.toc-entity-tally{white-space:nowrap;flex-shrink:0;margin-inline-start:auto;line-height:1.5}.toc-count,.toc-entry-count,.toc-entity-tally{text-align:right;font-variant-numeric:tabular-nums}.toc-abilities{position:relative}.toc-abilities:before{content:"";background:var(--border-subtle);pointer-events:none;inline-size:1px;position:absolute;inset-block:.25rem;inset-inline-start:calc(var(--toc-section-inset) + var(--toc-icon) / 2)}.toc-ability{font-size:var(--toc-ability-font-size);gap:.375rem;padding:.125rem 0;padding-inline-start:calc(var(--toc-section-inset) + var(--toc-icon) + var(--toc-row-gap))}.toc-ability-icon{inline-size:var(--toc-ability-icon);block-size:var(--toc-ability-icon);flex-shrink:0}.toc-ability-img{border-radius:var(--radius-sm);object-fit:contain}.toc-entry{gap:.5rem;padding:.25rem 0 .25rem .75rem}.toc-major{background:var(--primary);border-radius:50%;flex-shrink:0;block-size:.375rem;inline-size:.375rem}.toc-entry-count{flex-shrink:0;margin-left:auto}.toc-entry-count,.toc-entity-tally{color:var(--muted-foreground);font-family:var(--font-mono);font-size:var(--text-2xs)}.toc-panel[data-size=lg]{--toc-icon:1.75rem;--toc-ability-icon:1.25rem;--toc-font-size:var(--text-sm);--toc-line-height:var(--leading-sm);--toc-row-gap:.5rem;--toc-row-padding:.25rem 0 .25rem 1rem;--toc-section-inset:1rem;--toc-ability-font-size:var(--text-xs)}.toc-panel[data-size=lg] .toc-tree>*+*{margin-top:.375rem}.toc-panel[data-size=lg] .toc-group{padding-top:.5rem}.toc-panel[data-size=lg] .toc-section{gap:.75rem;padding-block:.375rem}.toc-panel[data-size=lg] .toc-count{font-size:var(--text-xs);line-height:var(--leading-xs);font-weight:500}.toc-panel[data-size=lg] .toc-section:before{block-size:1.25rem;inline-size:2px;scale:1 .8}.toc-panel[data-size=lg] .toc-entities{margin-top:.25rem}.toc-panel[data-size=lg] .toc-entities>*+*{margin-top:.125rem}.toc-panel[data-size=lg] .toc-entity,.toc-panel[data-size=lg] .toc-ability-img{border-radius:var(--radius-md)}.toc-panel[data-size=lg] .toc-ability{gap:.5rem;padding-block:.25rem}}@layer components.features{.toc-label{color:var(--muted-foreground);letter-spacing:.1em;margin-bottom:.5rem;font-weight:700}.toc-section,.toc-link{min-block-size:1.5rem}@media (pointer:coarse){.toc-section,.toc-link{min-block-size:2.75rem}}}
