.eldfall-codex-root{
  --panel:         #1c170f;
  --card:          #221b12;
  --card-hover:    #2a2116;
  --border:        #392e1f;
  --border-soft:   #2a2317;
  --text:          #e9dfc9;
  --text-dim:      #b7a98c;
  --text-faint:    #8a7c63;
  --gold:          #c99a4b;
  --gold-bright:   #e7bd72;
  --teal:          #5b9a8c;
  --teal-dim:      #3d6a60;
  --red:           #a5453b;
  --red-dim:       #7a352e;
  --shadow:        0 8px 28px rgba(0,0,0,.45);
  --radius:        3px;
  --serif: "Crimson Pro", "Crimson Text", Georgia, serif;
  --display: "Cinzel", "Crimson Pro", serif;
  --mono: "JetBrains Mono", "Courier New", monospace;
}
.eldfall-codex-root, .eldfall-codex-root *{ box-sizing:border-box; }
.eldfall-codex-root{ scroll-behavior:smooth; }
.eldfall-codex-root ::selection{ background:var(--gold); color:#1a1409; }
.eldfall-codex-root{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--serif);
  font-size:17px;
  line-height:1.65;
  background-image:
    radial-gradient(ellipse 900px 500px at 15% -10%, rgba(197,154,75,.06), transparent 60%),
    radial-gradient(ellipse 700px 500px at 100% 20%, rgba(91,154,140,.05), transparent 55%);
}
.eldfall-codex-root a{ color:var(--gold-bright); text-decoration:none; }
.eldfall-codex-root a:hover{ text-decoration:underline; }
.eldfall-codex-root ::-webkit-scrollbar{ width:10px; height:10px; }
.eldfall-codex-root ::-webkit-scrollbar-track{ background:var(--bg); }
.eldfall-codex-root ::-webkit-scrollbar-thumb{ background:var(--border); border-radius:6px; }
.eldfall-codex-root ::-webkit-scrollbar-thumb:hover{ background:var(--gold-dim,#5a4a2c); }
.eldfall-codex-root a:focus-visible, .eldfall-codex-root button:focus-visible, .eldfall-codex-root input:focus-visible, .eldfall-codex-root .navlink:focus-visible{
  outline:2px solid var(--gold-bright);
  outline-offset:2px;
}
@media (prefers-reduced-motion: reduce){
.eldfall-codex-root, .eldfall-codex-root *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}
.eldfall-codex-root .shell{
  display:flex;
  min-height:100vh;
}
.eldfall-codex-root .topbar{
  display:none;
  position:sticky; top:0; z-index:60;
  align-items:center; gap:.75rem;
  padding:.7rem 1rem;
  background:linear-gradient(var(--bg-alt), var(--bg-alt)) padding-box;
  border-bottom:1px solid var(--border);
}
.eldfall-codex-root .topbar .brandmark{ font-family:var(--display); letter-spacing:.06em; font-size:1rem; color:var(--gold-bright); }
.eldfall-codex-root .burger{
  background:none; border:1px solid var(--border); color:var(--text);
  width:38px; height:38px; border-radius:var(--radius); cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  font-size:1.1rem;
}
.eldfall-codex-root .sidebar{
  width:300px; flex-shrink:0;
 
  border-right:1px solid var(--border);
  position:sticky; top:0; height:100vh; overflow-y:auto;
  padding:1.4rem 1.1rem 3rem;
}
.eldfall-codex-root .brand{
  display:flex; flex-direction:column; gap:.15rem;
  padding-bottom:1.1rem; margin-bottom:1rem;
  border-bottom:1px solid var(--border-soft);
}
.eldfall-codex-root .brand .mark{
  font-family:var(--display); font-size:1.3rem; letter-spacing:.09em;
  color:var(--gold-bright); text-transform:uppercase;
}
.eldfall-codex-root .brand .sub{
  font-family:var(--mono); font-size:.68rem; letter-spacing:.14em;
  text-transform:uppercase; color:var(--text-faint);
}
.eldfall-codex-root .searchwrap{ position:relative; margin-bottom:1.2rem; }
.eldfall-codex-root .searchwrap input{
  width:100%; padding:.55rem .7rem .55rem 2rem;
  background:var(--bg-alt); border:1px solid var(--border); color:var(--text);
  border-radius:var(--radius); font-family:var(--serif); font-size:.92rem;
}
.eldfall-codex-root .searchwrap input::placeholder{ color:var(--text-faint); }
.eldfall-codex-root .searchwrap input:focus{ border-color:var(--gold); outline:none; }
.eldfall-codex-root .searchwrap .icon{
  position:absolute; left:.6rem; top:50%; transform:translateY(-50%);
  color:var(--text-faint); font-size:.85rem; pointer-events:none;
}
.eldfall-codex-root .search-hint{ font-size:.72rem; color:var(--text-faint); margin:-.85rem 0 1.1rem .1rem; font-family:var(--mono); }
.eldfall-codex-root nav.toc{ font-size:.9rem; }
.eldfall-codex-root .toc-group{ margin-bottom:.15rem; }
.eldfall-codex-root .toc-group > .navlink{ font-weight:600; }
.eldfall-codex-root .navlink{
  display:block; padding:.34rem .5rem; border-radius:var(--radius);
  color:var(--text-dim); cursor:pointer; line-height:1.3;
  border-left:2px solid transparent;
}
.eldfall-codex-root .navlink:hover{ color:var(--text); background:rgba(201,154,75,.07); text-decoration:none; }
.eldfall-codex-root .navlink.active{
  color:var(--gold-bright); border-left-color:var(--gold);
  background:rgba(201,154,75,.09);
}
.eldfall-codex-root .toc-sub{ margin-left:.7rem; border-left:1px solid var(--border-soft); padding-left:0; }
.eldfall-codex-root .toc-sub .navlink{ font-size:.83rem; padding:.26rem .5rem; color:var(--text-faint); }
.eldfall-codex-root .toc-sub .navlink:hover, .eldfall-codex-root .toc-sub .navlink.active{ color:var(--gold-bright); }
.eldfall-codex-root .sidebar-foot{
  margin-top:1.6rem; padding-top:1rem; border-top:1px solid var(--border-soft);
  font-size:.72rem; color:var(--text-faint); font-family:var(--mono); line-height:1.6;
}
.eldfall-codex-root main{
  flex:1; min-width:0;
  max-width:1100px;
  padding:0 3.2rem 6rem;
}
@media (max-width:1180px){
.eldfall-codex-root main{ padding:0 2.2rem 6rem; }
}
@media (max-width:760px){
.eldfall-codex-root main{ padding:0 1.15rem 5rem; }
}
.eldfall-codex-root .hero{
  padding:4.5rem 0 3rem;
  border-bottom:1px solid var(--border-soft);
  margin-bottom:2.6rem;
  position:relative;
}
.eldfall-codex-root .hero .eyebrow{
  font-family:var(--mono); letter-spacing:.22em; text-transform:uppercase;
  font-size:.72rem; color:var(--teal); margin-bottom:1rem;
}
.eldfall-codex-root .hero h1{
  font-family:var(--display); font-size:clamp(2.3rem,5.4vw,3.6rem);
  line-height:1.08; letter-spacing:.01em; margin:0 0 1rem;
  color:var(--text);
}
.eldfall-codex-root .hero h1 em{
  font-style:normal; color:var(--gold-bright);
}
.eldfall-codex-root .hero p.lede{
  max-width:640px; font-size:1.14rem; color:var(--text-dim); margin:0 0 1.8rem;
}
.eldfall-codex-root .hero .badges{ display:flex; gap:.6rem; flex-wrap:wrap; }
.eldfall-codex-root .pill{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.06em;
  border:1px solid var(--border); color:var(--text-dim);
  padding:.3rem .65rem; border-radius:20px;
}
.eldfall-codex-root section.block{ scroll-margin-top:1.5rem; margin-bottom:3.4rem; }
.eldfall-codex-root .kicker{
  font-family:var(--mono); font-size:.72rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--teal); margin-bottom:.5rem;
}
.eldfall-codex-root h2.h-title{
  font-family:var(--display); font-size:1.9rem; letter-spacing:.02em;
  color:var(--gold-bright); margin:0 0 .3rem;
  padding-bottom:.6rem; border-bottom:1px solid var(--border-soft);
}
.eldfall-codex-root h3.h-sub{
  font-family:var(--display); font-size:1.22rem; letter-spacing:.02em;
  color:var(--text); margin:2rem 0 .7rem;
}
.eldfall-codex-root h4.h-minor{
  font-family:var(--serif); font-weight:700; font-size:1.02rem;
  color:var(--gold-bright); margin:1.3rem 0 .4rem;
  text-transform:uppercase; letter-spacing:.03em; font-size:.92rem;
}
.eldfall-codex-root .section-intro{ color:var(--text-dim); font-size:1.03rem; margin:1rem 0 1.4rem; }
.eldfall-codex-root p{ margin:0 0 1rem; }
.eldfall-codex-root ul.plain, .eldfall-codex-root ol.plain{ margin:0 0 1rem; padding-left:1.3rem; }
.eldfall-codex-root ul.plain li, .eldfall-codex-root ol.plain li{ margin-bottom:.45rem; }
.eldfall-codex-root .note{
  border-left:3px solid var(--teal-dim); background:rgba(91,154,140,.06);
  padding:.75rem 1rem; border-radius:0 var(--radius) var(--radius) 0;
  font-size:.94rem; color:var(--text-dim); margin:1.1rem 0;
}
.eldfall-codex-root .example{
  border-left:3px solid var(--gold); background:rgba(201,154,75,.06);
  padding:.8rem 1.05rem; border-radius:0 var(--radius) var(--radius) 0;
  font-size:.94rem; color:var(--text-dim); margin:1.1rem 0;
}
.eldfall-codex-root .example b, .eldfall-codex-root .note b{ color:var(--text); }
.eldfall-codex-root .hint{
  border-left:3px solid var(--red-dim); background:rgba(165,69,59,.07);
  padding:.75rem 1rem; border-radius:0 var(--radius) var(--radius) 0;
  font-size:.94rem; color:var(--text-dim); margin:1.1rem 0;
}
.eldfall-codex-root table.reftable{
  width:100%; border-collapse:collapse; margin:1.1rem 0 1.4rem;
  font-size:.88rem; font-family:var(--mono);
}
.eldfall-codex-root table.reftable th{
  text-align:left; color:var(--gold-bright); font-weight:600;
  border-bottom:1px solid var(--border); padding:.45rem .6rem;
  text-transform:uppercase; letter-spacing:.04em; font-size:.72rem;
}
.eldfall-codex-root table.reftable td{
  padding:.45rem .6rem; border-bottom:1px solid var(--border-soft); color:var(--text-dim);
}
.eldfall-codex-root table.reftable tr:hover td{ background:rgba(201,154,75,.04); }
.eldfall-codex-root .attr-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr));
  gap:.7rem; margin:1.3rem 0 1.6rem;
}
.eldfall-codex-root .attr-card{
  background:var(--card); border:1px solid var(--border-soft); border-radius:var(--radius);
  padding:.75rem .9rem; display:flex; gap:.7rem; align-items:flex-start;
}
.eldfall-codex-root .attr-badge{
  flex-shrink:0; width:2.5rem; height:2.5rem;
  clip-path:polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  background:linear-gradient(160deg, var(--gold), #8a6526);
  color:#1a1409; font-family:var(--mono); font-weight:700; font-size:.72rem;
  display:flex; align-items:center; justify-content:center; letter-spacing:.02em;
}
.eldfall-codex-root .attr-card .attr-txt strong{ display:block; color:var(--text); font-size:.9rem; font-family:var(--serif); }
.eldfall-codex-root .attr-card .attr-txt span{ font-size:.83rem; color:var(--text-faint); }
.eldfall-codex-root .grid-toolbar{
  display:flex; align-items:center; justify-content:space-between; gap:1rem;
  margin:1rem 0 1rem; flex-wrap:wrap;
}
.eldfall-codex-root .grid-count{ font-family:var(--mono); font-size:.75rem; color:var(--text-faint); }
.eldfall-codex-root .card-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr));
  gap:.85rem;
}
.eldfall-codex-root .entry-card{
  background:var(--card); border:1px solid var(--border-soft); border-radius:var(--radius);
  padding:.95rem 1.05rem; transition:border-color .15s, transform .15s, background .15s;
}
.eldfall-codex-root .entry-card:hover{ border-color:var(--gold); background:var(--card-hover); }
.eldfall-codex-root .entry-card h5{
  margin:0 0 .35rem; font-family:var(--display); font-size:1rem;
  color:var(--gold-bright); letter-spacing:.01em; font-weight:600;
}
.eldfall-codex-root .entry-card p{ margin:0; font-size:.89rem; color:var(--text-dim); line-height:1.55; }
.eldfall-codex-root .entry-card.hidden{ display:none; }
.eldfall-codex-root .art-block{ margin-bottom:1.7rem; }
.eldfall-codex-root .art-block h4{ margin-bottom:.5rem; }
.eldfall-codex-root .art-levels{ border-left:2px solid var(--border); padding-left:1rem; }
.eldfall-codex-root .art-level{ display:flex; gap:.8rem; margin-bottom:.55rem; font-size:.92rem; }
.eldfall-codex-root .art-level .roman{
  font-family:var(--mono); color:var(--gold); flex-shrink:0; width:1.6rem; font-weight:700;
}
.eldfall-codex-root .art-level .name{ color:var(--text); font-weight:600; }
.eldfall-codex-root .art-level .desc{ color:var(--text-dim); }
.eldfall-codex-root .faction-tabs{
  display:flex; gap:.4rem; flex-wrap:wrap; margin:1.1rem 0 1.5rem;
}
.eldfall-codex-root .faction-tab{
  font-family:var(--mono); font-size:.76rem; letter-spacing:.03em;
  padding:.4rem .85rem; border:1px solid var(--border); border-radius:20px;
  color:var(--text-dim); cursor:pointer; background:var(--bg-alt);
}
.eldfall-codex-root .faction-tab:hover{ color:var(--text); border-color:var(--gold-dim,#8a6526); }
.eldfall-codex-root .faction-tab.active{ color:#19140c; background:var(--gold); border-color:var(--gold); font-weight:600; }
.eldfall-codex-root .faction-panel{ display:none; }
.eldfall-codex-root .faction-panel.active{ display:block; }
.eldfall-codex-root .roll-table{ margin:1rem 0 1.8rem; }
.eldfall-codex-root .roll-table table{ width:100%; border-collapse:collapse; font-size:.85rem; }
.eldfall-codex-root .roll-table th{ text-align:left; color:var(--gold-bright); border-bottom:1px solid var(--border); padding:.4rem .5rem; font-size:.72rem; text-transform:uppercase; letter-spacing:.04em; }
.eldfall-codex-root .roll-table td{ padding:.4rem .5rem; border-bottom:1px solid var(--border-soft); color:var(--text-dim); font-family:var(--mono); font-size:.82rem; }
.eldfall-codex-root .scheme-card, .eldfall-codex-root .upgrade-card{
  background:var(--card); border:1px solid var(--border-soft); border-radius:var(--radius);
  padding:.9rem 1.05rem; margin-bottom:.7rem;
}
.eldfall-codex-root .scheme-card h5, .eldfall-codex-root .upgrade-card h5{
  margin:0 0 .3rem; color:var(--gold-bright); font-family:var(--display); font-size:.98rem;
}
.eldfall-codex-root .upgrade-card .meta{ font-family:var(--mono); font-size:.72rem; color:var(--teal); margin-bottom:.4rem; }
.eldfall-codex-root .scheme-card p, .eldfall-codex-root .upgrade-card p{ margin:0; font-size:.89rem; color:var(--text-dim); }
.eldfall-codex-root .lore-card{
  border:1px solid var(--border-soft); border-radius:var(--radius); background:var(--card);
  padding:1.3rem 1.4rem; margin-bottom:1.4rem;
}
.eldfall-codex-root .lore-card h3{ margin-top:0; }
.eldfall-codex-root .lore-card .tips{ margin-top:.9rem; padding-top:.9rem; border-top:1px dashed var(--border); }
.eldfall-codex-root .lore-card .tips h4{ margin-top:0; color:var(--teal); }
.eldfall-codex-root .quest-card{
  border:1px solid var(--border-soft); border-radius:var(--radius); background:var(--card);
  padding:1.3rem 1.5rem; margin-bottom:1.6rem;
}
.eldfall-codex-root .quest-card h3{ margin-top:0; margin-bottom:.4rem; }
.eldfall-codex-root .quest-card .flavor{ font-style:italic; color:var(--text-faint); font-size:.92rem; margin-bottom:1rem; }
.eldfall-codex-root .quest-meta{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:1rem; margin:1rem 0; }
.eldfall-codex-root .quest-meta .qm-label{ font-family:var(--mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; color:var(--gold); margin-bottom:.3rem; }
.eldfall-codex-root .quest-meta .qm-body{ font-size:.9rem; color:var(--text-dim); }
.eldfall-codex-root .numbered-list{ counter-reset:profnum; list-style:none; padding:0; margin:1.2rem 0; }
.eldfall-codex-root .numbered-list li{
  counter-increment:profnum; position:relative; padding-left:2.4rem; margin-bottom:1rem;
}
.eldfall-codex-root .numbered-list li::before{
  content:counter(profnum); position:absolute; left:0; top:.05rem;
  width:1.7rem; height:1.7rem; border-radius:50%;
  border:1px solid var(--gold); color:var(--gold-bright);
  font-family:var(--mono); font-size:.78rem; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.eldfall-codex-root .numbered-list b{ color:var(--text); }
.eldfall-codex-root .tips-list{ list-style:none; padding:0; margin:1rem 0; }
.eldfall-codex-root .tips-list li{
  position:relative; padding-left:1.5rem; margin-bottom:.85rem; color:var(--text-dim); font-size:.97rem;
}
.eldfall-codex-root .tips-list li::before{ content:"◆"; position:absolute; left:0; color:var(--gold); font-size:.65rem; top:.35rem; }
.eldfall-codex-root .section-footnav{
  display:flex; justify-content:space-between; gap:1rem; margin-top:3rem;
  padding-top:1.4rem; border-top:1px solid var(--border-soft);
  font-family:var(--mono); font-size:.78rem;
}
.eldfall-codex-root .section-footnav a{ color:var(--text-dim); }
.eldfall-codex-root .section-footnav a:hover{ color:var(--gold-bright); }
.eldfall-codex-root .top-btn{
  position:fixed; bottom:1.6rem; right:1.6rem; z-index:50;
  width:2.7rem; height:2.7rem; border-radius:50%;
  background:var(--panel); border:1px solid var(--border); color:var(--gold-bright);
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  box-shadow:var(--shadow); opacity:0; pointer-events:none; transition:opacity .2s;
  font-size:1.1rem;
}
.eldfall-codex-root .top-btn.show{ opacity:1; pointer-events:auto; }
.eldfall-codex-root .no-results{ color:var(--text-faint); font-style:italic; font-size:.9rem; padding:.5rem 0; display:none; }
.eldfall-codex-root .ornament{
  text-align:center; color:var(--border); font-size:1.1rem; letter-spacing:1em;
  margin:2.5rem 0; user-select:none;
}
.eldfall-codex-root .scrim{ display:none; }
@media (max-width:920px){
.eldfall-codex-root .topbar{ display:flex; }
.eldfall-codex-root .sidebar{
    position:fixed; left:0; top:0; height:100dvh; z-index:70;
    transform:translateX(-105%); transition:transform .25s ease;
    box-shadow:var(--shadow);
  }
.eldfall-codex-root .sidebar.open{ transform:translateX(0); }
.eldfall-codex-root .scrim{
    display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:65;
  }
.eldfall-codex-root .scrim.show{ display:block; }
.eldfall-codex-root main{ padding-top:1.5rem; }
}
/* ============================================================
   FULL-BLEED OVERRIDE
   Breaks the codex out of the theme's centered content column,
   so the sidebar + main content span the full browser width
   regardless of the active theme's page-content max-width.
   ============================================================ */
.eldfall-codex-root{
  width: 100vw;
  max-width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  box-sizing: border-box;
}
