:root{--paper:#fffdf7;--ink:#293247;--muted:#657086;--line:#ded8c8}*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 82% 5%,#34527d 0,transparent 28rem),linear-gradient(180deg,#17284f,#0c1430);color:#fff;font-family:"DM Sans",system-ui,sans-serif;min-height:100vh}.shell{width:min(1180px,calc(100% - 28px));margin:auto;padding:24px 0 50px}header{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:11px;font-weight:850}.brandmark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:#f4ca73;color:#15203c;box-shadow:0 0 26px #f5bd5d55}.actions{display:flex;gap:10px;align-items:center}.actions a{color:#e4e9fb;text-decoration:none;font-weight:750;font-size:.85rem}.theme{border:1px solid #8293c2;background:#202d57;color:#fff;border-radius:999px;padding:9px 12px;cursor:pointer;font-weight:750}.draft{background:#ffe08b;color:#3d2b0c;border-radius:999px;padding:5px 9px;font-size:.72rem;font-weight:900;text-transform:uppercase;letter-spacing:.08em}.layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px;align-items:start}.book{background:var(--paper);color:var(--ink);border-radius:26px;overflow:hidden;box-shadow:0 28px 70px #05081688}.book-top{padding:34px 42px 22px;border-bottom:1px solid var(--line)}.eyebrow{margin:0 0 10px;color:#966a38;text-transform:uppercase;font-weight:850;letter-spacing:.13em;font-size:.75rem}h1{font:700 clamp(2.2rem,5vw,4.2rem)/.98 "Libre Baskerville",serif;letter-spacing:-.045em;margin:0}.byline{margin:16px 0 0;color:var(--muted)}.story{padding:30px 42px 48px;font:400 1.12rem/1.95 "Libre Baskerville",serif}.story p{margin:0 0 1.35rem}.word{border-radius:4px;cursor:pointer}.word.heard{color:#9297a3}.word.active{background:#ffe3a6;box-shadow:0 0 0 3px #ffe3a6}.word.cue{border-bottom:2px dotted #c27d23}.figure{width:min(92%,740px);margin:1.8rem auto 2.1rem;border-radius:18px;overflow:hidden;background:#15203c;box-shadow:0 14px 35px #19213c2c}.figure img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}.figure figcaption{background:#f1eadb;color:#5f5a51;padding:10px 14px;font:600 .82rem/1.45 "DM Sans",sans-serif}.scene{position:relative;overflow:hidden}.star-layer,.steam-layer{position:absolute;inset:0;pointer-events:none}.star-layer i{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#fff4b3;box-shadow:0 0 7px 2px #ffe98a;animation:twinkle var(--d) ease-in-out var(--delay) infinite}.steam-layer{left:50%;top:22%;right:5%;bottom:35%}.steam-layer i{position:absolute;left:var(--x);bottom:0;width:12px;height:42px;border-radius:50%;border-left:4px solid #ffffffb8;filter:blur(1px);animation:steam 2.2s ease-out var(--delay) infinite}@keyframes twinkle{50%{opacity:.25;transform:scale(.45)}}@keyframes steam{0%{opacity:0;transform:translateY(18px) scale(.55)}25%{opacity:.8}100%{opacity:0;transform:translate(var(--drift),-65px) scale(1.45)}}
aside{position:sticky;top:16px}.panel,.tip{background:#17234a;border:1px solid #394a7b;border-radius:20px;padding:19px}.panel h2{margin:0 0 8px;font-size:1rem}.panel p{color:#c7d0eb;font-size:.86rem;line-height:1.55}.listen{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;border:0;border-radius:14px;background:#5e7bd4;color:#fff;padding:13px;cursor:pointer;font-weight:900;margin:15px 0 11px;font-size:.92rem}.listen.listening{background:#e47783}.mic{width:10px;height:10px;border-radius:50%;background:currentColor}.listen.listening .mic{animation:pulse 1.2s infinite}@keyframes pulse{50%{transform:scale(1.5)}}.status{min-height:48px;background:#0f1938;border-radius:12px;padding:11px 12px;color:#bac5e5;font-size:.8rem;line-height:1.45}.status strong{color:#fff}.meter{height:5px;background:#34436e;border-radius:5px;overflow:hidden;margin-top:12px}.meter span{display:block;width:0;height:100%;background:linear-gradient(90deg,#f3c96f,#71c7ce);transition:width .3s}.label{font-size:.71rem;text-transform:uppercase;letter-spacing:.12em;font-weight:850;color:#aeb9dd;margin:17px 0 9px}.sounds{display:flex;flex-wrap:wrap;gap:7px}.sound{border:1px solid #536596;background:#24315c;color:#f8f9ff;border-radius:999px;padding:7px 9px;cursor:pointer;font-size:.76rem}.reset{border:0;background:none;color:#cbd4f0;text-decoration:underline;padding:10px 0 0;cursor:pointer}.motion{width:100%;border:1px solid #6073aa;background:#25345f;color:#fff;border-radius:12px;padding:10px 12px;margin-top:12px;cursor:pointer;font-weight:800}.motion[aria-pressed=true]{background:#7f3c27;border-color:#e6a55f}.motion-note{display:none;margin:8px 2px 0!important;font-size:.76rem!important}.tip{margin-top:14px;color:#cbd4ed;font-size:.82rem;line-height:1.55}.tip strong{display:block;color:#fff0bc}.unsupported{display:none;background:#7b3545;color:#fff1f3;border-radius:10px;padding:9px;margin-top:10px;font-size:.8rem}.lentil-fx{position:fixed;inset:0;z-index:1000;pointer-events:none;overflow:hidden}.lentil-burst{position:absolute;inset:0;display:grid;place-items:center;animation:fx-life 4.6s ease both}.fx-plate{width:min(76vw,580px);height:auto;filter:drop-shadow(0 24px 28px #06112777);animation:plate-pulse 1.1s ease-in-out infinite}.fx-steam{position:absolute;left:calc(50% + var(--x));top:38%;width:18px;height:90px;border-radius:50%;border-left:7px solid #ffffffd1;filter:blur(2px);animation:fx-steam 2s ease-out var(--delay) infinite}@keyframes plate-pulse{50%{transform:scale(1.07)}}@keyframes fx-steam{0%{opacity:0;transform:translateY(30px) scale(.6)}24%{opacity:.85}100%{opacity:0;transform:translate(var(--drift),-125px) scale(1.45)}}@keyframes fx-life{0%,100%{opacity:0}9%,85%{opacity:1}}html[data-theme=dark]{--paper:#161d31;--ink:#f1f4ff;--muted:#bbc4dc;--line:#3b4668}html[data-theme=dark] .figure figcaption{background:#222c46;color:#d3daef}html[data-theme=dark] .word.active{background:#80632b;box-shadow:0 0 0 3px #80632b}html[data-theme=dark] .word.heard{color:#8e99b6}
@media(max-width:820px){.layout{grid-template-columns:1fr}.book{order:2}aside{position:static;order:1}.book-top,.story{padding-left:24px;padding-right:24px}.figure{width:100%}}@media(max-width:520px){.shell{width:calc(100% - 16px);padding-top:14px}.book-top,.story{padding-left:18px;padding-right:18px}.brand{font-size:.84rem}.theme{padding:8px 9px;font-size:.78rem}.story{font-size:1.04rem}.fx-plate{width:90vw}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.star-layer i,.steam-layer i,.fx-plate,.fx-steam{animation:none!important}.lentil-burst{animation:fx-life 4.6s ease both!important}}
.dust-layer{position:absolute;inset:55% 0 0;pointer-events:none}.dust-layer i{position:absolute;left:var(--x);bottom:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#e7c88a88;filter:blur(1px);animation:dust-rise var(--d) ease-out var(--delay) infinite}@keyframes dust-rise{0%{opacity:0;transform:translate(0,8px)}25%{opacity:.65}100%{opacity:0;transform:translate(var(--drift),-28px)}}
.steam-layer.steam-left{left:0;right:52%;top:8%;bottom:38%}
.steam-layer.steam-esau{left:34%;right:48%;top:30%;bottom:42%}
.path-burst{position:absolute;inset:0;background:linear-gradient(180deg,#07122fcc,#183565bb 52%,#8b724866);animation:fx-life 5s ease both;overflow:hidden}.path-moon{position:absolute;left:50%;top:10%;width:clamp(90px,24vw,180px);height:clamp(90px,24vw,180px);transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 36% 34%,#fffce4,#f8e6a7 68%,#d9bd72);box-shadow:0 0 48px #ffe9a888}.path-road{position:absolute;left:50%;bottom:-5%;width:min(90vw,760px);height:70%;transform:translateX(-50%);clip-path:polygon(43% 0,57% 0,100% 100%,0 100%);background:linear-gradient(180deg,#b59a6bcc,#d6bc87ee);filter:drop-shadow(0 0 10px #e9d2a444)}.path-foot{position:absolute;left:calc(50% + var(--x));bottom:var(--y);font-size:var(--size);color:#67543d;opacity:0;transform:rotate(var(--r));animation:foot-appear 3.8s ease var(--delay) both}.path-star{position:absolute;left:var(--x);top:var(--y);width:var(--s);height:var(--s);border-radius:50%;background:#fff;box-shadow:0 0 7px #fff7b9;animation:twinkle var(--d) ease-in-out infinite}@keyframes foot-appear{0%{opacity:0;transform:rotate(var(--r)) scale(.4)}18%,72%{opacity:.85;transform:rotate(var(--r)) scale(1)}100%{opacity:0;transform:rotate(var(--r)) scale(1)}}
@media(prefers-reduced-motion:reduce){.dust-layer i,.path-foot,.path-star{animation:none!important}.path-burst{animation:fx-life 5s ease both!important}}

.scene img{transform-origin:center;animation:scene-breath 14s ease-in-out infinite alternate}.scene-night img{animation-duration:20s}.light-layer{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 70% 20%,#ffe9a04d,transparent 65%);animation:light-glow 5s ease-in-out infinite alternate;mix-blend-mode:screen}.breeze-layer{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 20%,#ffedb522 44%,transparent 68%);background-size:220% 100%;animation:breeze-drift 9s ease-in-out infinite}.scene-dream .light-layer{background:radial-gradient(ellipse at 65% 15%,#fff7c077,transparent 58%)}
@keyframes scene-breath{from{transform:scale(1)}to{transform:scale(1.035)}}@keyframes light-glow{from{opacity:.32}to{opacity:.9}}@keyframes breeze-drift{0%,100%{background-position:100% 0}50%{background-position:0 0}}
.ladder-burst{position:absolute;inset:0;overflow:hidden;background:linear-gradient(#172e60e8,#536fa6c9 48%,#9ca6a9ad 83%);animation:ladder-life 7.2s ease both}.earth-ground{position:absolute;left:-10%;right:-10%;bottom:-4%;height:19%;z-index:5;border-radius:50% 48% 0 0;background:radial-gradient(ellipse at 18% 28%,#a48553 0 2%,transparent 3%),radial-gradient(ellipse at 74% 35%,#c3a272 0 3%,transparent 4%),linear-gradient(#a4824e,#6d5032);box-shadow:0 -8px 30px #a99d6744}.heaven-glow{position:absolute;left:20%;top:0;width:60%;height:42%;background:radial-gradient(ellipse at 50% 8%,#fff9d5ee,#ffe5a566 35%,transparent 68%);animation:light-glow 2s ease-in-out infinite alternate}.heaven-cloud{position:absolute;top:8%;width:62%;height:14%;z-index:6;border-radius:50%;background:radial-gradient(ellipse at 30% 45%,#fffef6 0 32%,transparent 34%),radial-gradient(ellipse at 65% 50%,#edf1ff 0 40%,transparent 42%);filter:drop-shadow(0 7px 14px #d9e4ff77);animation:cloud-drift 7s ease-in-out infinite alternate}.cloud-a{left:-6%}.cloud-b{right:-6%;top:11%;animation-direction:alternate-reverse}.ladder-reveal{position:absolute;left:50%;bottom:13%;width:clamp(90px,24vw,190px);height:73%;transform:translateX(-50%);z-index:4;clip-path:inset(100% 0 0 0);animation:ladder-grow 7.2s ease both;overflow:visible}.sky-ladder{position:absolute;inset:0;transform:perspective(700px) rotateX(17deg);transform-origin:bottom center;filter:drop-shadow(0 0 14px #ffe8a8aa)}.rail{position:absolute;top:0;bottom:0;width:10px;border-radius:8px;background:linear-gradient(90deg,#b77e27,#fff0b2,#c58a30)}.left-rail{left:3%}.right-rail{right:3%}.ladder-rung{position:absolute;left:4%;right:4%;height:8px;border-radius:8px;background:linear-gradient(#fff0b4,#c79039);box-shadow:0 1px 6px #fff2a888}.sky-spark{position:absolute;left:var(--x);top:var(--y);width:4px;height:4px;border-radius:50%;background:#fff7cf;box-shadow:0 0 9px #ffe7a3;animation:twinkle 1.8s ease var(--delay) infinite}
@keyframes ladder-grow{0%,8%{clip-path:inset(100% 0 0 0)}65%,100%{clip-path:inset(0 0 0 0)}}@keyframes ladder-life{0%,100%{opacity:0}8%,86%{opacity:1}}@keyframes cloud-drift{from{transform:translateX(-12px)}to{transform:translateX(14px)}}
@media(prefers-reduced-motion:reduce){.scene img,.light-layer,.breeze-layer,.heaven-cloud,.sky-spark,.heaven-glow{animation:none!important}.ladder-reveal{animation:none;clip-path:inset(0)}.ladder-burst{animation:ladder-life 7.2s ease both}}

/* Keep the tail attached while the whole meadow gently moves. */
.sheep-scene{position:relative;animation:scene-breath 14s ease-in-out infinite alternate;transform-origin:center}
.scene-meadow .sheep-scene img{animation:none;transform:none}
.sheep-tail{position:absolute;left:5.14%;top:59.96%;width:1.3%;height:3.42%;transform-origin:50% 100%;animation:sheep-tail-wag 1.7s ease-in-out infinite;pointer-events:none}
.scene-meadow .sheep-tail img{width:100%;height:100%;aspect-ratio:auto;object-fit:contain;display:block}
@keyframes sheep-tail-wag{0%,100%{transform:rotate(-20deg)}50%{transform:rotate(20deg)}}
@media(prefers-reduced-motion:reduce){.sheep-scene,.sheep-tail{animation:none!important}}

.sheep-tail-right{left:91.86%;top:72.56%;width:2.34%;height:5.76%;animation-delay:-.55s}

.scene-meadow .sheep-tail-right img{object-fit:fill}

/* Exact duplicate of the sheep pixels masks the tail behind the torso. */
.sheep-tail-right{z-index:1}
.scene-meadow .sheep-body-front{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:2;pointer-events:none;clip-path:none;-webkit-mask-image:url("/assets/jacob3-es/sheep-body-mask.svg");mask-image:url("/assets/jacob3-es/sheep-body-mask.svg");-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;animation:none;transform:none}

.draft-note{font-size:.9rem;color:var(--muted);padding:.7rem .9rem;border:1px dashed currentColor;border-radius:10px;margin-top:1rem}.sound-pending{opacity:.6;cursor:default}.tail-scene{position:relative;animation:scene-breath 14s ease-in-out infinite alternate;transform-origin:center}.scene .tail-scene img{animation:none!important;transform:none!important}.tail-scene>.tail-base{display:block;width:100%;height:auto}.tail-piece{position:absolute;pointer-events:none;transform-origin:50% 100%;animation:tail-swish 1.7s ease-in-out infinite}.scene .tail-piece img{width:100%;height:100%;aspect-ratio:auto;object-fit:fill;display:block}.scene .tail-body-front{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:2}.tail-piece{z-index:1}@keyframes tail-swish{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(18deg)}}
.spotted-burst{position:absolute;inset:0;overflow:hidden;pointer-events:none}.spotted-runner{position:absolute;top:var(--lane);width:var(--size);left:-140px;animation:sheep-cross var(--duration) linear var(--delay) both;filter:drop-shadow(0 4px 4px #0002)}.spotted-runner:nth-child(even){left:auto;right:-140px;animation-name:sheep-cross-back}.spotted-runner img{display:block;width:100%;height:auto;transform:scaleX(var(--flip));animation:sheep-bounce .42s ease-in-out infinite alternate}
@keyframes sheep-cross{from{transform:translateX(0)}to{transform:translateX(calc(100vw + 280px))}}@keyframes sheep-cross-back{from{transform:translateX(0)}to{transform:translateX(calc(-100vw - 280px))}}@keyframes sheep-bounce{from{translate:0 0;rotate:-2deg}to{translate:0 -7px;rotate:2deg}}
@media(prefers-reduced-motion:reduce){.tail-scene,.tail-piece,.spotted-runner,.spotted-runner img{animation:none!important}.spotted-runner{left:calc(8% + var(--lane)/2);right:auto!important;opacity:.85}.spotted-burst{animation:ladder-life 6.2s ease both}}


.scene-01-announcement>img{animation:samson-breathe 12s ease-in-out infinite alternate}
.scene-04-baby>img{animation:samson-breathe 14s ease-in-out infinite alternate;transform-origin:50% 55%}
.altar-glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 60%,#ffcc7045,transparent 65%);mix-blend-mode:screen;animation:samson-glow 3.5s ease-in-out infinite alternate}
@keyframes samson-breathe{from{transform:scale(1)}to{transform:scale(1.035)}}
@keyframes samson-glow{from{opacity:.3}to{opacity:.85}}
.angel-burst{position:absolute;inset:0;overflow:hidden;background:linear-gradient(180deg,#19254870,transparent);animation:angel-life 6.5s ease both}
.angel-glow{position:absolute;inset:15% 10% 5%;background:radial-gradient(ellipse at 50% 75%,#ffc75499,transparent 65%);animation:samson-glow 1.8s ease-in-out infinite alternate}
.rising-angel{position:absolute;left:50%;bottom:8%;width:min(54vw,310px);max-height:65vh;object-fit:contain;translate:-50% 0;filter:drop-shadow(0 0 18px #ffe5a8);animation:angel-rise 6.5s ease-in-out both}
.angel-spark{position:absolute;left:var(--x);bottom:10%;width:var(--s);height:var(--s);border-radius:50%;background:#ffe6a2;box-shadow:0 0 9px #ffc454;opacity:0;animation:angel-spark-rise 3s ease-out var(--delay) infinite}
@keyframes angel-rise{0%{transform:translateY(20vh);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translateY(-40vh);opacity:0}}
@keyframes angel-spark-rise{0%{transform:translateY(0);opacity:0}20%{opacity:.9}100%{transform:translateY(-60vh);opacity:0}}
@keyframes angel-life{0%,100%{opacity:0}12%,82%{opacity:1}}
@media(prefers-reduced-motion:reduce){.scene>img,.altar-glow,.rising-angel,.angel-spark,.angel-glow{animation:none!important}.rising-angel{opacity:1;transform:none}.angel-spark{opacity:.4}}
.angel-burst.reduced-motion .rising-angel,.angel-burst.reduced-motion .angel-spark,.angel-burst.reduced-motion .angel-glow{animation:none!important}.angel-burst.reduced-motion .rising-angel{opacity:1;transform:none}

/* Keep the restored full-body angel inside the phone viewport throughout ascent. */
.rising-angel{top:50%;bottom:auto;width:min(72vw,320px);height:min(58vh,480px);max-height:none;translate:-50% -50%;object-fit:contain}
@keyframes angel-rise{0%{transform:translateY(8vh);opacity:0}15%{opacity:1}75%{opacity:1}100%{transform:translateY(-8vh);opacity:0}}

/* Slow falling olive leaves, confined to the parents' prayer illustration. */
.parents-leaves{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}
.parents-leaf-fall{position:absolute;top:0;left:var(--leaf-x);width:var(--leaf-size);height:100%;animation:parents-leaf-fall var(--leaf-duration) linear var(--leaf-delay) infinite;will-change:transform}
.scene .parents-leaf-image{position:absolute;top:0;left:0;display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain;opacity:.85;animation:parents-leaf-flutter 6s ease-in-out var(--leaf-delay) infinite alternate;transform-origin:50% 40%}
@keyframes parents-leaf-fall{0%{transform:translate3d(0,-12%,0);opacity:0}8%,88%{opacity:1}100%{transform:translate3d(var(--leaf-drift),110%,0);opacity:0}}
@keyframes parents-leaf-flutter{0%{transform:translateX(-12%) rotate(-30deg) scaleX(.85)}50%{transform:translateX(30%) rotate(25deg) scaleX(1)}100%{transform:translateX(-5%) rotate(70deg) scaleX(.7)}}
@media(prefers-reduced-motion:reduce){.parents-leaves{display:none}.parents-leaf-fall,.scene .parents-leaf-image{animation:none!important}}

.bible-reference{padding-bottom:22px}.book-reference{margin-top:0;padding-top:0}
.scene-1c>img,.scene-3a>img,.scene-6c>img{animation:nativity-breathe 18s ease-in-out infinite alternate}
@keyframes nativity-breathe{from{transform:scale(1)}to{transform:scale(1.035)}}
.nativity-burst{position:absolute;inset:0;overflow:hidden;pointer-events:none;animation:nativity-life 6.5s ease both;background:radial-gradient(ellipse at center,#ffe6b045,transparent 65%)}
.nativity-travel{position:absolute;inset:8% 12%;display:grid;place-items:center}
.nativity-sprite{max-width:100%;max-height:100%;width:auto;height:100%;object-fit:contain;filter:drop-shadow(0 0 18px #ffd88570)}
.burst-angel .nativity-travel{animation:angel-rise 6.5s ease-in-out both}
.burst-star .nativity-travel{inset:15% 20%;animation:star-glide 6.5s ease-in-out both}
.burst-star .nativity-sprite{animation:star-glimmer 1.6s ease-in-out infinite alternate}
.burst-family .nativity-travel{inset:25% 5% 12%;animation:family-crossing 6.5s linear both}
@keyframes nativity-life{0%,100%{opacity:0}12%,78%{opacity:1}}
@keyframes angel-rise{from{transform:translateY(15vh)}to{transform:translateY(-10vh)}}
@keyframes star-glide{0%{transform:translate(-18vw,7vh)}100%{transform:translate(18vw,-9vh)}}
@keyframes star-glimmer{from{filter:drop-shadow(0 0 8px #fff1bf70);scale:.95}to{filter:drop-shadow(0 0 28px #ffe096);scale:1.04}}
@keyframes family-crossing{0%{transform:translateX(-75vw)}100%{transform:translateX(75vw)}}
@media(prefers-reduced-motion:reduce){.scene>img,.nativity-travel,.nativity-sprite{animation:none!important;transform:none!important}}
.reduced-motion .nativity-travel,.reduced-motion .nativity-sprite{animation:none!important;transform:none!important}
.burst-joseph .nativity-travel{inset:14% 18%;animation:joseph-worry 6.5s ease-in-out both}
.burst-choir .nativity-travel{inset:12% 4%;animation:choir-arrives 6.5s ease-in-out both}
.burst-choir .nativity-sprite{width:100%;height:100%}
.burst-riders .nativity-travel{inset:28% 0 15%;animation:riders-crossing 6.5s linear both}
.burst-riders .nativity-sprite{width:100%;height:100%}
.escape-sky{position:absolute;inset:0;background:linear-gradient(180deg,#07162bcb,transparent 75%)}
.escape-moon{position:absolute;right:13%;top:7%;width:16vw;max-width:150px;height:auto;filter:drop-shadow(0 0 20px #e9efffaa)}
.escape-star{position:absolute;height:auto;max-width:35px;animation:escape-twinkle 2.5s ease-in-out infinite alternate}
.gold-glints{position:absolute;inset:0;pointer-events:none;animation:scene-breath 14s ease-in-out infinite alternate;transform-origin:center}
.gold-glints i{position:absolute;left:var(--glint-x);top:var(--glint-y);width:20px;height:20px;transform:translate(-50%,-50%);background:radial-gradient(circle,#fff 0 9%,#fff4ba 10% 23%,transparent 65%);filter:drop-shadow(0 0 7px #ffe68a);animation:gold-glimmer 3.6s ease-in-out var(--glint-delay) infinite;opacity:0}
.gold-glints i:before,.gold-glints i:after{content:'';position:absolute;background:linear-gradient(90deg,transparent,#fff9d7,transparent);left:-30%;top:46%;width:160%;height:8%;border-radius:50%}
.gold-glints i:after{transform:rotate(90deg)}
@keyframes gold-glimmer{0%,50%,100%{opacity:0;scale:.5}68%{opacity:1;scale:1.15}82%{opacity:.25;scale:.75}}
@keyframes escape-twinkle{from{opacity:.4;scale:.85}to{opacity:1;scale:1.1}}
@keyframes joseph-worry{0%{transform:translateY(4vh)}50%{transform:translateY(0)}100%{transform:translateY(2vh)}}
@keyframes choir-arrives{0%{transform:translateY(12vh)}50%{transform:translateY(0)}100%{transform:translateY(-8vh)}}
@keyframes riders-crossing{0%{transform:translateX(-85vw)}100%{transform:translateX(85vw)}}
@media(prefers-reduced-motion:reduce){.gold-glints,.gold-glints i,.escape-star{animation:none!important}.gold-glints i{opacity:.45}}
.reduced-motion .escape-star{animation:none!important}
