:root{--ink:#786579;--muted:#a28b98}body{background:radial-gradient(ellipse at 50% 10%,#fff1e2,#eee3e1 75%)}h1{color:#7c6474}.title p,.page-caption{color:#a18b94}.scene{background:#e5bfc6;box-shadow:0 18px 65px #956e8930,0 0 0 1px #baa1b333}.wind-background{position:absolute;inset:0;background:url('assets/wind/atlas-v1.webp') 0 0/200% 200%}.scene[data-page="2"] .wind-background{background-position:100% 0}.scene[data-page="3"] .wind-background{background-position:0 100%}.scene[data-page="4"] .wind-background{background-position:100% 100%;filter:brightness(calc(1 - var(--delivery,0)*.06)) saturate(calc(1 - var(--delivery,0)*.12))}.morning-wash{background:linear-gradient(#fce8cb0b,transparent 70%,#bba9cf14)}.scene[data-page="4"] .morning-wash{z-index:1;background:rgba(74,75,123,calc(var(--delivery,0)*.12));pointer-events:none}#windArt,#windRibbon,.wind-seed-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#windArt [data-object]{pointer-events:all}#windRibbon{z-index:3}.wind-seed-layer{z-index:4}.wind-seed-layer [data-seed]{pointer-events:all;cursor:grab;touch-action:none}#windSeedPaint{filter:drop-shadow(0 1px .7px #765a6877)}.wind-ready .wind-seed{cursor:pointer}.wind-invite{opacity:0}.wind-ready .wind-invite{animation:wind-invite 2.8s ease-out infinite}.wind-seed-layer #windSeedPaint{animation:seed-breath 4s ease-in-out infinite alternate;transform-origin:0 0}.wind-drawing #windSeedPaint{animation:none}.wind-object-glimmer{opacity:.4;animation:wind-glimmer 4s ease-in-out infinite;pointer-events:none}.has-touched .wind-object-glimmer{opacity:0;animation:none}.wind-passage{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}.in-wind-passage .wind-seed-layer,.in-wind-passage #windRibbon{visibility:hidden}.passage-skip{z-index:9;background:#f3e4e1bb;color:#8c7482}#daySound{font-size:0;letter-spacing:0}#daySound::before{content:'♫';font-size:14px}.whisper{color:#9c8591}.footer-note{color:#b39aa8}.continue,.completion-next{color:#91788a;border-color:#b9a0ad66}.bookmark.current{background:#b8a0ad}.bookmark{border-color:#baa3b0}@keyframes seed-breath{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}@keyframes wind-glimmer{0%,100%{opacity:.1}50%{opacity:.65}}@keyframes wind-invite{0%{opacity:.65;transform:scale(.8)}85%,100%{opacity:0;transform:scale(1.4)}}@media(prefers-reduced-motion:reduce){.wind-ready .wind-invite{opacity:.5}.wind-object-glimmer{opacity:.3}}

#windMoonDoor{pointer-events:all;cursor:pointer}

.wind-drawing .wind-grass{transform:rotate(var(--gust-angle,8deg));transform-origin:0 0;transition:transform .35s ease-out}
/* Keep painted props at their actual scale, including the resting seed. */
.wind-seed-layer #windSeedPaint{animation:none}
.wind-ready .wind-invite{display:none}
#windArt [data-object]{cursor:grab;touch-action:none}
#windArt [data-object]:focus-visible{outline:none;filter:drop-shadow(0 0 3px #ffe5b5)}
.in-wind-passage #windArt{visibility:hidden}
.scene[data-page="4"] ~ .continue-space .completion-next{background:#f9eddc;color:#5d4867;border-color:#b49b88;box-shadow:0 2px 12px #59445930}
/* The bell lesson stays legible while the player discovers the new gesture. */
.chapter-immersive.wind-bell-help .whisper{opacity:1;border-radius:14px;padding:10px 14px;background:#fbefdeed;color:#675264;box-shadow:0 3px 16px #39253319;max-width:320px;margin:0 auto!important;font-size:12px}
.scene[data-page="2"] ~ .continue-space #continue{background:#fbefdeed;color:#675264;border-radius:24px;box-shadow:0 3px 16px #39253322}
.chapter-immersive.wind-cloud-help .whisper{opacity:1;border-radius:14px;padding:10px 14px;background:#fbefdeed;color:#675264;box-shadow:0 3px 16px #39253319;max-width:320px;margin:0 auto!important;font-size:12px}
.scene[data-page="3"] ~ .continue-space #continue{background:#fbefdeed;color:#675264;border-radius:24px;box-shadow:0 3px 16px #39253322}
#windSeed:focus,#windSeed:focus-visible{outline:none}
#windSeed:focus-visible #windSeedPaint{filter:drop-shadow(0 0 3px #fff0c3)}

/* v73: the painting fills the same phone stage as the map. */
.wind-evening-v73 .wind-background{display:none}
.wind-evening-v73 .morning-wash{background:linear-gradient(#f6bfaa05,transparent 75%,#89708c05)}
.wind-booting #windArt,.wind-booting .chapter-painting,.wind-booting .wind-seed-layer{opacity:0}
.wind-evening-v73 #windArt [data-object] svg,.wind-evening-v73 #windArt [data-object] image{pointer-events:all}
.wind-evening-v73 #windSeed{pointer-events:none}
.wind-evening-v73 .wind-ready #windSeed{pointer-events:all}
.wind-evening-v73 #windMoonDoor[hidden]{display:none}
.wind-evening-v73 #windMoonDoor{cursor:pointer;pointer-events:all}
.wind-evening-v73 .wind-won #windSeed{pointer-events:none}
.wind-evening-v73 [data-object]{cursor:grab;touch-action:none}
.wind-evening-v73 .scene.is-dragging [data-object]{cursor:grabbing}
.wind-evening-v73 .scene[data-stalled="arch"] #windArt [data-object="reef"],.wind-evening-v73 .scene[data-stalled="rose"] #windArt [data-object="tension"]{filter:drop-shadow(0 0 2px #f9dfb329)}
.wind-evening-v73 #windArt [data-object]:focus-visible{outline:none;filter:drop-shadow(0 0 3px #ffe7c8)}
.wind-evening-v73 #gardenNext{border-radius:30px;background:#79697ded;color:#fff4e6;border:1px solid #ead3c57a;box-shadow:0 3px 18px #5c3c6026;padding:14px 20px}
.evening-moth-wings{animation:evening-moth-wings 2.8s ease-in-out infinite;transform-origin:0 0}
@keyframes evening-moth-wings{0%,100%{transform:scaleX(.93)}50%{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.evening-moth-wings{animation:none}}
@media(prefers-reduced-motion:reduce){.wind-evening-v73 #windSeedPaint{animation:none}}

/* Soft pigment has its own alpha falloff; SVG filter surfaces can turn dark on mobile WebKit. */
.wind-traveller-aura{pointer-events:none}
.wind-evening-v73 #windSeedPaint{filter:none}
.wind-evening-v73 [data-sling-peg]{cursor:ew-resize}

.wind-evening-v73 .scene[data-page="3"] #windSeed[data-object="sling"]{pointer-events:all;cursor:grab}
