/* ===== Medieval Parchment — shared style for the design tome ===== */

@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=Cinzel:wght@400;600&display=swap');

:root {
  --ink:          #3a2418;
  --ink-soft:     #5a4030;
  --ink-faded:    #8a6a4a;
  --parchment:    #f4e8c8;
  --parchment-br: #faf0d8;
  --parchment-dk: #d4b88a;
  --wax:          #8b1a1a;
  --wax-br:       #b83838;
  --gold:         #b88b3a;
  --green:        #4a6a3a;
  --blue:         #3a5a7a;
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  font-family: 'Lora', Garamond, Georgia, serif;
  color: var(--ink);
  background: radial-gradient(ellipse at center, #3a2818 0%, #140b06 100%);
  min-height: 100vh;
  font-size: 17px;
  line-height: 1.6;
}

.page {
  max-width: 1100px;
  margin: 40px auto;
  padding: 60px 80px 80px;
  background:
    radial-gradient(ellipse at 18% 12%, #faf0d8 0%, transparent 50%),
    radial-gradient(ellipse at 82% 88%, #f0d8a0 0%, transparent 55%),
    linear-gradient(135deg, #f4e8c8 0%, #e6d2a6 100%);
  box-shadow:
    inset 0 0 90px rgba(139,80,30,0.22),
    inset 0 0 220px rgba(139,80,30,0.08),
    0 20px 60px rgba(0,0,0,0.75);
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}

/* Aged spots */
.page::before {
  content: '';
  position: absolute; inset: 0;
  background-image:
    radial-gradient(circle at 12% 24%, rgba(120,70,20,0.14) 0, transparent 2.2%),
    radial-gradient(circle at 78% 18%, rgba(120,70,20,0.10) 0, transparent 2.5%),
    radial-gradient(circle at 45% 78%, rgba(120,70,20,0.14) 0, transparent 3.0%),
    radial-gradient(circle at 88% 62%, rgba(120,70,20,0.10) 0, transparent 2.0%),
    radial-gradient(circle at 22% 55%, rgba(120,70,20,0.08) 0, transparent 2.6%),
    radial-gradient(circle at 60% 35%, rgba(120,70,20,0.06) 0, transparent 1.6%);
  pointer-events: none;
}

/* Vignette / burned edges */
.page::after {
  content: '';
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at top,    transparent 68%, rgba(70,32,8,0.28) 100%),
    radial-gradient(ellipse at bottom, transparent 68%, rgba(70,32,8,0.28) 100%),
    radial-gradient(ellipse at left,   transparent 78%, rgba(70,32,8,0.20) 100%),
    radial-gradient(ellipse at right,  transparent 78%, rgba(70,32,8,0.20) 100%);
  pointer-events: none;
}

.page > * { position: relative; z-index: 1; }

h1, h2, h3, h4 {
  font-family: 'Cinzel', Georgia, serif;
  color: var(--ink);
  font-weight: 600;
  letter-spacing: 0.04em;
  margin: 0 0 0.4em;
}
h1 { font-size: 3.6em; text-align: center; line-height: 1.05; }
h2 { font-size: 2.0em; border-bottom: 1px solid var(--ink-faded); padding-bottom: 6px; margin-top: 1.6em; }
h3 { font-size: 1.4em; color: var(--wax); margin-top: 1.2em; }
h4 { font-size: 1.15em; color: var(--ink-soft); margin-top: 1em; }

.subtitle {
  text-align: center;
  font-family: 'Lora', serif;
  font-style: italic;
  color: var(--ink-soft);
  font-size: 1.15em;
  margin: -6px 0 0;
}

p { margin: 0 0 1em; }
em { color: var(--ink-soft); }
strong { color: var(--wax); font-weight: 600; font-family: 'Cinzel', serif; letter-spacing: 0.05em; font-size: 0.95em; }

a {
  color: var(--wax);
  text-decoration: none;
  border-bottom: 1px dashed var(--wax);
}
a:hover { color: var(--wax-br); }

/* Ornamental divider */
.divider {
  text-align: center;
  margin: 32px 0;
  color: var(--gold);
  font-size: 1.4em;
  letter-spacing: 0.8em;
}
.divider::before { content: '❦ ✦ ❦'; }

/* Drop cap */
.dropcap::first-letter {
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 3.6em;
  float: left;
  line-height: 0.9;
  padding: 6px 12px 0 2px;
  color: var(--wax);
}

/* Generic boxes */
.box {
  background: rgba(255,248,220,0.45);
  border: 1.5px solid var(--ink-soft);
  border-radius: 3px;
  padding: 16px 22px;
  position: relative;
}
.box.warn { border-color: var(--wax); background: rgba(180,60,60,0.08); }
.box.note { border-style: dashed; }

/* Wax seal */
.seal {
  width: 92px; height: 92px;
  border-radius: 50%;
  background: radial-gradient(circle at 32% 28%, #d24848 0%, #8b1a1a 50%, #5a0e0e 100%);
  display: flex; align-items: center; justify-content: center;
  color: var(--parchment);
  font-family: 'Cinzel', serif;
  font-weight: 600;
  font-size: 2.2em;
  box-shadow:
    inset -3px -4px 8px rgba(0,0,0,0.55),
    inset 3px 3px 6px rgba(255,180,180,0.30),
    3px 5px 12px rgba(0,0,0,0.50);
  transform: rotate(-6deg);
}

.nav-back {
  display: inline-block;
  font-style: italic;
  font-size: 0.95em;
  margin-bottom: 8px;
}

/* Bars (HP, Stamina, etc.) */
.bar {
  height: 14px;
  background: rgba(58,36,24,0.22);
  border: 1px solid var(--ink);
  border-radius: 7px;
  position: relative;
  overflow: hidden;
}
.bar > .fill { height: 100%; }
.bar.hp    > .fill { background: linear-gradient(180deg, #c83838, #7a1010); }
.bar.stam  > .fill { background: linear-gradient(180deg, #d4a838, #8a6a18); }
.bar.dura  > .fill { background: linear-gradient(180deg, #b8c4cc, #5a6a78); }
.bar.quota > .fill { background: linear-gradient(180deg, #d4a838, #8a6a18); }
.bar.threat> .fill { background: linear-gradient(90deg, #4a6a3a 0%, #d4a838 50%, #b83838 100%); }

table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0;
}
th, td {
  text-align: left;
  padding: 8px 12px;
  border-bottom: 1px solid var(--parchment-dk);
  vertical-align: top;
}
th {
  font-family: 'Cinzel', serif;
  color: var(--wax);
  font-weight: normal;
  letter-spacing: 0.08em;
}

.footer-note {
  text-align: center;
  font-style: italic;
  color: var(--ink-faded);
  font-size: 0.9em;
  margin-top: 60px;
}

/* Table of contents */
.toc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 22px;
  margin: 32px 0;
}
.toc-card {
  background: rgba(255,248,220,0.42);
  border: 1.5px solid var(--ink-soft);
  padding: 22px 24px;
  display: block;
  text-decoration: none;
  color: var(--ink);
  transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
}
.toc-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 22px rgba(58,36,24,0.32);
  border-color: var(--wax);
}
.toc-card h3 { margin-top: 0; }
.toc-card p { color: var(--ink-soft); margin: 0; }

/* Flow diagram */
.flow {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 26px 0;
}
.flow .step {
  background: var(--parchment-br);
  border: 2px solid var(--ink);
  border-radius: 4px;
  padding: 14px 22px;
  text-align: center;
  min-width: 320px;
  max-width: 520px;
  box-shadow: 3px 4px 0 var(--ink-faded);
}
.flow .step .label { font-family: 'Cinzel', serif; letter-spacing: 0.08em; color: var(--wax); display: block; font-size: 0.85em; }
.flow .step .desc { font-style: italic; color: var(--ink-soft); font-size: 0.92em; margin-top: 4px; display: block; }
.flow .arrow { font-size: 1.6em; color: var(--wax); line-height: 1; }

/* Two-column layout */
.cols-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
@media (max-width: 800px) {
  .cols-2 { grid-template-columns: 1fr; }
  .page { padding: 40px 24px; }
}

/* Mock screen frame (for UI mockups) */
.screen {
  background: linear-gradient(135deg, #1a1410 0%, #2a1f15 60%, #1f1610 100%);
  border: 6px solid var(--ink);
  border-radius: 8px;
  aspect-ratio: 16 / 9;
  position: relative;
  color: #f0e0c0;
  font-family: 'IM Fell English', serif;
  overflow: hidden;
  box-shadow: 6px 8px 20px rgba(0,0,0,0.5), inset 0 0 60px rgba(0,0,0,0.6);
}
.screen .scene {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 50% 60%, rgba(180,140,80,0.18), transparent 60%),
    linear-gradient(180deg, #2a1f15 0%, #1a120a 100%);
}

/* Hub map */
.map {
  background: var(--parchment-br);
  border: 2px solid var(--ink);
  position: relative;
}

/* Tabs */
.tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--ink);
}
.tab {
  padding: 10px 22px;
  background: rgba(212,184,138,0.4);
  border: 2px solid var(--ink);
  border-bottom: none;
  font-family: 'Cinzel', serif;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
  cursor: default;
  margin-right: -2px;
}
.tab.active {
  background: var(--parchment-br);
  color: var(--wax);
}

/* Stamp */
.stamp {
  display: inline-block;
  padding: 6px 14px;
  border: 3px double var(--wax);
  color: var(--wax);
  font-family: 'Cinzel', serif;
  letter-spacing: 0.15em;
  transform: rotate(-4deg);
  opacity: 0.85;
}
