@import"https://fonts.googleapis.com/css2?family=Source+Sans+3:ital,opsz,wght@0,8..60,200..900;1,8..60,200..900&family=Pirata+One&family=Fira+Sans&family=Cardo:ital,wght@0,400;0,700;1,400&family=Barlow+Condensed:wght@400;500;600&family=Source+Sans+3:wght@400;500;600&display=swap";.tab-navigation{position:sticky;inset-block-start:0;z-index:100;display:flex;align-items:center;gap:var(--space-6);min-height:var(--tab-navigation-height);padding-inline:var(--space-8);background:linear-gradient(135deg,var(--color-ink-700) 0%,var(--color-ink-900) 100%)}.tab-navigation-brand{flex:0 0 auto;font-family:var(--font-heading);font-size:var(--text-lg);font-weight:700;color:var(--color-parchment-200);text-decoration:none}.tab-navigation-brand:where(:hover,:focus-visible){color:var(--color-parchment-50)}.tab-navigation .tab-list{display:flex;flex:1 1 auto;min-width:0}.tab-navigation .tab-item{display:flex;align-items:center;min-height:3rem;padding-inline:var(--space-3);font-family:var(--font-ui);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;color:var(--color-parchment-400);text-decoration:none;transition:color var(--transition-fast)}.tab-navigation .tab-item:where(:hover,:focus-visible){color:var(--color-parchment-50)}.tab-navigation .tab-item.active{color:var(--color-parchment-50);box-shadow:inset 0 -2px 0 var(--color-accent-light)}.tab-navigation-build{display:flex;align-items:center;gap:var(--space-2);min-width:0;min-height:2.5rem;padding-inline:var(--space-4);border:1px solid var(--color-ink-500);border-radius:1.25rem;text-decoration:none}.tab-navigation-build:where(:hover,:focus-visible,.active){border-color:var(--color-accent-light)}.tab-navigation-build-name{overflow:hidden;font-family:var(--font-heading);font-size:var(--text-sm);font-weight:700;white-space:nowrap;text-overflow:ellipsis;color:var(--color-parchment-50)}.tab-navigation-build-points{flex:0 0 auto;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-accent-light)}.tab-navigation-tools-toggle{display:flex;align-items:center;justify-content:center;inline-size:2.75rem;block-size:2.75rem;margin-inline-end:calc(var(--space-2) * -1);border:none;border-radius:var(--radius-sm);background:none;color:var(--color-ink-300);cursor:pointer}.tab-navigation-tools-toggle:where(:hover,:focus-visible){color:var(--color-parchment-50)}.tab-navigation-tools{position:fixed;inset:3.25rem var(--space-6) auto auto;margin:0;min-inline-size:12rem;padding:var(--space-2);border:1px solid var(--color-parchment-300);border-radius:var(--radius-md);background:var(--color-parchment-50);box-shadow:var(--shadow-md)}.tab-navigation-tools:popover-open{display:flex;flex-direction:column}.tab-navigation-tools-label{padding:var(--space-1) var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500)}.tab-navigation-tools-link{padding:var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--color-ink-800);text-decoration:none}.tab-navigation-tools-link:where(:hover,:focus-visible){background:var(--color-parchment-200);color:var(--color-ink-900)}.tab-navigation-tools-link.active{font-weight:600;color:var(--color-heritage)}@media(max-width:48rem){.tab-navigation{gap:var(--space-2);padding-inline:var(--space-4)}.tab-navigation-brand,.tab-navigation-build-name{display:none}.tab-navigation .tab-list{overflow-x:auto;scrollbar-width:none}.tab-navigation .tab-item{padding-inline:var(--space-2)}.tab-navigation-build{padding-inline:var(--space-3)}}.trait-content-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.trait-content-name{font-weight:600;margin:0}.trait-content-description{line-height:var(--leading-normal);margin:0}.trait-content-description p{margin:0}.trait-content-choose{margin:var(--space-1) 0 0;font-style:italic;opacity:.85}.trait-content-description ul{display:flex;flex-direction:column;gap:.125rem;margin-block-start:.25rem;margin-inline:.375rem 0;padding-inline-start:var(--space-2);list-style:disc;list-style-type:disc;list-style-position:outside}.trait-content-description li{margin:0;display:list-item;list-style-type:disc;list-style-position:outside}.trait-content-meta{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.trait-content-meta:empty,.trait-content-meta:not(:has(*)){display:none}.summary-trait-card .trait-content-name,.simple-trait-card .trait-content-name{color:var(--color-ink-800);font-weight:600;margin-right:var(--space-1)}.summary-trait-card .trait-content-description,.simple-trait-card .trait-content-description{color:var(--color-ink-600)}.simple-trait-card .trait-content-points{color:var(--color-ink-400);font-style:italic}.summary-trait-card .trait-content-option{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px dashed var(--color-parchment-300);font-size:var(--text-sm);color:var(--color-ink-600)}.summary-trait-card .trait-content-option p{margin:0}.summary-trait-card .trait-content-meta{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-parchment-200)}.trait-tooltip .trait-content-header{margin-bottom:var(--space-2)}.trait-tooltip .trait-content-name{font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;color:var(--color-parchment-50)}.trait-tooltip .trait-content-description{font-family:var(--font-body);font-weight:400;font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--color-parchment-200);margin:0 0 var(--space-2)}.trait-tooltip .trait-content-meta{padding-top:var(--space-2);border-top:1px solid var(--color-ink-600)}.summary-trait-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-block-end:var(--space-1)}.summary-trait-name{color:var(--color-ink-800);font-weight:600;margin-inline-end:var(--space-1)}.simple-trait-card{font-size:var(--text-sm)}.simple-trait-card *{display:inline}.summary-trait-paragraph{--trait-paragraph-accent: var(--color-heritage);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-800)}.summary-trait-paragraph.core{--trait-paragraph-accent: var(--color-blue-green-50)}.summary-trait-paragraph.heritage{--trait-paragraph-accent: var(--color-red-45)}.summary-trait-paragraph.culture{--trait-paragraph-accent: var(--color-culture)}.simple-trait-card .trait-content-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);margin-block-start:var(--space-1)}.simple-trait-card .trait-content-meta .pill{display:inline-flex}:is(.simple-trait-card,.summary-trait-paragraph).has-actions{position:relative;padding-inline-end:1.75rem}:is(.simple-trait-card,.summary-trait-paragraph).has-actions .summary-trait-action{position:absolute;inset-block-start:0;inset-inline-end:0;display:inline-flex;opacity:0;transition:opacity var(--transition-fast)}:is(.simple-trait-card,.summary-trait-paragraph).has-actions:is(:hover,:focus-within) .summary-trait-action{opacity:1}:is(.simple-trait-card,.summary-trait-paragraph).has-actions .summary-trait-action:focus-visible{opacity:1}.character-creation-page{padding:var(--space-8) var(--space-6)}.character-creation-page .creation-header{text-align:center;margin-bottom:var(--space-8)}.character-creation-page .creation-header h1{font-size:var(--text-3xl);color:var(--color-ink-900);margin-bottom:var(--space-2)}.character-creation-page .creation-step{margin-bottom:var(--space-4);padding:0;overflow:hidden}.character-creation-page .creation-step summary{font-family:var(--font-heading);font-size:var(--text-lg);font-weight:700;color:var(--color-ink-800);padding:var(--space-4) var(--space-6);cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--space-3);transition:background-color var(--transition-fast)}.character-creation-page .creation-step summary::-webkit-details-marker{display:none}.character-creation-page .creation-step summary:before{content:"";display:inline-block;width:.5em;height:.5em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform .2s ease;flex-shrink:0}.character-creation-page .creation-step details[open] summary:before{transform:rotate(45deg)}.character-creation-page .creation-step summary:is(:hover,:focus-visible){background:var(--color-parchment-100)}.character-creation-page .creation-step-title{flex:1}.creation-step-check{flex-shrink:0;color:var(--color-success)}.character-creation-page .step-content{padding:0 var(--space-6) var(--space-6);border-top:1px solid var(--color-parchment-300)}.character-creation-page .step-selection{margin-block-start:var(--space-4);padding:var(--space-4);background:var(--color-parchment-100);border:1px solid var(--color-parchment-300);border-radius:var(--radius-md)}.character-creation-page .step-selection-header{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);margin-block-end:var(--space-3)}.character-creation-page .step-content .step-selection-title{margin:0;font-family:var(--font-heading);font-size:var(--text-lg);color:var(--color-ink-900)}.character-creation-page .step-selection-meta{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-ink-500)}.character-creation-page .step-content p{color:var(--color-ink-700);line-height:var(--leading-relaxed);margin-top:var(--space-4);margin-bottom:var(--space-3)}.character-creation-page .step-content p:first-child{margin-top:var(--space-4)}.character-creation-page .step-content ul{margin:var(--space-3) 0;padding-left:var(--space-6)}.character-creation-page .step-content li{margin-bottom:var(--space-2);line-height:var(--leading-relaxed);color:var(--color-ink-700)}.character-creation-page .step-content h4{font-size:var(--text-base);font-weight:600;color:var(--color-ink-800);margin-top:var(--space-5);margin-bottom:var(--space-2)}.character-creation-page .step-content strong{color:var(--color-ink-800)}.character-creation-page .step-content em{font-style:italic}.character-creation-page .ancestry-actions{margin-top:var(--space-3);margin-bottom:var(--space-4)}.character-creation-page .ancestry-actions .btn{min-width:200px}@media(max-width:640px){.character-creation-page{padding:var(--space-6) var(--space-4)}.character-creation-page .creation-header h1{font-size:var(--text-2xl)}.character-creation-page .creation-step summary{font-size:var(--text-base);padding:var(--space-3) var(--space-4)}.character-creation-page .step-content{padding:0 var(--space-4) var(--space-4)}}.character-creation-layout{display:grid;grid-template-columns:200px 1fr;gap:var(--space-6);max-width:1100px;margin:0 auto;align-items:start}.creation-toc{position:sticky;top:var(--space-4)}.creation-toc h3{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-ink-800);margin-bottom:var(--space-3)}.creation-toc ol{list-style:none;padding:0;margin:0}.creation-toc li{margin-bottom:var(--space-1)}.creation-toc a{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-1) var(--space-2);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-ink-600);text-decoration:none;border-radius:var(--radius-sm);transition:color var(--transition-fast),background var(--transition-fast)}.creation-toc a:hover{color:var(--color-heritage);background:var(--color-heritage-bg)}.creation-main{min-width:0}@media(max-width:768px){.character-creation-layout{grid-template-columns:1fr}.creation-toc{display:none}}.custom-ancestry-page{padding:var(--space-8) var(--space-6)}.custom-ancestry-page .ancestry-content{max-width:800px;margin:0 auto}.custom-ancestry-page .ancestry-header{text-align:center;margin-bottom:var(--space-8)}.custom-ancestry-page .ancestry-header h1{font-size:var(--text-3xl);color:var(--color-ink-900)}.custom-ancestry-page .ancestry-step{margin-bottom:var(--space-4)}.custom-ancestry-page .ancestry-step details{background:var(--color-paper);border:1px solid var(--color-ink-200);border-radius:var(--radius-lg)}.custom-ancestry-page .ancestry-step summary{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;padding:var(--space-4) var(--space-5);cursor:pointer}.custom-ancestry-page .step-content{padding:0 var(--space-5) var(--space-5);border-top:1px solid var(--color-ink-100)}.custom-ancestry-page .step-content ul{padding-left:var(--space-6)}.custom-ancestry-page .callout{background:var(--color-heritage-bg);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0}.custom-ancestry-page .ancestry-actions{margin-top:var(--space-4)}.custom-ancestry-page .btn-link{background:none;border:none;padding:0;font:inherit;color:var(--color-primary);text-decoration:underline;cursor:pointer}@media(max-width:640px){.custom-ancestry-page{padding:var(--space-6) var(--space-4)}}.ancestry-book{display:grid;grid-template-columns:15rem minmax(0,1fr);align-items:start;min-height:calc(100vh - var(--tab-navigation-height))}.ancestry-book-index{position:sticky;inset-block-start:var(--tab-navigation-height);display:flex;flex-direction:column;gap:var(--space-5);max-block-size:calc(100vh - var(--tab-navigation-height));overflow-y:auto;padding:var(--space-6) var(--space-4);border-inline-end:1px solid var(--color-parchment-300);background:var(--color-parchment-50)}.ancestry-book-index-search{display:flex;flex-direction:column;gap:var(--space-1)}.ancestry-book-index-search input{box-sizing:border-box;block-size:2.25rem;padding-inline:var(--space-2);border:1px solid var(--color-parchment-400);border-radius:var(--radius-sm);background:var(--color-parchment-100);font-family:var(--font-body);font-size:var(--text-sm)}.ancestry-book-index-search input:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.ancestry-book-index-label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500)}.ancestry-book-index-group{display:flex;flex-direction:column;gap:1px}.ancestry-book-index-heading{margin:0 0 var(--space-1) var(--space-2);font-family:var(--font-heading);font-size:var(--text-base);font-weight:900;color:var(--color-heritage)}.ancestry-book-index-item{display:flex;flex-direction:column;align-items:start;gap:1px;min-block-size:2.125rem;padding-block:var(--space-1);padding-inline:var(--space-2);border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-700);text-align:start;cursor:pointer}.ancestry-book-index-item:where(:hover,:focus-visible){background:var(--color-parchment-200);color:var(--color-ink-900)}.ancestry-book-index-item:where(:hover,:focus-visible) .ancestry-book-index-count{opacity:1}.ancestry-book-index-item[aria-current]{background:var(--color-heritage);color:var(--color-parchment-50);font-weight:600}.ancestry-book-index-name{display:flex;align-items:center;gap:var(--space-2)}.ancestry-book-index-subtitle{font-size:var(--text-xs);font-weight:400;line-height:var(--leading-tight);color:var(--color-ink-500)}:where([aria-current]) .ancestry-book-index-subtitle{color:var(--color-parchment-200)}.ancestry-book-index-count{font-family:var(--font-ui);font-size:var(--text-xs);opacity:0;transition:opacity .15s ease-in-out;color:var(--color-accent)}:where([aria-current])>.ancestry-book-index-count{color:var(--color-parchment-200)}.ancestry-book-entry{display:flex;flex-direction:column;gap:var(--space-8);max-inline-size:60rem;padding:var(--space-10) var(--space-12) var(--space-12);scroll-margin-block-start:var(--tab-navigation-height)}.ancestry-book-header{display:flex;flex-direction:column;gap:var(--space-3);padding-block-end:var(--space-5);border-block-end:2px solid var(--color-parchment-300)}.ancestry-book-kicker{font-family:var(--font-ui);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--color-heritage)}.ancestry-book-name{margin:0;font-size:var(--text-3xl)}.ancestry-book-summary{margin:0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.ancestry-book-description{max-inline-size:45rem;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.ancestry-book-description p{margin:0}.ancestry-book-description p+p{margin-block-start:var(--space-2)}.ancestry-book-pills{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-block-start:calc(var(--space-4) * -1)}.ancestry-book-pill{min-block-size:2.25rem;padding-inline:var(--space-3);border:1px solid var(--color-parchment-400);border-radius:1.125rem;background:var(--color-parchment-50);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-700);cursor:pointer}.ancestry-book-pill:where(:hover,:focus-visible){border-color:var(--color-heritage);color:var(--color-heritage)}.ancestry-book-pill[aria-pressed=true]{border-color:var(--color-heritage);background:var(--color-heritage);color:var(--color-parchment-50);font-weight:600}.ancestry-book-section{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ancestry-book-section-title{margin:0;padding-block-end:var(--space-1);border-block-end:1px solid var(--color-parchment-300);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-500)}.ancestry-book-trait{break-inside:avoid;margin-block-end:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-800)}.ancestry-book-traits-columns,.ancestry-book-archetypes{columns:2;column-gap:var(--space-8)}.ancestry-book-archetype{break-inside:avoid;display:flex;flex-direction:column;gap:var(--space-1);margin-block-end:var(--space-6)}.ancestry-book-archetype-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--space-2)}.ancestry-book-archetype-name{padding:var(--space-1) 0;border:none;border-radius:var(--radius-sm);background:none;font-family:var(--font-heading);font-size:var(--text-base);font-size:1.25rem;font-weight:700;color:var(--color-ink-800);text-align:start;cursor:pointer}.ancestry-book-archetype-name:where(:hover,:focus-visible){color:var(--color-heritage);text-decoration:underline;text-underline-offset:.15em}.ancestry-book-designed{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-400)}.ancestry-book-available{margin-inline-start:auto;font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-500)}.ancestry-book-archetype-description{margin:0 0 var(--space-1);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.ancestry-book-picked{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8);align-items:start}.ancestry-book-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--color-parchment-400);color:var(--color-ink-900)}.ancestry-book-actions-text{flex:1 1 16rem;font-size:var(--text-sm);color:var(--color-heritage)}.ancestry-book-actions-text strong{font-family:var(--font-heading);font-size:var(--text-base);color:var(--color-ink-900)}.ancestry-book-actions-choice{display:block;margin-block-start:var(--space-1);color:var(--color-ink-500)}.ancestry-book-actions .btn-secondary{border-color:var(--color-parchment-400);background:var(--color-heritage);color:var(--color-parchment-50)}@media(max-width:60rem){.ancestry-book-traits-columns,.ancestry-book-archetypes{columns:1}.ancestry-book-picked{grid-template-columns:minmax(0,1fr)}}@media(max-width:48rem){.ancestry-book{grid-template-columns:minmax(0,1fr)}.ancestry-book-index{position:static;max-block-size:16rem;border-inline-end:none;border-block-end:1px solid var(--color-parchment-300)}.ancestry-book-entry{padding:var(--space-6) var(--space-4) var(--space-8)}}.trait-tooltip-trigger{display:inline-flex;cursor:pointer}.trait-tooltip{z-index:1000;min-width:240px;max-width:320px;padding:var(--space-3);background:var(--color-ink-800);color:var(--color-parchment-100);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);font-family:var(--font-ui);pointer-events:none;animation:tooltip-fade-in .15s ease-out}.trait-tooltip.pinned{pointer-events:auto;padding-right:calc(var(--space-3) + 1.25rem);box-shadow:var(--shadow-lg),0 0 0 2px var(--color-heritage)}.trait-tooltip.pinned .trait-tooltip-close{--btn-bg: transparent;--btn-text: var(--color-parchment-100);--btn-border: .0625rem solid var(--color-ink-400);--btn-icon-color: var(--color-parchment-100);position:absolute;top:var(--space-1);right:var(--space-1);width:1.25rem;height:1.25rem;min-height:0;line-height:1;cursor:pointer}.trait-tooltip.pinned .trait-tooltip-close:hover,.trait-tooltip.pinned .trait-tooltip-close:focus-visible{--btn-bg: var(--color-ink-700);--btn-border: .0625rem solid var(--color-parchment-400)}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.ae-page{color-scheme:light;padding:var(--space-4);max-inline-size:1800px;margin-inline:auto}.ae-page .btn:disabled{border-color:var(--color-parchment-400);background:var(--color-parchment-200);color:var(--color-ink-400);cursor:not-allowed}.ae-muted{color:var(--color-ink-500);font-size:var(--text-sm)}.ae-error{color:var(--color-error);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.ae-empty{margin:0;padding:var(--space-2) 0;font-size:var(--text-sm);font-style:italic;color:var(--color-ink-500)}.ae-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-block-end:var(--space-3);border-block-end:1px solid var(--color-parchment-300);margin-block-end:var(--space-4)}.ae-header h1{margin:0 0 var(--space-1);font-size:var(--text-xl);color:var(--color-ink-900)}.ae-header p{margin:0;max-inline-size:70ch}.ae-header-actions{display:flex;align-items:center;gap:var(--space-2)}.ae-status{margin-inline-end:var(--space-2);font-size:var(--text-sm);color:var(--color-ink-600);max-inline-size:38ch;text-align:end}.ae-grid{display:grid;grid-template-columns:15rem minmax(0,1fr) minmax(20rem,28rem);gap:var(--space-4);align-items:start}.ae-col{box-sizing:border-box;border:1px solid var(--color-parchment-300);border-radius:var(--radius-md);background:var(--color-parchment-50);padding:var(--space-3);max-block-size:calc(100dvh - 190px);overflow:auto;overscroll-behavior:contain}@media(max-width:1100px){.ae-grid{grid-template-columns:minmax(0,1fr) minmax(18rem,24rem)}.ae-col-list{grid-column:1 / -1;max-block-size:14rem}}@media(max-width:760px){.ae-grid{grid-template-columns:minmax(0,1fr)}.ae-col{max-block-size:none}.ae-col-list{max-block-size:18rem}}.ae-input{box-sizing:border-box;inline-size:100%;min-block-size:2.25rem;padding:var(--space-2);border:1px solid var(--color-parchment-400);border-radius:var(--radius-sm);background:var(--color-parchment-50);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-800)}.ae-input::placeholder{color:var(--color-ink-400)}.ae-input:hover{border-color:var(--color-ink-400)}textarea.ae-input{min-block-size:4.5rem;resize:vertical}.ae-input-pts{inline-size:5rem}.ae-select{box-sizing:border-box;inline-size:100%;max-inline-size:16rem;min-block-size:2rem;padding-block:0;padding-inline:var(--space-2);border-color:var(--color-parchment-400);font-family:var(--font-body);color:var(--color-ink-800)}:where(.ae-input,.ae-select,.ae-slot-radio):focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.ae-linkish{border:none;background:none;padding:0;color:var(--color-heritage);font-family:var(--font-ui);font-size:var(--text-sm);text-decoration:underline;text-underline-offset:.15em;cursor:pointer}.ae-linkish:where(:hover,:focus-visible){color:var(--color-heritage-light)}.ae-tag{flex:none;padding:0 .25rem;border-radius:3px;background:var(--color-parchment-200);color:var(--color-ink-500);font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em}.ae-tag-note{background:var(--color-heritage-bg);color:var(--color-heritage)}.ae-col-list{padding:0;border:none;border-radius:0;background:none}.ae-col-list>.ae-input{position:sticky;inset-block-start:0;z-index:1}:is(.ae-ancestry-list,.ae-picker-rows)>li{margin-inline-start:0}.ae-ancestry-group{margin-block-start:var(--space-3)}.ae-ancestry-group-title{margin:0 0 var(--space-1);padding-inline:var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-400)}.ae-ancestry-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px}.ae-ancestry-btn{box-sizing:border-box;inline-size:100%;display:flex;flex-wrap:wrap;align-items:baseline;gap:.125rem var(--space-2);padding:var(--space-1) var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:none;text-align:start;cursor:pointer}.ae-ancestry-btn:where(:hover,:focus-visible){background:var(--color-parchment-200)}.ae-ancestry-btn.selected{border-color:var(--color-heritage);background:var(--color-card-bg-selected)}.ae-ancestry-btn-sub{padding-inline-start:var(--space-5)}.ae-ancestry-name{display:inline-flex;align-items:center;gap:var(--space-1);font-size:var(--text-sm);font-weight:600;color:var(--color-ink-800)}.ae-ancestry-btn.selected .ae-ancestry-name{color:var(--color-heritage)}.ae-ancestry-dirty{inline-size:.4375rem;block-size:.4375rem;border-radius:50%;background:var(--color-heritage)}.ae-ancestry-sub{font-size:var(--text-xs);color:var(--color-ink-400)}.ae-ancestry-warning{display:flex;flex-wrap:wrap;gap:var(--space-1);inline-size:100%}.ae-current{margin-block-end:var(--space-3)}.ae-current-title{margin:0;font-size:var(--text-lg);color:var(--color-ink-900)}.ae-current-sum{margin:var(--space-1) 0 0}.ae-subhead{margin:var(--space-5) 0 var(--space-2);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-500)}.ae-slot{border:1px solid var(--color-parchment-300);border-inline-start-width:3px;border-radius:var(--radius-sm);background:var(--color-card-bg-hover);padding:0 var(--space-3) var(--space-2);margin-block-end:var(--space-2)}.ae-slot-active{border-color:var(--color-parchment-400);border-inline-start-color:var(--color-heritage);background:var(--color-card-bg-selected);box-shadow:var(--shadow-sm)}.ae-slot-inherited{border-style:dashed;border-inline-start-style:solid;background:none}.ae-slot-inherited .ae-slot-name{font-weight:600;color:var(--color-ink-600)}.ae-slot-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);min-block-size:2.5rem;border-block-end:1px solid var(--color-parchment-200)}.ae-slot-target{display:flex;align-items:center;gap:var(--space-2);flex:1 1 auto;min-inline-size:0;align-self:stretch;cursor:pointer}.ae-slot-inherited .ae-slot-target{cursor:default}.ae-slot-radio{flex:none;inline-size:1rem;block-size:1rem;margin:0;accent-color:var(--color-heritage);cursor:inherit}.ae-slot-name{font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;color:var(--color-ink-800)}.ae-slot-target:hover .ae-slot-name,.ae-slot-active .ae-slot-name{color:var(--color-heritage)}.ae-slot-meta{display:flex;align-items:center;gap:var(--space-2);flex:none}.ae-points{font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--color-ink-500)}.ae-dirty{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--color-heritage);font-weight:700}.ae-trait-rows{list-style:none;margin:0;padding:0}.ae-trait-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2);min-block-size:2.25rem;border-block-end:1px solid var(--color-parchment-200);font-size:var(--text-sm)}.ae-trait-row:last-child{border-block-end:none}.ae-row-trigger{display:block;min-inline-size:0;cursor:pointer}.ae-row-label{display:flex;align-items:baseline;gap:var(--space-2);min-inline-size:0;white-space:nowrap}.ae-row-name{flex:0 1 auto;min-inline-size:0;overflow:hidden;text-overflow:ellipsis;color:var(--color-ink-800)}.ae-row-ref{flex:0 100 auto;min-inline-size:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-400)}.ae-row-pts{justify-content:center;min-inline-size:1.25rem;font-variant-numeric:tabular-nums}.ae-kind-spread .ae-row-name{font-style:italic;color:var(--color-ink-500)}.ae-trait-row-dropped :is(.ae-row-name,.ae-row-ref){color:var(--color-ink-300)}.ae-trait-row-dropped .ae-row-pts{text-decoration:line-through;opacity:.6}.ae-row-actions{display:flex}.ae-row-actions button{display:inline-grid;place-items:center;inline-size:1.75rem;block-size:1.75rem;padding:0;border:none;border-radius:var(--radius-sm);background:none;color:var(--color-ink-300);cursor:pointer}.ae-row-actions button:where(:hover,:focus-visible):not(:disabled){background:var(--color-parchment-200);color:var(--color-ink-800)}.ae-row-actions button:disabled{visibility:hidden}.ae-trait-row:is(:hover,:focus-within) .ae-row-actions button{color:var(--color-ink-600)}.ae-row-actions .ae-remove:where(:hover,:focus-visible){background:var(--color-error-bg);color:var(--color-error)}.ae-col-picker{padding-block-start:0}.ae-picker-head{position:sticky;inset-block-start:0;z-index:1;display:flex;flex-direction:column;gap:var(--space-2);margin-inline:calc(var(--space-3) * -1);padding:var(--space-3);border-block-end:1px solid var(--color-parchment-300);background:var(--color-parchment-50)}.ae-target{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin:0;font-size:var(--text-sm);color:var(--color-ink-700)}.ae-target strong{color:var(--color-heritage)}.ae-target-none{font-style:italic;color:var(--color-ink-500)}.ae-picker-search{display:flex;gap:var(--space-2)}.ae-picker-search .btn{flex:none}.ae-picker-group-title{margin:var(--space-3) 0 0;padding-block:var(--space-1);border-block-end:1px solid var(--color-parchment-300);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-ink-500)}.ae-picker-rows{list-style:none;margin:0;padding:0}.ae-picker-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--space-2);padding-block:var(--space-2);border-block-end:1px solid var(--color-parchment-200);font-size:var(--text-sm)}.ae-picker-row:last-child{border-block-end:none}.ae-picker-row .ae-row-ref{display:block}.ae-picker-main{display:flex;flex-direction:column;gap:var(--space-1);min-inline-size:0}.ae-picker-hit{font-weight:600;color:var(--color-heritage)}.ae-inline-form{display:flex;flex-direction:column;gap:var(--space-2);margin-block-start:var(--space-3);padding:var(--space-3);border:1px solid var(--color-parchment-300);border-radius:var(--radius-sm);background:var(--color-parchment-100)}.ae-inline-row{display:flex;gap:var(--space-2)}.ae-field{display:flex;flex-direction:column;gap:var(--space-1)}.ae-field-grow{flex:1 1 auto;min-inline-size:0}.ae-field-label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-ink-500)}.ae-add-inline{align-self:flex-start}.builder-filters{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-2) var(--space-3);padding:var(--space-2) var(--space-6) var(--space-3)}.builder-filters-field{display:flex;flex-direction:column;gap:var(--space-1)}.builder-filters-search{flex:1 1 16rem;max-inline-size:28rem}.builder-filters-label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500)}.builder-filters-control{box-sizing:border-box;block-size:2.25rem;padding-inline:var(--space-2);border:1px solid var(--color-parchment-400);border-radius:var(--radius-sm);background:var(--color-parchment-50);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-800)}.builder-filters-control::placeholder{color:var(--color-ink-400)}.builder-filters-control:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.builder-filters-category{max-inline-size:12rem}.builder-filters-toggle{display:flex;block-size:2.25rem;border:1px solid var(--color-parchment-400);border-radius:var(--radius-sm);overflow:hidden}.builder-filters-toggle button{padding-inline:var(--space-3);border:none;background:var(--color-parchment-50);font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-600);white-space:nowrap;cursor:pointer}.builder-filters-toggle button+button{border-inline-start:1px solid var(--color-parchment-400)}.builder-filters-toggle button[aria-pressed=true]{background:var(--color-ink-700);color:var(--color-parchment-50)}.builder-filters-toggle button:focus-visible{outline:2px solid var(--color-accent);outline-offset:-2px}.builder-filters-status{display:flex;align-items:center;gap:var(--space-2);margin:0;block-size:2.25rem;font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-ink-500)}.builder-filters-clear{padding:0;border:none;background:none;font:inherit;color:var(--color-heritage);text-decoration:underline;cursor:pointer}@media(max-width:48rem){.builder-filters{padding-inline:var(--space-4)}.builder-filters-search{flex-basis:100%;max-inline-size:none}}.ancestry-summary{background:var(--color-parchment-50);border:1px solid var(--color-parchment-300);border-radius:var(--radius-md);padding:var(--space-4)}.ancestry-summary.empty{display:flex;align-items:center;justify-content:center;min-height:200px}.ancestry-summary-placeholder{color:var(--color-ink-400);font-style:italic;text-align:center;line-height:var(--leading-relaxed)}.ancestry-summary-title{font-size:var(--text-xl);color:var(--color-ink-900);margin-bottom:var(--space-3);line-height:var(--leading-tight)}.ancestry-summary-desc{font-size:var(--text-sm);color:var(--color-ink-600);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.ancestry-summary-section{margin-bottom:var(--space-4)}.ancestry-summary-section h3{font-size:var(--text-base);color:var(--color-heritage);margin-bottom:var(--space-2);padding-bottom:var(--space-1);border-bottom:1px solid var(--color-parchment-300)}.ancestry-summary-traits{display:flex;flex-direction:column;gap:var(--space-2)}.ancestry-summary-clear{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;padding:0;border:1px solid var(--color-parchment-300);border-radius:var(--radius-sm);background:var(--color-parchment-100);color:var(--color-ink-500);font-size:var(--text-base);line-height:1;cursor:pointer;transition:background .15s,border-color .15s,color .15s}.ancestry-summary-clear:hover{background:var(--color-parchment-200);border-color:var(--color-heritage);color:var(--color-heritage)}.ancestry-summary-clear:focus-visible{outline:2px solid var(--color-heritage);outline-offset:2px}.ancestry-summary-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-block-end:var(--space-4);padding-block-end:var(--space-3);border-block-end:1px solid var(--color-parchment-300)}.ancestry-summary-points,.ancestry-summary-name{display:flex;flex-direction:column;gap:.125rem}.ancestry-summary-points{flex:0 0 auto;gap:.375rem}.ancestry-summary-name{flex:1 1 auto;min-width:0;gap:.25rem}.ancestry-summary-field-label{font-family:var(--font-ui);font-size:var(--text-xs);line-height:1;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-500)}.ancestry-summary-points-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:1;color:var(--color-heritage)}.ancestry-summary-points-value.over{color:var(--color-error)}.ancestry-summary-points-total{font-size:var(--text-base);font-weight:600;color:var(--color-ink-400)}.ancestry-summary-name-input{width:100%;min-width:0;padding:var(--space-1) var(--space-2);border:1px solid var(--color-parchment-300);border-radius:var(--radius-sm);background:var(--color-parchment-100);font-family:var(--font-heading);font-size:var(--text-base);color:var(--color-ink-800)}.ancestry-summary-name-input:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.ancestry-summary-warnings{display:flex;flex-direction:column;gap:var(--space-2);margin-block-end:var(--space-4)}.ancestry-summary-warning{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);color:var(--color-warning);background:var(--color-warning-bg)}.ancestry-summary-warning.info{color:var(--color-culture);background:var(--color-culture-bg)}.ancestry-summary-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding-block-start:var(--space-4);border-block-start:1px solid var(--color-parchment-300)}.ancestry-summary-export{display:flex;gap:var(--space-2)}.builder-summary-based-on{margin-block:calc(-1 * var(--space-2)) var(--space-4);font-size:var(--text-sm);color:var(--color-ink-600)}.builder-summary-expanded .ancestry-summary{padding:var(--space-6) var(--space-8) var(--space-8)}.builder-summary-expanded .ancestry-summary-header{flex-wrap:wrap;gap:var(--space-6);padding-block-end:var(--space-5)}.builder-summary-expanded .ancestry-summary-name{order:-1;flex:1 1 20rem}.builder-summary-expanded .ancestry-summary-name-input{block-size:3.25rem;font-family:var(--font-display);font-size:var(--text-2xl);font-weight:900;color:var(--color-ink-900)}.builder-summary-expanded .ancestry-summary-points-value{font-size:var(--text-2xl);line-height:3.25rem}.builder-summary-expanded .ancestry-summary-footer{flex-wrap:wrap}.builder-summary-field{display:flex;flex-direction:column;gap:.125rem}.builder-summary-source-name{font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;line-height:3.25rem;color:var(--color-ink-800)}.builder-summary-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-inline-start:auto}.pill.trait-type-tag{border:1px solid currentColor;background:none;color:var(--color-ink-600)}.pill.trait-type-tag.core{color:var(--color-blue-green-50)}.pill.trait-type-tag.heritage{color:var(--color-red-45)}.pill.trait-type-tag.culture{color:var(--color-culture)}.sticky-toolbar{position:sticky;inset-block-start:var(--tab-navigation-height);z-index:90;background:var(--color-parchment-50);border-block-end:1px solid var(--color-parchment-300);box-shadow:var(--shadow-sm)}.sticky-toolbar .toolbar-content{display:flex;flex-direction:column}.sticky-toolbar .toolbar-progress{block-size:4px;background:var(--color-parchment-300);overflow:hidden}.sticky-toolbar .toolbar-progress-bar{block-size:100%;background:var(--color-green-43);transition:width var(--transition-base)}.sticky-toolbar .toolbar-progress-bar.over{background:var(--color-error)}.sticky-toolbar .toolbar-row{display:flex;align-items:baseline;gap:var(--space-4);padding:var(--space-2) var(--space-6) 0}.sticky-toolbar .toolbar-points{flex:0 0 auto;white-space:nowrap}.sticky-toolbar .points-spent{font-family:var(--font-heading);font-size:var(--text-xl);font-weight:900;line-height:1;color:var(--color-heritage)}.sticky-toolbar .points-spent.over{color:var(--color-error)}.sticky-toolbar .points-total{font-family:var(--font-ui);font-size:var(--text-base);color:var(--color-ink-600)}.sticky-toolbar .toolbar-chosen{display:flex;align-items:baseline;gap:var(--space-2);min-width:0;font-size:var(--text-sm)}.sticky-toolbar .toolbar-chosen-label{flex:0 0 auto;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500)}.sticky-toolbar .toolbar-chosen-empty{font-style:italic;color:var(--color-ink-400)}.sticky-toolbar .toolbar-chosen-list{display:flex;flex-wrap:wrap;row-gap:var(--space-1);min-width:0}.sticky-toolbar .toolbar-chosen-item+.toolbar-chosen-item:before{content:"·";padding-inline:var(--space-2);color:var(--color-ink-400)}.sticky-toolbar .toolbar-chosen-button{padding:0;border:none;background:none;font:inherit;color:var(--color-ink-800)}.sticky-toolbar .toolbar-chosen-button:is(button){cursor:pointer}.sticky-toolbar .toolbar-chosen-button:is(button):where(:hover,:focus-visible){color:var(--color-heritage);text-decoration:underline;text-underline-offset:.15em}@media(max-width:48rem){.sticky-toolbar .toolbar-row{padding-inline:var(--space-4)}.sticky-toolbar .toolbar-chosen{display:none}.sticky-toolbar{position:static}}.sticky-toolbar .toolbar-content>:not(.toolbar-progress){box-sizing:border-box;inline-size:100%;max-inline-size:calc(46rem + 380px + var(--space-6) * 3);margin-inline:auto}.trait-paragraph{--trait-paragraph-accent: var(--color-heritage);position:relative;display:inline-block;vertical-align:top;inline-size:calc(100% + var(--space-2) * 2);break-inside:avoid;margin-block-end:var(--space-1);margin-inline:calc(var(--space-2) * -1);padding:var(--space-2);padding-inline-start:calc(var(--space-2) + 1.375rem);border-radius:var(--radius-sm);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-800);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast),color var(--transition-fast)}.trait-paragraph:is(:hover,:focus-visible):not(.disabled){background:var(--color-card-bg-hover)}.trait-paragraph:focus-visible{outline:2px solid var(--color-accent);outline-offset:0}.trait-paragraph-box{position:absolute;inset-inline-start:var(--space-2);inset-block-start:calc(var(--space-3) + .0625rem);inline-size:.875rem;block-size:.875rem;box-sizing:border-box;border:1.5px solid var(--color-ink-400);border-radius:2px;background:var(--color-parchment-50)}.trait-paragraph.selected .trait-paragraph-box{border-color:var(--trait-paragraph-accent);background:var(--trait-paragraph-accent)}.trait-paragraph.selected .trait-paragraph-box:after{content:"";position:absolute;inset-inline-start:.25rem;inset-block-start:.0625rem;inline-size:.25rem;block-size:.5rem;border:solid var(--color-parchment-50);border-width:0 2px 2px 0;rotate:45deg}.trait-paragraph.exclusive .trait-paragraph-box{border-radius:50%}.trait-paragraph.exclusive.selected .trait-paragraph-box{border-width:2px;background:var(--color-parchment-50)}.trait-paragraph.exclusive.selected .trait-paragraph-box:after{top:.125rem;right:.125rem;bottom:.125rem;left:.125rem;inline-size:auto;block-size:auto;border:none;border-radius:50%;background:var(--trait-paragraph-accent);rotate:none}.trait-paragraph.disabled .trait-paragraph-box{border-style:dashed;border-color:var(--color-ink-300);background:none}.trait-paragraph.locked{cursor:default}.trait-paragraph.disabled{color:var(--color-ink-300);cursor:default}:is(.trait-paragraph,.ancestry-book-trait,.summary-trait-paragraph) .trait-content-name{font-family:var(--font-heading);font-weight:700;color:var(--color-ink-900)}.trait-paragraph.disabled .trait-content-name{color:var(--color-ink-300)}:is(.trait-paragraph,.ancestry-book-trait,.summary-trait-paragraph) .trait-content-cost{font-family:var(--font-ui);font-weight:400;color:var(--trait-paragraph-accent)}.trait-paragraph.disabled .trait-content-cost{color:var(--color-ink-300)}:is(.trait-paragraph,.ancestry-book-trait,.summary-trait-paragraph) :is(.trait-content-description,.trait-content-description p){display:inline}:is(.trait-paragraph,.ancestry-book-trait,.summary-trait-paragraph) .trait-content-description:before{content:" "}.trait-paragraph-note{font-style:italic;color:var(--color-ink-500)}.trait-paragraph.disabled .trait-paragraph-note{color:var(--color-ink-300)}.trait-paragraph-blocked{font-family:var(--font-ui);font-size:var(--text-xs);letter-spacing:.04em;text-transform:uppercase;color:var(--color-heritage-dark)}.trait-paragraph-options{list-style:none;margin:var(--space-1) 0 0;padding:0}.trait-paragraph-option{margin:0}.trait-paragraph-option label{display:flex;align-items:baseline;gap:var(--space-2);padding:.125rem var(--space-1);border-radius:var(--radius-sm);cursor:inherit}.trait-paragraph-option:not(.selected) label:hover{background:var(--color-parchment-200)}.trait-paragraph-option-radio{flex:0 0 auto;align-self:baseline;translate:0 .125rem;margin:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;inline-size:.875rem;block-size:.875rem;box-sizing:border-box;border:1.5px solid var(--color-ink-400);border-radius:50%;background:var(--color-parchment-50);cursor:inherit}.trait-paragraph-option-radio:checked{border:2px solid var(--trait-paragraph-accent);background:var(--trait-paragraph-accent);box-shadow:inset 0 0 0 .125rem var(--color-parchment-50)}.trait-paragraph-option-radio:disabled{border-style:dashed;border-color:var(--color-ink-300);background:none}.trait-paragraph-option-radio:focus-visible{outline:2px solid var(--color-accent);outline-offset:1px}.trait-paragraph-option-text{min-width:0;line-height:var(--leading-normal)}.trait-paragraph-option-name{font-weight:600}.trait-paragraph-option :is(.trait-paragraph-option-desc,.trait-paragraph-option-desc p){display:inline;color:var(--color-ink-600)}.trait-paragraph-option.selected .trait-paragraph-option-name{color:var(--trait-paragraph-accent)}.trait-paragraph.selected:has(.trait-paragraph-option.selected) .trait-paragraph-option:not(.selected),.trait-paragraph.disabled .trait-paragraph-option{color:var(--color-ink-300)}.trait-paragraph.selected:has(.trait-paragraph-option.selected) .trait-paragraph-option:not(.selected) :is(.trait-paragraph-option-name,.trait-paragraph-option-desc,.trait-paragraph-option-desc p,.trait-content-cost),.trait-paragraph.disabled .trait-paragraph-option :is(.trait-paragraph-option-name,.trait-paragraph-option-desc,.trait-paragraph-option-desc p,.trait-content-cost){color:var(--color-ink-300)}.trait-block{--trait-paragraph-accent: var(--color-heritage);margin-block-end:var(--space-8)}.trait-block.core{--trait-paragraph-accent: var(--color-blue-green-50)}.trait-block.heritage{--trait-paragraph-accent: var(--color-red-45)}.trait-block.culture{--trait-paragraph-accent: var(--color-culture)}.trait-block.missing-required{--trait-paragraph-accent: var(--color-warning)}.trait-block-header{display:flex;align-items:baseline;gap:var(--space-2);margin-block-end:var(--space-2);padding-block-end:var(--space-1);border-block-end:1px solid var(--color-parchment-300)}.trait-block-name{flex:1 1 auto;min-width:0;font-family:var(--font-heading);font-size:var(--text-lg);color:var(--trait-paragraph-accent)}.trait-block-label{flex:0 0 auto;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-ink-500)}.trait-block-description{margin:0 0 var(--space-3);font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.trait-block-columns{columns:2;column-gap:var(--space-8);orphans:2;widows:2}@media(max-width:60rem){.trait-block-columns{columns:1}}.builder-page{--builder-page-toolbar-height: 3.25rem}.builder-page .ancestries-summary-col{top:calc(var(--tab-navigation-height) + var(--builder-page-toolbar-height) + var(--space-4));max-height:calc(100vh - var(--tab-navigation-height) - var(--builder-page-toolbar-height) - var(--space-8))}.builder-page .ancestry-category+.ancestry-category{margin-block-start:var(--space-4)}.builder-page .trait-paragraph.highlight-flash{animation:builder-page-flash 1.5s ease-out}@keyframes builder-page-flash{0%,60%{background:var(--color-warning-bg)}to{background:transparent}}.builder-page-empty{margin:var(--space-8) 0;font-size:var(--text-base);font-style:italic;color:var(--color-ink-400)}.builder-page-bar{display:none}@media(max-width:48rem){.builder-page{padding-block-end:4.5rem}.builder-page .ancestries-summary-col{scroll-margin-block-start:calc(var(--tab-navigation-height) + var(--builder-page-toolbar-height))}.builder-page-bar{position:fixed;inset:auto 0 0;z-index:90;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-ink-900);color:var(--color-parchment-200)}.builder-page-bar-text{display:flex;flex-direction:column;flex:1 1 auto;min-width:0}.builder-page-bar-name{overflow:hidden;font-family:var(--font-heading);font-weight:700;white-space:nowrap;text-overflow:ellipsis;color:var(--color-parchment-50)}.builder-page-bar-points{font-family:var(--font-ui);font-size:var(--text-sm)}.builder-page-bar-button{flex:0 0 auto;min-block-size:2.75rem;text-decoration:none}}.audit-page{max-width:var(--max-width);margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-12)}.audit-loading,.audit-error-message,.audit-empty{padding:var(--space-6);font-family:var(--font-body);color:var(--color-ink-600)}.audit-error-message{color:var(--color-error)}.audit-header{margin-bottom:var(--space-6)}.audit-header h1{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-ink-900);margin:0 0 var(--space-2)}.audit-subtitle{font-family:var(--font-body);font-size:var(--text-sm);color:var(--color-ink-600);margin:0 0 var(--space-5);max-width:60ch}.audit-stats{display:flex;flex-wrap:wrap;gap:var(--space-3);margin-bottom:var(--space-4)}.audit-stat{display:flex;flex-direction:column;align-items:flex-start;min-width:6.5rem;padding:var(--space-3) var(--space-4);background:var(--color-parchment-100);border:var(--border-thin);border-radius:var(--radius-md)}.audit-stat-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-ink-900);line-height:var(--leading-tight)}.audit-stat-label{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-500)}.audit-stat.tone-good .audit-stat-value{color:var(--color-success)}.audit-stat.tone-warn .audit-stat-value{color:var(--color-warning)}.audit-stat.tone-bad .audit-stat-value{color:var(--color-error)}.audit-legend{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.audit-filter{display:inline-flex;align-items:center;gap:var(--space-2);font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-ink-700);cursor:pointer}.audit-chip{display:inline-block;padding:.15em .6em;border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;white-space:nowrap;background:var(--pill-bg);color:var(--pill-text)}.audit-chip.status-ok{background:var(--color-success-bg);color:var(--color-success)}.audit-chip.status-override{background:var(--color-heritage-bg);color:var(--color-heritage-dark)}.audit-chip.status-inline{background:var(--color-culture-bg);color:var(--color-culture-dark)}.audit-chip.status-bad-option,.audit-chip.status-unresolved,.audit-chip.status-empty{background:var(--color-error-bg);color:var(--color-error)}.audit-chip.status-unused{background:var(--color-warning-bg);color:var(--color-warning)}.audit-source{font-family:var(--font-mono);font-size:var(--text-xs);padding:.1em .45em;border-radius:var(--radius-sm);background:var(--color-parchment-200);color:var(--color-ink-600)}.audit-source.src-imported{background:var(--color-blue-green-21);color:var(--color-parchment-50)}.audit-source.src-curated{background:var(--color-gold-89);color:var(--color-ink-800)}.audit-source.src-inline{background:var(--color-culture-bg);color:var(--color-culture-dark)}.audit-list{display:flex;flex-direction:column;gap:var(--space-4)}.audit-ancestry{border:var(--border-thin);border-radius:var(--radius-md);background:var(--color-parchment-50);overflow:hidden}.audit-ancestry.has-errors{border-color:var(--color-error);box-shadow:var(--shadow-sm)}.audit-ancestry.audit-unused{border-color:var(--color-warning)}.audit-ancestry-head{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-parchment-100);border-bottom:var(--border-thin)}.audit-ancestry-name{font-family:var(--font-display);font-size:var(--text-lg);margin:0;color:var(--color-ink-900)}.audit-ancestry-category{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-ink-500)}.audit-ancestry-meta{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-ink-500);margin-left:auto}.audit-ancestry-status{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.04em}.audit-ancestry-status.good{color:var(--color-success)}.audit-ancestry-status.bad{color:var(--color-error)}.audit-table{width:100%;border-collapse:collapse;font-family:var(--font-body);font-size:var(--text-sm)}.audit-table thead th{text-align:left;padding:var(--space-2) var(--space-4);font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-ink-500);border-bottom:var(--border-thin)}.audit-table tbody td{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-parchment-300);vertical-align:top}.audit-table tbody tr:last-child td{border-bottom:none}.audit-table tbody tr.row-error{background:var(--color-error-bg)}.col-group{color:var(--color-ink-500);white-space:nowrap}.col-ref code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-ink-800)}.col-detail{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-ink-500)}.col-resolved{color:var(--color-ink-700)}@media(max-width:640px){.audit-table thead{display:none}.audit-table,.audit-table tbody,.audit-table tr,.audit-table td{display:block;width:100%}.audit-table tr{padding:var(--space-2) 0;border-bottom:var(--border-thin)}.audit-table td{border:none;padding:.15em var(--space-4)}}.overview-page{flex:1;padding:var(--space-10) var(--space-6)}.overview-page-container{max-inline-size:52rem;margin-inline:auto}.overview-page-source{display:flex;flex-direction:column;gap:var(--space-2);margin-block-end:var(--space-6)}.overview-page-section-title,.overview-page .ancestry-summary-section h3{margin:0;padding-block-end:var(--space-1);border-block-end:1px solid var(--color-parchment-300);font-family:var(--font-heading);font-size:var(--text-sm);letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-500)}.overview-page-summary{margin:0;font-size:var(--text-base);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.overview-page-description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-ink-600)}.overview-page-description p{margin:0}@media(max-width:48rem){.overview-page{padding:var(--space-4)}}.error-boundary{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8);background:var(--color-paper-100)}.error-boundary__content{max-width:600px;width:100%;background:#fff;border-radius:var(--radius-lg);padding:var(--space-8);box-shadow:var(--shadow-lg);border:1px solid var(--color-ink-200)}.error-boundary__title{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-error, #dc2626);margin:0 0 var(--space-4) 0}.error-boundary__message{font-family:var(--font-body);font-size:var(--text-base);color:var(--color-ink-700);margin-bottom:var(--space-4);padding:var(--space-3);background:var(--color-paper-200, #f5f5f5);border-radius:var(--radius-md);word-break:break-word}.error-boundary__details{margin-bottom:var(--space-4)}.error-boundary__details summary{cursor:pointer;font-weight:600;color:var(--color-ink-600);padding:var(--space-2) 0}.error-boundary__details summary:hover{color:var(--color-ink-800)}.error-boundary__stack{font-family:Consolas,Monaco,monospace;font-size:var(--text-sm, .875rem);background:var(--color-ink-900, #1a1a1a);color:#f8f8f2;padding:var(--space-4);border-radius:var(--radius-md);overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:200px;overflow-y:auto;margin-top:var(--space-2)}.error-boundary__actions{display:flex;gap:var(--space-3);margin-top:var(--space-6)}.error-boundary__button{flex:1;padding:var(--space-3) var(--space-4);font-family:var(--font-body);font-size:var(--text-base);font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:background-color .2s,transform .1s;background:var(--color-accent, #2563eb);color:#fff}.error-boundary__button:hover{background:var(--color-accent-dark, #1d4ed8)}.error-boundary__button:active{transform:scale(.98)}.error-boundary__button--secondary{background:var(--color-ink-200, #e5e5e5);color:var(--color-ink-700)}.error-boundary__button--secondary:hover{background:var(--color-ink-300, #d4d4d4)}:root{--font-display: "New Spirit", "Lapture", "Modesto Condensed", "Palatino Linotype", serif;--font-heading: "Lapture", "Source Serif 4", "Palatino Linotype", serif;--font-body: "Source Sans 3", "Fira Sans", "Cardo", "Roboto", "Helvetica", "Arial", sans-serif;--font-ui: "Trade Gothic Next LT Pro Cn", "Barlow Condensed", "Segoe UI", system-ui, sans-serif;--font-mono: "Fira Code", "Consolas", monospace;--text-xs: .8125rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.25rem;--text-xl: 1.5rem;--text-2xl: 2rem;--text-3xl: 2.5rem;--leading-tight: 1.25;--leading-normal: 1.3125;--leading-relaxed: 1.5;--color-parchment-50: rgba(251, 250, 247, 1);--color-parchment-100: #f9f6ef;--color-parchment-200: #f0ead8;--color-parchment-300: #e4dbc0;--color-parchment-400: #d4c9a8;--color-ink-900: #1a1610;--color-ink-800: #2d2820;--color-ink-700: #3d3730;--color-ink-600: #4d4540;--color-ink-500: #635850;--color-ink-400: #796d63;--color-ink-300: #918579;--color-heritage: #8b4513;--color-heritage-light: #a0522d;--color-heritage-dark: #6b3410;--color-heritage-bg: rgba(139, 69, 19, .08);--color-card-bg-hover: rgba(255, 255, 255, .75);--color-card-bg-selected: rgba(255, 255, 255, .95);--color-culture: #2e5a4c;--color-culture-light: #3d7a65;--color-culture-dark: #1e3a32;--color-culture-bg: rgba(46, 90, 76, .08);--color-accent: #8b6914;--color-accent-light: #b8922a;--color-accent-dark: #745812;--color-warning: #b8860b;--color-warning-bg: rgba(184, 134, 11, .1);--color-error: #8b0000;--color-error-bg: rgba(139, 0, 0, .1);--color-success: #228b22;--color-success-bg: rgba(34, 139, 34, .1);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--border-thin: 1px solid var(--color-ink-500);--border-decorative: 2px solid var(--color-accent);--shadow-sm: 0 1px 2px rgba(26, 22, 16, .1);--shadow-md: 0 4px 6px rgba(26, 22, 16, .12);--shadow-lg: 0 10px 15px rgba(26, 22, 16, .15);--shadow-inset: inset 0 2px 4px rgba(26, 22, 16, .08);--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--max-width: 1200px;--sidebar-width: 320px;--header-height: 64px;--tab-navigation-height: 3rem;--pill-bg: var(--color-parchment-300);--pill-text: var(--color-ink-700);--pill-bg-restricted: rgba(190, 40, 53, .16);--pill-text-restricted: rgba(133, 28, 37, 1);--pill-bg-required: rgba(184, 134, 11, .16);--pill-text-required: rgba(133, 102, 28, 1);--pill-bg-free: rgba(46, 90, 76, .16);--pill-text-free: rgba(30, 58, 50, 1);--pill-bg-cost: rgba(139, 105, 20, 1);--pill-text-cost: rgba(250, 250, 250, 1);--pill-bg-size: rgba(212, 201, 168, 1);--pill-text-size: rgba(77, 69, 64, 1);--color-gold-94: rgba(240, 240, 225, 1);--color-gold-89: rgba(226, 208, 168, 1);--color-gold-75: rgba(192, 173, 129, 1);--color-gold-62: rgba(159, 146, 117, 1);--color-gold-56: rgb(127, 110, 69);--color-gold-45: rgb(115, 99, 63);--color-red: rgba(116, 27, 43, 1);--color-red-100: rgba(255, 0, 0, 1);--color-red-60: rgba(154, 42, 48, 1);--color-red-45: rgba(116, 27, 43, 1);--color-red-31: rgba(80, 0, 0, 1);--color-red-27: rgba(68, 25, 26, 1);--color-orange: rgba(179, 99, 25, 1);--color-orange-100: rgba(255, 100, 0, 1);--color-orange-97: rgba(248, 117, 88, 1);--color-orange-70: rgba(179, 99, 25, 1);--color-orange-55: rgba(170, 78, 20, 1);--color-orange-40: rgba(101, 56, 14, 1);--color-yellow: rgba(255, 182, 42, 1);--color-yellow-100: rgba(255, 182, 42, 1);--color-green: rgba(55, 109, 71, 1);--color-green-68: rgba(114, 173, 17, 1);--color-green-65: rgba(59, 165, 93, 1);--color-green-43: rgba(55, 109, 71, 1);--color-green-38: rgba(49, 95, 63, 1);--color-green-29: rgba(27, 75, 41, 1);--color-green-21: rgba(19, 53, 29, 1);--color-blue: rgba(31, 76, 145, 1);--color-blue-70: rgba(36, 124, 178, 1);--color-blue-57: rgba(31, 76, 145, 1);--color-blue-33: rgba(18, 44, 84, 1);--color-blue-green: rgba(2, 90, 128, 1);--color-blue-green-50: rgba(2, 90, 128, 1);--color-blue-green-40: rgb(2, 84, 119);--color-blue-green-30: rgba(1, 54, 77, 1);--color-blue-green-21: rgba(1, 36, 49, 1)}@layer{*,*:before,*:after{box-sizing:border-box;background-repeat:no-repeat}*{padding:0;margin:0}html{-webkit-text-size-adjust:none;text-size-adjust:none;line-height:1.5;-webkit-font-smoothing:antialiased;block-size:100%}body{min-block-size:100%}img,iframe,audio,video,canvas{display:block;max-inline-size:100%;block-size:auto}svg{max-inline-size:100%}svg:not([fill]){fill:currentColor}input,button,textarea,select{font:inherit}textarea{resize:vertical}fieldset,iframe{border:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}p{text-wrap:pretty;font-variant-numeric:proportional-nums}h1,h2,h3,h4,h5,h6{font-variant-numeric:lining-nums}p,blockquote,q,figcaption,li{hanging-punctuation:first allow-end last}input,label,button,h1,h2,h3,h4,h5,h6{line-height:1.1}math,time,table{font-variant-numeric:tabular-nums lining-nums slashed-zero}code{font-variant-numeric:slashed-zero}table{border-collapse:collapse}abbr{font-variant-caps:all-small-caps;text-decoration:none}abbr[title]{cursor:help;text-decoration:underline dotted}sup,sub{line-height:0}:disabled{opacity:.8;cursor:not-allowed}:focus-visible{outline-offset:.2rem}}html{font-size:16px;font-family:var(--font-body)}body{background-color:var(--color-parchment-100)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background-color:var(--color-parchment-100);background-image:radial-gradient(ellipse at top,var(--color-parchment-50) 0%,transparent 50%),radial-gradient(ellipse at bottom right,var(--color-parchment-200) 0%,transparent 40%)}#root{min-height:100vh;display:flex;flex-direction:column}.app{display:flex;flex-direction:column;min-height:100vh}.app-content{flex:1}.app-footer{padding:var(--space-4) var(--space-6);background:var(--color-ink-900);color:var(--color-parchment-400);text-align:center;font-family:var(--font-ui);font-size:var(--text-sm)}h1,h2,h3{font-weight:700;color:var(--color-ink-900);line-height:var(--leading-tight);text-box:trim-both cap alphabetic}h1{font-weight:900;font-family:var(--font-display);font-size:var(--text-3xl)}h2{font-weight:900;font-family:var(--font-heading);font-size:var(--text-2xl)}h3{font-family:var(--font-heading);font-size:var(--text-lg)}h4{font-family:var(--font-heading);font-size:var(--text-base)}p:last-child{margin-bottom:0}small{font-size:var(--text-sm)}strong{font-weight:600}a{color:var(--color-heritage);transition:color var(--transition-fast)}a:hover{color:var(--color-heritage-light)}ul{list-style:disc}ul li{margin-left:var(--space-4)}ul li::marker{color:var(--category-background-light, var(--color-heritage))}.flex1{flex:1}.flexcol{display:flex;flex-direction:column}.flexrow{display:flex;flex-direction:row}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-parchment-200)}::-webkit-scrollbar-thumb{background:var(--color-ink-500);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-600)}.pill{display:inline-flex;align-items:center;flex:0 1 fit-content;height:1.25rem;padding:0 .375rem .125rem;font-family:var(--font-ui);font-size:var(--text-xs);font-weight:500;text-transform:uppercase;letter-spacing:2%;border-radius:var(--radius-sm);white-space:nowrap;background:var(--pill-bg);color:var(--pill-text);width:fit-content}.pill .points{font-variation-settings:"wght" 640}.pill.cost{--pill-bg: oklch(from var(--pill-bg-cost) l c h / .16);--pill-text: oklch(from var(--pill-bg-cost) calc(l*.88) c h);flex-shrink:0}.pill.cost:is(.selected .pill.cost){--pill-bg: var(--pill-bg-cost);--pill-text: var(--pill-text-cost)}.pill.cost.free,.pill.free{--pill-bg: var(--pill-bg-free);--pill-text: var(--pill-text-free)}.pill.cost.free:is(.selected .pill.cost){--pill-bg: var(--color-green-38);--pill-text: white}.pill.required{--pill-bg: var(--color-warning);--pill-text: white}.pill.restriction{--pill-bg: var(--pill-bg-restricted);--pill-text: var(--pill-text-restricted)}.pill.requirement{--pill-bg: var(--pill-bg-required);--pill-text: var(--pill-text-required)}.pill.size{--pill-bg: var(--pill-bg-size);--pill-text: var(--pill-text-size)}.pill.type{text-transform:uppercase;letter-spacing:.05em}.pill.type.heritage{--pill-bg: var(--color-heritage-bg);--pill-text: var(--color-heritage-light)}.pill.type.culture{--pill-bg: var(--color-culture-bg);--pill-text: var(--color-culture-light)}.pill.type.core{--pill-bg: var(--color-gold-89);--pill-text: var(--color-gold-45)}.pill.type.on-dark{--pill-bg: rgba(255, 255, 255, .16);--pill-text: rgba(255, 255, 255, .72);border:.0625rem solid rgba(255,255,255,.24)}.pill.trait{text-transform:none;font-size:.875rem;font-weight:500;padding:0 .375rem .125rem;border:1px solid var(--color-parchment-300);transition:all var(--transition-fast);cursor:pointer}.pill.trait:hover{--pill-bg: var(--color-parchment-300);border-color:var(--color-ink-400);--pill-text: var(--color-ink-800)}.pill.trait.custom{cursor:default;border-style:dashed;--pill-bg: var(--color-parchment-100)}.pill.trait.custom:hover{--pill-bg: var(--color-parchment-200);border-color:var(--color-parchment-400)}.pill.count{font-weight:600;padding:.125rem var(--space-2);--pill-bg: rgba(255, 255, 255, .25);--pill-text: var(--color-parchment-100)}.pill.count.heritage{--pill-bg: var(--color-heritage);--pill-text: white}.pill.count.culture{--pill-bg: var(--color-culture);--pill-text: white}.pill.dark{--pill-bg: var(--color-gold-56);--pill-text: var(--color-parchment-50)}.pill.dark.free{--pill-bg: var(--color-green-38);--pill-text: var(--color-parchment-50)}.pill-wrapper{display:inline-flex;cursor:pointer}.pill-wrapper.block{display:block}.pill.clickable{cursor:pointer}.pill.clickable:hover{background:oklch(from var(--category-background-light) calc(l*1) calc(c*1) h / .32);color:var(--color-ink-800)}.btn{--btn-bg: var(--color-heritage);--btn-text: var(--color-parchment-50);--btn-border: none;--btn-icon-color: var(--color-parchment-50);align-items:center;background-color:var(--btn-bg);border:var(--btn-border);border-radius:var(--radius-sm);color:var(--btn-text);cursor:pointer;display:inline-flex;font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;gap:var(--space-2);justify-content:center;min-height:2.25rem;padding:.4375rem var(--space-4) .5625rem;text-decoration:none;transition:all var(--transition-fast)}.btn svg{fill:var(--btn-icon-color)}.btn-primary{--btn-bg: var(--color-heritage);--btn-text: var(--color-parchment-50);--btn-border: .0625rem solid var(--color-heritage-dark)}.btn-primary:hover{background-color:var(--color-heritage-light)}.btn-secondary{--btn-bg: transparent;--btn-text: var(--color-ink-700);--btn-border: .0625rem solid var(--color-ink-500);--btn-icon-color: var(--color-ink-700)}.btn-secondary:hover,.btn-secondary:focus-visible,.btn-secondary:active{--btn-bg: var(--color-parchment-200);--btn-border: .0625rem solid var(--color-ink-700)}.btn-small{padding:.0625rem var(--space-2) .1875rem}.btn-icon-only{aspect-ratio:1 / 1;padding:0;align-items:center;justify-content:center}.btn-icon-only svg{height:1rem;width:1rem}select{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border:1px solid var(--color-ink-500);border-radius:var(--radius-sm);background-color:var(--color-parchment-50);cursor:pointer}select:hover{border-color:var(--color-ink-700)}.card.card-large{background:var(--color-parchment-50);border-radius:var(--radius-lg);padding:var(--space-6);box-shadow:0 2px 8px #1a161014}.ancestries-page{padding:var(--space-6);max-width:var(--max-width);margin:0 auto}.ancestries-page .ancestries-header{margin-bottom:var(--space-8)}.ancestries-page .ancestries-header h1{font-size:var(--text-2xl);color:var(--color-ink-900);margin-bottom:var(--space-2)}.ancestries-page .ancestries-header p{color:var(--color-ink-600);line-height:var(--leading-relaxed);max-width:700px}.ancestries-two-col{display:grid;grid-template-columns:1fr 380px;gap:var(--space-6);align-items:start}.ancestries-browse{min-width:0}.ancestries-summary-col{position:sticky;top:calc(var(--header-height) + var(--space-4));max-height:calc(100vh - var(--header-height) - var(--space-8));overflow-y:auto}.ancestries-page .ancestry-category{margin-bottom:var(--space-10)}.ancestries-page .category-header{margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-parchment-300)}.ancestries-page .category-header h2{font-size:var(--text-xl);color:var(--color-heritage);margin-bottom:var(--space-1)}.ancestries-page .category-desc{font-size:var(--text-base);color:var(--color-ink-600)}.ancestries-page .ancestry-subcategory{margin-top:var(--space-6)}.ancestries-page .subcategory-header{margin-bottom:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--color-parchment-300)}.ancestries-page .subcategory-header h3{font-size:var(--text-lg);color:var(--color-heritage);margin-bottom:var(--space-1)}.ancestries-page .subcategory-desc{font-size:var(--text-sm);color:var(--color-ink-600)}.ancestries-page .loading-message,.ancestries-page .error-message{text-align:center;padding:var(--space-8);color:var(--color-ink-600)}.ancestries-page .error-message{color:var(--color-error)}@media(max-width:768px){.ancestries-page{padding:var(--space-4)}.ancestries-page .ancestries-header h1{font-size:var(--text-xl)}.ancestries-two-col{grid-template-columns:1fr}.ancestries-summary-col{position:static;max-height:none;overflow-y:visible}}.ancestries-two-col.list-view{grid-template-columns:minmax(0,46rem) 380px;justify-content:center}@media(max-width:768px){.ancestries-two-col.list-view{grid-template-columns:1fr}}
