/* Cipher Veil Publishing: midnight blue, gold, and alabaster. */
/* Keep artwork gestures inside the viewer. These are copying deterrents, not DRM. */
img[data-view-art], [data-view-background], [data-harbor-video], #map-stage, #art-viewport, .card-dialog-figure {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}
#map-image { pointer-events: none; }
/* One full-width moving frame; the still is a fallback, never a side panel. */
.harbor-loop {
  position: absolute;
  inset: 0;
  z-index: -3;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: center 70%;
  opacity: 0;
  pointer-events: none;
}
[data-video-ready="true"] > .harbor-loop { opacity: 1; }
[data-video-state="still"] > .harbor-loop, [data-video-state="blocked"] > .harbor-loop { opacity: 0; }
[data-video-ready="true"]:not([data-video-state="still"]):not([data-video-state="blocked"]) > :is(.harbor-backdrop, .emissary-hero-art) { visibility: hidden; }
.harbor-video-status {
  position: absolute;
  right: 24px;
  bottom: 68px;
  max-width: 285px;
  padding: 9px 12px;
  background: #070e23ed;
  border: 1px solid #d7b56870;
  color: var(--paper);
  font: 14px/1.5 var(--sans);
}
.harbor-video-status:empty { display: none; }
.harbor-motion-control {
  position: absolute;
  right: 24px;
  bottom: 20px;
  z-index: 1;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid #d7b56870;
  border-radius: 3px;
  background: #070e23ed;
  color: var(--gold-light);
  font: 14px/1.4 var(--sans);
  cursor: pointer;
}
.harbor-motion-control:hover { background: #172440; }
.harbor-motion-control[hidden] { display: none; }
@media(max-width:800px) {
  .home-page .harbor-hero[data-harbor-motion], .book-hub .book-hero.emissary-hero[data-harbor-motion] { padding-bottom: 88px; }
}
:root {
  --navy: #070e23;
  --panel: #101b36;
  --paper: #f4eee2;
  --ink: #f4eee2;
  --muted: #c6bca9;
  --gold: #d7b568;
  --gold-light: #f4ddb0;
  --line: #d7b56838;
}
body { background: radial-gradient(ellipse at 80% 0, #23345d66, transparent 50%), var(--navy); }
.portal-header { min-height: 116px; }
.publisher { font-size: 15px; letter-spacing: 1.5px; }
.publisher small { font-size: 12px; letter-spacing: 3px; }
.portal-header nav { gap: 27px; }
.portal-header nav a, .portal-footer nav a { font-size: 15px; }
.home-hero { padding: 58px 0 56px; gap: 48px; }
.hero-detail { max-width: 540px; font-size: 18px; }
.hero-intro { font-size: 27px; }
.home-hero h1 { font-size: clamp(58px, 6.2vw, 91px); }
.ritual-welcome {
  margin: 0 0 24px;
  color: var(--gold-light);
  font: 400 clamp(30px, 3.1vw, 46px)/1.2 var(--serif);
  letter-spacing: -.02em;
  text-wrap: balance;
}
.eyebrow { font-size: 13px; letter-spacing: 1.7px; }
.button, .quiet-link, .text-link { font-size: 16px; }
.small-label { font-size: 12px; line-height: 1.7; }
.featured-world { gap: 35px; padding: 42px 0; }
.featured-world p, .world-copy p, .atlas-feature-copy p, .collection p:not(.eyebrow) { font-size: 18px; line-height: 1.75; }
.feature-index > span, .world-contents { font-size: 13px; }
.feature-index a { font-size: 24px; }
.breadcrumbs { font-size: 13px; }
.page-intro { padding: 43px 0 34px; }
.page-intro p:not(.eyebrow) { max-width: 650px; font-size: 20px; }
.worlds-intro {
  display: grid;
  grid-template-columns: minmax(0, 560px) 272px;
  max-width: 864px;
  margin: 0 auto;
  align-items: center;
  gap: 32px;
  padding: 35px 0 44px;
}
.worlds-intro .worlds-name {
  margin: 0 0 22px;
  color: var(--gold-light);
  font: 400 clamp(28px, 2.7vw, 39px)/1.25 var(--serif);
  letter-spacing: -.02em;
  text-wrap: balance;
}
.worlds-intro h1 { font-size: clamp(50px, 5.7vw, 82px); text-wrap: balance; }
.worlds-intro .worlds-intro-copy > p:not(.eyebrow) { max-width: 640px; margin-bottom: 0; }
.worlds-intro-card { width: 100%; margin: 0; justify-self: end; }
.worlds-intro-card img {
  width: 100%;
  height: auto;
  aspect-ratio: 542/960;
  object-fit: contain;
  border-radius: 12px;
  box-shadow: 0 14px 46px #0006;
}
.worlds-intro-card figcaption { margin-top: 13px; text-align: center; font-size: 12px; line-height: 1.7; color: var(--muted); }
.book-hero { padding-top: 44px; padding-bottom: 48px; }
.book-hero.emissary-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: 650px;
  margin: 30px 0 44px;
  padding: 60px clamp(28px, 4vw, 56px);
  border: 1px solid #d7b56870;
  background: var(--navy);
}
.emissary-hero-art {
  position: absolute;
  inset: 0;
  z-index: -4;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 64% 50%;
}
.emissary-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, #070e23f5 2%, #070e23ed 29%, #070e23db 43%, #070e238c 59%, #070e2326 78%), linear-gradient(0deg, #070e2359, transparent 30%);
  pointer-events: none;
}
.emissary-hero-copy { width: min(100%, 700px); }
.emissary-hero h1 { font-size: clamp(48px, 5.5vw, 78px); line-height: 1.08; }
.emissary-hero .book-byline { margin: 20px 0 29px; font: 400 28px/1.35 var(--serif); color: var(--gold-light); }
.emissary-hero .hero-detail { max-width: 520px; color: var(--paper); }
.emissary-hero .eyebrow { color: var(--gold-light); }
.emissary-hero .actions { gap: 15px; }
.emissary-hero .button { gap: 18px; }
.world-copy, .atlas-feature-copy, .reading-invitation {
  --gold: #795a1c;
  --gold-light: #604814;
  --muted: #574d3c;
  --line: #9e7b343d;
  background: #f4eee2;
  color: #0c1833;
}
.world-copy h2 em, .atlas-feature-copy h2 em, .reading-invitation h2 em { color: #72551c; }
.world-copy .button.gold { background: #101c38; border-color: #101c38; color: #f5e4bc; }
.world-copy .button.gold:hover { background: #243557; }
.world-copy .quiet-link, .atlas-feature-copy .button, .reading-invitation .button { color: #172340; }
.world-copy .detail-note, .atlas-feature-copy .detail-note { color: #655941 !important; }
.reading-invitation { max-width: none; display: grid; grid-template-columns: 250px 1fr; align-items: center; gap: 44px; text-align: left; margin: 55px 0 65px; padding: 42px 48px; border: 1px solid #d7b56877; }
.author-mark { width: 250px; height: auto; object-fit: contain; }
.reading-invitation h2 { font-size: 40px; }
.reading-invitation p:not(.eyebrow) { max-width: 660px; margin: 20px 0 26px; font-size: 18px; }
.portal-footer p, .portal-footer .art-note { font-size: 13px; line-height: 1.8; }
.footer-publisher { font-size: 13px; }
.film figcaption, .film-status { font-size: 14px; line-height: 1.7; }
.detail-note, .landmarks > div > p:not(.eyebrow) { font-size: 15px !important; }
.landmark-row p { font-size: 15px; }
.landmark-row h3 { font-size: 27px; }
.reading-note p { font-size: 16px; }
.atlas { grid-template-columns: minmax(0, 1fr) 360px; }
.reader-welcome { font-size: 17px; max-width: 1000px; }
.reader-nav a { font-size: 14px; }
.detail .lore { font-size: 18px; line-height: 1.75; }
.geo-box p { font-size: 15px; }
.card-lead { font-size: 16px; min-height: 56px; }
.card-title { font-size: 29px; min-height: 66px; }
.card-dialog-body .card-body { font-size: 19px; }
.edition-intro { font-size: 17px; max-width: 800px; }
.art-info .art-caption { font-size: 18px; }
.art-info .art-note, .art-transcript p, .art-transcript dd { font-size: 14px; }
.atlas-publisher { font-size: 12px; }
/* A large harbor view opens the publisher home; the original film remains below. */
.home-page main { max-width: none; padding: 0; }
.home-content { max-width: 1512px; margin: 0 auto; padding: 0 48px; }
.harbor-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  align-items: center;
  min-height: 790px;
  padding: 64px max(48px, calc((100vw - 1416px)/2)) 90px;
  background: var(--navy);
  border-bottom: 1px solid var(--line);
}
.harbor-backdrop {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: -4;
  width: 100%;
  height: 100%;
  max-width: none;
  object-fit: cover;
  object-position: 60% 50%;
}
.harbor-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -2;
  background: linear-gradient(90deg, #070e23ed 3%, #070e23e6 29%, #070e23cf 40%, #070e2370 53%, #070e2305 74%), linear-gradient(0deg, #070e2359, transparent 22%, transparent 80%, #070e2326);
  pointer-events: none;
}
.harbor-hero .hero-copy { width: min(100%, 590px); }
.harbor-hero .hero-detail { max-width: 485px; color: #e1d8c6; }
.harbor-hero .hero-intro { color: var(--paper); }
.harbor-hero .small-label { max-width: 480px; }
.harbor-caption {
  position: absolute;
  top: 28px;
  right: max(48px, calc((100vw - 1416px)/2));
  padding: 11px 15px;
  border: 1px solid #d7b56870;
  background: #070e23d9;
  color: var(--gold-light);
  font-size: 12px;
  letter-spacing: 1.5px;
  line-height: 1.6;
  text-decoration: none;
}
.harbor-caption span { margin-left: 18px; }
.harbor-film-section { margin: 54px 0 0; }
.harbor-film { max-width: 280px; }
#watch-mourasque { scroll-margin-top: 30px; }
@media (max-width:1100px) {
  .portal-header { flex-wrap: wrap; padding-top: 18px; padding-bottom: 18px; gap: 18px; }
  .portal-header nav { flex-wrap: wrap; }
  .home-hero { gap: 32px; }
  .featured-world { grid-template-columns: 130px 1fr; }
  .feature-index { grid-column: 1/-1; border-left: 0; padding-left: 0; }
  .atlas { grid-template-columns: minmax(0,1fr) 330px; }
  .reading-invitation { grid-template-columns: 210px 1fr; gap: 28px; padding: 35px; }
  .author-mark { width: 210px; }
  .home-content { padding: 0 28px; }
  .harbor-hero { padding-left: 28px; padding-right: 28px; }
  .harbor-caption { right: 28px; }
  .harbor-hero .hero-copy { max-width: 520px; }
  .worlds-intro { grid-template-columns: minmax(0, 560px) 235px; max-width: 823px; gap: 28px; }
}
@media (max-width:800px) {
  .atlas { grid-template-columns: 1fr; }
  .home-hero { padding-top: 36px; padding-bottom: 42px; }
  .reading-invitation { grid-template-columns: 180px 1fr; padding: 30px; }
  .author-mark { width: 180px; }
  .reading-invitation h2 { font-size: 34px; }
  .reader-nav { flex-wrap: wrap; gap: 16px 24px; }
  .lore-filters { flex-wrap: wrap; }
  .harbor-hero { min-height: 880px; align-items: flex-end; padding: 320px 28px 38px; }
  .harbor-backdrop { width: 100%; height: 590px; object-position: 50% 67%; }
  .harbor-hero::before { background: linear-gradient(0deg, #070e23 2%, #070e23f5 43%, #070e23bf 63%, #070e230a 86%); }
  .harbor-hero .hero-copy { max-width: 650px; }
  .harbor-hero .hero-intro { font-size: 27px; }
  .harbor-hero .hero-detail { font-size: 18px; }
  .harbor-caption { top: 24px; bottom: auto; right: 28px; }
  .worlds-intro { grid-template-columns: 1fr; gap: 22px; max-width: 650px; padding-top: 35px; }
  .worlds-intro-card { width: 205px; justify-self: center; }
  .book-hero.emissary-hero { min-height: 730px; align-items: flex-end; padding: 270px 30px 35px; }
  .emissary-hero-art { height: 465px; object-position: 69% 50%; }
  .emissary-hero::before { background: linear-gradient(0deg, #070e23 8%, #070e23f5 43%, #070e23bf 65%, #070e230a 86%); }
  .emissary-hero h1 { font-size: clamp(44px, 7vw, 62px); }
}
@media (max-width:520px) {
  .publisher { font-size: 14px; }
  .publisher small { font-size: 12px; }
  .portal-header nav { justify-content: flex-start; gap: 12px 22px; }
  .portal-header nav a { font-size: 14px; }
  .home-hero h1 { font-size: 56px; }
  .hero-intro { font-size: 25px; }
  .hero-detail { font-size: 17px; }
  .button { font-size: 15px; }
  .featured-world { grid-template-columns: 1fr; }
  .reading-invitation { display: block; margin: 35px 0 42px; padding: 27px 23px; }
  .author-mark { width: 190px; margin: 0 auto 25px; }
  .reading-invitation h2 { font-size: 32px; }
  .reading-invitation p:not(.eyebrow) { font-size: 17px; }
  .breadcrumbs { font-size: 12px; }
  .reader-nav a { font-size: 13px; }
  .landmark-row h3 { font-size: 24px; }
  .lore-grid { grid-template-columns: 1fr; }
  .card-title, .card-lead { min-height: 0; }
  .home-content { padding: 0 20px; }
  .harbor-hero { min-height: 930px; padding: 325px 20px 32px; }
  .harbor-backdrop { height: 540px; object-position: 50% 70%; }
  .harbor-hero::before { background: linear-gradient(0deg, #070e23 8%, #070e23f5 49%, #070e23b8 65%, #070e230a 84%); }
  .harbor-hero .hero-detail { font-size: 17px; }
  .harbor-caption { right: 20px; font-size: 11px; }
  .harbor-film-section { margin-top: 35px; }
  .book-hero.emissary-hero { padding: 250px 23px 30px; margin: 25px 0 32px; }
  .emissary-hero-art { height: 410px; object-position: 72% 50%; }
  .emissary-hero h1 { font-size: clamp(38px, 10vw, 50px); }
  .emissary-hero .book-byline { font-size: 25px; margin: 17px 0 24px; }
  .emissary-hero .hero-detail { font-size: 17px; }
  .emissary-hero .actions { align-items: stretch; flex-direction: column; }
}

@media(max-width:800px) {
  .harbor-hero .harbor-loop { height: 590px; object-position: center 65%; }
  .emissary-hero .harbor-loop { height: 465px; object-position: center 65%; }
}
@media(max-width:520px) {
  .harbor-hero .harbor-loop { height: 540px; }
  .emissary-hero .harbor-loop { height: 410px; }
}
