@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{background:linear-gradient(135deg,var(--color-ink-700) 0%,var(--color-ink-900) 100%);padding:0 var(--space-6);position:sticky;top:0;z-index:100}.tab-navigation .tab-list{display:flex;gap:var(--space-1);max-width:var(--max-width);margin:0 auto}.tab-navigation .tab-item{background:transparent;border:none;color:var(--color-parchment-400);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;padding:var(--space-3) var(--space-4);cursor:pointer;position:relative;transition:color var(--transition-fast),background var(--transition-fast)}.tab-navigation .tab-item:hover{color:var(--color-parchment-100);background:#ffffff0d}.tab-navigation .tab-item.active{color:var(--color-parchment-50);background:#ffffff1a}.tab-navigation .tab-item.active:after{content:"";position:absolute;bottom:0;left:var(--space-2);right:var(--space-2);height:2px;background:var(--color-heritage)}@media (max-width: 640px){.tab-navigation{padding:0 var(--space-3)}.tab-navigation .tab-list{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tab-navigation .tab-list::-webkit-scrollbar{display:none}.tab-navigation .tab-item{padding:var(--space-3);white-space:nowrap;font-size:var(--text-xs)}}.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}@keyframes tooltip-fade-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.trait-tooltip .tooltip-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-2)}.trait-tooltip .tooltip-name{font-family:var(--font-heading);font-size:var(--text-base);font-weight:600;color:var(--color-parchment-50)}.trait-tooltip .tooltip-source{font-size:var(--text-sm);color:var(--color-parchment-300);margin-bottom:var(--space-2)}.trait-tooltip .tooltip-source .source-label{font-weight:500;color:var(--color-parchment-400)}.trait-tooltip .tooltip-option-description{font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-parchment-200);margin:0 0 var(--space-2);padding:var(--space-2);background:#ffffff0f;border-radius:var(--radius-sm);border-left:2px solid var(--color-accent-500)}.trait-tooltip .tooltip-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 .tooltip-meta{display:flex;align-items:center;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-ink-600)}.trait-tooltip .tooltip-meta:empty,.trait-tooltip .tooltip-meta:not(:has(*)){display:none}.card-trait{background:var(--color-parchment-50);border:.0625rem solid oklch(from var(--category-border) l c h / .5);border-radius:var(--radius-md);cursor:pointer;display:flex;flex-direction:column;padding:var(--space-3) var(--space-4) var(--space-4);position:relative;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.card-trait:hover:not(.disabled){background:var(--color-card-bg-hover);border-color:var(--color-ink-700);box-shadow:var(--shadow-md)}.card-trait:focus-visible{outline:.125rem solid var(--color-accent);outline-offset:.125rem}.card-trait.selected{background-color:var(--color-card-bg-selected);outline:.0625rem solid var(--category-border);border-color:var(--category-border);box-shadow:var(--shadow-sm),inset .1875rem 0 var(--category-border)}.card-trait.selected:hover,.card-trait.selected:focus-visible,.card-trait.selected:active{box-shadow:var(--shadow-sm),inset .1875rem 0 var(--category-border)}.card-trait.disabled{background:var(--color-parchment-100);color:var(--color-ink-500);cursor:default}.card-trait.disabled:hover{transform:none;box-shadow:none}.card-trait.locked{cursor:default}.card-trait.locked:hover{box-shadow:var(--shadow-sm),inset .1875rem 0 var(--category-border)}.card-trait.required:not(:has(.option.selected)){outline:.0625rem solid var(--color-warning);box-shadow:var(--shadow-sm),inset .1875rem 0 var(--color-warning)}.card-trait.required:not(:has(.option.selected)):hover,.card-trait.required:not(:has(.option.selected)):focus-visible,.card-trait.required:not(:has(.option.selected)):active{outline:.0625rem solid var(--color-warning);box-shadow:var(--shadow-sm),inset .1875rem 0 var(--color-warning)}.card-trait:not(.selected) .pill.required{background:var(--pill-bg-required);color:var(--pill-text-required)}.card-trait:not(.selected):hover .pill.required,.card-trait:not(.selected):focus-visible .pill.required,.card-trait:not(.selected):active .pill.required{background:var(--color-warning);color:#fff}.card-trait .header{align-items:center;display:flex;gap:var(--space-2);justify-content:space-between;margin-bottom:var(--space-1)}.card-trait .name{font-family:var(--font-heading);font-size:1rem;font-weight:700;color:var(--color-ink-900);margin:.0625rem 0 0;line-height:var(--leading-tight)}.card-trait .name .selected-option{color:var(--color-heritage)}.card-trait.disabled .name{color:var(--color-ink-300)}.card-trait .header .pill{margin-top:-.125rem}.card-trait .description{font-size:.9375rem;color:var(--color-ink-800);line-height:var(--leading-normal);margin:0}.card-trait .description a{font-style:italic;color:var(--category-background-light)}.card-trait .description a:hover,.card-trait .description a:focus-visible,.card-trait .description a:active{color:var(--category-background-light-hover);text-decoration:underline;text-decoration-thickness:.125rem;text-decoration-color:oklch(from var(--category-background-light) l c h)}.card-trait.disabled .description{color:var(--color-ink-400)}.card-trait .disabled-reason{margin-top:var(--space-2);padding:var(--space-1) var(--space-2);background:var(--color-warning-bg);border-radius:var(--radius-sm);font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-warning)}.card-trait .pill.requirement,.card-trait .pill.restriction{margin-left:-.25rem}.card-trait.has-options.selected .indicator{display:none}.card-trait .options{margin-top:var(--space-3);padding-top:var(--space-3);border-top:.0625rem solid var(--color-parchment-300)}.card-trait .options-label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-600);margin-bottom:var(--space-2)}.card-trait .option{display:flex;flex-wrap:wrap;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);margin-bottom:var(--space-1);background:var(--color-parchment-100);border:.0625rem solid var(--color-parchment-400);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.card-trait .option:hover{background:var(--color-parchment-200);border-color:var(--color-ink-400)}.card-trait .option.selected{background-color:var(--color-card-bg-selected);outline:.0625rem solid var(--color-heritage);border-color:var(--color-heritage);box-shadow:inset .1875rem 0 var(--color-heritage)}.card-trait .option-radio{margin-top:.3125rem;accent-color:var(--color-heritage)}.card-trait .option-content-container{display:flex;flex:1;flex-direction:column;gap:var(--space-1)}.card-trait .option-content{display:flex;align-items:center;gap:var(--space-2);flex:1}.card-trait .option-name{display:flex;flex:1;font-family:var(--font-heading);font-size:var(--text-base);font-weight:700;color:var(--color-ink-800)}.card-trait .option-desc{width:100%;font-size:var(--text-sm);color:var(--color-ink-500);line-height:var(--leading-relaxed)}.card-trait.compact{flex:1;padding:var(--space-2) var(--space-3)}.card-trait.compact .indicator{display:none}.card-trait.compact .header{margin-bottom:0}.card-trait.compact .name{display:flex;align-items:center;gap:var(--space-2)}.card-trait.compact .indicator{width:20px;height:20px;font-size:var(--text-sm);bottom:50%;transform:translateY(50%)}.card-trait.compact.selected,.card-trait.compact.required:not(:has(.option.selected)){box-shadow:var(--shadow-sm)}.main.at-budget .card-trait:not(.selected):not(:has(.core-attribute .pill.free)){opacity:.5;cursor:not-allowed;pointer-events:none}@keyframes highlight-flash{0%,to{box-shadow:var(--shadow-sm),inset .1875rem 0 var(--color-heritage)}15%,45%,75%{box-shadow:0 0 0 4px var(--color-accent),inset .1875rem 0 var(--color-heritage)}30%,60%,90%{box-shadow:var(--shadow-sm),inset .1875rem 0 var(--color-heritage)}}.card-trait.highlight-flash{animation:highlight-flash 1.2s ease-out}.list-view .card-trait{align-items:start;flex-direction:row;gap:var(--space-3);padding-bottom:var(--space-3)}.list-view .card-trait .header{flex:2;justify-content:flex-start;margin:0}.list-view .card-trait .header .name{flex:0 1 fit-content}.list-view .card-trait .description{flex:5;margin:0}.card-trait .description p:not(:last-child){margin-bottom:var(--space-2)}.list-view .card-trait .description .restriction{margin-top:var(--space-2)}@media (max-width: 64rem){.list-view .card-trait .header{flex:1}.list-view .card-trait .description{flex:2}}@media (max-width: 46rem){.list-view .card-trait{flex-direction:column;gap:.375rem}}.category-trait{--category-border: var(--color-heritage);--category-background-light: var(--color-ink-400);--category-background-dark: var(--color-ink-500);--category-background-light-hover: var(--color-ink-500);--category-background-dark-hover: var(--color-ink-600);background:var(--color-parchment-100);border-radius:var(--radius-lg);overflow:hidden;break-inside:avoid}.at-budget .category-trait:not(:has(.selected))>.header{--category-background-light: var(--color-ink-300);--category-background-dark: var(--color-ink-400)}.category-trait.culture{--category-border: var(--color-culture);--category-background-light: var(--color-green-43);--category-background-dark: var(--color-green-29);--category-background-light-hover: var(--color-green-38);--category-background-dark-hover: var(--color-green-21)}.category-trait.heritage{--category-border: var(--color-red-45);--category-background-light: var(--color-red-45);--category-background-dark: var(--color-red-31);--category-background-light-hover: var(--color-red-31);--category-background-dark-hover: var(--color-red-27)}.category-trait.core-attribute{--category-border: var(--color-blue-green-50);--category-background-light: var(--color-blue-green-50);--category-background-dark: var(--color-blue-green-30);--category-background-light-hover: var(--color-blue-green-40);--category-background-dark-hover: var(--color-blue-green-21)}.category-trait.missing-required{--category-border: var(--color-warning);--category-background-light: var(--color-warning);--category-background-dark: oklch(from var(--color-warning) calc(l - .15) c h);--category-background-light-hover: oklch(from var(--color-warning) calc(l - .05) c h);--category-background-dark-hover: oklch(from var(--color-warning) calc(l - .2) c h)}.category-trait>.header{background:linear-gradient(135deg,var(--category-background-light) 0%,var(--category-background-dark) 100%);width:100%;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border:none;cursor:pointer;transition:background var(--transition-fast)}.category-trait>.header:hover,.category-trait>.header:focus-visible,.category-trait>.header:active{background:linear-gradient(135deg,var(--category-background-light-hover) 0%,var(--category-background-dark-hover) 100%)}.category-trait>.header .header-content{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.category-trait>.header .name{font-family:var(--font-heading);font-size:1.125rem;font-weight:700;color:#fffffff2;margin:0}.category-trait>.header .pill.required{background:oklch(from var(--category-background-light) calc(l*1.8) calc(c*1.4) h);color:var(--color-ink-800)}.category-trait>.header .pill.heritage{background:oklch(from var(--category-background-light) calc(l*1.8) calc(c*1.4) h);color:var(--color-ink-800)}.category-trait>.header .pill.heritage,.category-trait>.header .pill.culture{background:#ffffff29;color:#fffc;border:.0625rem solid rgba(255,255,255,.24)}.category-trait .chevron{font-size:var(--text-base);color:var(--color-parchment-200);transition:transform var(--transition-fast);flex-shrink:0}.category-trait .chevron.expanded{transform:rotate(180deg)}.trait-category-content{background:var(--color-parchment-50);border:.0625rem solid var(--category-border);box-shadow:inset 0 0 1px .0625rem oklch(from var(--category-border) l c h / .2);border-radius:0 0 var(--radius-lg) var(--radius-lg);border-top:none;display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3)}.category-trait.collapsed .trait-category-content:not(:has(*)){height:0;padding:0;outline:none;border:none}.trait-category-content>.description{margin-bottom:var(--space-1)}.category-trait>.description{font-size:var(--text-base);color:var(--color-ink-900)}.category-trait .trait-list{display:flex;flex-direction:column;gap:var(--space-2)}.category-trait .selected-traits{display:flex;flex-direction:column;gap:var(--space-1)}.category-trait .empty-state{color:var(--color-ink-400);font-style:italic;margin-top:var(--space-2);margin-bottom:var(--space-2)}.layout{display:flex;flex-direction:column;gap:0}.layout>.header{background:linear-gradient(135deg,var(--color-ink-700) 0%,var(--color-ink-900) 100%);padding:var(--space-4) var(--space-8)}.layout .header-content{max-width:var(--max-width)}.layout .header-actions{gap:var(--space-2)}.layout .header-actions .selector-prebuilt label{display:flex;align-items:center;color:var(--color-parchment-50)}.layout .title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;color:var(--color-parchment-300);margin:0}.sticky-toolbar{position:sticky;top:0;z-index:100;background:var(--color-parchment-50);border-bottom:1px solid var(--color-parchment-300);box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.sticky-toolbar.scrolled{box-shadow:none}.sticky-toolbar .toolbar-content{display:flex;flex-direction:column;transition:all var(--transition-fast)}.sticky-toolbar .toolbar-progress{height:4px;background:var(--color-parchment-300);overflow:hidden}.sticky-toolbar .toolbar-progress-bar{height:100%;background:linear-gradient(90deg,var(--color-green-65) 0%,var(--color-green-43) 100%);transition:width var(--transition-base)}.sticky-toolbar .toolbar-progress-bar.over{background:linear-gradient(90deg,var(--color-error) 0%,#b22222 100%)}.sticky-toolbar .toolbar-row{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-2) var(--space-6);min-height:3rem;transition:all var(--transition-fast)}.sticky-toolbar.scrolled .toolbar-row{max-height:3.5rem;overflow:hidden}.sticky-toolbar .toolbar-points{display:flex;align-items:baseline;gap:.125rem;flex-shrink:0;padding-right:var(--space-3);border-right:1px solid var(--color-parchment-300)}.sticky-toolbar .points-spent{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;color:var(--color-heritage);line-height:1}.sticky-toolbar .points-spent.over{color:var(--color-error)}.sticky-toolbar .points-divider{font-size:var(--text-base);color:var(--color-ink-500)}.sticky-toolbar .points-total{font-family:var(--font-display);font-size:var(--text-base);font-weight:600;color:var(--color-ink-700)}.sticky-toolbar .points-label{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-ink-500);margin-left:var(--space-1)}.sticky-toolbar .toolbar-pills{display:flex;align-items:center;gap:.125rem var(--space-1);flex:1;flex-wrap:wrap;overflow:hidden}.sticky-toolbar .pills-label{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-500);flex-shrink:0}.sticky-toolbar .no-pills{font-family:var(--font-ui);font-size:var(--text-xs);color:var(--color-ink-400);font-style:italic}.sticky-toolbar .toolbar-actions{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0;margin-left:auto}.sticky-toolbar .warning-indicator{position:relative;display:flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:var(--color-warning-bg);border:1px solid var(--color-warning);border-radius:var(--radius-sm);cursor:help}.sticky-toolbar .warning-icon{font-size:var(--text-base);color:var(--color-warning)}.sticky-toolbar .warning-tooltip{position:fixed;top:4rem;right:var(--space-6);padding:var(--space-2) 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);font-size:var(--text-sm);min-width:240px;max-width:320px;z-index:200;opacity:0;visibility:hidden;transform:translateY(-4px);transition:all var(--transition-fast)}.sticky-toolbar .warning-indicator:hover .warning-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.sticky-toolbar .warning-item{padding:var(--space-1) 0;border-bottom:1px solid var(--color-ink-600)}.sticky-toolbar .warning-item:last-child{border-bottom:none}.sticky-toolbar .summary-btn{flex-shrink:0}.layout .main{padding:var(--space-4) var(--space-6)}.layout .main.list-view{align-self:center;max-width:64rem}.layout .main.list-view .section-header.stuck{background-color:var(--color-parchment-100);background-image:gradient(to right var(--color-parchment-100) 0%,var(--color-parchment-200) 150%);box-shadow:none}.layout .traits-section{margin-bottom:var(--space-8)}.layout .traits-section .section-header{position:sticky;top:3.5rem;z-index:50;border-bottom:1px solid transparent;box-shadow:0 2px 4px -2px transparent;gap:var(--space-4);margin:0 calc(-1 * var(--space-6)) var(--space-1) calc(-1 * var(--space-6));padding:var(--space-2) 0;transition:border-color var(--transition-fast),box-shadow var(--transition-fast);padding-left:var(--space-6);padding-right:var(--space-6)}.layout .section-header.stuck{background:var(--color-parchment-50);border-bottom:1px solid var(--color-parchment-300);box-shadow:var(--shadow-sm)}.layout .section-title{align-items:center;color:var(--color-ink-800);display:flex;font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;gap:var(--space-2);text-shadow:0 1px 2px oklch(from var(--color-ink-300) l c h / .16)}.layout .section-header-controls{display:flex;flex-direction:row;align-items:flex-end;flex:1;gap:var(--space-1)}.layout .section-header-controls>div{gap:var(--space-1)}.layout .section-limit{font-family:var(--font-ui);font-size:var(--text-sm);font-weight:400;color:var(--color-ink-500);margin-left:var(--space-2)}.layout .section-desc{font-size:var(--text-base);color:var(--color-ink-600);margin:0 0 var(--space-4);max-width:700px}.layout .card-view .traits-grid{column-count:3;column-gap:var(--space-4)}.layout .card-view .traits-grid>*{margin-bottom:var(--space-4)}.layout .list-view .traits-grid{display:flex;flex-direction:column;gap:var(--space-4)}.layout>.footer{grid-area: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)}@media (max-width: 1366px){.layout .card-view .traits-grid{column-count:2}}@media (max-width: 1024px){.sticky-toolbar .toolbar-row{flex-wrap:wrap}.sticky-toolbar .pills-label,.sticky-toolbar .points-label{display:none}.sticky-toolbar .toolbar-points{border-right:none;padding-right:0}.sticky-toolbar.scrolled .toolbar-pills{display:none}}@media (max-width: 900px){.layout .card-view .traits-grid{column-count:1}}@media (max-width: 640px){.layout>.header{padding:var(--space-3) var(--space-4)}.layout .title{font-size:var(--text-xl)}.sticky-toolbar .toolbar-row{padding:var(--space-2) var(--space-4);gap:var(--space-2)}.sticky-toolbar .pills-label{display:none}.layout .main{padding:var(--space-4)}.layout .section-header{margin-left:calc(-1 * var(--space-4));margin-right:calc(-1 * var(--space-4));padding-left:var(--space-4);padding-right:var(--space-4)}}.summary-trait-card+.summary-trait-card{margin-top:var(--space-2)}.summary-trait-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);margin-bottom:var(--space-1)}.summary-trait-name{color:var(--color-ink-800);font-weight:600;margin-right:var(--space-1)}.summary-trait-description{color:var(--color-ink-600);line-height:var(--leading-normal)}.summary-trait-description p{margin:0}.summary-trait-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-option p{margin:0}.summary-trait-footer{display:flex;align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-parchment-200)}.summary-trait-source,.summary-trait-category{font-size:var(--text-xs);color:var(--color-ink-500);font-style:italic}.summary-trait-card.compact .summary-trait-description{font-size:var(--text-xs)}.summary-trait-card.on-light{background:#fff}.simple-trait-card{font-size:var(--text-sm)}.simple-trait-card *{display:inline}.ancestry-overview{display:flex;flex-direction:column;gap:var(--space-4)}.ancestry-overview .overview-header-cards{gap:var(--space-4)}.ancestry-overview .header-card{align-items:flex-start;background:var(--color-parchment-200);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) var(--space-8)}.ancestry-overview .header-card.card-name{padding:var(--space-4) var(--space-6);position:relative}.ancestry-overview .header-card input{background:none;border-radius:var(--radius-md);border:none;color:var(--color-ink-800);font-size:var(--text-xl);padding:1.5rem var(--space-6) 0;position:absolute;top:0;left:0;width:100%;height:100%}.ancestry-overview .header-card input:focus{outline:2px solid var(--color-accent);outline-offset:0}.ancestry-overview .header-card.card-points .value{margin-right:.125rem}.ancestry-overview .value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-heritage)}.ancestry-overview .value-description{color:var(--color-ink-400);font-size:var(--text-base)}.ancestry-overview .label{font-family:var(--font-ui);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-ink-500)}.ancestry-overview .overview-warnings{display:flex;flex-direction:column;gap:var(--space-2)}.ancestry-overview .warning{font-family:var(--font-ui);font-size:var(--text-sm);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm)}.ancestry-overview .warning.warning{color:var(--color-warning);background:var(--color-warning-bg)}.ancestry-overview .warning.info{color:var(--color-culture);background:var(--color-culture-bg)}.ancestry-overview .overview-empty{text-align:center;color:var(--color-ink-500);font-style:italic;padding:var(--space-8) 0}.ancestry-overview .overview-trait-lists{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-6)}.ancestry-overview .trait-section{display:flex;flex-direction:column;gap:var(--space-3)}.ancestry-overview .section-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-ink-800);margin:0;padding-bottom:var(--space-2);border-bottom:2px solid var(--color-parchment-400)}.ancestry-overview .trait-list{display:flex;flex-direction:column;gap:var(--space-3)}.ancestry-overview .summary-trait-card{background:var(--color-parchment-100);padding:var(--space-3);border-radius:var(--radius-sm);border:1px solid var(--color-parchment-300)}.ancestry-overview .overview-footer{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-4);border-top:1px solid var(--color-parchment-300)}.ancestry-overview .export-btns{display:flex;gap:var(--space-2)}@media (max-width: 640px){.ancestry-overview .overview-header-cards{flex-direction:column}.ancestry-overview .overview-footer{flex-direction:column;gap:var(--space-3)}.ancestry-overview .export-btns{width:100%;justify-content:flex-end}}.panel-summary-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a161099;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn var(--transition-fast) ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.panel-summary{width:85vw;height:85vh;max-width:1400px;background:var(--color-parchment-50);border-radius:var(--radius-lg);box-shadow:0 8px 32px #1a16104d;display:flex;flex-direction:column;animation:modalIn var(--transition-base) ease}@keyframes modalIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.panel-summary>.header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);background:var(--color-ink-800);border-bottom:3px solid var(--color-accent);border-radius:var(--radius-lg) var(--radius-lg) 0 0}.panel-summary .title{font-family:var(--font-display);font-size:var(--text-xl);font-weight:600;color:var(--color-parchment-100);margin:0}.panel-summary .close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;font-size:var(--text-lg);color:var(--color-parchment-300);background:transparent;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.panel-summary .close-btn:hover{background:#ffffff1a;color:var(--color-parchment-100)}.panel-summary .content{flex:1;padding:var(--space-6);overflow-y:auto}.panel-summary .footer{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);background:var(--color-parchment-200);border-top:1px solid var(--color-parchment-300);border-radius:0 0 var(--radius-lg) var(--radius-lg)}.panel-summary .export-btns{display:flex;gap:var(--space-2)}.panel-summary .ancestry-overview .header-card{margin-bottom:var(--space-4)}.panel-summary .ancestry-overview .summary-trait-card{background:var(--color-parchment-100)}.character-creation-page{padding:var(--space-8) var(--space-6)}.character-creation-page .creation-content{max-width:800px;margin:0 auto}.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)}.character-creation-page .creation-step details{background:var(--color-paper);border:1px solid var(--color-ink-200);border-radius:var(--radius-lg);overflow:hidden}.character-creation-page .creation-step summary{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;color:var(--color-ink-800);padding:var(--space-4) var(--space-5);cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--space-3);transition:background-color .15s ease}.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:hover{background:var(--color-ink-50)}.character-creation-page .step-content{padding:0 var(--space-5) var(--space-5);border-top:1px solid var(--color-ink-100)}.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)}}.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-card{background:var(--color-parchment-50);border:1px solid var(--color-parchment-300);border-radius:var(--radius-md);overflow:hidden;transition:box-shadow var(--transition-fast)}.ancestry-card:hover,.ancestry-card.expanded{box-shadow:var(--shadow-md)}.ancestry-card .ancestry-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);padding:var(--space-4);cursor:pointer;transition:background var(--transition-fast)}.ancestry-card .ancestry-card-header:hover{background:var(--color-card-bg-hover)}.ancestry-card .ancestry-card-title{flex:1}.ancestry-card .ancestry-card-title h3{font-size:var(--text-lg);color:var(--color-ink-900);margin-bottom:var(--space-1)}.ancestry-card .ancestry-summary{font-size:var(--text-sm);color:var(--color-ink-600);line-height:var(--leading-normal)}.ancestry-card .ancestry-card-meta{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.ancestry-card .expand-toggle{background:transparent;border:none;padding:var(--space-1);cursor:pointer;color:var(--color-ink-500);display:flex;align-items:center;justify-content:center}.ancestry-card .chevron{transition:transform var(--transition-fast)}.ancestry-card .chevron.rotated{transform:rotate(180deg)}.ancestry-card .ancestry-card-content{padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--color-parchment-300);margin-top:0;padding-top:var(--space-4)}.ancestry-card .ancestry-description{font-size:var(--text-base);color:var(--color-ink-700);line-height:var(--leading-relaxed);margin-bottom:var(--space-4)}.ancestry-card .traits-section,.ancestry-card .archetypes-section{margin-bottom:var(--space-4)}.ancestry-card .traits-section h4,.ancestry-card .archetypes-section h4{font-size:var(--text-base);color:var(--color-heritage);margin-bottom:var(--space-1)}.ancestry-card .traits-note{font-size:var(--text-sm);color:var(--color-ink-500);margin-bottom:var(--space-2)}.ancestry-card .trait-list{display:flex;flex-direction:column;gap:var(--space-2)}.ancestry-card .trait-error{background:var(--color-error-bg);border-color:var(--color-error)}.ancestry-card .trait-error .summary-trait-name{color:var(--color-error);font-style:italic}.ancestry-card .archetype-list{display:grid;gap:var(--space-3)}.ancestry-card .archetype-radio-item{display:block;background:var(--color-parchment-100);border:2px solid var(--color-parchment-300);border-radius:var(--radius-sm);padding:var(--space-3);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.ancestry-card .archetype-radio-item:hover{border-color:var(--color-heritage-light);background:var(--color-card-bg-hover)}.ancestry-card .archetype-radio-item.selected{border-color:var(--color-heritage);background:var(--color-heritage-bg)}.ancestry-card .archetype-radio-header{display:flex;align-items:flex-start;gap:var(--space-3)}.ancestry-card .archetype-radio-input{margin-top:3px;accent-color:var(--color-heritage);width:16px;height:16px;flex-shrink:0;cursor:pointer}.ancestry-card .archetype-radio-content{display:flex;flex-direction:row;gap:var(--space-1);min-width:0}.ancestry-card .archetype-radio-name{font-weight:900;color:var(--color-ink-800)}.ancestry-card .archetype-desc{color:var(--color-ink-600)}.ancestry-card .archetype-icon{font-size:var(--text-lg)}.ancestry-card .archetype-traits{display:flex;flex-direction:column;gap:var(--space-2);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-parchment-300)}@media (max-width: 640px){.ancestry-card .ancestry-card-header{flex-direction:column;gap:var(--space-2)}.ancestry-card .ancestry-card-meta{width:100%;justify-content:space-between}}.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}.show-details-toggle{display:inline-flex;align-items:center;gap:var(--space-2);margin-top:var(--space-3);font-size:var(--text-sm);color:var(--color-ink-600);cursor:pointer;-webkit-user-select:none;user-select:none}.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 .ancestry-grid{display:flex;flex-direction:column;gap:var(--space-4)}.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)}.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-hint{background:var(--color-parchment-100);border-radius:var(--radius-sm);border:1px solid var(--color-parchment-300);color:var(--color-ink-500);font-style:italic;font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.ancestry-summary-actions{display:flex;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-parchment-300)}.ancestry-summary-actions .btn{flex:1;justify-content:center}.ancestry-summary-actions .btn-secondary{display:flex;align-items:center;gap:var(--space-2)}@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}}.overview-page{flex:1;padding:var(--space-6);background:var(--color-parchment-100)}.overview-page-container{max-width:1024px;margin:0 auto}.overview-page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);padding-bottom:var(--space-4);border-bottom:2px solid var(--color-parchment-300)}.overview-page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:700;color:var(--color-ink-800);margin:0}@media (max-width: 768px){.overview-page{padding:var(--space-4)}.overview-page-header{flex-direction:column;align-items:flex-start;gap:var(--space-3)}}.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.125rem;--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;--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}body{font-family:var(--font-body);font-weight:410;font-size:var(--text-base);color:var(--color-ink-800);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%);min-height:100vh}#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}.flexshrink{flex:0 1 auto}.flexcol{display:flex;flex-direction:column}.flexrow{display:flex;flex-direction:row}.uppercase{font-family:var(--font-ui);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm)}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.text-heritage{color:var(--color-heritage)}.text-culture{color:var(--color-culture)}.text-warning{color:var(--color-warning)}::-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)}.card-trait:hover .pill.cost,.card-trait:focus-visible .pill.cost,.card-trait:active .pill.cost{--pill-bg: oklch(from var(--pill-bg-cost) l c h / .72);--pill-text: white}.pill.cost.free:is(.selected .pill.cost){--pill-bg: var(--color-green-38);--pill-text: white}.card-trait:hover .pill.cost.free,.card-trait:focus-visible .pill.cost.free,.card-trait:active .pill.cost.free{--pill-bg: var(--color-green-43);--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.selected-option{font-weight:500;--pill-bg: var(--pill-bg-free);--pill-text: var(--pill-text-free);border:.0625rem solid var(--pill-text-free)}.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.spaced{margin-top:var(--space-2);margin-right:var(--space-1)}.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)}.pill.pill-icon-only:is(.selected .pill.pill-icon-only),.pill.pill-icon-only:is(.selected .pill.pill-icon-only) svg{opacity:1}.pill.pill-icon-only{align-items:center;flex:0 1 auto;height:1.25rem;justify-content:center;opacity:0;padding:0 0 .0625rem;transition:opacity var(--transition-base);width:1.25rem}.pill.pill-icon-only svg{fill:var(--pill-text);height:.875rem;opacity:0;transition:opacity var(--transition-base);width:.875rem}.btn{--btn-bg: var(--color-heritage);--btn-text: var(--color-parchment-50);--btn-border: none;--btn-icon-color: var(--color-parchment-50);background-color:var(--btn-bg);color:var(--btn-text);border:var(--btn-border);font-family:var(--font-ui);font-size:var(--text-sm);font-weight:500;padding:.4375rem var(--space-4) .5625rem;border-radius:var(--radius-sm);transition:all var(--transition-fast);display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.25rem}.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}
