/* Website-only scenery. The product palette is unchanged; landscape colors are
 * illustrations, not alternate theme tokens. All movement pauses off screen. */
.world-intro { padding-block:76px 0; text-align:center; }
.world-intro .eyeline { justify-content:center; }
.world-intro h1 { font-family:var(--font-pixel); font-size:clamp(48px,6vw,84px); font-weight:500; line-height:1.04; letter-spacing:-.035em; margin-block:28px; }
.world-intro h1 span { color:var(--accent); }
.world-intro .hero-intro { max-width:550px; margin-inline:auto; }
.world-intro .public-actions { justify-content:center; margin-top:26px; }
.world-intro .access-note { margin:18px auto 0; }
.world-chapter { padding-block:48px 20px; }
.world-chapter__copy { max-width:620px; margin-inline:auto; text-align:center; }
.public-site .world-chapter h2 { font-family:var(--font-pixel); font-weight:500; font-size:clamp(36px,5vw,64px); line-height:1.08; margin-block:14px 20px; }
.world-chapter__copy > p:last-child { font-size:18px; line-height:1.6; color:var(--muted); }
.world-chapter .section-number { color:var(--accent); }
.world-path { width:2px; height:60px; margin:24px auto; background:repeating-linear-gradient(to bottom,var(--line-strong) 0 4px,transparent 4px 12px); }
.world-features { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; padding-block:30px 72px; border-bottom:1px solid var(--line); }
.world-features h3 { font-size:18px; margin-bottom:12px; }
.world-features p { color:var(--muted); font-size:15px; line-height:1.65; }
.world-features a { display:inline-flex; align-items:center; min-height:44px; margin-top:10px; color:var(--accent); }
.world-signoff { padding-block:52px 70px; text-align:center; }
.world-signoff h2 { font-family:var(--font-pixel); font-weight:500; font-size:52px; margin-bottom:20px; }
.world-signoff p { max-width:550px; margin:0 auto 20px; color:var(--muted); line-height:1.7; }
iris-world { --fern:#6e8260; --grass:#8c9972; --bark:#665345; --stone:#8b8073; --water:#6d9391; display:block; max-width:1280px; margin:0 auto; position:relative; }
.iris-world__stage { position:relative; height:400px; overflow:clip; isolation:isolate; touch-action:pan-y; cursor:crosshair; }
.iris-world__sky { position:absolute; inset:0; color:var(--accent); pointer-events:none; }
.iris-world__sky svg { position:absolute; width:100%; height:100%; shape-rendering:crispEdges; }
.iris-world__hills { position:absolute; inset:auto 0 64px; height:140px; background:color-mix(in srgb,var(--fern) 30%,var(--paper)); clip-path:polygon(0 50%,8% 50%,8% 35%,16% 35%,16% 25%,24% 25%,24% 34%,33% 34%,33% 45%,44% 45%,44% 53%,53% 53%,53% 30%,62% 30%,62% 20%,72% 20%,72% 33%,83% 33%,83% 46%,92% 46%,92% 58%,100% 58%,100% 100%,0 100%); }
.iris-world__ground { position:absolute; inset:auto 0 0; height:68px; background:color-mix(in srgb,var(--fern) 25%,var(--paper)); border-top:4px solid color-mix(in srgb,var(--grass) 70%,var(--paper)); }
.iris-world__ground::after { content:""; position:absolute; left:10%; right:10%; top:22px; height:3px; opacity:.35; background:repeating-linear-gradient(to right,transparent 0 30px,var(--grass) 30px 34px,transparent 34px 92px); }
.iris-world__cloud { position:absolute; top:54px; left:14%; width:110px; height:24px; background:color-mix(in srgb,var(--ink) 10%,var(--paper)); clip-path:polygon(0 50%,15% 50%,15% 20%,30% 20%,30% 0,65% 0,65% 20%,82% 20%,82% 50%,100% 50%,100% 100%,0 100%); animation:iris-cloud 16s ease-in-out infinite alternate; }
.iris-world__cloud--far { left:auto; right:12%; top:90px; width:68px; opacity:.6; animation-delay:-7s; animation-duration:22s; }
.iris-world__moon { position:absolute; left:73%; top:40px; width:44px; height:44px; color:var(--accent); opacity:.8; }
.iris-world__moon svg { width:100%; height:100%; shape-rendering:crispEdges; }
.iris-world__stars { position:absolute; top:24px; left:30%; width:4px; height:4px; background:var(--accent); box-shadow:90px 22px var(--accent),-66px 63px var(--accent),228px 86px var(--accent),340px 4px var(--accent); opacity:.45; animation:iris-twinkle 5s ease-in-out infinite alternate; }
.iris-world__tree { position:absolute; width:150px; height:230px; left:5%; bottom:64px; color:var(--fern); }
.iris-world__tree--right { left:auto; right:5%; width:110px; height:170px; transform:scaleX(-1); }
.iris-world__tree svg { width:100%; height:100%; shape-rendering:crispEdges; }
.iris-world__grass { position:absolute; bottom:64px; left:21%; width:30px; height:30px; color:var(--grass); transform-origin:center bottom; animation:iris-grass 3.5s ease-in-out infinite alternate; }
.iris-world__grass svg { width:100%; height:100%; shape-rendering:crispEdges; }
.iris-world__grass--right { left:auto; right:18%; height:24px; animation-delay:-1.3s; }
.iris-world__flowers { position:absolute; left:32%; bottom:64px; width:14px; height:28px; color:var(--coral,var(--accent)); transform-origin:center bottom; animation:iris-grass 4.5s ease-in-out infinite alternate; }
.iris-world__flowers::before { content:""; position:absolute; width:3px; height:20px; background:var(--fern); bottom:0; left:6px; }
.iris-world__flowers::after { content:""; position:absolute; top:0; left:4px; width:6px; height:6px; background:var(--accent); box-shadow:0 -4px currentColor,4px 0 currentColor,-4px 0 currentColor,0 4px currentColor; }
.iris-world__flowers--far { left:69%; color:var(--accent); height:22px; animation-delay:-2s; }
.iris-world__actor { --iris-x:50%; position:absolute; z-index:4; left:var(--iris-x); bottom:65px; width:144px; height:156px; padding:0; margin:0; transform:translateX(-50%); appearance:none; background:none; border:0; cursor:pointer; color:var(--ink); touch-action:manipulation; user-select:none; -webkit-user-select:none; -webkit-tap-highlight-color:transparent; }
iris-world[data-walking] .iris-world__actor { will-change:transform; }
.iris-world__actor:focus-visible { outline:2px dashed var(--accent); outline-offset:8px; }
.iris-world__actor iris-mascot { width:100%; height:100%; display:block; transform-origin:50% 90%; }
.iris-mascot__portrait-flowers { position:absolute; inset:0; pointer-events:none; }
iris-world[data-world="meadow"]:not([data-walking]) iris-mascot[data-pose="sleep"] { animation:iris-breathe 3.8s ease-in-out infinite; }
.iris-world__note { position:absolute; bottom:calc(100% + 12px); left:50%; transform:translateX(calc(-50% + var(--note-shift,0px))); width:220px; max-width:60vw; padding:12px 14px; border:1px solid var(--line-strong); background:var(--paper); color:var(--ink); font-size:14px; font-family:var(--font-ui); line-height:1.4; text-align:center; box-shadow:3px 3px 0 var(--line-soft); }
.iris-world__note::after { content:""; position:absolute; bottom:-7px; left:calc(50% - 6px - var(--note-shift,0px)); width:11px; height:11px; background:var(--paper); border-right:1px solid var(--line-strong); border-bottom:1px solid var(--line-strong); transform:rotate(45deg); }
.iris-world__sleep { position:absolute; left:calc(50% + 44px); bottom:190px; pointer-events:none; font-family:var(--font-pixel); font-size:22px; color:var(--muted); }
.iris-world__sleep i { display:block; font-style:normal; opacity:0; animation:iris-sleep 4s linear infinite; }
.iris-world__sleep i:nth-child(2) { animation-delay:1.3s; position:absolute; left:12px; top:-12px; font-size:17px; }
.iris-world__sleep i:nth-child(3) { animation-delay:2.6s; position:absolute; left:22px; top:-22px; font-size:12px; }
iris-world:has(iris-mascot[data-pose="awake"]) .iris-world__sleep { display:none; }
.iris-world__spark { --drift-x:34px; --drift-y:-28px; pointer-events:none; position:absolute; width:5px; height:5px; left:34%; bottom:220px; z-index:2; background:var(--accent); animation:iris-firefly 11s ease-in-out infinite alternate; opacity:.55; }
.iris-world__spark--far { --drift-x:-24px; --drift-y:32px; width:3px; height:3px; left:62%; bottom:248px; opacity:.3; animation-duration:15s; animation-delay:-6s; }
.iris-world__spark--near { --drift-x:20px; --drift-y:18px; width:3px; height:3px; left:77%; bottom:170px; opacity:.4; animation-duration:9s; animation-delay:-3s; }
.iris-world__controls { display:flex; align-items:center; justify-content:center; gap:16px; min-height:56px; margin-block:8px 24px; white-space:nowrap; }
.iris-world__controls button,.iris-world__lesson button { display:inline-flex; align-items:center; justify-content:center; gap:10px; padding:10px 16px; min-height:44px; border:1px solid var(--line); border-radius:var(--r-xs); color:var(--ink); background:transparent; font:inherit; font-size:14px; cursor:pointer; white-space:nowrap; }
.iris-world__controls button:hover { border-color:var(--accent); color:var(--accent); }
.iris-world__controls button:active { transform:translateY(2px); }
.iris-world__controls span { color:var(--muted); font-size:12px; }
.iris-world__controls button span { color:var(--accent); font-family:var(--font-pixel); font-size:18px; }
.iris-world__controls button svg { width:14px;height:14px;display:block;flex:none;fill:var(--accent);shape-rendering:crispEdges; }
.iris-world__lesson { display:none; margin:8px auto 24px; text-align:center; }
.iris-world__lesson-title { display:block; font-size:14px; color:var(--ink); margin-bottom:8px; }
.iris-world__lesson-actions { display:flex; align-items:center; justify-content:center; gap:10px; }
.iris-world__lesson-actions > span { color:var(--muted); font-size:12px; font-variant-numeric:tabular-nums; min-width:36px; }
.iris-world__lesson button:hover { color:var(--accent); border-color:var(--accent); }
.iris-world__lesson button:disabled { opacity:.35; cursor:default; }
.iris-world__lesson .iris-world__lesson-close { padding:0; min-width:44px; font-size:22px; border-color:transparent; }
iris-world[data-teaching] .iris-world__controls { display:none; }
iris-world[data-teaching] { scroll-margin-bottom:16px; }
iris-world[data-teaching] .iris-world__lesson { display:block; }
iris-world[data-teaching] .iris-world__note { width:340px; max-width:calc(100vw - 32px); text-align:left; }
.iris-world__status { position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap; }
.iris-world__river { position:absolute; left:0; right:0; bottom:0; height:60px; color:var(--water); background:color-mix(in srgb,var(--water) 25%,var(--paper)); overflow:hidden; }
.iris-world__river::before,.iris-world__river::after { content:""; position:absolute; width:180%; height:3px; top:20px; left:-30%; background:repeating-linear-gradient(to right,transparent 0 60px,var(--water) 60px 84px,transparent 84px 144px); opacity:.6; animation:iris-water 9s linear infinite; }
.iris-world__river::after { top:42px; animation-direction:reverse; animation-duration:14s; opacity:.3; }
.iris-world__bridge { position:absolute; left:20%; right:20%; bottom:50px; height:18px; border-top:5px solid var(--accent); background:repeating-linear-gradient(to right,var(--bark) 0 24px,color-mix(in srgb,var(--accent) 30%,var(--paper)) 24px 26px); }
.iris-world__bridge::before,.iris-world__bridge::after { content:""; position:absolute; width:9px; height:58px; left:7%; top:0; background:var(--bark); }
.iris-world__bridge::after { left:auto; right:7%; }
.iris-world__boat { position:absolute; bottom:8px; left:0; width:40px; height:29px; color:var(--ink); opacity:.8; animation:iris-boat 20s linear infinite; }
.iris-world__boat svg { width:100%; height:100%; shape-rendering:crispEdges; }
iris-world[data-world="stream"] .iris-world__hills { background:color-mix(in srgb,var(--water) 18%,var(--paper)); height:105px; }
iris-world[data-world="stream"] .iris-world__ground { background:var(--paper); border:0; height:64px; }
.iris-world__lamp { position:absolute; right:18%; bottom:64px; width:10px; height:166px; background:var(--bark); }
.iris-world__lamp::before { content:""; position:absolute; left:-13px; top:8px; width:36px; height:40px; background:#946d54; border:4px solid var(--bark); transition:background .5s,box-shadow .5s; }
.iris-world__lamp::after { content:""; position:absolute; left:-19px; top:0; width:48px; height:8px; background:var(--bark); }
.iris-world__lanterns { position:absolute; left:14%; right:20%; top:70px; height:80px; color:#946d54; transition:color .5s; }
.iris-world__lanterns svg { width:100%; height:100%; overflow:visible; }
.iris-world__lanterns g { transform-origin:50% 0; animation:iris-lantern-sway 5s ease-in-out infinite alternate; }
.iris-world__lanterns g:nth-child(2) { animation-delay:-2s; }
.iris-world__lanterns g:nth-child(3) { animation-delay:-3.6s; }
iris-world[data-world="lantern"] .iris-world__lamp::before,iris-world[data-world="lantern"] .iris-world__lanterns { opacity:.25;transition:opacity .5s ease; }
iris-world[data-lit] .iris-world__lamp::before,iris-world[data-lit] .iris-world__lanterns { opacity:1; }
/* Local illustration lighting, not a replacement theme or a UI gradient. */
iris-world[data-lit] .iris-world__lamp::before { background:#efa46f; box-shadow:inset 0 0 10px #f7c090,0 0 18px #dc795e99,0 0 60px #e391674d,0 0 110px #d5745533; }
iris-world[data-lit] .iris-world__lanterns { color:#eaa071; }
iris-world[data-lit] .iris-world__lanterns g path:nth-child(2) { filter:drop-shadow(0 0 8px #e58a62); }
iris-world[data-world="lantern"] .iris-world__stage::after { content:""; pointer-events:none; position:absolute; inset:0; z-index:2; opacity:0; background:radial-gradient(ellipse 140px 180px at 90% 60%,#e9885d38,transparent 80%),radial-gradient(ellipse 180px 130px at 28% 45%,#ea956322,transparent 85%),radial-gradient(ellipse 230px 130px at 50% 55%,#e98b6122,transparent 85%); transition:opacity .6s; }
iris-world[data-lit] .iris-world__stage::after { opacity:1; }
iris-world[data-lit] .iris-world__ground { box-shadow:inset -100px 18px 60px -35px #df8a5b55; }
iris-world[data-lit] .world-object svg { filter:drop-shadow(0 -2px 3px #db8b5544); }
.iris-world__actor::before { content:""; pointer-events:none; position:absolute; bottom:-2px; left:25%; width:50%; height:5px; border-radius:50%; background:#0004; }
iris-world[data-jumping] .iris-world__actor::before { animation:iris-jump-shadow .88s ease-in-out; }
@keyframes iris-jump-shadow { 0%,100% { transform:scaleX(1); opacity:.6; } 46% { transform:scaleX(.5); opacity:.2; } }
.iris-world__mail { position:absolute; left:13%; bottom:64px; width:58px; height:100px; color:var(--stone); }
.iris-world__mail svg { width:100%; height:100%; shape-rendering:crispEdges; }
iris-world[data-playing] .iris-world__flowers { animation:iris-bloom .7s ease-out 2 alternate; }
iris-world:not([data-active]) *,iris-world:not([data-active]) ::before,iris-world:not([data-active]) ::after { animation-play-state:paused !important; }
@keyframes iris-cloud { to { transform:translateX(32px); } }
@keyframes iris-grass { from { transform:skewX(-5deg); } to { transform:skewX(6deg); } }
@keyframes iris-breathe { 50% { transform:scale(1.016,.982) translateY(1px); } }
@keyframes iris-sleep { 0% { opacity:0; transform:translate(0,3px); } 30%,55% { opacity:.65; } 100% { opacity:0; transform:translate(12px,-22px); } }
@keyframes iris-firefly { 0% { transform:translate(0,0); } 45% { transform:translate(var(--drift-x),var(--drift-y)); } 100% { transform:translate(calc(var(--drift-x) * -.4),calc(var(--drift-y) * .5)); } }
@keyframes iris-twinkle { to { opacity:.16; } }
@keyframes iris-water { to { transform:translateX(144px); } }
@keyframes iris-boat { from { transform:translateX(-70px); } to { transform:translateX(calc(min(100vw,1280px) + 70px)); } }
@keyframes iris-lantern { to { opacity:.72; } }
@keyframes iris-lantern-sway { from { transform:rotate(-1.5deg); } to { transform:rotate(1.5deg); } }
@keyframes iris-bloom { to { transform:scale(1.25) rotate(5deg); } }
@media(max-width:720px) {
  .world-intro { padding-block:44px 0; }.world-intro h1 { font-size:48px; }.world-intro .hero-intro { font-size:17px; }
  .iris-world__stage { height:320px; }.iris-world__actor { width:112px; height:122px; }.iris-world__tree { left:-35px; width:125px; height:190px; }.iris-world__tree--right { left:auto; right:-30px; height:150px; width:100px; }
  .iris-world__sleep { bottom:170px;left:calc(50% + 35px); }.iris-world__spark { bottom:170px; }.iris-world__cloud { top:42px;left:4%;width:70px; }.iris-world__cloud--far { left:auto;right:4%; }.iris-world__moon { left:75%;top:25px;width:30px;height:30px; }
  .iris-world__grass { left:12%; }.iris-world__grass--right { left:auto;right:11%; }.iris-world__flowers { left:21%; }.iris-world__flowers--far { left:78%; }
  .iris-world__controls { gap:10px; }.iris-world__controls > span { font-size:11px; }.iris-world__controls button { font-size:13px; }
  .world-chapter { padding-block:20px 0; }.world-chapter__copy > p:last-child { font-size:16px; }.world-features { grid-template-columns:1fr;gap:28px;padding-bottom:44px; }.world-signoff { padding-block:20px 36px; }.world-signoff h2 { font-size:40px; }
  .iris-world__lamp { right:11%;height:152px; }.iris-world__mail { left:7%;width:44px;height:78px; }.iris-world__lanterns { left:8%;right:12%;top:40px; }
}
@media(prefers-reduced-motion:reduce) {
  iris-world *,iris-world ::before,iris-world ::after { animation:none !important;transition:none !important; }
  .iris-world__sleep i:first-child { opacity:.6; }
}
