@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Cinzel:wght@400;600;800&family=Fraunces:opsz,wght@9..144,500;9..144,700;9..144,900&family=IM+Fell+English+SC&family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500;700&family=Libre+Baskerville:wght@400;700&family=Newsreader:opsz,wght@6..72,400;6..72,700;6..72,900&family=Noto+Sans+Runic&family=Unbounded:wght@400;500;700;800&family=UnifrakturCook:wght@700&display=swap');

:root {
  --bg: #f4efe6;
  --bg-soft: #ebe2d4;
  --text: #171512;
  --muted: #6e665a;
  --line: rgba(23, 21, 18, .14);
  --card: rgba(255, 252, 245, .74);
  --card-solid: #fffaf0;
  --accent: #1f4c3a;
  --accent-2: #b36a3c;
  --radius-lg: 32px;
  --radius-md: 22px;
  --shadow: 0 24px 90px rgba(33, 27, 18, .12);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display: var(--sans);
  --brand: Unbounded, Inter, sans-serif;
  --serif: Newsreader, Georgia, "Times New Roman", serif;
  --mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--sans);
  color: var(--text);
  background:
    radial-gradient(circle at 12% 10%, rgba(179, 106, 60, .18), transparent 30rem),
    radial-gradient(circle at 86% 24%, rgba(31, 76, 58, .16), transparent 28rem),
    linear-gradient(135deg, var(--bg), #faf7ef 48%, var(--bg-soft));
  line-height: 1.5;
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .46s ease, transform .46s ease;
}
body.is-loaded { opacity: 1; transform: translateY(0); }
body.is-leaving { opacity: 0; transform: translateY(-8px); }
body::before {
  content: "";
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .32;
  background-image:
    linear-gradient(rgba(23,21,18,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(23,21,18,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: linear-gradient(to bottom, black, transparent 75%);
}
a { color: inherit; text-decoration: none; }
p, h1, h2, h3 { margin-top: 0; }
p { color: var(--muted); }
::selection { background: var(--text); color: var(--bg); }
.skip-link {
  position: absolute;
  left: 1rem;
  top: .75rem;
  z-index: 100;
  transform: translateY(-140%);
  padding: .75rem 1rem;
  border-radius: 999px;
  background: var(--text);
  color: var(--bg);
}
.skip-link:focus { transform: translateY(0); }

/* Shared header */
.site-header {
  position: sticky;
  top: 0;
  z-index: 30;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding: 18px clamp(18px, 4vw, 56px);
  border-bottom: 1px solid transparent;
  transition: background .2s ease, border-color .2s ease, backdrop-filter .2s ease;
}
.site-header.is-scrolled {
  background: rgba(244, 239, 230, .78);
  border-color: var(--line);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; align-items: center; color: var(--text); }
.brand-mark {
  position: relative;
  display: inline-flex;
  align-items: baseline;
  gap: .04em;
  font-family: var(--brand);
  font-size: clamp(1.05rem, 2.1vw, 1.55rem);
  font-weight: 800;
  letter-spacing: -.08em;
  line-height: 1;
  text-transform: lowercase;
}
.brand-mark::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -.42rem;
  height: 2px;
  background: linear-gradient(90deg, currentColor 0 52%, transparent 52% 58%, var(--accent-2) 58% 100%);
  transform: scaleX(.28);
  transform-origin: left;
  opacity: .36;
  transition: transform .25s ease, opacity .25s ease;
}
.brand:hover .brand-mark::after { transform: scaleX(1); opacity: .82; }
.brand-mark i {
  color: var(--accent-2);
  font-style: normal;
  transform: translateY(-.03em);
}
.brand-mark strong { font-weight: 500; letter-spacing: -.09em; }
.main-nav {
  display: flex;
  align-items: center;
  gap: clamp(.35rem, 1.2vw, .9rem);
  font-family: var(--mono);
  font-size: .76rem;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.main-nav a {
  position: relative;
  overflow: hidden;
  padding: .68rem .78rem;
  border: 1px solid transparent;
  border-radius: 999px;
  color: var(--muted);
  transition: color .2s ease, border-color .2s ease, background .2s ease, transform .2s ease;
}
.main-nav a::before {
  content: "";
  position: absolute;
  inset: 3px;
  z-index: -1;
  border-radius: inherit;
  background: var(--text);
  transform: translateY(120%) rotate(4deg);
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
}
.main-nav a::after {
  content: attr(data-label);
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--bg);
  transform: translateY(120%);
  transition: transform .25s cubic-bezier(.2,.8,.2,1);
}
.main-nav a:hover,
.main-nav a[aria-current="page"] {
  color: var(--text);
  border-color: var(--line);
  background: rgba(255,255,255,.28);
  transform: translateY(-1px);
}
.main-nav a:hover::before { transform: translateY(0) rotate(0); }
.main-nav a:hover::after { transform: translateY(0); }
.main-nav a[aria-current="page"] { color: var(--text); }
.section-pad { padding-inline: clamp(18px, 4vw, 56px); }

/* Hub */
.hero { padding-top: clamp(64px, 8vw, 112px); padding-bottom: clamp(56px, 8vw, 100px); }
.hero-grid {
  max-width: 1280px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: clamp(28px, 5vw, 84px);
  align-items: center;
}
.hero-copy { max-width: 980px; }
.eyebrow,
.world-label {
  margin-bottom: 1rem;
  color: var(--accent);
  font-family: var(--mono);
  font-size: .76rem;
  letter-spacing: .13em;
  text-transform: uppercase;
}
h1, h2, h3 { letter-spacing: -.065em; line-height: .95; }
h1 {
  max-width: 980px;
  margin-bottom: 1.35rem;
  font-size: clamp(4rem, 10vw, 9.6rem);
  font-weight: 820;
}
h2 { margin-bottom: 1rem; font-size: clamp(2.3rem, 6vw, 5.8rem); font-weight: 800; }
h3 { margin-bottom: .9rem; font-size: clamp(2rem, 3vw, 3.4rem); }
.hero-text { max-width: 620px; margin-bottom: 2rem; font-size: clamp(1.08rem, 1.6vw, 1.35rem); }
.hero-actions, .world-actions { display: flex; flex-wrap: wrap; gap: .85rem; align-items: center; }
.hero-index {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem 1.4rem;
  margin-top: clamp(2.5rem, 6vw, 5rem);
  padding-top: 1rem;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.hero-index span { transition: color .25s ease, transform .25s ease; }
.hero-index span:hover { color: var(--accent-2); transform: translateY(-2px); }
.button,
.world-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: .86rem 1.15rem;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-weight: 750;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.button:hover, .world-button:hover { transform: translateY(-2px); }
.button-primary { background: var(--text); color: var(--bg); border-color: var(--text); }
.button-ghost { background: rgba(255, 255, 255, .36); }
.hero-panel {
  position: relative;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--card);
  box-shadow: var(--shadow);
  backdrop-filter: blur(18px);
  overflow: hidden;
  transform: translate3d(calc(var(--panel-x, 0) * 1px), calc(var(--panel-y, 0) * 1px), 0);
  transition: transform .18s ease, box-shadow .18s ease;
}
.hero-panel:hover { box-shadow: 0 30px 110px rgba(33, 27, 18, .18); }
.hero-panel::before {
  content: "";
  position: absolute;
  inset: 16px;
  border: 1px solid rgba(23,21,18,.1);
  border-radius: calc(var(--radius-lg) - 12px);
  pointer-events: none;
}
.hero-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(circle at var(--mx, 78%) var(--my, 24%), rgba(179, 106, 60, .26), transparent 13rem);
}
.panel-shell { position: relative; z-index: 1; padding: clamp(24px, 4vw, 38px); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.2rem; }
.panel-topline { font-family: var(--mono); font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.panel-dot { width: 10px; height: 10px; border-radius: 999px; background: var(--accent-2); box-shadow: 0 0 0 6px rgba(179, 106, 60, .14); animation: pulse 1.7s ease-in-out infinite; }
.panel-title { max-width: 360px; margin-bottom: 1.4rem; font-family: var(--display); font-size: clamp(2.2rem, 4.4vw, 4.2rem); font-weight: 900; line-height: .92; letter-spacing: -.055em; }
.panel-marquee { margin-inline: calc(clamp(24px, 4vw, 38px) * -1); margin-bottom: 1.2rem; overflow: hidden; background: var(--text); color: var(--bg); font-family: var(--mono); font-size: .72rem; white-space: nowrap; }
.panel-marquee div { display: inline-block; min-width: 200%; padding: .62rem 0; animation: marquee 20s linear infinite; }
.current-list { position: relative; z-index: 1; display: grid; gap: 1.15rem; margin: 0; padding: 0; list-style: none; }
.current-list li { display: grid; gap: .25rem; padding-top: 1.1rem; border-top: 1px solid var(--line); }
.current-list span { color: var(--muted); font-size: .84rem; }
.current-list strong { font-size: 1.02rem; }
.statement { max-width: 1280px; margin-inline: auto; padding-top: clamp(34px, 5vw, 72px); padding-bottom: clamp(34px, 5vw, 72px); }
.statement p,
.manifest p { max-width: 1100px; color: var(--text); font-family: var(--serif); font-size: clamp(2rem, 4.5vw, 5.2rem); line-height: 1.02; letter-spacing: -.055em; }
.worlds { padding-top: clamp(50px, 7vw, 96px); padding-bottom: clamp(50px, 8vw, 112px); }
.section-heading { max-width: 1280px; margin-inline: auto; margin-bottom: clamp(28px, 5vw, 58px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 440px); gap: 2rem; align-items: end; }
.section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -1rem; }
.section-heading p:last-child { margin-bottom: .8rem; }
.world-grid { max-width: 1280px; margin-inline: auto; display: grid; grid-template-columns: repeat(6, 1fr); gap: 16px; }
.world-card { min-height: 440px; border-radius: var(--radius-lg); overflow: hidden; border: 1px solid rgba(255,255,255,.24); box-shadow: 0 20px 70px rgba(23, 21, 18, .12); transition: transform .22s ease, box-shadow .22s ease; }
.world-card:hover { transform: translateY(-6px); box-shadow: 0 28px 90px rgba(23, 21, 18, .18); }
.world-card:nth-child(1), .world-card:nth-child(2), .world-card:nth-child(3) { grid-column: span 2; }
.world-card:nth-child(4), .world-card:nth-child(5) { grid-column: span 3; }
.world-card a { position: relative; display: flex; min-height: 100%; flex-direction: column; justify-content: space-between; padding: clamp(24px, 4vw, 38px); isolation: isolate; }
.world-card a::before { content: ""; position: absolute; inset: 0; z-index: -2; background: var(--world-bg, #222); }
.world-card a::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.24), transparent 16rem), linear-gradient(to bottom, rgba(0,0,0,.06), rgba(0,0,0,.56)); opacity: .95; }
.world-card, .world-card p { color: rgba(255,255,255,.82); }
.world-card h3 { color: #fff; }
.world-card:hover .world-link { transform: translateX(8px); }
.world-card:hover .world-card-visual { transform: translateY(-8px) rotate(-4deg) scale(1.04); opacity: .75; }
.world-number { display: block; margin-bottom: auto; font-family: var(--mono); color: rgba(255,255,255,.6); }
.world-card-visual { position: absolute; top: 28px; right: 28px; display: grid; place-items: center; width: 104px; height: 104px; border: 1px solid rgba(255,255,255,.22); border-radius: 28px; background: rgba(255,255,255,.08); backdrop-filter: blur(12px); opacity: .55; transition: transform .26s ease, opacity .26s ease; }
.world-card-visual span { font-family: var(--display); font-size: 3.8rem; line-height: 1; color: #fff; }
.world-kicker { margin-bottom: .7rem; font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.world-link { display: inline-block; margin-top: 1.8rem; font-weight: 760; transition: transform .18s ease; }
.world-thoughts { --world-bg: linear-gradient(135deg, #231716, #735331 55%, #1d1611); }
.world-dnd { --world-bg: radial-gradient(circle at 76% 16%, rgba(229, 190, 92, .34), transparent 15rem), linear-gradient(135deg, #17251b, #4c5630 52%, #9a592f); }
.world-dnd-visual span { font-family: var(--mono); font-size: 2rem; font-weight: 700; letter-spacing: -.08em; }
.world-viking { --world-bg: radial-gradient(circle at 75% 15%, rgba(210,154,88,.35), transparent 17rem), linear-gradient(135deg, #080808, #513b25 60%, #14100d); }
.world-atlas { --world-bg: linear-gradient(135deg, #031012, #074841 52%, #16b68f); }
.world-birds { --world-bg: linear-gradient(135deg, #10251c, #557448 48%, #d3a55a); }
.world-sport { --world-bg: linear-gradient(135deg, #11141b, #6b2f3a 50%, #ef663c); }
.about-teaser { max-width: 1280px; margin-inline: auto; padding-top: clamp(42px, 7vw, 94px); padding-bottom: clamp(58px, 8vw, 120px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 480px); gap: clamp(24px, 5vw, 72px); align-items: end; border-top: 1px solid var(--line); }
.about-teaser p { font-size: 1.08rem; }
.about-teaser .button { justify-self: start; }
.site-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 28px clamp(18px, 4vw, 56px); border-top: 1px solid var(--line); color: var(--muted); font-size: .92rem; }
.site-footer p { margin: 0; }
.site-footer a { color: var(--text); font-weight: 700; }
.subpage-hero { max-width: 1280px; margin-inline: auto; padding-top: clamp(72px, 10vw, 140px); padding-bottom: clamp(40px, 7vw, 90px); }
.subpage-hero p:last-child { max-width: 820px; font-size: clamp(1.08rem, 2vw, 1.45rem); }
.about-layout { max-width: 1280px; margin-inline: auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: 20px; }
.prose-card, .aside-card { border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--card); backdrop-filter: blur(14px); box-shadow: var(--shadow); }
.prose-card { padding: clamp(26px, 5vw, 56px); }
.prose-card h2 { font-size: clamp(2.3rem, 5vw, 4.7rem); }
.prose-card p { max-width: 780px; font-size: 1.08rem; }
.about-aside { display: grid; gap: 20px; align-content: start; }
.aside-card { padding: 24px; }
.aside-label { display: block; margin-bottom: .9rem; font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--accent); }
.aside-card p { margin: 0; color: var(--text); font-weight: 680; }
.split-section { max-width: 1280px; margin-inline: auto; padding-top: clamp(54px, 8vw, 112px); padding-bottom: clamp(48px, 7vw, 100px); display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); gap: clamp(28px, 6vw, 90px); border-bottom: 1px solid var(--line); }
.mini-list { display: grid; gap: 1rem; }
.mini-list p { margin: 0; padding: 1.15rem 0; border-top: 1px solid var(--line); font-size: 1.03rem; }
.mini-list strong { color: var(--text); }
.manifest { max-width: 1280px; margin-inline: auto; padding-top: clamp(52px, 8vw, 110px); padding-bottom: clamp(58px, 8vw, 120px); }

/* Shared world pages */
.world-body { min-height: 100vh; color: #fff; background: #111; }
.world-body::before { display: none; }
.world-body p { color: rgba(255,255,255,.72); }
.world-site-header.is-scrolled { background: rgba(8, 8, 8, .64); border-color: rgba(255,255,255,.12); backdrop-filter: blur(18px); }
.world-body .brand { color: #fff; }
.world-body .brand-mark::after { background: linear-gradient(90deg, currentColor 0 52%, transparent 52% 58%, currentColor 58% 100%); }
.world-body .main-nav a { color: rgba(255,255,255,.72); }
.world-body .main-nav a:hover { color: #fff; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); }
.world-body .main-nav a::before { background: #fff; }
.world-body .main-nav a::after { color: #111; }
.world-label { color: var(--world-accent, #fff); }
.world-button { color: #fff; border-color: rgba(255,255,255,.24); background: rgba(255,255,255,.08); backdrop-filter: blur(12px); }
.world-status { font-family: var(--mono); font-size: .78rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.68); }
.world-holding { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 26px clamp(18px, 4vw, 56px) 44px; border-top: 1px solid rgba(255,255,255,.12); }
.world-holding p { margin: 0; font-family: var(--mono); font-size: .76rem; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.world-holding div { display: flex; flex-wrap: wrap; gap: .65rem; justify-content: flex-end; }
.world-holding span { padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.16); border-radius: 999px; font-family: var(--mono); font-size: .74rem; color: rgba(255,255,255,.72); background: rgba(255,255,255,.05); }
.world-footer { display: flex; justify-content: space-between; gap: 1rem; padding: 24px clamp(18px, 4vw, 56px); color: rgba(255,255,255,.62); font-family: var(--mono); font-size: .78rem; border-top: 1px solid rgba(255,255,255,.1); }
.world-footer a { color: #fff; }

/* Viking world */
.viking-body { --world-accent: #d8a35f; background: #050505; }
.viking-hero { position: relative; min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, .98fr) minmax(300px, .82fr); align-items: center; gap: clamp(24px, 5vw, 80px); padding: clamp(52px, 8vw, 110px) clamp(18px, 5vw, 72px); overflow: hidden; isolation: isolate; }
.viking-sky { position: absolute; inset: 0; z-index: -5; background: radial-gradient(circle at 72% 18%, rgba(216,163,95,.42), transparent 22rem), linear-gradient(180deg, #090807 0%, #17100d 54%, #060606 100%); }
.viking-mountains { position: absolute; inset: auto -10% 0; height: 58%; z-index: -4; background: linear-gradient(145deg, transparent 0 35%, rgba(31,27,24,.9) 35% 48%, transparent 48% 100%), linear-gradient(215deg, transparent 0 38%, rgba(51,43,34,.75) 38% 49%, transparent 49% 100%), linear-gradient(to top, #070707, transparent); opacity: .82; filter: blur(.2px); }
.viking-fog { position: absolute; left: -10%; right: -10%; height: 24%; z-index: -2; background: radial-gradient(ellipse at center, rgba(255,255,255,.16), transparent 62%); filter: blur(26px); opacity: .55; animation: fogDrift 14s ease-in-out infinite alternate; }
.viking-fog-a { bottom: 12%; }
.viking-fog-b { bottom: 0; animation-duration: 20s; opacity: .32; }
.viking-copy { max-width: 820px; }
.viking-copy h1 { font-family: Cinzel, Georgia, serif; font-size: clamp(3.8rem, 9vw, 9rem); color: #f6ead8; text-shadow: 0 12px 48px rgba(0,0,0,.66); letter-spacing: -.075em; }
.viking-copy p:not(.world-label) { max-width: 620px; font-size: clamp(1.05rem, 1.6vw, 1.28rem); color: rgba(246,234,216,.74); }
.viking-character { position: relative; min-height: min(72vh, 720px); margin: 0; display: grid; place-items: center; }
.viking-moon { position: absolute; width: clamp(220px, 38vw, 500px); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff0ce, #b2743b 58%, rgba(178,116,59,.06) 69%, transparent 70%); filter: blur(.2px); opacity: .78; box-shadow: 0 0 120px rgba(216,163,95,.28); }
.viking-cloak { position: absolute; bottom: 6%; width: clamp(220px, 30vw, 390px); height: 58%; border-radius: 48% 52% 8% 8% / 30% 30% 8% 8%; background: linear-gradient(90deg, #050404, #15110d 48%, #050404); box-shadow: 0 24px 80px rgba(0,0,0,.8); }
.viking-head { position: absolute; top: 22%; width: 88px; height: 92px; border-radius: 48% 48% 42% 42%; background: #080706; box-shadow: -48px -12px 0 -32px #080706, 48px -12px 0 -32px #080706; }
.viking-shoulders { position: absolute; top: 43%; width: clamp(260px, 34vw, 460px); height: 120px; border-radius: 55% 55% 30% 30%; background: linear-gradient(90deg, #030303, #18120e, #030303); }
.viking-axe { position: absolute; right: 14%; top: 18%; width: 12px; height: 68%; border-radius: 999px; background: linear-gradient(#241a12, #050403); transform: rotate(-11deg); transform-origin: bottom; }
.viking-axe::before { content: ""; position: absolute; top: -8px; left: -44px; width: 96px; height: 72px; border-radius: 70% 28% 60% 30%; background: linear-gradient(135deg, #d8c8ac, #6d6352); clip-path: polygon(0 34%, 48% 0, 100% 22%, 72% 46%, 100% 78%, 52% 100%, 0 72%, 22% 52%); filter: drop-shadow(0 12px 22px rgba(0,0,0,.5)); }
.viking-character figcaption { position: absolute; bottom: 0; right: 0; max-width: 260px; color: rgba(246,234,216,.48); font-family: var(--mono); font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
.viking-holding { background: #070707; }

/* Thoughts world */
.thoughts-body { --world-accent: #5e241a; background: #d8c39c; color: #22120f; }
.thoughts-body p { color: rgba(34,18,15,.72); }
.thoughts-body .brand, .thoughts-body .main-nav a { color: #26140f; }
.thoughts-body .site-header.is-scrolled { background: rgba(216,195,156,.76); border-color: rgba(34,18,15,.16); }
.thoughts-body .main-nav a:hover { color: #26140f; border-color: rgba(34,18,15,.18); background: rgba(255,248,222,.22); }
.thoughts-body .main-nav a::before { background: #26140f; }
.thoughts-body .main-nav a::after { color: #f3e6c5; }
.thoughts-main { background: radial-gradient(circle at 8% 18%, rgba(101,54,33,.18), transparent 20rem), radial-gradient(circle at 85% 20%, rgba(61,88,55,.14), transparent 22rem), linear-gradient(135deg, #c6ac7b, #f2e1bd 46%, #bb9862); }
.thoughts-hero { min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 360px); gap: clamp(22px, 5vw, 68px); align-items: center; padding: clamp(54px, 8vw, 112px) clamp(18px, 6vw, 84px); }
.manuscript-frame { position: relative; padding: clamp(30px, 6vw, 72px); border: 2px solid rgba(66,35,23,.42); outline: 1px solid rgba(66,35,23,.18); outline-offset: -16px; background: rgba(255,244,208,.46); box-shadow: inset 0 0 80px rgba(74,38,20,.13), 0 28px 100px rgba(61,37,15,.18); }
.manuscript-frame::before, .manuscript-frame::after { content: "✦"; position: absolute; color: rgba(94,36,26,.5); font-size: 1.4rem; }
.manuscript-frame::before { top: 22px; left: 22px; }
.manuscript-frame::after { bottom: 22px; right: 22px; }
.thoughts-body .world-label { color: #5e241a; }
.manuscript-frame h1 { font-family: "IM Fell English SC", "Libre Baskerville", serif; font-size: clamp(5.4rem, 15vw, 15rem); color: #25130e; letter-spacing: -.035em; line-height: .82; text-shadow: 0 2px 0 rgba(255,245,209,.7); }
.thoughts-lead { max-width: 740px; font-family: "Libre Baskerville", Georgia, serif; font-size: clamp(1.08rem, 1.7vw, 1.35rem); }
.ink-button { color: #25130e; border-color: rgba(37,19,14,.28); background: rgba(37,19,14,.08); }
.margin-notes { border-left: 1px solid rgba(66,35,23,.28); padding-left: clamp(20px, 3vw, 34px); font-family: "Libre Baskerville", Georgia, serif; }
.margin-notes span { display: block; margin-top: 1.4rem; margin-bottom: .4rem; font-family: "IM Fell English SC", serif; color: #5e241a; font-size: 1.2rem; }
.margin-notes p { margin: 0; color: rgba(34,18,15,.72); }
.thoughts-holding { background: #25130e; }

/* Atlas world */
.atlas-body { --world-accent: #44f0c9; background: #020809; }
.atlas-hero { position: relative; min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, .78fr); gap: clamp(24px, 5vw, 72px); align-items: center; padding: clamp(54px, 8vw, 110px) clamp(18px, 5vw, 72px); overflow: hidden; isolation: isolate; background: radial-gradient(circle at 70% 20%, rgba(68,240,201,.18), transparent 24rem), radial-gradient(circle at 15% 20%, rgba(28,91,255,.12), transparent 18rem), #020809; }
.atlas-grid-bg { position: absolute; inset: 0; z-index: -1; opacity: .32; background-image: linear-gradient(rgba(68,240,201,.11) 1px, transparent 1px), linear-gradient(90deg, rgba(68,240,201,.11) 1px, transparent 1px); background-size: 42px 42px; mask-image: radial-gradient(circle at center, black, transparent 78%); }
.atlas-copy h1 { font-family: Unbounded, Inter, sans-serif; max-width: 880px; color: #e9fffa; font-size: clamp(3rem, 7.5vw, 7.2rem); letter-spacing: -.09em; }
.atlas-copy p:not(.world-label) { max-width: 640px; color: rgba(233,255,250,.72); font-size: clamp(1.02rem, 1.6vw, 1.24rem); }
.neon-button { border-color: rgba(68,240,201,.38); color: #e9fffa; background: rgba(68,240,201,.08); box-shadow: 0 0 30px rgba(68,240,201,.08); }
.live-status::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: .55rem; border-radius: 50%; background: #44f0c9; box-shadow: 0 0 14px #44f0c9; }
.dashboard-stack { display: grid; gap: 16px; }
.dash-card { border: 1px solid rgba(68,240,201,.18); border-radius: 24px; background: rgba(4,24,25,.74); box-shadow: 0 24px 90px rgba(0,0,0,.36), inset 0 0 40px rgba(68,240,201,.03); backdrop-filter: blur(18px); }
.terminal-card { display: grid; gap: .6rem; padding: 24px; }
.dash-label { font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(68,240,201,.72); }
.terminal-card code { color: #e9fffa; font-family: var(--mono); font-size: .88rem; }
.terminal-card .muted-code { color: rgba(233,255,250,.48); }
.dash-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.metric-card { padding: 22px; }
.metric-card span, .metric-card small { display: block; color: rgba(233,255,250,.55); font-family: var(--mono); text-transform: uppercase; font-size: .72rem; letter-spacing: .12em; }
.metric-card strong { display: block; margin: .2rem 0; font-family: Unbounded, Inter, sans-serif; font-size: clamp(3rem, 8vw, 5.6rem); line-height: 1; color: #44f0c9; }
.graph-card { height: 150px; display: flex; align-items: end; gap: 12px; padding: 20px; }
.graph-card span { flex: 1; border-radius: 12px 12px 4px 4px; background: linear-gradient(to top, rgba(68,240,201,.18), #44f0c9); min-height: 24%; animation: bars 2.8s ease-in-out infinite; }
.graph-card span:nth-child(2) { min-height: 64%; animation-delay: -.7s; }
.graph-card span:nth-child(3) { min-height: 38%; animation-delay: -1.1s; }
.graph-card span:nth-child(4) { min-height: 82%; animation-delay: -.4s; }
.graph-card span:nth-child(5) { min-height: 52%; animation-delay: -1.6s; }
.atlas-holding { background: #020809; }

/* Birds world */
.birds-body { --world-accent: #d7a95b; background: #edf1df; color: #13241a; }
.birds-body p { color: rgba(19,36,26,.68); }
.birds-body .brand, .birds-body .main-nav a { color: #13241a; }
.birds-body .site-header.is-scrolled { background: rgba(237,241,223,.78); border-color: rgba(19,36,26,.12); }
.birds-body .main-nav a:hover { color: #13241a; border-color: rgba(19,36,26,.18); background: rgba(255,255,255,.26); }
.birds-body .main-nav a::before { background: #13241a; }
.birds-body .main-nav a::after { color: #edf1df; }
.birds-hero { min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, .95fr) minmax(300px, 480px); gap: clamp(24px, 5vw, 76px); align-items: center; padding: clamp(54px, 8vw, 112px) clamp(18px, 6vw, 84px); background: radial-gradient(circle at 82% 14%, rgba(215,169,91,.34), transparent 24rem), radial-gradient(circle at 15% 80%, rgba(66,112,70,.2), transparent 22rem), linear-gradient(135deg, #eef2de, #d7e1bd); overflow: hidden; }
.birds-copy h1 { font-family: Newsreader, Georgia, serif; max-width: 850px; color: #13241a; font-size: clamp(3.6rem, 9vw, 9rem); letter-spacing: -.075em; }
.birds-copy p:not(.world-label) { max-width: 630px; font-family: "Libre Baskerville", Georgia, serif; font-size: clamp(1.03rem, 1.6vw, 1.25rem); }
.birds-body .world-label { color: #587741; }
.leaf-button { color: #13241a; border-color: rgba(19,36,26,.16); background: rgba(255,255,255,.36); }
.field-card { position: relative; border: 1px solid rgba(19,36,26,.16); border-radius: 34px; background: rgba(255,253,236,.58); box-shadow: 0 28px 100px rgba(47,65,34,.16); padding: clamp(28px, 5vw, 46px); overflow: hidden; }
.field-card::before { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(19,36,26,.12); border-radius: 22px; pointer-events: none; }
.bird-illustration { position: relative; height: 240px; margin-bottom: 1rem; }
.bird-body { position: absolute; left: 28%; top: 38%; width: 180px; height: 90px; border-radius: 58% 42% 48% 52%; background: linear-gradient(135deg, #243d29, #6b7f3f); }
.bird-wing { position: absolute; left: 36%; top: 44%; width: 92px; height: 58px; border-radius: 60% 30% 70% 40%; background: #d7a95b; transform: rotate(-10deg); }
.bird-head { position: absolute; left: 62%; top: 29%; width: 62px; height: 62px; border-radius: 50%; background: #243d29; }
.bird-beak { position: absolute; left: calc(62% + 54px); top: 43%; width: 42px; height: 20px; background: #c26d3d; clip-path: polygon(0 0, 100% 50%, 0 100%); }
.bird-tail { position: absolute; left: 18%; top: 46%; width: 78px; height: 38px; background: #1d3323; clip-path: polygon(0 10%, 100% 0, 75% 100%, 12% 72%); }
.bird-leg { position: absolute; bottom: 30px; width: 3px; height: 50px; background: #5c3e25; }
.bird-leg.one { left: 48%; }
.bird-leg.two { left: 56%; }
.species-label { margin-bottom: .6rem; font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: #587741; }
.field-card h2 { color: #13241a; font-family: Newsreader, Georgia, serif; font-size: clamp(2.8rem, 6vw, 5.2rem); }
.field-card dl { display: grid; gap: .8rem; margin: 0; }
.field-card dl div { display: flex; justify-content: space-between; gap: 1rem; padding-top: .8rem; border-top: 1px solid rgba(19,36,26,.12); }
.field-card dt { font-family: var(--mono); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: rgba(19,36,26,.48); }
.field-card dd { margin: 0; color: #13241a; font-weight: 700; }
.birds-holding { background: #13241a; }

/* Sport world */
.sport-body { --world-accent: #ff6841; background: #0d1017; }
.sport-hero { position: relative; min-height: calc(100vh - 76px); display: grid; grid-template-columns: minmax(0, .9fr) minmax(300px, .78fr); gap: clamp(24px, 5vw, 76px); align-items: center; padding: clamp(54px, 8vw, 110px) clamp(18px, 5vw, 72px); overflow: hidden; background: radial-gradient(circle at 80% 18%, rgba(255,104,65,.24), transparent 24rem), linear-gradient(135deg, #0d1017, #161922 50%, #2c1417); }
.track-lines { position: absolute; inset: 0; opacity: .16; background: repeating-linear-gradient(100deg, transparent 0 54px, rgba(255,255,255,.8) 55px 56px, transparent 57px 110px); transform: skewY(-8deg) translateY(6%); }
.sport-copy h1 { font-family: "Bebas Neue", Impact, sans-serif; font-size: clamp(5rem, 16vw, 16rem); letter-spacing: -.035em; line-height: .78; color: #fff; text-shadow: 0 18px 60px rgba(0,0,0,.48); }
.sport-copy p:not(.world-label) { max-width: 620px; font-size: clamp(1.03rem, 1.6vw, 1.24rem); color: rgba(255,255,255,.7); }
.sport-button { color: #fff; border-color: rgba(255,104,65,.42); background: rgba(255,104,65,.14); }
.sport-board { display: grid; gap: 16px; }
.pace-card, .belt-card, .tri-card { position: relative; overflow: hidden; border: 1px solid rgba(255,255,255,.14); border-radius: 28px; background: rgba(255,255,255,.08); backdrop-filter: blur(14px); padding: clamp(24px, 4vw, 34px); box-shadow: 0 28px 100px rgba(0,0,0,.22); }
.pace-card span, .belt-card span, .tri-card span { display: block; font-family: var(--mono); font-size: .74rem; letter-spacing: .13em; text-transform: uppercase; color: rgba(255,255,255,.55); }
.pace-card strong, .belt-card strong, .tri-card strong { display: block; margin: .25rem 0; font-family: "Bebas Neue", Impact, sans-serif; font-size: clamp(3rem, 8vw, 6.2rem); line-height: .9; color: #fff; letter-spacing: -.02em; }
.pace-card small, .belt-card small, .tri-card small { color: rgba(255,255,255,.52); font-family: var(--mono); text-transform: uppercase; letter-spacing: .08em; }
.belt-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 10px; background: #ff6841; }
.tri-card::after { content: ""; position: absolute; inset: auto 22px 22px; height: 4px; border-radius: 999px; background: linear-gradient(90deg, #4eb3ff, #ff6841, #fff); }
.sport-holding { background: #0d1017; }

[data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .62s ease, transform .62s cubic-bezier(.2, .8, .2, 1); transition-delay: var(--delay, 0ms); }
[data-reveal].is-visible { opacity: 1; transform: translateY(0); }

@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .4; transform: scale(.72); } }
@keyframes fogDrift { from { transform: translateX(-3%); } to { transform: translateX(3%); } }
@keyframes bars { 0%, 100% { transform: scaleY(.8); opacity: .7; } 50% { transform: scaleY(1.08); opacity: 1; } }

@media (max-width: 980px) {
  .hero-grid, .section-heading, .about-teaser, .about-layout, .split-section, .viking-hero, .thoughts-hero, .atlas-hero, .birds-hero, .sport-hero { grid-template-columns: 1fr; }
  .world-card:nth-child(n) { grid-column: 1 / -1; }
  .world-grid { grid-template-columns: 1fr; }
  .viking-character { min-height: 480px; }
  .dashboard-stack, .sport-board, .field-card { max-width: 620px; }
}
@media (max-width: 700px) {
  .site-header { align-items: flex-start; flex-direction: column; }
  .main-nav { width: 100%; justify-content: space-between; gap: .3rem; font-size: .68rem; }
  .main-nav a { padding: .62rem .58rem; }
  h1 { font-size: clamp(3.25rem, 18vw, 5.8rem); }
  .world-card { min-height: 360px; }
  .site-footer, .world-footer, .world-holding { flex-direction: column; align-items: flex-start; }
  .world-holding div { justify-content: flex-start; }
  .dash-row { grid-template-columns: 1fr; }
  .viking-character figcaption { right: auto; left: 0; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  body, [data-reveal] { opacity: 1; transform: none; }
}


/* Viking world - expanded page */
.viking-main {
  background:
    radial-gradient(circle at 72% 12%, rgba(216,163,95,.14), transparent 22rem),
    radial-gradient(circle at 14% 78%, rgba(97,72,51,.16), transparent 22rem),
    linear-gradient(180deg, #060505 0%, #090807 22%, #0f0b09 58%, #080706 100%);
}
.runic-accent {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  font-family: "Noto Sans Runic", "Segoe UI Symbol", serif;
  font-size: .95em;
  letter-spacing: .08em;
  opacity: .9;
}
.runic-accent::after,
.runic-accent::before {
  content: "";
  width: 32px;
  height: 1px;
  background: linear-gradient(90deg, transparent, currentColor, transparent);
  opacity: .55;
}
.viking-hero {
  min-height: calc(100vh - 76px);
  grid-template-columns: minmax(0, 1.06fr) minmax(340px, .94fr);
  gap: clamp(28px, 6vw, 96px);
  padding-top: clamp(68px, 10vw, 124px);
  padding-bottom: clamp(76px, 12vw, 140px);
}
.viking-stars {
  position: absolute;
  inset: 0;
  z-index: -5;
  background-image:
    radial-gradient(circle at 15% 20%, rgba(255,255,255,.7) 0 1px, transparent 1.5px),
    radial-gradient(circle at 26% 32%, rgba(255,255,255,.45) 0 1px, transparent 1.5px),
    radial-gradient(circle at 42% 16%, rgba(255,255,255,.65) 0 1.2px, transparent 1.7px),
    radial-gradient(circle at 62% 26%, rgba(255,255,255,.35) 0 1px, transparent 1.5px),
    radial-gradient(circle at 78% 14%, rgba(255,255,255,.75) 0 1px, transparent 1.5px),
    radial-gradient(circle at 88% 30%, rgba(255,255,255,.42) 0 1.3px, transparent 1.8px);
  opacity: .58;
}
.viking-settlement {
  position: absolute;
  inset: auto 8% 16% 34%;
  height: 20%;
  z-index: -3;
  filter: blur(.2px);
  opacity: .9;
}
.viking-settlement::before,
.viking-settlement::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background-repeat: no-repeat;
}
.viking-settlement::before {
  height: 100%;
  background-image:
    linear-gradient(#0f0a09, #0f0a09), linear-gradient(#0f0a09, #0f0a09), linear-gradient(#0f0a09, #0f0a09),
    linear-gradient(#0f0a09, #0f0a09), linear-gradient(#0f0a09, #0f0a09), linear-gradient(#0f0a09, #0f0a09),
    linear-gradient(#0f0a09, #0f0a09);
  background-size: 10% 34%, 12% 38%, 11% 28%, 14% 42%, 12% 31%, 10% 36%, 16% 26%;
  background-position: 4% 100%, 18% 100%, 34% 100%, 50% 100%, 67% 100%, 80% 100%, 95% 100%;
}
.viking-settlement::after {
  height: 120%;
  background-image:
    linear-gradient(transparent 0 58%, rgba(235,188,116,.48) 58% 60%, transparent 60%),
    linear-gradient(transparent 0 44%, rgba(235,188,116,.42) 44% 46%, transparent 46%),
    linear-gradient(transparent 0 61%, rgba(235,188,116,.35) 61% 63%, transparent 63%);
  background-size: 30% 100%, 24% 100%, 22% 100%;
  background-position: 24% 0, 57% 0, 80% 0;
  filter: blur(7px);
  opacity: .8;
}
.viking-road {
  position: absolute;
  inset: auto 18% 0 52%;
  z-index: -2;
  height: 58%;
  background: linear-gradient(to top, rgba(29,21,16,.98), rgba(29,21,16,.52) 36%, transparent 82%);
  clip-path: polygon(43% 0, 57% 0, 100% 100%, 0 100%);
  opacity: .92;
}
.viking-road::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, transparent 48%, rgba(137,105,73,.2) 50%, transparent 52%);
  opacity: .4;
}
.viking-copy { position: relative; z-index: 2; max-width: 780px; }
.viking-copy .world-label {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  padding: .72rem 1rem;
  border: 1px solid rgba(216,163,95,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.04);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.03);
}
.viking-copy h1 {
  margin-top: 1.25rem;
  margin-bottom: 1.2rem;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(4.1rem, 9vw, 8.8rem);
  line-height: .88;
}
.viking-hero-lead {
  max-width: 650px;
  margin-bottom: 1.5rem;
  color: rgba(246,234,216,.84) !important;
  font-family: var(--serif);
  font-size: clamp(1.18rem, 1.9vw, 1.5rem) !important;
}
.viking-copy p:not(.world-label):not(.viking-hero-lead) {
  max-width: 620px;
}
.viking-traveler {
  position: relative;
  min-height: min(72vh, 760px);
  margin: 0;
  display: grid;
  place-items: end center;
  align-self: stretch;
}
.viking-traveler .viking-moon {
  width: clamp(220px, 32vw, 430px);
  top: 9%;
  right: 10%;
  left: auto;
}
.viking-traveler .viking-cloak {
  left: 50%;
  bottom: 10%;
  width: clamp(150px, 18vw, 230px);
  height: 42%;
  border-radius: 50% 50% 12% 12% / 34% 34% 10% 10%;
  background: linear-gradient(90deg, #060505, #14100d 48%, #060505);
  transform: translateX(-50%);
}
.viking-traveler .viking-head {
  left: 50%;
  top: 31%;
  width: 56px;
  height: 62px;
  box-shadow: 0 -9px 0 3px #080706;
  transform: translateX(-50%);
}
.viking-traveler .viking-shoulders {
  left: 50%;
  top: 46%;
  width: clamp(180px, 21vw, 260px);
  height: 72px;
  transform: translateX(-50%);
}
.viking-traveler .viking-axe {
  left: calc(50% + 46px);
  top: 34%;
  width: 8px;
  height: 42%;
  transform: rotate(10deg);
}
.viking-traveler .viking-axe::before {
  top: -6px;
  left: -28px;
  width: 66px;
  height: 48px;
}
.viking-traveler::after {
  content: "";
  position: absolute;
  inset: auto 22% 8% 22%;
  height: 18%;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,.7), transparent 72%);
  filter: blur(14px);
}
.viking-traveler figcaption {
  left: auto;
  right: 2%;
  bottom: 2%;
  text-align: right;
}
.viking-hero-note {
  position: absolute;
  right: clamp(20px, 6vw, 72px);
  bottom: clamp(20px, 5vw, 48px);
  max-width: 380px;
  padding: 1.1rem 1.2rem;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 22px;
  background: rgba(0,0,0,.28);
  backdrop-filter: blur(18px);
  color: rgba(246,234,216,.72);
  font-family: var(--serif);
  font-size: 1rem;
  line-height: 1.5;
  box-shadow: 0 24px 70px rgba(0,0,0,.32);
}
.viking-section {
  max-width: 1280px;
  margin-inline: auto;
  padding: clamp(64px, 8vw, 110px) clamp(18px, 5vw, 72px);
}
.viking-section + .viking-section { padding-top: 0; }
.viking-section-head { max-width: 940px; margin-bottom: clamp(26px, 5vw, 44px); }
.viking-section-head.narrow { max-width: 760px; }
.viking-kicker {
  display: inline-flex;
  align-items: center;
  gap: .8rem;
  margin-bottom: 1rem;
  color: #d8a35f;
  font-family: var(--mono);
  font-size: .78rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.viking-kicker::before {
  content: "ᚱ";
  font-family: "Noto Sans Runic", serif;
  font-size: 1rem;
  line-height: 1;
}
.viking-section-head h2 {
  margin-bottom: 1rem;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(2.5rem, 5vw, 5.2rem);
  color: #f6ead8;
  letter-spacing: -.06em;
}
.viking-section-head > p:last-child {
  max-width: 740px;
  color: rgba(246,234,216,.66);
  font-size: clamp(1rem, 1.5vw, 1.18rem);
}
.viking-prose {
  display: grid;
  gap: 1rem;
  max-width: 860px;
}
.viking-prose p {
  margin: 0;
  color: rgba(246,234,216,.76);
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.45vw, 1.18rem);
  line-height: 1.86;
}
.viking-gallery-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 28px);
}
.viking-shot {
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 30px;
  background: rgba(255,255,255,.04);
  box-shadow: 0 26px 80px rgba(0,0,0,.24);
}
.viking-shot-media {
  position: relative;
  min-height: 360px;
  background-image:
    linear-gradient(180deg, rgba(7,5,4,.16), rgba(7,5,4,.74)),
    var(--shot-image, none),
    radial-gradient(circle at 74% 18%, rgba(216,163,95,.32), transparent 16rem),
    linear-gradient(180deg, #171210 0%, #0b0908 100%);
  background-size: cover;
  background-position: center;
  overflow: hidden;
}
.viking-shot-media::before,
.viking-shot-media::after {
  content: "";
  position: absolute;
  pointer-events: none;
}
.viking-shot-media::before {
  inset: auto 0 0 0;
  height: 45%;
  background: linear-gradient(to top, rgba(0,0,0,.72), transparent);
}
.viking-shot-media::after {
  inset: 18px;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
}
.viking-shot .shot-label {
  position: absolute;
  left: 22px;
  top: 20px;
  padding: .48rem .7rem;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 999px;
  background: rgba(0,0,0,.26);
  color: rgba(246,234,216,.72);
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.viking-shot figcaption {
  display: grid;
  gap: .3rem;
  padding: 1.05rem 1.2rem 1.3rem;
}
.viking-shot figcaption strong {
  color: #f6ead8;
  font-size: 1.15rem;
}
.viking-shot figcaption span {
  color: rgba(246,234,216,.6);
  font-size: .96rem;
}
.shot-road .viking-shot-media::before { box-shadow: inset 0 -90px 100px rgba(0,0,0,.66); }
.shot-road .viking-shot-media .road-strip,
.shot-back .viking-shot-media .road-strip {
  position: absolute;
  inset: auto 18% 0;
  height: 52%;
  background: linear-gradient(to top, rgba(36,28,22,.96), rgba(36,28,22,.28) 38%, transparent 86%);
  clip-path: polygon(45% 0, 55% 0, 100% 100%, 0 100%);
}
.shot-road .viking-shot-media .settlement-mini,
.shot-back .viking-shot-media .settlement-mini {
  position: absolute;
  inset: auto 18% 50% 38%;
  height: 12%;
  background: repeating-linear-gradient(90deg, rgba(20,15,12,.94) 0 22px, transparent 22px 36px);
  opacity: .84;
}
.shot-road .viking-shot-media .walker,
.shot-back .viking-shot-media .walker,
.shot-profile .viking-shot-media .walker {
  position: absolute;
  width: 54px;
  height: 138px;
  background: linear-gradient(180deg, rgba(11,9,8,.2), rgba(6,6,6,.94));
  clip-path: polygon(46% 0, 59% 0, 69% 18%, 68% 33%, 82% 61%, 77% 100%, 61% 100%, 54% 68%, 47% 68%, 40% 100%, 23% 100%, 18% 61%, 32% 33%, 30% 17%);
  filter: drop-shadow(0 14px 18px rgba(0,0,0,.66));
}
.shot-road .walker { left: 47%; bottom: 18%; }
.shot-back .walker { left: 44%; bottom: 18%; transform: scale(1.08); }
.shot-profile .walker { right: 18%; bottom: 16%; height: 148px; transform: scaleX(.88); }
.shot-profile .viking-shot-media {
  background-position: right center;
}
.shot-profile .viking-shot-media::before {
  inset: auto 0 0 auto;
  width: 72%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,.18) 10%, rgba(0,0,0,.72));
}
.shot-profile .embers {
  position: absolute;
  inset: 0;
  background-image:
    radial-gradient(circle at 62% 22%, rgba(216,163,95,.58) 0 2px, transparent 3px),
    radial-gradient(circle at 70% 34%, rgba(216,163,95,.4) 0 1.5px, transparent 2.5px),
    radial-gradient(circle at 65% 48%, rgba(216,163,95,.35) 0 1.5px, transparent 2px);
  opacity: .8;
}
.viking-character-grid {
  display: grid;
  grid-template-columns: minmax(280px, 340px) minmax(0, 1fr);
  gap: clamp(24px, 5vw, 54px);
  align-items: start;
}
.character-card {
  position: sticky;
  top: 104px;
  display: grid;
  gap: 1rem;
  padding: clamp(24px, 4vw, 34px);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px;
  background: rgba(255,255,255,.04);
  box-shadow: 0 24px 70px rgba(0,0,0,.24);
}
.character-card strong {
  color: #f6ead8;
  font-family: Cinzel, Georgia, serif;
  font-size: clamp(2rem, 4vw, 2.8rem);
  letter-spacing: -.05em;
}
.character-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: .75rem;
}
.character-card li {
  display: grid;
  gap: .2rem;
  padding-top: .75rem;
  border-top: 1px solid rgba(255,255,255,.08);
}
.character-card small {
  color: rgba(246,234,216,.46);
  font-family: var(--mono);
  font-size: .72rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.character-card span { color: rgba(246,234,216,.82); }
.viking-excerpt .excerpt-frame {
  position: relative;
  padding: clamp(26px, 5vw, 42px);
  border: 1px solid rgba(216,163,95,.18);
  border-radius: 34px;
  background: linear-gradient(180deg, rgba(22,17,15,.86), rgba(12,10,9,.92));
  box-shadow: 0 32px 90px rgba(0,0,0,.28), inset 0 0 90px rgba(216,163,95,.05);
}
.excerpt-frame::before {
  content: "ᚨ";
  position: absolute;
  top: 18px;
  right: 22px;
  color: rgba(216,163,95,.28);
  font-family: "Noto Sans Runic", serif;
  font-size: 2.2rem;
}
.excerpt-frame p {
  margin: 0 0 1.05rem;
  max-width: 860px;
  color: rgba(246,234,216,.82);
  font-family: "Libre Baskerville", Georgia, serif;
  font-size: clamp(1rem, 1.35vw, 1.12rem);
  line-height: 1.95;
}
.excerpt-frame p:first-child {
  color: #f6ead8;
  font-size: clamp(1.18rem, 1.9vw, 1.42rem);
}
.viking-holding {
  background: linear-gradient(180deg, rgba(7,7,7,0), #060505 20%);
}

@media (max-width: 980px) {
  .viking-gallery-grid,
  .viking-character-grid {
    grid-template-columns: 1fr;
  }
  .viking-hero-note {
    position: relative;
    right: auto;
    bottom: auto;
    margin-top: 1rem;
    max-width: 100%;
  }
  .character-card {
    position: static;
  }
}
@media (max-width: 700px) {
  .runic-accent::before,
  .runic-accent::after { width: 18px; }
  .viking-copy .world-label { border-radius: 22px; }
  .viking-shot-media { min-height: 300px; }
  .viking-road { inset: auto 6% 0 38%; }
  .viking-settlement { inset: auto 2% 18% 24%; }
  .viking-traveler figcaption { display: none; }
}

/* Viking world — Nordhavn rework */
.viking-body { background: #060708; color: #ede6d8; }
.viking-body::before { opacity: .16; background-image: radial-gradient(rgba(238,224,197,.16) .65px, transparent .75px); background-size: 5px 5px; mask-image: linear-gradient(to bottom, black, transparent 90%); }
.viking-body .site-header { color: #ede6d8; }
.viking-body .brand, .viking-body .main-nav a { color: rgba(237,230,216,.78); }
.viking-body .main-nav a:hover { color: #fff8e8; background: rgba(255,255,255,.05); border-color: rgba(226,188,128,.32); }
.viking-body .site-header.is-scrolled { background: rgba(6,7,8,.78); border-color: rgba(226,188,128,.12); }
.viking-main { overflow: clip; background: radial-gradient(ellipse at 80% 10%, rgba(119,79,39,.15), transparent 31rem), linear-gradient(#07090a 0%, #10100e 34%, #08090a 100%); }
.viking-hero { min-height: max(800px, calc(100vh - 72px)); grid-template-columns: minmax(0, .96fr) minmax(360px, .86fr); padding: clamp(76px, 11vw, 144px) clamp(22px, 6vw, 96px) clamp(130px, 14vw, 180px); gap: clamp(18px, 5vw, 90px); background: #090b0d; }
.viking-hero::before { content:""; position:absolute; inset:0; z-index:-1; background: linear-gradient(90deg, rgba(4,6,8,.91) 0%, rgba(4,6,8,.55) 43%, rgba(4,6,8,.14) 76%), linear-gradient(0deg, #08090a 0%, transparent 38%, rgba(4,5,8,.3) 100%); pointer-events:none; }
.viking-sky { z-index:-8; background: radial-gradient(circle at 67% 23%, rgba(226,191,138,.42) 0 2%, rgba(178,137,90,.16) 11%, transparent 28%), linear-gradient(180deg, #111b25 0%, #2e292a 41%, #100f0e 80%); transform: translate3d(0, calc(var(--hero-scroll, 0px) * -.08), 0) !important; }
.viking-stars { z-index:-7; opacity:.42; transform: translate3d(0, calc(var(--hero-scroll, 0px) * -.14), 0) !important; }
.viking-hero-land { position:absolute; inset: 0; z-index:-6; background: linear-gradient(90deg, rgba(4,6,8,.7), rgba(4,6,8,.08) 62%), url('../worlds/vikinger-buch/media/ChatGPT%20Image%2010.%20Aug.%202026%2C%2020_33_13.png') center 50% / cover; opacity:.62; filter: saturate(.65) contrast(1.06) brightness(.66); transform: scale(1.08) translate3d(0, calc(var(--hero-scroll, 0px) * -.12), 0) !important; }
.viking-settlement { z-index:-4; opacity:.22; mix-blend-mode:screen; transform: translate3d(0, calc(var(--hero-scroll, 0px) * -.22), 0) !important; }
.viking-road { z-index:-2; opacity:.72; transform: translate3d(0, calc(var(--hero-scroll, 0px) * -.36), 0) !important; }
.viking-fog { z-index:-1; mix-blend-mode:screen; transform: translate3d(0, calc(var(--hero-scroll, 0px) * -.46), 0) !important; }
.viking-fog-a { opacity:.34; bottom:16%; } .viking-fog-b { opacity:.22; bottom:-2%; }
.viking-rune-circle { position:absolute; right:clamp(4%,8vw,12%); top:clamp(92px,14vh,180px); width:clamp(210px,25vw,355px); aspect-ratio:1; z-index:-1; display:grid; place-items:center; border:1px solid rgba(225,185,122,.18); border-radius:50%; color:rgba(238,203,146,.24); font: clamp(.78rem,1.4vw,1.15rem) "Noto Sans Runic", sans-serif; letter-spacing:.2em; writing-mode:vertical-rl; text-shadow:0 0 24px rgba(225,181,108,.35); animation: runePulse 7s ease-in-out infinite; }
.viking-rune-circle::before, .viking-rune-circle::after { content:""; position:absolute; inset:12%; border:1px solid rgba(225,185,122,.1); border-radius:50%; } .viking-rune-circle::after { inset:31%; border-style:dashed; }
.viking-copy { z-index:3; max-width:700px; }
.viking-copy .world-label { color:#e3bd82; border-color:rgba(221,178,111,.28); background:rgba(7,9,10,.28); backdrop-filter: blur(8px); }
.viking-copy h1 { color:#f5eee0; font-size:clamp(4.4rem,9.5vw,10rem); text-wrap:balance; text-shadow:0 4px 30px rgba(0,0,0,.62); }
.viking-hero-lead { max-width:620px; color:#f2e5cd !important; font-size:clamp(1.25rem,2vw,1.65rem) !important; line-height:1.35; }
.viking-copy p:not(.world-label) { color:rgba(237,230,216,.75); }
.viking-text-link { display:inline-flex; align-items:center; gap:.65rem; color:#e9cb98; font:600 .8rem var(--mono); letter-spacing:.08em; text-transform:uppercase; transition:gap .2s ease, color .2s ease; }
.viking-text-link:hover { gap:1rem; color:#fff1d4; }
.viking-body .world-button { border-color:rgba(227,190,130,.35); background:rgba(227,190,130,.1); color:#f8edda; } .viking-body .world-button:hover { background:#dfb875; color:#16110c; }
.viking-traveler { min-height:610px; height:min(74vh,820px); overflow:visible; isolation:isolate; align-self:end; }
.viking-traveler::before { content:""; position:absolute; inset:6% -9% 0 -9%; z-index:-1; background:radial-gradient(ellipse at 50% 82%, rgba(0,0,0,.85), transparent 60%); filter:blur(15px); }
.viking-traveler::after { inset:auto 7% 3% 7%; height:20%; z-index:0; }
.viking-traveler img { width:100%; height:100%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 26px 28px rgba(0,0,0,.72)) saturate(.74) contrast(1.1); mix-blend-mode:lighten; mask-image:linear-gradient(to bottom, transparent 0%, black 12%, black 79%, transparent 100%); }
.viking-traveler figcaption { right:1%; bottom:1%; z-index:1; color:rgba(239,224,197,.52); }
.viking-hero-note { right:clamp(22px,6vw,96px); bottom:clamp(38px,7vw,92px); max-width:360px; border-radius:0; border-left:2px solid rgba(225,182,111,.46); border-top:0; border-right:0; border-bottom:0; background:linear-gradient(90deg,rgba(7,8,8,.56),transparent); box-shadow:none; padding:1rem 1.2rem; }
.viking-hero-note .runic-accent { margin-right:.45rem; color:#dfb875; font-family:"Noto Sans Runic"; }
.viking-scroll-cue { position:absolute; left:clamp(22px,6vw,96px); bottom:clamp(32px,4vw,58px); display:grid; justify-items:center; gap:.65rem; color:rgba(239,224,197,.54); font: .66rem var(--mono); letter-spacing:.14em; text-transform:uppercase; } .viking-scroll-cue i { width:1px; height:39px; background:linear-gradient(#dcb477, transparent); animation:scrollLine 1.9s ease-in-out infinite; }
.viking-section { max-width:1360px; padding:clamp(92px,12vw,170px) clamp(22px,6vw,96px); }
.viking-section + .viking-section { padding-top:0; }
.viking-section-head h2, .viking-nordhavn-copy h2 { color:#f2eadd; font-family:Cinzel,Georgia,serif; text-wrap:balance; }
.viking-kicker { color:#dcae6d; } .viking-kicker::before { content:"ᚱ"; font-family:"Noto Sans Runic",sans-serif; }
.viking-prose p { color:rgba(235,228,215,.77); font-family:var(--serif); font-size:clamp(1.05rem,1.5vw,1.2rem); }
.viking-intro-title { max-width:660px; margin-left:auto; text-align:right; }
.viking-portrait-panel { display:grid; grid-template-columns:minmax(290px,.78fr) minmax(0,1fr); min-height:620px; border-top:1px solid rgba(225,185,122,.25); border-bottom:1px solid rgba(225,185,122,.18); }
.viking-portrait-image { min-height:530px; background-image:url('../worlds/vikinger-buch/media/ChatGPT%20Image%2010.%20Aug.%202026%2C%2020_24_33.png'); background-position:center; background-size:contain; background-repeat:no-repeat; filter:saturate(.62) contrast(1.05); }
.viking-portrait-copy { align-self:center; padding:clamp(42px,7vw,98px); border-left:1px solid rgba(225,185,122,.18); }
.viking-rune-line { color:rgba(224,181,109,.77) !important; font:1rem "Noto Sans Runic",sans-serif !important; letter-spacing:.26em; }
.viking-dropcap { color:#f0e5d2 !important; font-size:clamp(1.38rem,2.2vw,1.8rem) !important; line-height:1.52 !important; } .viking-dropcap::first-letter { color:#e2b773; float:left; margin:.11em .15em 0 0; font-family:Cinzel,serif; font-size:3.8em; line-height:.7; }
.viking-traits { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:2.5rem 0 0; padding-top:1.2rem; border-top:1px solid rgba(225,185,122,.18); } .viking-traits div { display:grid; gap:.25rem; } .viking-traits dt { color:rgba(234,220,195,.44); font:.67rem var(--mono); letter-spacing:.13em; text-transform:uppercase; } .viking-traits dd { margin:0; color:#e6d8c0; font-family:var(--serif); }
.viking-nordhavn { display:grid; grid-template-columns:minmax(280px,.95fr) minmax(0,1.05fr); gap:clamp(38px,8vw,130px); align-items:center; }
.viking-nordhavn-visual { position:relative; min-height:650px; overflow:hidden; border:1px solid rgba(225,185,122,.18); }
.viking-nordhavn-image { position:absolute; inset:0; background:linear-gradient(0deg,rgba(6,8,9,.72),transparent 57%), url('../worlds/vikinger-buch/media/ChatGPT%20Image%2010.%20Aug.%202026%2C%2020_30_25.png') center / cover; filter:saturate(.65) contrast(1.08) brightness(.78); transition:transform 1.2s cubic-bezier(.2,.8,.2,1); } .viking-nordhavn-visual:hover .viking-nordhavn-image { transform:scale(1.05); }
.viking-nordhavn-mist { position:absolute; inset:auto -15% -5%; height:44%; background:radial-gradient(ellipse at 40% 45%,rgba(221,227,223,.29),transparent 60%); filter:blur(18px); animation:fogDrift 12s ease-in-out infinite alternate; }
.viking-nordhavn-visual p { position:absolute; left:22px; bottom:20px; color:rgba(239,215,174,.72); font:1.1rem "Noto Sans Runic"; letter-spacing:.35em; }
.viking-nordhavn-copy h2 { margin-bottom:1rem; font-size:clamp(4rem,7vw,7.6rem); line-height:.84; }
.viking-nordhavn-lead { color:#f0e2cb !important; max-width:600px; font:clamp(1.28rem,2vw,1.7rem) var(--serif); line-height:1.36; }
.viking-essay { max-width:1020px; padding-bottom:clamp(112px,14vw,190px); } .viking-essay .viking-prose { border-left:1px solid rgba(225,185,122,.22); padding-left:clamp(20px,4vw,52px); }
.viking-excerpt { max-width:1150px; } .viking-excerpt .excerpt-frame { border-radius:0; border-color:rgba(224,180,110,.23); background:radial-gradient(circle at 90% 0%,rgba(190,135,71,.12),transparent 23rem),#0d0e0e; box-shadow:inset 0 0 100px rgba(0,0,0,.44); }
.excerpt-frame::before { content:"ᚨ"; color:rgba(220,174,105,.36); font-family:"Noto Sans Runic"; } .excerpt-frame p { color:rgba(237,228,214,.83); }
@keyframes runePulse { 0%,100% { transform:scale(.98); opacity:.55; } 50% { transform:scale(1.03); opacity:1; } } @keyframes scrollLine { 0%,100% { transform:scaleY(.45); transform-origin:top; opacity:.45; } 50% { transform:scaleY(1); transform-origin:top; opacity:1; } }
@media (max-width:980px) { .viking-hero { grid-template-columns:1fr; min-height:960px; } .viking-copy { max-width:680px; } .viking-traveler { position:absolute; right:-7%; bottom:10%; width:min(62vw,560px); height:580px; opacity:.8; } .viking-hero-note { max-width:310px; } .viking-portrait-panel,.viking-nordhavn { grid-template-columns:1fr; } .viking-intro-title { margin-left:0; text-align:left; } .viking-portrait-copy { border-left:0; border-top:1px solid rgba(225,185,122,.18); } .viking-nordhavn-visual { min-height:480px; } }
@media (max-width:700px) { .viking-hero { min-height:800px; padding-top:78px; padding-bottom:110px; } .viking-copy h1 { font-size:clamp(4rem,18vw,6.3rem); } .viking-traveler { right:-23%; bottom:7%; width:90vw; height:430px; opacity:.63; } .viking-rune-circle { right:-55px; top:120px; width:220px; } .viking-hero-note { display:none; } .viking-scroll-cue { bottom:24px; } .viking-portrait-copy { padding:38px 24px; } .viking-portrait-image { min-height:400px; } .viking-traits { grid-template-columns:1fr; } .viking-nordhavn-visual { min-height:370px; } .viking-nordhavn-copy h2 { font-size:4.4rem; } .viking-section { padding-inline:22px; } }
@media (prefers-reduced-motion:reduce) { .viking-hero * { animation:none !important; } .viking-sky,.viking-stars,.viking-hero-land,.viking-settlement,.viking-road,.viking-fog { transform:none !important; } }

/* Gedanken quotes and home-world ordering */
.thoughts-body h1,
.thoughts-body h2,
.thoughts-body h3 {
  font-family: "UnifrakturCook", "IM Fell English SC", serif;
  letter-spacing: -.02em;
}
.thoughts-quotes {
  max-width: 1180px;
  margin-inline: auto;
  padding: clamp(20px, 4vw, 52px) clamp(18px, 6vw, 84px) clamp(90px, 11vw, 144px);
}
.thoughts-quotes-heading {
  max-width: 620px;
  margin: 0 0 clamp(30px, 5vw, 58px);
  color: #25130e;
  font-size: clamp(2.7rem, 6vw, 5.8rem);
  line-height: .92;
}
.thoughts-quote-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 30px);
}
.thoughts-quote {
  position: relative;
  min-height: 270px;
  margin: 0;
  padding: clamp(28px, 3.5vw, 44px);
  border: 1px solid rgba(66,35,23,.29);
  background: rgba(255,245,216,.42);
  box-shadow: 9px 12px 0 rgba(91,50,27,.13);
  color: #321b12;
  font: clamp(1.18rem, 1.8vw, 1.55rem)/1.48 "Libre Baskerville", Georgia, serif;
}
.thoughts-quote::before {
  content: "„";
  display: block;
  margin: 0 0 .18em;
  color: rgba(94,36,26,.38);
  font: 5.5rem/.8 "UnifrakturCook", serif;
}
.thoughts-quote:nth-child(2) { transform: translateY(clamp(0px, 1.8vw, 24px)) rotate(-1deg); }
.thoughts-quote:nth-child(3) { transform: rotate(1deg); }
.page-home .world-card:nth-child(1),
.page-home .world-card:nth-child(2) {
  grid-column: span 3;
  min-height: 500px;
}
.page-home .world-card:nth-child(3),
.page-home .world-card:nth-child(4),
.page-home .world-card:nth-child(5) {
  grid-column: span 2;
  min-height: 360px;
}
.world-card :is(a, .world-card-trigger) {
  position: relative;
  display: flex;
  width: 100%;
  min-height: 100%;
  flex-direction: column;
  justify-content: space-between;
  padding: clamp(24px, 4vw, 38px);
  border: 0;
  color: inherit;
  font: inherit;
  text-align: left;
  isolation: isolate;
}
.world-card .world-card-trigger { cursor: pointer; }
.world-card :is(a, .world-card-trigger)::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -2;
  background: var(--world-bg, #222);
}
.world-card :is(a, .world-card-trigger)::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(circle at 20% 15%, rgba(255,255,255,.24), transparent 16rem), linear-gradient(to bottom, rgba(0,0,0,.06), rgba(0,0,0,.56));
  opacity: .95;
}
.coming-soon-dialog {
  width: min(440px, calc(100% - 32px));
  border: 1px solid rgba(23,21,18,.2);
  border-radius: 24px;
  padding: 0;
  color: var(--text);
  background: #f4efe6;
  box-shadow: 0 28px 100px rgba(0,0,0,.35);
}
.coming-soon-dialog::backdrop { background: rgba(16,15,13,.58); backdrop-filter: blur(5px); }
.coming-soon-dialog form { padding: clamp(30px, 6vw, 48px); }
.coming-soon-dialog h2 { margin-bottom: .85rem; font-size: clamp(2.2rem, 6vw, 3.3rem); }
.coming-soon-dialog p { margin-bottom: 1.8rem; color: var(--muted); font-size: 1.05rem; }
.coming-soon-dialog .button { cursor: pointer; }
.coming-soon-close { position: absolute; top: 12px; right: 14px; border: 0; padding: .55rem; background: transparent; color: var(--text); font: 700 .75rem var(--sans); cursor: pointer; }
@media (max-width: 980px) {
  .page-home .world-card:nth-child(n) { grid-column: 1 / -1; min-height: 400px; }
  .thoughts-quote-grid { grid-template-columns: 1fr; }
  .thoughts-quote:nth-child(n) { transform: none; }
}

/* Quote cards: keep short and long quotes visually balanced. */
.thoughts-quote {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.thoughts-body ::selection {
  color: #25130e;
  background: rgba(180,126,68,.35);
}

/* Birdspotting — personal field log */
.birds-body { background:#d4b895; color:#263a2c; }
.birds-body::before { opacity:.18; background-image:radial-gradient(rgba(31,54,39,.22) .7px,transparent .8px); background-size:6px 6px; }
.birds-body .site-header { color:#e8dcc7; }
.birds-body .brand, .birds-body .main-nav a { color:#eef3e7; }
.birds-body .site-header.is-scrolled { background:rgba(35,55,41,.78); border-color:rgba(232,220,199,.18); }
.birds-body .main-nav a:hover { color:#fff; background:rgba(255,255,255,.08); border-color:rgba(232,220,199,.25); }
.birds-main { overflow:clip; background:#d4b895; }
.birds-hero { position:relative; display:block; min-height:max(780px,calc(100vh - 76px)); padding:clamp(80px,11vw,140px) clamp(22px,6vw,96px) clamp(100px,12vw,150px); overflow:hidden; isolation:isolate; background:#263a2c; }
.birds-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(19,37,29,.88) 0%,rgba(19,37,29,.56) 40%,rgba(19,37,29,.1) 76%),linear-gradient(0deg,rgba(16,34,28,.76),transparent 44%); pointer-events:none; }
.bird-hero-background { position:absolute; inset:-8%; z-index:-4; background:url('../worlds/bird-spotting/eisvogel-background.png') center / cover; filter:saturate(.78) contrast(1.06) brightness(.82); transform:scale(1.08) translate3d(0,calc(var(--bird-scroll,0px) * -.14),0) !important; }
.bird-hero-water { position:absolute; inset:auto -10% -5%; z-index:-2; height:44%; background:repeating-radial-gradient(ellipse at 50% 100%,rgba(192,221,209,.32) 0 1px,transparent 2px 20px),linear-gradient(0deg,rgba(82,142,143,.38),transparent); filter:blur(.3px); transform:translate3d(0,calc(var(--bird-scroll,0px) * -.3),0) !important; }
.bird-wordmark { position:absolute; z-index:-1; right:-.08em; top:8%; margin:0; color:rgba(225,235,219,.15); font:clamp(5.7rem,16vw,16rem)/.75 Newsreader,Georgia,serif; letter-spacing:-.09em; transform:translate3d(0,calc(var(--bird-scroll,0px) * -.1),0) !important; pointer-events:none; }
.bird-hero-reeds { position:absolute; bottom:-14%; width:34%; height:60%; z-index:-1; opacity:.62; transform-origin:bottom; background:repeating-linear-gradient(84deg,transparent 0 19px,rgba(25,59,36,.84) 20px 23px,transparent 24px 42px); filter:blur(.2px); }
.bird-hero-reeds-back { left:-8%; transform:translate3d(0,calc(var(--bird-scroll,0px) * -.25),0) rotate(-5deg) !important; }.bird-hero-reeds-front { right:-11%; z-index:4; opacity:.72; transform:translate3d(0,calc(var(--bird-scroll,0px) * -.48),0) rotate(6deg) !important; }
.birds-copy { position:relative; z-index:3; max-width:710px; transform:translate3d(0,calc(var(--bird-scroll,0px) * -.05),0) !important; }.birds-copy .world-label { color:#d4e0b6; }.birds-copy h1 { max-width:760px; margin-bottom:1.2rem; color:#f0f2e5; font-family:Newsreader,Georgia,serif; font-size:clamp(4.25rem,9vw,9.5rem); line-height:.84; letter-spacing:-.08em; text-shadow:0 5px 25px rgba(8,22,15,.45); }.birds-copy p:not(.world-label) { color:rgba(239,243,231,.83); font-family:"Libre Baskerville",Georgia,serif; font-size:clamp(1.05rem,1.7vw,1.28rem); line-height:1.7; }
.bird-button { display:inline-flex; margin-top:1.8rem; padding:.9rem 1.15rem; border:1px solid rgba(238,243,228,.42); border-radius:999px; color:#f4f4e8; background:rgba(50,91,60,.26); font-weight:700; transition:background .25s ease,color .25s ease,transform .25s ease; }.bird-button:hover { transform:translateY(-2px); color:#263a2c; background:#d7c276; }
.bird-landing { position:absolute; z-index:2; right:clamp(1%,6vw,10%); bottom:clamp(7%,10vh,16%); width:min(59vw,780px); height:min(61vh,620px); margin:0; pointer-events:none; transform:translate3d(0,calc(var(--bird-scroll,0px) * -.36),0) !important; }.bird-landing img { position:absolute; z-index:2; right:3%; bottom:15%; width:100%; height:100%; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 25px 21px rgba(12,31,22,.5)); }.bird-branch { position:absolute; z-index:1; right:-12%; bottom:7%; width:85%; height:50px; border-radius:60% 0 0 60%; background:linear-gradient(10deg,#3c3120,#756346 42%,#322619); transform:rotate(-7deg); box-shadow:inset 0 -8px 7px rgba(10,17,10,.36),0 14px 16px rgba(0,0,0,.3); }.bird-branch::before { content:""; position:absolute; left:22%; bottom:17px; width:140px; height:18px; border-radius:100% 0; background:#3f5f32; transform:rotate(-27deg); }.bird-landing figcaption { position:absolute; right:3%; bottom:-2%; color:rgba(240,243,231,.62); font:.71rem var(--mono); letter-spacing:.1em; text-transform:uppercase; }
.bird-scroll-cue { position:absolute; z-index:5; left:clamp(22px,6vw,96px); bottom:32px; display:grid; justify-items:center; gap:.6rem; color:rgba(240,243,231,.63); font:.65rem var(--mono); letter-spacing:.14em; text-transform:uppercase; }.bird-scroll-cue i { width:1px; height:36px; background:linear-gradient(#d8c781,transparent); animation:scrollLine 1.9s ease-in-out infinite; }
.bird-entry,.bird-wiki,.bird-sound-section { max-width:1320px; margin-inline:auto; padding:clamp(88px,11vw,150px) clamp(22px,6vw,96px); }.bird-entry { background:radial-gradient(circle at 88% 18%,rgba(94,133,93,.2),transparent 24rem); }.bird-entry-heading { max-width:770px; margin-bottom:clamp(36px,6vw,70px); }.bird-kicker { margin-bottom:.85rem; color:#607641; font:.72rem var(--mono); letter-spacing:.13em; text-transform:uppercase; }.bird-entry h2,.bird-wiki h2,.bird-sound-section h2 { margin-bottom:.65rem; color:#263a2c; font-family:Newsreader,Georgia,serif; font-size:clamp(3.8rem,7vw,7.4rem); line-height:.82; letter-spacing:-.07em; }.bird-latin { color:#627250 !important; font:clamp(1.06rem,1.7vw,1.28rem) "Libre Baskerville",Georgia,serif; }.bird-entry-grid { display:grid; grid-template-columns:minmax(310px,.84fr) minmax(0,1fr); gap:clamp(34px,7vw,110px); align-items:center; }.bird-photo { position:relative; min-height:510px; margin:0; border:1px solid rgba(38,58,44,.21); border-radius:0 0 42px 42px; background:rgba(232,220,199,.64); overflow:hidden; }.bird-photo::before { content:""; position:absolute; inset:20px; border:1px solid rgba(38,58,44,.15); pointer-events:none; }.bird-photo img { width:100%; height:470px; object-fit:contain; object-position:center bottom; filter:drop-shadow(0 15px 13px rgba(29,46,31,.22)); }.bird-photo figcaption { padding:0 22px 23px; color:#53634d; font:.82rem var(--mono); line-height:1.5; }.bird-entry-copy { max-width:640px; }.bird-entry-copy p { color:rgba(38,58,44,.76); font:clamp(1.06rem,1.55vw,1.22rem)/1.8 "Libre Baskerville",Georgia,serif; }.bird-lead { color:#263a2c !important; font-size:clamp(1.35rem,2.2vw,1.85rem) !important; line-height:1.45 !important; }.bird-quickfacts { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin:2.2rem 0 0; padding-top:1.25rem; border-top:1px solid rgba(38,58,44,.19); }.bird-quickfacts div { display:grid; gap:.28rem; }.bird-quickfacts dt,.bird-fact-card p { color:#718162; font:.66rem var(--mono); letter-spacing:.11em; text-transform:uppercase; }.bird-quickfacts dd { margin:0; color:#344a38; font:1rem Newsreader,Georgia,serif; }
.bird-wiki { display:grid; grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr); gap:clamp(38px,7vw,120px); background:linear-gradient(100deg,rgba(113,146,93,.2),rgba(232,220,199,.45)); }.bird-wiki-intro p:not(.bird-kicker) { max-width:430px; color:rgba(38,58,44,.74); font:1.05rem/1.7 "Libre Baskerville",Georgia,serif; }.bird-fact-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.bird-fact-card { display:grid; align-content:start; gap:.6rem; min-height:190px; padding:clamp(22px,3vw,34px); border:1px solid rgba(38,58,44,.17); border-radius:22px; background:rgba(232,220,199,.54); }.bird-fact-card strong { color:#2d4936; font:clamp(1.3rem,2vw,1.7rem)/1.14 Newsreader,Georgia,serif; }.bird-fact-card span { color:#5f705a; font:.84rem var(--sans); }.bird-fact-card-wide { grid-column:1 / -1; min-height:150px; }.bird-sound-section { display:grid; grid-template-columns:minmax(0,1fr) minmax(280px,420px); gap:clamp(34px,7vw,110px); align-items:end; }.bird-sound-section > div:first-child p:not(.bird-kicker) { max-width:540px; color:rgba(38,58,44,.7); font:1.05rem/1.7 "Libre Baskerville",Georgia,serif; }.bird-sound-card { padding:30px; border:1px dashed rgba(38,58,44,.31); border-radius:22px; background:rgba(238,229,207,.48); }.bird-wave { display:flex; align-items:center; justify-content:space-between; height:68px; gap:6px; }.bird-wave i { width:8%; border-radius:999px; background:#60939c; }.bird-wave i:nth-child(1),.bird-wave i:nth-child(9){height:19%;}.bird-wave i:nth-child(2),.bird-wave i:nth-child(8){height:44%;}.bird-wave i:nth-child(3),.bird-wave i:nth-child(7){height:68%;}.bird-wave i:nth-child(4),.bird-wave i:nth-child(6){height:37%;}.bird-wave i:nth-child(5){height:92%;}.bird-sound-card span { display:block; margin-top:.8rem; color:#68775f; font:.72rem var(--mono); letter-spacing:.12em; text-transform:uppercase; }.bird-footer { background:#263a2c; }
@media (max-width:980px){.birds-hero{min-height:860px;}.bird-landing{right:-4%;bottom:7%;width:min(76vw,650px);height:510px;opacity:.92;}.bird-entry-grid,.bird-wiki,.bird-sound-section{grid-template-columns:1fr;}.bird-photo{max-width:620px;}.bird-wiki-intro{max-width:580px;}}@media (max-width:700px){.birds-hero{min-height:760px;padding-top:84px;}.birds-copy h1{font-size:clamp(4rem,18vw,6.1rem);}.bird-wordmark{top:14%;font-size:6.5rem;}.bird-landing{right:-23%;bottom:9%;width:115vw;height:390px;opacity:.72;}.bird-landing figcaption{display:none;}.bird-hero-reeds-front{right:-28%;}.bird-entry,.bird-wiki,.bird-sound-section{padding-inline:22px;}.bird-photo{min-height:390px;}.bird-photo img{height:360px;}.bird-quickfacts,.bird-fact-grid{grid-template-columns:1fr;}.bird-fact-card-wide{grid-column:auto;}.bird-entry h2,.bird-wiki h2,.bird-sound-section h2{font-size:4.4rem;}}@media (prefers-reduced-motion:reduce){.birds-hero *{animation:none !important;}.bird-hero-background,.bird-hero-water,.bird-wordmark,.bird-hero-reeds,.birds-copy,.bird-landing{transform:none !important;}}

/* Dungeons & Dragons - private world archive */
.dnd-body { --world-accent:#d8ba63; color:#292c1a; background:#d4b895; }
.dnd-body::before { opacity:.16; background-image:radial-gradient(rgba(53,63,31,.26) .7px,transparent .8px); background-size:7px 7px; }
.dnd-body .site-header { color:#f3ebd8; }
.dnd-body .brand,.dnd-body .main-nav a { color:#f4ecd8; }
.dnd-body .site-header.is-scrolled { background:rgba(32,45,28,.84); border-color:rgba(239,224,187,.2); }
.dnd-body .main-nav a:hover,.dnd-body .main-nav a[aria-current="page"] { color:#fff8e9; border-color:rgba(239,224,187,.28); background:rgba(255,255,255,.08); }
.dnd-main { overflow:hidden; background:#d4b895; }
.dnd-hero { position:relative; min-height:max(660px,calc(100vh - 78px)); padding:clamp(86px,11vw,150px) clamp(22px,6vw,96px) clamp(88px,10vw,136px); isolation:isolate; overflow:hidden; background:radial-gradient(circle at 79% 20%,rgba(202,154,59,.32),transparent 22rem),linear-gradient(135deg,#1f2d1c,#354227 54%,#5f4327); }
.dnd-hero::before,.dnd-hero::after { content:""; position:absolute; pointer-events:none; }
.dnd-hero::before { inset:8% 6%; border:1px solid rgba(241,225,180,.16); border-radius:28px; }
.dnd-hero::after { width:min(46vw,610px); aspect-ratio:1; right:clamp(-130px,-7vw,-50px); bottom:clamp(-150px,-9vw,-80px); border:clamp(20px,3vw,42px) solid rgba(220,186,99,.22); border-radius:50%; box-shadow:0 0 0 1px rgba(241,225,180,.15),0 0 0 clamp(48px,7vw,96px) rgba(26,38,22,.22); }
.dnd-copy { position:relative; z-index:1; max-width:820px; }
.dnd-copy .world-label { color:#dfc474; }
.dnd-copy h1 { max-width:850px; margin-bottom:1.3rem; color:#f6eddb; font-family:Fraunces,Georgia,serif; font-size:clamp(4.8rem,11vw,10rem); font-weight:700; line-height:.78; letter-spacing:-.085em; }
.dnd-copy > p:not(.world-label) { max-width:650px; color:rgba(245,237,218,.82); font-family:Georgia,serif; font-size:clamp(1.1rem,1.8vw,1.38rem); line-height:1.7; }
.dnd-button { color:#f7eedb; border-color:rgba(239,224,187,.35); background:rgba(39,55,31,.42); }
.dnd-button:hover { color:#26321f; border-color:#e7cc79; background:#e7cc79; }
.dnd-status { color:rgba(244,232,199,.7); }
.dnd-archive { position:relative; z-index:1; max-width:1320px; margin-inline:auto; padding:clamp(78px,10vw,136px) clamp(22px,6vw,96px); }
.dnd-archive-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,420px); gap:2rem; align-items:end; margin-bottom:clamp(34px,5vw,64px); }
.dnd-kicker { margin-bottom:.85rem; color:#68733c; font:.72rem var(--mono); letter-spacing:.13em; text-transform:uppercase; }
.dnd-archive h2 { margin-bottom:0; color:#303e28; font-family:Fraunces,Georgia,serif; font-size:clamp(3.6rem,7vw,7.2rem); line-height:.8; letter-spacing:-.08em; }
.dnd-archive-heading > p { margin-bottom:.35rem; color:#596043; font:1.06rem/1.7 Georgia,serif; }
.dnd-empty-worlds { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr); gap:clamp(22px,4vw,54px); padding:clamp(26px,4vw,52px); border:1px solid rgba(48,62,40,.2); border-radius:28px; background:rgba(232,220,199,.7); }
.dnd-empty-worlds h3 { margin-bottom:.85rem; color:#34432c; font-family:Fraunces,Georgia,serif; font-size:clamp(2rem,3.5vw,3.3rem); line-height:.9; }
.dnd-empty-worlds p { max-width:590px; margin-bottom:0; color:#5d6348; font:1.04rem/1.7 Georgia,serif; }
.dnd-archive-note { align-self:end; padding:1.25rem 1.35rem; border-left:2px solid #af703e; color:#5b5438; font:.8rem/1.6 var(--mono); }
.dnd-footer { background:#26351f; }
@media (max-width:760px){.dnd-hero{min-height:620px;}.dnd-hero::before{inset:5% 5%;}.dnd-hero::after{width:84vw;right:-31vw;bottom:-18vw;}.dnd-copy h1{font-size:clamp(4.3rem,19vw,6.8rem);}.dnd-archive{padding-inline:22px;}.dnd-archive-heading,.dnd-empty-worlds{grid-template-columns:1fr;}.dnd-archive-note{align-self:auto;}}
/* Dungeons & Dragons hub additions */
.dnd-hero { background:linear-gradient(90deg,rgba(25,39,22,.93) 0%,rgba(32,49,27,.76) 48%,rgba(48,54,28,.32) 100%),url('../worlds/dungeons-and-dragons/assets/hub/dnd-hub-background.png') center / cover; }
.dnd-category-grid { display:grid; grid-template-columns:minmax(0,1fr); }
.dnd-category-card { min-height:420px; overflow:hidden; border:1px solid rgba(48,62,40,.2); border-radius:28px; background:#e8dcc7; }
.dnd-category-card a { display:grid; grid-template-columns:minmax(250px,.84fr) minmax(0,1.16fr); min-height:100%; color:#303e28; }
.dnd-category-art { min-height:330px; overflow:hidden; background:#8b9d83; }
.dnd-category-art img { width:100%; height:100%; object-fit:cover; filter:saturate(.72) contrast(1.04); transition:transform .45s ease; }
.dnd-category-card:hover .dnd-category-art img { transform:scale(1.04); }
.dnd-category-copy { display:flex; flex-direction:column; justify-content:center; align-items:flex-start; padding:clamp(28px,5vw,64px); }
.dnd-category-copy h3 { color:#33432c; font-family:Fraunces,Georgia,serif; font-size:clamp(2.7rem,5vw,5.6rem); }
.dnd-category-copy p:not(.dnd-kicker) { max-width:610px; color:#596043; font:1.08rem/1.7 Georgia,serif; }
.dnd-category-link { margin-top:1.7rem; color:#5b6635; font:700 .78rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:760px){.dnd-category-card a{grid-template-columns:1fr;}.dnd-category-art{min-height:250px;}.dnd-category-copy{padding:30px 26px;}}

/* Black Jack - Lo-Fi western poster */
.black-jack-body { margin:0; color:#191919; background:#e8e0c0; font-family:Arial,Helvetica,sans-serif; }
.black-jack-body::before { opacity:.18; background-image:radial-gradient(rgba(25,25,25,.3) .7px,transparent .8px); background-size:6px 6px; mix-blend-mode:multiply; }
.black-jack-header { position:absolute; width:100%; color:#e8e0c0; }
.black-jack-header .brand,.black-jack-header .main-nav a { color:#e8e0c0; }
.black-jack-header .site-header.is-scrolled { background:rgba(30,25,18,.88); }
.black-jack-header .main-nav a:hover { color:#e8e0c0; border-color:rgba(232,224,192,.45); background:rgba(232,224,192,.12); }
.black-jack-main { overflow:hidden; }
.black-jack-hero { position:relative; display:grid; align-items:end; min-height:max(720px,100vh); padding:clamp(112px,13vw,166px) clamp(24px,7vw,112px) clamp(52px,7vw,90px); isolation:isolate; overflow:hidden; background:#1e1912; }
.black-jack-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center; filter:sepia(.32) contrast(1.12) saturate(.72); }
.black-jack-hero::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(90deg,rgba(24,20,14,.9) 0%,rgba(24,20,14,.53) 47%,rgba(24,20,14,.08) 76%),linear-gradient(0deg,rgba(24,20,14,.74),transparent 56%); }
.black-jack-hero-copy { max-width:760px; color:#e8e0c0; transform:rotate(-2deg); }
.black-jack-kicker { margin-bottom:.85rem; color:#b6003b; font:700 .78rem Courier,monospace; letter-spacing:.13em; text-transform:uppercase; }
.black-jack-hero .black-jack-kicker { color:#e8e0c0; text-shadow:2px 0 #ff006e,-2px 0 #00ffcc; }
.black-jack-hero h1 { margin-bottom:.2rem; color:#e8e0c0; font-family:"Times New Roman",Times,serif; font-size:clamp(5.2rem,14vw,13rem); font-weight:700; line-height:.72; letter-spacing:-.1em; text-shadow:3px 0 #ff006e,-3px 0 #00ffcc; }
.black-jack-subtitle { margin-bottom:1.25rem; color:#e8e0c0; font:clamp(1.3rem,3vw,2.6rem)/1 "Times New Roman",Times,serif; letter-spacing:.01em; }
.black-jack-lead { max-width:510px; color:rgba(232,224,192,.88); font:1.12rem/1.65 Georgia,"Times New Roman",serif; }
.black-jack-scroll { display:inline-block; margin-top:1.5rem; padding:.72rem 1rem; color:#171717; background:#e8e0c0; font:700 .76rem Courier,monospace; letter-spacing:.07em; text-transform:uppercase; transform:rotate(1.5deg); }
.black-jack-poster-note { position:absolute; right:clamp(24px,7vw,112px); bottom:clamp(38px,5vw,70px); margin:0; color:rgba(232,224,192,.84); font:.75rem Courier,monospace; letter-spacing:.12em; text-transform:uppercase; writing-mode:vertical-rl; }
.black-jack-brief,.black-jack-included,.black-jack-table,.black-jack-download { max-width:1320px; margin-inline:auto; padding:clamp(72px,10vw,140px) clamp(24px,7vw,112px); }
.black-jack-brief { display:grid; grid-template-columns:minmax(0,1fr) minmax(270px,.72fr); gap:clamp(36px,9vw,140px); background:#e8e0c0; }
.black-jack-brief h2,.black-jack-included h2,.black-jack-table h2,.black-jack-download h2 { color:#171717; font-family:"Times New Roman",Times,serif; font-size:clamp(3.6rem,7vw,7.8rem); line-height:.78; letter-spacing:-.075em; }
.black-jack-brief-copy p,.black-jack-table p,.black-jack-download p { color:#35312a; font:1.08rem/1.75 Georgia,"Times New Roman",serif; }
.black-jack-facts { display:grid; grid-template-columns:repeat(4,1fr); color:#171717; background:#d7c56c; border-top:1px solid #171717; border-bottom:1px solid #171717; }
.black-jack-facts div { min-height:155px; padding:26px clamp(20px,4vw,54px); border-right:1px solid #171717; transform:rotate(var(--fact-tilt,0deg)); }
.black-jack-facts div:nth-child(2){--fact-tilt:-1deg}.black-jack-facts div:nth-child(3){--fact-tilt:1deg}.black-jack-facts div:last-child{border-right:0;}
.black-jack-facts span { display:block; margin-bottom:.7rem; font:.7rem Courier,monospace; letter-spacing:.12em; text-transform:uppercase; }
.black-jack-facts strong { display:block; max-width:180px; font:clamp(1.45rem,2.5vw,2.35rem)/.95 "Times New Roman",Times,serif; }
.black-jack-included { background:#e8e0c0; }
.black-jack-included-heading { max-width:800px; margin-bottom:clamp(34px,5vw,68px); transform:rotate(1deg); }
.black-jack-included-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.black-jack-included-grid article { min-height:210px; padding:clamp(26px,4vw,46px); border:1px solid #171717; background:#ede4cf; box-shadow:6px 6px 0 #171717; }
.black-jack-included-grid article:nth-child(2n) { background:#d7c56c; transform:rotate(1.5deg); }.black-jack-included-grid article:nth-child(2n+1){transform:rotate(-1deg);}
.black-jack-included-grid h3 { color:#171717; font-family:"Times New Roman",Times,serif; font-size:clamp(1.9rem,3vw,3rem); line-height:.9; }.black-jack-included-grid p { margin-bottom:0; color:#35312a; font:1rem/1.6 Georgia,"Times New Roman",serif; }
.black-jack-table { display:grid; grid-template-columns:minmax(230px,.7fr) minmax(0,1fr); gap:clamp(34px,8vw,128px); align-items:center; background:#ede4cf; }
.black-jack-table-art { height:min(58vw,600px); min-height:360px; overflow:hidden; background:#d7c56c; transform:rotate(-3deg); box-shadow:7px 7px 0 #171717; }.black-jack-table-art img { width:100%; height:100%; object-fit:cover; object-position:center; filter:sepia(.28) saturate(.75); }
.black-jack-download { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:2rem; align-items:end; background:#b6003b; }.black-jack-download .black-jack-kicker,.black-jack-download h2,.black-jack-download p { color:#e8e0c0; }.black-jack-download h2 { text-shadow:3px 0 #00ffcc; }.black-jack-download-button { min-height:54px; padding:.9rem 1.15rem; border:2px solid #171717; color:#171717; background:#d7c56c; box-shadow:5px 5px 0 #171717; font:700 .78rem Courier,monospace; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }.black-jack-download-button:hover { transform:translate(2px,2px); box-shadow:3px 3px 0 #171717; }
.black-jack-footer { display:flex; justify-content:space-between; gap:1rem; padding:24px clamp(24px,7vw,112px); color:#e8e0c0; background:#171717; font:.76rem Courier,monospace; }.black-jack-footer a{color:#e8e0c0;}
@media (max-width:760px){.black-jack-hero{min-height:680px;}.black-jack-poster-note{display:none;}.black-jack-brief,.black-jack-table,.black-jack-download{grid-template-columns:1fr;}.black-jack-facts{grid-template-columns:repeat(2,1fr);}.black-jack-facts div:nth-child(2){border-right:0;}.black-jack-facts div:nth-child(-n+2){border-bottom:1px solid #171717;}.black-jack-included-grid{grid-template-columns:1fr;}.black-jack-table-art{max-width:460px;height:430px;}.black-jack-footer{flex-direction:column;}}
/* Dungeons & Dragons - medieval campaign chronicle */
.dnd-body { --world-accent:#c08e3a; color:#2e241a; background:#d4b895; font-family:Georgia,"Times New Roman",serif; }
.dnd-body::before { opacity:.14; background-image:radial-gradient(rgba(62,47,31,.38) .75px,transparent .85px); background-size:7px 7px; }
.dnd-body .site-header { border-bottom-color:rgba(225,205,157,.18); }
.dnd-body .brand-mark { font-family:Cinzel,Georgia,serif; font-weight:700; letter-spacing:-.06em; }
.dnd-body .main-nav { font-family:"IM Fell English SC",Georgia,serif; font-size:.94rem; letter-spacing:.06em; }
.dnd-body .main-nav a { border-radius:4px; }
.dnd-body .site-header.is-scrolled { background:rgba(35,28,19,.94); border-color:rgba(225,205,157,.28); }
.dnd-body .main-nav a:hover,.dnd-body .main-nav a[aria-current="page"] { background:rgba(192,142,58,.18); border-color:rgba(225,205,157,.38); }
.dnd-main { background:linear-gradient(90deg,rgba(89,72,43,.09) 1px,transparent 1px),linear-gradient(rgba(89,72,43,.08) 1px,transparent 1px),#d4b895; background-size:52px 52px; }
.dnd-hero { min-height:max(700px,calc(100vh - 78px)); background:linear-gradient(90deg,rgba(21,24,16,.94) 0%,rgba(30,34,21,.8) 49%,rgba(30,28,18,.44) 100%),url('../worlds/dungeons-and-dragons/assets/hub/dnd-hub-background.png') center / cover; }
.dnd-hero::before { inset:clamp(16px,3vw,44px); border:1px solid rgba(229,207,151,.34); border-radius:0; box-shadow:inset 0 0 0 7px rgba(54,43,26,.27); }
.dnd-hero::after { width:min(40vw,460px); right:clamp(-160px,-8vw,-60px); bottom:clamp(-150px,-8vw,-64px); border-color:rgba(192,142,58,.28); border-radius:46% 54% 52% 48% / 48% 42% 58% 52%; box-shadow:0 0 0 1px rgba(229,207,151,.18),0 0 0 clamp(42px,7vw,94px) rgba(23,31,16,.22); }
.dnd-copy .world-label { color:#d8bb6a; font-family:"IM Fell English SC",Georgia,serif; font-size:1.08rem; letter-spacing:.09em; }
.dnd-d20 { display:grid; place-items:center; width:82px; height:82px; margin:0 0 1.25rem .35rem; border:1px solid #dbc177; border-radius:48% 52% 44% 56% / 54% 44% 56% 46%; color:#f0dfb3; background:rgba(25,24,15,.58); box-shadow:inset 0 0 0 6px rgba(192,142,58,.18),0 6px 24px rgba(0,0,0,.22); font:700 1.15rem Cinzel,Georgia,serif; letter-spacing:.03em; transform:rotate(-7deg); }
.dnd-copy h1 { color:#f0dfb3; font-family:Cinzel,Georgia,serif; font-size:clamp(3.9rem,10vw,9.4rem); font-weight:800; line-height:.83; letter-spacing:-.075em; text-shadow:0 3px 0 rgba(21,18,12,.52); }
.dnd-copy > p:not(.world-label) { color:rgba(242,226,183,.89); font:clamp(1.2rem,2vw,1.6rem)/1.55 "IM Fell English",Georgia,serif; }
.dnd-button { border-radius:4px; color:#f2e2b7; border-color:#b18b46; background:rgba(52,38,20,.56); font-family:"IM Fell English SC",Georgia,serif; font-size:1.04rem; }.dnd-button:hover{color:#2e241a;background:#c08e3a;}
.dnd-status { font-family:"IM Fell English SC",Georgia,serif; font-size:1rem; letter-spacing:.04em; }
.dnd-archive { background:linear-gradient(112deg,rgba(96,108,56,.16),transparent 45%),#d4b895; }
.dnd-kicker { color:#6d522a; font-family:"IM Fell English SC",Georgia,serif; font-size:1rem; letter-spacing:.1em; }
.dnd-archive h2 { color:#3e321e; font-family:Cinzel,Georgia,serif; font-size:clamp(3rem,6vw,6.3rem); line-height:.86; }
.dnd-archive-heading > p { color:#59472f; font-family:"IM Fell English",Georgia,serif; font-size:1.2rem; }
.dnd-category-card { border:1px solid #7a6239; border-radius:10px; background:#e8dcc7; box-shadow:8px 8px 0 rgba(59,45,26,.2); }
.dnd-category-card a { color:#342719; }
.dnd-category-art { border-right:1px solid #7a6239; background:#606c38; }.dnd-category-art img{filter:sepia(.42) saturate(.68) contrast(1.05);}
.dnd-category-copy { position:relative; background:linear-gradient(135deg,rgba(192,142,58,.1),transparent 50%),#e8dcc7; }.dnd-category-copy::before,.dnd-category-copy::after{content:"";position:absolute;width:22px;height:22px;border-color:#8b6c39;pointer-events:none;}.dnd-category-copy::before{top:18px;left:18px;border-top:1px solid;border-left:1px solid;}.dnd-category-copy::after{right:18px;bottom:18px;border-right:1px solid;border-bottom:1px solid;}
.dnd-category-copy h3 { color:#3e321e; font-family:Cinzel,Georgia,serif; }.dnd-category-copy p:not(.dnd-kicker){color:#59472f;font-family:"IM Fell English",Georgia,serif;font-size:1.18rem;}.dnd-category-link{color:#75541d;font-family:"IM Fell English SC",Georgia,serif;font-size:1rem;}
.dnd-footer { background:#292117; color:#ddc889; font-family:"IM Fell English SC",Georgia,serif; }.dnd-footer a{color:#f0dfb3;}
@media (max-width:760px){.dnd-d20{width:66px;height:66px;margin-bottom:1rem;}.dnd-category-art{border-right:0;border-bottom:1px solid #7a6239;}}

/* Black Jack lives in the same campaign book, with a darker western chapter */
.black-jack-body { color:#302518; background:#d4b895; font-family:"IM Fell English",Georgia,serif; }
.black-jack-body::before { opacity:.16; background-image:radial-gradient(rgba(58,43,25,.38) .7px,transparent .8px); background-size:7px 7px; }
.black-jack-header { border-bottom:1px solid rgba(229,207,151,.2); }.black-jack-header .brand-mark{font-family:Cinzel,Georgia,serif;}.black-jack-header .main-nav{font-family:"IM Fell English SC",Georgia,serif;font-size:.94rem;}.black-jack-header .main-nav a{border-radius:4px;}.black-jack-header .site-header.is-scrolled{background:rgba(32,26,18,.94);}
.black-jack-hero::after { background:linear-gradient(90deg,rgba(27,22,15,.93),rgba(37,29,18,.65) 48%,rgba(31,24,15,.16) 78%),linear-gradient(0deg,rgba(28,20,13,.72),transparent 56%); }
.black-jack-hero-copy { transform:none; }.black-jack-kicker{color:#765620;font-family:"IM Fell English SC",Georgia,serif;font-size:1rem;}.black-jack-hero .black-jack-kicker{color:#d8bb6a;text-shadow:none;}.black-jack-hero h1{color:#eedba8;font-family:Cinzel,Georgia,serif;font-size:clamp(4rem,11vw,10.4rem);text-shadow:0 3px 0 rgba(21,17,10,.62);}.black-jack-subtitle{color:#eedba8;font-family:"IM Fell English",Georgia,serif;}.black-jack-lead{color:rgba(242,226,183,.88);font-family:"IM Fell English",Georgia,serif;font-size:1.28rem;}.black-jack-scroll{color:#332617;background:#c08e3a;font-family:"IM Fell English SC",Georgia,serif;font-size:1rem;transform:none;}.black-jack-poster-note{font-family:"IM Fell English SC",Georgia,serif;}
.black-jack-brief,.black-jack-included{background:#d4b895;}.black-jack-brief h2,.black-jack-included h2,.black-jack-table h2,.black-jack-download h2{color:#3a2b18;font-family:Cinzel,Georgia,serif;}.black-jack-brief-copy p,.black-jack-table p,.black-jack-download p{color:#59472f;font-family:"IM Fell English",Georgia,serif;font-size:1.18rem;}.black-jack-facts{color:#362718;background:#c08e3a;border-color:#684d27;}.black-jack-facts div{border-color:#684d27;transform:none;}.black-jack-facts span{font-family:"IM Fell English SC",Georgia,serif;font-size:1rem;}.black-jack-facts strong{font-family:Cinzel,Georgia,serif;font-size:clamp(1.15rem,2vw,1.8rem);line-height:1.05;}
.black-jack-included-heading{transform:none;}.black-jack-included-grid article,.black-jack-included-grid article:nth-child(2n){border-color:#7d6237;background:#e8dcc7;box-shadow:6px 6px 0 rgba(68,51,29,.24);transform:none;}.black-jack-included-grid h3{font-family:Cinzel,Georgia,serif;color:#3a2b18;font-size:clamp(1.5rem,2.5vw,2.4rem);}.black-jack-included-grid p{color:#59472f;font-family:"IM Fell English",Georgia,serif;font-size:1.1rem;}.black-jack-table{background:#e8dcc7;}.black-jack-table-art{background:#606c38;box-shadow:7px 7px 0 rgba(68,51,29,.35);transform:none;}.black-jack-download{background:#4e3b24;}.black-jack-download .black-jack-kicker,.black-jack-download h2,.black-jack-download p{color:#eedba8;}.black-jack-download h2{text-shadow:none;}.black-jack-download-button{border-color:#3a2b18;background:#c08e3a;box-shadow:5px 5px 0 #21180e;font-family:"IM Fell English SC",Georgia,serif;font-size:1rem;}.black-jack-footer{background:#292117;color:#ddc889;font-family:"IM Fell English SC",Georgia,serif;}.black-jack-footer a{color:#f0dfb3;}
/* D&D archive and Blackjack layout refinement */
.world-site-header,.black-jack-header { justify-content:flex-start; }
.dnd-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.dnd-category-card a,.dnd-tool-card { display:flex; flex-direction:column; }
.dnd-category-card .dnd-category-art { min-height:250px; border-right:0; border-bottom:1px solid #7a6239; }
.dnd-category-card .dnd-category-copy { flex:1; padding:clamp(26px,3.5vw,42px); }
.dnd-tool-card .dnd-category-art img { object-position:center; }
.dnd-tool-card .dnd-category-link { opacity:.7; }
.black-jack-hero { min-height:clamp(560px,78vh,760px); padding:clamp(104px,11vw,132px) clamp(24px,7vw,112px) clamp(42px,5vw,66px); }
.black-jack-hero h1 { max-width:720px; font-size:clamp(3.8rem,9vw,7.2rem); line-height:.86; }
.black-jack-subtitle { margin-bottom:1rem; font-size:clamp(1.25rem,2.2vw,2rem); }
.black-jack-lead { max-width:490px; margin-bottom:0; font-size:1.15rem; }
.black-jack-brief,.black-jack-included,.black-jack-table,.black-jack-download,.black-jack-encounters { max-width:1180px; padding:clamp(52px,7vw,88px) clamp(24px,6vw,80px); }
.black-jack-brief { grid-template-columns:minmax(0,.94fr) minmax(280px,.76fr); gap:clamp(32px,6vw,76px); }
.black-jack-brief h2 { max-width:600px; font-size:clamp(2.45rem,4.6vw,4.8rem); line-height:.92; }
.black-jack-included h2,.black-jack-table h2,.black-jack-download h2,.black-jack-encounters h2 { font-size:clamp(2.5rem,4.8vw,4.9rem); line-height:.92; }
.black-jack-brief-copy p,.black-jack-table p,.black-jack-download p,.black-jack-encounters p { font-size:1.08rem; line-height:1.68; }
.black-jack-facts { max-width:1180px; margin-inline:auto; border-left:1px solid #684d27; }
.black-jack-facts div { min-height:124px; padding:22px clamp(18px,3vw,34px); }
.black-jack-facts strong { max-width:200px; font-size:clamp(1.05rem,1.7vw,1.5rem); }
.black-jack-included-grid { gap:20px; }
.black-jack-included-grid article,.black-jack-included-grid article:nth-child(2n) { min-height:178px; padding:30px; box-shadow:4px 4px 0 rgba(68,51,29,.2); }
.black-jack-table { grid-template-columns:minmax(270px,.78fr) minmax(0,1fr); gap:clamp(34px,6vw,74px); }
.black-jack-table-art { height:440px; min-height:0; }.black-jack-table-art img { filter:none !important; }
.black-jack-encounters { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(190px,.65fr) minmax(190px,.65fr); gap:22px; align-items:stretch; background:#d4b895; }
.black-jack-encounters-copy { align-self:center; padding-right:clamp(0px,2vw,24px); }
.black-jack-encounter-image { display:flex; flex-direction:column; min-height:320px; margin:0; overflow:hidden; border:1px solid #7d6237; background:#e8dcc7; box-shadow:4px 4px 0 rgba(68,51,29,.18); }
.black-jack-encounter-image img { width:100%; flex:1; min-height:0; object-fit:cover; object-position:center; }
.black-jack-encounter-image figcaption { padding:.8rem .95rem; color:#59472f; font:1rem "IM Fell English",Georgia,serif; line-height:1.25; }
.black-jack-download { margin-top:0; }
@media (max-width:860px){.dnd-category-grid{grid-template-columns:1fr;}.dnd-category-card .dnd-category-art{min-height:220px;}.black-jack-encounters{grid-template-columns:1fr 1fr;}.black-jack-encounters-copy{grid-column:1 / -1;}.black-jack-encounter-image{min-height:300px;}}
@media (max-width:620px){.black-jack-hero{min-height:570px;}.black-jack-facts{grid-template-columns:1fr 1fr;}.black-jack-table{grid-template-columns:1fr;}.black-jack-table-art{height:360px;}.black-jack-encounters{grid-template-columns:1fr;}.black-jack-encounters-copy{grid-column:auto;}.black-jack-encounter-image{min-height:340px;}}
/* Birdspotting - let the supplied branch carry the landing scene */
.birds-hero { min-height:clamp(680px,66.667vw,1024px); padding:clamp(82px,9vw,128px) clamp(22px,6vw,96px) clamp(78px,9vw,122px); background:#263a2c; }
.bird-hero-background { inset:0; background-position:center; background-size:cover; filter:saturate(.86) contrast(1.02) brightness(.88); transform:none !important; }
.bird-hero-water,.bird-hero-reeds,.bird-branch { display:none !important; }
.bird-wordmark { transform:none !important; }
.birds-copy { transform:none !important; }
.bird-landing { right:clamp(1%,5vw,8%); bottom:clamp(2%,4vw,7%); width:min(41vw,590px); height:auto; margin:0; transform:none !important; }
.bird-landing img { position:relative; right:auto; bottom:auto; display:block; width:100%; height:auto; object-fit:contain; object-position:center; filter:drop-shadow(0 15px 17px rgba(12,31,22,.38)); }
.bird-landing figcaption { right:2%; bottom:-1.2rem; }
@media (max-width:980px){.birds-hero{min-height:760px;}.bird-landing{right:-1%;bottom:4%;width:min(68vw,570px);}}
@media (max-width:700px){.birds-hero{min-height:690px;padding-top:84px;}.bird-landing{right:-16%;bottom:4%;width:96vw;}.bird-landing figcaption{display:none;}.bird-wordmark{opacity:.55;}}
/* Black Jack - final article layout cleanup */
.black-jack-brief { align-items:start; }
.black-jack-brief-copy { padding-top:2.05rem; }
.black-jack-table-art { overflow:hidden; border:1px solid rgba(68,51,29,.32); background:transparent; box-shadow:none; }
.black-jack-table-art img { display:block; filter:none !important; mix-blend-mode:normal; opacity:1; }
.black-jack-encounters { display:block; background:#d4b895; }
.black-jack-encounters-copy { max-width:680px; padding-right:0; }
.black-jack-encounters h2 { max-width:660px; margin-bottom:1.2rem; }
.black-jack-encounter-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin-top:2.3rem; }
.black-jack-encounter-image { min-height:0; border:1px solid rgba(68,51,29,.32); background:#e8dcc7; box-shadow:none; }
.black-jack-encounter-image img { display:block; width:100%; height:360px; object-fit:contain; object-position:center; filter:none; background:#e8dcc7; }
.black-jack-encounter-image figcaption { padding:1rem 1.1rem 1.1rem; border-top:1px solid rgba(68,51,29,.18); }
.black-jack-download { display:flex; justify-content:space-between; align-items:center; gap:2rem; margin-top:0; background:#e8dcc7; border-top:1px solid #7d6237; border-bottom:1px solid #7d6237; }
.black-jack-download .black-jack-kicker,.black-jack-download h2,.black-jack-download p { color:#3a2b18; }
.black-jack-download h2 { max-width:590px; margin-bottom:.65rem; }
.black-jack-download-button { flex:0 0 auto; box-shadow:none; }
@media (max-width:700px){.black-jack-brief-copy{padding-top:0;}.black-jack-encounter-gallery{grid-template-columns:1fr;}.black-jack-encounter-image img{height:330px;}.black-jack-download{align-items:flex-start;flex-direction:column;}.black-jack-download-button{width:100%;}}
/* Black Jack - integrated encounter artwork */
.black-jack-table-art { border:0; background:transparent; }
.black-jack-table-art img { width:100%; height:100%; object-fit:contain; filter:none !important; }
/* D&D archive - feature entries, not oversized cards */
.dnd-archive-list { display:grid; gap:30px; }
.dnd-archive-feature { overflow:hidden; border:1px solid rgba(72,57,33,.44); background:#e8dcc7; }
.dnd-archive-feature a { display:grid; grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr); min-height:330px; color:#3e321e; }
.dnd-archive-feature-image { min-height:330px; margin:0; overflow:hidden; background:#606c38; }
.dnd-archive-feature-image img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; filter:sepia(.22) saturate(.84); transition:transform .35s ease; }
.dnd-archive-feature:hover .dnd-archive-feature-image img { transform:scale(1.025); }
.dnd-archive-feature-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(32px,4.5vw,60px); }
.dnd-archive-feature-copy h3,.dnd-tools-preview h3 { max-width:650px; margin-bottom:1rem; color:#3e321e; font-family:Cinzel,Georgia,serif; font-size:clamp(2rem,3.8vw,3.8rem); line-height:1; letter-spacing:-.045em; overflow-wrap:normal; }
.dnd-archive-feature-copy p:not(.dnd-kicker),.dnd-tools-preview p:not(.dnd-kicker) { max-width:620px; margin-bottom:0; color:#59472f; font:1.14rem/1.62 "IM Fell English",Georgia,serif; }
.dnd-archive-action,.dnd-tools-status { display:inline-block; margin-top:1.55rem; color:#75541d; font:1rem "IM Fell English SC",Georgia,serif; letter-spacing:.07em; text-transform:uppercase; }
.dnd-tools-preview { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr); align-items:stretch; border-top:1px solid rgba(72,57,33,.4); border-bottom:1px solid rgba(72,57,33,.4); background:rgba(232,220,199,.45); }
.dnd-tools-preview > div { padding:clamp(30px,4vw,54px); }
.dnd-tools-preview figure { min-height:250px; margin:0; overflow:hidden; border-left:1px solid rgba(72,57,33,.34); background:#606c38; }
.dnd-tools-preview img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; filter:sepia(.25) saturate(.72); }
@media (max-width:760px){.dnd-archive-feature a,.dnd-tools-preview{grid-template-columns:1fr;}.dnd-archive-feature-image{min-height:230px;}.dnd-tools-preview figure{min-height:210px;border-top:1px solid rgba(72,57,33,.34);border-left:0;}.dnd-archive-feature-copy h3,.dnd-tools-preview h3{font-size:clamp(2rem,9vw,3.2rem);}}