/* Westside Design OS — one visual authority for all public surfaces and tools. */
/* Geometry QA: docs/DESIGN-OS-GEOMETRY.md + scripts/design-os-geometry-audit.mjs.
   Static positioning belongs to each canonical surface stylesheet; avoid competing overrides. */
@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400%3B1,6..96,400&family=Bodoni+Moda+SC:ital,opsz,wght@0,6..96,400%3B1,6..96,400&family=Noto+Serif+TC:wght@400%3B600&display=swap');
@import url('https://cdn.jsdelivr.net/npm/chiron-hei-hk-webfont/css/vf.css');
@import url("/css/westside-design-tokens.css");
/* Standalone pages and iframes: shared fonts and role sizes. */
:root{--ws-weight-zh-air:200;--ws-weight-zh-standard:400;--ws-weight-zh-anchor:600;
 --ws-olive-layer-zh-weight:var(--ws-weight-zh-anchor);--ws-olive-speaker-name-weight:var(--ws-weight-zh-air);--ws-olive-folio-weight:400;
 --ws-type-display-en-sc:"Bodoni Moda SC", "Bodoni Moda", serif;
 --ws-type-scripture-reference-size:clamp(13px,.9vw + 8px,17px);
 --ws-type-scripture-reference-tracking:.015em;
 --ws-type-quote-en-size:clamp(19px,1vw + 13px,27px);
 --ws-realm-zh-size:clamp(36px,4.2vw,68px);
 --ws-realm-en-size:clamp(72px,10vw,160px);
 --ws-subject-zh-size:clamp(25px,2vw,38px);
 --ws-editorial-label-size:clamp(11px,.85vw,14px);
 --ws-editorial-label-tracking:.1em;
 --ws-realm-en-tracking:-.04em;
 --ws-realm-zh-tracking:.12em;











 --ws-size-library-title:var(--ws-size-card);
 --ws-type-display-en:"Bodoni Moda",serif;
 --ws-type-display-zh:"Chiron Hei HK WS",sans-serif;
 --ws-type-reading-zh:"Noto Serif TC",serif;
 --type-en:var(--ws-type-display-en);
 --type-zh:var(--ws-type-display-zh);
 --type-ui:var(--ws-type-display-zh);
 --type-zh-light:200;
 --type-zh-regular:400;
 --type-zh-strong:600;
}

/* Visual type-scale normalization — cross-surface semantic authority.
   Surface CSS may own geometry and placement; it must not invent a competing type scale. */
:root{
 --ws-type-scale-display-xl:clamp(4.5rem,8vw + 1rem,10rem);
 --ws-type-scale-display-lg:clamp(3.25rem,5.5vw + .75rem,7rem);
 --ws-type-scale-display-md:clamp(2.35rem,3.6vw + .65rem,4.75rem);
 --ws-type-scale-title-lg:clamp(2rem,2.6vw + .65rem,3.75rem);
 --ws-type-scale-title-md:clamp(1.55rem,1.7vw + .7rem,2.65rem);
 --ws-type-scale-title-sm:clamp(1.25rem,1vw + .75rem,1.8rem);
 --ws-type-scale-reading-lg:clamp(1.125rem,.45vw + 1rem,1.35rem);
 --ws-type-scale-reading:clamp(1rem,.3vw + .94rem,1.18rem);
 --ws-type-scale-ui:clamp(.875rem,.18vw + .84rem,1rem);
 --ws-type-scale-meta:clamp(.72rem,.12vw + .7rem,.84rem);
 --ws-type-scale-micro:clamp(.64rem,.08vw + .62rem,.75rem);
 --ws-type-leading-display:.9;
 --ws-type-leading-title:1.12;
 --ws-type-leading-reading:1.82;
 --ws-type-leading-ui:1.42;
 --ws-type-measure-reading:40em;
 --ws-size-hero:var(--ws-type-scale-display-xl);
 --ws-size-cover:var(--ws-type-scale-display-lg);
 --ws-size-h1:var(--ws-type-scale-title-lg);
 --ws-size-h2:var(--ws-type-scale-title-md);
 --ws-size-h3:var(--ws-type-scale-title-sm);
 --ws-size-nav:var(--ws-type-scale-ui);
 --ws-size-card:var(--ws-type-scale-title-sm);
 --ws-size-reading:var(--ws-type-scale-reading-lg);
 --ws-size-body:var(--ws-type-scale-reading);
 --ws-size-meta:var(--ws-type-scale-meta);
 --ws-size-control:var(--ws-type-scale-ui);
 --ws-subject-zh-size:var(--ws-type-scale-title-md);
 --ws-editorial-label-size:var(--ws-type-scale-meta);
}
:where(.ws-type-display-xl,[data-ws-type="display-xl"]){font-size:var(--ws-type-scale-display-xl);line-height:var(--ws-type-leading-display)}
:where(.ws-type-display-lg,[data-ws-type="display-lg"]){font-size:var(--ws-type-scale-display-lg);line-height:var(--ws-type-leading-display)}
:where(.ws-type-display-md,[data-ws-type="display-md"]){font-size:var(--ws-type-scale-display-md);line-height:.96}
:where(.ws-type-title-lg,[data-ws-type="title-lg"]){font-size:var(--ws-type-scale-title-lg);line-height:var(--ws-type-leading-title)}
:where(.ws-type-title-md,[data-ws-type="title-md"]){font-size:var(--ws-type-scale-title-md);line-height:var(--ws-type-leading-title)}
:where(.ws-type-title-sm,[data-ws-type="title-sm"]){font-size:var(--ws-type-scale-title-sm);line-height:1.18}
:where(.ws-type-reading,[data-ws-type="reading"]){font-size:var(--ws-type-scale-reading);line-height:var(--ws-type-leading-reading);max-width:var(--ws-type-measure-reading)}
:where(.ws-type-meta,[data-ws-type="meta"]){font-size:var(--ws-type-scale-meta);line-height:var(--ws-type-leading-ui)}
:where(.ws-type-air,[data-ws-weight="air"]){font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air)!important;font-synthesis:none}
:where(.ws-type-standard,[data-ws-weight="standard"]){font-weight:var(--ws-weight-zh-standard)!important;font-synthesis:none}
:where(.ws-type-anchor,[data-ws-weight="anchor"]){font-weight:var(--ws-weight-zh-anchor)!important;font-synthesis:none}

html{font-synthesis:none}


/* Sites family authority: family only; geometry remains owned by each surface. */
body.home,body.sites-surface{--serif:var(--ws-type-display-en);--zh:var(--ws-type-display-zh);--ww-en:var(--ws-type-display-en);--ww-zh:var(--ws-type-display-zh);}
body.home :where(h1,h2,h3,h4,.sites-home-nav,.sites-home-entry,.sites-home-section-head,.sites-layer-nav,.sites-layer-wordmark),
body.sites-surface:not(.sites-section-olive) :where(.sites-layer-nav,.sites-layer-wordmark,[class*="title-en"],[class*="label-en"],[lang^="en"]){font-family:var(--ws-type-display-en)!important;font-synthesis:none;}
body.home :where([lang^="zh"],.realm__zh),
body.sites-surface:not(.sites-section-olive) :where([lang^="zh"],.mersi-church,.sites-atlas-prologue){font-family:var(--ws-type-display-zh)!important;font-synthesis:none;}
body.sites-surface :where(.article-body,.reading-body,.longform,[data-reading="longform"]):lang(zh-Hant){font-family:var(--ws-type-reading-zh)!important;}

/* Editorial semantic roles: preserve source casing, never synthesize small caps. */
.ws-type-realm-zh{font-family:var(--ws-type-display-zh);font-size:var(--ws-realm-zh-size);font-weight:var(--ws-weight-zh-anchor);letter-spacing:var(--ws-realm-zh-tracking);line-height:1.08}
.ws-type-realm-en{font-family:var(--ws-type-display-en);font-size:var(--ws-realm-en-size);font-weight:400;letter-spacing:var(--ws-realm-en-tracking);line-height:.9}
.ws-type-subject-zh{font-family:var(--ws-type-display-zh);font-size:var(--ws-subject-zh-size);font-weight:var(--ws-weight-zh-air);line-height:1.12}
.ws-type-editorial-label{font-family:var(--ws-type-display-en-sc);font-size:var(--ws-editorial-label-size);font-weight:400;letter-spacing:var(--ws-editorial-label-tracking);font-variant-caps:normal;text-transform:none;font-synthesis:none}

/* Editorial italics: actual italic files, not skewed roman glyphs. */
.ws-type-italic-en,.ws-scripture-reference,.ws-scripture-reference :where(a,span,em,cite){font-family:var(--ws-type-display-en);font-style:italic;font-weight:400;font-synthesis:none}
.ws-scripture-reference{font-size:var(--ws-type-scripture-reference-size);letter-spacing:var(--ws-type-scripture-reference-tracking);font-variant-numeric:lining-nums tabular-nums;white-space:normal}
.ws-scripture-reference :where(sup){font:inherit;vertical-align:super;font-size:.75em}
.ws-type-quote-en{font-family:var(--ws-type-display-en);font-size:var(--ws-type-quote-en-size);font-style:italic;font-weight:400;line-height:1.42;font-synthesis:none}
.ws-type-editorial-label-italic{font-family:var(--ws-type-display-en-sc);font-style:italic;font-weight:400;font-synthesis:none}

/* Sitewide semantic weight roles, never bound to a single content category. */
.ws-type-air{font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air);font-synthesis:none}
.ws-type-standard{font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-standard);font-synthesis:none}
.ws-type-anchor{font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-anchor);font-synthesis:none}

/* Westside Chromatic Field — Color Authority
   Identity × Material × Light = Surface
   Pages consume semantic roles; raw branch colors are authority inputs, not local themes. */
:root{
  /* Foundation */
  --ws-paper:#faf9f5;--ws-ink:#252525;--ws-night:#102a43;
  --ws-first-light:#a2872a;--ws-warm-gold:#b79838;--ws-morning-gold:#d2bc69;
  /* Sacred / landscape anchors */
  --ws-water:#5b8fa8;--ws-olive:#738a5a;--ws-harvest:#b8944a;--ws-crimson:#a14d57;
  /* Bible material authority */
  --ws-papyrus:#eee4c9;--ws-pale-gold:#cebd74;
  /* Life: Daylight Mauve — provisional chromatic-field anchor, not an arbitrary UI purple */
  --ws-daylight-mauve:oklch(67% .075 330);
  /* Default semantic roles */
  --ws-branch:var(--ws-first-light);--ws-surface:var(--ws-paper);--ws-text:var(--ws-ink);
  --ws-line:color-mix(in oklab,var(--ws-text) 22%,transparent);
  --ws-atmosphere:color-mix(in oklab,var(--ws-branch) 8%,var(--ws-surface));
  --ws-raised:color-mix(in oklab,var(--ws-branch) 4%,var(--ws-surface));
  --ws-interaction:color-mix(in oklab,var(--ws-branch) 86%,var(--ws-ink));
  --ws-deep:color-mix(in oklab,var(--ws-branch) 68%,var(--ws-ink));
  --ws-shadow:color-mix(in oklab,var(--ws-branch) 24%,var(--ws-ink));
  /* Material / illumination controls */
  --ws-engraving-opacity:.11;--ws-engraving-blend:multiply;--ws-light-x:72%;--ws-light-y:18%;
  --ws-light-strength:10%;--ws-light-radius:42%;
}
/* Current information architecture → one branch identity. */
.sites-section-church{--ws-branch:var(--ws-water);--ws-engraving-opacity:.09}
.sites-section-journal,.sites-section-vol-00{--ws-branch:var(--ws-first-light);--ws-engraving-opacity:.10}
.section-one,.sites-section-one{--ws-branch:var(--ws-pale-gold);--ws-surface:var(--ws-papyrus);--ws-engraving-opacity:.14}
.sites-section-olive{--ws-branch:var(--ws-olive);--ws-engraving-opacity:.13}
.sites-section-dawn-library{--ws-branch:var(--ws-harvest);--ws-engraving-opacity:.12}
.sites-section-cinema{--ws-branch:var(--ws-crimson);--ws-engraving-opacity:.16;--ws-light-x:76%;--ws-light-y:12%}
.sites-section-daylight-cafe{--ws-branch:var(--ws-daylight-mauve);--ws-engraving-opacity:.09;--ws-light-x:64%;--ws-light-y:8%}

/* Shared material field. Engraving artwork is supplied by each branch's Dore corpus;
   this layer owns density/blend/light so pages cannot invent local color effects. */
.ws-material-field{position:relative;isolation:isolate;background:var(--ws-surface);color:var(--ws-text)}
.ws-material-field:before,.ws-material-field:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1}
.ws-material-field:before{background:var(--ws-engraving-image,none) center/cover no-repeat;opacity:var(--ws-engraving-opacity);mix-blend-mode:var(--ws-engraving-blend)}
.ws-material-field:after{background:radial-gradient(circle at var(--ws-light-x) var(--ws-light-y),color-mix(in oklab,var(--ws-branch) var(--ws-light-strength),white),transparent var(--ws-light-radius));opacity:.72}

/* Semantic consumption */
.ws-color-atmosphere{background:var(--ws-atmosphere)}
.ws-color-surface{background:var(--ws-surface);color:var(--ws-text)}
.ws-color-raised{background:var(--ws-raised)}
.ws-color-line{border-color:var(--ws-line)}
.ws-color-identity{color:var(--ws-branch)}
.ws-color-interaction{color:var(--ws-interaction)}
.ws-color-deep{color:var(--ws-deep)}
.ws-color-shadow{color:var(--ws-shadow)}


/* Motion changes illumination, never branch identity. */
[data-ws-light="dawn"]{--ws-light-x:24%;--ws-light-y:6%;--ws-light-strength:12%}
[data-ws-light="sacred"]{--ws-light-x:50%;--ws-light-y:0%;--ws-light-strength:9%}
[data-ws-light="scripture"]{--ws-light-x:58%;--ws-light-y:14%;--ws-light-strength:8%}
[data-ws-light="hillside"]{--ws-light-x:78%;--ws-light-y:20%;--ws-light-strength:8%}
[data-ws-light="reading"]{--ws-light-x:38%;--ws-light-y:12%;--ws-light-strength:7%}
[data-ws-light="projection"]{--ws-light-x:50%;--ws-light-y:28%;--ws-light-strength:11%}
[data-ws-light="daylight"]{--ws-light-x:62%;--ws-light-y:4%;--ws-light-strength:9%}

@media (prefers-reduced-motion:reduce){.ws-material-field:after{transition:none}}


/* === Color Operating System v1 ============================================
   Every branch exposes the same executable roles. Components consume roles,
   never anchors. The scale is perceptual (OKLab color-mix), so material,
   engraving and illumination remain inside one chromatic family. */
:root{
  --ws-material:color-mix(in oklab,var(--ws-branch) 6%,var(--ws-surface));
  --ws-structure:color-mix(in oklab,var(--ws-branch) 34%,var(--ws-ink));
  --ws-identity:var(--ws-branch);
  --ws-engraving:color-mix(in oklab,var(--ws-branch) 46%,var(--ws-ink));
  --ws-text-muted:color-mix(in oklab,var(--ws-branch) 12%,var(--ws-ink));
  --ws-focus:color-mix(in oklab,var(--ws-branch) 82%,var(--ws-ink));
  --ws-selection:color-mix(in oklab,var(--ws-branch) 24%,var(--ws-paper));
}

/* Branch material territories. These are executable assignments, not page decoration. */
.sites-section-church{
  --ws-material:color-mix(in oklab,var(--ws-water) 7%,white);
  --ws-engraving:color-mix(in oklab,var(--ws-water) 42%,var(--ws-ink));
}
.sites-section-journal,.sites-section-vol-00{
  --ws-material:color-mix(in oklab,var(--ws-first-light) 7%,var(--ws-paper));
  --ws-engraving:color-mix(in oklab,var(--ws-first-light) 48%,var(--ws-ink));
}
.section-one,.sites-section-one{
  --ws-material:color-mix(in oklab,var(--ws-pale-gold) 13%,var(--ws-papyrus));
  --ws-engraving:color-mix(in oklab,var(--ws-pale-gold) 38%,#4b391a);
}
.sites-section-olive{
  --ws-material:color-mix(in oklab,var(--ws-olive) 9%,var(--ws-paper));
  --ws-engraving:color-mix(in oklab,var(--ws-olive) 48%,var(--ws-ink));
}
.sites-section-dawn-library{
  --ws-material:color-mix(in oklab,var(--ws-harvest) 9%,var(--ws-paper));
  --ws-engraving:color-mix(in oklab,var(--ws-harvest) 52%,#4b3822);
}
.sites-section-cinema{
  --ws-material:color-mix(in oklab,var(--ws-crimson) 8%,var(--ws-paper));
  --ws-engraving:color-mix(in oklab,var(--ws-crimson) 54%,var(--ws-ink));
}
.sites-section-daylight-cafe{
  --ws-material:color-mix(in oklab,var(--ws-daylight-mauve) 8%,var(--ws-paper));
  --ws-engraving:color-mix(in oklab,var(--ws-daylight-mauve) 42%,var(--ws-ink));
}

/* Functional zones */
[data-ws-zone="atmosphere"]{background:var(--ws-atmosphere);color:var(--ws-text)}
[data-ws-zone="material"]{background:var(--ws-material);color:var(--ws-text)}
[data-ws-zone="surface"]{background:var(--ws-surface);color:var(--ws-text)}
[data-ws-zone="raised"]{background:var(--ws-raised);color:var(--ws-text)}
[data-ws-zone="identity"]{color:var(--ws-identity)}
[data-ws-zone="deep"]{background:var(--ws-deep);color:var(--ws-paper)}
[data-ws-zone="structure"]{border-color:var(--ws-structure)}
[data-ws-zone="engraving"]{color:var(--ws-engraving)}

/* Shared component behavior */
.sites-surface :where(a,button,[role="button"]):focus-visible{
  outline:2px solid var(--ws-focus);outline-offset:3px;
}
.sites-surface ::selection{background:var(--ws-selection);color:var(--ws-ink)}
.sites-surface :where(hr,.ws-rule){border-color:var(--ws-structure)}
.sites-surface :where(.ws-muted,small){color:var(--ws-text-muted)}

/* Dore linework inherits branch material identity when used as mask/currentColor.
   Raster engravings remain controlled by opacity/blend in .ws-material-field. */
.ws-engraving{color:var(--ws-engraving)}
.ws-engraving :where(svg,path,line,polyline,polygon,circle,ellipse){stroke:currentColor}
.ws-engraving [fill]:not([fill="none"]){fill:currentColor}

/* Shared site chrome stays neutral; current branch appears as a restrained signal. */
.sites-surface .sites-layer-header{border-color:color-mix(in oklab,var(--ws-structure) 45%,transparent)}
.sites-surface .sites-layer-nav a[aria-current="page"],
.sites-surface .sites-layer-section-nav a[aria-current="page"]{color:var(--ws-identity);text-decoration-color:var(--ws-structure)}
.sites-surface .sites-layer-footer{border-color:color-mix(in oklab,var(--ws-structure) 48%,transparent)}


/* Material density is responsive: preserve information before texture. */
@media(max-width:760px){
  :root{--ws-engraving-opacity:.075;--ws-light-strength:7%}
}
@media(prefers-contrast:more){
  :root{--ws-line:color-mix(in oklab,var(--ws-text) 42%,transparent);--ws-text-muted:var(--ws-text)}
  .sites-surface :where(a,button,[role="button"]):focus-visible{outline-width:3px}
}


/* === Product Color Protocol ==============================================
   The Color OS is site-wide infrastructure, not a Sites-only theme.
   Products opt into a family + material + light context and receive the same
   semantic runtime contract without inheriting a page layout. */
[data-ws-product],[data-ws-color-family]{
  --ws-product-surface:var(--ws-surface);
  --ws-product-text:var(--ws-text);
  --ws-product-muted:var(--ws-text-muted);
  --ws-product-line:var(--ws-structure);
  --ws-product-accent:var(--ws-identity);
  --ws-product-active:var(--ws-interaction);
  --ws-product-focus:var(--ws-focus);
  --ws-product-selection:var(--ws-selection);
  --ws-product-engraving:var(--ws-engraving);
  color:var(--ws-product-text);
}

/* Reusable families for ONE, Dore Folio, Multiwrite, Gate, Reader and future tools. */
[data-ws-color-family="bible"]{--ws-branch:var(--ws-pale-gold);--ws-surface:var(--ws-papyrus);--ws-engraving-opacity:.14}
[data-ws-color-family="water"]{--ws-branch:var(--ws-water)}
[data-ws-color-family="magazine"]{--ws-branch:var(--ws-first-light)}
[data-ws-color-family="sermon"]{--ws-branch:var(--ws-olive)}
[data-ws-color-family="book"]{--ws-branch:var(--ws-harvest)}
[data-ws-color-family="cinema"]{--ws-branch:var(--ws-crimson)}
[data-ws-color-family="life"]{--ws-branch:var(--ws-daylight-mauve)}
[data-ws-color-family="neutral"]{--ws-branch:var(--ws-ink);--ws-surface:var(--ws-paper)}

/* Product components consume these aliases; product UI may define geometry,
   never a competing chromatic system. */
[data-ws-product] :where(input,textarea,select,button){
  border-color:var(--ws-product-line);
  accent-color:var(--ws-product-accent);
}
[data-ws-product] :where(input,textarea,select,button,a):focus-visible{
  outline:2px solid var(--ws-product-focus);outline-offset:2px;
}
[data-ws-product] ::selection{background:var(--ws-product-selection);color:var(--ws-ink)}
[data-ws-product] [aria-current="true"],
[data-ws-product] [aria-selected="true"],
[data-ws-product] [aria-pressed="true"]{color:var(--ws-product-active)}
[data-ws-product] :where(.ws-product-rule,hr){border-color:var(--ws-product-line)}
[data-ws-product] .ws-product-muted{color:var(--ws-product-muted)}
[data-ws-product] .ws-product-accent{color:var(--ws-product-accent)}
[data-ws-product] .ws-product-surface{background:var(--ws-product-surface);color:var(--ws-product-text)}


/* === Main Site Color Migration ===========================================
   First-layer composition now consumes Color OS roles instead of the legacy
   paper/night/gold mini-theme. The homepage is a convergence surface: branch
   identity appears as restrained signals while shared material stays neutral. */
body.home{
  --paper:var(--ws-surface);
  --paper-deep:var(--ws-material);
  --ink:var(--ws-text);
  --line:var(--ws-line);
  background:var(--ws-surface);
  color:var(--ws-text);
}
body.home .sites-home-hero{
  /* First paint matches the warm editorial film fallback; never the old night/gold skin. */
  --ws-home-hero-deep:#eee8da;
  background:#eee8da;
  color:var(--ws-paper);
}
body.home .sites-home-film:after{
  background:linear-gradient(90deg,
    color-mix(in oklab,var(--ws-home-hero-deep) 88%,transparent),
    color-mix(in oklab,var(--ws-home-hero-deep) 16%,transparent) 58%,
    color-mix(in oklab,var(--ws-home-hero-deep) 52%,transparent));
}
body.home .sites-home-water{
  --ws-branch:var(--ws-water);
  --ws-material:color-mix(in oklab,var(--ws-water) 9%,var(--ws-paper));
  background:var(--ws-material);
}
body.home .sites-home-water .sites-home-section-head{border-color:color-mix(in oklab,var(--ws-water) 32%,transparent)}
body.home .sites-home-water-item img{filter:saturate(.82) contrast(.96)}
body.home .sites-home-water-item :where(span,p){color:color-mix(in oklab,var(--ws-water) 38%,var(--ws-ink))}

body.home .sites-home-gather{
  --ws-branch:var(--ws-first-light);
  background:color-mix(in oklab,var(--ws-first-light) 3%,var(--ws-paper));
}
body.home .sites-home-gather-media i{
  background:color-mix(in oklab,var(--ws-first-light) 14%,var(--ws-ink));
  border-color:color-mix(in oklab,var(--ws-first-light) 26%,transparent);
  box-shadow:0 25px 55px color-mix(in oklab,var(--ws-first-light) 9%,transparent);
}
body.home .sites-home-gather-media i img{filter:grayscale(.24) sepia(.10) saturate(.86)}
body.home .sites-home-gather-copy{border-color:color-mix(in oklab,var(--ws-first-light) 28%,transparent)}

body.home .sites-home-city{
  --ws-branch:var(--ws-olive);
  --ws-city-deep:color-mix(in oklab,var(--ws-olive) 42%,var(--ws-night));
  background:var(--ws-city-deep);
  color:var(--ws-paper);
}
body.home .sites-home-city .sites-home-section-head{border-color:color-mix(in oklab,var(--ws-paper) 24%,transparent)}
body.home .sites-home-city-grid{background:color-mix(in oklab,var(--ws-olive) 38%,transparent)}
body.home .sites-home-city-tile{background:color-mix(in oklab,var(--ws-olive) 20%,var(--ws-night))}
body.home .sites-home-city-tile img{filter:grayscale(.48) saturate(.68) brightness(.58)}
body.home .sites-home-city-tile:after{
  background:linear-gradient(180deg,transparent,color-mix(in oklab,var(--ws-city-deep) 88%,transparent));
}
body.home .sites-home-city-tile:hover img{filter:grayscale(.08) saturate(.9) brightness(.76)}

body.home .sites-home-closing{
  --ws-branch:var(--ws-daylight-mauve);
  background:color-mix(in oklab,var(--ws-daylight-mauve) 5%,var(--ws-paper));
}
body.home .sites-home-closing blockquote{color:color-mix(in oklab,var(--ws-daylight-mauve) 18%,var(--ws-ink))}
body.home .sites-layer-footer{background:var(--ws-surface);border-color:var(--ws-line)}

/* Branch pages receive material before local legacy CSS can turn identity into
   an unrelated theme. Keep reading surfaces quiet; identity is strongest in
   rules, current states and small structural signals. */
.sites-surface:not(.sites-section-cinema){background:var(--ws-surface);color:var(--ws-text)}
.sites-surface :where(.sites-second-layer,.sites-surface-inner,.sites-church,.sites-church-inner){
  --ws-local-rule:color-mix(in oklab,var(--ws-structure) 72%,transparent);
}
.sites-surface :where(.sites-layer-header,.sites-layer-footer){background:color-mix(in oklab,var(--ws-branch) 2%,var(--ws-paper))}
.sites-surface .sites-layer-section-nav{border-color:color-mix(in oklab,var(--ws-structure) 58%,transparent)}
.sites-surface .sites-layer-section-nav>span{color:var(--ws-identity)}
.sites-surface :where(.sites-layer-nav,.sites-layer-section-nav) a:hover{color:var(--ws-interaction)}

/* Cinema uses the canonical crimson projection family. */
.sites-section-cinema{
  --ws-cinema-deep:color-mix(in oklab,var(--ws-crimson) 34%,var(--ws-night));
  background:var(--ws-cinema-deep);
}
.sites-section-cinema :where(.sites-layer-header,.sites-layer-footer){
  background:color-mix(in oklab,var(--ws-crimson) 10%,var(--ws-paper));
  color:var(--ws-ink);
}


/* === Branch Surface Migration — seven first-level identities ==============
   Quiet reading surfaces stay material-led. Identity concentrates in rules,
   raised cards, current states and branch-specific light rather than floods. */
.sites-section-church{
  --ws-branch-surface:color-mix(in oklab,var(--ws-water) 5%,white);
  --ws-branch-raised:color-mix(in oklab,var(--ws-water) 9%,white);
  --ws-branch-rule:color-mix(in oklab,var(--ws-water) 34%,transparent);
}
.sites-section-journal,.sites-section-vol-00{
  --ws-branch-surface:color-mix(in oklab,var(--ws-first-light) 4%,var(--ws-paper));
  --ws-branch-raised:color-mix(in oklab,var(--ws-first-light) 9%,var(--ws-paper));
  --ws-branch-rule:color-mix(in oklab,var(--ws-first-light) 36%,transparent);
}
.sites-section-olive{
  --ws-branch-surface:color-mix(in oklab,var(--ws-olive) 5%,var(--ws-paper));
  --ws-branch-raised:color-mix(in oklab,var(--ws-olive) 10%,var(--ws-paper));
  --ws-branch-rule:color-mix(in oklab,var(--ws-olive) 38%,transparent);
}
.sites-section-dawn-library{
  --ws-branch-surface:color-mix(in oklab,var(--ws-harvest) 5%,var(--ws-paper));
  --ws-branch-raised:color-mix(in oklab,var(--ws-harvest) 10%,var(--ws-paper));
  --ws-branch-rule:color-mix(in oklab,var(--ws-harvest) 38%,transparent);
}
.sites-section-cinema{
  --ws-branch-surface:color-mix(in oklab,var(--ws-crimson) 4%,var(--ws-paper));
  --ws-branch-raised:color-mix(in oklab,var(--ws-crimson) 10%,var(--ws-paper));
  --ws-branch-rule:color-mix(in oklab,var(--ws-crimson) 40%,transparent);
}
.sites-section-daylight-cafe{
  --ws-branch-surface:color-mix(in oklab,var(--ws-daylight-mauve) 5%,var(--ws-paper));
  --ws-branch-raised:color-mix(in oklab,var(--ws-daylight-mauve) 10%,var(--ws-paper));
  --ws-branch-rule:color-mix(in oklab,var(--ws-daylight-mauve) 34%,transparent);
}
.sites-surface{
  --paper:var(--ws-branch-surface,var(--ws-surface));
  --paper2:var(--ws-branch-raised,var(--ws-material));
  --ink:var(--ws-text);
  --line:var(--ws-branch-rule,var(--ws-line));
  --sites-paper:var(--ws-branch-surface,var(--ws-surface));
  --sites-ink:var(--ws-text);
  background:var(--ws-branch-surface,var(--ws-surface))!important;
}
.sites-surface :where(.sites-journal-head,.sites-volume-head,.sites-surface-head,.sites-church-intro,
.sites-journal-current,.sites-journal-routes,.sites-surface-entries,.sites-church-entries,
.sites-volume-movement,.sites-church-footer){border-color:var(--ws-branch-rule,var(--ws-line))}
.sites-surface :where(.sites-journal-routes,.sites-surface-entries,.sites-church-entries) a:hover,
.sites-surface .sites-volume-movement li:hover{background:var(--ws-branch-raised,var(--ws-raised))}
.sites-surface :where(.sites-journal-current strong,.sites-surface-head h1,.sites-church-intro h1){
  text-decoration-color:var(--ws-branch-rule,var(--ws-line));
}

/* LivingWaterWest — white/water-blue/gold, with blue as identity and gold as light. */
.sites-section-church .sites-layer-header,
.sites-section-church+.sites-layer-footer{background:color-mix(in oklab,var(--ws-water) 4%,white)}
.sites-section-church .sites-church-gather{background:var(--ws-branch-surface)}
.sites-section-church .sites-church-water{
  background:linear-gradient(115deg,
    color-mix(in oklab,var(--ws-water) 14%,white) 0%,
    color-mix(in oklab,var(--ws-water) 5%,white) 64%,white 100%);
}
.sites-section-church .sites-church-life{background:color-mix(in oklab,var(--ws-water) 2%,white)}
.sites-section-church .sites-church-scripture{background:color-mix(in oklab,var(--ws-water) 8%,white)}
.sites-section-church .sites-church-gather:after{border-color:color-mix(in oklab,var(--ws-water) 30%,transparent)}
.sites-section-church .sites-church-water:after{
  background:linear-gradient(90deg,transparent,var(--ws-water),color-mix(in oklab,var(--ws-pale-gold) 55%,var(--ws-water)),transparent)
}

/* Magazine — First Light is editorial punctuation, never a gold wash. */
.sites-section-journal .sites-journal-current,
.sites-section-vol-00 .sites-volume-opening{background:color-mix(in oklab,var(--ws-first-light) 7%,var(--ws-paper))}
.sites-section-journal :where(.sites-journal-current span,.sites-breadcrumb),
.sites-section-vol-00 :where(.sites-volume-opening>p,.sites-volume-contents>header>p){color:var(--ws-deep)}

/* Sermon — olive hillside material. */
.sites-section-olive :where(.sites-surface-head,.sites-surface-entries){border-color:var(--ws-branch-rule)}
.sites-section-olive .sites-surface-entries a:hover{background:var(--ws-branch-raised)}

/* Book — harvest paper, preserving publication quiet. */
.sites-section-dawn-library{background:var(--ws-branch-surface)!important}
.sites-section-dawn-library :where(.sites-layer-header,.sites-layer-footer){background:color-mix(in oklab,var(--ws-harvest) 3%,var(--ws-paper))}

/* Cinema — crimson projection identity; gold literals inherited from old CSS
   are redirected through --gold to crimson rather than becoming a second voice. */
.sites-section-cinema{
  --gold:var(--ws-crimson);
  --paper:var(--ws-branch-surface);
  --line:var(--ws-branch-rule);
}
.sites-section-cinema :where(.sites-cinema,.cinema-shell,.cinema-archive){accent-color:var(--ws-crimson)}
.sites-section-cinema :where(a,button,[role="button"]):focus-visible{outline-color:var(--ws-focus)}

/* Life — daylight mauve remains low-chroma and airy. */
.sites-section-daylight-cafe :where(.sites-surface-head,.sites-surface-entries){border-color:var(--ws-branch-rule)}
.sites-section-daylight-cafe .sites-surface-entries a:hover{background:var(--ws-branch-raised)}

/* Bible / ONE is a product rather than a Sites surface, but it is one of the
   seven first-level identities and receives the same complete role contract. */
[data-ws-product="one"][data-ws-color-family="bible"]{
  --ws-product-surface:var(--ws-papyrus);
  --ws-product-accent:var(--ws-pale-gold);
  --ws-product-line:color-mix(in oklab,var(--ws-pale-gold) 42%,#4b391a);
  --ws-product-muted:color-mix(in oklab,var(--ws-pale-gold) 18%,var(--ws-ink));
  background:var(--ws-product-surface);
  color:var(--ws-product-text);
}
[data-ws-product="one"] :where(.card,.panel,.surface,[data-surface]){
  border-color:var(--ws-product-line);
}
[data-ws-product="one"] :where([aria-current="true"],[aria-selected="true"],[aria-pressed="true"]){
  background:color-mix(in oklab,var(--ws-pale-gold) 14%,var(--ws-papyrus));
}


/* === Final Color Calibration ============================================== */
:root{--ws-event:var(--ws-interaction);--ws-event-soft:color-mix(in oklab,var(--ws-branch) 14%,var(--ws-surface));--ws-chrome:color-mix(in oklab,var(--ws-branch) 2%,var(--ws-paper))}
.sites-surface{color-scheme:light;caret-color:var(--ws-interaction)}
.sites-surface :where(a,button,[role="button"]){text-decoration-color:color-mix(in oklab,var(--ws-identity) 46%,transparent)}
.sites-surface :where(a,button,[role="button"]):active{color:var(--ws-event)}
.sites-surface :where(.sites-layer-header,.sites-layer-footer){background:var(--ws-chrome)}
.sites-surface :where(.sites-layer-nav,.sites-layer-section-nav) a[aria-current="page"]{color:var(--ws-identity);text-decoration-thickness:1px;text-underline-offset:.32em}
.sites-surface :where(.sites-journal-routes,.sites-surface-entries,.sites-church-entries) a:hover{background:var(--ws-event-soft)}
body.home .sites-home-hero,body.home .sites-home-city,.sites-section-cinema .ws-dark-surface{--ws-structure:color-mix(in oklab,var(--ws-paper) 30%,transparent);--ws-line:color-mix(in oklab,var(--ws-paper) 24%,transparent)}
.sites-section-church img{--ws-image-sat:.90}.sites-section-journal img,.sites-section-vol-00 img{--ws-image-sat:.92}.sites-section-olive img{--ws-image-sat:.86}.sites-section-dawn-library img{--ws-image-sat:.88}.sites-section-cinema img{--ws-image-sat:.90}.sites-section-daylight-cafe img{--ws-image-sat:.94}
.sites-surface img{transition:filter .45s ease}.sites-surface :where(article,a,figure):hover img{filter:saturate(var(--ws-image-sat,1)) contrast(.98)}
@media(max-width:760px){.sites-section-church{--ws-branch-surface:color-mix(in oklab,var(--ws-water) 3%,white)}.sites-section-journal,.sites-section-vol-00{--ws-branch-surface:color-mix(in oklab,var(--ws-first-light) 2.5%,var(--ws-paper))}.sites-section-olive{--ws-branch-surface:color-mix(in oklab,var(--ws-olive) 3%,var(--ws-paper))}.sites-section-dawn-library{--ws-branch-surface:color-mix(in oklab,var(--ws-harvest) 3%,var(--ws-paper))}.sites-section-daylight-cafe{--ws-branch-surface:color-mix(in oklab,var(--ws-daylight-mauve) 3%,var(--ws-paper))}body.home .sites-home-water{--ws-material:color-mix(in oklab,var(--ws-water) 6%,var(--ws-paper))}body.home .sites-home-gather{background:color-mix(in oklab,var(--ws-first-light) 2%,var(--ws-paper))}body.home .sites-home-closing{background:color-mix(in oklab,var(--ws-daylight-mauve) 3%,var(--ws-paper))}}
@media(min-width:2560px){.sites-surface{--ws-branch-rule:color-mix(in oklab,var(--ws-branch) 42%,transparent)}.sites-surface .sites-layer-header{border-bottom-color:color-mix(in oklab,var(--ws-structure) 52%,transparent)}}
@media(prefers-contrast:more){.sites-surface{--ws-branch-rule:color-mix(in oklab,var(--ws-branch) 58%,var(--ws-ink))}.sites-surface :where(.sites-layer-nav,.sites-layer-section-nav) a[aria-current="page"]{text-decoration:underline}}
@media(prefers-reduced-motion:reduce){.sites-surface img{transition:none}}


/* === Chromatic Coverage Pass ==============================================
   First-layer identity must read at a glance; product internals inherit the
   same family even when their own legacy shells still paint paper surfaces. */
body.home .sites-home-realm{background:color-mix(in oklab,var(--realm) 18%,var(--ws-paper))}
body.home .sites-home-realm:before{background:radial-gradient(circle at 78% 22%,color-mix(in oklab,var(--realm) 34%,transparent),transparent 38%),repeating-radial-gradient(ellipse 92% 58% at 16% 74%,transparent 0 16px,color-mix(in oklab,var(--realm) 13%,transparent) 16px 17px);opacity:.88}
body.home .sites-home-realm>span,body.home .sites-home-realm b{color:color-mix(in oklab,var(--realm) 72%,var(--ws-ink))}
body.home .sites-home-realm h2 em{color:color-mix(in oklab,var(--realm) 78%,var(--ws-ink))}

.sites-section-church{--ws-branch-surface:color-mix(in oklab,var(--ws-water) 11%,white);--ws-branch-raised:color-mix(in oklab,var(--ws-water) 18%,white)}
.sites-section-journal,.sites-section-vol-00{--ws-branch-surface:color-mix(in oklab,var(--ws-first-light) 10%,var(--ws-paper));--ws-branch-raised:color-mix(in oklab,var(--ws-first-light) 17%,var(--ws-paper))}
.sites-section-olive{--ws-branch-surface:color-mix(in oklab,var(--ws-olive) 12%,var(--ws-paper));--ws-branch-raised:color-mix(in oklab,var(--ws-olive) 19%,var(--ws-paper))}
.sites-section-dawn-library{--ws-branch-surface:color-mix(in oklab,var(--ws-harvest) 13%,var(--ws-paper));--ws-branch-raised:color-mix(in oklab,var(--ws-harvest) 20%,var(--ws-paper))}
.sites-section-cinema{--ws-branch-surface:color-mix(in oklab,var(--ws-crimson) 11%,var(--ws-paper));--ws-branch-raised:color-mix(in oklab,var(--ws-crimson) 19%,var(--ws-paper))}
.sites-section-daylight-cafe{--ws-branch-surface:color-mix(in oklab,var(--ws-daylight-mauve) 11%,var(--ws-paper));--ws-branch-raised:color-mix(in oklab,var(--ws-daylight-mauve) 18%,var(--ws-paper))}

/* Seal legacy white/paper islands inside first-level Sites pages. */
.sites-surface :where(main,#main,.section-atlas,.section-atlas__cover,.section-atlas__index,.sites-second-layer,.sites-surface-content,.sites-atlas-prologue){background-color:var(--ws-branch-surface,var(--ws-surface))}
.sites-surface :where(.atlas-entry,.sites-journal-current,.sites-journal-routes a,.sites-surface-entries a,.sites-church-entries a){background-color:color-mix(in oklab,var(--ws-branch) 7%,var(--ws-branch-surface,var(--ws-surface)))}

/* Dawn Library and Cinema contain product shells with their own historical
   paper variables; bind those variables to Color OS instead of recoloring
   individual components one by one. */
.sites-section-dawn-library{--paper:var(--ws-branch-surface);--paper2:var(--ws-branch-raised);--bg:var(--ws-branch-surface);--background:var(--ws-branch-surface);--cream:var(--ws-branch-surface)}
.sites-section-dawn-library :where(.sites-dawn-library,.dawn-library,.library-shell,.library-home,.reader-shell,.catalogue,.collection){background-color:var(--ws-branch-surface)!important}
.sites-section-dawn-library :where(.card,.book-card,.collection-card,.reader-panel,.catalogue-item){background-color:var(--ws-branch-raised)!important}
.sites-section-cinema :where(.sites-cinema,.cinema-shell,.cinema-archive,main,#main){background-color:var(--ws-branch-surface)}


/* === Sole Color Ownership Pass ============================================
   Branch interiors and their nested product shells consume the same branch
   surface tokens as their first-layer realm. No child may restore white/paper. */
.sites-surface{background-color:var(--ws-branch-surface,var(--ws-surface))}
.sites-surface :where(main,#main,section,article,aside,header,footer,nav,div){
 --paper:var(--ws-branch-surface,var(--ws-surface));
 --paper2:var(--ws-branch-raised,var(--ws-material));
 --bg:var(--ws-branch-surface,var(--ws-surface));
 --background:var(--ws-branch-surface,var(--ws-surface));
 --cream:var(--ws-branch-surface,var(--ws-surface))
}
.sites-surface :where(.sites-second-layer,.sites-surface-content,.section-atlas__cover,.section-atlas__index,.sites-atlas-prologue,.sites-church,.sites-church-intro,.sites-church-gather,.sites-church-water,.sites-church-life,.sites-church-scripture,.sites-dawn-library,.sites-cinema,.library-shell,.library-home,.reader-shell,.catalogue,.collection){
 background-color:transparent!important;background-image:none!important
}
.sites-surface :where(.atlas-entry,.sites-journal-current,.sites-journal-routes a,.sites-surface-entries a,.sites-church-entries a,.card,.book-card,.collection-card,.reader-panel,.catalogue-item){
 background-color:color-mix(in oklab,var(--ws-branch) 7%,var(--ws-branch-surface,var(--ws-surface)))!important
}


/* Regression seal: Sites pages always retain document scrolling. */
html:has(body.sites-surface),body.sites-surface{overflow-x:hidden;overflow-y:auto!important;height:auto!important;min-height:100%}
body.sites-surface>main{overflow:visible!important;min-height:100svh}

/* Product carriers: parent surface remains visibly chromatic around isolated products. */
.sites-section-dawn-library,.sites-section-cinema{background-color:var(--ws-branch-surface)!important}
.sites-section-dawn-library .sites-dawn-library,.sites-section-cinema .sites-cinema{background-color:transparent!important}
.sites-section-dawn-library .sites-product-frame{background:#ead7a8}

:root{--ws-design-os:"westside-v1";--ws-design-scope:"global"}
[data-ws-scope]{--ws-design-scope:"local"}
[data-ws-scope="church"]{--ws-scope-identity:var(--ws-water)}
[data-ws-scope="journal"]{--ws-scope-identity:var(--ws-first-light)}
[data-ws-scope="one"]{--ws-scope-identity:var(--ws-pale-gold)}
[data-ws-scope="olive"]{--ws-scope-identity:var(--ws-olive)}
[data-ws-scope="dawn-library"]{--ws-scope-identity:var(--ws-harvest)}
[data-ws-scope="cinema"]{--ws-scope-identity:var(--ws-crimson)}
[data-ws-scope="daylight-cafe"]{--ws-scope-identity:var(--ws-daylight-mauve)}
[data-ws-scope="search"],[data-ws-scope="tool"]{--ws-scope-identity:var(--ws-ink)}
[data-ws-scope]{--ws-identity:var(--ws-scope-identity,var(--ws-branch))}

/* Unified typography authority for non-Olive surfaces.
   Scoped to interface roles; the Olive Mountain poster system is untouched. */
:where(body[data-ws-scope]:not([data-ws-scope="olive"])){
 --ws-type-pair-en-size:var(--ws-type-scale-display-xl);
 --ws-type-pair-zh-size:var(--ws-type-scale-title-md);
 --ws-type-pair-gap:clamp(10px,1.3vw,22px);
}
:where(body[data-ws-scope]:not([data-ws-scope="olive"])) :is(.ws-type-pair-en,.sites-layer-en,.section-atlas__english,.editorial-en,.sites-church-en,.sites-english-title){
 font-family:var(--ws-type-display-en,"Bodoni Moda",serif)!important;
 font-size:var(--ws-type-pair-en-size);font-weight:400!important;
 line-height:.94;letter-spacing:-.035em;font-synthesis:none;
}
:where(body[data-ws-scope]:not([data-ws-scope="olive"])) :is(.ws-type-pair-zh,.sites-layer-zh,.section-atlas__chinese,.editorial-zh,.sites-church-zh,.sites-chinese-title){
 font-family:var(--ws-type-display-zh,"Chiron Hei HK WS",sans-serif)!important;
 font-size:var(--ws-type-pair-zh-size);font-weight:200!important;
 line-height:1.3;letter-spacing:.08em;font-synthesis:none;
}
:where(body[data-ws-scope]:not([data-ws-scope="olive"])) .ws-type-pair{
 display:flex;flex-direction:column;align-items:flex-start;gap:var(--ws-type-pair-gap);
}

/* Canonical bilingual section heading; opt-in, excludes Olive Mountain. */
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-bilingual-heading{
 display:flex;flex-direction:column;align-items:flex-start;
 gap:var(--ws-bilingual-gap,clamp(8px,1vw,18px));
}
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-bilingual-heading__en{
 display:block;font-family:var(--ws-type-display-en,"Bodoni Moda",serif)!important;
 font-size:var(--ws-type-scale-title-lg,clamp(32px,3vw,60px));
 font-weight:400!important;line-height:1.05;font-synthesis:none;
}
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-bilingual-heading__zh{
 display:block;font-family:var(--ws-type-display-zh,"Chiron Hei HK WS",sans-serif)!important;
 font-size:var(--ws-type-scale-title-sm,clamp(20px,1.5vw,30px));
 font-weight:200!important;line-height:1.35;font-synthesis:none;
}

/* Bilingual heading on shared second-layer surfaces. */
body[data-ws-scope]:not([data-ws-scope="olive"]) .sites-journal-head .ws-bilingual-heading{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(8px,1vw,18px)}
body[data-ws-scope]:not([data-ws-scope="olive"]) .sites-journal-head .ws-bilingual-heading__en{font-family:var(--ws-type-display-en,"Bodoni Moda",serif)!important;font-size:var(--ws-type-scale-display-xl);font-weight:400!important;line-height:.94}
body[data-ws-scope]:not([data-ws-scope="olive"]) .sites-journal-head .ws-bilingual-heading__zh{font-family:var(--ws-type-display-zh,"Chiron Hei HK WS",sans-serif)!important;font-size:var(--ws-type-scale-title-md);font-weight:200!important;line-height:1.3}

/* Shared portal title authority: English headline / smaller Chinese title.
   Used by Daylight Cafe and other portal pages, never Olive posters. */
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-surface-heading{
 --ws-portal-en-size:var(--ws-type-scale-display-xl);
 --ws-portal-zh-size:var(--ws-type-scale-title-md);
}
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-surface-heading__en{
 font-family:var(--ws-type-display-en,"Bodoni Moda",serif)!important;
 font-size:var(--ws-portal-en-size)!important;font-weight:400!important;
 line-height:.94;letter-spacing:-.035em;font-synthesis:none;
 margin-block:0 clamp(12px,1.4vw,24px);
}
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-surface-heading__zh{
 font-family:var(--ws-type-display-zh,"Chiron Hei HK WS",sans-serif)!important;
 font-size:var(--ws-portal-zh-size)!important;font-weight:200!important;
 line-height:1.3;letter-spacing:.08em;font-synthesis:none;
 margin-block:0;
}
@media(max-width:600px){
 body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-surface-heading{
  --ws-portal-en-size:clamp(3rem,12vw,5rem);
  --ws-portal-zh-size:clamp(1.2rem,5vw,2rem);
 }
}

/* Section identities use the heaviest Chinese weight; editorial text stays airy.
   Explicit role only: never force Olive speaker artwork. */
body[data-ws-scope]:not([data-ws-scope="olive"]) :is(.ws-section-name-zh,[data-ws-type-role="section-name"]){
 font-family:var(--ws-type-display-zh,"Chiron Hei HK WS",sans-serif)!important;
 font-weight:var(--ws-weight-section,900)!important;font-synthesis:none;
}
body[data-ws-scope]:not([data-ws-scope="olive"]) .ws-surface-heading__zh{
 font-weight:var(--ws-weight-section,900)!important;
}

/* DESIGNABLE ZONE CONTRACT (one OS, scoped exceptions).
   Mark custom artwork with data-ws-designable. Only typography geometry
   inside these marked regions may be independently art-directed.
   Functional navigation, controls and links remain under OS authority.
   Supported initial regions: olive-poster, home-brand.
   Never stretch glyphs with transform:scaleX/scaleY. */
:root{--ws-designable-zone-version:1}
[data-ws-designable="olive-poster"]{
 --ws-designable-type-en-size:inherit;
 --ws-designable-type-zh-size:inherit;
}
[data-ws-designable="home-brand"]{
 --ws-designable-type-en-size:var(--ws-type-scale-display-xl);
 --ws-designable-type-zh-size:var(--ws-type-scale-title-sm);
}

/* Designable artwork is exempt from type-scale normalization, not from
   the site's font-family contract. Never target controls inside artwork. */
[data-ws-designable="olive-poster"] :is(.olive-speaker-english,.olive-speaker-chinese,.olive-speaker-typegroup){
 font-synthesis:none;
}


/* FIRST-LAYER EDITORIAL IDENTITY — canonical typography role.
   Applies to section entry titles and their destination mastheads.
   Unlike poster/home-brand designable artwork, this is an OS-managed role.
   The second line is a real Bodoni italic, never synthetic or stretched. */
:root{
 --ws-first-layer-title-family:var(--ws-type-display-en,"Bodoni Moda",serif);
 --ws-first-layer-title-weight:400;
 --ws-first-layer-title-style:normal;
 --ws-first-layer-accent-style:italic;
}
:where(.sites-home-realms .sites-home-realm > h2[lang="en"],
       .sites-church-intro h1,
       .sites-cinema-intro h1){
 font-family:var(--ws-first-layer-title-family);
 font-weight:var(--ws-first-layer-title-weight);
 font-style:var(--ws-first-layer-title-style);
 font-synthesis:none;
}
:where(.sites-home-realms .sites-home-realm > h2[lang="en"],
       .sites-church-intro h1,
       .sites-cinema-intro h1) em{
 font-family:inherit;
 font-weight:inherit;
 font-style:var(--ws-first-layer-accent-style);
 font-synthesis:none;
}

/* Unified Chinese font authority: every Chinese semantic role resolves to the
   one approved sans family. No Song/Kai fallback for display, reading or UI. */
:root{
 --ws-type-display-zh:"Chiron Hei HK WS","Noto Sans TC",sans-serif;
 --ws-type-reading-zh:var(--ws-type-display-zh);
 --ws-type-sans-zh:var(--ws-type-display-zh);
 --ws-type-body-zh:var(--ws-type-display-zh);
 --ws-type-zh:var(--ws-type-display-zh);
 --type-zh:var(--ws-type-display-zh);
 --type-ui:var(--ws-type-display-zh);
}

/* Cinematic frame palette authority: derive both dark frames from their existing
   realm colors, not independent black/gold or page-specific hardcoded values. */
:root{
 --ws-olive-frame-deep:color-mix(in oklab,var(--ws-olive) 30%,var(--ws-night));
 --ws-cinema-frame-deep:color-mix(in oklab,var(--ws-crimson) 34%,var(--ws-night));
}
[data-ws-color-family="sermon"]{--ws-realm-frame:var(--ws-olive-frame-deep)}
[data-ws-color-family="cinema"]{--ws-realm-frame:var(--ws-cinema-frame-deep)}

/* Shared immersive video homepage contract (all realms, one OS authority).
   Opt in with data-ws-immersive-video on a homepage stage. The surrounding
   color comes from the existing realm palette; media controls stay native. */
:root{
 --ws-immersive-inset:clamp(14px,2.6vw,52px);
 --ws-immersive-radius:clamp(14px,1.6vw,28px);
 --ws-immersive-frame:var(--ws-night);
}
[data-ws-color-family="sermon"]{--ws-immersive-frame:var(--ws-olive-frame-deep)}
[data-ws-color-family="cinema"]{--ws-immersive-frame:var(--ws-cinema-frame-deep)}
[data-ws-immersive-video]{
 box-sizing:border-box;
 border-radius:var(--ws-immersive-radius);
 background:var(--ws-immersive-frame);
 overflow:hidden;isolation:isolate;
}
[data-ws-immersive-video] [data-ws-immersive-media]{
 background:var(--ws-immersive-frame);
}
@media(max-width:760px){:root{--ws-immersive-inset:12px}}

/* Immersive shell: the global navigation belongs to the cinematic composition,
   not a separate white band. Applied only where a shared immersive stage exists. */
body.sites-surface:has([data-ws-immersive-video]){
 --ws-immersive-nav-height:clamp(40px,4.5vw,62px);
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header{
 position:absolute;inset:var(--ws-immersive-inset) var(--ws-immersive-inset) auto;
 z-index:60;width:auto;margin:0;border:0!important;
 background:transparent!important;color:#f7f3e8!important;
 pointer-events:none;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-primary{
 display:flex;align-items:center;justify-content:space-between;
 min-height:var(--ws-immersive-nav-height);gap:clamp(14px,2vw,32px);
 padding:0 clamp(16px,2vw,34px);
 border:0!important;background:transparent!important;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header :is(a,nav){pointer-events:auto}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav{
 display:flex;align-items:center;gap:clamp(8px,1.1vw,18px);
 padding:8px 12px;border-radius:999px;
 background:color-mix(in oklab,var(--ws-immersive-frame) 72%,transparent);
 backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav a{
 color:#f7f3e8!important;text-decoration:none;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav a[aria-current="page"]{
 text-decoration:underline;text-underline-offset:5px;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-wordmark img{
 max-height:clamp(24px,2.4vw,38px);
 filter:grayscale(1) brightness(0) invert(1);
}
@media(max-width:760px){
 body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header{
  inset:var(--ws-immersive-inset) var(--ws-immersive-inset) auto;
 }
 body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-primary{
  flex-wrap:wrap;gap:6px;padding:8px 12px;
 }
 body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav{
  max-width:100%;overflow-x:auto;scrollbar-width:none;
 }
}

/* Unified realm chromatic detail authority.
   All seven branches share identical semantic roles; only immersive video
   surfaces darken the branch palette. No black-and-gold variant. */
:root{
 --ws-realm-base:var(--ws-first-light);
 --ws-realm-ink:var(--ws-text);
 --ws-realm-muted:color-mix(in oklab,var(--ws-realm-ink) 65%,var(--ws-realm-base));
 --ws-realm-border:color-mix(in oklab,var(--ws-realm-base) 36%,transparent);
 --ws-realm-control:color-mix(in oklab,var(--ws-realm-base) 9%,var(--ws-paper));
 --ws-realm-control-hover:color-mix(in oklab,var(--ws-realm-base) 17%,var(--ws-paper));
 --ws-realm-accent:var(--ws-realm-base);
 --ws-realm-focus:var(--ws-realm-base);
 --ws-realm-frame:var(--ws-paper);
}
body.sites-section-church{--ws-realm-base:var(--ws-water)}
body.sites-section-journal,body.sites-section-vol-00{--ws-realm-base:var(--ws-first-light)}
body.sites-section-one,body.section-one{--ws-realm-base:var(--ws-pale-gold)}
body.sites-section-olive{--ws-realm-base:var(--ws-olive)}
body.sites-section-dawn-library{--ws-realm-base:var(--ws-harvest)}
body.sites-section-cinema,body.sites-cinema{--ws-realm-base:var(--ws-crimson)}
body.sites-section-daylight-cafe{--ws-realm-base:var(--ws-daylight-mauve)}
body.sites-surface:has([data-ws-immersive-video]),body.sites-cinema:has([data-ws-immersive-video]){
 --ws-realm-frame:color-mix(in oklab,var(--ws-realm-base) 32%,var(--ws-night));
 --ws-immersive-frame:var(--ws-realm-frame);
 --ws-realm-ink:#f7f3e8;
 --ws-realm-muted:color-mix(in oklab,var(--ws-realm-ink) 67%,var(--ws-realm-frame));
 --ws-realm-border:color-mix(in oklab,var(--ws-realm-ink) 22%,transparent);
 --ws-realm-control:color-mix(in oklab,var(--ws-realm-frame) 78%,transparent);
 --ws-realm-control-hover:color-mix(in oklab,var(--ws-realm-base) 44%,var(--ws-realm-frame));
 --ws-realm-focus:var(--ws-realm-ink);
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav{
 color:var(--ws-realm-ink)!important;
 background:var(--ws-realm-control)!important;
 border:1px solid var(--ws-realm-border)!important;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav a{
 color:var(--ws-realm-ink)!important;
}
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav a:hover,
body.sites-surface:has([data-ws-immersive-video])>.sites-layer-header .sites-layer-nav a:focus-visible{
 background:var(--ws-realm-control-hover)!important;
 outline-color:var(--ws-realm-focus);
}
body.sites-surface:not(:has([data-ws-immersive-video])) .sites-layer-nav a:focus-visible{
 outline-color:var(--ws-realm-focus);
}

/* First-layer authority: neutral Watch/Witness/Walk/Worship transitions and
   seven branded First Look surfaces inherit the same realm color tokens.
   The Candidate01 geometry, morph and scroll runtime are not styled here. */
:root{
 --ws-first-layer-paper:var(--ws-paper);
 --ws-first-layer-ink:var(--ws-ink);
 --ws-first-layer-engraving:color-mix(in oklab,var(--ws-water) 24%,transparent);
 --ws-first-look-depth:color-mix(in oklab,var(--ws-realm-base) 15%,var(--ws-paper));
 --ws-first-look-ink:var(--ws-text);
 --ws-first-look-line:color-mix(in oklab,var(--ws-realm-base) 38%,transparent);
 --ws-first-look-light:color-mix(in oklab,var(--ws-paper) 58%,transparent);
}
.sites-home-realm[data-realm=church]{--ws-realm-base:var(--ws-water)}
.sites-home-realm[data-realm=magazine]{--ws-realm-base:var(--ws-first-light)}
.sites-home-realm[data-realm=bible]{--ws-realm-base:var(--ws-pale-gold)}
.sites-home-realm[data-realm=sermon]{--ws-realm-base:var(--ws-olive)}
.sites-home-realm[data-realm=book]{--ws-realm-base:var(--ws-harvest)}
.sites-home-realm[data-realm=cinema]{--ws-realm-base:var(--ws-crimson)}
.sites-home-realm[data-realm=life]{--ws-realm-base:var(--ws-daylight-mauve)}

/* First Look shared composition contract: same visual shell for every realm
   except the church's promotional door sequence. Content renderers (video,
   publication, bible atlas, daily life) occupy the same media and metadata slots. */
:root{
 --ws-first-look-inset:var(--ws-immersive-inset,clamp(14px,2.6vw,52px));
 --ws-first-look-radius:var(--ws-immersive-radius,clamp(14px,1.6vw,28px));
 --ws-first-look-content-width:min(100%,1600px);
 --ws-first-look-stage-min-height:clamp(560px,calc(100svh - 2 * var(--ws-first-look-inset)),1100px);
 --ws-first-look-content-gap:clamp(16px,2.2vw,36px);
 --ws-first-look-meta-size:var(--ws-type-scale-meta);
}
[data-ws-first-look]:not([data-ws-first-look="church-door"]){
 --ws-first-look-accent:var(--ws-realm-base,var(--ws-branch));
 --ws-first-look-surface:var(--ws-immersive-frame,var(--ws-first-look-depth));
 --ws-first-look-border:var(--ws-realm-border);
 box-sizing:border-box;
}
[data-ws-first-look] [data-ws-first-look-stage]{
 position:relative;isolation:isolate;
 max-width:var(--ws-first-look-content-width);
 border-radius:var(--ws-first-look-radius);
 overflow:hidden;
}
[data-ws-first-look] [data-ws-first-look-meta]{
 display:flex;align-items:baseline;justify-content:space-between;
 gap:var(--ws-first-look-content-gap);
}
[data-ws-first-look] [data-ws-first-look-media]{
 min-width:0;max-width:100%;
}
@media(max-width:760px){
 [data-ws-first-look] [data-ws-first-look-meta]{flex-wrap:wrap}
}

/* Gospel identity: a quiet, accessible scripture scroll shared by First Looks.
   The strip is in normal flow, never positioned over subtitles or book text. */
.ws-scripture-scroll{
 --ws-scripture-speed:48s;
 display:block;position:relative;overflow:hidden;
 padding:clamp(12px,1.5vw,20px) 0;
 color:var(--ws-realm-ink,var(--ws-text));
 background:var(--ws-realm-frame,var(--ws-surface));
 border-block:1px solid var(--ws-realm-border,var(--ws-line));
 font-family:var(--ws-type-display-zh);font-synthesis:none;
}
.ws-scripture-scroll__track{
 display:flex;align-items:center;width:max-content;
 gap:clamp(40px,5vw,100px);
 animation:ws-scripture-travel var(--ws-scripture-speed) linear infinite;
}
.ws-scripture-scroll__text{
 white-space:nowrap;font-weight:300;
 font-size:clamp(14px,1.3vw,21px);letter-spacing:.055em;
}
.ws-scripture-scroll__reference{
 white-space:nowrap;opacity:.68;font-size:var(--ws-type-scale-meta);
}
.ws-scripture-scroll:hover .ws-scripture-scroll__track,
.ws-scripture-scroll:focus-within .ws-scripture-scroll__track{animation-play-state:paused}
@keyframes ws-scripture-travel{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){
 .ws-scripture-scroll__track{animation:none;max-width:100%;width:auto;flex-wrap:wrap;justify-content:center}
 .ws-scripture-scroll__text{white-space:normal;text-align:center}
 .ws-scripture-scroll [aria-hidden="true"]{display:none}
}

.ws-scripture-scroll__group{display:inline-flex;align-items:baseline;gap:clamp(18px,2.5vw,46px);padding-right:clamp(40px,5vw,100px)}
@media(prefers-reduced-motion:reduce){.ws-scripture-scroll__group{flex-wrap:wrap;justify-content:center;padding:0}}

/* First Look v1 — 一靜 / 一動. Seven realms share one stationary inset frame.
   The content and realm-specific interaction move inside it. The church door
   is an OS-supported reveal mode, NOT a second visual design system. */
:root{
 --ws-first-look-frame-gutter:clamp(12px,2.7vw,48px);
 --ws-first-look-frame-line:1px solid var(--ws-first-look-line,var(--ws-line));
 --ws-first-look-frame-radius:clamp(12px,1.5vw,24px);
 --ws-first-look-frame-light:color-mix(in oklab,var(--ws-paper) 22%,transparent);
}
.sites-home-realms [data-ws-first-look]{
 --ws-first-look-line:color-mix(in oklab,var(--ws-realm-base) 40%,transparent);
 --ws-engraving-line:color-mix(in oklab,var(--ws-realm-base) 42%,transparent);
 --ws-engraving-fine:color-mix(in oklab,var(--ws-realm-base) 22%,transparent);
}
.sites-home-realms [data-ws-first-look]::after{
 /* Shared inset frame; pointer events pass to the realm content. */
 content:"";position:absolute;
 inset:var(--ws-first-look-frame-gutter);
 border:var(--ws-first-look-frame-line);
 border-radius:var(--ws-first-look-frame-radius);
 box-shadow:inset 0 1px 0 var(--ws-first-look-frame-light);
 pointer-events:none;z-index:0;
}
.sites-home-realms [data-ws-first-look]>:where(span,h2,p,b){position:relative;z-index:1}
.sites-home-realms [data-ws-first-look-mode="reveal"]{
 /* The church uses the same still frame; only its internal narrative differs. */
 --ws-first-look-interaction:door-reveal;
}
@media(max-width:760px){
 :root{--ws-first-look-frame-gutter:clamp(8px,2.2vw,16px)}
}

/* First Look audiovisual geometry: one static inset frame, moving content within.
   A single outer stage boundary, not a second pseudo-frame over video controls. */
[data-ws-first-look-stage][data-ws-immersive-video]{
 box-sizing:border-box;
 width:calc(100% - 2 * var(--ws-first-look-inset));
 min-height:calc(100svh - 2 * var(--ws-first-look-inset));
 margin:var(--ws-first-look-inset) auto;
 border-radius:var(--ws-first-look-radius);
 background:var(--ws-immersive-frame);
 overflow:hidden;
 isolation:isolate;
}
/* Only the stage frame is static. Native player, poster and caption layers
   retain their existing z-index and interaction order. */

/* One Look selector: same OS, realm-specific content. No second frame. */
[data-ws-one-look-selector]{display:flex;gap:clamp(.5rem,1.4vw,1rem);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;padding:clamp(.65rem,1.5vw,1rem);scrollbar-width:thin}
[data-ws-one-look-card]{scroll-snap-align:start;flex:none;cursor:pointer}
.ws-one-look-cinema-rail{position:relative;z-index:2;width:100%;max-width:100%;background:transparent}
.ws-one-look-cinema-card{display:grid;grid-template-columns:3.2rem minmax(7rem,12rem);align-items:center;gap:.65rem;min-height:4.4rem;padding:.45rem .65rem;border:1px solid var(--ws-line, currentColor);border-radius:var(--ws-first-look-radius,.5rem);background:var(--ws-surface,#f8f6ef);color:var(--ws-text,#252525);font:inherit;text-align:start;transition:border-color .2s ease,opacity .2s ease}
.ws-one-look-cinema-card img{width:3.2rem;height:3.4rem;object-fit:cover}
.ws-one-look-cinema-card span{font-size:clamp(.75rem,1vw,.95rem);line-height:1.3}
.ws-one-look-cinema-card[aria-pressed=true]{outline:2px solid var(--ws-identity,#cebd74);outline-offset:-3px}
.ws-one-look-cinema-card:focus-visible{outline:2px solid currentColor;outline-offset:2px}
@media(prefers-reduced-motion:reduce){.ws-one-look-cinema-card{transition:none}[data-ws-one-look-selector]{scroll-behavior:auto}}

/* Phase III: one frame authority, distinct editorial/atlas/publication/door realms. */
[data-ws-first-look-stage]:not([data-ws-immersive-video]){box-sizing:border-box;isolation:isolate;min-width:0}
[data-ws-first-look-mode="editorial"],
[data-ws-first-look-mode="atlas"],
[data-ws-first-look-mode="publication"],
[data-ws-first-look-mode="door"]{scroll-margin-top:var(--site-header-height,42px)}
/* Editorial and atlas surfaces must never inherit the full-bleed video height. */
[data-ws-first-look-mode="editorial"]:not([data-ws-immersive-video]),
[data-ws-first-look-mode="atlas"]:not([data-ws-immersive-video]){height:auto;min-height:0;max-width:100%}
/* Preserve each realm's native poster, book surface and church-door interaction. */
[data-ws-first-look-mode="publication"] .sites-product-frame{display:block;max-width:100%;width:100%;border:0}
@media(max-width:760px){
 [data-ws-first-look-mode="editorial"]:not([data-ws-immersive-video]),
 [data-ws-first-look-mode="atlas"]:not([data-ws-immersive-video]){overflow-wrap:break-word}
 [data-ws-first-look-mode="publication"] .sites-product-frame{min-width:0}
}

/* Magazine First Look: twelve canonical columns, one horizontal editorial index. */
.sites-journal-columns{display:flex;gap:clamp(.55rem,1.3vw,1.15rem);max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x mandatory;padding:clamp(1rem,2vw,1.5rem) clamp(.8rem,3vw,2rem);scrollbar-width:thin}
.sites-journal-column{box-sizing:border-box;position:relative;display:flex;flex-direction:column;justify-content:space-between;flex:0 0 clamp(10rem,18vw,17rem);min-height:clamp(15rem,25vw,23rem);padding:clamp(1rem,1.8vw,1.65rem);scroll-snap-align:start;border:1px solid var(--ws-line,rgba(37,37,37,.2));background:var(--ws-surface,#faf9f5);color:var(--ws-text,#252525);text-decoration:none;transition:transform .3s ease,border-color .3s ease}
.sites-journal-column:hover{transform:translateY(-.35rem);border-color:var(--ws-identity,#cebd74)}
.sites-journal-column:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.sites-journal-column__number{font-size:.8rem;letter-spacing:.16em;font-variant-numeric:tabular-nums}
.sites-journal-column strong{font-weight:300;font-size:clamp(1.6rem,2.8vw,2.8rem);line-height:1.25;overflow-wrap:anywhere}
.sites-journal-column>span[lang=en]{font-size:clamp(1rem,1.4vw,1.4rem);line-height:1.2}
.sites-journal-column small{font-size:.8rem;letter-spacing:.08em}
@media(max-width:760px){.sites-journal-column{flex-basis:min(65vw,15rem);min-height:18rem}}
@media(prefers-reduced-motion:reduce){.sites-journal-column{transition:none}}

/* Life First Look: Hugo's actual content headings become an accessible topic index. */
.sites-portal-topics{max-width:100%;padding:clamp(1rem,2vw,2rem);border-block:1px solid var(--ws-line,rgba(37,37,37,.2))}
.sites-portal-topics #TableOfContents>ul{display:flex;flex-wrap:wrap;gap:.7rem 1.2rem;margin:0;padding:0;list-style:none}
.sites-portal-topics #TableOfContents li{margin:0;padding:0;list-style:none}
.sites-portal-topics #TableOfContents a{display:inline-block;padding:.6rem .85rem;border:1px solid var(--ws-line,rgba(37,37,37,.2));color:inherit;text-decoration:none;transition:border-color .2s ease}
.sites-portal-topics #TableOfContents a:hover{border-color:var(--ws-identity,#cebd74)}
.sites-portal-topics #TableOfContents a:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.sites-surface-content :is(h2,h3)[id]{scroll-margin-top:clamp(5rem,9vw,8rem)}
@media(prefers-reduced-motion:reduce){.sites-portal-topics #TableOfContents a{transition:none}}

/* Publication First Look keeps the embedded bookstore and an independent route. */
.sites-dawn-library__fallback{margin:0;padding:.65rem clamp(1rem,3vw,2rem);text-align:end}
.sites-dawn-library__fallback a{color:inherit;text-decoration:underline;text-underline-offset:.22em}
.sites-dawn-library__fallback a:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* First Look content stage v2 — shared authority for all seven realms. */
.ws-first-look-stage{box-sizing:border-box;position:relative;isolation:isolate;margin:var(--ws-first-look-inset) auto;border-radius:var(--ws-first-look-radius);border:1px solid var(--ws-realm-border,var(--ws-line));overflow:clip;background:var(--ws-realm-frame,var(--ws-surface));color:var(--ws-realm-ink,var(--ws-text));max-width:1600px;width:calc(100% - 2 * var(--ws-first-look-inset))}
.ws-first-look-stage:not([data-ws-immersive-video]){padding:clamp(24px,4vw,64px);min-height:min(78svh,900px)}
.fl-header{display:flex;justify-content:space-between;align-items:baseline;gap:24px;flex-wrap:wrap;border-bottom:1px solid var(--ws-line);padding-bottom:20px;margin-bottom:24px}
.fl-header h1,.fl-header h2{font:400 var(--ws-type-scale-display-md)/1 var(--ws-type-display-en);margin:0}
.fl-header p{font-size:var(--ws-type-scale-ui);max-width:38em;line-height:1.7}
.fl-tabs{display:flex;overflow-x:auto;gap:12px;padding:8px 0 20px;scroll-snap-type:x proximity}
.fl-tabs button{flex:none;padding:12px 16px;max-width:22rem;border:1px solid var(--ws-line);color:inherit;background:transparent;font:inherit;text-align:left;cursor:pointer;scroll-snap-align:start}
.fl-tabs [aria-selected=true]{border-color:var(--ws-interaction);background:var(--ws-raised)}
.fl-tabs button:focus-visible,.fl-reader a:focus-visible{outline:2px solid currentColor;outline-offset:3px}
.fl-reader{max-width:100%;line-height:1.85;font-size:var(--ws-type-scale-reading)}
.fl-reader [hidden]{display:none!important}
.fl-reader article{max-width:68ch;margin-inline:auto;overflow-wrap:anywhere}
.fl-reader h2{font-size:var(--ws-type-scale-title-lg);line-height:1.25}
.fl-reader img{max-width:100%;height:auto}
.fl-reading-modes{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}
.fl-reading-modes button{font:inherit;background:transparent;color:inherit;border:1px solid var(--ws-line);padding:8px 14px}
.fl-scripture{margin:0 var(--ws-first-look-inset) 36px;padding:20px 0;max-width:1600px;color:var(--ws-text);background:var(--ws-surface)}
.fl-scripture-anchor{max-width:72ch;margin:0 auto 16px;padding-inline:16px;font-family:var(--ws-type-display-en);line-height:1.65}
.fl-scripture-anchor a{white-space:nowrap;color:inherit;font-size:var(--ws-type-scale-meta)}
.fl-scripture-viewport{overflow:hidden}
.fl-scripture-pause{display:block;margin:16px auto 0;border:1px solid var(--ws-line);padding:8px 16px;color:inherit;background:transparent;font:inherit;cursor:pointer}
.fl-day-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:24px 0}
.fl-day-controls button,.fl-day-controls input{font:inherit;padding:10px;border:1px solid var(--ws-line);background:var(--ws-surface);color:var(--ws-text)}
.fl-daily-home{background:var(--ws-atmosphere)}
.fl-daily-home[data-day="1"],.fl-daily-home[data-day="4"]{background:var(--ws-raised)}
.fl-daily-home blockquote{max-width:42ch;font:400 var(--ws-type-scale-title-md)/1.5 var(--ws-type-display-en);margin:30px 0}
.fl-resource-context{max-width:60ch;line-height:1.8;padding-block:16px;border-top:1px solid var(--ws-line)}
.fl-door-leaf{position:absolute;z-index:8;top:0;bottom:0;width:50%;background:var(--ws-water);pointer-events:none;transition:transform .2s linear}
.fl-door-leaf--left{left:0;transform:translateX(calc(var(--fl-door-open,0)*-101%));border-right:1px solid var(--ws-paper)}
.fl-door-leaf--right{right:0;transform:translateX(calc(var(--fl-door-open,0)*101%))}
.fl-door-label{position:absolute;top:40%;padding:20px;color:var(--ws-paper);font:400 var(--ws-type-scale-title-lg)/1.2 var(--ws-type-display-en)}
.fl-door-entry{display:inline-block;padding:12px 0;border-bottom:1px solid currentColor;color:inherit;font:inherit}
@media(max-width:760px){.fl-header{display:block}.fl-header h1,.fl-header h2{font-size:var(--ws-type-scale-display-md)}.fl-tabs button{max-width:72vw}.ws-first-look-stage:not([data-ws-immersive-video]){min-height:0}.fl-scripture{margin-inline:12px}}
@media(prefers-reduced-motion:reduce){.fl-door-leaf{display:none}.fl-scripture .ws-scripture-scroll__track{animation:none;max-width:100%;width:auto;flex-wrap:wrap}.fl-scripture [aria-hidden=true]{display:none}.fl-scripture .ws-scripture-scroll__text{white-space:normal}.fl-tabs{scroll-behavior:auto}}

/* First-layer composition: freeze hero/Candidate01 and reuse the seven actual stages. */
.sites-home-realms .fl-first-look-host{display:block;min-height:0;padding:0;overflow:visible;background:var(--ws-surface);border:0}
.sites-home-realms .fl-first-look-host::before,.sites-home-realms .fl-first-look-host::after{display:none}
.fl-first-look-host iframe{display:block;width:100%;height:100svh;min-height:min(740px,100svh);border:0;background:var(--ws-surface)}
.fl-embedded body{margin:0}
.fl-embedded [hidden]{display:none!important}
.fl-embedded .ws-first-look-stage:not([data-ws-immersive-video]){min-height:0}
.fl-embedded body [data-ws-first-look-stage][data-ws-immersive-video]{height:var(--fl-viewport-height)!important;min-height:min(560px,100svh)!important}
.fl-embedded .fl-realm-nav{position:relative;z-index:20;display:flex;gap:14px;flex-wrap:wrap;justify-content:flex-end;padding:12px 16px;color:var(--ws-text);background:var(--ws-surface);font-family:var(--ws-type-display-en);font-size:var(--ws-type-scale-ui)}
.fl-embedded [data-ws-immersive-video]>.fl-realm-nav{position:absolute;top:0;left:0;right:0}
.fl-realm-nav a{color:inherit;text-decoration:none}
.fl-realm-nav a:focus-visible{outline:2px solid currentColor;outline-offset:3px}

.fl-header [lang=en],.fl-reader [lang=en]{font-family:var(--ws-type-display-en)!important}
.fl-header [lang=zh-Hant]{font-family:var(--ws-type-display-zh)!important;font-size:var(--ws-type-scale-title-md);font-weight:var(--ws-weight-zh-air)}

.fl-tool-entries{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.fl-tool-entries article{padding:16px 0;border-bottom:1px solid var(--ws-line)}.fl-tool-entries h3{margin:0;font:400 var(--ws-type-scale-title-md)/1.4 var(--ws-type-display-zh)}.fl-tool-entries [lang=en]{font-family:var(--ws-type-display-en)}.fl-tool-entries a{color:inherit;text-underline-offset:.2em}@media(max-width:760px){.fl-tool-entries{grid-template-columns:1fr}}

.fl-media-switch{display:none;position:absolute;z-index:30;left:16px;top:64px;border:1px solid var(--ws-line);padding:10px 14px;background:var(--ws-surface);color:var(--ws-text);font:inherit;cursor:pointer}.ws-first-look-stage:has(.olive-feature.is-playing) .fl-media-switch{display:block}.olive-archive .olive-home-stage.fl-controls-open:has(.olive-feature.is-playing) .olive-speaker-rail{opacity:1;visibility:visible;transform:none;pointer-events:auto}.olive-archive .olive-home-stage.fl-controls-open:has(.olive-feature.is-playing) .olive-feature__caption{opacity:1;visibility:visible;pointer-events:auto}.fl-media-switch:focus-visible{outline:2px solid currentColor;outline-offset:3px}

/* First Look editorial layout authority: all editorial page geometry is governed by this Design OS. */
/* First Look editorial-only prototypes. Geometry and typography via Design OS. No inherited realm CSS, JS, or legacy asset dependencies. */
body:has(> .editorial){margin:0;min-height:100%;background:var(--ws-surface,#faf9f5);color:var(--ws-text,#252525);font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air,200)}
.editorial{min-height:100svh;display:flex;flex-direction:column;padding:clamp(24px,3.2vw,64px) clamp(24px,5vw,96px);gap:clamp(18px,3vh,42px);position:relative}
.editorial:before{content:"";height:clamp(6px,.75vw,12px);background:currentColor;position:absolute;top:0;left:0;right:0}
.editorial__meta{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid currentColor;padding:0 0 14px}
.editorial__eyebrow,.editorial__folio,.editorial__micro,.editorial__action{font-family:var(--ws-type-display-en-sc);font-weight:400;letter-spacing:.14em;font-size:var(--ws-type-scale-meta)}
.editorial__spread{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(0,.55fr);gap:clamp(14px,2vw,36px);flex:1;min-height:0}
.editorial__headline{grid-column:1/span 8;grid-row:1;display:flex;flex-direction:column;justify-content:end;position:relative;border-bottom:1px solid currentColor;padding-bottom:clamp(16px,3vh,45px)}
.editorial__chapter{font-family:var(--ws-type-display-en);font-size:clamp(100px,20vw,360px);line-height:.75;opacity:.075;position:absolute;top:0;right:0;pointer-events:none}
.editorial__title{font-size:clamp(58px,8vw,160px);font-weight:var(--ws-weight-zh-air,200);line-height:1.02;letter-spacing:-.045em;margin:0;position:relative}
.editorial__en{font-family:var(--ws-type-display-en);font-size:clamp(23px,3.2vw,64px);line-height:1.1;font-weight:400;letter-spacing:-.03em;margin:16px 0 0}
.editorial__art{grid-column:9/span 4;grid-row:1;min-height:220px;position:relative;background:var(--ws-material,#eee4c9);overflow:hidden}
.editorial__art:before{content:"";position:absolute;inset:12%;border:1px solid currentColor;opacity:.25}
.editorial__art:after{content:"";position:absolute;width:70%;aspect-ratio:1;left:15%;top:12%;border:clamp(12px,2vw,38px) solid currentColor;opacity:.13;transform:rotate(28deg)}
.editorial__line{grid-column:1/span 3;grid-row:2;border-top:1px solid currentColor;padding-top:14px;display:flex;flex-direction:column;justify-content:space-between}
.editorial__statement{font-family:var(--ws-type-display-en);font-size:clamp(25px,3vw,55px);line-height:1.08;font-weight:400;letter-spacing:-.025em}
.editorial__panel{grid-column:4/span 6;grid-row:2;display:flex;align-items:end;justify-content:space-between;gap:20px;border-top:1px solid currentColor;padding:16px 0}
.editorial__keywords{font-size:var(--ws-type-scale-title-md);line-height:var(--ws-type-leading-title);letter-spacing:.08em}
.editorial__action{color:inherit;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:6px;white-space:nowrap}
.editorial__side{grid-column:10/span 3;grid-row:2;border-top:1px solid currentColor;padding-top:14px;display:flex;justify-content:space-between;flex-direction:column}
.editorial--church .editorial__art{background:var(--ws-surface,#faf9f5)}
.editorial--church .editorial__art:after{border-width:clamp(5px,.8vw,15px);transform:none;border-radius:0;height:130%;aspect-ratio:auto;top:16%}
.editorial--sermon .editorial__art:after{border-radius:50%;transform:none}
.editorial--cinema .editorial__art:after{aspect-ratio:16/9;top:30%;width:85%;left:7.5%;transform:none;border-width:clamp(6px,1vw,20px)}
.editorial--book .editorial__art:after{width:44%;left:28%;height:74%;aspect-ratio:auto;transform:rotate(-12deg)}
.editorial--life .editorial__art:after{border-radius:50%;width:60%;left:20%;transform:none}
@media(max-width:900px){.editorial{padding:28px 22px;gap:22px}.editorial__spread{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}.editorial__headline{grid-column:1/-1;grid-row:auto;min-height:230px}.editorial__title{font-size:clamp(45px,10vw,90px)}.editorial__en{font-size:clamp(22px,5vw,40px)}.editorial__art{grid-column:1/-1;grid-row:auto;min-height:230px;aspect-ratio:16/9}.editorial__line,.editorial__panel,.editorial__side{grid-column:auto;grid-row:auto;min-height:130px}.editorial__panel{grid-column:1/-1}.editorial__keywords{font-size:var(--ws-type-scale-title-sm)}}

/* Opening chapter editorial spreads */
/* Westside editorial chapters — static composition, phase 02 layout authority. No legacy Candidate 01 dependency or motion. */
body:has(> .chapter){margin:0;color:var(--ws-text,#252525);background:var(--ws-surface,#faf9f5);font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air,200)}
.chapter{width:100%;min-height:100svh;padding:clamp(22px,3vw,52px) clamp(24px,4vw,76px);display:flex;flex-direction:column;gap:clamp(20px,2.5vh,32px)}
.chapter__masthead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;border-bottom:1px solid currentColor;padding-bottom:clamp(12px,1.6vh,20px)}
.chapter__eyebrow,.chapter__folio,.tile__kind,.tile__number{font-family:var(--ws-type-display-en-sc);font-size:var(--ws-type-scale-meta);font-weight:400;letter-spacing:.09em}
.chapter__heading{display:flex;justify-content:space-between;align-items:end;gap:16px}
.chapter__title{font-size:var(--ws-type-scale-title-lg);font-weight:var(--ws-weight-zh-air,200);line-height:var(--ws-type-leading-title);margin:0;letter-spacing:.08em}
.chapter__subtitle{font-family:var(--ws-type-display-en-sc);font-size:var(--ws-type-scale-meta);letter-spacing:.1em;font-weight:400}
.chapter__spread{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:clamp(12px,1.45vw,28px);flex:1;min-height:0;max-height:calc(100svh - 220px)}
.tile{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden}

.tile__media{position:relative;flex:1;min-height:0;overflow:hidden;background:var(--ws-material,#eee4c9)}
.tile__caption{display:flex;justify-content:space-between;gap:8px;align-items:baseline;padding:7px 0 0}
.tile__title{font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air,200);font-size:var(--ws-type-scale-title-sm);line-height:var(--ws-type-leading-title);margin:0}
.tile__kind{white-space:nowrap;font-size:var(--ws-type-scale-micro)}
.tile__number{position:absolute;top:10px;left:10px;color:var(--ws-text,#252525)}
.chapter--watch .tile:nth-child(1){grid-column:1/span 5;grid-row:1}
.chapter--watch .tile:nth-child(2){grid-column:6/span 3;grid-row:1}
.chapter--watch .tile:nth-child(3){grid-column:9/span 2;grid-row:1}
.chapter--watch .tile:nth-child(4){grid-column:11/span 2;grid-row:1}
.chapter--watch .tile:nth-child(5){grid-column:1/span 2;grid-row:2}
.chapter--watch .tile:nth-child(6){grid-column:3/span 3;grid-row:2}
.chapter--watch .tile:nth-child(7){grid-column:6/span 3;grid-row:2}
.chapter--watch .tile:nth-child(8){grid-column:9/span 4;grid-row:2}
.chapter--walk .tile:nth-child(1){grid-column:1/span 4;grid-row:1}
.chapter--walk .tile:nth-child(2){grid-column:5/span 2;grid-row:1}
.chapter--walk .tile:nth-child(3){grid-column:7/span 3;grid-row:1}
.chapter--walk .tile:nth-child(4){grid-column:10/span 3;grid-row:1}
.chapter--walk .tile:nth-child(5){grid-column:1/span 3;grid-row:2}
.chapter--walk .tile:nth-child(6){grid-column:4/span 2;grid-row:2}
.chapter--walk .tile:nth-child(7){grid-column:6/span 2;grid-row:2}
.chapter--walk .tile:nth-child(8){grid-column:8/span 5;grid-row:2}
.tile:focus-visible{outline:2px solid var(--ws-text,#252525);outline-offset:4px}
@media(max-width:900px){.chapter{min-height:100svh;padding:22px 20px}.chapter__spread{max-height:none;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none;grid-auto-rows:auto}.chapter--watch .tile,.chapter--walk .tile{grid-column:auto;grid-row:auto}.tile__media{aspect-ratio:4/3}.tile:nth-child(1),.tile:nth-child(8){grid-column:1/-1}.tile:nth-child(1) .tile__media,.tile:nth-child(8) .tile__media{aspect-ratio:16/9}.chapter__heading{align-items:start;flex-direction:column}.chapter__title{font-size:var(--ws-type-scale-title-md)}}
@media(min-width:901px) and (max-height:680px){.chapter{gap:12px;padding-top:14px;padding-bottom:14px}.chapter__spread{max-height:calc(100svh - 155px)}.tile__caption{padding-top:4px}.tile__title{font-size:var(--ws-type-scale-ui)}}

/* First Look chapter editorial signature */
.chapter{position:relative;isolation:isolate;background:var(--ws-surface,#faf9f5)}
.chapter::before{content:"";position:absolute;inset:0 0 auto;height:clamp(7px,1vw,15px);background:var(--ws-text,#252525);opacity:.9}
.chapter__masthead{border-bottom:1px solid currentColor;padding-top:clamp(12px,1.2vw,22px);text-transform:uppercase}
.chapter__eyebrow{font-size:var(--ws-type-scale-meta);letter-spacing:.2em}
.chapter__folio{font-size:var(--ws-type-scale-micro);letter-spacing:.2em}
.chapter__heading{position:relative;min-height:clamp(96px,15vh,180px);align-items:center;overflow:visible}
.chapter__title{font-size:clamp(58px,8.5vw,154px);line-height:.88;letter-spacing:-.075em;font-weight:var(--ws-weight-zh-air,200);white-space:nowrap}
.chapter__subtitle{align-self:flex-end;margin-bottom:1.2em;writing-mode:vertical-rl;font-size:var(--ws-type-scale-meta)}
.chapter--watch .chapter__heading::before,.chapter--walk .chapter__heading::before{position:absolute;right:8%;top:-.2em;z-index:-1;font-family:var(--ws-type-display-en);font-weight:400;font-size:clamp(90px,15vw,270px);line-height:1;letter-spacing:-.09em;opacity:.055;white-space:nowrap}
.chapter--watch .chapter__heading::before{content:"I"}
.chapter--walk .chapter__heading::before{content:"II"}
.chapter__spread{min-height:clamp(380px,56vh,750px);gap:clamp(12px,1.65vw,30px)}
.tile{overflow:visible;gap:0}
.tile__media{border-radius:0;overflow:hidden;min-height:0}
.tile__caption{min-height:3.2em;padding-top:10px;border-top:1px solid currentColor;margin-top:9px;align-items:start}
.tile__title{font-size:var(--ws-type-scale-title-sm);letter-spacing:.04em}
.tile__kind{font-size:var(--ws-type-scale-micro);letter-spacing:.15em;text-align:right;max-width:45%;white-space:normal}
.tile__number{font-size:var(--ws-type-scale-meta);left:14px;top:12px}
.chapter--watch .tile:nth-child(1) .tile__title,.chapter--walk .tile:nth-child(8) .tile__title{font-size:var(--ws-type-scale-title-md)}
.chapter--watch .tile:nth-child(1) .tile__media,.chapter--walk .tile:nth-child(8) .tile__media{outline:1px solid rgba(37,37,37,.16);outline-offset:5px}

.chapter--watch .tile:nth-child(3) .tile__media,.chapter--walk .tile:nth-child(2) .tile__media{background:var(--ws-material,#eee4c9)}

.chapter--watch .tile:nth-child(4){padding-top:clamp(20px,3vh,52px)}
.chapter--watch .tile:nth-child(6){padding-bottom:clamp(18px,3vh,45px)}
.chapter--walk .tile:nth-child(3){padding-top:clamp(22px,4vh,62px)}
.chapter--walk .tile:nth-child(5){padding-bottom:clamp(18px,3vh,45px)}
@media(min-width:901px) and (min-height:681px){.chapter{gap:clamp(16px,2.5vh,34px)}.chapter__spread{flex:1;grid-template-rows:minmax(0,1.08fr) minmax(0,.92fr);max-height:calc(100svh - 290px);min-height:350px}}
@media(max-width:900px){.chapter__heading{min-height:90px}.chapter__title{font-size:clamp(40px,9vw,74px);white-space:normal}.chapter__subtitle{writing-mode:horizontal-tb;align-self:flex-start;margin:0}.chapter__spread{min-height:0;max-height:none}.chapter--watch .tile:nth-child(4),.chapter--watch .tile:nth-child(6),.chapter--walk .tile:nth-child(3),.chapter--walk .tile:nth-child(5){padding:0}.tile__caption{min-height:2.5em}.tile__title{font-size:var(--ws-type-scale-ui)}}

/* Asset-free editorial proof: imagery is integrated only after spread geometry approval. */
.tile__placeholder{position:absolute;inset:0;display:block;background:linear-gradient(135deg,var(--ws-material,#eee4c9),var(--ws-surface,#faf9f5));}
.tile__placeholder::after{content:"";position:absolute;inset:12%;border:1px solid currentColor;opacity:.13}
.chapter--watch .tile:nth-child(2n) .tile__placeholder,.chapter--walk .tile:nth-child(2n+1) .tile__placeholder{background:linear-gradient(30deg,var(--ws-surface,#faf9f5),var(--ws-material,#eee4c9))}

/* Phase 03 — verified Westside Watch brand asset, shared by all nine First Look spreads. */
.ws-editorial-brand-star{display:block;flex:none;width:clamp(20px,2vw,32px);height:clamp(20px,2vw,32px);object-fit:contain;align-self:center;opacity:.78}
.editorial__meta .ws-editorial-brand-star,.chapter__masthead .ws-editorial-brand-star{margin-inline:auto}
@media(max-width:600px){.ws-editorial-brand-star{width:20px;height:20px}}


/* Seven distinct editorial compositions; shared tokens, distinct spatial grammar. */
@media(min-width:901px){
.editorial--church .editorial__spread{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:1fr .34fr}
.editorial--church .editorial__art{grid-column:1/span 7;grid-row:1/3}
.editorial--church .editorial__headline{grid-column:8/span 5;grid-row:1;justify-content:center}
.editorial--church .editorial__line{grid-column:8/span 2;grid-row:2}
.editorial--church .editorial__panel{grid-column:10/span 3;grid-row:2;display:flex;flex-direction:column;align-items:start}
.editorial--church .editorial__side{display:none}
.editorial--magazine .editorial__spread{grid-template-rows:.3fr 1fr .24fr}
.editorial--magazine .editorial__headline{grid-column:1/-1;grid-row:1;justify-content:end}
.editorial--magazine .editorial__art{grid-column:4/span 6;grid-row:2}
.editorial--magazine .editorial__line{grid-column:1/span 3;grid-row:2}
.editorial--magazine .editorial__panel{grid-column:10/span 3;grid-row:2;flex-direction:column;align-items:start}
.editorial--magazine .editorial__side{grid-column:1/-1;grid-row:3;flex-direction:row}
.editorial--bible .editorial__spread{grid-template-rows:1fr .22fr}
.editorial--bible .editorial__headline{grid-column:1/span 5;grid-row:1;justify-content:center}
.editorial--bible .editorial__art{grid-column:6/span 7;grid-row:1/3}
.editorial--bible .editorial__line{grid-column:1/span 2;grid-row:2}
.editorial--bible .editorial__panel{grid-column:3/span 3;grid-row:2;flex-direction:column;align-items:start}
.editorial--bible .editorial__side{display:none}
.editorial--sermon .editorial__spread{grid-template-rows:1fr .18fr}
.editorial--sermon .editorial__art{grid-column:1/-1;grid-row:1/3}
.editorial--sermon .editorial__headline{grid-column:1/span 8;grid-row:1;z-index:1;padding:clamp(20px,3vw,48px);border:0;align-self:end}
.editorial--sermon .editorial__line{grid-column:9/span 4;grid-row:1;z-index:1;padding:clamp(20px,3vw,48px);border:0}
.editorial--sermon .editorial__panel{grid-column:1/span 9;grid-row:2;z-index:1;padding:12px 24px}
.editorial--sermon .editorial__side{grid-column:10/span 3;grid-row:2;z-index:1;padding:12px}
.editorial--book .editorial__spread{grid-template-rows:1fr .25fr}
.editorial--book .editorial__art{grid-column:1/span 5;grid-row:1/3}
.editorial--book .editorial__headline{grid-column:6/span 7;grid-row:1;justify-content:center}
.editorial--book .editorial__line{grid-column:6/span 2;grid-row:2}
.editorial--book .editorial__panel{grid-column:8/span 4;grid-row:2}
.editorial--book .editorial__side{grid-column:12/span 1;grid-row:2;writing-mode:vertical-rl}
.editorial--cinema .editorial__spread{grid-template-rows:.26fr 1fr .22fr}
.editorial--cinema .editorial__headline{grid-column:1/span 9;grid-row:1}
.editorial--cinema .editorial__art{grid-column:1/-1;grid-row:2;aspect-ratio:21/9}
.editorial--cinema .editorial__line{grid-column:10/span 3;grid-row:1}
.editorial--cinema .editorial__panel{grid-column:1/span 9;grid-row:3}
.editorial--cinema .editorial__side{grid-column:10/span 3;grid-row:3}
.editorial--life .editorial__spread{grid-template-rows:1fr .3fr}
.editorial--life .editorial__headline{grid-column:1/span 6;grid-row:1;align-self:center;justify-content:center}
.editorial--life .editorial__art{grid-column:7/span 6;grid-row:1;align-self:center;aspect-ratio:1}
.editorial--life .editorial__line{grid-column:1/span 3;grid-row:2}
.editorial--life .editorial__panel{grid-column:4/span 6;grid-row:2}
.editorial--life .editorial__side{grid-column:10/span 3;grid-row:2}
}


/* WestWatch Vol.00 — editorial cover, using the existing canonical masthead SVG. */
.editorial--magazine .editorial__en--lead{font-size:clamp(58px,7.2vw,142px);line-height:.92;letter-spacing:-.05em;max-width:100%;overflow-wrap:normal}
.editorial--magazine .editorial__title{font-size:clamp(28px,3.5vw,68px);letter-spacing:.12em;line-height:1.2}
.editorial--magazine .editorial__art--cover{background:transparent;overflow:visible;display:flex;justify-content:center;align-items:center;min-height:0}
.editorial--magazine .editorial__art--cover::before,.editorial--magazine .editorial__art--cover::after{display:none}
.ws-magazine-cover{width:min(100%,430px);height:100%;min-height:330px;aspect-ratio:3/4;position:relative;display:flex;flex-direction:column;overflow:hidden;background:var(--ws-material,#eee4c9);color:var(--ws-text,#252525);border:1px solid currentColor;padding:clamp(16px,2vw,30px);box-shadow:12px 14px 0 color-mix(in srgb,var(--ws-text,#252525) 12%,transparent)}
.ws-magazine-cover::before{content:"";position:absolute;inset:23% -15% 12% 24%;background:repeating-linear-gradient(110deg,transparent 0 6px,color-mix(in srgb,var(--ws-text,#252525) 11%,transparent) 7px 8px);transform:rotate(-8deg);pointer-events:none}
.ws-magazine-cover__masthead{position:relative;z-index:1;border-bottom:1px solid currentColor;padding-bottom:12px}
.ws-magazine-cover__masthead img{width:100%;height:auto;display:block}
.ws-magazine-cover__folio,.ws-magazine-cover__bottom{position:relative;z-index:1;display:flex;justify-content:space-between;gap:10px;font-family:var(--ws-type-display-en-sc);font-size:var(--ws-type-scale-micro);letter-spacing:.1em}
.ws-magazine-cover__folio{padding-top:12px}
.ws-magazine-cover__feature{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;justify-content:flex-end;align-items:flex-start;padding:25px 0}
.ws-magazine-cover__feature>span{font-family:var(--ws-type-display-en);font-size:clamp(24px,3vw,52px);line-height:.94;max-width:8ch}
.ws-magazine-cover__feature>strong{font-family:var(--ws-type-display-zh);font-size:clamp(22px,2.3vw,40px);font-weight:var(--ws-weight-zh-air,200);letter-spacing:.18em;margin-top:16px}
.ws-magazine-cover__feature>small{font-family:var(--ws-type-display-zh);font-size:var(--ws-type-scale-meta);margin-top:8px}
.ws-magazine-cover__bottom{border-top:1px solid currentColor;padding-top:10px}
@media(max-width:900px){.editorial--magazine .editorial__en--lead{font-size:clamp(42px,10vw,90px)}.editorial--magazine .editorial__title{font-size:clamp(24px,5vw,48px)}.editorial--magazine .editorial__art--cover{aspect-ratio:auto;min-height:470px}.ws-magazine-cover{height:460px;width:min(100%,345px);min-height:0}}


/* Phase 03: editorial realms consume the EXISTING Chromatic Field authority.
   Etching compositions are semantic linework, not replacements for Dore corpus art. */
.editorial--church{--ws-branch:var(--ws-water);--ws-engraving-opacity:.09;--ws-etch-angle:90deg;--ws-etch-density:14px;--ws-etch-cross:36deg;--ws-light-x:72%;--ws-light-y:18%}
.editorial--magazine{--ws-branch:var(--ws-first-light);--ws-engraving-opacity:.10;--ws-etch-angle:113deg;--ws-etch-density:8px;--ws-etch-cross:26deg}
.editorial--bible{--ws-branch:var(--ws-pale-gold);--ws-surface:var(--ws-papyrus);--ws-engraving-opacity:.14;--ws-etch-angle:18deg;--ws-etch-density:11px;--ws-etch-cross:162deg}
.editorial--sermon{--ws-branch:var(--ws-olive);--ws-engraving-opacity:.13;--ws-etch-angle:68deg;--ws-etch-density:10px;--ws-etch-cross:138deg}
.editorial--book{--ws-branch:var(--ws-harvest);--ws-engraving-opacity:.12;--ws-etch-angle:0deg;--ws-etch-density:7px;--ws-etch-cross:90deg}
.editorial--cinema{--ws-branch:var(--ws-crimson);--ws-engraving-opacity:.16;--ws-etch-angle:0deg;--ws-etch-density:20px;--ws-etch-cross:90deg;--ws-light-x:76%;--ws-light-y:12%}
.editorial--life{--ws-branch:var(--ws-daylight-mauve);--ws-engraving-opacity:.09;--ws-etch-angle:32deg;--ws-etch-density:15px;--ws-etch-cross:146deg;--ws-light-x:64%;--ws-light-y:8%}
.editorial{background:var(--ws-surface);color:var(--ws-text)}
.editorial__art{background:color-mix(in oklab,var(--ws-branch) 18%,var(--ws-surface))}
.editorial__art::before{inset:0;border:0;opacity:1;z-index:0;background:
 radial-gradient(ellipse at 66% 31%,color-mix(in oklab,var(--ws-branch) 22%,transparent),transparent 54%),
 repeating-linear-gradient(var(--ws-etch-angle),transparent 0 calc(var(--ws-etch-density) - 1px),color-mix(in oklab,var(--ws-branch) 32%,transparent) calc(var(--ws-etch-density) - 1px) var(--ws-etch-density)),
 repeating-linear-gradient(var(--ws-etch-cross),transparent 0 calc(var(--ws-etch-density) * 2.5),color-mix(in oklab,var(--ws-text) 12%,transparent) calc(var(--ws-etch-density) * 2.5) calc(var(--ws-etch-density) * 2.5 + 1px));mask-image:radial-gradient(ellipse at 50% 50%,#000 12%,transparent 88%);pointer-events:none}
.editorial__art::after{z-index:1}
.editorial--church .editorial__art::before{background:repeating-linear-gradient(90deg,transparent 0 24px,color-mix(in oklab,var(--ws-water) 25%,transparent) 25px 26px),linear-gradient(155deg,transparent 30%,color-mix(in oklab,var(--ws-water) 18%,transparent) 60%,transparent 82%);mask-image:linear-gradient(180deg,transparent,#000 30%,#000 85%,transparent)}
.editorial--bible .editorial__art::before{background:repeating-radial-gradient(ellipse at 75% 120%,transparent 0 11px,color-mix(in oklab,var(--ws-pale-gold) 45%,transparent) 12px 13px,transparent 14px 25px),repeating-linear-gradient(18deg,transparent 0 13px,color-mix(in oklab,var(--ws-text) 10%,transparent) 14px 15px)}
.editorial--sermon .editorial__art::before{background:repeating-radial-gradient(ellipse at 48% 55%,transparent 0 24px,color-mix(in oklab,var(--ws-olive) 35%,transparent) 25px 26px,transparent 27px 46px),repeating-linear-gradient(68deg,transparent 0 8px,color-mix(in oklab,var(--ws-text) 10%,transparent) 9px 10px)}
.editorial--book .editorial__art::before{background:repeating-linear-gradient(0deg,transparent 0 5px,color-mix(in oklab,var(--ws-harvest) 28%,transparent) 6px 7px,transparent 8px 17px),linear-gradient(90deg,transparent 42%,color-mix(in oklab,var(--ws-harvest) 28%,transparent) 48%,transparent 54%)}
.editorial--cinema .editorial__art::before{background:repeating-linear-gradient(0deg,transparent 0 30px,color-mix(in oklab,var(--ws-crimson) 28%,transparent) 31px 32px),repeating-linear-gradient(90deg,transparent 0 58px,color-mix(in oklab,var(--ws-text) 13%,transparent) 59px 60px);mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent)}
.editorial--life .editorial__art::before{background:repeating-radial-gradient(circle at 67% 25%,transparent 0 13px,color-mix(in oklab,var(--ws-daylight-mauve) 24%,transparent) 14px 15px,transparent 16px 32px)}
/* Cover inherits the magazine branch ink and light; no black/gold local palette. */
.ws-magazine-cover{background:color-mix(in oklab,var(--ws-branch) 17%,var(--ws-surface))}


/* Phase 03 correction: etching belongs to the FULL page material, never the image slot.
   Keep art wells clear for the verified photography and Dore illustrations to come. */
.editorial{isolation:isolate;--ws-etch-opacity:var(--ws-engraving-opacity);background:
 radial-gradient(ellipse at var(--ws-light-x,72%) var(--ws-light-y,18%),color-mix(in oklab,var(--ws-branch) 13%,transparent),transparent 62%),
 repeating-linear-gradient(var(--ws-etch-angle,113deg),transparent 0 calc(var(--ws-etch-density,12px) - 1px),color-mix(in oklab,var(--ws-branch) 19%,transparent) calc(var(--ws-etch-density,12px) - 1px) var(--ws-etch-density,12px)),
 repeating-linear-gradient(var(--ws-etch-cross,26deg),transparent 0 29px,color-mix(in oklab,var(--ws-text) 7%,transparent) 30px 31px),
 var(--ws-surface)}
.editorial__art{background:color-mix(in oklab,var(--ws-branch) 6%,var(--ws-surface));isolation:isolate}
.editorial__art::before,.editorial__art::after{content:none!important;display:none!important}
.editorial--church .editorial__art{background:var(--ws-surface)}
.editorial--magazine .editorial__art--cover{background:transparent}
.ws-magazine-cover{box-sizing:border-box;aspect-ratio:210/297;width:auto;height:auto;min-height:0;max-width:100%;max-height:100%;flex:none;box-shadow:10px 12px 0 color-mix(in srgb,var(--ws-text) 10%,transparent)}
@media(min-width:901px){.editorial--magazine .editorial__art--cover{min-height:0;align-self:stretch;overflow:visible}.editorial--magazine .ws-magazine-cover{height:100%;width:auto;max-width:100%;max-height:100%}}
@media(max-width:900px){.editorial--magazine .editorial__art--cover{min-height:0;aspect-ratio:auto;padding:18px 0}.editorial--magazine .ws-magazine-cover{width:min(100%,330px);height:auto;max-height:none;aspect-ratio:210/297}}


/* Editorial typography hierarchy: English is the dominant title, Chinese is the
   secondary editorial caption. Optical rhythm is set per composition, not by
   stretching glyphs or using oversized duplicate headlines. */
.editorial__headline{min-width:0;gap:clamp(10px,1.6vw,24px);align-items:flex-start}
.editorial__en{order:1;font-family:var(--ws-type-display-en);font-weight:400;font-synthesis:none;font-size:clamp(58px,6.5vw,118px);line-height:.92;letter-spacing:-.045em;margin:0;max-width:100%;overflow-wrap:normal;hyphens:none;text-wrap:balance}
.editorial__title{order:2;font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air,200);font-synthesis:none;font-size:clamp(25px,2.5vw,44px);line-height:1.4;letter-spacing:.13em;margin:0}
.editorial__chapter{font-size:clamp(56px,8vw,128px);opacity:.075;top:0;right:0;line-height:1;z-index:0}
.editorial__statement{font-size:clamp(25px,2.5vw,44px);line-height:1.06;letter-spacing:-.025em;text-wrap:balance}
.editorial__keywords{font-size:clamp(16px,1.5vw,25px);letter-spacing:.1em;line-height:1.5}
.editorial--magazine .editorial__en--lead{font-size:clamp(48px,5.2vw,98px);line-height:.96;max-width:100%;text-wrap:balance}
.editorial--magazine .editorial__title{font-size:clamp(25px,2.5vw,44px)}
/* Long English names need an editorial measure; do not distort or compress type. */
.editorial--church .editorial__en,.editorial--sermon .editorial__en,.editorial--cinema .editorial__en{font-size:clamp(46px,5vw,90px)}
.editorial--magazine .editorial__headline{justify-content:center}
@media(max-width:900px){
 .editorial__en{font-size:clamp(42px,9vw,82px)}
 .editorial__title{font-size:clamp(22px,4vw,35px)}
 .editorial--magazine .editorial__en--lead{font-size:clamp(40px,8vw,74px)}
 .editorial--magazine .editorial__title{font-size:clamp(22px,4vw,35px)}
 .editorial--church .editorial__en,.editorial--sermon .editorial__en,.editorial--cinema .editorial__en{font-size:clamp(38px,7.5vw,70px)}
 .editorial__chapter{font-size:clamp(48px,12vw,95px)}
}


/* Nava-inspired editorial contents: one in-page navigation, no route jump for realms. */
.sites-home-hero>.sites-home-nav,.sites-home-entry{display:none!important}
.sites-home-nav--floating{z-index:9999!important;overflow:visible!important}
.sites-home-nav--floating .sites-home-nav__details{position:static}
.sites-home-nav--floating .sites-home-nav__details>summary{position:relative;z-index:10002;cursor:pointer;display:flex;align-items:center;gap:1em;list-style:none}
.sites-home-nav--floating .sites-home-nav__details>summary::-webkit-details-marker{display:none}
.sites-home-nav__menu-symbol{display:inline-block;transition:transform .45s cubic-bezier(.2,.75,.2,1)}
.sites-home-nav__details[open] .sites-home-nav__menu-symbol{transform:rotate(45deg)}
.sites-home-nav--floating:has(details[open]){color:var(--ws-text,#252525)!important;transform:none!important;opacity:1!important}
.sites-home-nav--floating .sites-home-nav__panel{position:fixed!important;inset:0!important;box-sizing:border-box;width:100vw!important;height:100dvh!important;max-width:none!important;max-height:none!important;overflow:auto!important;z-index:10000!important;display:flex!important;flex-direction:column;align-items:stretch!important;justify-content:center;gap:clamp(20px,3vh,42px);padding:clamp(85px,12vh,150px) clamp(28px,8vw,150px) clamp(32px,6vh,80px)!important;background:var(--ws-surface,#faf9f5)!important;color:var(--ws-text,#252525)!important;border:0!important;border-radius:0!important;box-shadow:none!important;clip-path:inset(0 0 100% 0);opacity:0;visibility:hidden;transition:clip-path .75s cubic-bezier(.77,0,.18,1),opacity .3s,visibility 0s .75s}
.sites-home-nav--floating details[open] .sites-home-nav__panel{clip-path:inset(0 0 0 0);opacity:1;visibility:visible;transition:clip-path .75s cubic-bezier(.77,0,.18,1),opacity .3s}
.sites-home-nav__panel-intro{display:flex;justify-content:space-between;gap:20px;padding-bottom:16px;border-bottom:1px solid currentColor;font-family:var(--ws-type-display-en-sc);font-size:clamp(11px,.9vw,15px);letter-spacing:.12em}
.sites-home-nav__panel-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,7vw,130px);row-gap:clamp(5px,1vh,16px)}
.sites-home-nav--floating .sites-home-nav__panel-links>a{display:block!important;position:relative!important;padding:clamp(3px,.6vh,10px) 0!important;background:none!important;border:0!important;color:inherit!important;text-decoration:none!important;font-family:var(--ws-type-display-en)!important;font-weight:400!important;font-size:clamp(27px,3.5vw,68px)!important;letter-spacing:-.035em!important;line-height:1.03!important;transform:translateY(24px);opacity:0;transition:transform .6s cubic-bezier(.2,.75,.2,1),opacity .6s}
.sites-home-nav--floating details[open] .sites-home-nav__panel-links>a{transform:translateY(0);opacity:1;transition-delay:calc(.15s + var(--nav-index,0)*.055s)}
.sites-home-nav__panel-links>a:nth-child(1){--nav-index:1}.sites-home-nav__panel-links>a:nth-child(2){--nav-index:2}.sites-home-nav__panel-links>a:nth-child(3){--nav-index:3}.sites-home-nav__panel-links>a:nth-child(4){--nav-index:4}.sites-home-nav__panel-links>a:nth-child(5){--nav-index:5}.sites-home-nav__panel-links>a:nth-child(6){--nav-index:6}.sites-home-nav__panel-links>a:nth-child(7){--nav-index:7}.sites-home-nav__panel-links>a:nth-child(8){--nav-index:8}
.sites-home-nav__panel-links>a:hover,.sites-home-nav__panel-links>a:focus-visible{color:var(--ws-first-light,#a2872a)!important}
.sites-home-nav__panel-entries{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,3vw,48px);border-top:1px solid currentColor;padding-top:clamp(15px,2.5vh,30px)}
.sites-home-nav__panel-entries>a{display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit;font-family:var(--ws-type-display-en-sc);font-size:clamp(14px,1.3vw,21px);letter-spacing:.06em}
.sites-home-nav__panel-entries>a span{font-family:var(--ws-type-display-zh);font-size:clamp(12px,1vw,17px);letter-spacing:.08em}
.sites-home-nav__panel-entries>a:hover{color:var(--ws-first-light,#a2872a)}
@media(max-width:700px){.sites-home-nav--floating .sites-home-nav__panel{padding:90px 24px 28px!important;justify-content:flex-start}.sites-home-nav__panel-links{grid-template-columns:1fr;row-gap:8px}.sites-home-nav--floating .sites-home-nav__panel-links>a{font-size:clamp(28px,7vw,48px)!important}.sites-home-nav__panel-entries{grid-template-columns:1fr;gap:12px}.sites-home-nav__panel-entries>a{flex-direction:row;justify-content:space-between}.sites-home-nav__panel-intro{font-size:10px}}
@media(prefers-reduced-motion:reduce){.sites-home-nav--floating .sites-home-nav__panel,.sites-home-nav--floating .sites-home-nav__panel-links>a,.sites-home-nav__menu-symbol{transition:none!important;transform:none!important}}

html.ws-home-menu-open{overflow:hidden}
.sites-home-nav--floating details[open] .sites-home-nav__panel{pointer-events:auto}


/* Nava-inspired hover-to-preview: no navigation on pointer movement. */
@media(min-width:901px) and (hover:hover){
 .sites-home-nav--floating .sites-home-nav__panel-links{position:relative;z-index:2;grid-template-columns:minmax(0,1fr);width:51%;max-height:58vh;overflow-y:auto;align-content:center}
 .sites-home-nav--floating .sites-home-nav__panel-links>a{font-size:clamp(25px,3vw,55px)!important}
 .ws-nav-hover-preview{position:absolute;z-index:1;right:clamp(28px,8vw,150px);top:19%;bottom:20%;width:35%;display:flex;flex-direction:column;gap:12px;opacity:0;transform:translateY(20px);pointer-events:none;transition:opacity .32s ease,transform .55s cubic-bezier(.2,.75,.2,1)}
 .ws-nav-hover-preview.is-visible{opacity:1;transform:translateY(0)}
 .ws-nav-hover-preview__visual{flex:1;min-height:0;overflow:hidden;background:var(--ws-material,#eee4c9);box-shadow:0 18px 55px rgba(0,0,0,.07)}
 .ws-nav-hover-preview__visual iframe{width:100%;height:100%;border:0;pointer-events:none}
 .ws-nav-hover-preview__caption{font-family:var(--ws-type-display-en-sc);font-size:12px;letter-spacing:.15em}
}
@media(max-width:900px),(hover:none){.ws-nav-hover-preview{display:none}}
@media(prefers-reduced-motion:reduce){.ws-nav-hover-preview{transition:none!important}}


/* CONTENTS / Scale Down Reveal: one authoritative click-only transition.
   The homepage recedes in place; the directory is revealed behind it. */
.sites-home-nav--floating:has(.sites-home-nav__details[open]),
.sites-home-nav--floating{z-index:2147483000!important}
.sites-home-nav--floating .sites-home-nav__details>summary,
.sites-home-nav--floating .sites-home-nav__menu-label{
 transform:none!important;rotate:none!important;writing-mode:horizontal-tb!important;
 text-orientation:mixed!important;font-style:normal!important;
}
.sites-home-nav--floating .sites-home-nav__details>summary{
 position:fixed!important;top:clamp(14px,2vw,30px)!important;
 right:clamp(20px,4vw,65px)!important;z-index:2147483004!important;
 pointer-events:auto!important;display:flex!important;flex-direction:row!important;
 align-items:center!important;gap:12px!important;
}
.sites-home-nav--floating:has(details[open]){position:fixed!important;inset:0!important;
 width:100vw!important;height:100dvh!important;transform:none!important;
 opacity:1!important;visibility:visible!important;pointer-events:none!important}
.sites-home-nav--floating:has(details[open]) .sites-home-nav__details{position:static!important}
.sites-home-nav--floating .sites-home-nav__panel{
 clip-path:none!important;animation:none!important;transition:none!important;
}
.sites-home-nav--floating details[open] .sites-home-nav__panel{
 position:fixed!important;inset:0!important;width:100vw!important;height:100dvh!important;
 z-index:2147483001!important;visibility:visible!important;clip-path:none!important;
 opacity:0!important;transform:scale(1.035)!important;
 transition:opacity .55s ease .32s,transform .85s cubic-bezier(.22,1,.36,1)!important;
 pointer-events:none!important;
}
html.ws-scale-reveal-open .sites-home-nav--floating details[open] .sites-home-nav__panel{
 opacity:1!important;transform:scale(1)!important;pointer-events:auto!important;
}
html.ws-scale-reveal-active .sites-home-hero{
 transform-origin:50% 50%!important;will-change:transform,opacity;
 transition:transform .85s cubic-bezier(.22,1,.36,1),opacity .5s ease .3s!important;
}
html.ws-scale-reveal-open .sites-home-hero{
 transform:scale(.82)!important;opacity:0!important;pointer-events:none!important;
}
html.ws-scale-reveal-active:not(.ws-scale-reveal-open) .sites-home-hero{
 transform:scale(1)!important;opacity:1!important;
}
html.ws-scale-reveal-active .sites-home-nav__panel-links>a,
html.ws-scale-reveal-active .sites-home-nav__panel-entries>a{
 transition:transform .65s cubic-bezier(.22,1,.36,1),opacity .65s ease!important;
}
html.ws-scale-reveal-active:not(.ws-scale-reveal-open) .sites-home-nav__panel-links>a,
html.ws-scale-reveal-active:not(.ws-scale-reveal-open) .sites-home-nav__panel-entries>a{
 opacity:0!important;transform:translateY(28px)!important;
}
html.ws-scale-reveal-open .sites-home-nav__panel-links>a,
html.ws-scale-reveal-open .sites-home-nav__panel-entries>a{
 opacity:1!important;transform:translateY(0)!important;
}
html.ws-scale-reveal-open .sites-home-nav__panel-links>a{
 transition-delay:calc(.35s + var(--nav-index,0)*.05s)!important;
}
html.ws-scale-reveal-open .sites-home-nav__panel-entries>a{transition-delay:.65s!important}
@media(prefers-reduced-motion:reduce){
 html.ws-scale-reveal-active .sites-home-hero,
 .sites-home-nav--floating details[open] .sites-home-nav__panel,
 html.ws-scale-reveal-active .sites-home-nav__panel-links>a,
 html.ws-scale-reveal-active .sites-home-nav__panel-entries>a{
 transition:none!important;
 }
}

/* Design OS / Sevenfold geometry authority.
   Adjust these scoped tokens rather than patching individual page selectors. */
body.home{
 --ws-dawn-slogan-open-top:4.5dvh;
 --ws-dawn-slogan-menu-clearance:38px;
 --ws-dawn-menu-min-top:29dvh;
 --ws-dawn-menu-row-height:42px;
 --ws-dawn-menu-grid-width:40vw;
 --ws-dawn-menu-first-column:16vw;
 --ws-dawn-scripture-top:43dvh;
 --ws-dawn-scripture-bottom-gap:calc(1.4dvh - 1.08 * var(--ws-type-scale-reading-lg));
 --ws-dawn-scripture-fixed-top:44dvh;
 --ws-dawn-scripture-open-top:43dvh;
 --ws-dawn-scripture-right:50vw;
 --ws-dawn-scripture-center-width:min(90vw,850px);
 --ws-dawn-scripture-bilingual-gap:12px;
 --ws-dawn-scripture-en-pullup:0px;
 --ws-dawn-scripture-zh-line-height:1;
 --ws-dawn-scripture-en-line-height:1.08;
 --ws-dawn-scripture-cite-gap:3px;
 --ws-dawn-scripture-cite-indent:2.5em;
 --ws-dawn-large-logo-width:min(72vw,960px);
}

/* Canonical bilingual scripture references: never inherit a single Latin font for mixed scripts. */
.ws-scripture-reference{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:.5em;font-size:var(--ws-type-scripture-reference-size);letter-spacing:var(--ws-type-scripture-reference-tracking);font-weight:400;font-synthesis:none}
.ws-scripture-reference :where([lang="zh"],[lang="zh-Hant"],[lang="zh-Hans"]){font-family:var(--ws-type-display-zh);font-weight:var(--ws-weight-zh-air);font-synthesis:none}
.ws-scripture-reference [lang="en"]{font-family:var(--ws-type-display-en-sc);font-weight:400;font-synthesis:none}
.ws-scripture-reference-divider{font-family:var(--ws-type-display-en);opacity:.55}
