@import url('https://fonts.googleapis.com/css2?family=Exo+2:wght@400;500;600&display=swap');

/* Aura Archives readable type scale — generated from the existing design.
   The visual hierarchy is retained; only undersized tiers are promoted. */
:root{--aa-type-micro:12px;--aa-type-small:13px;--aa-type-ui:14px;--aa-type-body:16px;--aa-type-lead:18px;--aa-type-display:20px;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{font-size:var(--aa-type-body);}
input,select,textarea,button{font-size:max(14px,1em);}
#browserStatus span,
#sigilcraftBuilderPage .sb-h,
#sigilcraftBuilderPage .sb-l,
#sigilcraftBuilderPage .sb-matrix,
.acc-chip,
.acc-sub,
.af-arrow,
.af-clear,
.af-count,
.af-dlock-b,
.af-dlock-s,
.af-dlock-t,
.af-dnote,
.af-dsub,
.af-fg select,
.af-fk,
.af-fl,
.af-lvl-hdr,
.af-plate .rl,
.af-racc,
.af-rmeta,
.af-sigbox-btn,
.af-sigbox-h,
.af-sigbox-sub,
.af-tag,
.af-thumb .rl,
.anc-back,
.anc-block-h,
.anc-carriers-h,
.anc-carriers-list,
.anc-fam-num,
.anc-fam-slot .aslot-lbl,
.anc-gate-go,
.anc-gate-kicker,
.anc-gate-meta,
.anc-gate-slot .aslot-lbl,
.anc-intro-title,
.anc-marker,
.anc-sub-el,
.anc-sub-note,
.anc-sub-region,
.anc-sub-slot .aslot-lbl,
.assoc-link,
.assoc-thumb .rl,
.bar-label,
.brand .sub,
.chip,
.clvl,
.codex-clearance-line,
.codex-img-label,
.codex-img-sublabel,
.codex-nav-title,
.codex-table th,
.codex-tag,
.cp-right-label,
.cp-stack-cell-label,
.cp-stack-cell-n,
.cp-stack-uses,
.cp-wrong-label,
.cr-insc-arrow{font-size:12px!important;}
.cr-insc-label,
.cr-table td::before,
.cr-table th,
.cr-tier-h,
.cr-use,
.cx-link,
.cx-note,
.detail-label,
.detail-slot .dslot-empty,
.detail-wide-slot .dslot-empty,
.devic-root-law,
.devic-root-name,
.devic-stone-label,
.eh-carriers-h,
.eh-carriers-l,
.eh-desc-h,
.eh-rank,
.eh-slot .aslot-lbl,
.eh-stat-l,
.eng-alch-name,
.eng-app-tag,
.far-alias,
.far-alias b,
.far-badges span,
.far-caution,
.far-caution b,
.far-clear,
.far-count span,
.far-grid b,
.far-grid>div,
.far-house-dossiers>summary,
.far-house-dossiers>summary span:last-child,
.far-kicker,
.far-line,
.far-line b,
.far-rank,
.far-showing,
.far-tier-h,
.far-tools button,
.far-tools input,
.far-warning,
.fm-file-name,
.fm-file-thumb .fm-type-badge,
.fm-folder-btn .fm-count,
.fm-menubar,
.fm-statusbar,
.forces-block-title,
.forces-hslot .hslot-empty,
.forces-htag,
.forces-row-label,
.forces-slot .fslot-empty,
.gallery-date,
.gallery-placeholder,
.gallery-tags,
.gallery-type,
.gr-elem-apps,
.gr-elem-ex,
.gr-formula-plus,
.gr-frame-name,
.gr-insc-ex{font-size:12px!important;}
.gr-insc-forbidden-tag,
.gr-library-group>summary,
.gr-library-group>summary span,
.gr-mini-apps,
.gr-mini-ex,
.gr-recipe-badge,
.gr-recipe-ex,
.gr-recipe-forbidden-badge,
.gr-recipe-meta,
.gr-recipe-summary-lang,
.gr-recipe-summary-name,
.hd-active-archive small,
.hd-active-archive span,
.hd-calendar-grid>span,
.hd-calendar-head b,
.hd-calendar-head span,
.hd-clearance-card small,
.hd-clearance-card span,
.hd-codex-list b,
.hd-codex-list span,
.hd-codex-list time,
.hd-condition-list dd,
.hd-condition-list dt,
.hd-count-grid span,
.hd-event b,
.hd-event span,
.hd-event time,
.hd-eyebrow,
.hd-identity-lines,
.hd-message-row h3,
.hd-message-row small,
.hd-news-filters button,
.hd-news-row small,
.hd-panel-head b,
.hd-panel-head i,
.hd-panel-head span,
.hd-panel-head>button,
.hd-quick-link b,
.hd-quick-link small,
.hd-row-top b,
.hd-row-top span,
.hd-row-top time,
.hd-statusline,
.hd-system b,
.hd-system small,
.hd-system strong,
.hd-threat-map span,
.hd-weather b,
.hd-weather span,
.ia-badge,
.ia-block-label,
.ia-sub,
.intro-fiction,
.lang-cell-text,
.lang-cell-title,
.login-field label,
.login-footer,
.login-kicker,
.login-sub,
.login-ticker{font-size:12px!important;}
.login-warning,
.mini-slot .mini-empty,
.nav-glabel,
.notebox b,
.pf-caption,
.pf-type,
.pf-windowbar,
.preview-modebar a,
.preview-stats span,
.reg-back,
.reg-progress span,
.registry-clearance-empty,
.registry-clearance-head span,
.rhakar-diagram .rhakar-slot-number,
.rhakar-frame-choice span,
.rhakar-frame-choice strong,
.rhakar-frame-result span,
.rhakar-frame-result strong,
.rhakar-reference-card span,
.rhakar-reference-card strong,
.rhakar-rule-message,
.rs-cd-translit,
.rs-eight-table td::before,
.rs-eight-table th,
.rs-fl-lang,
.rs-fl-val,
.rs-grammar-h,
.rs-name-cell,
.rs-role-badge,
.rs-sf-kicker,
.rs-sf-tag,
.rs-sf-tier,
.rs-sub-force,
.rs-sub-name,
.rs-table td::before,
.rs-table th,
.rs-three-translit,
.rz-bigsym .rl,
.rz-block-h,
.rz-branch,
.rz-canon,
.rz-card-note,
.rz-clr,
.rz-col-h,
.rz-disc-note,
.rz-hint,
.rz-item-s,
.rz-kicker,
.rz-lock-b,
.rz-lock-s,
.rz-lock-t,
.rz-patched,
.rz-sech,
.rz-slot .rl,
.rz-stat-l,
.rz-tier-hdr,
.rz-unstable-t,
.rz-wield-s,
.sb-cap-note,
.sb-chip{font-size:12px!important;}
.sb-diagram-cap,
.sb-empty,
.sb-h,
.sb-l,
.sb-layer-m,
.sb-layer-slot .rl,
.sb-layer-t,
.sb-layer-v,
.sb-matrix td,
.sb-mobile-option-group>summary,
.sb-recipe-quickload-head button,
.sb-recipe-quickload-head span,
.sb-recipe-result em,
.sb-recipe-result span,
.sb-recipe-result strong,
.sb-recipe-search-row button,
.sb-recipe-search-row input,
.sb-req-k,
.sb-req-v,
.sb-status-h,
.sb-status-v,
.sc-cell-h,
.sc-cell-m,
.sc-cell-s,
.sc-cell-slot .rl,
.sc-cost-h,
.sc-ctrl,
.sc-fg-l,
.sc-free-decomp-mean,
.sc-free-result-h,
.sc-free-usage-item,
.sc-hero-tool-kicker,
.sc-lang-s,
.sc-pill,
.sc-spec-h,
.sc-spec-k,
.sc-sub-meta,
.sc-sub-tag,
.sc-tab,
.sf-header-kicker,
.sf-img-card .lbl,
.sf-img-empty,
.sf-meta,
.sigil-complete-status,
.sigil-layout-switch button,
.sigil-library-count,
.sigil-library-filters button,
.sigil-library-filters input,
.sigil-unknown-status,
.sigilcraft-nav-menu span,
.sigilcraft-nav-menu strong,
.sigilcraft-nav-trigger span,
.sigilcraft-page-switch a,
.site-footer,
.story-vibes-foot,
.story-vibes-kicker,
.story-vibes-toggle,
.sym-slot .sym-empty,
.tb-go,
.unauth-badge{font-size:12px!important;}
.vibes-gate-btns .btn.recommended::after,
.vibes-toggle,
.weapon-img,
.win-btn,
label{font-size:12px!important;}
#addressBar .lock-icon,
#addressUrl,
#browserMenu span,
#browserTitle .win-title,
#sbAlchSymPicker .sb-chip,
#sbCost .sb-chip,
#sbDevicScope .sb-chip,
#sbTarget .sb-chip,
.ability-list,
.acc-arrow,
.acc-name,
.admin-nav a,
.admin-table th,
.af-empty,
.af-fv,
.af-sigbox-cost,
.af-sigbox-note,
.alert,
.anc-notice em,
.anc-sub-name,
.archive-badge,
.assoc-name,
.assoc-tag,
.breach-skip,
.btn,
.btn.small,
.carousel-card .scene-head,
.carousel-counter,
.codex-acc-arrow,
.codex-acc-title,
.codex-lock-file,
.codex-lock-sub,
.codex-nav-btn,
.codex-note,
.codex-table,
.codex-warning,
.cp-cat-h,
.cp-right,
.cp-rules-list li,
.cp-stack-note,
.cp-stack-reading,
.cp-two-meaning,
.cp-wrong,
.cr-cat-h,
.cr-insc-gloss,
.cr-literal,
.cr-translit,
.detail-status-bar,
.detail-val.mono,
.eh-stat-v,
.eng-insc-principle,
.eng-plus,
.far-name,
.field,
.flag-list,
.fm-angel-note,
.fm-folder-btn,
.fm-titlebar,
.forces-hname .el-label,
.form-row .hint{font-size:13px!important;}
.form-row label,
.gallery-breach-note,
.gallery-empty,
.gallery-title,
.gfilter-btn,
.gr-elem-effect,
.gr-elem-h,
.gr-frame-desc,
.gr-insc-effect,
.gr-mini-effect,
.gr-mini-name,
.gr-recipe-purpose,
.gr-recipe-result,
.gr-six-cost,
.gr-six-name,
.hd-active-archive b,
.hd-message-row h3,
.hd-message-row p,
.hd-news-row h3,
.hd-news-row p,
.hd-quick-link p,
.hd-threat-row h3,
.hd-threat-row p,
.hd-welcome p,
.hero .kicker,
.hint,
.ia-arrow,
.ia-block-val.mono,
.ia-note,
.ia-title,
.ia-warn,
.intro-enter,
.intro-kicker,
.lightbox-caption,
.nav-mobile-title,
.notebox,
.np-empty,
.np-head,
.np-vibe,
.pf-caption,
.pf-close,
.preview-banner,
.preview-source-editor,
.reg-choice b,
.reg-consent,
.reg-progress span:before,
.registry-clearance-head strong,
.rel-list,
.rel-list li span,
.roster-card .rc-desc,
.roster-card .rc-role,
.rs-cd-plus,
.rs-cd-result,
.rs-compound-arrow,
.rs-compound-in,
.rs-compound-out,
.rs-devic-cell,
.rs-eight-force,
.rs-ex-arrow,
.rs-ex-gloss{font-size:13px!important;}
.rs-fl-force,
.rs-meaning-cell,
.rs-sf-desc,
.rs-sub-arrow,
.rs-sub-why,
.rs-three-name,
.rz-disc-prog,
.rz-item-n,
.rz-mech,
.rz-none,
.rz-stat-v,
.rz-tree,
.rz-wield-c,
.sb-btn,
.sb-canvas-warn,
.sb-legend-body,
.sb-legend-x,
.sb-mobile-option-content .sb-chip,
.sb-recipe-quickload-head strong,
.sc-cell-t,
.sc-fg select,
.sc-forge-btn,
.sc-lang-n,
.sc-notcat,
.sc-spec-v,
.scene-head,
.sf-clearance,
.sf-tab,
.story-vibes-choice,
.ticker,
.topnav a,
.track-popover .err,
.track-popover button,
.track-popover input,
.track-set-btn,
.uc-badge,
.vibes-gate-kicker,
.vibes-toggle,
.weapon-box .wname,
fieldset legend,
label,
legend,
table.admin-table th{font-size:13px!important;}
.admin-table,
.af-fv.serif,
.af-rname,
.af-sigbox-b,
.anc-block-p,
.anc-fam-tag,
.anc-gate-sub,
.anc-notice,
.breach-box,
.codex-h2,
.codex-p,
.cp-stack-name,
.cp-two-cell,
.cr-tier-b,
.detail-val,
.eh-desc-p,
.eh-house,
.eng-force-h,
.eng-result,
.far-intro,
.far-note,
.flash,
.fm-folder-btn .fm-icon,
.forces-arrow,
.forces-row-val,
.form-row input[type=file],
.form-row input[type=number],
.form-row input[type=password],
.form-row input[type=text],
.form-row select,
.form-row textarea,
.gr-insc-name,
.gr-recipe-name,
.hero .sub,
.ia-block-val,
.ia-inner .codex-p,
.intro-body,
.lightbox-close,
.login-btn,
.login-field input,
.panel h3,
.pf-name,
.reg-choice span,
.res-class-icon.no-icon:after,
.res-class-meta,
.res-class-note,
.res-class-potential,
.res-class-system,
.res-class-title,
.rs-alch-cell,
.rs-cd-name,
.rs-cd-part,
.rs-grammar-rule,
.rs-rules li,
.rs-sf-name,
.rz-unstable-s,
.sb-legend-n,
.sb-mobile-option-group>summary:after,
.sc-cost-v,
.sc-free-ex-btn{font-size:14px!important;}
.sc-free-result-body,
.sigilcraft-nav-trigger:after,
.tb-btn,
.topnav a,
.vibes-gate-sub,
input[type=text],
table.admin-table{font-size:14px!important;}
#sigilcraftBuilderPage .codex-p,
.admin-bar .word,
.brand .word,
.codex-acc-inner .codex-h1,
.codex-h1,
.codex-lock-title,
.cp-token-mini,
.eng-insc-result,
.far-title,
.hd-count-grid strong,
.hd-quick-icon,
.intro-body,
.intro-subtitle,
.mute-btn,
.nav-close,
.roster-card .rc-name,
.rz-desc,
.sb-phrase,
.sc-cell-t .eiluthan-glyph,
.sc-free-result-name,
.sc-sub-name,
.story-vibes-copy{font-size:16px!important;}
.carousel-card .scene-body p,
.cp-stack-cell-glyph,
.gr-elem-sym,
.gr-formula-sym,
.rs-eight-alch,
.sc-free-input,
.sc-hero-tool-title,
.scene-body p{font-size:18px!important;}
#sigilcraftBuilderPage .sc-hero-tool-title,
.anc-fam-name,
.carousel-arrow,
.cr-glyph-cell,
.cr-insc-line,
.eh-name,
.eng-force-heb,
.eng-glyph,
.eng-insc-glyphs,
.far-title,
.gr-insc-glyphs,
.gr-mini-sym,
.hd-clearance-card strong,
.hd-rain,
.pf-play-mark,
.preview-stats b,
.res-class-name,
.rs-devic-icon i,
.rs-eight-heb,
.rs-glyph-cell,
.rs-sub-letter,
.rs-three-alch,
.rz-disc-name,
.rz-lock-i,
.sc-free-decomp-glyph,
.sc-spec-n,
.section h2,
.vibes-gate-title{font-size:20px!important;}
body [style*="font-size:4px"],
body [style*="font-size: 4px"],
body [style*="font:4px"],
body [style*="font: 4px"],
body [style*="font-size:4.5px"],
body [style*="font-size: 4.5px"],
body [style*="font:4.5px"],
body [style*="font: 4.5px"],
body [style*="font-size:5px"],
body [style*="font-size: 5px"],
body [style*="font:5px"],
body [style*="font: 5px"],
body [style*="font-size:5.5px"],
body [style*="font-size: 5.5px"],
body [style*="font:5.5px"],
body [style*="font: 5.5px"],
body [style*="font-size:6px"],
body [style*="font-size: 6px"],
body [style*="font:6px"],
body [style*="font: 6px"],
body [style*="font-size:6.5px"],
body [style*="font-size: 6.5px"],
body [style*="font:6.5px"],
body [style*="font: 6.5px"],
body [style*="font-size:7px"],
body [style*="font-size: 7px"],
body [style*="font:7px"],
body [style*="font: 7px"],
body [style*="font-size:7.5px"],
body [style*="font-size: 7.5px"],
body [style*="font:7.5px"],
body [style*="font: 7.5px"],
body [style*="font-size:8px"],
body [style*="font-size: 8px"],
body [style*="font:8px"],
body [style*="font: 8px"],
body [style*="font-size:8.5px"],
body [style*="font-size: 8.5px"],
body [style*="font:8.5px"],
body [style*="font: 8.5px"],
body [style*="font-size:9px"],
body [style*="font-size: 9px"],
body [style*="font:9px"],
body [style*="font: 9px"]{font-size:12px!important;}
body [style*="font-size:9.5px"],
body [style*="font-size: 9.5px"],
body [style*="font:9.5px"],
body [style*="font: 9.5px"],
body [style*="font-size:10px"],
body [style*="font-size: 10px"],
body [style*="font:10px"],
body [style*="font: 10px"],
body [style*="font-size:10.5px"],
body [style*="font-size: 10.5px"],
body [style*="font:10.5px"],
body [style*="font: 10.5px"],
body [style*="font-size:11px"],
body [style*="font-size: 11px"],
body [style*="font:11px"],
body [style*="font: 11px"],
body [style*="font-size:11.5px"],
body [style*="font-size: 11.5px"],
body [style*="font:11.5px"],
body [style*="font: 11.5px"]{font-size:13px!important;}
body [style*="font-size:12px"],
body [style*="font-size: 12px"],
body [style*="font:12px"],
body [style*="font: 12px"],
body [style*="font-size:12.5px"],
body [style*="font-size: 12.5px"],
body [style*="font:12.5px"],
body [style*="font: 12.5px"],
body [style*="font-size:13px"],
body [style*="font-size: 13px"],
body [style*="font:13px"],
body [style*="font: 13px"],
body [style*="font-size:13.5px"],
body [style*="font-size: 13.5px"],
body [style*="font:13.5px"],
body [style*="font: 13.5px"]{font-size:14px!important;}
body [style*="font-size:14px"],
body [style*="font-size: 14px"],
body [style*="font:14px"],
body [style*="font: 14px"],
body [style*="font-size:15px"],
body [style*="font-size: 15px"],
body [style*="font:15px"],
body [style*="font: 15px"]{font-size:16px!important;}
body [style*="font-size:16px"],
body [style*="font-size: 16px"],
body [style*="font:16px"],
body [style*="font: 16px"],
body [style*="font-size:17px"],
body [style*="font-size: 17px"],
body [style*="font:17px"],
body [style*="font: 17px"]{font-size:18px!important;}
body [style*="font-size:18px"],
body [style*="font-size: 18px"],
body [style*="font:18px"],
body [style*="font: 18px"],
body [style*="font-size:19px"],
body [style*="font-size: 19px"],
body [style*="font:19px"],
body [style*="font: 19px"],
body [style*="font-size:20px"],
body [style*="font-size: 20px"],
body [style*="font:20px"],
body [style*="font: 20px"]{font-size:20px!important;}
@media (max-width:760px){
  :root{--aa-type-micro:13px;--aa-type-small:14px;--aa-type-ui:15px;--aa-type-body:16px;--aa-type-lead:18px;}
  .browser-menu,.browser-address{line-height:1.35;}
  .main-nav a,.mobile-nav a,.admin-nav a{font-size:15px!important;line-height:1.45;}
  button,input,select,textarea{min-height:42px;}
}

/* Database interface copy uses a readable technological sans. The literary
   serif remains intentionally scoped to the story reader. */
:root{
  --aa-font-interface:'Exo 2',Arial,sans-serif;
  --aa-font-reader:'Lora',Georgia,serif;
}
html,body{font-family:var(--aa-font-interface)!important;}
.brand{color:inherit;text-decoration:none;}
.nav-mobile-title{font-family:var(--aa-font-interface)!important;font-weight:600!important;}
.detail-val,
.codex-p,
.forces-row-val,
.ia-block-val,
.form-row textarea,
.roster-card .rc-desc,
.anc-fam-tag,
.anc-block-p,
.anc-gate-sub,
.eh-house,
.eh-desc-p,
.rz-desc,
.rz-taxonomy-panel p,
.sc-cost-v,
.af-fv.serif,
.af-sigbox-b,
.af-sigbox-note,
.rz-unstable-s,
.assoc-tag,
.intro-subtitle,
.intro-body,
.reg-choice span,
.cr-tier-b,
.cr-literal,
.cr-insc-gloss,
.rs-rules li,
.rs-grammar-rule,
.rs-meaning-cell,
.rs-devic-cell,
.rs-sub-why,
.rs-sf-desc,
.rs-cd-part,
.rs-cd-result,
.eng-result,
.eng-insc-principle,
.gr-six-cost,
.gr-elem-effect,
.gr-mini-effect,
.gr-insc-effect,
.gr-recipe-purpose,
.gr-recipe-result,
.gr-frame-desc,
.sc-free-result-body,
.cp-rules-list li,
.cp-two-meaning,
.cp-stack-reading,
.cp-stack-note,
.far-intro,
.far-note,
.hd-news-row p,
.hd-message-row p,
.hd-threat-row p,
.hd-quick-link p,
.hd-public-copy p,
.mu-hero p,
.mu-field textarea{
  font-family:var(--aa-font-interface)!important;
}
.scene-body,
.scene-body p,
.carousel-card .scene-body,
.carousel-card .scene-body p,
.story-vibes-copy,
.story-scene-caption{
  font-family:var(--aa-font-reader)!important;
}
