:root {
--ink: #2b160d;
--ink-soft: #4b2a18;

--paper: #f3dfb8;
--paper-light: #fff3d0;

--gold: #c99732;
--deep-gold: #9b6a18;
--ruby: #6e1f1a;
--olive: #4f5a2a;
--lapis: #163d4f;

--shadow: rgba(43, 22, 13, 0.35);
--soft-shadow: rgba(43, 22, 13, 0.16);

--max-width: 900px;
}

/* ---------- Base ---------- */

* {
  box-sizing: border-box;
  }

html {
min-height: 100%;
background: #4d1713;
}

body {
margin: 0;
min-height: 100vh;
color: var(--ink);
font-family: Georgia, "Times New Roman", serif;
line-height: 1.75;
background:
radial-gradient(circle at 20% 15%, rgba(255, 218, 135, 0.22), transparent 22%),
radial-gradient(circle at 85% 30%, rgba(201, 151, 50, 0.18), transparent 24%),
repeating-linear-gradient(
45deg,
rgba(255, 230, 170, 0.055) 0 2px,
transparent 2px 34px
),
linear-gradient(135deg, #4d1713, #7a2f1f 45%, #9b5b26 75%, #5b2116);
background-attachment: fixed;
}

body::before {
content: "";
position: fixed;
inset: 0;
z-index: 0;
pointer-events: none;
background:
repeating-conic-gradient(
from 45deg,
rgba(201, 151, 50, 0.12) 0deg 15deg,
transparent 15deg 30deg,
rgba(79, 90, 42, 0.08) 30deg 45deg,
transparent 45deg 60deg
);
opacity: 0.45;
mix-blend-mode: soft-light;
}

/* ---------- Main Layout ---------- */

.site-shell {
position: relative;
z-index: 1;
max-width: var(--max-width);
margin: 48px auto;
padding: 20px;
}

.manuscript {
position: relative;
padding: 52px clamp(24px, 6vw, 72px);
background:
radial-gradient(circle at top left, rgba(255, 255, 255, 0.65), transparent 34%),
linear-gradient(135deg, var(--paper-light), var(--paper));
border: 10px double var(--deep-gold);
border-radius: 28px;
box-shadow:
0 20px 60px var(--shadow),
inset 0 0 0 3px rgba(110, 31, 26, 0.28),
inset 0 0 40px rgba(155, 106, 24, 0.22);
}

/* Corner ornaments */
.manuscript::before,
.manuscript::after {
content: "";
position: absolute;
width: 92px;
height: 92px;
border-radius: 50%;
opacity: 0.86;
background:
radial-gradient(circle, var(--gold) 0 10%, transparent 11%),
conic-gradient(
from 45deg,
var(--ruby) 0 12.5%,
var(--gold) 12.5% 25%,
var(--olive) 25% 37.5%,
var(--deep-gold) 37.5% 50%,
var(--ruby) 50% 62.5%,
var(--gold) 62.5% 75%,
var(--olive) 75% 87.5%,
var(--deep-gold) 87.5% 100%
);
filter: drop-shadow(0 4px 5px rgba(43, 22, 13, 0.25));
}

.manuscript::before {
top: -38px;
left: -38px;
}

.manuscript::after {
right: -38px;
bottom: -38px;
}

/* ---------- Header ---------- */

.site-header,
.site-footer {
text-align: center;
color: var(--ink-soft);
border-color: rgba(155, 106, 24, 0.7);
}

.site-header {
margin-bottom: 42px;
padding-bottom: 28px;
border-bottom: 3px double rgba(155, 106, 24, 0.7);
}

.site-title {
margin: 0;
color: var(--ruby);
font-size: clamp(2.3rem, 7vw, 4.4rem);
line-height: 1;
letter-spacing: 0.04em;
text-shadow:
1px 1px 0 var(--gold),
0 5px 14px rgba(43, 22, 13, 0.22);
}

.site-subtitle {
margin: 14px 0 0;
font-size: 1.05rem;
font-style: italic;
}

/* ---------- Navigation ---------- */

.site-nav {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px 16px;
margin-bottom: 36px;
}

.site-nav a {
padding: 8px 14px;
color: var(--paper-light);
text-decoration: none;
background: linear-gradient(135deg, var(--ruby), #8a3a1f);
border: 1px solid var(--gold);
border-radius: 999px;
box-shadow: 0 4px 10px var(--soft-shadow);
}

.site-nav a:hover {
color: white;
background: linear-gradient(135deg, var(--deep-gold), var(--ruby));
}

/* ---------- Decorative Divider ---------- */

.fatimid-divider {
display: flex;
align-items: center;
gap: 14px;
max-width: 520px;
margin: 34px auto;
}

.fatimid-divider::before,
.fatimid-divider::after {
content: "";
flex: 1;
height: 3px;
background: linear-gradient(
90deg,
transparent,
var(--deep-gold),
var(--gold),
var(--deep-gold),
transparent
);
}

.fatimid-divider span {
width: 24px;
height: 24px;
transform: rotate(45deg);
background:
radial-gradient(circle, var(--paper-light) 0 22%, transparent 23%),
conic-gradient(var(--ruby), var(--gold), var(--olive), var(--ruby));
border: 2px solid var(--deep-gold);
}

/* ---------- Chapter Typography ---------- */

.chapter-title {
margin: 0 0 10px;
color: var(--ruby);
font-size: clamp(2rem, 5vw, 3.2rem);
line-height: 1.15;
text-align: center;
}

.chapter-meta {
margin: 0 0 36px;
color: var(--ink-soft);
font-size: 0.95rem;
text-align: center;
}

.chapter-content {
font-size: clamp(1.05rem, 2vw, 1.18rem);
}

.chapter-content p {
margin: 0 0 1.35em;
}

.chapter-content p:first-of-type::first-letter {
float: left;
padding: 8px 12px 0 0;
color: var(--ruby);
font-size: 4.4rem;
line-height: 0.85;
text-shadow: 1px 1px 0 var(--gold);
}

.chapter-content h2,
.chapter-content h3 {
color: var(--ruby);
line-height: 1.25;
}

.chapter-content h2 {
margin: 2.2em 0 0.7em;
padding-bottom: 8px;
font-size: 1.75rem;
border-bottom: 2px solid rgba(155, 106, 24, 0.45);
}

.chapter-content h3 {
margin: 2.2em 0 0.7em;
font-size: 1.35rem;
}

/* ---------- Text Blocks ---------- */

blockquote,
.ornament-box {
margin: 2em 0;
border-radius: 16px;
background:
linear-gradient(rgba(255, 246, 218, 0.82), rgba(230, 188, 105, 0.35)),
repeating-linear-gradient(
45deg,
rgba(155, 106, 24, 0.08) 0 4px,
transparent 4px 12px
);
box-shadow: inset 0 0 18px rgba(155, 106, 24, 0.16);
}

blockquote {
padding: 22px 28px;
color: #32190f;
border-left: 8px solid var(--gold);
font-style: italic;
}

.ornament-box {
padding: 20px;
overflow-x: auto;
border: 4px double var(--gold);
}

/* ---------- Number Tables ---------- */

.number-form-table {
width: 100%;
min-width: 620px;
table-layout: fixed;
border-collapse: collapse;
direction: rtl;
text-align: center;
font-size: clamp(1.05rem, 2vw, 1.25rem);
background: rgba(255, 246, 218, 0.45);
border: 2px solid rgba(155, 106, 24, 0.55);
}

.number-form-table td {
padding: 14px 10px;
border: 1px solid rgba(155, 106, 24, 0.45);
vertical-align: middle;
}

.number-form-table tr:nth-child(odd) td {
color: var(--ruby);
font-weight: bold;
}

.number-form-table tr:nth-child(even) td {
color: var(--ink);
}

/* ---------- Chapter Index Cards ---------- */

.chapter-list {
display: grid;
gap: 22px;
margin-top: 32px;
}

.chapter-card {
position: relative;
padding: 24px 26px;
overflow: hidden;
background: linear-gradient(
135deg,
rgba(255, 246, 218, 0.88),
rgba(221, 176, 91, 0.42)
);
border: 3px double rgba(155, 106, 24, 0.75);
border-radius: 18px;
box-shadow: 0 10px 24px var(--soft-shadow);
}

.chapter-card::before {
content: "";
position: absolute;
inset: -40%;
pointer-events: none;
background: repeating-conic-gradient(
from 0deg,
rgba(201, 151, 50, 0.16) 0deg 15deg,
transparent 15deg 30deg
);
opacity: 0.35;
transform: rotate(12deg);
}

.chapter-card > * {
position: relative;
}

.chapter-card h2 {
margin-top: 0;
color: var(--ruby);
}

.chapter-card a {
font-weight: bold;
}

/* ---------- Links and Utilities ---------- */

a {
color: var(--ruby);
text-decoration-thickness: 2px;
text-underline-offset: 4px;
}

a:hover {
color: var(--lapis);
}

.center {
text-align: center;
}

/* ---------- Footer ---------- */

.site-footer {
margin-top: 44px;
padding-top: 24px;
font-size: 0.95rem;
border-top: 3px double rgba(155, 106, 24, 0.7);
}

/* ---------- Mobile ---------- */

@media (max-width: 640px) {
.site-shell {
margin: 20px auto;
padding: 12px;
}

.manuscript {
padding: 34px 22px;
border-width: 7px;
border-radius: 20px;
}

.manuscript::before,
.manuscript::after {
width: 64px;
height: 64px;
}

.manuscript::before {
top: -26px;
left: -26px;
}

.manuscript::after {
right: -26px;
bottom: -26px;
}

.chapter-content p:first-of-type::first-letter {
font-size: 3.2rem;
}

.number-form-table {
min-width: 520px;
}
}
