/* ALDREAMAC — shared style
   Palette: aged vellum, iron-gall ink, oxide-red wax, verdigris, dusk-blue
*/
:root{
  --vellum: #ece2c9;
  --vellum-dark: #ddcfa6;
  --ink: #2b2420;
  --ink-soft: #4a3f33;
  --wax: #8a2e22;
  --wax-bright: #b3402a;
  --verdigris: #4f6e5c;
  --dusk: #3b4f63;
  --gold: #a8822f;
  --rule: rgba(43,36,32,0.25);
}

@font-face{
  font-family:'Pelagia';
  src: local('Cinzel');
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}

body{
  margin:0;
  background:
    radial-gradient(ellipse at 20% 0%, rgba(168,130,47,0.10), transparent 55%),
    radial-gradient(ellipse at 85% 90%, rgba(75,110,92,0.10), transparent 55%),
    var(--vellum);
  color:var(--ink);
  font-family:'Crimson Pro', 'EB Garamond', Georgia, serif;
  font-size:18px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}

/* fibrous paper texture, layered SVG noise */
body::before{
  content:"";
  position:fixed; inset:0;
  pointer-events:none;
  opacity:0.5;
  mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  z-index:0;
}

a{color:inherit;}

.wrap{
  max-width:1080px;
  margin:0 auto;
  padding:0 28px;
  position:relative;
  z-index:1;
}

/* ---------- masthead ---------- */
.masthead{
  text-align:center;
  padding:74px 28px 36px;
  position:relative;
}

.eyebrow{
  font-family:'Cinzel', 'Trajan Pro', serif;
  letter-spacing:.32em;
  font-size:12px;
  text-transform:uppercase;
  color:var(--wax);
  margin:0 0 18px;
}

h1.title{
  font-family:'Cinzel Decorative', 'Cinzel', serif;
  font-weight:700;
  font-size:clamp(44px,8vw,92px);
  letter-spacing:.02em;
  margin:0;
  color:var(--ink);
  text-shadow: 0 1px 0 rgba(255,255,255,0.4);
}

.subtitle{
  font-family:'Cinzel', serif;
  font-size:clamp(15px,2vw,20px);
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:14px 0 0;
}

.compass{
  width:120px;
  margin:30px auto 0;
  opacity:.85;
}

hr.rule{
  border:none;
  border-top:1px solid var(--rule);
  margin:0;
}

hr.rule.thick{
  border-top:3px double var(--ink-soft);
  width:220px;
  margin:30px auto 0;
}

/* ---------- section label ---------- */
.section-label{
  display:flex;
  align-items:center;
  gap:16px;
  margin:64px 0 28px;
}
.section-label .num{
  font-family:'Cinzel', serif;
  font-size:13px;
  letter-spacing:.2em;
  color:var(--wax);
  border:1px solid var(--wax);
  border-radius:50%;
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  flex:none;
}
.section-label h2{
  font-family:'Cinzel', serif;
  font-size:15px;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:var(--ink-soft);
  margin:0;
  white-space:nowrap;
}
.section-label .line{
  flex:1;
  border-top:1px solid var(--rule);
}

/* ---------- card grid ---------- */
.grid{
  display:grid;
  gap:22px;
  grid-template-columns:repeat(3,1fr);
}
@media (max-width:820px){ .grid{grid-template-columns:1fr;} }

.card{
  background:linear-gradient(180deg, rgba(255,255,255,0.35), rgba(255,255,255,0));
  border:1px solid var(--rule);
  border-radius:2px;
  padding:0;
  overflow:hidden;
  text-decoration:none;
  display:block;
  transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
  position:relative;
}
.card:hover{
  transform:translateY(-4px);
  box-shadow:0 18px 30px -18px rgba(43,36,32,0.45);
  border-color:var(--wax);
}
.card .thumb{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  display:block;
  filter:sepia(.25) contrast(1.05);
  border-bottom:1px solid var(--rule);
}
.card .thumb-placeholder{
  width:100%;
  aspect-ratio:4/5;
  display:flex;
  align-items:center;
  justify-content:center;
  background:
    repeating-linear-gradient(135deg, rgba(43,36,32,0.05) 0 12px, transparent 12px 24px),
    var(--vellum-dark);
  border-bottom:1px solid var(--rule);
}
.card .thumb-placeholder svg{ width:46%; opacity:.55; }

.card .label{
  padding:16px 18px 20px;
}
.card .kicker{
  font-family:'Cinzel', serif;
  font-size:10.5px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--wax);
  display:block;
  margin-bottom:6px;
}
.card .name{
  font-family:'Cinzel', serif;
  font-size:18px;
  letter-spacing:.02em;
  color:var(--ink);
  margin:0 0 6px;
}
.card .desc{
  font-size:14.5px;
  color:var(--ink-soft);
  margin:0;
}

.card.locked{
  opacity:.62;
}
.card.locked:hover{
  transform:none;
  box-shadow:none;
  border-color:var(--rule);
  cursor:default;
}

/* list style links (journals, etc) */
.scroll-list{
  display:flex;
  flex-direction:column;
  border-top:1px solid var(--rule);
}
.scroll-list a, .scroll-list .row{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:18px;
  padding:16px 4px;
  border-bottom:1px solid var(--rule);
  text-decoration:none;
  color:var(--ink);
}
.scroll-list a:hover{ background:rgba(168,130,47,0.08); }
.scroll-list .entry-name{
  font-family:'Cinzel', serif;
  font-size:15.5px;
  letter-spacing:.01em;
}
.scroll-list .entry-meta{
  font-size:13px;
  color:var(--ink-soft);
  white-space:nowrap;
  font-style:italic;
}
.scroll-list .row{ color:var(--ink-soft); font-style:italic; }

footer.site{
  text-align:center;
  padding:60px 28px 80px;
  color:var(--ink-soft);
  font-size:13px;
  letter-spacing:.08em;
}
footer.site .sigil{
  width:30px;
  margin:0 auto 14px;
  opacity:.7;
}

/* breadcrumb / back link used on sub-pages */
.back-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  font-family:'Cinzel', serif;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--wax);
  text-decoration:none;
  margin-bottom:18px;
}
.back-link:hover{ text-decoration:underline; }

.page-head{
  padding:54px 28px 10px;
  text-align:center;
}
.page-head h1{
  font-family:'Cinzel', serif;
  font-size:clamp(30px,5vw,46px);
  margin:6px 0 8px;
}
.page-head p.lede{
  color:var(--ink-soft);
  max-width:560px;
  margin:0 auto;
  font-style:italic;
}

table.ledger{
  width:100%;
  border-collapse:collapse;
  margin:18px 0 50px;
  font-size:15px;
}
table.ledger caption{
  text-align:left;
  font-family:'Cinzel', serif;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:13px;
  color:var(--wax);
  padding:30px 0 10px;
}
table.ledger th{
  text-align:left;
  font-family:'Cinzel', serif;
  font-weight:600;
  font-size:12px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--ink-soft);
  border-bottom:2px solid var(--ink-soft);
  padding:8px 10px;
  white-space:nowrap;
}
table.ledger td{
  padding:7px 10px;
  border-bottom:1px solid var(--rule);
  white-space:nowrap;
}
table.ledger tr:hover td{ background:rgba(168,130,47,0.07); }
.realm-table td{ font-weight:600; }
