/* =========================================================
VERDIGRIS ISLES
Master Stylesheet
========================================================= */


/* =========================================================
01. VARIABLES
========================================================= */

:root {

/* Core Verdigris Isles Palette */

--lagoon: #31c3c0;
--deep: #086c78;
--navy: #124a55;
--pale: #BEEEE7;

--foam: #f7fff5;
--sand: #f4dfb3;
--sand2: #fff4d7;

--leaf: #5e9b45;
--leaf2: #2f713f;
--leaf3: #c0d3c2;

--coral: #e98568;

--stone: #5b625d;
--ink: #20464d;
--muted: #637b7c;
--white: #fffdf8;

/* Shared Effects */

--line: rgba(32, 70, 77, 0.13);

--shadow:
0 20px 50px rgba(16, 75, 82, 0.16);

--shadow-small:
0 8px 25px rgba(16, 75, 82, 0.06);

--radius: 30px;
}


/* =========================================================
02. RESET & BASE
========================================================= */

* {
box-sizing: border-box;
margin: 0;
padding: 0;
}

html {
scroll-behavior: smooth;
}

body {
min-height: 100vh;

font-family:
Georgia,
"Times New Roman",
serif;

color: var(--ink);
background: var(--sand2);

line-height: 1.7;
}

img {
max-width: 100%;
}

a {
color: inherit;
text-decoration: none;
}

button,
input,
textarea,
select {
font: inherit;
}


/* =========================================================
03. GLOBAL LAYOUT
========================================================= */

.container {
width: min(92%, 1180px);
margin-inline: auto;
}

section {
padding: 95px 0;
}


/* =========================================================
04. TYPOGRAPHY
========================================================= */

h1,
h2,
h3,
h4 {
font-weight: 700;
}

h1 {
font-size: clamp(3.5rem, 8vw, 7rem);
line-height: 0.87;
letter-spacing: -0.04em;

color: var(--deep);

margin-bottom: 24px;
}

h2 {
font-size: clamp(2.1rem, 5vw, 3.4rem);
line-height: 1.05;

color: var(--deep);

margin-bottom: 14px;
}

h3 {
color: var(--deep);
}

p {
margin-bottom: 1rem;
}

p:last-child {
margin-bottom: 0;
}


/* =========================================================
05. SITE NAVIGATION
========================================================= */

.site-header {
width: 100%;

position: sticky;
top: 0;
z-index: 100;

background: rgba(255, 253, 248, 0.94);

backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);

border-bottom: 1px solid var(--line);
}

.site-nav {
min-height: 76px;

display: flex;
align-items: center;
justify-content: space-between;

gap: 2rem;
}


/* -------------------------
Brand
------------------------- */

.site-nav .brand,
footer .brand {
display: inline-flex;
align-items: center;

gap: 10px;

color: var(--deep);
font-family: Arial, sans-serif;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
white-space: nowrap;
}

.brand-mark {
width: 42px;
height: 42px;

display: grid;
place-items: center;

border-radius: 50%;

background: var(--pale);
color: white;

font-size: 1.2rem;
}


/* -------------------------
Navigation Links
------------------------- */

.nav-links {
display: flex;
align-items: center;
justify-content: flex-end;

gap: 0.35rem;

margin: 0;
padding: 0;

list-style: none;

font-family: Arial, sans-serif;

font-size: 0.75rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;
}

.nav-links a {
display: block;

padding: 0.65rem 0.85rem;

color: var(--deep);

border-radius: 999px;

transition:
background 0.2s ease,
color 0.2s ease,
transform 0.2s ease;
}

.nav-links a:hover {
background: #d9f1e7;
color: var(--deep);
}

.nav-links a.active {
background: var(--lagoon);
color: white;
}


/* =========================================================
06. GLOBAL HERO
========================================================= */

.hero {
position: relative;
overflow: hidden;

padding: 55px 0 90px;

background:
linear-gradient(
180deg,
#bdeee8 0%,
#d9f0d5 58%,
#f4dfb3 100%
);
}

.hero::after {
content: "";

position: absolute;

left: -5%;
right: -5%;
bottom: -55px;

height: 120px;

background: var(--sand2);

border-radius:
50% 50% 0 0 /
80% 80% 0 0;
}

.hero-inner {
position: relative;
z-index: 2;

display: grid;

grid-template-columns:
minmax(0, 1.1fr)
minmax(300px, 0.9fr);

align-items: center;

gap: 3rem;

min-height: 560px;
}

.hero-content {
min-width: 0;
}

.hero-description {
max-width: 640px;

font-size: 1.15rem;

color: #28585d;

margin-bottom: 30px;
}


/* -------------------------
Eyebrow
------------------------- */

.eyebrow {
display: inline-block;

padding: 8px 15px;
margin-bottom: 20px;

border-radius: 999px;

background: rgba(255, 255, 255, 0.76);

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.7rem;
font-weight: 700;

letter-spacing: 0.16em;
text-transform: uppercase;
}


/* -------------------------
Hero Image
------------------------- */

.hero-art {
width: 100%;
min-width: 0;

position: relative;
overflow: hidden;

height: 420px;

border: 7px solid rgba(255, 255, 255, 0.82);

border-radius:
46% 46% 34px 34px /
24% 24% 34px 34px;

background: var(--lagoon);

box-shadow: var(--shadow);

cursor: zoom-in;
}

.hero-art img {
display: block;

width: 100%;
height: 100%;

object-fit: cover;
object-position: center;
}

.hero-art::after {
content: "";

position: absolute;
inset: 0;

background:
linear-gradient(
180deg,
rgba(255, 255, 255, 0.03),
rgba(5, 70, 75, 0.1)
);

pointer-events: none;
}


/* -------------------------
Optional Image Caption
------------------------- */

.art-caption {
position: absolute;
z-index: 2;

left: 20px;
bottom: 20px;

padding: 13px 16px;

border-radius: 20px;

background: rgba(255, 253, 248, 0.88);

color: var(--deep);

box-shadow:
0 8px 22px rgba(0, 0, 0, 0.12);

font-size: 0.86rem;
}

.art-caption strong {
display: block;
}


/* =========================================================
07. HERO CLOSING
========================================================= */

.hero-closing {
padding: 75px 0;
}

.heading-centered {
margin-inline: auto;
text-align: center;
}


/* =========================================================
08. SECTION HEADINGS
========================================================= */

.heading {
max-width: 760px;

margin-bottom: 42px;
}

.heading p {
color: var(--muted);
}

.kicker {
display: inline-block;

color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;
font-weight: 700;

letter-spacing: 0.16em;
text-transform: uppercase;

margin-bottom: 8px;
}


/* =========================================================
09. SECTION VARIANTS
========================================================= */

.section-green {
background: #edf5e8;
}

.section-mint {
background: #e5f4ed;
}


/* =========================================================
10. PROSE
========================================================= */

.prose {
max-width: 850px;
}

.prose p {
color: var(--ink);
}

.prose p + p {
margin-top: 17px;
}


/* =========================================================
11. GRIDS
========================================================= */

.grid {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 20px;
}


/* =========================================================
12. CARDS
========================================================= */

.card {
min-width: 0;
min-height: 210px;

padding: 28px;

background: var(--white);

border: 1px solid var(--line);
border-radius: var(--radius);

box-shadow: var(--shadow-small);

transition:
transform 0.22s ease,
box-shadow 0.22s ease;
}

.card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}

.card h3 {
margin-bottom: 7px;

font-size: 1.28rem;
}

.card p {
color: var(--muted);

font-size: 0.94rem;
}


/* =========================================================
13. CARD ICONS
========================================================= */

.icon {
width: 49px;
height: 49px;

display: grid;
place-items: center;

margin-bottom: 17px;

border-radius: 17px;

background: #d8f0e6;

font-size: 1.25rem;
}


/* =========================================================
14. HOMELAND / BRANCH / RACE LABELS
========================================================= */

.homeland-name,
.branch-name,
.race-name {
display: flex;
align-items: center;

gap: 10px;

margin-bottom: 10px;
}

.homeland-name span,
.branch-name span,
.race-name span {
flex-shrink: 0;

padding: 5px 9px;

border-radius: 999px;

background: #e4f3ed;

color: var(--leaf2);

font-family: Arial, sans-serif;

font-size: 0.68rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;
}


/* =========================================================
15. FEATURE STRIPS
========================================================= */

.feature-strip {
background:
linear-gradient(
135deg,
#dff3e9,
#eaf5df
);
}

.feature-grid {
display: grid;

grid-template-columns:
repeat(4, minmax(0, 1fr));

gap: 16px;
}

.feature {
padding: 22px;

border: 1px solid var(--line);
border-radius: 22px;

background: rgba(255, 253, 248, 0.75);
}

.feature strong {
display: block;

margin-bottom: 6px;

color: var(--deep);

font-size: 1rem;
}

.feature span {
display: block;

color: var(--muted);

font-size: 0.88rem;
}


/* =========================================================
16. OCCUPATIONS
========================================================= */

.occupation-list {
display: flex;
flex-wrap: wrap;

gap: 12px;
}

.occupation {
display: inline-flex;
align-items: center;

padding: 10px 16px;

border-radius: 999px;

background: var(--white);

border: 1px solid var(--line);

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.78rem;
font-weight: 700;

box-shadow: var(--shadow-small);
}


/* =========================================================
17. CHARACTER CREATION
========================================================= */

.creation-box {
max-width: 900px;

margin-inline: auto;

padding: 45px;

background: var(--white);

border: 1px solid var(--line);
border-radius: var(--radius);

box-shadow: var(--shadow);
}

.creation-box h2 {
margin-bottom: 14px;
}

.creation-box > p {
max-width: 720px;

color: var(--muted);

margin-bottom: 30px;
}

.creation-list {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 14px;
}

.creation-item {
padding: 18px;

border-radius: 18px;

background: #edf5e8;

color: var(--muted);

font-size: 0.92rem;
}

.creation-item strong {
display: block;

margin-bottom: 4px;

color: var(--deep);

font-size: 0.82rem;

font-family: Arial, sans-serif;

text-transform: uppercase;

letter-spacing: 0.05em;
}


/* =========================================================
18. STORY / TWO-COLUMN CONTENT
========================================================= */

.story {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 48px;

align-items: center;
}

.story p + p {
margin-top: 17px;
}


/* =========================================================
19. POSTCARD / DECORATIVE PANEL
========================================================= */

.postcard {
position: relative;
overflow: hidden;

min-height: 360px;

padding: 34px;

border-radius: var(--radius);

background:
linear-gradient(
135deg,
#42c7c1 0 43%,
#d7efcc 43% 67%,
#f1d9a8 67%
);

box-shadow: var(--shadow);
}

.postcard::before,
.postcard::after {
content: "";

position: absolute;

border: 2px dashed rgba(255, 255, 255, 0.65);

border-radius: 50%;
}

.postcard::before {
width: 300px;
height: 150px;

left: -90px;
bottom: 35px;

transform: rotate(-18deg);
}

.postcard::after {
width: 260px;
height: 130px;

right: -75px;
top: 30px;

transform: rotate(20deg);
}

.note {
position: relative;
z-index: 2;

max-width: 350px;

padding: 23px;

border-radius: 23px;

background: rgba(255, 253, 248, 0.88);
}

.note h3 {
margin-bottom: 7px;
}


/* =========================================================
20. BUTTONS
========================================================= */

.buttons {
display: flex;
flex-wrap: wrap;

gap: 12px;
}

.button {
display: inline-flex;
align-items: center;
justify-content: center;

padding: 13px 23px;

border: 2px solid var(--deep);
border-radius: 999px;

font-family: Arial, sans-serif;

font-size: 0.75rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;

transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}

.button.primary {
background: var(--lagoon);

border-color: var(--lagoon);

color: white;

box-shadow:
0 9px 22px rgba(49, 195, 192, 0.25);
}

.button:hover {
transform: translateY(-3px);
box-shadow: var(--shadow);
}


/* =========================================================
21. BANNER
========================================================= */

.banner {
padding: 110px 20px;

text-align: center;

color: white;

background:
linear-gradient(
rgba(5, 91, 105, 0.55),
rgba(5, 91, 105, 0.55)
),
url("../assets/island-reference.jpg")
center 48% / cover;
}

.banner h2 {
color: white;
}

.banner p {
max-width: 700px;

margin-inline: auto;

color: #f2fffc;
}


/* =========================================================
22. TIMELINE
========================================================= */

.timeline {
max-width: 820px;

margin-inline: auto;
}

.item {
position: relative;

margin-left: 15px;

padding:
0 0 35px 36px;

border-left: 2px solid #b8ddd2;
}

.item:last-child {
border-left-color: transparent;
}

.item::before {
content: "";

position: absolute;

left: -9px;
top: 2px;

width: 13px;
height: 13px;

border-radius: 50%;

background: var(--coral);

border: 3px solid var(--sand2);

box-shadow:
0 0 0 2px var(--coral);
}

.item strong {
display: block;

color: var(--coral);

margin-bottom: 4px;
}

.item p {
color: var(--muted);
}


/* =========================================================
23. FOOTER
========================================================= */

footer {
padding: 45px 0;

text-align: center;

background: var(--navy);

color: #d9eeea;
}

footer .brand {
justify-content: center;

color: white;

margin-bottom: 8px;
}

footer p {
font-family: Arial, sans-serif;

font-size: 0.8rem;

opacity: 0.85;
}

.footer-copy {
margin-top: 10px;
}


/* =========================================================
24. AELORI — AQUATIC PEOPLE
========================================================= */


/* -------------------------
Aelori Hero
------------------------- */

.aelori-hero {
background:
linear-gradient(
180deg,
#c6f0e9 0%,
#d9f0d5 58%,
#f4dfb3 100%
);
}

.aelori-hero .hero-description {
color: #28575d;
}


/* -------------------------
Aelori Branch Section
------------------------- */

.aelori-branches {
background: #edf5e8;
}


/* -------------------------
Aelori Branch Cards
------------------------- */

.branch-card {
position: relative;
overflow: hidden;
}

.branch-card::after {
content: "";

position: absolute;

width: 110px;
height: 110px;

right: -35px;
top: -35px;

border-radius: 50%;

background: rgba(49, 195, 192, 0.08);

pointer-events: none;
}

.branch-card .branch-name {
position: relative;
z-index: 2;
}

.branch-card .branch-name h3 {
margin-bottom: 0;
}

.branch-card strong {
color: var(--deep);
}


/* -------------------------
Aelori Variants
------------------------- */

.variant-grid {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 20px;
}

.variant {
min-width: 0;

padding: 25px;

background: #f4e4c3;

border: 1px solid rgba(32, 70, 77, 0.08);

border-radius: var(--radius);

box-shadow: var(--shadow-small);

transition:
transform 0.22s ease,
box-shadow 0.22s ease;
}

.variant:hover {
transform: translateY(-5px);

box-shadow: var(--shadow);
}

.variant h3 {
margin-bottom: 7px;

color: var(--deep);
}

.variant p {
color: var(--muted);

font-size: 0.92rem;
}

.variant p + p {
margin-top: 14px;
}

.variant strong {
color: var(--deep);
}


/* -------------------------
Aelori Mint Section
------------------------- */

.aelori-mint {
background: #e5f4ed;
}


/* -------------------------
Aelori Feature Strip
------------------------- */

.aelori-feature-strip {
background:
linear-gradient(
135deg,
#075c6c,
#086c78
);

color: white;
}

.aelori-feature-strip h2 {
color: white;
}

.aelori-feature-strip .kicker {
color: #f0a080;
}

.aelori-feature-strip .heading p {
color: #d8efea;
}

.aelori-feature-strip .feature-grid {
margin-top: 35px;
}

.aelori-feature-strip .feature {
background: rgba(255, 255, 255, 0.08);

border-color: rgba(255, 255, 255, 0.1);
}

.aelori-feature-strip .feature strong {
color: white;
}

.aelori-feature-strip .feature span {
color: #c9e5df;
}


/* -------------------------
Aelori Occupations
------------------------- */

.aelori-occupations {
background: #edf5e8;
}

.aelori-occupations .occupation {
background: #d9f2ec;

border-color: transparent;
}


/* -------------------------
Aelori Character Creation
------------------------- */

.aelori-creation {
background:
linear-gradient(
135deg,
#e3f4eb,
#f4e1b9
);
}

.aelori-creation .creation-box {
background: rgba(255, 253, 248, 0.82);
}


/* -------------------------
Aelori Closing
------------------------- */

.aelori-closing {
padding: 75px 0;
}

.aelori-closing .heading {
max-width: 850px;

margin-inline: auto;

text-align: center;
}

.aelori-closing .heading p {
max-width: 700px;

margin-inline: auto;
}


/* -------------------------
Aelori Accents
------------------------- */

.aelori-water-text {
color: var(--deep);
}

.aelori-water-accent {
color: var(--lagoon);
}

.aelori-coral-accent {
color: var(--coral);
}


/* =========================================================
25. ELYRI — ELEMENTAL PEOPLE
========================================================= */

/*
Elyri-specific desktop styles can be added here.

The responsive hooks below are intentionally preserved
so Elyri pages continue using their existing components:
.elyri-hero-art
.elyri-breath-box
.elyri-creation-box
*/


/* =========================================================
26. HISTORY — HISTORICAL ARCHIVE
========================================================= */


/* -------------------------
History Hero
------------------------- */

.page-history .history-hero {
min-height: 610px;

display: grid;
place-items: center;

text-align: center;

padding: 110px 0 130px;

background:
linear-gradient(
180deg,
rgba(255, 253, 248, 0.12),
rgba(223, 243, 242, 0.82)
),
linear-gradient(
135deg,
#bce6e4,
#f8e6c4
);
}

.history-hero {
position: relative;
overflow: hidden;
}

.history-hero::before,
.history-hero::after {
content: "";

position: absolute;

border-radius: 50%;

pointer-events: none;
}

.history-hero::before {
width: 500px;
height: 500px;

right: -180px;
top: -190px;

background: rgba(233, 184, 92, 0.22);
}

.history-hero::after {
width: 430px;
height: 430px;

left: -190px;
bottom: -220px;

background: rgba(40, 127, 139, 0.14);
}

.history-hero .hero-content {
position: relative;
z-index: 2;

max-width: 850px;

margin-inline: auto;
}

.history-hero .hero-description {
max-width: 760px;

margin-inline: auto;

color: var(--ink);

font-size: clamp(1rem, 2vw, 1.2rem);
}

.history-hero .hero-quote {
max-width: 760px;

margin: 28px auto 0;

color: var(--deep);

font-size: 1.08rem;

font-style: italic;
}


/* -------------------------
History Sun
------------------------- */

.history-sun {
position: absolute;
z-index: 1;

width: 105px;
height: 105px;

top: 78px;
right: 14%;

border-radius: 50%;

background: #e9b85c;

box-shadow:
0 0 55px rgba(233, 184, 92, 0.4);
}


/* -------------------------
History Wave
------------------------- */

.history-wave {
position: absolute;

z-index: 3;

left: 0;
bottom: -1px;

width: 100%;
height: 85px;

background: var(--white);

clip-path:
ellipse(75% 65% at 50% 100%);
}


/* -------------------------
History Intro
------------------------- */

.history-intro {
display: grid;

grid-template-columns:
minmax(0, 1.15fr)
minmax(0, 0.85fr);

gap: 45px;

align-items: stretch;
}

.history-intro-copy p + p {
margin-top: 18px;
}


/* -------------------------
History Note
------------------------- */

.history-note {
padding: 35px;

display: flex;
flex-direction: column;
justify-content: center;

background: var(--white);

border: 1px solid var(--line);

border-radius: var(--radius);

box-shadow: var(--shadow);
}

.history-symbol {
width: 55px;
height: 55px;

display: grid;
place-items: center;

margin-bottom: 18px;

border-radius: 50%;

background: var(--pale);

font-size: 1.4rem;
}

.history-note blockquote {
margin-bottom: 15px;

color: var(--deep);

font-size: 1.2rem;

font-style: italic;
}

.history-note small {
color: var(--muted);

font-family: Arial, sans-serif;

font-size: 0.75rem;

letter-spacing: 0.08em;

text-transform: uppercase;
}


/* -------------------------
Historical Era Strip
------------------------- */

.history-era-strip {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 18px;

margin-top: 35px;
}

.history-era {
padding: 25px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 20px;

text-align: center;
}

.history-era strong {
display: block;

margin-bottom: 5px;

color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;

letter-spacing: 0.13em;

text-transform: uppercase;
}

.history-era h3 {
color: var(--deep);

font-size: 1.25rem;
}

.history-era p {
margin-top: 5px;

color: var(--muted);

font-size: 0.9rem;
}


/* -------------------------
History Section Variants
------------------------- */

.history-cream {
background: #f9f0dd;
}

.history-ascension {
background:
linear-gradient(
135deg,
rgba(223, 243, 242, 0.88),
rgba(245, 230, 200, 0.9)
);
}

.history-present {
background:
linear-gradient(
135deg,
#f9f0dd,
#dff3f2
);
}


/* -------------------------
Ascension Introduction
------------------------- */

.history-ascension-intro {
max-width: 820px;

margin: 0 auto 50px;

text-align: center;
}

.history-ascension-intro .heading {
margin-inline: auto;
}

.history-ascension-quote {
margin-bottom: 18px;

color: var(--deep);

font-size: 1.35rem;

font-style: italic;
}


/* -------------------------
History Cards
------------------------- */

.history-card {
min-width: 0;

padding: 30px;

background: var(--white);

border: 1px solid var(--line);

border-radius: var(--radius);

box-shadow: var(--shadow-small);

transition:
transform 0.22s ease,
box-shadow 0.22s ease;
}

.history-card:hover {
transform: translateY(-5px);

box-shadow: var(--shadow);
}

.history-card-icon {
width: 48px;
height: 48px;

display: grid;
place-items: center;

margin-bottom: 16px;

border-radius: 15px;

background: #d8f0e6;

font-size: 1.25rem;
}

.history-card h3 {
margin-bottom: 9px;

color: var(--deep);

font-size: 1.35rem;
}

.history-card p {
color: var(--muted);

font-size: 0.94rem;
}


/* -------------------------
Citadel Feature
------------------------- */

.history-citadel {
padding: 50px;

background:
linear-gradient(
135deg,
rgba(20, 86, 101, 0.96),
rgba(40, 127, 139, 0.92)
);

color: white;

border-radius: var(--radius);

box-shadow: var(--shadow);
}

.history-citadel .kicker {
color: #e9b85c;
}

.history-citadel h2 {
color: white;
}

.history-citadel p {
color: #e1f2f0;
}

.history-citadel-facts {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 15px;

margin-top: 30px;
}

.history-citadel-fact {
padding: 20px;

background: rgba(255, 255, 255, 0.1);

border: 1px solid rgba(255, 255, 255, 0.15);

border-radius: 18px;
}

.history-citadel-fact strong {
display: block;

margin-bottom: 5px;

color: #e9b85c;
}

.history-citadel-fact span {
color: #d8eeec;

font-size: 0.9rem;
}


/* -------------------------
History Timeline
------------------------- */

.history-timeline {
max-width: 850px;

margin-inline: auto;
}

.history-timeline .item {
padding-bottom: 45px;

border-left-color: #a9d9cf;
}

.history-timeline .item:last-child {
padding-bottom: 0;

border-left-color: transparent;
}

.history-timeline .item::before {
background: var(--coral);

border-color: var(--white);

box-shadow:
0 0 0 2px var(--coral);
}

.timeline-date {
display: inline-block;

margin-bottom: 7px;

padding: 5px 12px;

border-radius: 999px;

background: #d8f0e6;

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.7rem;

font-weight: 700;

letter-spacing: 0.08em;

text-transform: uppercase;
}

.history-timeline .item h3 {
color: var(--deep);

font-size: 1.55rem;

margin-bottom: 8px;
}

.history-timeline .item ul {
margin-top: 12px;
padding-left: 20px;

color: var(--muted);
}


/* -------------------------
Present Day
------------------------- */

.history-present-intro {
max-width: 780px;

margin-bottom: 40px;
}

.history-present-quote {
margin-bottom: 15px;

color: var(--deep);

font-size: 1.35rem;

font-style: italic;
}

.history-present-card {
padding: 28px;

background: rgba(255, 253, 248, 0.86);

border: 1px solid var(--line);

border-radius: var(--radius);
}

.history-present-card h3 {
margin-bottom: 10px;

color: var(--deep);
}

.history-present-card ul {
padding-left: 20px;

color: var(--muted);
}


/* -------------------------
Cultural Memory
------------------------- */

.history-memory-grid {
display: grid;

grid-template-columns:
repeat(4, minmax(0, 1fr));

gap: 18px;
}

.history-memory-card {
padding: 25px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 20px;

text-align: center;
}

.history-memory-card .icon {
margin-inline: auto;
margin-bottom: 10px;

background: transparent;

font-size: 1.5rem;
}

.history-memory-card h3 {
margin-bottom: 7px;

color: var(--deep);

font-size: 1.05rem;
}

.history-memory-card p {
color: var(--muted);

font-size: 0.85rem;
}


/* -------------------------
Lost Sky Cities
------------------------- */

.history-city-grid {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 18px;
}

.history-city-card {
position: relative;
overflow: hidden;

padding: 28px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 22px;

box-shadow: var(--shadow-small);
}

.history-city-card::after {
content: "LOST";

position: absolute;

top: 18px;
right: 18px;

color: rgba(40, 127, 139, 0.12);

font-family: Arial, sans-serif;

font-size: 1.8rem;

font-weight: 700;

letter-spacing: 0.1em;
}

.history-city-card h3 {
margin-bottom: 3px;

color: var(--deep);

font-size: 1.35rem;
}

.history-city-nation {
color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;

font-weight: 700;

letter-spacing: 0.08em;

text-transform: uppercase;
}

.history-city-card p {
margin-top: 12px;

color: var(--muted);

font-size: 0.9rem;
}

.history-city-status {
display: inline-block;

margin-top: 15px;

padding: 5px 10px;

border-radius: 999px;

background: #d8f0e6;

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.68rem;

font-weight: 700;

letter-spacing: 0.07em;

text-transform: uppercase;
}


/* -------------------------
History Closing
------------------------- */

.history-closing {
padding: 105px 0;

text-align: center;

background:
linear-gradient(
rgba(20, 86, 101, 0.86),
rgba(20, 86, 101, 0.86)
),
linear-gradient(
135deg,
#68b7ba,
#efd39e
);

color: white;
}

.history-closing h2 {
color: white;
}

.history-closing p {
max-width: 720px;

margin-inline: auto;

color: #e7f4f2;

font-size: 1.05rem;
}

.history-closing .closing-quote {
margin-top: 25px;

font-size: 1.25rem;

font-style: italic;

color: white;
}



/* =========================================================
27. MAP IMAGE VIEWER
========================================================= */

.map-viewer {
position: fixed;
inset: 0;

z-index: 99999;

display: flex;
align-items: center;
justify-content: center;

width: 100vw;
height: 100vh;

padding: 30px;

background: rgba(8, 42, 47, 0.94);

backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);

opacity: 0;
visibility: hidden;
pointer-events: none;

transition:
opacity 0.25s ease,
visibility 0.25s ease;
}


/* -------------------------
Open State
------------------------- */

.map-viewer.active {
opacity: 1;

visibility: visible;

pointer-events: auto;
}


/* -------------------------
Map Image
------------------------- */

.map-viewer img {
display: block;

width: auto;
height: auto;

max-width: 95vw;
max-height: 90vh;

object-fit: contain;

border-radius: 18px;

background: var(--white);

box-shadow:
0 25px 80px rgba(0, 0, 0, 0.55);

cursor: zoom-out;

user-select: none;
-webkit-user-drag: none;

animation: mapViewerIn 0.25s ease;
}


/* -------------------------
Map Open Animation
------------------------- */

@keyframes mapViewerIn {

from {
opacity: 0;
transform: scale(0.96);
}

to {
opacity: 1;
transform: scale(1);
}

}


/* -------------------------
Close Button
------------------------- */

.map-close {
position: absolute;

top: 22px;
right: 25px;

z-index: 100000;

width: 50px;
height: 50px;

display: flex;
align-items: center;
justify-content: center;

padding: 0;

border: 1px solid rgba(255, 255, 255, 0.25);

border-radius: 50%;

background: rgba(255, 253, 248, 0.14);

color: white;

font-family: Arial, sans-serif;

font-size: 32px;
font-weight: 300;

line-height: 1;

cursor: pointer;

backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);

transition:
background 0.2s ease,
transform 0.2s ease,
border-color 0.2s ease;
}

.map-close:hover {
background: rgba(255, 253, 248, 0.25);

border-color:
rgba(255, 255, 255, 0.45);

transform: scale(1.06);
}

.map-close:active {
transform: scale(0.95);
}


/* -------------------------
Keyboard Accessibility
------------------------- */

.hero-art:focus-visible {
outline: 4px solid var(--lagoon);

outline-offset: 5px;
}

.map-close:focus-visible {
outline: 3px solid var(--lagoon);

outline-offset: 3px;
}


/* =========================================================
LORE ENTRIES
========================================================= */

.lore-entry {
    max-width: 1000px;
    margin: 0 auto;
}

.lore-intro {
    font-size: 1.1rem;
    line-height: 1.8;
    margin-bottom: 2rem;
}

.lore-section {
    margin-top: 3rem;
}

.lore-section h2 {
    margin-bottom: 1rem;
}

.lore-note {
    margin-top: 3rem;
    padding: 1.5rem;
    border-radius: 18px;
}

.lore-note h3 {
    margin-top: 0;
}


/* =========================================================
28. RESPONSIVE — TABLET
========================================================= */

@media (max-width: 900px) {

/* -------------------------
Navigation
------------------------- */

.site-nav {
flex-direction: column;

align-items: stretch;

padding: 1rem 0;
}

.site-nav .brand {
justify-content: center;
}

.nav-links {
justify-content: center;

flex-wrap: wrap;
}


/* -------------------------
Global Hero
------------------------- */

.hero-inner {
grid-template-columns: 1fr;

min-height: auto;

padding-top: 20px;
}

.hero-art {
height: 360px;

border-radius: 38px;
}


/* -------------------------
Global Grids
------------------------- */

.grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}

.feature-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}


/* -------------------------
Story
------------------------- */

.story {
grid-template-columns: 1fr;
}


/* -------------------------
Character Creation
------------------------- */

.creation-list {
grid-template-columns: 1fr;
}


/* -------------------------
Aelori
------------------------- */

.variant-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}


/* -------------------------
Elyri
------------------------- */

.page-elyri .elyri-hero-art,
.page-elyri .elyri-hero-art img {
height: 430px;

min-height: 430px;
}

.page-elyri .elyri-breath-box,
.page-elyri .elyri-creation-box {
padding: 32px;
}


/* -------------------------
History
------------------------- */

.history-intro {
grid-template-columns: 1fr;
}

.history-era-strip {
grid-template-columns: 1fr;
}

.history-memory-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}

.history-city-grid {
grid-template-columns: 1fr;
}

.history-citadel-facts {
grid-template-columns: 1fr;
}

.history-citadel {
padding: 35px;
}

}


/* =========================================================
29. RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 600px) {

section {
padding: 70px 0;
}


/* -------------------------
Navigation
------------------------- */

.site-nav {
gap: 1rem;
}

.nav-links {
gap: 0.15rem;
}

.nav-links a {
padding: 0.5rem 0.6rem;

font-size: 0.7rem;
}


/* -------------------------
Typography
------------------------- */

h1 {
font-size: 3.2rem;
}


/* -------------------------
Global Hero
------------------------- */

.hero {
padding-top: 35px;
}

.hero-art {
height: 280px;

border-width: 5px;

border-radius: 30px;
}

.hero-description {
font-size: 1rem;
}


/* -------------------------
Grids
------------------------- */

.grid {
grid-template-columns: 1fr;
}

.feature-grid {
grid-template-columns: 1fr;
}


/* -------------------------
Cards
------------------------- */

.card {
padding: 24px;
}


/* -------------------------
Character Creation
------------------------- */

.creation-box {
padding: 30px 22px;
}


/* -------------------------
Buttons
------------------------- */

.buttons {
flex-direction: column;
}

.button {
width: 100%;

text-align: center;
}


/* -------------------------
Occupations
------------------------- */

.occupation-list {
gap: 8px;
}

.occupation {
padding: 9px 13px;
}


/* -------------------------
Aelori
------------------------- */

.variant-grid {
grid-template-columns: 1fr;
}

.aelori-closing {
padding: 65px 0;
}


/* -------------------------
Elyri
------------------------- */

.page-elyri .elyri-hero {
padding: 65px 0 75px;
}

.page-elyri .elyri-hero-art,
.page-elyri .elyri-hero-art img {
height: 380px;

min-height: 380px;
}

.page-elyri .elyri-breath-box,
.page-elyri .elyri-creation-box {
padding: 28px;
}


/* -------------------------
History
------------------------- */

.page-history .history-hero {
min-height: 560px;

padding: 80px 0 110px;
}

.history-sun {
width: 75px;
height: 75px;

top: 55px;
right: 7%;
}

.history-memory-grid {
grid-template-columns: 1fr;
}

.history-timeline .item {
padding-left: 30px;
}

.history-card,
.history-present-card {
padding: 23px;
}

.history-citadel {
padding: 28px;
}

.history-closing {
padding: 80px 0;
}


/* -------------------------
Map Viewer
------------------------- */

.map-viewer {
padding: 18px;
}

.map-viewer img {
max-width: 96vw;
max-height: 86vh;

border-radius: 12px;
}

.map-close {
top: 14px;
right: 14px;

width: 44px;
height: 44px;

font-size: 28px;
}

}


/* =========================================================
30. RESPONSIVE — SMALL PHONES
========================================================= */

@media (max-width: 400px) {

.container {
width: min(94%, 1180px);
}


/* -------------------------
Navigation
------------------------- */

.nav-links a {
padding: 0.45rem 0.5rem;

font-size: 0.65rem;
}


/* -------------------------
Typography
------------------------- */

h1 {
font-size: 2.8rem;
}

h2 {
font-size: 2rem;
}


/* -------------------------
Hero
------------------------- */

.hero-art {
height: 240px;
}


/* -------------------------
Map Viewer
------------------------- */

.map-viewer {
padding: 12px;
}

.map-viewer img {
max-width: 97vw;
max-height: 84vh;

border-radius: 10px;
}

.map-close {
top: 10px;
right: 10px;

width: 42px;
height: 42px;

font-size: 26px;
}

} /* =========================================================
VERDIGRIS ISLES
Master Stylesheet
========================================================= */


/* =========================================================
01. VARIABLES
========================================================= */

:root {

/* Core Verdigris Isles Palette */

--lagoon: #31c3c0;
--deep: #086c78;
--navy: #124a55;
--pale: #BEEEE7;

--foam: #f7fff5;
--sand: #f4dfb3;
--sand2: #fff4d7;

--leaf: #5e9b45;
--leaf2: #2f713f;
--leaf3: #c0d3c2;

--coral: #e98568;

--stone: #5b625d;
--ink: #20464d;
--muted: #637b7c;
--white: #fffdf8;

/* Shared Effects */

--line: rgba(32, 70, 77, 0.13);

--shadow:
0 20px 50px rgba(16, 75, 82, 0.16);

--shadow-small:
0 8px 25px rgba(16, 75, 82, 0.06);

--radius: 30px;
}


/* =========================================================
02. RESET & BASE
========================================================= */

* {
box-sizing: border-box;
margin: 0;
padding: 0;
}

html {
scroll-behavior: smooth;
}

body {
min-height: 100vh;

font-family:
Georgia,
"Times New Roman",
serif;

color: var(--ink);
background: var(--sand2);

line-height: 1.7;
}

img {
max-width: 100%;
}

a {
color: inherit;
text-decoration: none;
}

button,
input,
textarea,
select {
font: inherit;
}


/* =========================================================
03. GLOBAL LAYOUT
========================================================= */

.container {
width: min(92%, 1180px);
margin-inline: auto;
}

section {
padding: 95px 0;
}


/* =========================================================
04. TYPOGRAPHY
========================================================= */

h1,
h2,
h3,
h4 {
font-weight: 700;
}

h1 {
font-size: clamp(3.5rem, 8vw, 7rem);
line-height: 0.87;
letter-spacing: -0.04em;

color: var(--deep);

margin-bottom: 24px;
}

h2 {
font-size: clamp(2.1rem, 5vw, 3.4rem);
line-height: 1.05;

color: var(--deep);

margin-bottom: 14px;
}

h3 {
color: var(--deep);
}

p {
margin-bottom: 1rem;
}

p:last-child {
margin-bottom: 0;
}


/* =========================================================
05. SITE NAVIGATION
========================================================= */

.site-header {
width: 100%;

position: sticky;
top: 0;
z-index: 100;

background: rgba(255, 253, 248, 0.94);

backdrop-filter: blur(14px);
-webkit-backdrop-filter: blur(14px);

border-bottom: 1px solid var(--line);
}

.site-nav {
min-height: 76px;

display: flex;
align-items: center;
justify-content: space-between;

gap: 2rem;
}


/* -------------------------
Brand
------------------------- */

.site-nav .brand,
footer .brand {
display: inline-flex;
align-items: center;

gap: 10px;

color: var(--deep);

font-weight: 700;
letter-spacing: 0.08em;

text-transform: uppercase;
white-space: nowrap;
}

.brand-mark {
width: 42px;
height: 42px;

display: grid;
place-items: center;

border-radius: 50%;

background: var(--pale);
color: white;

font-size: 1.2rem;
}


/* -------------------------
Navigation Links
------------------------- */

.nav-links {
display: flex;
align-items: center;
justify-content: flex-end;

gap: 0.35rem;

margin: 0;
padding: 0;

list-style: none;

font-family: Arial, sans-serif;

font-size: 0.75rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;
}

.nav-links a {
display: block;

padding: 0.65rem 0.85rem;

color: var(--deep);

border-radius: 999px;

transition:
background 0.2s ease,
color 0.2s ease,
transform 0.2s ease;
}

.nav-links a:hover {
background: #d9f1e7;
color: var(--deep);
}

.nav-links a.active {
background: var(--lagoon);
color: white;
}


/* =========================================================
06. GLOBAL HERO
========================================================= */

.hero {
position: relative;
overflow: hidden;

padding: 55px 0 90px;

background:
linear-gradient(
180deg,
#bdeee8 0%,
#d9f0d5 58%,
#f4dfb3 100%
);
}

.hero::after {
content: "";

position: absolute;

left: -5%;
right: -5%;
bottom: -55px;

height: 120px;

background: var(--sand2);

border-radius:
50% 50% 0 0 /
80% 80% 0 0;
}

.hero-inner {
position: relative;
z-index: 2;

display: grid;

grid-template-columns:
minmax(0, 1.1fr)
minmax(300px, 0.9fr);

align-items: center;

gap: 3rem;

min-height: 560px;
}

.hero-content {
min-width: 0;
}

.hero-description {
max-width: 640px;

font-size: 1.15rem;

color: #28585d;

margin-bottom: 30px;
}


/* -------------------------
Eyebrow
------------------------- */

.eyebrow {
display: inline-block;

padding: 8px 15px;
margin-bottom: 20px;

border-radius: 999px;

background: rgba(255, 255, 255, 0.76);

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.7rem;
font-weight: 700;

letter-spacing: 0.16em;
text-transform: uppercase;
}


/* -------------------------
Hero Image
------------------------- */

.hero-art {
width: 100%;
min-width: 0;

position: relative;
overflow: hidden;

height: 420px;

border: 7px solid rgba(255, 255, 255, 0.82);

border-radius:
46% 46% 34px 34px /
24% 24% 34px 34px;

background: var(--lagoon);

box-shadow: var(--shadow);

cursor: zoom-in;
}

.hero-art img {
display: block;

width: 100%;
height: 100%;

object-fit: cover;
object-position: center;
}

.hero-art::after {
content: "";

position: absolute;
inset: 0;

background:
linear-gradient(
180deg,
rgba(255, 255, 255, 0.03),
rgba(5, 70, 75, 0.1)
);

pointer-events: none;
}


/* -------------------------
Optional Image Caption
------------------------- */

.art-caption {
position: absolute;
z-index: 2;

left: 20px;
bottom: 20px;

padding: 13px 16px;

border-radius: 20px;

background: rgba(255, 253, 248, 0.88);

color: var(--deep);

box-shadow:
0 8px 22px rgba(0, 0, 0, 0.12);

font-size: 0.86rem;
}

.art-caption strong {
display: block;
}


/* =========================================================
07. HERO CLOSING
========================================================= */

.hero-closing {
padding: 75px 0;
}

.heading-centered {
margin-inline: auto;
text-align: center;
}


/* =========================================================
08. SECTION HEADINGS
========================================================= */

.heading {
max-width: 760px;

margin-bottom: 42px;
}

.heading p {
color: var(--muted);
}

.kicker {
display: inline-block;

color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;
font-weight: 700;

letter-spacing: 0.16em;
text-transform: uppercase;

margin-bottom: 8px;
}


/* =========================================================
09. SECTION VARIANTS
========================================================= */

.section-green {
background: #edf5e8;
}

.section-mint {
background: #e5f4ed;
}


/* =========================================================
10. PROSE
========================================================= */

.prose {
max-width: 850px;
}

.prose p {
color: var(--ink);
}

.prose p + p {
margin-top: 17px;
}


/* =========================================================
11. GRIDS
========================================================= */

.grid {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 20px;
}


/* =========================================================
12. CARDS
========================================================= */

.card {
min-width: 0;
min-height: 210px;

padding: 28px;

background: var(--white);

border: 1px solid var(--line);
border-radius: var(--radius);

box-shadow: var(--shadow-small);

transition:
transform 0.22s ease,
box-shadow 0.22s ease;
}

.card:hover {
transform: translateY(-5px);
box-shadow: var(--shadow);
}

.card h3 {
margin-bottom: 7px;

font-size: 1.28rem;
}

.card p {
color: var(--muted);

font-size: 0.94rem;
}


/* =========================================================
13. CARD ICONS
========================================================= */

.icon {
width: 49px;
height: 49px;

display: grid;
place-items: center;

margin-bottom: 17px;

border-radius: 17px;

background: #d8f0e6;

font-size: 1.25rem;
}


/* =========================================================
14. HOMELAND / BRANCH / RACE LABELS
========================================================= */

.homeland-name,
.branch-name,
.race-name {
display: flex;
align-items: center;

gap: 10px;

margin-bottom: 10px;
}

.homeland-name span,
.branch-name span,
.race-name span {
flex-shrink: 0;

padding: 5px 9px;

border-radius: 999px;

background: #e4f3ed;

color: var(--leaf2);

font-family: Arial, sans-serif;

font-size: 0.68rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;
}


/* =========================================================
15. FEATURE STRIPS
========================================================= */

.feature-strip {
background:
linear-gradient(
135deg,
#dff3e9,
#eaf5df
);
}

.feature-grid {
display: grid;

grid-template-columns:
repeat(4, minmax(0, 1fr));

gap: 16px;
}

.feature {
padding: 22px;

border: 1px solid var(--line);
border-radius: 22px;

background: rgba(255, 253, 248, 0.75);
}

.feature strong {
display: block;

margin-bottom: 6px;

color: var(--deep);

font-size: 1rem;
}

.feature span {
display: block;

color: var(--muted);

font-size: 0.88rem;
}


/* =========================================================
16. OCCUPATIONS
========================================================= */

.occupation-list {
display: flex;
flex-wrap: wrap;

gap: 12px;
}

.occupation {
display: inline-flex;
align-items: center;

padding: 10px 16px;

border-radius: 999px;

background: var(--white);

border: 1px solid var(--line);

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.78rem;
font-weight: 700;

box-shadow: var(--shadow-small);
}


/* =========================================================
17. CHARACTER CREATION
========================================================= */

.creation-box {
max-width: 900px;

margin-inline: auto;

padding: 45px;

background: var(--white);

border: 1px solid var(--line);
border-radius: var(--radius);

box-shadow: var(--shadow);
}

.creation-box h2 {
margin-bottom: 14px;
}

.creation-box > p {
max-width: 720px;

color: var(--muted);

margin-bottom: 30px;
}

.creation-list {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 14px;
}

.creation-item {
padding: 18px;

border-radius: 18px;

background: #edf5e8;

color: var(--muted);

font-size: 0.92rem;
}

.creation-item strong {
display: block;

margin-bottom: 4px;

color: var(--deep);

font-size: 0.82rem;

font-family: Arial, sans-serif;

text-transform: uppercase;

letter-spacing: 0.05em;
}


/* =========================================================
18. STORY / TWO-COLUMN CONTENT
========================================================= */

.story {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 48px;

align-items: center;
}

.story p + p {
margin-top: 17px;
}


/* =========================================================
19. POSTCARD / DECORATIVE PANEL
========================================================= */

.postcard {
position: relative;
overflow: hidden;

min-height: 360px;

padding: 34px;

border-radius: var(--radius);

background:
linear-gradient(
135deg,
#42c7c1 0 43%,
#d7efcc 43% 67%,
#f1d9a8 67%
);

box-shadow: var(--shadow);
}

.postcard::before,
.postcard::after {
content: "";

position: absolute;

border: 2px dashed rgba(255, 255, 255, 0.65);

border-radius: 50%;
}

.postcard::before {
width: 300px;
height: 150px;

left: -90px;
bottom: 35px;

transform: rotate(-18deg);
}

.postcard::after {
width: 260px;
height: 130px;

right: -75px;
top: 30px;

transform: rotate(20deg);
}

.note {
position: relative;
z-index: 2;

max-width: 350px;

padding: 23px;

border-radius: 23px;

background: rgba(255, 253, 248, 0.88);
}

.note h3 {
margin-bottom: 7px;
}


/* =========================================================
20. BUTTONS
========================================================= */

.buttons {
display: flex;
flex-wrap: wrap;

gap: 12px;
}

.button {
display: inline-flex;
align-items: center;
justify-content: center;

padding: 13px 23px;

border: 2px solid var(--deep);
border-radius: 999px;

font-family: Arial, sans-serif;

font-size: 0.75rem;
font-weight: 700;

letter-spacing: 0.07em;
text-transform: uppercase;

transition:
transform 0.2s ease,
box-shadow 0.2s ease,
background 0.2s ease;
}

.button.primary {
background: var(--lagoon);

border-color: var(--lagoon);

color: white;

box-shadow:
0 9px 22px rgba(49, 195, 192, 0.25);
}

.button:hover {
transform: translateY(-3px);
box-shadow: var(--shadow);
}


/* =========================================================
21. BANNER
========================================================= */

.banner {
padding: 110px 20px;

text-align: center;

color: white;

background:
linear-gradient(
rgba(5, 91, 105, 0.55),
rgba(5, 91, 105, 0.55)
),
url("../assets/island-reference.jpg")
center 48% / cover;
}

.banner h2 {
color: white;
}

.banner p {
max-width: 700px;

margin-inline: auto;

color: #f2fffc;
}


/* =========================================================
22. TIMELINE
========================================================= */

.timeline {
max-width: 820px;

margin-inline: auto;
}

.item {
position: relative;

margin-left: 15px;

padding:
0 0 35px 36px;

border-left: 2px solid #b8ddd2;
}

.item:last-child {
border-left-color: transparent;
}

.item::before {
content: "";

position: absolute;

left: -9px;
top: 2px;

width: 13px;
height: 13px;

border-radius: 50%;

background: var(--coral);

border: 3px solid var(--sand2);

box-shadow:
0 0 0 2px var(--coral);
}

.item strong {
display: block;

color: var(--coral);

margin-bottom: 4px;
}

.item p {
color: var(--muted);
}


/* =========================================================
23. FOOTER
========================================================= */

footer {
padding: 45px 0;

text-align: center;

background: var(--navy);

color: #d9eeea;
}

footer .brand {
justify-content: center;

color: white;

margin-bottom: 8px;
}

footer p {
font-family: Arial, sans-serif;

font-size: 0.8rem;

opacity: 0.85;
}

.footer-copy {
margin-top: 10px;
}

/
/* =========================================================
24. ELYRI — ELEMENTAL PEOPLE
========================================================= */

/*
Elyri-specific desktop styles can be added here.

The responsive hooks below are intentionally preserved
so Elyri pages continue using their existing components:
.elyri-hero-art
.elyri-breath-box
.elyri-creation-box
*/


/* =========================================================
25. HISTORY — HISTORICAL ARCHIVE
========================================================= */


/* -------------------------
History Hero
------------------------- */

.page-history .history-hero {
min-height: 610px;

display: grid;
place-items: center;

text-align: center;

padding: 110px 0 130px;

background:
linear-gradient(
180deg,
rgba(255, 253, 248, 0.12),
rgba(223, 243, 242, 0.82)
),
linear-gradient(
135deg,
#bce6e4,
#f8e6c4
);
}

.history-hero {
position: relative;
overflow: hidden;
}

.history-hero::before,
.history-hero::after {
content: "";

position: absolute;

border-radius: 50%;

pointer-events: none;
}

.history-hero::before {
width: 500px;
height: 500px;

right: -180px;
top: -190px;

background: rgba(233, 184, 92, 0.22);
}

.history-hero::after {
width: 430px;
height: 430px;

left: -190px;
bottom: -220px;

background: rgba(40, 127, 139, 0.14);
}

.history-hero .hero-content {
position: relative;
z-index: 2;

max-width: 850px;

margin-inline: auto;
}

.history-hero .hero-description {
max-width: 760px;

margin-inline: auto;

color: var(--ink);

font-size: clamp(1rem, 2vw, 1.2rem);
}

.history-hero .hero-quote {
max-width: 760px;

margin: 28px auto 0;

color: var(--deep);

font-size: 1.08rem;

font-style: italic;
}


/* -------------------------
History Sun
------------------------- */

.history-sun {
position: absolute;
z-index: 1;

width: 105px;
height: 105px;

top: 78px;
right: 14%;

border-radius: 50%;

background: #e9b85c;

box-shadow:
0 0 55px rgba(233, 184, 92, 0.4);
}


/* -------------------------
History Wave
------------------------- */

.history-wave {
position: absolute;

z-index: 3;

left: 0;
bottom: -1px;

width: 100%;
height: 85px;

background: var(--white);

clip-path:
ellipse(75% 65% at 50% 100%);
}


/* -------------------------
History Intro
------------------------- */

.history-intro {
display: grid;

grid-template-columns:
minmax(0, 1.15fr)
minmax(0, 0.85fr);

gap: 45px;

align-items: stretch;
}

.history-intro-copy p + p {
margin-top: 18px;
}


/* -------------------------
History Note
------------------------- */

.history-note {
padding: 35px;

display: flex;
flex-direction: column;
justify-content: center;

background: var(--white);

border: 1px solid var(--line);

border-radius: var(--radius);

box-shadow: var(--shadow);
}

.history-symbol {
width: 55px;
height: 55px;

display: grid;
place-items: center;

margin-bottom: 18px;

border-radius: 50%;

background: var(--pale);

font-size: 1.4rem;
}

.history-note blockquote {
margin-bottom: 15px;

color: var(--deep);

font-size: 1.2rem;

font-style: italic;
}

.history-note small {
color: var(--muted);

font-family: Arial, sans-serif;

font-size: 0.75rem;

letter-spacing: 0.08em;

text-transform: uppercase;
}


/* -------------------------
Historical Era Strip
------------------------- */

.history-era-strip {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 18px;

margin-top: 35px;
}

.history-era {
padding: 25px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 20px;

text-align: center;
}

.history-era strong {
display: block;

margin-bottom: 5px;

color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;

letter-spacing: 0.13em;

text-transform: uppercase;
}

.history-era h3 {
color: var(--deep);

font-size: 1.25rem;
}

.history-era p {
margin-top: 5px;

color: var(--muted);

font-size: 0.9rem;
}


/* -------------------------
History Section Variants
------------------------- */

.history-cream {
background: #f9f0dd;
}

.history-ascension {
background:
linear-gradient(
135deg,
rgba(223, 243, 242, 0.88),
rgba(245, 230, 200, 0.9)
);
}

.history-present {
background:
linear-gradient(
135deg,
#f9f0dd,
#dff3f2
);
}


/* -------------------------
Ascension Introduction
------------------------- */

.history-ascension-intro {
max-width: 820px;

margin: 0 auto 50px;

text-align: center;
}

.history-ascension-intro .heading {
margin-inline: auto;
}

.history-ascension-quote {
margin-bottom: 18px;

color: var(--deep);

font-size: 1.35rem;

font-style: italic;
}


/* -------------------------
History Cards
------------------------- */

.history-card {
min-width: 0;

padding: 30px;

background: var(--white);

border: 1px solid var(--line);

border-radius: var(--radius);

box-shadow: var(--shadow-small);

transition:
transform 0.22s ease,
box-shadow 0.22s ease;
}

.history-card:hover {
transform: translateY(-5px);

box-shadow: var(--shadow);
}

.history-card-icon {
width: 48px;
height: 48px;

display: grid;
place-items: center;

margin-bottom: 16px;

border-radius: 15px;

background: #d8f0e6;

font-size: 1.25rem;
}

.history-card h3 {
margin-bottom: 9px;

color: var(--deep);

font-size: 1.35rem;
}

.history-card p {
color: var(--muted);

font-size: 0.94rem;
}


/* -------------------------
Citadel Feature
------------------------- */

.history-citadel {
padding: 50px;

background:
linear-gradient(
135deg,
rgba(20, 86, 101, 0.96),
rgba(40, 127, 139, 0.92)
);

color: white;

border-radius: var(--radius);

box-shadow: var(--shadow);
}

.history-citadel .kicker {
color: #e9b85c;
}

.history-citadel h2 {
color: white;
}

.history-citadel p {
color: #e1f2f0;
}

.history-citadel-facts {
display: grid;

grid-template-columns:
repeat(3, minmax(0, 1fr));

gap: 15px;

margin-top: 30px;
}

.history-citadel-fact {
padding: 20px;

background: rgba(255, 255, 255, 0.1);

border: 1px solid rgba(255, 255, 255, 0.15);

border-radius: 18px;
}

.history-citadel-fact strong {
display: block;

margin-bottom: 5px;

color: #e9b85c;
}

.history-citadel-fact span {
color: #d8eeec;

font-size: 0.9rem;
}


/* -------------------------
History Timeline
------------------------- */

.history-timeline {
max-width: 850px;

margin-inline: auto;
}

.history-timeline .item {
padding-bottom: 45px;

border-left-color: #a9d9cf;
}

.history-timeline .item:last-child {
padding-bottom: 0;

border-left-color: transparent;
}

.history-timeline .item::before {
background: var(--coral);

border-color: var(--white);

box-shadow:
0 0 0 2px var(--coral);
}

.timeline-date {
display: inline-block;

margin-bottom: 7px;

padding: 5px 12px;

border-radius: 999px;

background: #d8f0e6;

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.7rem;

font-weight: 700;

letter-spacing: 0.08em;

text-transform: uppercase;
}

.history-timeline .item h3 {
color: var(--deep);

font-size: 1.55rem;

margin-bottom: 8px;
}

.history-timeline .item ul {
margin-top: 12px;
padding-left: 20px;

color: var(--muted);
}


/* -------------------------
Present Day
------------------------- */

.history-present-intro {
max-width: 780px;

margin-bottom: 40px;
}

.history-present-quote {
margin-bottom: 15px;

color: var(--deep);

font-size: 1.35rem;

font-style: italic;
}

.history-present-card {
padding: 28px;

background: rgba(255, 253, 248, 0.86);

border: 1px solid var(--line);

border-radius: var(--radius);
}

.history-present-card h3 {
margin-bottom: 10px;

color: var(--deep);
}

.history-present-card ul {
padding-left: 20px;

color: var(--muted);
}


/* -------------------------
Cultural Memory
------------------------- */

.history-memory-grid {
display: grid;

grid-template-columns:
repeat(4, minmax(0, 1fr));

gap: 18px;
}

.history-memory-card {
padding: 25px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 20px;

text-align: center;
}

.history-memory-card .icon {
margin-inline: auto;
margin-bottom: 10px;

background: transparent;

font-size: 1.5rem;
}

.history-memory-card h3 {
margin-bottom: 7px;

color: var(--deep);

font-size: 1.05rem;
}

.history-memory-card p {
color: var(--muted);

font-size: 0.85rem;
}


/* -------------------------
Lost Sky Cities
------------------------- */

.history-city-grid {
display: grid;

grid-template-columns:
repeat(2, minmax(0, 1fr));

gap: 18px;
}

.history-city-card {
position: relative;
overflow: hidden;

padding: 28px;

background: var(--white);

border: 1px solid var(--line);

border-radius: 22px;

box-shadow: var(--shadow-small);
}

.history-city-card::after {
content: "LOST";

position: absolute;

top: 18px;
right: 18px;

color: rgba(40, 127, 139, 0.12);

font-family: Arial, sans-serif;

font-size: 1.8rem;

font-weight: 700;

letter-spacing: 0.1em;
}

.history-city-card h3 {
margin-bottom: 3px;

color: var(--deep);

font-size: 1.35rem;
}

.history-city-nation {
color: var(--coral);

font-family: Arial, sans-serif;

font-size: 0.72rem;

font-weight: 700;

letter-spacing: 0.08em;

text-transform: uppercase;
}

.history-city-card p {
margin-top: 12px;

color: var(--muted);

font-size: 0.9rem;
}

.history-city-status {
display: inline-block;

margin-top: 15px;

padding: 5px 10px;

border-radius: 999px;

background: #d8f0e6;

color: var(--deep);

font-family: Arial, sans-serif;

font-size: 0.68rem;

font-weight: 700;

letter-spacing: 0.07em;

text-transform: uppercase;
}


/* -------------------------
History Closing
------------------------- */

.history-closing {
padding: 105px 0;

text-align: center;

background:
linear-gradient(
rgba(20, 86, 101, 0.86),
rgba(20, 86, 101, 0.86)
),
linear-gradient(
135deg,
#68b7ba,
#efd39e
);

color: white;
}

.history-closing h2 {
color: white;
}

.history-closing p {
max-width: 720px;

margin-inline: auto;

color: #e7f4f2;

font-size: 1.05rem;
}

.history-closing .closing-quote {
margin-top: 25px;

font-size: 1.25rem;

font-style: italic;

color: white;
}


/* =========================================================
27. MAP IMAGE VIEWER
========================================================= */

.map-viewer {
position: fixed;
inset: 0;

z-index: 99999;

display: flex;
align-items: center;
justify-content: center;

width: 100vw;
height: 100vh;

padding: 30px;

background: rgba(8, 42, 47, 0.94);

backdrop-filter: blur(10px);
-webkit-backdrop-filter: blur(10px);

opacity: 0;
visibility: hidden;
pointer-events: none;

transition:
opacity 0.25s ease,
visibility 0.25s ease;
}


/* -------------------------
Open State
------------------------- */

.map-viewer.active {
opacity: 1;

visibility: visible;

pointer-events: auto;
}


/* -------------------------
Map Image
------------------------- */

.map-viewer img {
display: block;

width: auto;
height: auto;

max-width: 95vw;
max-height: 90vh;

object-fit: contain;

border-radius: 18px;

background: var(--white);

box-shadow:
0 25px 80px rgba(0, 0, 0, 0.55);

cursor: zoom-out;

user-select: none;
-webkit-user-drag: none;

animation: mapViewerIn 0.25s ease;
}


/* -------------------------
Map Open Animation
------------------------- */

@keyframes mapViewerIn {

from {
opacity: 0;
transform: scale(0.96);
}

to {
opacity: 1;
transform: scale(1);
}

}


/* -------------------------
Close Button
------------------------- */

.map-close {
position: absolute;

top: 22px;
right: 25px;

z-index: 100000;

width: 50px;
height: 50px;

display: flex;
align-items: center;
justify-content: center;

padding: 0;

border: 1px solid rgba(255, 255, 255, 0.25);

border-radius: 50%;

background: rgba(255, 253, 248, 0.14);

color: white;

font-family: Arial, sans-serif;

font-size: 32px;
font-weight: 300;

line-height: 1;

cursor: pointer;

backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);

transition:
background 0.2s ease,
transform 0.2s ease,
border-color 0.2s ease;
}

.map-close:hover {
background: rgba(255, 253, 248, 0.25);

border-color:
rgba(255, 255, 255, 0.45);

transform: scale(1.06);
}

.map-close:active {
transform: scale(0.95);
}


/* -------------------------
Keyboard Accessibility
------------------------- */

.hero-art:focus-visible {
outline: 4px solid var(--lagoon);

outline-offset: 5px;
}

.map-close:focus-visible {
outline: 3px solid var(--lagoon);

outline-offset: 3px;
}


/* =========================================================
28. RESPONSIVE — TABLET
========================================================= */

@media (max-width: 900px) {

/* -------------------------
Navigation
------------------------- */

.site-nav {
flex-direction: column;

align-items: stretch;

padding: 1rem 0;
}

.site-nav .brand {
justify-content: center;
}

.nav-links {
justify-content: center;

flex-wrap: wrap;
}


/* -------------------------
Global Hero
------------------------- */

.hero-inner {
grid-template-columns: 1fr;

min-height: auto;

padding-top: 20px;
}

.hero-art {
height: 360px;

border-radius: 38px;
}


/* -------------------------
Global Grids
------------------------- */

.grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}

.feature-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}


/* -------------------------
Story
------------------------- */

.story {
grid-template-columns: 1fr;
}


/* -------------------------
Character Creation
------------------------- */

.creation-list {
grid-template-columns: 1fr;
}


/* -------------------------
Aelori
------------------------- */

.variant-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}


/* -------------------------
Elyri
------------------------- */

.page-elyri .elyri-hero-art,
.page-elyri .elyri-hero-art img {
height: 430px;

min-height: 430px;
}

.page-elyri .elyri-breath-box,
.page-elyri .elyri-creation-box {
padding: 32px;
}


/* -------------------------
History
------------------------- */

.history-intro {
grid-template-columns: 1fr;
}

.history-era-strip {
grid-template-columns: 1fr;
}

.history-memory-grid {
grid-template-columns:
repeat(2, minmax(0, 1fr));
}

.history-city-grid {
grid-template-columns: 1fr;
}

.history-citadel-facts {
grid-template-columns: 1fr;
}

.history-citadel {
padding: 35px;
}

}


/* =========================================================
29. RESPONSIVE — MOBILE
========================================================= */

@media (max-width: 600px) {

section {
padding: 70px 0;
}


/* -------------------------
Navigation
------------------------- */

.site-nav {
gap: 1rem;
}

.nav-links {
gap: 0.15rem;
}

.nav-links a {
padding: 0.5rem 0.6rem;

font-size: 0.7rem;
}


/* -------------------------
Typography
------------------------- */

h1 {
font-size: 3.2rem;
}


/* -------------------------
Global Hero
------------------------- */

.hero {
padding-top: 35px;
}

.hero-art {
height: 280px;

border-width: 5px;

border-radius: 30px;
}

.hero-description {
font-size: 1rem;
}


/* -------------------------
Grids
------------------------- */

.grid {
grid-template-columns: 1fr;
}

.feature-grid {
grid-template-columns: 1fr;
}


/* -------------------------
Cards
------------------------- */

.card {
padding: 24px;
}


/* -------------------------
Character Creation
------------------------- */

.creation-box {
padding: 30px 22px;
}


/* -------------------------
Buttons
------------------------- */

.buttons {
flex-direction: column;
}

.button {
width: 100%;

text-align: center;
}


/* -------------------------
Occupations
------------------------- */

.occupation-list {
gap: 8px;
}

.occupation {
padding: 9px 13px;
}


/* -------------------------
Aelori
------------------------- */

.variant-grid {
grid-template-columns: 1fr;
}

.aelori-closing {
padding: 65px 0;
}


/* -------------------------
Elyri
------------------------- */

.page-elyri .elyri-hero {
padding: 65px 0 75px;
}

.page-elyri .elyri-hero-art,
.page-elyri .elyri-hero-art img {
height: 380px;

min-height: 380px;
}

.page-elyri .elyri-breath-box,
.page-elyri .elyri-creation-box {
padding: 28px;
}


/* -------------------------
History
------------------------- */

.page-history .history-hero {
min-height: 560px;

padding: 80px 0 110px;
}

.history-sun {
width: 75px;
height: 75px;

top: 55px;
right: 7%;
}

.history-memory-grid {
grid-template-columns: 1fr;
}

.history-timeline .item {
padding-left: 30px;
}

.history-card,
.history-present-card {
padding: 23px;
}

.history-citadel {
padding: 28px;
}

.history-closing {
padding: 80px 0;
}


/* -------------------------
Map Viewer
------------------------- */

.map-viewer {
padding: 18px;
}

.map-viewer img {
max-width: 96vw;
max-height: 86vh;

border-radius: 12px;
}

.map-close {
top: 14px;
right: 14px;

width: 44px;
height: 44px;

font-size: 28px;
}

}


/* =========================================================
30. RESPONSIVE — SMALL PHONES
========================================================= */

@media (max-width: 400px) {

.container {
width: min(94%, 1180px);
}


/* -------------------------
Navigation
------------------------- */

.nav-links a {
padding: 0.45rem 0.5rem;

font-size: 0.65rem;
}


/* -------------------------
Typography
------------------------- */

h1 {
font-size: 2.8rem;
}

h2 {
font-size: 2rem;
}


/* -------------------------
Hero
------------------------- */

.hero-art {
height: 240px;
}


/* -------------------------
Map Viewer
------------------------- */

.map-viewer {
padding: 12px;
}

.map-viewer img {
max-width: 97vw;
max-height: 84vh;

border-radius: 10px;
}

.map-close {
top: 10px;
right: 10px;

width: 42px;
height: 42px;

font-size: 26px;
}

}

/* =========================================================
   LORE DOCUMENT
   ========================================================= */

.lore-page {
    padding: 50px 0 90px;
}

.lore-layout {
    width: min(1250px, calc(100% - 40px));
    margin: 0 auto;

    display: grid;
    grid-template-columns: 230px minmax(0, 850px);
    gap: 35px;

    align-items: start;
}


/* =========================================================
   DOCUMENT INDEX
   ========================================================= */

.lore-index {
    position: sticky;
    top: 30px;

    padding: 24px 20px;

    background: rgba(247, 255, 245, 0.96);
    border: 1px solid rgba(18, 74, 85, 0.16);
    border-radius: 18px;

    box-shadow: 0 12px 35px rgba(18, 74, 85, 0.08);
}

.index-label {
    margin-bottom: 5px;

    color: var(--deep);
    font-size: 0.72rem;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.index-title {
    margin: 0 0 20px;

    color: var(--navy);
    font-family: Georgia, serif;
    font-size: 1.25rem;
}

.index-rule {
    height: 1px;
    margin: 0 0 16px;

    background: rgba(18, 74, 85, 0.14);
}

.index-section {
    margin-bottom: 20px;
}

.index-section-title {
    margin-bottom: 8px;

    color: var(--stone);
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.index-link {
    position: relative;

    display: block;

    padding: 7px 8px 7px 25px;

    color: var(--stone);
    text-decoration: none;

    font-size: 0.86rem;
    line-height: 1.4;

    border-radius: 8px;

    transition:
        color 0.2s ease,
        background 0.2s ease;
}

.index-link::before {
    content: "";

    position: absolute;
    left: 8px;
    top: 50%;

    width: 5px;
    height: 5px;

    border-radius: 50%;
    background: transparent;

    transform: translateY(-50%);
    transition: background 0.2s ease;
}

.index-link:hover {
    color: var(--deep);
    background: rgba(49, 195, 192, 0.08);
}

.index-link.active {
    color: var(--deep);
    font-weight: 700;
    background: rgba(49, 195, 192, 0.10);
}

.index-link.active::before {
    background: var(--lagoon);
}


/* =========================================================
   DOCUMENT
   ========================================================= */

.lore-document {
    min-width: 0;

    background: var(--foam);

    border: 1px solid rgba(18, 74, 85, 0.15);
    border-radius: 22px;

    box-shadow:
        0 20px 55px rgba(18, 74, 85, 0.10);

    overflow: hidden;
}


/* =========================================================
   DOCUMENT HEADER
   ========================================================= */

.document-header {
    position: relative;

    padding: 65px 70px 55px;

    background:
        linear-gradient(
            135deg,
            rgba(49, 195, 192, 0.11),
            rgba(247, 255, 245, 0.95) 55%
        );

    border-bottom: 1px solid rgba(18, 74, 85, 0.13);
}

.document-kicker {
    margin-bottom: 12px;

    color: var(--deep);

    font-size: 0.72rem;
    font-weight: 800;

    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.document-title {
    margin: 0;

    color: var(--navy);

    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(2.4rem, 5vw, 4rem);

    line-height: 1.05;
}

.document-subtitle {
    max-width: 620px;

    margin: 18px 0 0;

    color: var(--stone);

    font-size: 1.05rem;
    line-height: 1.7;
}

.document-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;

    margin-top: 27px;
}

.document-meta span {
    padding: 6px 11px;

    color: var(--deep);

    background: rgba(49, 195, 192, 0.09);

    border: 1px solid rgba(49, 195, 192, 0.20);
    border-radius: 999px;

    font-size: 0.72rem;
    font-weight: 700;
}


/* =========================================================
   DOCUMENT BODY
   ========================================================= */

.document-body {
    padding: 65px 70px 80px;
}

.lore-section {
    scroll-margin-top: 35px;
}

.lore-section + .lore-section {
    margin-top: 70px;
}

.section-number {
    margin-bottom: 8px;

    color: var(--lagoon);

    font-size: 0.72rem;
    font-weight: 800;

    letter-spacing: 0.16em;
}

.lore-section h2 {
    margin: 0 0 22px;

    color: var(--navy);

    font-family: Georgia, "Times New Roman", serif;
    font-size: 2rem;

    line-height: 1.2;
}

.lore-section p {
    margin: 0 0 20px;

    color: #344f55;

    font-size: 1rem;
    line-height: 1.85;
}

.lore-section p:last-child {
    margin-bottom: 0;
}


/* =========================================================
   ORNAMENTAL DIVIDER
   ========================================================= */

.lore-divider {
    display: flex;
    align-items: center;
    gap: 15px;

    margin: 60px 0;
}

.lore-divider::before,
.lore-divider::after {
    content: "";

    height: 1px;
    flex: 1;

    background: rgba(18, 74, 85, 0.14);
}

.lore-divider span {
    color: var(--lagoon);

    font-size: 1rem;
}


/* =========================================================
   HISTORICAL NOTE
   ========================================================= */

.history-note {
    margin: 35px 0;
    padding: 25px 28px;

    background: rgba(244, 223, 179, 0.25);

    border-left: 3px solid var(--sand);

    border-radius: 0 13px 13px 0;
}

.history-note-label {
    margin-bottom: 8px;

    color: var(--deep);

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.16em;
    text-transform: uppercase;
}

.history-note p {
    margin: 0;

    color: var(--stone);

    font-size: 0.91rem;
    line-height: 1.7;
}


/* =========================================================
   PULL QUOTE
   ========================================================= */

.lore-quote {
    margin: 45px 0;

    padding: 10px 35px;

    color: var(--deep);

    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.35rem;
    font-style: italic;

    line-height: 1.65;

    border-left: 3px solid var(--lagoon);
}


/* =========================================================
   TIMELINE MARKER
   ========================================================= */

.date-marker {
    display: inline-block;

    margin-bottom: 14px;
    padding: 5px 10px;

    color: white;
    background: var(--deep);

    border-radius: 999px;

    font-size: 0.68rem;
    font-weight: 800;

    letter-spacing: 0.12em;
}


/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 900px) {

    .lore-layout {
        grid-template-columns: 1fr;
    }

    .lore-index {
        position: relative;
        top: auto;

        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 5px 12px;
    }

    .index-title,
    .index-label,
    .index-rule {
        grid-column: 1 / -1;
    }

    .index-section {
        margin-bottom: 8px;
    }

}


@media (max-width: 650px) {

    .lore-page {
        padding: 25px 0 55px;
    }

    .lore-layout {
        width: min(100% - 20px, 850px);
        gap: 15px;
    }

    .lore-index {
        display: block;
        padding: 18px;
    }

    .index-section {
        margin-bottom: 15px;
    }

    .document-header {
        padding: 42px 28px 38px;
    }

    .document-body {
        padding: 42px 28px 55px;
    }

    .document-title {
        font-size: 2.35rem;
    }

    .lore-section h2 {
        font-size: 1.7rem;
    }

    .lore-section p {
        font-size: 0.96rem;
        line-height: 1.8;
    }

    .lore-quote {
        padding-left: 20px;
        padding-right: 10px;

        font-size: 1.15rem;
    }

}
