/* Sanctuary: ivory stone, oak, evergreen and stained-glass blue. */
:root {
  --ink: #253B34; --ink-2: #304C42; --ink-3: #426255;
  --paper: #F7F3EB; --paper-2: #EAE2D4; --blush: #D9B2A1; --peach: #DDB77F;
  --gold: #DDBB73; --amber: #BF914F; --flame: #AD6243; --cross: #345B4C;
  --motto: #8D6240; --rose: #A35843; --sky: #73949D; --teal: #537C75;
  --violet: #687F83; --lawn: #849268;
  --text-d: #283A33; --muted-d: #69716A; --text-l: #FCFAF5; --muted-l: #D8E0D5;
  --ease-out: cubic-bezier(.22, .68, .22, 1); --ease-io: cubic-bezier(.45, 0, .25, 1);
}
body { background: var(--paper); color: var(--text-d); }
.eyebrow { color: var(--cross); }
.display em { --grad: linear-gradient(var(--cross), var(--cross)); }
::selection { background: #E8DCCB; color: #463A2A; }
.nav { color: var(--text-d); }
.nav::before, .nav[data-tone="light"]::before { background: #FBF9F7EA; box-shadow: inset 0 0 0 1px #493D2D12; backdrop-filter: blur(12px); }
.nav-links.open { background: #FBF9F7F7; color: var(--text-d); }
.nav-links a:hover, .nav-links a[aria-current="true"], .nav[data-tone="light"] .nav-links a:hover, .nav[data-tone="light"] .nav-links a[aria-current="true"] { background: #B1977310; }
.btn-glow, .btn-nav { background: #89704D; color: #fff; box-shadow: none; }
.btn-glow:hover { box-shadow: 0 10px 22px -14px #89704D66; }
.nav .btn-nav { color: #fff; }
.sec-hero .body { background: #FBF9F7; color: var(--text-d); }
.hero-copy .eyebrow, .hero-copy .verse, .hero-copy .verse span { color: #88755B; }
.hero-copy .display em { --grad: linear-gradient(#89704D, #89704D); }
.sec-hero .lede, .quick dt, .scroll-cue { color: #787166; }
.hero-copy { opacity: 1; transform: translate3d(0, calc(var(--p, 0) * -12px), 0); }
.door-window { left: 76%; transform: translate(-50%, -50%) scale(calc(1 + var(--p, 0) * .055)); }
.door-lead { opacity: 1; }
.door-lead path { stroke: #BEAC92; }
.door-photo::after { display: none; }
.glass-signature { opacity: 1; transform: translate(-50%, -50%); box-shadow: 0 8px 30px #5A4C3912; }
.js .quick.reveal.in, .quick { opacity: 1; }
.quick div { border-color: #89704D; }
.sec-roots { color: var(--text-d); }
.sec-roots .body { background: #F2ECE3; color: var(--text-d); }
.roots-sky { background: linear-gradient(180deg, #F5F0EA 0%, #E8DCCB 35%, #EEE6DA 66%, #FEFAF4 100%); }
.roots-sky .sun { background: radial-gradient(circle, #FEFDFB 0 30%, #F1E8DBB3 45%, #E4D5C000 70%); }
.roots-intro .lede, .roots-hint { color: #7A6E5D; }
.roots-intro .eyebrow, .roots-intro .display em { color: #89704D; --grad: linear-gradient(#89704D, #89704D); }
.sec-roots .body::before { background: repeating-linear-gradient(180deg, #FFFFFF50 0 1px, transparent 1px 18px), linear-gradient(#CBC3B8, #ABA192); }
.steps li { background: #594C3AED; backdrop-filter: none; box-shadow: none; }
.steps span { color: #FEFAF5; }
.steps b { -webkit-text-stroke-color: #A5947B; background-image: linear-gradient(#605039, #A0855F); }
.steps li.on::before { opacity: .12; }
.roots-outro .small, .roots-outro .link { color: #5A4C39; }
.sec-home .body, .sec-arcade .body { background: #FBF9F7; }
.arch-image { background: #D7CBBA; }
.arch-frame { transform: translateY(calc((var(--p, .5) - .5) * var(--sh) * -32px)); }
.arch-frame .arch-image img { transition: transform 1s var(--ease-out); }
.arch-frame:hover .arch-image img { transform: scale(1.018); }
.sec-worship .body { background: #F1EAE1; color: var(--text-d); }
.worship-copy .eyebrow, .sec-worship .link { color: #826C4D; }
.worship-copy .display em { --grad: linear-gradient(#826C4D, #826C4D); }
.worship-copy .lede, .sec-worship .small { color: #7B7164; }
.board { background: #483C2A; box-shadow: 0 15px 30px -22px #4E402D66; }
.flap { background: linear-gradient(#6E604C 50%, #594C3A 50%); }
.pews-svg .seat { fill: #D9CBB7; }
.pews-svg .empty { stroke: #89704D; }
.pews-svg .altar-cross { fill: #826C4D; }
.pews-svg .altar-table { fill: #5A4C39; }
.pews-svg .seat-label-bg { fill: #5A4C39EB; }
.worship-light, .embers { opacity: .32; }
.worship-light { background: radial-gradient(circle at var(--mx, 70%) var(--my, 50%), #E6D4BB66, transparent 55%); }
.sec-family .body { background: #FBF9F7; }
.family-copy .display em { --grad: linear-gradient(#89704D, #89704D); }
.family-copy .eyebrow { color: #826C4D; }
.family-copy { gap: 18px; }
.family-copy h2 { font-size: clamp(42px, 5vw, 76px); }
.rp .glass, .rp .vein { stroke: #3B3123; }
.rose-petals { transition: none; }
.rose { filter: none; }
.rose-wrap::before { background: radial-gradient(circle, #ECE1D255, transparent 65%); }
.sec-visit .body { background: #F3EFE9; color: var(--text-d); }
.visit-copy .eyebrow, .visit-copy .link { color: #826C4D; }
.visit-copy .display em { --grad: linear-gradient(#826C4D, #826C4D); }
.visit-copy .lede, .place p { color: #7B7164; }
.place h3 { color: #5A4C39; }
.places .place { background: #FFFFFF66; box-shadow: inset 0 0 0 1px #D9CFC0; }
.map-svg { background: #E1D8CB; box-shadow: 0 16px 30px -24px #52463680; }
.place > svg { color: #A69277; }
.map-svg .land, .map-svg .island { fill: #EEE9E3; }
.map-svg .coast, .map-svg .island { stroke: #FEFDFB; }
.map-svg .dunes { stroke: #D3C8B8; }
.map-svg .road-base { stroke: #7C6E5A26; }
.map-svg .mandir path { fill: #B6A690; }
.map-svg .city.db text { fill: var(--text-d); }
.postcard { background: #FEFDFB; }
.postcard::before { background: #E7DBCADA; }
.sec-messenger .body, .sec-vicar .body { background: #FBF9F7; }
.vicar figure::before { background: #C4B39B; }
.msg-copy .display em { --grad: linear-gradient(#89704D, #89704D); }
.env-back { background: #A8957B; box-shadow: 0 40px 80px -30px #493B2766; }
.env-front { background: linear-gradient(160deg, #E7DBC9, #D0BFA7); }
.env-flap { background: linear-gradient(180deg, #EDE3D4, #D7C8B2); }
.letter, .stamp { background: #FEFDFB; }
.letter { box-shadow: 0 10px 30px -10px #584A364D; }
.letter-lines i { background: #EAE5DF; }
.postmark { color: #86755DB3; border-color: #86755DB3; transform: rotate(-14deg) scale(1.12); }
.postmark::after { background: repeating-linear-gradient(180deg, transparent 0 7px, #86755D80 7px 10px); }
.sec-messenger.stamped .postmark { animation: stamp .65s var(--ease-out) forwards; }
.stamp { padding: 12px; -webkit-mask: linear-gradient(#000 0 0) center / calc(100% - 10px) calc(100% - 10px) no-repeat, radial-gradient(circle 5px, #000 98%, transparent) 0 0 / 10px 10px round; mask: linear-gradient(#000 0 0) center / calc(100% - 10px) calc(100% - 10px) no-repeat, radial-gradient(circle 5px, #000 98%, transparent) 0 0 / 10px 10px round; }
.sec-come .body { background: #E9E0D3; color: #463A2A; }
.dawn { background: radial-gradient(ellipse at 26% 38%, #FEFCF8, #F0E7DB 45%, #D9CAB4 90%); }
.rays { background: repeating-conic-gradient(from 0deg, #FDF9F333 0 4deg, transparent 4deg 13deg); }
.come-inner .eyebrow, .come-inner .again { color: #856C4A; }
.come-inner .display em { --grad: linear-gradient(#856C4A, #856C4A); }
.come-inner .lede { color: #776B5A; }
.pano-chips span { color: #463A2A; background: #FCF8F3D9; }
.footer { background: #3B3225; }
.js [data-split] .wi { transform: translateY(105%); transition-duration: .85s; transition-delay: calc(var(--i) * 30ms); }
.js [data-split].in .wi { transform: none; }
.js .reveal { transform: translateY(16px); transition-duration: .75s; }
.js .reveal.in { transform: none; }
.wipe.cover i { transition-duration: .43s; transition-delay: calc(var(--i) * 22ms); }
.wipe.leave i { transition-duration: .48s; transition-delay: calc(var(--i) * 22ms); }

/* Small accents come from the photographs; broad surfaces stay like stone. */
.btn-glow, .btn-nav { background: var(--cross); }
.nav .btn-nav, .btn-glow { color: #fff; }
.hero-copy .eyebrow, .hero-copy .verse, .hero-copy .verse span { color: #876347; }
.quick div { border-color: #A77B48; }
.door-lead path { stroke: #B08A5E; }
.sec-roots .body { background: #E3ECE8; }
.roots-sky { background: linear-gradient(180deg, #E9EEEB 0%, #B9D0D1 35%, #DFDBBD 68%, #F7F3EB 100%); }
.roots-sky .sun { background: radial-gradient(circle, #FFFAE7 0 30%, #E4C78799 45%, #E4C78700 70%); }
.sec-roots .body::before { background: repeating-linear-gradient(180deg, #FFFFFF45 0 1px, transparent 1px 18px), linear-gradient(#8DAEB0, #5E898D); }
.steps li { background: #2B4B42F2; }
.steps b { -webkit-text-stroke-color: #73948B; background-image: linear-gradient(#2B4B42, #597B6B); }
.steps span { color: #FCFAF2; }
.sec-worship .body { background: #E8ECE1; }
.board { background: #263E35; box-shadow: 0 15px 30px -22px #263E3555; }
.flap { background: linear-gradient(#496357 50%, #324D40 50%); }
.pews-svg .seat { fill: #CBB58C; }
.pews-svg .empty { stroke: #345B4C; }
.pews-svg .altar-cross { fill: #A47536; }
.pews-svg .altar-table, .pews-svg .seat-label-bg { fill: #345B4C; }
.worship-light { background: radial-gradient(circle at var(--mx, 70%) var(--my, 50%), #D5B96A55, transparent 55%); }
.rp .glass, .rp .vein { stroke: #334B42; }
.rose-wrap::before { background: radial-gradient(circle, #C9D9CD55, transparent 65%); }
.sec-visit .body { background: #E9EEEB; }
.map-svg { background: #A9C5CC; }
.map-svg .land, .map-svg .island { fill: #E8E1CC; }
.map-svg .dunes { stroke: #C9BA8E; }
.map-svg .mandir path { fill: #BB9071; }
.map-svg .coast, .map-svg .island { stroke: #FBF9F0; }
.place > svg { color: #597F77; }
.places .place { box-shadow: inset 0 0 0 1px #C3D2C8; }
.postcard::before { background: #D6C6A6DA; }
.env-back { background: #A15E45; }
.env-front { background: linear-gradient(160deg, #D7AC8C, #B98064); }
.env-flap { background: linear-gradient(180deg, #E7C6A6, #C59576); }
.vicar figure::before { background: #ADBDAD; }
.sec-come .body { background: #EDE2C8; }
.dawn { background: radial-gradient(ellipse at 26% 38%, #FFF9E7, #E7D6B4 45%, #B9CBBE 90%); }
.footer { background: #253B34; }

/* Door geometry lives in motion.css; all parts share a 600 × 1100 drawing. */
.sec-home-notes > .body { min-height: 0; background: #EDE7DA; }
.sec-home-notes .home-inside { position: relative; inset: auto; opacity: 1; transform: none; padding-block: clamp(64px, 9vw, 120px); }
.sec-home-notes .home-inside .display em { --grad: linear-gradient(#345B4C, #345B4C); }
.sec-home-notes .facts li { transform: none; opacity: 1; background: #FCFAF4; box-shadow: none; border: 1px solid #D7CCB8; }
.sec-home-notes .facts svg { background: #345B4C; }
.sec-home-notes .facts li:nth-child(2) svg { background: #A36E44; }
.sec-home-notes .facts li:nth-child(3) svg { background: #6F8B91; }
:is(.reduce, .no-js) .roots-outro .small, :is(.reduce, .no-js) .roots-outro .link { color: #51483B; }
:is(.reduce, .no-js) .door-window { transform: translate(-50%, -50%); }
@media (max-width: 900px) {
  .sec-hero .body::after { background: linear-gradient(180deg, transparent 25%, #F7F3EB55 38%, #F7F3EB 49%); opacity: 1; }
  .door-window { left: 50%; top: calc(84px + var(--dh) * .5); }
  .sec-home-notes .home-inside h2 { font-size: clamp(36px, 8.5vw, 48px); }
  .dawn { background: radial-gradient(ellipse at 50% 20%, #FFF9E7, #E7D6B4 45%, #B9CBBE 90%); }
}
