/* The Chosen Child shared styles. Built from mockup-2 (Paper-Cut Pop). */

:root{
  --cream:#FFF6E4; --paper:#F5EDD8; --ink:#1C2A3D;
  --terra:#F2705B; --terra-d:#C7442F; --terra-l:#F79A88;
  --sage:#8CC48A; --sage-d:#4F9A63; --sage-l:#BFE0B5;
  --blue:#2F6DA8; --sky:#7DB7E6; --blue-l:#CFE6F7;
  --plum:#14284A; --plum-d:#0C1B33;
  --sun:#F7B731; --sun-l:#F7D56B;
  --leaf:#3F7D4E; --sea:#1F5A8F;
  --spring:cubic-bezier(.34,1.56,.64,1);
  --tex:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='260' height='260'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .3 0 0 0 0 .2 0 0 0 0 .15 0 0 0 .13 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --cut:0 3px 0 rgba(16,30,56,.16), 0 10px 18px -6px rgba(16,30,56,.35);
  --hh:72px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-padding-top:calc(var(--hh) + 12px)}
body{margin:0;background:var(--tex),var(--paper);color:var(--ink);font:400 1.06rem/1.6 Outfit,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3,.blk h1{font-family:"Lilita One",system-ui,sans-serif;font-weight:400;line-height:1;margin:0 0 .4em;text-wrap:balance;letter-spacing:.005em}
p,li,blockquote{text-wrap:pretty}
p{margin:0 0 1em}
a{color:inherit}
:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:6px}
.wrap{width:min(1240px,100% - 40px);margin-inline:auto}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- buttons, chips ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:52px;padding:.7em 1.5em;border-radius:16px;border:0;
  font:600 1.02rem/1 Outfit,sans-serif;text-decoration:none;cursor:pointer;color:#fff;background:var(--terra);
  box-shadow:0 5px 0 var(--terra-d),0 12px 20px -8px rgba(16,30,56,.5);transition:transform .35s var(--spring),box-shadow .2s}
.btn:hover{transform:translateY(-3px) rotate(-1.5deg)}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 var(--terra-d)}
.btn.alt{background:var(--cream);color:var(--plum);box-shadow:0 5px 0 #D9C3A2,0 12px 20px -8px rgba(16,30,56,.4)}
.btn.plum{background:var(--plum);box-shadow:0 5px 0 var(--plum-d),0 12px 20px -8px rgba(16,30,56,.5)}
.eyebrow{display:inline-block;font:700 .82rem/1 Outfit,sans-serif;letter-spacing:.14em;padding:.6em 1em;border-radius:999px;
  background:var(--cream);color:var(--plum);box-shadow:var(--cut);margin:0 0 1.1rem;transform:rotate(-2deg)}
.chip{display:inline-block;font:700 .78rem/1 Outfit,sans-serif;letter-spacing:.06em;padding:.55em .9em;border-radius:999px;background:var(--sun);color:var(--ink)}

/* ---------- header ---------- */
.top{position:sticky;top:0;z-index:50;height:var(--hh);background:var(--tex),var(--cream);box-shadow:0 3px 0 rgba(20,40,74,.12),0 10px 24px -14px rgba(16,30,56,.45)}
.top .wrap{height:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
/* logo: brand/logo horizontal lockup, sized by height only; its built-in margin is the clear space. Never rotate or recolor. */
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{display:block;width:auto;height:60px;transition:transform .4s var(--spring)}
.brand:hover img{transform:scale(1.04)}
nav{display:flex;align-items:center;gap:10px}
#navMenu{display:flex;gap:4px;list-style:none;margin:0;padding:0}
#navMenu a{display:block;padding:.55em .8em;border-radius:12px;text-decoration:none;font-weight:600;color:var(--plum);transition:background .2s,transform .3s var(--spring)}
#navMenu a:hover{background:var(--sun-l);transform:rotate(-2deg)}
#navMenu .mcta{display:none}
#navBtn{display:none;min-height:46px;padding:0 1.1em;border-radius:14px;border:0;background:var(--plum);color:var(--cream);font:600 1rem/1 Outfit,sans-serif;cursor:pointer;gap:.5em;align-items:center;box-shadow:0 4px 0 var(--plum-d)}
#navBtn i{display:block;width:18px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;border-radius:2px}
#navBtn[aria-expanded="true"] i{box-shadow:none}
.hcta{min-height:46px}
@media (max-width:1179px){
  #navBtn{display:inline-flex}
  #navMenu{display:none;position:absolute;top:calc(var(--hh) + 6px);left:16px;right:16px;grid-template-columns:1fr 1fr;gap:10px;padding:16px;
    background:var(--tex),var(--cream);border-radius:22px;box-shadow:0 6px 0 rgba(20,40,74,.15),0 24px 40px -12px rgba(16,30,56,.5)}
  #navMenu.open{display:grid;animation:drop .45s var(--spring)}
  #navMenu a{background:#fff;text-align:center;padding:.9em;box-shadow:var(--cut)}
  #navMenu .mcta{display:block;grid-column:1/-1}
  #navMenu .mcta a{background:var(--terra);color:#fff}
}
@media (max-width:599px){ .hcta{display:none} :root{--hh:64px} .brand img{height:48px} }
@media (max-width:379px){ #navMenu{grid-template-columns:1fr} .brand img{height:42px} }
@keyframes drop{from{opacity:0;transform:translateY(-16px) scale(.96)}}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--terra);overflow-x:clip}
.stage{position:relative;isolation:isolate;overflow:clip;background:linear-gradient(180deg,#4E9BD8 0%,var(--sky) 55%,#CFE6F7 100%);
  --bh:calc(var(--bw) * 1.25);
  height:var(--sh)}
.stage::after{content:"";position:absolute;inset:0;background:var(--tex);z-index:0;pointer-events:none}
.stage > :not(.headline),.headline .ln{translate:calc(var(--mx,0) * var(--d,0) * 1px) calc((var(--my,0) + var(--sy,0)) * var(--d,0) * 1px)}
.sun{position:absolute;z-index:1;width:var(--sun,190px);aspect-ratio:1;--d:-10}
.sun svg{width:100%;height:100%;animation:spin 48s linear infinite;filter:drop-shadow(0 6px 0 rgba(199,68,47,.25))}
.cloud{position:absolute;z-index:1;--d:-5}
.cloud svg{display:block;width:100%;filter:drop-shadow(0 5px 0 rgba(47,109,168,.25));animation:drift var(--t,22s) ease-in-out infinite alternate}
.hills{position:absolute;left:-2%;right:-2%;bottom:0;z-index:2;--d:4}
.hills svg{display:block;width:100%;height:auto}
.hills.near{z-index:6;--d:16}
.hills.near svg{height:calc(104vw / 1440 * 160 * 1.3)}
.hills.near::after{content:"";position:absolute;left:0;right:0;top:calc(100% - 2px);height:120px;background:#4F9A63}
.hills path{filter:drop-shadow(0 -4px 0 rgba(16,30,56,.10)) drop-shadow(0 -10px 14px rgba(16,30,56,.18))}
.sheep{position:absolute;z-index:6;width:var(--sw,86px);--d:18;animation:walk var(--wt,26s) linear var(--wd,0s) infinite}
.sheep svg{display:block;width:100%;transform-origin:78% 100%;filter:drop-shadow(0 5px 0 rgba(16,30,56,.18));
  animation:step .38s ease-in-out infinite alternate,graze var(--wt,26s) linear var(--wd,0s) infinite}
.sheep.b{--f:1;--wx:7vw;--wt:34s;--wd:-9s}
.sheep.s3{--f:1;--wx:2.5vw;--wt:40s;--wd:-22s}
/* Bible scenes: Noah's ark with animals two by two, a dove with an olive leaf, young David the shepherd boy */
.ark,.dove,.shep{position:absolute;pointer-events:none}
.ark{z-index:4;--d:7;left:var(--akx);bottom:var(--akb);width:var(--akw)}
.dove{z-index:2;--d:-3;left:var(--dvx);top:var(--dvy);width:var(--dvw)}
.shep{z-index:7;--d:18;right:var(--spx);bottom:var(--spb);width:var(--spw)}
.ark svg,.dove svg,.shep svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 4px 0 rgba(16,30,56,.18))}
.ark .pair{animation:plod 12s linear infinite}
.ark .pair.p2{animation-delay:-6s}
.ark .pair > g{animation:step .4s ease-in-out infinite alternate}
.ark .peek{transform-box:fill-box;transform-origin:50% 100%;animation:peek 6s ease-in-out infinite}
.dove svg{animation:glide 16s ease-in-out infinite}
.dove .wing{transform-box:fill-box;transform-origin:30% 100%;animation:flap .5s ease-in-out infinite alternate}
.shep .sling{transform-box:view-box;transform-origin:70px 40px;animation:whirl .8s ease-in-out infinite alternate}
@keyframes plod{0%{transform:translateX(0);opacity:0}12%,80%{opacity:1}100%{transform:translateX(64px);opacity:0}}
@keyframes peek{0%,60%,100%{transform:translateY(0)}70%,90%{transform:translateY(-5px) rotate(-6deg)}}
/* the dove turns around at each end so it always faces the way it flies */
@keyframes glide{0%{translate:0 0;scale:1 1}46%{translate:var(--dvm,3vw) -1vw;scale:1 1}50%{translate:var(--dvm,3vw) -1vw;scale:-1 1}96%{translate:0 0;scale:-1 1}100%{translate:0 0;scale:1 1}}
@keyframes flap{to{transform:scaleY(.2)}}
@keyframes whirl{from{transform:rotate(-30deg)}to{transform:rotate(30deg)}}

.headline{position:absolute;inset:0;margin:0;pointer-events:none;font-size:var(--fs);line-height:.88;letter-spacing:-.005em}
.headline .ln{position:absolute;left:var(--hx,4.5vw);white-space:nowrap}
.headline .w{display:inline-block;animation:popin .9s var(--spring) both}
.l1{z-index:3;--d:8;bottom:calc(var(--h2b) + var(--fs) * .88);color:var(--cream);
  text-shadow:0 .035em 0 var(--terra),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.3)}
.l2{z-index:7;--d:22;bottom:var(--h2b);color:var(--sun-l);
  text-shadow:0 .035em 0 var(--terra-d),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.35)}
.l1 .w:nth-child(2){animation-delay:.12s}
.l2 .w:nth-child(1){animation-delay:.3s}
.l2 .w:nth-child(2){animation-delay:.42s}

.boy{position:absolute;z-index:5;--d:12;left:var(--bl);bottom:0;width:var(--bw);aspect-ratio:1792/2240;isolation:isolate}
.boy > img{position:relative;width:100%;height:100%;z-index:1;filter:drop-shadow(0 8px 0 rgba(20,40,74,.28)) drop-shadow(0 26px 30px rgba(16,30,56,.3));animation:rise 1.1s var(--spring) .15s both}
.cover{position:absolute;z-index:2;left:53%;top:4%;width:40%;perspective:900px}
.cover .flip{animation:popout 1.1s var(--spring) .9s both;transform-origin:50% 100%}
.cover .sway{border-radius:8px;background:#fff;padding:4%;box-shadow:0 5px 0 rgba(16,30,56,.2),0 20px 26px -10px rgba(16,30,56,.55);
  animation:sway 5s ease-in-out 2.2s infinite alternate;rotate:var(--cr,5deg)}
.cover img{display:block;border-radius:4px;aspect-ratio:520/626;width:100%;height:auto}
.tag{position:absolute;z-index:4;left:var(--tx,60%);top:var(--ty,62%);width:max-content;--d:0;animation:popin .8s var(--spring) 1.5s both}
.tag b{display:block;font:400 clamp(1.15rem,1.9vw,1.7rem)/1 "Lilita One",sans-serif;color:var(--plum);background:var(--sun-l);padding:.45em .75em .5em;border-radius:14px;
  border:3px solid #fff;box-shadow:0 5px 0 rgba(16,30,56,.2),0 14px 20px -8px rgba(16,30,56,.45);rotate:-6deg;animation:wiggle 3.2s ease-in-out 2.4s infinite}
.tag svg{position:absolute;width:44px;height:var(--al,96px);left:var(--ax,24%);top:calc(var(--al,96px) * -1);rotate:var(--ar,0deg);filter:drop-shadow(0 3px 0 rgba(16,30,56,.25))}

.hx{position:absolute;z-index:8;left:4.5vw;top:var(--ey,3.2vw);--d:6}
.hx .eyebrow{margin:0;font-size:clamp(.72rem,.9vw,.86rem);transform:rotate(-3deg);animation:popin .8s var(--spring) .6s both}
.copy{position:relative;z-index:9}
.card{background:var(--tex),var(--cream);border-radius:24px;padding:clamp(20px,2.4vw,30px);box-shadow:0 6px 0 rgba(16,30,56,.14),0 26px 40px -18px rgba(16,30,56,.55)}
.copy p{font-size:clamp(1.02rem,1.25vw,1.16rem);margin-bottom:1.1em;color:#24344F}
.ctas{display:flex;flex-wrap:wrap;gap:14px}

/* wide desktop: copy card sits inside the poster */
@media (min-width:1200px) and (min-height:521px){
  .stage{--fs:12.4vw;--bw:41.6vw;--bl:52.8vw;--sh:max(57vw,min(100svh - var(--hh),64vw));--h2b:calc(var(--bh) * .5 - var(--fs) * .44)}
  .copy{position:absolute;left:4.5vw;bottom:2.4vw;width:min(38vw,560px);z-index:9}
  .copy .card{animation:popin .9s var(--spring) .75s both}
  .sun{left:32vw;top:2vw;--sun:12vw}
  .c1{left:20vw;top:4vw;width:13vw}.c2{right:2vw;top:20vw;width:10vw;--t:28s}
  .s1{right:1vw;bottom:1.6vw;--sw:6vw}.s2{left:44vw;bottom:5vw;--sw:5.6vw}.s3{left:54.5vw;bottom:1.2vw;--sw:4.2vw}
  .stage{--akx:81vw;--akb:7.2vw;--akw:18.5vw;--dvx:5.5vw;--dvy:6.6vw;--dvw:8vw;--spx:auto;--spb:1.2vw;--spw:9.4vw}
  .shep{left:45vw}
  .tag{--tx:60%;--ty:56%;--al:110px}
}
/* mid widths and tablets */
@media (min-width:600px) and (max-width:1199px) and (min-height:521px), (min-width:1200px) and (max-height:520px) and (orientation:portrait){
  .stage{--fs:12.6vw;--bw:46vw;--bl:54vw;--sh:66vw;--h2b:calc(var(--bh) * .5 - var(--fs) * .44)}
  .sun{left:36vw;top:1.5vw;--sun:13vw}
  .c1{left:16vw;top:6vw;width:15vw}.c2{right:1vw;top:30vw;width:12vw}
  .s1{right:1vw;bottom:2vw;--sw:9vw}.s2{left:42vw;bottom:5vw;--sw:7vw}.s3{left:13vw;bottom:1.2vw;--sw:5.6vw}
  .stage{--akx:15vw;--akb:6vw;--akw:27vw;--dvx:3.5vw;--dvy:8.6vw;--dvw:11vw;--spx:auto;--spb:1.2vw;--spw:9vw}
  .shep{left:4vw}
  .tag{--tx:60%;--ty:56%;--al:84px}
}
/* phone portrait */
@media (max-width:599px) and (min-height:521px){
  .stage{--fs:19vw;--bw:76vw;--bl:22vw;--sh:calc(var(--bh) + 48vw);--hx:4vw}
  .l1{bottom:auto;top:11vw}
  .l2{bottom:auto;top:calc(11vw + var(--fs) * .88)}
  .hx{top:3vw;left:4vw}
  .sun{right:-6vw;top:-5vw;--sun:30vw}
  .c1{left:auto;right:30vw;top:2vw;width:22vw}.c2{display:none}
  .s1{right:1vw;bottom:2vw;--sw:17vw}.s2,.s3{display:none}
  .stage{--akx:-9.8vw;--akb:6.2vw;--akw:34.3vw;--dvx:1.5vw;--dvy:53vw;--dvw:17vw;--dvm:1.5vw}
  .ark .pair,.shep{display:none}
  .tag{--tx:54%;--ty:67%;--al:122px}
  .copy .card{display:flex;flex-direction:column}
  .copy .ctas{order:-1;margin-bottom:18px;display:grid;gap:12px}
}
/* phone landscape: side by side poster */
@media (max-height:520px) and (orientation:landscape){
  :root{--hh:58px} .brand img{height:50px}
  .stage{--fs:10.4vw;--bw:30vw;--bl:64vw;--sh:max(calc(100svh - var(--hh)),40vw);--h2b:calc(var(--bh) * .5 - var(--fs) * .44);--ey:2vw}
  .sun{right:3vw;top:2vw;--sun:12vw}
  .c1{left:28vw;top:2vw;width:12vw}.c2{right:16vw;top:20vw;width:8vw}
  .s1{right:2vw;bottom:1.5vw;--sw:8vw}.s2,.s3{display:none}
  .stage{--akx:47vw;--akb:10.5vw;--akw:18vw;--dvx:46vw;--dvy:7vw;--dvw:9vw}
  .shep{display:none}
  .tag{--tx:64%;--ty:66%;--al:64px}
  .tag b{font-size:1.05rem}
  .lctas{position:absolute;z-index:9;left:4.5vw;bottom:3vw;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:min(400px,58vw);gap:12px;--d:6}
  .lctas .btn{min-height:44px;padding:.6em 1.1em;font-size:.95rem}
  .copy .ctas{display:none}
}
.lctas{display:none}
@media (max-height:520px) and (orientation:landscape){ .lctas{display:grid} }
@media not ((min-width:1200px) and (min-height:521px)){
  .copy{padding:28px 0 56px}
  .copy .card{max-width:760px;margin-inline:auto}
}

@keyframes spin{to{rotate:360deg}}
@keyframes drift{from{transform:translateX(-6vw)}to{transform:translateX(6vw)}}
@keyframes bob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(-3deg)}}
@keyframes popin{from{opacity:0;transform:translateY(40px) scale(.55) rotate(-8deg)}}
@keyframes rise{from{opacity:0;transform:translateY(30%) rotate(-4deg)}}
@keyframes popout{from{opacity:0;transform:translateY(45%) rotateX(70deg) scale(.5)}}
@keyframes walk{0%,4%{transform:translateX(0) scaleX(var(--f,-1))}42%,50%{transform:translateX(var(--wx,-7vw)) scaleX(var(--f,-1))}
  52%{transform:translateX(var(--wx,-7vw)) scaleX(calc(var(--f,-1) * -1))}92%,100%{transform:translateX(0) scaleX(calc(var(--f,-1) * -1))}}
@keyframes step{to{translate:0 -3px}}
@keyframes graze{0%,4%,40%,52%,90%{rotate:0deg}43%,48%,93%,99%{rotate:10deg}}
@keyframes sway{to{rotate:calc(var(--cr,10deg) + 5deg);translate:0 -6px}}
@keyframes wiggle{0%,100%{rotate:-6deg}50%{rotate:3deg}}

/* ---------- section blocks ---------- */
.blk{position:relative;padding:clamp(52px,6.5vw,96px) 0;background:var(--tex),var(--bg)}
.blk::before{content:"";position:absolute;left:0;right:0;top:-21px;height:22px;
  background:radial-gradient(circle at 22px 22px,var(--bg) 21px,transparent 22px) 0 0/44px 22px repeat-x;filter:drop-shadow(0 -3px 0 rgba(16,30,56,.08))}
.blk h2{font-size:clamp(2.6rem,6.4vw,5.6rem);margin-bottom:.3em}
.lead{font-size:clamp(1.08rem,1.5vw,1.28rem);max-width:640px}
.center{text-align:center}.center .lead{margin-inline:auto}
.on-dark{color:var(--cream)}
.on-dark .lead,.on-dark p{color:var(--cream)}
.on-dark .card p,.on-dark .back p:not(.kv){color:#24344F}

/* pop reveal */
.js .pop{opacity:0;transform:translateY(34px) scale(.92) rotate(-1.5deg)}
.js .pop.in{opacity:1;transform:none;transition:transform .8s var(--spring),opacity .45s ease;transition-delay:var(--dl,0s)}

/* why */
#why{--bg:var(--sage)}
.pull{font:400 clamp(1.7rem,3.6vw,3rem)/1.1 "Lilita One",sans-serif;color:var(--plum);max-width:980px;margin:0 auto 1.4em;text-align:center;text-wrap:balance}
.verse{position:relative;max-width:900px;margin:0 auto 40px;padding:clamp(28px,4vw,48px);background:var(--tex),var(--plum);color:var(--cream);border-radius:28px;
  box-shadow:0 8px 0 var(--plum-d),0 30px 40px -20px rgba(16,30,56,.6);transform:rotate(-1deg)}
.verse blockquote{margin:0;font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.45}
.verse cite{display:inline-block;margin-left:.3em;font:400 1.15em/1 "Lilita One",sans-serif;white-space:nowrap;color:var(--sun-l);font-style:normal}
.verse svg{position:absolute;top:-30px;right:28px;width:70px;animation:spin 30s linear infinite}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,30px);margin-bottom:48px}
.trio .card{position:relative;padding-top:64px;transition:transform .45s var(--spring)}
.trio .card:hover{transform:rotate(-1.5deg) translateY(-6px)}
.trio h3{font-size:clamp(1.6rem,2.3vw,2rem);color:var(--terra-d)}
.trio .num{position:absolute;top:-22px;left:24px;width:66px;height:66px;display:grid;place-items:center;border-radius:50%;font:400 2rem/1 "Lilita One",sans-serif;color:var(--cream);box-shadow:var(--cut)}
.trio .card:nth-child(1) .num{background:var(--terra)}.trio .card:nth-child(2) .num{background:var(--blue)}.trio .card:nth-child(3) .num{background:var(--plum)}
.trio p:last-child{margin:0}
.ribbon{max-width:1000px;margin:0 auto;padding:clamp(26px,4vw,44px);background:var(--tex),var(--terra);color:#fff;border-radius:28px;font-size:clamp(1.1rem,1.6vw,1.3rem);
  box-shadow:0 8px 0 var(--terra-d),0 30px 40px -20px rgba(16,30,56,.6);transform:rotate(.8deg)}
.ribbon p{margin:0}
.ribbon strong{font:400 1.4em/1 "Lilita One",sans-serif;display:block;margin-bottom:.5em;color:var(--sun-l)}
@media (max-width:899px){ .trio{grid-template-columns:1fr;gap:40px} }

/* how */
#how{--bg:var(--sun)}
.steps{list-style:none;margin:32px 0 28px;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,26px)}
.steps li{position:relative;background:var(--tex),var(--cream);border-radius:22px;padding:84px 24px 26px;box-shadow:0 6px 0 rgba(16,30,56,.15),0 22px 30px -16px rgba(16,30,56,.5);transition:transform .45s var(--spring)}
.steps li:nth-child(odd){rotate:-1.2deg}.steps li:nth-child(even){rotate:1.2deg}
.steps li:hover{transform:translateY(-8px) rotate(2deg)}
.steps .n{position:absolute;top:-26px;left:20px;font:400 5.4rem/1 "Lilita One",sans-serif;color:var(--terra);text-shadow:0 4px 0 var(--plum)}
.steps li:nth-child(2) .n{color:var(--sage-d)}.steps li:nth-child(3) .n{color:var(--blue)}.steps li:nth-child(4) .n{color:var(--plum);text-shadow:0 4px 0 var(--terra)}
.steps h3{font-size:1.7rem;color:var(--plum)}
.steps p{margin:0;color:#33435C}
.snote{margin-top:12px;padding:.55em .8em;border-radius:12px;background:var(--blue-l);color:var(--plum);font-size:.92rem;font-weight:600}
.note{display:inline-block;font-weight:600;background:var(--plum);color:var(--cream);padding:.9em 1.4em;border-radius:16px;box-shadow:var(--cut);max-width:100%}
@media (max-width:1099px){ .steps{grid-template-columns:repeat(2,1fr);row-gap:44px} }
@media (max-width:599px){ .steps{grid-template-columns:1fr} }

/* stories */
#stories{--bg:var(--blue)}
.need{font-size:clamp(1.7rem,3.4vw,2.8rem);color:var(--sun-l);margin:28px 0 16px}
.st-head .lead{margin:0}
@media (min-width:900px){ .st-head{display:grid;grid-template-columns:auto minmax(0,560px);gap:clamp(32px,5vw,80px);align-items:end} .st-head h2{margin-bottom:0} }
.tabs{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:34px}
.tabs button{min-height:64px;border:0;border-radius:18px;font:400 clamp(1.1rem,1.6vw,1.35rem)/1 "Lilita One",sans-serif;color:var(--plum);background:var(--cream);cursor:pointer;
  box-shadow:0 6px 0 #C9B08E,0 14px 20px -10px rgba(0,0,0,.5);transition:transform .35s var(--spring),background .2s}
.tabs button:hover{transform:translateY(-3px) rotate(-2deg)}
.tabs button[aria-selected="true"]{background:var(--sun);color:var(--ink);box-shadow:0 6px 0 #C58A12,0 14px 20px -10px rgba(0,0,0,.5);transform:translateY(-2px) rotate(-2deg)}
@media (max-width:899px){ .tabs{grid-template-columns:repeat(3,1fr)} }
@media (max-width:479px){ .tabs{grid-template-columns:repeat(2,1fr)} .tabs button{min-height:56px} }
.shelf{position:relative}
.track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;padding:24px 4px 40px;scrollbar-width:none;justify-content:safe center}
.track::-webkit-scrollbar{display:none}
.st{flex:0 0 clamp(250px,24vw,300px);height:420px;scroll-snap-align:center;perspective:1200px;cursor:pointer;position:relative}
.st[hidden]{display:none}
.st .in3{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .8s var(--spring)}
.st.flipped .in3{transform:rotateY(180deg)}
.st:not(.flipped):hover .in3{transform:rotate(-2deg) translateY(-8px)}
.face{position:absolute;inset:0;border-radius:24px;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;
  box-shadow:0 7px 0 rgba(0,0,0,.18),0 26px 34px -18px rgba(0,0,0,.6)}
.front{background:var(--tex),var(--cc);color:var(--ct,var(--cream));padding:22px}
.front .no{display:inline-block;font:700 .8rem/1 Outfit,sans-serif;letter-spacing:.14em;padding:.5em .8em;border-radius:999px;background:rgba(16,30,56,.3)}
.front .art{position:absolute;left:16px;right:16px;bottom:16px;width:calc(100% - 32px);height:auto;aspect-ratio:5/4;object-fit:cover;border:5px solid var(--cream);border-radius:12px;rotate:var(--rt,-1.5deg);box-shadow:0 5px 0 rgba(16,30,56,.22),0 16px 22px -10px rgba(16,30,56,.55)}
.st:nth-child(even) .front .art{--rt:1.5deg}
.front h3{position:relative;font-size:2rem;margin:.5em 0 .35em;text-shadow:0 3px 0 rgba(16,30,56,.25)}
.front .chip{position:relative}
.back{transform:rotateY(180deg);background:var(--tex),var(--cream);color:var(--ink);padding:24px 22px 70px;display:flex;flex-direction:column;gap:12px;border:6px solid var(--cc)}
.back h3{font-size:1.45rem;color:var(--plum);margin:0}
.back p{margin:0;font-size:.98rem;line-height:1.5}
.back .kv{font-weight:700;color:var(--terra-d)}
.back .pt{background:var(--sun-l);border-radius:14px;padding:12px 14px;font-size:.93rem}
.back .pt b{display:block;font:400 1.05rem/1.1 "Lilita One",sans-serif;color:var(--plum);margin-bottom:4px}
.flipbtn{position:absolute;right:16px;bottom:16px;z-index:3;min-height:44px;padding:0 16px;border:0;border-radius:14px;background:var(--plum);color:var(--cream);
  font:600 .92rem/1 Outfit,sans-serif;cursor:pointer;box-shadow:0 4px 0 var(--plum-d);transition:transform .3s var(--spring)}
.readmore{position:absolute;left:16px;bottom:16px;z-index:3;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:14px;background:var(--cream);color:var(--plum);font:700 .95rem/1 Outfit,sans-serif;text-decoration:none;box-shadow:var(--cut)}
.readmore:hover{rotate:2deg}
.flipbtn:hover{transform:rotate(-3deg) scale(1.05)}
.arrows{display:flex;justify-content:center;gap:16px}
.arrows[hidden]{display:none}
.arrows button{width:56px;height:56px;border-radius:50%;border:0;background:var(--cream);color:var(--plum);font:400 1.6rem/1 "Lilita One",sans-serif;cursor:pointer;box-shadow:0 5px 0 #C9B08E;transition:transform .3s var(--spring)}
.arrows button:hover{transform:scale(1.1) rotate(-6deg)}

/* gifting */
#gifting{--bg:var(--terra)}
.giftq{font:400 clamp(1.5rem,3vw,2.4rem)/1.15 "Lilita One",sans-serif;color:var(--sun-l);max-width:900px;margin:0 auto 22px;text-wrap:balance}
#gifting .giftl{margin:0 auto 34px;color:var(--plum);font-weight:500}
.occ{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,24px)}
.occ li{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;min-height:120px;padding:30px 18px 22px;border-radius:18px 18px 18px 18px;
  font:400 clamp(1.25rem,2vw,1.6rem)/1.05 "Lilita One",sans-serif;color:var(--plum);background:var(--tex),var(--cream);
  box-shadow:0 6px 0 rgba(16,30,56,.2),0 18px 26px -14px rgba(16,30,56,.55);transition:transform .45s var(--spring)}
.occ li::before{content:"";position:absolute;top:12px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:var(--terra);box-shadow:inset 0 2px 0 rgba(0,0,0,.25)}
.occ li:nth-child(4n+1){rotate:-2deg}.occ li:nth-child(4n+2){rotate:1.5deg}.occ li:nth-child(4n+3){rotate:-1deg}.occ li:nth-child(4n){rotate:2deg}
.occ li:nth-child(odd){background:var(--tex),var(--sun-l)}
.occ li:hover{transform:translateY(-8px) rotate(-3deg)}
@media (max-width:759px){ .occ{grid-template-columns:repeat(2,minmax(0,1fr))} .occ li{padding:30px 8px 22px;font-size:clamp(1.05rem,4.6vw,1.25rem)} }

/* promises */
#promises{--bg:var(--paper)}
.prom{list-style:none;margin:44px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:clamp(16px,1.8vw,24px)}
.prom li{position:relative;padding:70px 22px 24px;border-radius:22px;background:var(--tex),var(--cream);box-shadow:0 6px 0 rgba(16,30,56,.12),0 20px 28px -16px rgba(16,30,56,.45);transition:transform .45s var(--spring)}
.prom li:hover{transform:translateY(-6px) rotate(-1.5deg)}
.prom .seal{position:absolute;top:-20px;left:20px;width:72px;height:72px}
.prom .seal svg{width:100%;height:100%;animation:spin 26s linear infinite}
.prom h3{font-size:1.5rem;color:var(--plum)}
.prom p{margin:0;color:#33435C}
@media (max-width:1179px) and (min-width:640px){
  .prom{grid-template-columns:repeat(6,1fr);row-gap:44px}
  .prom li{grid-column:span 2}.prom li:nth-child(n+4){grid-column:span 3}
}
@media (max-width:639px){ .prom{grid-template-columns:1fr;row-gap:44px} }

/* faq */
#faq{--bg:var(--sage)}
.faq{max-width:860px;margin:40px auto 0;display:grid;gap:14px}
.acc{background:var(--tex),var(--cream);border-radius:20px;box-shadow:0 5px 0 var(--sage-d),0 16px 24px -16px rgba(16,30,56,.45);overflow:hidden}
.acc h3{margin:0;font-size:inherit}
.acc button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;text-align:left;padding:20px 24px;border:0;background:none;cursor:pointer;
  font:400 clamp(1.2rem,2vw,1.45rem)/1.15 "Lilita One",sans-serif;color:var(--plum)}
.acc .sign{flex:0 0 40px;height:40px;border-radius:50%;background:var(--sun);display:grid;place-items:center;font:400 1.6rem/1 "Lilita One",sans-serif;color:var(--plum);transition:rotate .4s var(--spring)}
.acc button[aria-expanded="true"] .sign{rotate:135deg;background:var(--terra);color:var(--cream)}
.ans{display:grid;grid-template-rows:0fr;transition:grid-template-rows .45s ease}
.ans > div{overflow:hidden}
.ans p{margin:0;padding:0 24px 22px;color:#33435C}
.acc.open .ans{grid-template-rows:1fr}

/* cta band */
#start{--bg:var(--sun);overflow-x:clip}
#start h2{font-size:clamp(3rem,9vw,7.4rem);color:var(--plum);text-shadow:0 5px 0 var(--terra-l)}
#start .ctas{justify-content:center;margin-top:28px}
.band-sun{position:absolute;width:clamp(140px,18vw,260px);right:-40px;top:6px;opacity:.9;pointer-events:none}
.band-sun svg{animation:spin 40s linear infinite}
#start .wrap{position:relative;z-index:1}
@media (max-width:599px){.band-sun{width:110px;right:-46px;top:-18px;opacity:.55;z-index:0}}

/* footer */
footer{position:relative;background:var(--tex),var(--plum-d);color:#E9EEF5;padding:72px 0 40px;--bg:var(--plum-d)}
footer::before{content:"";position:absolute;left:0;right:0;top:-21px;height:22px;background:radial-gradient(circle at 22px 22px,var(--bg) 21px,transparent 22px) 0 0/44px 22px repeat-x}
.foot{display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:start}
.foot .brand img{height:72px}
.tagline{font:400 clamp(2rem,4vw,3.2rem)/1.05 "Lilita One",sans-serif;color:var(--sun-l);margin:22px 0 10px}
.flinks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.flinks a{display:block;padding:.75em 1em;border-radius:14px;background:rgba(255,246,228,.08);text-decoration:none;font-weight:600;transition:background .2s,transform .3s var(--spring)}
.flinks a:hover{background:var(--terra);transform:rotate(-2deg)}
.small{margin-top:44px;padding-top:22px;border-top:2px dashed rgba(255,246,228,.2);font-size:.92rem;opacity:.85}
@media (max-width:859px){ .foot{grid-template-columns:1fr} }

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .js .pop{opacity:1;transform:none}
}

/* ---------- production additions ---------- */
.more{text-align:center;margin:36px 0 0}
#stories .more{margin-top:28px}
.small a{color:inherit;font-weight:600}
.small a:hover{color:var(--sun-l)}
.brand[aria-current="page"]{cursor:default}
#navMenu a[aria-current="page"]{background:var(--sun-l)}
@media (max-width:1179px){ #navMenu a[aria-current="page"]{background:var(--sun-l)} }
.flinks a[aria-current="page"]{background:var(--terra)}
/* inner page placeholder */
.page-hero{--bg:var(--blue);min-height:calc(70svh - var(--hh));display:grid;align-content:center;overflow-x:clip}
.blk h1{font-size:clamp(3rem,9vw,7rem);color:var(--sun-l);text-shadow:0 .035em 0 var(--terra-d),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.35);margin-bottom:.3em}
.page-hero .ctas{justify-content:center;margin-top:28px}
.page-hero .band-sun{top:24px}
.legal{--bg:var(--paper)}
.legal h2{color:var(--plum)}

/* ========== SHARED COMPONENTS (phase 2, documented in DESIGN-SPEC.md section 10) ========== */
/* page hero: paper sky scene, layered h1, cream card, framed art */
.phero{position:relative;overflow:clip;color:var(--cream);background:linear-gradient(180deg,#4E9BD8 0%,var(--sky) 58%,#CFE6F7 100%);
  padding:clamp(36px,5vw,72px) 0 clamp(150px,16vw,240px);--d:0}
.phero::after{content:"";position:absolute;inset:0;background:var(--tex);pointer-events:none;z-index:0}
.scene{position:absolute;inset:0;pointer-events:none;z-index:1}
.scene > *{translate:calc(var(--mx,0) * var(--d,0) * 1px) calc((var(--my,0) + var(--sy,0)) * var(--d,0) * 1px)}
.phero .sun{left:auto;right:4vw;top:2vw;--sun:clamp(110px,11vw,180px)}
.phero .pc1{left:34vw;top:3vw;width:clamp(110px,12vw,190px)}
.phero .pc2{left:2vw;bottom:clamp(170px,19vw,280px);width:clamp(90px,9vw,150px);--t:28s}
.phero{--dvx:46vw;--dvy:12vw;--dvw:clamp(70px,7vw,110px)}
.phero .ps1{right:3vw;bottom:clamp(14px,2vw,30px);--sw:clamp(60px,6vw,96px);--d:14}
.phero .hills.near{z-index:2}
.phero-in{position:relative;z-index:3;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,4vw,64px);align-items:center}
.phero .eyebrow{transform:rotate(-3deg);animation:popin .8s var(--spring) both}
.ph1{font-size:clamp(3.2rem,8vw,7.4rem);line-height:.9;margin:0 0 .3em}
.ph1 span{display:block;animation:popin .9s var(--spring) both}
.ph1 .a{color:var(--cream);text-shadow:0 .035em 0 var(--terra),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.3)}
.ph1 .b{color:var(--sun-l);text-shadow:0 .035em 0 var(--terra-d),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.35);animation-delay:.15s}
.phero .card{max-width:560px;animation:popin .9s var(--spring) .35s both}
.phero .card p{color:#24344F;font-size:clamp(1.02rem,1.25vw,1.16rem)}
.phero-art{position:relative;margin:0;animation:rise 1.1s var(--spring) .2s both}
@media (max-width:899px){
  .phero-in{grid-template-columns:1fr}
  .phero-art{max-width:520px;width:100%;margin-inline:auto}
  .phero .sun{right:-4vw;top:-3vw;--sun:26vw}
  .phero .pc1{left:auto;right:28vw;top:2vw}
  .phero{--dvx:max(60vw,252px);--dvy:30vw}
}
@media (max-height:520px) and (orientation:landscape){
  .phero-in{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}
  .ph1{font-size:clamp(2.6rem,7vw,4.4rem)}
  .phero{padding-bottom:120px}
}

/* framed paper photo with tape */
.frame{position:relative;background:#fff;padding:clamp(8px,1vw,12px);border-radius:16px;rotate:var(--r,-3deg);
  box-shadow:0 6px 0 rgba(16,30,56,.14),0 26px 40px -18px rgba(16,30,56,.55)}
.frame img{width:100%;height:auto;border-radius:10px}
.frame::before{content:"";position:absolute;top:-14px;left:50%;width:96px;height:28px;margin-left:-48px;background:rgba(247,213,107,.85);rotate:-4deg;
  box-shadow:0 2px 0 rgba(16,30,56,.12)}
.frame figcaption{font:400 1.05rem/1.2 "Lilita One",sans-serif;color:var(--plum);text-align:center;padding:10px 4px 2px}

/* section head: .eyebrow + h2 + .lead inside any .blk (unchanged pattern) */
.sec-head{margin-bottom:clamp(24px,3.4vw,40px)}
.sec-head.center .lead{margin-inline:auto}

/* accordion: any .accs container of static .acc items (markup matches FAQ) */
.accs{display:grid;gap:14px;max-width:860px;margin-inline:auto}

/* forms (not wired; add a BACKEND NEEDED comment on every form) */
.form{display:grid;gap:18px}
.form .row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
@media (max-width:599px){ .form .row{grid-template-columns:1fr} }
.field{display:grid;gap:6px}
.field label{font:700 .95rem/1.2 Outfit,sans-serif;color:var(--plum)}
.field input,.field select,.field textarea{font:400 1.02rem/1.4 Outfit,sans-serif;color:var(--ink);background:#fff;border:2px solid #D9C3A2;border-radius:14px;padding:.8em 1em;min-height:52px;width:100%}
.field textarea{min-height:140px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{border-color:var(--plum);outline-offset:1px}
.field .hint{font-size:.9rem;color:#3F4E66}

/* check and dash marks for tables */
.yes,.no-mark{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;font:400 1.1rem/1 "Lilita One",sans-serif}
.yes{background:var(--sage-l);color:#24502F}
.no-mark{background:#EADCC5;color:#4A5A72}

/* promise cards: each seal spins in just after its card pops (motion-safe only) */
@media (prefers-reduced-motion:no-preference){
  .js .prom .pop .seal{scale:0;rotate:-120deg}
  .js .prom .pop.in .seal{scale:1;rotate:0deg;transition:scale .9s var(--spring),rotate .9s var(--spring);transition-delay:calc(var(--dl,0s) + .3s)}
}
/* keep the "That's Me!" tag inside the screen on narrow widths */
@media (max-width:759px){.tag{left:min(var(--tx,60%),calc(100% - 152px))}}
/* phone: the family member heading sits on its own line above the body text */


/* ===== Palette Shift overrides (brand guide: blue #2F6DA8, coral #F2705B, navy #14284A, gold #F7B731, cream #FFF6E4, sky #CFE6F7) ===== */
.btn{color:var(--plum);background:var(--terra);box-shadow:0 5px 0 var(--terra-d),0 12px 20px -8px rgba(16,30,56,.45)}
.btn.plum{color:var(--cream)}
.btn.alt{color:var(--plum)}
@media (max-width:1179px){ #navMenu .mcta a{color:var(--plum)} }
.flinks a:hover,.flinks a[aria-current="page"]{background:var(--terra);color:var(--plum)}
.hero{background:var(--plum)}
.l1{text-shadow:0 .035em 0 var(--terra),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.3)}
.l2{text-shadow:0 .035em 0 var(--terra-d),0 .07em 0 var(--plum),0 .12em .1em rgba(16,30,56,.35)}
#why{--bg:var(--blue-l)}
#faq{--bg:var(--blue-l)}
.acc{box-shadow:0 5px 0 #8DB9DE,0 16px 24px -16px rgba(16,30,56,.4)}
.acc button[aria-expanded="true"] .sign{background:var(--terra);color:var(--plum)}
.trio .card:nth-child(1) .num{background:var(--terra-d)}
.ribbon{background:var(--tex),var(--blue);color:var(--cream);box-shadow:0 8px 0 #1F4E7D,0 30px 40px -20px rgba(16,30,56,.55)}
.steps li:nth-child(2) .n{color:var(--sky)}
#gifting,#gifting h2,#gifting .giftq{color:var(--plum)}
#gifting .giftq{text-shadow:0 2px 0 rgba(255,246,228,.35)}
.occ li::before{background:var(--blue)}
#start h2{text-shadow:0 5px 0 var(--terra-l)}
footer{background:var(--tex),var(--plum-d)}

/* light band variant: navy text on coral or gold */
.on-light{color:var(--plum)}
.on-light .lead,.on-light p{color:var(--plum)}
.on-light .card p{color:#24344F}
.on-light h2{color:var(--plum);text-shadow:0 .04em 0 rgba(255,246,228,.5)}
.foot nav{display:block}

/* forms: spam trap, inline send states, per-field errors (shared by contact.html and start.html) */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.msg.ok:not(:empty){background:var(--sage-l);border:3px solid var(--sage-d);color:var(--ink)}
.msg.err:not(:empty){background:#FDE3DC;border:3px solid var(--terra-d);color:var(--ink)}
.msg-h{display:block;font:400 1.3rem/1.1 "Lilita One",sans-serif;color:var(--plum);margin-bottom:.3em}
.ferr{display:block;margin-top:6px;font-weight:600;font-size:.95rem;color:var(--terra-d)}
[aria-invalid=true]{border-color:var(--terra-d)!important}
.btn:disabled{opacity:.7;cursor:progress}
.alt-mail{margin:16px 0 0;font-size:.98rem;color:var(--ink)}
.alt-mail a,.phero .card a:not(.btn){color:var(--blue);font-weight:600}
.phero-art.framed img{display:block;width:100%;height:auto;border-radius:22px;box-shadow:var(--cut)}

/* r2 final QA: footer link tiles wrap balanced, no one-word last line */
.flinks a{text-wrap:balance}
@media (max-width:420px){.flinks a{padding:.75em .6em;font-size:.94rem}}
