:root{color-scheme:dark;--ink:#173828;--cream:#fffaf0;--paper:#f6f0e3;--peach:#ffd3a1;--muted:#d8e3cd;--line:#ffffff58;font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;overflow:hidden}body{background:#0c2417}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:3px solid #ffd18d;outline-offset:4px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;z-index:100;top:-100px;left:16px;padding:10px 16px;border-radius:10px;background:white;color:#173828}.skip-link:focus{top:14px}
.journey{position:relative;isolation:isolate;width:calc(100vw - 20px);height:calc(100svh - 20px);min-height:520px;margin:10px;overflow:hidden;border-radius:28px;background:#10291b;color:var(--cream);box-shadow:0 0 0 1px #ffffff1b inset}
.forest-backdrop,.forest-image,.forest-shade,.forest-lights{position:absolute;inset:0;pointer-events:none}.forest-backdrop{z-index:-2;overflow:hidden}.forest-image{background-position:center;background-size:cover;transform:scale(1.02);transition:transform 1.2s cubic-bezier(.22,.72,.27,1),opacity .55s}.forest-image--current{background-image:url("assets/hero-forest-v40.webp")}.forest-image--next{opacity:0}.journey.is-moving .forest-image--current{transform:scale(1.13)}.journey.is-moving .forest-image--next{opacity:1;transform:scale(1.065)}.forest-shade{background:linear-gradient(90deg,#081d13ec 0%,#0a2418d9 34%,#0e2c1a75 64%,#0e28167b 100%),linear-gradient(0deg,#081f13bb,transparent 42%)}.journey[data-step="1"] .forest-shade,.journey[data-step="3"] .forest-shade{background:linear-gradient(90deg,#0b2519e8,#102b1acc 46%,#112d1e8f),linear-gradient(0deg,#0a2013c4,transparent 52%)}.journey[data-step="2"] .forest-shade,.journey[data-step="4"] .forest-shade{background:linear-gradient(90deg,#071d12df,#102b1bc3 46%,#132b1a75),linear-gradient(0deg,#071b10c7,transparent 48%)}.forest-lights{opacity:.48;background:radial-gradient(circle at 77% 26%,#ffdf9274,transparent 23%),radial-gradient(circle at 11% 89%,#9fc46733,transparent 26%);mix-blend-mode:screen;animation:light-breathe 9s ease-in-out infinite alternate}@keyframes light-breathe{from{opacity:.28}to{opacity:.53}}.travel-veil{position:absolute;z-index:50;inset:-5%;display:grid;place-items:center;opacity:0;pointer-events:none;background:radial-gradient(circle at 58% 52%,#336046ec 0%,#173722f5 35%,#071a10fa 78%),url("assets/hero-forest-v40.webp") center/cover;filter:blur(3px);transition:opacity .34s ease}.journey.is-veiled .travel-veil{opacity:1}.travel-veil span{width:115px;height:115px;border:1px solid #fff5;border-radius:50%;background:radial-gradient(circle,#fff3 0%,transparent 61%);transform:scale(.5);opacity:0;transition:transform .45s,opacity .3s}.journey.is-veiled .travel-veil span{opacity:.8;transform:scale(1.8)}
.site-header{position:absolute;z-index:30;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:20px;height:98px;padding:20px clamp(28px,5.4vw,92px);border-bottom:1px solid #ffffff2e}.brand{display:flex;align-items:center;gap:11px;color:#fff9ed;text-decoration:none;font-family:Georgia,serif;font-size:1.45rem;font-weight:800;white-space:nowrap}.brand img{width:43px;height:43px;border-radius:12px}.brand small{display:block;margin-top:2px;font-family:"PingFang SC",sans-serif;font-size:.57rem;font-weight:700;letter-spacing:.18em}.header-middle{display:flex;align-items:center;gap:14px;color:#f5efdebd;font-size:.71rem;font-weight:700;letter-spacing:.17em;white-space:nowrap}.header-line{width:34px;height:1px;background:#ffffff77}.chapter-counter{color:#ffddb1;font-size:.78rem;font-weight:800;letter-spacing:.1em;white-space:nowrap}
.journey>main{position:absolute;inset:0}.scene{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding:116px clamp(30px,5.4vw,92px) 125px;opacity:0;transform:translateY(18px);transition:opacity .43s ease,transform .55s ease}.scene.is-active{opacity:1;transform:none}.scene-copy{position:relative;z-index:2;width:min(780px,56%);margin-right:auto}.eyebrow{display:inline-flex;align-items:center;gap:10px;color:#ffddb3;font-size:.75rem;font-weight:850;letter-spacing:.13em}.eyebrow i{width:8px;height:8px;border-radius:50%;background:#f8d19a;box-shadow:0 0 16px #ffc780}.scene h1,.scene h2{margin:23px 0 0;font-family:"Songti SC","Noto Serif CJK SC",serif;font-weight:600;letter-spacing:-.065em;line-height:1.18;text-wrap:balance}.scene h1{font-size:clamp(4.1rem,7.8vw,9rem)}.scene h2{font-size:clamp(3.2rem,5vw,6rem)}.scene h1 em,.scene h2 em{color:#f8cf98;font-style:normal}.scene-copy>p,.scene-intro>p{max-width:660px;color:#f5f6ebd9;font-size:clamp(.96rem,1.2vw,1.13rem);line-height:1.85}.scene-copy>p{margin:30px 0}.path-button,.next-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;min-height:54px;padding:0 22px;border:0;border-radius:999px;background:#fffaf0;color:#173828;font-weight:850;cursor:pointer;transition:transform .25s,background .25s}.path-button:hover,.next-button:hover{transform:translateY(-2px);background:#ffdbac}.path-button span,.next-button span{font-size:1.2rem}.micro-note{display:block;margin-top:17px;color:#f0ead0a8;font-size:.77rem;letter-spacing:.07em}.entry-orbit{position:absolute;right:9%;top:16%;width:33vw;max-width:510px;aspect-ratio:1;border:1px solid #fff4;border-radius:50%;pointer-events:none}.entry-orbit:before,.entry-orbit:after{position:absolute;inset:12%;border:1px solid #fff2;border-radius:50%;content:""}.entry-orbit:after{inset:26%}.entry-orbit span{position:absolute;color:#fff7;font-size:.66rem}.entry-orbit span:nth-child(1){top:6%;left:20%}.entry-orbit span:nth-child(2){right:1%;top:31%}.entry-orbit span:nth-child(3){bottom:8%;right:19%}.entry-orbit span:nth-child(4){bottom:21%;left:0}
.scene-shell{width:min(1300px,100%)}.scene-intro{max-width:850px;margin-bottom:30px}.scene-intro h2{margin-top:14px}.scene-intro>p{margin:14px 0 0}.feature-board{position:relative;display:grid;min-height:345px;overflow:hidden;border:1px solid #ffffffb0;border-radius:27px;background:#f7f3eaeF;color:var(--ink);box-shadow:0 28px 70px #091b116e;backdrop-filter:blur(16px)}.board-kicker{display:block;color:#4e7b59;font-size:.74rem;font-weight:900;letter-spacing:.1em}.feature-board h3{font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:clamp(1.9rem,2.8vw,3rem);font-weight:600;line-height:1.35;letter-spacing:-.05em}.feature-board p{line-height:1.75}.feature-board small{color:#647869;font-size:.7rem;line-height:1.55}.scene-disclosure{margin:12px 0 0;color:#f6efdaa8;font-size:.69rem}
.character-board{grid-template-columns:43% 57%;background:#f2f2e8ef}.character-art{position:relative;display:grid;place-items:center;min-height:345px;overflow:hidden;background:linear-gradient(135deg,#d4e5d6,#eff5e7 66%,#f8d9b5)}.character-art img{position:relative;z-index:1;width:min(78%,330px);height:310px;object-fit:contain;filter:drop-shadow(0 20px 17px #53765944)}.art-halo{position:absolute;width:260px;aspect-ratio:1;border:1px solid #7ca98591;border-radius:50%;background:#ffffff48;box-shadow:0 0 0 48px #ffffff26,0 0 0 95px #ffffff16}.feature-detail{display:flex;flex-direction:column;justify-content:center;padding:30px clamp(28px,4vw,65px)}.mini-step-list{display:flex;gap:7px;margin-top:23px}.mini-step{padding:8px 13px;border:1px solid #c4d2c6;border-radius:999px;background:transparent;color:#43634b;font-size:.77rem;font-weight:800;cursor:pointer}.mini-step.is-selected{border-color:#315b40;background:#315b40;color:white}.feature-detail h3{margin:19px 0 4px}.feature-detail p{margin:0 0 15px;color:#486452;font-size:.95rem}
.social-board{grid-template-columns:52% 48%;background:#f8f1e7f2}.social-photo{position:relative;min-height:345px;overflow:hidden}.social-photo img{width:100%;height:100%;max-height:425px;object-fit:cover}.social-photo>span{position:absolute;left:21px;bottom:19px;padding:8px 11px;border-radius:99px;background:#0d301caf;color:#fff8e9;font-size:.66rem;font-weight:900;letter-spacing:.14em}.social-story{display:flex;flex-direction:column;justify-content:center;padding:26px clamp(23px,3.6vw,53px)}.social-story>p{margin:18px 0 16px;font-family:"Songti SC",serif;font-size:clamp(1.4rem,2vw,2.3rem);line-height:1.5}.social-actions{display:flex;align-items:center;gap:14px}.social-actions>span{color:#6c806f;font-size:.72rem}.like-button{padding:9px 16px;border:1px solid #d6c8b5;border-radius:99px;background:#fffaf2;color:#8b674f;font-weight:800;cursor:pointer}.like-button[aria-pressed="true"]{border-color:#d9977a;background:#f5ddd4;color:#a95d50}.social-portraits{display:flex;align-items:center;gap:9px;margin-top:23px;padding-top:17px;border-top:1px solid #c5d1c5}.social-portraits img{width:49px;height:49px;border-radius:50%;object-fit:cover}.social-portraits small{margin-left:4px}
.taotai-board{grid-template-columns:36% 64%;background:#eef2e9f1}.taotai-avatar{position:relative;display:grid;place-items:center;min-height:345px;background:radial-gradient(circle at 48% 45%,#f7f5e7 0%,#c9e0cf 63%,#aac9b7 100%)}.taotai-avatar img{width:min(76%,290px);aspect-ratio:1;object-fit:cover;border:10px solid #f8f7e9;border-radius:50%;box-shadow:0 22px 43px #32664741}.taotai-avatar span{position:absolute;right:8%;bottom:8%;padding:8px 14px;border-radius:99px;background:#315e42;color:#fff7ea;font-size:.73rem;font-weight:850}.taotai-chat{display:flex;flex-direction:column;justify-content:center;padding:23px clamp(27px,4vw,60px)}.taotai-chat .question{align-self:flex-end;max-width:95%;margin:20px 0 15px;padding:12px 17px;border-radius:17px 17px 4px 17px;background:#dfe9dc;color:#294634;font-size:.94rem}.answer{max-width:95%;padding:14px 18px;border:1px solid #d5e0d3;border-radius:17px 17px 17px 4px;background:#fffdf5}.answer span{color:#5a8866;font-size:.73rem;font-weight:900}.answer p{margin:8px 0 0;font-size:.91rem}.taotai-chat>small{margin-top:12px}
.daily-board{grid-template-columns:34% 66%;min-height:345px;background:#f6f0e6f3}.daily-index{display:flex;flex-direction:column;justify-content:center;padding:23px 15px 23px 30px;border-right:1px solid #cad6c9}.daily-choice{display:flex;align-items:center;gap:14px;width:100%;padding:15px 13px;border:0;border-bottom:1px solid #c8d4c9;background:transparent;color:#31513b;text-align:left;font-weight:850;cursor:pointer}.daily-choice:last-child{border-bottom:0}.daily-choice span{color:#8a9b7e;font-size:.7rem}.daily-choice b{margin-left:auto;font-weight:500}.daily-choice.is-selected{border-radius:12px;background:#315d41;color:#fffaf0}.daily-choice.is-selected span{color:#d4ebcd}.daily-detail{display:grid;grid-template-columns:44% 56%;align-items:center}.daily-visual{display:grid;place-items:center;height:100%;min-height:345px;background:radial-gradient(circle at 58% 47%,#fff8e8,#d5e5d7 73%);overflow:hidden}.daily-visual img{width:88%;height:300px;object-fit:contain;filter:drop-shadow(0 18px 15px #45704b4e)}.daily-text{padding:25px clamp(20px,3vw,45px)}.daily-text h3{margin:13px 0 7px;font-size:clamp(1.7rem,2.35vw,2.6rem)}.daily-text p{margin:0;color:#56705c;font-size:.9rem}
.ending-copy{margin-left:5%;width:min(850px,68%)}.ending-copy h2{font-size:clamp(3.7rem,6.7vw,7.7rem)}.ending-copy>small{display:block;margin-top:17px;color:#f7ead8a9}
.poppy-actor{position:absolute;z-index:18;right:0;bottom:-4%;width:min(44vw,650px);height:min(84vh,710px);padding:0;border:0;background:transparent;cursor:pointer;transform-origin:50% 85%;transition:left .5s,right .5s,bottom .5s,width .5s,height .5s,transform .42s;filter:drop-shadow(0 25px 28px #061b0d9c)}.poppy-actor img{width:100%;height:100%;object-fit:contain;object-position:center bottom}.journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{right:auto;left:1.4%;bottom:63px;width:clamp(120px,15vw,190px);height:clamp(150px,19vw,245px)}.journey[data-step="5"] .poppy-actor{right:1%;bottom:-5%;width:min(37vw,520px);height:min(75vh,630px)}.journey.is-walking .poppy-actor{transform:translateX(10vw) rotate(-2deg) scale(.92)}.journey.is-arriving .poppy-actor{transform:translateY(-12px) rotate(3deg)}.poppy-speech{position:absolute;z-index:31;right:22%;bottom:27%;max-width:260px;padding:14px 18px;border:1px solid #ffffff9c;border-radius:18px 18px 4px 18px;background:#fff9ed;color:#2c5037;box-shadow:0 15px 35px #061c119c;font-size:.88rem;font-weight:850;line-height:1.5}.journey[data-step="1"] .poppy-speech,.journey[data-step="2"] .poppy-speech,.journey[data-step="3"] .poppy-speech,.journey[data-step="4"] .poppy-speech{right:auto;left:11%;bottom:19%}.journey[data-step="5"] .poppy-speech{right:22%;bottom:25%}
.chapter-controls{position:absolute;z-index:30;left:clamp(28px,5.4vw,92px);right:clamp(28px,5.4vw,92px);bottom:19px;display:flex;align-items:center;gap:20px;height:70px;padding-top:12px;border-top:1px solid #ffffff6b}.back-button{min-width:122px;border:0;background:transparent;color:#fff8e8;font-weight:750;cursor:pointer;text-align:left}.back-button:disabled{opacity:.38;cursor:default}.back-button span{margin-right:8px}.trail-progress{display:flex;align-items:center;justify-content:center;gap:12px;flex:1}.trail-progress span{position:relative;width:9px;height:9px;border:1px solid #ffffffb9;border-radius:50%;background:#ffffff2e;transition:background .28s,transform .28s}.trail-progress span:not(:last-child):after{position:absolute;top:3px;left:10px;width:12px;height:1px;background:#ffffff6f;content:""}.trail-progress span.is-reached{background:#ffda9f;transform:scale(1.22)}.next-button{min-height:43px;min-width:182px;padding:0 15px;font-size:.82rem}.next-button:disabled{display:none}
@media(max-width:900px){.header-middle{display:none}.scene{padding-left:32px;padding-right:32px}.scene-copy{width:min(68%,640px)}.scene h1{font-size:clamp(4rem,8vw,7rem)}.entry-orbit{right:1%}.poppy-actor{right:-9%;width:53vw}.feature-board{min-height:325px}.character-art,.social-photo,.taotai-avatar,.daily-visual{min-height:325px}}
@media(max-width:700px){.journey{width:calc(100vw - 12px);height:calc(100svh - 12px);min-height:480px;margin:6px;border-radius:19px}.forest-image{background-position:60% center}.forest-shade,.journey[data-step="1"] .forest-shade,.journey[data-step="2"] .forest-shade,.journey[data-step="3"] .forest-shade,.journey[data-step="4"] .forest-shade{background:linear-gradient(0deg,#081f15ed 0%,#0b271bf0 28%,#0c271aaa 65%,#1739244a 100%)}.site-header{height:72px;padding:12px 20px}.brand{gap:8px;font-size:1.15rem}.brand img{width:36px;height:36px}.brand small{font-size:.49rem}.chapter-counter{font-size:.64rem}.scene{display:block;padding:88px 18px 114px}.scene--entry,.scene--ending{display:flex;align-items:flex-end}.scene-copy{width:100%}.entry-copy{padding-bottom:52px}.scene h1{margin-top:15px;font-size:clamp(3.35rem,10.7vw,4.8rem)}.scene h2{font-size:clamp(2.65rem,8.8vw,4.3rem)}.scene-copy>p,.scene-intro>p{font-size:.84rem;line-height:1.7}.scene-copy>p{margin:18px 0}.eyebrow{font-size:.59rem}.path-button{min-height:46px;padding:0 16px;font-size:.79rem}.micro-note{font-size:.64rem}.entry-orbit{top:16%;right:5%;width:72vw}.poppy-actor{right:-8%;bottom:32%;width:82vw;height:44%;filter:drop-shadow(0 13px 17px #071e0d8c)}.journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{left:0;bottom:71px;width:88px;height:103px}.journey[data-step="5"] .poppy-actor{right:-7%;bottom:33%;width:79vw;height:44%}.poppy-speech{right:8%;bottom:57%;max-width:155px;padding:9px 12px;font-size:.7rem}.journey[data-step="1"] .poppy-speech,.journey[data-step="2"] .poppy-speech,.journey[data-step="3"] .poppy-speech,.journey[data-step="4"] .poppy-speech{left:13%;bottom:14%;max-width:165px}.journey[data-step="5"] .poppy-speech{right:8%;bottom:59%}.scene-intro{margin-bottom:20px}.scene-intro h2{margin-top:11px}.scene-intro>p{margin-top:8px}.feature-board{display:block;min-height:0;border-radius:20px}.character-art{height:240px;min-height:0}.character-art img{height:240px;width:77%}.art-halo{width:170px;box-shadow:0 0 0 34px #ffffff26}.feature-detail{padding:19px 20px 22px}.mini-step-list{margin-top:14px}.mini-step{padding:6px 10px;font-size:.69rem}.feature-detail h3{margin:13px 0 2px;font-size:1.55rem}.feature-detail p{font-size:.78rem}.feature-board small{font-size:.62rem}.social-photo{height:218px;min-height:0}.social-photo img{max-height:none}.social-story{padding:17px 20px}.social-story>p{margin:9px 0;font-size:1.48rem}.social-portraits{margin-top:12px;padding-top:10px}.social-portraits img{width:37px;height:37px}.social-portraits small{font-size:.59rem}.taotai-avatar{height:166px;min-height:0}.taotai-avatar img{width:140px;border-width:6px}.taotai-avatar span{right:8%;bottom:10%;font-size:.61rem}.taotai-chat{padding:17px 20px}.taotai-chat .question{margin:9px 0;padding:9px 12px;font-size:.78rem}.answer{padding:10px 12px}.answer p{font-size:.75rem}.taotai-chat>small{margin-top:7px}.daily-index{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:9px;border:0;border-bottom:1px solid #cad6c9}.daily-choice{gap:7px;padding:9px 7px;border:0;border-radius:9px;font-size:.69rem}.daily-choice b{display:none}.daily-detail{grid-template-columns:38% 62%;min-height:200px}.daily-visual{min-height:200px}.daily-visual img{height:185px}.daily-text{padding:10px 15px}.daily-text h3{font-size:1.3rem}.daily-text p{font-size:.69rem}.board-kicker{font-size:.62rem}.scene-disclosure{font-size:.6rem}.ending-copy{margin:0 0 50px;width:100%}.chapter-controls{left:18px;right:18px;bottom:10px;gap:5px;height:63px}.back-button{min-width:65px;font-size:.7rem}.back-button span{margin-right:3px}.trail-progress{gap:7px}.trail-progress span{width:7px;height:7px}.trail-progress span:not(:last-child):after{top:2px;left:8px;width:7px}.next-button{min-width:125px;min-height:38px;padding:0 10px;gap:7px;font-size:.68rem}.next-button span{font-size:.97rem}}
@media(max-width:360px){.scene{padding-top:80px}.scene h1{font-size:3.15rem}.scene h2{font-size:2.35rem}.scene-intro>p{font-size:.76rem}.character-art{height:195px}.character-art img{height:195px}.social-photo{height:180px}.taotai-avatar{height:135px}.taotai-avatar img{width:112px}.daily-detail{min-height:175px}.daily-visual{min-height:175px}.daily-visual img{height:160px}.poppy-actor{bottom:34%}.journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{width:72px;height:88px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.forest-lights{animation:none}.travel-veil{display:none}}
.scene [tabindex="-1"]:focus{outline:none}
@media(min-width:701px){.scene--feature .scene-shell{width:min(1150px,calc(100% - 145px));margin-left:145px;margin-right:auto}}
@media(max-width:700px){.journey[data-step="0"] .poppy-actor{right:-3%;bottom:61%;width:72vw;height:29%}.journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{left:2%;bottom:73px;width:68px;height:76px}.journey[data-step="5"] .poppy-actor{right:-3%;bottom:61%;width:72vw;height:29%}.taotai-avatar img{width:140px;height:140px;min-height:0;max-height:140px}}
@media(max-width:360px){.taotai-avatar img{width:112px;height:112px;max-height:112px}}
.journey[data-step="0"].is-walking .poppy-actor,.journey[data-step="5"].is-walking .poppy-actor{transform:translateX(-6vw) scale(.8) rotate(-2deg)}
.journey[data-step="1"].is-walking .poppy-actor,.journey[data-step="2"].is-walking .poppy-actor,.journey[data-step="3"].is-walking .poppy-actor,.journey[data-step="4"].is-walking .poppy-actor{transform:translateX(12px) translateY(-4px) scale(.9)}
.journey.is-repositioning .poppy-actor{transition:none}
.scene--feature{align-items:flex-start}.scene--feature .scene-shell{margin-top:auto;margin-bottom:auto}
.taotai-avatar img{display:block;width:clamp(120px,18vw,260px);height:clamp(120px,18vw,260px);aspect-ratio:1;object-fit:cover;min-width:0;min-height:0;max-height:none}
@media(max-width:700px){.taotai-avatar img{width:140px;height:140px;max-height:140px}}
@media(max-width:360px){.taotai-avatar img{width:112px;height:112px;max-height:112px}}
.journey.is-moving .forest-image--current{transform:scale(1.32) translate3d(0,3%,0)}.journey.is-moving .forest-image--next{transform:scale(1.12) translate3d(0,1%,0)}
.journey[data-step="0"].is-walking .poppy-actor,.journey[data-step="5"].is-walking .poppy-actor{animation:poppy-enter-trail .92s cubic-bezier(.31,.04,.45,.99) both;transform:none}
.journey[data-step="1"].is-walking .poppy-actor,.journey[data-step="2"].is-walking .poppy-actor,.journey[data-step="3"].is-walking .poppy-actor,.journey[data-step="4"].is-walking .poppy-actor{animation:poppy-forest-step .92s cubic-bezier(.31,.04,.45,.99) both;transform:none}
@keyframes poppy-enter-trail{0%{transform:translate(0,0) rotate(0) scale(1)}24%{transform:translate(-2vw,-14px) rotate(-2deg) scale(.95)}52%{transform:translate(-4.5vw,1px) rotate(2deg) scale(.87)}77%{transform:translate(-6vw,-13px) rotate(-2deg) scale(.82)}100%{transform:translate(-7vw,0) rotate(0) scale(.78)}}
@keyframes poppy-forest-step{0%{transform:translate(0,0) rotate(0) scale(1)}24%{transform:translate(8px,-10px) rotate(2deg) scale(.96)}52%{transform:translate(17px,1px) rotate(-2deg) scale(.91)}77%{transform:translate(26px,-9px) rotate(1deg) scale(.89)}100%{transform:translate(32px,0) rotate(0) scale(.87)}}
.travel-veil:before,.travel-veil:after{position:absolute;top:-10%;bottom:-10%;width:56%;content:"";background:url("assets/forest-grove-v9.webp") center/cover;filter:blur(9px) brightness(.35);transition:transform .55s cubic-bezier(.18,.63,.17,1)}.travel-veil:before{left:-6%;clip-path:ellipse(63% 80% at 15% 48%);transform:translateX(-95%) rotate(-7deg)}.travel-veil:after{right:-6%;clip-path:ellipse(61% 82% at 88% 52%);transform:translateX(95%) rotate(7deg)}.journey.is-veiled .travel-veil:before,.journey.is-veiled .travel-veil:after{transform:translateX(0) rotate(0)}
@media(prefers-reduced-motion:reduce){.journey.is-walking .poppy-actor{animation:none!important}}
.forest-image--current{transition:transform 1.7s cubic-bezier(.18,.72,.26,1),opacity 1.35s ease}.forest-image--next{filter:blur(13px);transform:scale(1.2) translate3d(0,-2%,0);transition:opacity 1.55s ease,filter 1.55s ease,transform 1.7s cubic-bezier(.18,.72,.26,1)}
.journey.is-moving .forest-image--current{opacity:.12;transform:scale(1.35) translate3d(0,4%,0)}.journey.is-moving .forest-image--next{opacity:1;filter:blur(0);transform:scale(1.04) translate3d(0,1%,0)}
.travel-veil{background:radial-gradient(circle at 55% 55%,#9fbd9252 0%,#173722ae 48%,#071a10e8 100%);filter:none;transition:opacity .52s ease}.journey.is-veiled .travel-veil{opacity:.9}
.journey.is-walking .poppy-actor img{filter:blur(.5px)}
.travel-veil:before,.travel-veil:after{display:none}
.travel-veil{background:radial-gradient(circle at 50% 58%,#f5e9bd45 0%,#9ac5a843 46%,#1d513c80 100%);transition:opacity .65s ease}
.journey.is-veiled .travel-veil{opacity:.55}
.journey.is-veiled .scene{opacity:0!important;transition:opacity .3s ease}
.poppy-actor{transition:left .5s,right .5s,bottom .5s,width .5s,height .5s,transform .42s,opacity .35s ease}
.journey.is-veiled .poppy-actor{opacity:0}
.journey[data-step="0"].is-walking .poppy-actor,.journey[data-step="5"].is-walking .poppy-actor{animation:poppy-enter-trail-smooth 1.55s cubic-bezier(.37,.03,.44,.99) both}
.journey[data-step="1"].is-walking .poppy-actor,.journey[data-step="2"].is-walking .poppy-actor,.journey[data-step="3"].is-walking .poppy-actor,.journey[data-step="4"].is-walking .poppy-actor{animation:poppy-forest-step-smooth 1.55s cubic-bezier(.37,.03,.44,.99) both}
@keyframes poppy-enter-trail-smooth{0%{transform:translateX(0) scale(1)}50%{transform:translateX(-3.5vw) scale(.88)}100%{transform:translateX(-7vw) scale(.78)}}
@keyframes poppy-forest-step-smooth{0%{transform:translateX(0) scale(1)}50%{transform:translateX(16px) scale(.93)}100%{transform:translateX(32px) scale(.87)}}
.daily-visual img.is-walk-art{width:min(88%,300px);height:auto;aspect-ratio:1;object-fit:cover;clip-path:inset(3.2% round 18%);filter:drop-shadow(0 18px 15px #45704b4e)}
@media(max-width:700px){.daily-visual img.is-walk-art{width:min(88%,190px);height:auto}}
.journey.is-walking .poppy-actor img{filter:none}
.poppy-motion-note{position:absolute;z-index:32;right:5.5%;bottom:96px;padding:5px 10px;border:1px solid #fff8e2a8;border-radius:999px;background:#163927bb;color:#fff7e6;font-size:.63rem;font-weight:800;letter-spacing:.05em;pointer-events:none}
.poppy-motion-note[hidden]{display:none}
@media(max-width:700px){.journey[data-step="0"] .poppy-actor,.journey[data-step="5"] .poppy-actor{right:2%;bottom:9%;width:40vw;height:22%}.poppy-motion-note{left:18px;right:auto;bottom:88px;font-size:.55rem}}

/* Poppy lives beside the content on wide screens and follows it in narrow ones. */
.scene--feature .scene-shell{position:relative}
.scene{scrollbar-width:none}
.scene::-webkit-scrollbar{display:none}
.poppy-trail{position:absolute;left:-140px;top:50%;bottom:auto;display:flex;align-items:flex-end;width:120px;height:150px;transform:translateY(-50%);pointer-events:none}
.poppy-trail span{display:none}
.journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{
  position:relative;left:auto;right:auto;bottom:auto;
  width:clamp(88px,9vw,120px);height:clamp(112px,11.4vw,150px);
  flex:none;pointer-events:auto;filter:none
}
.poppy-actor::before{
  position:absolute;z-index:0;left:11%;right:7%;bottom:2%;height:14%;
  border-radius:50%;background:#071b10ba;filter:blur(9px);content:"";pointer-events:none
}
.poppy-actor img{position:relative;z-index:1}
.journey[data-step="1"] .poppy-actor img,.journey[data-step="2"] .poppy-actor img,.journey[data-step="3"] .poppy-actor img,.journey[data-step="4"] .poppy-actor img{
  filter:saturate(.83) brightness(.9) drop-shadow(0 7px 5px #071e12a1)
}
.journey[data-step="1"] .poppy-actor::after,.journey[data-step="2"] .poppy-actor::after,.journey[data-step="3"] .poppy-actor::after,.journey[data-step="4"] .poppy-actor::after{
  position:absolute;z-index:2;left:8%;right:3%;bottom:0;height:17%;
  border-radius:50%;background:radial-gradient(ellipse at 50% 100%,#153b27a3 0%,transparent 76%);filter:blur(4px);content:"";pointer-events:none
}
@media(min-width:701px){.scene--feature .scene-shell{width:min(1150px,calc(100% - 130px));margin-left:130px}}
@media(max-width:700px){
  .poppy-trail{position:relative;left:auto;top:auto;bottom:auto;align-items:flex-end;gap:13px;width:100%;height:69px;margin-top:6px;padding-left:4px;transform:none}
  .poppy-trail span{display:block;padding-bottom:16px;color:#f8e7c4bd;font-size:.63rem;letter-spacing:.05em}
  .journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{
    width:54px;height:68px
  }
  .social-photo{height:185px}
  .character-art{height:218px}
  .character-art img{height:218px}
  .social-story>p{font-size:1.35rem;line-height:1.4}
  .journey[data-step="1"] .poppy-speech,.journey[data-step="2"] .poppy-speech,.journey[data-step="3"] .poppy-speech,.journey[data-step="4"] .poppy-speech{
    left:78px;bottom:93px;max-width:min(215px,calc(100vw - 108px))
  }
}
@media(max-width:700px) and (max-height:760px){
  .chapter-controls{left:6px;right:6px;bottom:0;height:78px;padding:12px 12px 13px;border-top:0;border-radius:0 0 19px 19px;background:linear-gradient(0deg,#0a2419fa 0%,#0a2419f2 72%,#0a241900 100%)}
}
@media(max-width:360px){.character-art,.character-art img{height:195px}}

/* Each interaction renders one complete approved Pupp frame sequence. */
.poppy-portrait{position:relative;display:block;width:100%;height:100%;transform-origin:50% 78%;will-change:transform}
.journey:is([data-step="0"],[data-step="5"]) .poppy-actor:not(.is-reacting) .poppy-portrait{animation:poppy-breathe 5.8s ease-in-out infinite}
@keyframes poppy-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-.35%) scale(1.002,1.007)}}
@media(prefers-reduced-motion:reduce){.poppy-actor .poppy-portrait,.poppy-actor.is-reacting .poppy-portrait{animation:none!important}}

/* The action image overrides the pointer-gaze canvas with no crossfade. */
.poppy-actor #poppy-image{transition:opacity .22s ease}
.poppy-actor .poppy-gaze-canvas{position:absolute;z-index:2;left:0;bottom:0;width:100%;height:auto;aspect-ratio:1;opacity:0;pointer-events:none;transition:opacity .22s ease}
.journey[data-gaze-ready="true"]:is([data-step="0"],[data-step="5"]) #poppy-image,
.journey.is-walking[data-entry-motion] #poppy-image{opacity:0}
.journey[data-gaze-ready="true"]:is([data-step="0"],[data-step="5"]) .poppy-gaze-canvas{opacity:1}
.journey[data-gaze-ready="true"] .poppy-actor[data-layer="action"] #poppy-image{opacity:1;transition:none}
.journey:is([data-step="0"],[data-step="5"]) .poppy-actor{transform:translate3d(var(--follow-x,0px),var(--follow-y,0px),0) rotate(var(--follow-tilt,0deg));will-change:transform}
@media(min-width:701px){
  .journey[data-step="0"] .poppy-actor,.journey[data-step="5"] .poppy-actor{right:3%;bottom:11%;width:min(39vw,570px);height:min(75vh,650px)}
  .poppy-trail{position:fixed;left:clamp(45px,7vw,104px);top:auto;bottom:13vh;transform:none}
  .journey[data-step="1"] .poppy-speech,.journey[data-step="2"] .poppy-speech,.journey[data-step="3"] .poppy-speech,.journey[data-step="4"] .poppy-speech{left:2.2%;right:auto;bottom:32%;max-width:174px}
  .journey[data-step="1"] .poppy-motion-note,.journey[data-step="2"] .poppy-motion-note,.journey[data-step="3"] .poppy-motion-note,.journey[data-step="4"] .poppy-motion-note{left:2.2%;right:auto;bottom:11%}
}

/* Three light rings spread from the exact place a visitor touches the forest. */
.forest-ripple{position:absolute;z-index:40;width:0;height:0;pointer-events:none;mix-blend-mode:screen}
.forest-ripple i{position:absolute;left:0;top:0;width:76px;height:76px;border:1.3px solid #d7f5e3a8;border-radius:50%;background:transparent;box-shadow:0 0 12px #b2e7d34d,inset 0 0 8px #b2e7d324;opacity:0;transform:translate(-50%,-50%) scale(.18);animation:water-ring 1.3s cubic-bezier(.15,.6,.25,1) both}
.forest-ripple i:nth-of-type(2){animation-delay:.15s}
.forest-ripple i:nth-of-type(3){animation-delay:.3s}
@keyframes water-ring{12%{opacity:.55}58%{opacity:.3}100%{opacity:0;transform:translate(-50%,-50%) scale(4.4);filter:blur(1.6px)}}
@media(max-width:700px){.forest-ripple i{width:60px;height:60px}}
@media(prefers-reduced-motion:reduce){.poppy-gaze-canvas,.forest-ripple{display:none!important}.journey .poppy-actor #poppy-image{opacity:1!important}}

/* Forest edge: living background, parted foliage, then a forward camera move. */
.forest-backdrop video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;opacity:0}
.forest-ambient-video{opacity:.88;transition:opacity .8s ease}
.journey.is-traveling .forest-ambient-video{opacity:0}
.forest-travel-video{transform:scale(1.02);transform-origin:54% 61%;transition:opacity .85s ease,transform 4.4s cubic-bezier(.19,.51,.29,1)}
.journey.is-traveling[data-travel-video="true"] .forest-travel-video{opacity:1;transform:scale(1.2)}
.forest-shade{z-index:2}.forest-lights{z-index:3}
main{z-index:5}
.forest-foreground{position:absolute;z-index:4;inset:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity .7s ease}
.journey[data-step="0"] .forest-foreground{opacity:.94}
.forest-foreground span{position:absolute;inset:0;background:url("assets/forest-foreground-v21-v41.webp") center/cover no-repeat;filter:saturate(.78) brightness(.72) drop-shadow(0 15px 20px #071b0f9c);will-change:transform;transition:transform 2s cubic-bezier(.19,.68,.29,1)}
.forest-foreground--left{clip-path:inset(0 50% 0 0)}
.forest-foreground--right{clip-path:inset(0 0 0 50%)}
.journey.is-traveling .forest-foreground{z-index:22;opacity:1}
.journey.is-traveling .forest-foreground--left{transform:translate3d(-43vw,1vh,0) rotate(-6deg) scale(1.08)}
.journey.is-traveling .forest-foreground--right{transform:translate3d(43vw,1vh,0) rotate(6deg) scale(1.08)}
.journey.is-traveling .scene{opacity:0!important;transform:translateY(18px)}
.journey.is-traveling .poppy-actor,.journey.is-traveling .poppy-speech{opacity:0;pointer-events:none}
.journey.is-traveling .site-header{opacity:.18;transition:opacity .7s ease}
.site-header{transition:opacity .7s ease}

/* The path marker is a wide touch target with a small lantern-like glint. */
.forest-gate{position:absolute;z-index:32;right:calc(3% + min(39vw,570px) + 44px);top:62%;width:160px;height:130px;padding:0;border:0;background:transparent;color:#fff7df;cursor:pointer;touch-action:manipulation}
.forest-gate__glow{position:absolute;left:50%;top:34%;width:16px;height:16px;border-radius:50%;background:#fff4c7;box-shadow:0 0 8px 3px #ffedbc,0 0 34px 14px #ffc86c94,0 0 84px 23px #e1eea75e;transform:translate(-50%,-50%);animation:forest-beacon 2.8s ease-in-out infinite}
.forest-gate__glow:before,.forest-gate__glow:after{position:absolute;left:50%;top:50%;content:"";background:linear-gradient(90deg,transparent,#fff6d4,transparent);transform:translate(-50%,-50%)}
.forest-gate__glow:before{width:86px;height:2px}.forest-gate__glow:after{width:2px;height:86px;background:linear-gradient(transparent,#fff6d4,transparent)}
.forest-gate__label{position:absolute;left:0;right:0;bottom:14px;color:#fff9e9;font-size:.78rem;font-weight:800;letter-spacing:.16em;text-align:center;text-shadow:0 2px 9px #05160f}
.forest-gate__label b{margin-left:5px;font-size:1.05rem;font-weight:400}
.forest-gate:hover .forest-gate__glow,.forest-gate:focus-visible .forest-gate__glow{box-shadow:0 0 9px 5px #fff1c1,0 0 44px 20px #ffd681bf,0 0 104px 28px #e1eea77d}
.forest-gate:focus-visible{outline:2px solid #ffe8a4;outline-offset:1px;border-radius:50%}
@keyframes forest-beacon{0%,100%{opacity:.72;scale:.83}50%{opacity:1;scale:1.12}}
.journey[data-step="0"] #step-next{display:none}
.next-button,.scene--ending .path-button{position:relative;min-width:165px;padding:0 9px 0 34px;border:0;background:transparent!important;color:#fff7dc;box-shadow:none;gap:13px;transition:color .2s ease,transform .25s ease}
.next-button:before,.scene--ending .path-button:before{position:absolute;left:8px;top:50%;width:11px;height:11px;border-radius:50%;background:#ffe6a4;box-shadow:0 0 10px 3px #ffe3a992,0 0 28px 10px #fbd08152;content:"";transform:translateY(-50%);animation:forest-beacon 2.8s ease-in-out infinite}
.next-button:hover,.scene--ending .path-button:hover{color:#ffe3aa;transform:translateX(3px);background:transparent}
.next-button:disabled{opacity:.4}
@media(max-width:700px){.forest-gate{left:5%;right:auto;top:auto;bottom:14%;width:165px;height:121px}.forest-gate__label{bottom:4px;font-size:.68rem}.next-button{min-width:124px;padding-left:25px;font-size:.67rem}.next-button:before{left:4px}}
@media(prefers-reduced-motion:reduce){.forest-backdrop video{display:none!important}.forest-foreground span,.forest-gate__glow{transition:none!important;animation:none!important}}

/* Keep the opening sentence whole and give the guide its own space on small screens. */
.scene--entry h1{font-size:clamp(4rem,6.8vw,6.2rem)}
@media(max-width:900px){.scene--entry h1{font-size:clamp(3rem,7.2vw,5rem)}}
@media(max-width:700px){
  .scene--entry h1{font-size:clamp(2.65rem,10.9vw,3.2rem);line-height:1.17}
  .journey[data-step="0"] .poppy-actor{right:3%;bottom:9%;width:31vw;height:18%}
  .forest-gate{bottom:14%}
}

/* Final forest signpost: the real app entry stays legible without a fake QR code. */
.ending-copy{width:min(740px,59%)}
.ending-copy h2{font-size:clamp(3.5rem,5.6vw,6.2rem)}
.ending-copy>p{max-width:570px}
.find-petit{display:grid;gap:6px;width:max-content;max-width:100%;margin:25px 0 15px;padding:10px 24px;border-left:2px solid #ffd69d;background:linear-gradient(90deg,#143824a8,#14382400 84%);text-shadow:0 2px 13px #061c12}
.find-petit__kicker{color:#ffdbab;font-size:.76rem;font-weight:850;letter-spacing:.13em}
.find-petit strong{color:#fffaf0;font-family:"Songti SC","Noto Serif CJK SC",serif;font-size:clamp(1.4rem,2.15vw,2.1rem);font-weight:600;line-height:1.35}
.find-petit__detail{color:#f2ecd7d6;font-size:.82rem;line-height:1.5}
.platform-soon{display:flex;align-items:center;gap:10px!important;margin:0 0 13px!important;color:#e7e9d8c9!important;font-size:.82rem!important}
.platform-soon span+span:before{margin-right:10px;content:"/";color:#fff7dd78}
.platform-soon b{margin-left:7px;padding:3px 10px;border:1px solid #ffdbab80;border-radius:99px;color:#ffdaaa;font-size:.73rem;white-space:nowrap}
.forest-refraction{position:absolute;z-index:4;inset:0;pointer-events:none;contain:strict}
.site-legal{position:absolute;z-index:35;right:10px;bottom:1px;left:10px;display:flex;align-items:center;justify-content:center;gap:7px;min-height:20px;color:#f6efdaa8;font-size:10px;line-height:1.2;text-align:center;text-shadow:0 1px 4px #07190f}
.site-legal a{color:inherit;text-decoration:underline;text-decoration-color:#f6efda7a;text-underline-offset:2px}
.site-legal a:hover,.site-legal a:focus-visible{color:#fff4d7;text-decoration:underline}
@media(max-width:700px){.site-legal{bottom:0;gap:5px;font-size:9px}}
@media(max-width:700px){
  .scene--ending{align-items:flex-start;padding-top:117px}
  .ending-copy{width:100%;margin:0 0 150px}
  .ending-copy h2{font-size:clamp(2.35rem,9vw,3.2rem);line-height:1.2}
  .ending-copy>p{margin:15px 0;font-size:.79rem}
  .find-petit{gap:5px;margin:16px 0 10px;padding:8px 12px}
  .find-petit__kicker{font-size:.62rem}
  .find-petit strong{font-size:1.12rem}
  .find-petit__detail{font-size:.69rem}
  .platform-soon{gap:5px!important;margin:0 0 7px!important;font-size:.7rem!important}
  .platform-soon span+span:before{margin-right:5px}
  .platform-soon b{margin-left:3px;font-size:.63rem}
  .scene--ending .path-button{font-size:.75rem}
}

/* A firefly marks the next clearing instead of fixing every action to the footer. */
.chapter-controls .trail-progress{margin-right:122px}
.journey .next-button{position:absolute;z-index:29;right:5%;top:23%;min-width:178px;min-height:58px;padding:0 8px 0 42px;color:#fff9e7;text-shadow:0 2px 11px #071c10;animation:firefly-guide 4.8s ease-in-out infinite alternate}
.journey[data-step="2"] .next-button{top:29%;right:6%}
.journey[data-step="3"] .next-button{top:22%;right:5%}
.journey[data-step="4"] .next-button{top:30%;right:7%}
.journey .next-button::before{left:13px;width:13px;height:13px;box-shadow:0 0 10px 5px #ffe9ab,0 0 42px 18px #fbd4818c,0 0 85px 26px #c9f2a24d}
.journey .next-button::after{position:absolute;left:-28px;top:50%;width:32px;height:1px;background:linear-gradient(90deg,transparent,#ffe5ae9c);content:"";transform:translateY(-50%)}
@keyframes firefly-guide{from{transform:translateY(-5px)}to{transform:translateY(6px)}}
.journey .next-button:hover{animation-play-state:paused;transform:translateY(-2px)}
@media(max-width:700px){
  .chapter-controls .trail-progress{margin-right:65px}
  .journey .next-button{top:auto!important;right:4%!important;bottom:73px;min-width:127px;min-height:42px;padding-left:29px;font-size:.7rem}
  .journey .next-button::before{left:3px;width:10px;height:10px}
  .journey .next-button::after{display:none}
}
@media(prefers-reduced-motion:reduce){.journey .next-button{animation:none}}

/* The camera advances with a restrained walking rhythm rather than a flat zoom. */
.journey.is-traveling[data-travel-video="true"] .forest-travel-video{animation:forest-walk-in 3.6s ease-in-out both}
@keyframes forest-walk-in{
  0%{transform:translate3d(0,0,0) scale(1.025)}
  25%{transform:translate3d(-.25vw,-.35vh,0) scale(1.065)}
  50%{transform:translate3d(.18vw,.2vh,0) scale(1.11)}
  75%{transform:translate3d(-.2vw,-.3vh,0) scale(1.155)}
  100%{transform:translate3d(0,0,0) scale(1.19)}
}
@media(prefers-reduced-motion:reduce){.journey.is-traveling .forest-travel-video{animation:none}}

/* The key-pose clips replace the resting portrait as a single layer. Their
   opening and closing frames use the exact same centered Poppy artwork. */
.poppy-portrait>[hidden]{display:none!important}

/* The idle portrait and its gaze canvas are entirely absent during actions. */
.poppy-actor #poppy-rest-portrait[hidden],.poppy-actor #poppy-action-image[hidden]{display:none!important}
.poppy-actor #poppy-action-image{position:absolute;z-index:1;inset:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;opacity:1;filter:none!important;transition:none!important}
.poppy-actor[data-reaction="wave"] #poppy-action-image{transform-origin:50% 78%;animation:pupp-clean-greeting 1.8s ease-in-out both}
@keyframes pupp-clean-greeting{0%{opacity:0;transform:translateY(5px) rotate(-1deg) scale(.985)}12%{opacity:1}32%{transform:translateY(-4px) rotate(1.8deg) scale(1)}58%{transform:translateY(-6px) rotate(-1.5deg) scale(1)}82%{opacity:1;transform:translateY(-3px) rotate(.8deg) scale(1)}100%{opacity:0;transform:translateY(2px) rotate(0) scale(.992)}}
.journey[data-poppy-action="wave"] .poppy-speech{visibility:hidden}
.poppy-actor[data-reaction="tilt"] #poppy-action-image{transform-origin:50% 78%;animation:pupp-curious-tilt 2s ease-in-out both}
@keyframes pupp-curious-tilt{0%,16%,100%{transform:rotate(0) translateY(0)}42%,73%{transform:rotate(3.5deg) translateY(-2px)}}
@media(prefers-reduced-motion:reduce){.poppy-actor[data-reaction="wave"] #poppy-action-image,.poppy-actor[data-reaction="tilt"] #poppy-action-image{animation:none}}
.poppy-actor[data-layer="action"]{filter:none!important}
.poppy-actor[data-layer="action"]::before,.poppy-actor[data-layer="action"]::after{display:none!important;content:none!important}

/* The six waypoints stay anchored to the viewport center, independent of
   the back link, floating firefly and changing chapter labels. */
.chapter-controls .trail-progress{position:absolute;left:50%;top:50%;flex:none;width:max-content;margin:0!important;transform:translate(-50%,-50%)}
.journey.is-navigation-pending .trail-progress{visibility:hidden}

/* Every forward guide uses the same small forest light, including on phones.
   The crossed rays are CSS, so no platform can replace them with an emoji. */
.journey .next-button{min-width:190px;padding-left:62px;white-space:nowrap}
.journey .next-button::after{display:block;left:-14px;top:50%;width:66px;height:66px;background:linear-gradient(90deg,transparent,#fff7dd,transparent) center/64px 1px no-repeat,linear-gradient(0deg,transparent,#fff7dd,transparent) center/1px 64px no-repeat;opacity:.88;pointer-events:none;transform:translateY(-50%)}
@media(max-width:700px){
  .journey .next-button{min-width:148px;padding-left:42px}
  .journey .next-button::after{display:block;left:-14px;width:44px;height:44px;background-size:42px 1px,1px 42px}
}

/* A failed transition leaves the previous scene intact and explains retry. */
.journey-notice{position:absolute;z-index:60;top:101px;left:50%;width:max-content;max-width:min(440px,calc(100% - 32px));padding:12px 18px;border:1px solid #e9d49c;border-radius:999px;background:#fff9e8;color:#244634;box-shadow:0 12px 36px #081d1373;font-size:.83rem;font-weight:750;text-align:center;pointer-events:none;transform:translateX(-50%)}
.journey-notice[hidden]{display:none}
@media(max-width:700px){.journey-notice{top:80px;left:auto;right:14px;max-width:min(228px,calc(100% - 150px));font-size:.72rem;padding:10px 14px;transform:none}}

/* Keep every feature inside the area above the navigation rule. The scene
   itself scrolls on short screens, so cards never paint over the controls. */
.scene--feature{top:98px;bottom:105px;display:block;padding:clamp(12px,3.6vh,48px) clamp(30px,5.4vw,92px) 18px;overscroll-behavior-y:contain}
.scene--feature .scene-shell{margin-top:0!important;margin-bottom:0!important}
.scene--feature .scene-intro{margin-bottom:clamp(14px,2vh,26px)}
.forest-ambient-video{opacity:1;object-position:center center}
@media(max-width:700px){
  .scene--feature{top:72px;bottom:91px;padding:12px 18px 12px}
  .scene--feature .scene-shell{width:100%;margin-left:0!important;margin-right:0!important}
  .scene--feature .scene-intro{margin-bottom:13px}
  .scene--feature h2{font-size:clamp(2rem,8vw,2.75rem);line-height:1.13}
  .scene--feature .scene-intro>p{font-size:.77rem;line-height:1.56}
  .scene--feature .feature-board{border-radius:18px}
  .scene--feature .character-art,.scene--feature .character-art img{height:clamp(142px,22svh,194px)}
  .scene--feature .social-photo{height:clamp(126px,20svh,176px)}
  .scene--feature .taotai-avatar{height:clamp(112px,18svh,148px)}
  .scene--feature .taotai-avatar img{width:112px;height:112px;max-height:112px}
  .scene--feature .feature-detail,.scene--feature .social-story,.scene--feature .taotai-chat{padding:13px 16px 15px}
  .scene--feature .feature-board h3{font-size:1.36rem;line-height:1.25}
  .scene--feature .feature-board p{line-height:1.48}
  .scene--feature .poppy-trail{height:74px;margin-top:4px}
  .journey .next-button{top:auto!important;right:7px!important;bottom:18px!important;z-index:36;min-width:85px;min-height:42px;padding:0 3px 0 20px;font-size:.55rem;text-align:right;animation:none}
  .journey .next-button::before{left:8px;width:10px;height:10px}
  .journey .next-button::after{display:block;left:-12px;width:44px;height:44px;background-size:42px 1px,1px 42px}
  .chapter-controls .trail-progress{margin-right:0!important}
}
@media(max-width:700px) and (max-height:760px){
  .scene--feature{bottom:82px;padding-top:8px}
  .scene--feature .scene-intro{margin-bottom:9px}
  .scene--feature h2{font-size:clamp(1.85rem,7.2vw,2.35rem)}
  .scene--feature .character-art,.scene--feature .character-art img{height:138px}
  .scene--feature .social-photo{height:122px}
  .scene--feature .poppy-trail{height:55px}
}
@media(max-width:360px){
  .scene--feature{padding-top:6px;scrollbar-width:thin;scrollbar-color:#f6d79a88 transparent}
  .scene--feature h2{font-size:1.72rem}
  .scene--feature .scene-intro>p{font-size:.71rem;line-height:1.42}
  .scene--feature .scene-intro{margin-bottom:7px}
  .scene--feature .character-art,.scene--feature .character-art img{height:110px}
  .scene--feature .social-photo{height:108px}
  .scene--feature .feature-detail,.scene--feature .social-story,.scene--feature .taotai-chat{padding:9px 12px 10px}
  .scene--feature .mini-step-list{margin-top:7px}
  .scene--feature .feature-board h3{font-size:1.18rem}
  .scene--feature .poppy-trail{height:42px;margin-top:1px}
  .journey[data-step="1"] .poppy-actor,.journey[data-step="2"] .poppy-actor,.journey[data-step="3"] .poppy-actor,.journey[data-step="4"] .poppy-actor{width:32px;height:40px}
  .scene--feature[data-scene="2"] .social-photo{height:82px}
  .scene--feature[data-scene="2"] .social-photo>span{left:8px;bottom:5px;padding:4px 6px;font-size:.5rem}
  .scene--feature[data-scene="2"] .social-story>p{margin:5px 0;font-size:1.12rem;line-height:1.25}
  .scene--feature[data-scene="2"] .social-portraits{margin-top:7px;padding-top:6px;gap:5px}
  .scene--feature[data-scene="2"] .social-portraits img{width:26px;height:26px}
  .scene--feature[data-scene="2"] .like-button{padding:5px 9px;font-size:.7rem}
  .scene--feature[data-scene="3"] .taotai-avatar{height:89px}
  .scene--feature[data-scene="3"] .taotai-avatar img{width:76px;height:76px;max-height:76px;border-width:4px}
  .scene--feature[data-scene="3"] .taotai-avatar span{padding:4px 7px;font-size:.52rem}
  .scene--feature[data-scene="3"] .question{margin:5px 0;padding:6px 8px;font-size:.7rem}
  .scene--feature[data-scene="3"] .answer{padding:7px 9px}
  .scene--feature[data-scene="3"] .answer p{margin-top:4px;font-size:.71rem;line-height:1.35}
  .scene--feature[data-scene="3"] .taotai-chat>small{margin-top:4px}
}


/* Legal reading view: the same forest, with a calm paper surface for long text. */
html[data-legal-kind] body{background:#0b2619;color:#234331}
html[data-legal-kind],html[data-legal-kind] body{height:auto;overflow-x:hidden;overflow-y:auto}
html[data-legal-kind] .journey{display:none}
.legal-view[hidden]{display:none!important}
.legal-view{min-height:100svh;background:linear-gradient(180deg,#0b2619a3 0,#102f20ee 355px,#a8b89b 530px,#e9e8d7 680px,#e9e8d7 100%),url("assets/hero-forest-v40.webp") center top/auto 720px no-repeat;color:#244331}
.legal-topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1220px;margin:auto;padding:24px 32px;color:#fff8e9}
.legal-topbar .brand{color:inherit;text-decoration:none}
.legal-topbar .brand img{width:43px;height:43px}
.legal-back{display:inline-flex;align-items:center;gap:8px;padding:9px 15px;border:1px solid #fff9e989;border-radius:999px;color:#fff8e9;text-decoration:none;font-size:.82rem;font-weight:750;backdrop-filter:blur(9px);background:#153b29b3}
.legal-back:hover,.legal-back:focus-visible{background:#f7e9cc;color:#21402e}
.legal-hero{max-width:1160px;margin:22px auto 56px;padding:35px 32px;color:#fffaf0}
.legal-eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 18px;font-size:.73rem;font-weight:850;letter-spacing:.16em;color:#f1d7aa}
.legal-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:#f4cb83;box-shadow:0 0 18px #ffdb8a}
.legal-hero h1{margin:0;font-family:"Songti SC","STSong",serif;font-size:clamp(3.7rem,7vw,7rem);font-weight:600;letter-spacing:-.06em;line-height:1.1;text-wrap:balance}
.legal-hero .legal-subtitle{max-width:680px;margin:20px 0 0;font-size:1.04rem;line-height:1.8;color:#f2e9d8}
.legal-meta{display:flex;flex-wrap:wrap;gap:10px 22px;margin-top:28px;font-size:.79rem;color:#f6dfb5}
.legal-reading{position:relative;display:grid;grid-template-columns:minmax(210px,250px) minmax(0,1fr);gap:clamp(28px,4.5vw,64px);max-width:1160px;margin:0 auto;padding:84px clamp(26px,5vw,74px) 90px;border:1px solid #d5c7aa;border-radius:5px 5px 0 0;background:radial-gradient(circle at 90% 4%,#e9d7b566,transparent 30%),repeating-linear-gradient(180deg,transparent 0 34px,#3e664b06 35px 36px),#fbf7eb;box-shadow:0 -14px 90px #071e1366,0 10px 28px #193a2030}
.legal-reading::before{content:"";position:absolute;left:50%;top:-22px;width:44px;height:44px;transform:translateX(-50%) rotate(45deg);background:#f1e5cf;border-left:1px solid #d5c7aa;border-top:1px solid #d5c7aa;box-shadow:-4px -4px 22px #0d281b2b}
.legal-reading::after{content:"P";position:absolute;top:-31px;right:clamp(26px,5vw,74px);display:grid;place-items:center;width:58px;height:58px;border:2px solid #e9c99c;border-radius:50%;background:radial-gradient(circle at 38% 27%,#dba472,#a86539 75%);box-shadow:0 6px 18px #3421145e,inset 0 0 0 4px #ba774d;color:#fff3dd;font-family:Georgia,serif;font-size:1.8rem;font-style:italic}
.legal-toc{position:sticky;top:36px;align-self:start;border-right:1px solid #d8cfb9;padding-right:26px}
.legal-toc-title{display:block;margin:0 0 17px;font-size:.72rem;letter-spacing:.14em;font-weight:850;color:#8e784f}
.legal-toc a{display:block;padding:10px 5px;text-decoration:none;color:#44634c;font-size:.87rem;line-height:1.5}
.legal-toc a:hover,.legal-toc a:focus-visible{color:#a66831;text-decoration:underline;text-underline-offset:5px}
.legal-document{min-width:0;border-left:1px solid #dccaab;padding-left:clamp(24px,3vw,42px);font-size:1rem;line-height:1.93;color:#304d39}
.letter-letterhead{display:flex;justify-content:space-between;gap:10px;margin:0 0 43px;padding-bottom:15px;border-bottom:1px solid #cdbb9d;color:#96714e;font-family:Georgia,"Songti SC",serif;font-size:.72rem;font-weight:700;letter-spacing:.16em}
.letter-salutation{margin:0 0 15px!important;color:#31513a;font-family:"Songti SC","STSong",serif;font-size:1.32rem;font-weight:650}
.legal-document .legal-intro{margin:0 0 38px;padding:0 0 30px;border-bottom:1px solid #cfddcb;color:#385840;font-size:1.1rem;line-height:1.85}
.legal-document section{padding:0 0 30px;margin:0 0 30px;border-bottom:1px solid #dce4d8;scroll-margin-top:24px}
.legal-document section:last-of-type{margin-bottom:0;border-bottom:0}
.legal-document h2{display:flex;align-items:baseline;gap:15px;margin:0 0 12px;font-family:"Songti SC","STSong",serif;font-weight:650;font-size:clamp(1.65rem,2.7vw,2.15rem);letter-spacing:-.03em;color:#1f402d}
.legal-document h2::before{content:"";display:block;flex:none;width:5px;height:20px;border-radius:10px;background:#d99d57;transform:rotate(16deg)}
.legal-document p{margin:0;overflow-wrap:anywhere}
.legal-canonical{margin:38px 0 0;padding:23px 27px;border-left:3px solid #d59d5e;background:#eef2e5;font-size:.83rem;line-height:1.75;color:#536a56}
.legal-canonical a{color:#205a36;text-underline-offset:3px;font-weight:800}
.letter-signoff{display:flex;flex-direction:column;align-items:flex-end;gap:6px;margin:48px 0 0!important;color:#8b785c;font-family:"Songti SC","STSong",serif;font-size:.95rem}
.letter-signoff strong{color:#31523d;font-family:Georgia,"Songti SC",serif;font-size:1.27rem;font-weight:700}
.legal-bottom{max-width:1160px;margin:auto;padding:22px 30px 35px;background:#fbf7eb;border-top:1px solid #d8ccaf;color:#6a7b67;font-size:.75rem;text-align:center}
.legal-bottom a{color:#315b3d;text-decoration:none;font-weight:780}
.legal-bottom a:hover,.legal-bottom a:focus-visible{text-decoration:underline;text-underline-offset:4px}
.legal-noscript{position:fixed;z-index:99;inset:auto 10px 10px;padding:12px;background:#fffaf0;color:#21412d}
.legal-noscript a{margin:0 7px;color:#265d3d}
@media(max-width:760px){
  .legal-view{background-size:auto 620px}
  .legal-topbar{padding:18px 20px}
  .legal-topbar .brand{font-size:1rem}
  .legal-topbar .brand img{width:36px;height:36px}
  .legal-back{font-size:.7rem;padding:7px 10px}
  .legal-hero{margin:12px auto 50px;padding:28px 22px 20px}
  .legal-hero h1{font-size:clamp(3.1rem,12vw,4.8rem)}
  .legal-hero .legal-subtitle{font-size:.91rem}
  .legal-meta{margin-top:18px;font-size:.71rem}
  .legal-reading{display:block;margin:0 10px;padding:55px 20px 55px;border-radius:4px 4px 0 0}
  .legal-reading::after{right:28px;width:48px;height:48px;top:-26px;font-size:1.4rem}
  .legal-toc{position:static;display:flex;align-items:center;gap:6px;overflow:auto;border-right:0;border-bottom:1px solid #d8dfd3;padding:0 0 13px;margin-bottom:26px;scrollbar-width:thin}
  .legal-toc-title{flex:none;margin:0 9px 0 0;white-space:nowrap;font-size:.66rem}
  .legal-toc a{flex:none;white-space:nowrap;padding:7px 10px;border-radius:99px;background:#edf1e7;font-size:.72rem}
  .legal-document{border-left:0;padding-left:0;font-size:.9rem;line-height:1.85}
  .letter-letterhead{margin-bottom:28px;font-size:.59rem;letter-spacing:.08em}
  .letter-salutation{font-size:1.17rem}
  .legal-document .legal-intro{font-size:.96rem;margin-bottom:29px;padding-bottom:24px}
  .legal-document section{margin-bottom:24px;padding-bottom:24px}
  .legal-document h2{font-size:1.58rem}
  .legal-canonical{padding:18px 20px}
  .legal-bottom{margin:0 10px}
}
@media(prefers-reduced-motion:reduce){.legal-back{backdrop-filter:none}}

/* Pupp's small trail leads the eye from the introduction toward the forest light. */
.entry-trail{display:none}
.entry-wildlife{display:none}
@media(max-width:700px){
  .scene--entry{display:block;padding-top:clamp(124px,18svh,168px);padding-bottom:130px}
  .scene--entry .entry-copy{width:100%;padding-bottom:0}
  .scene--entry h1{margin-top:14px;font-size:clamp(2.7rem,10.4vw,3.4rem);line-height:1.13}
  .scene--entry .scene-copy>p{max-width:28em;margin:17px 0 0;font-size:.83rem;line-height:1.62}
  .scene--entry .micro-note{margin-top:14px}
  .entry-trail{display:block;width:min(240px,66vw);height:93px;margin:13px 0 0 0;overflow:visible;color:#f8dbab;filter:drop-shadow(0 0 5px #f8cf9566);pointer-events:none}
  .entry-trail__line{fill:none;stroke:#ffe1b680;stroke-width:1.4;stroke-linecap:round;stroke-dasharray:1 7}
  .entry-trail__paw{opacity:.66;animation:trail-paw-glow 5.4s ease-in-out infinite}
  .entry-trail__paw--two{animation-delay:1.1s}
  .entry-trail__paw--three{animation-delay:2.2s}
  .entry-trail__light{fill:#fff0c8;filter:drop-shadow(0 0 7px #fff1c9)}
  .entry-wildlife{display:block;position:absolute;inset:0;z-index:1;pointer-events:none}
  .entry-wildlife__branch,.entry-wildlife__bird{position:absolute;right:-3%;width:min(37vw,145px);height:auto;filter:drop-shadow(0 7px 12px #081d1255)}
  .entry-wildlife__branch{top:45%}
  .entry-wildlife__bird{top:calc(45% - 13px)}
  .entry-wildlife__flight{position:absolute;inset:auto;object-fit:fill;filter:drop-shadow(0 7px 12px #081d1255)}
  .entry-wildlife__bird[hidden],.entry-wildlife__flight[hidden]{display:none!important}
  .entry-wildlife__firefly{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff4cd;box-shadow:0 0 8px 4px #f5d69891,0 0 20px 8px #f4d38935;opacity:.5;animation:entry-firefly-drift 8s ease-in-out infinite}
  .entry-wildlife__firefly--one{left:39%;top:58%}
  .entry-wildlife__firefly--two{left:54%;top:63%;opacity:.35;animation-delay:-3.2s;animation-duration:11s}
  .scene--entry .entry-orbit{display:none}
  .journey[data-step="0"] .poppy-actor{right:1%;bottom:10%;width:45vw;height:31%}
  .journey[data-step="0"] .poppy-speech{right:24%;bottom:37%;max-width:155px}
  .journey[data-step="0"] .forest-gate{left:5%;bottom:15%;width:148px;height:108px}
  .journey[data-step="0"] .forest-gate__label{bottom:5px}
}
@media(max-width:700px) and (max-height:730px){
  .scene--entry{padding-top:clamp(105px,16svh,125px)}
  .scene--entry h1{font-size:clamp(2.4rem,10vw,2.85rem)}
  .scene--entry .scene-copy>p{margin-top:12px;font-size:.76rem;line-height:1.5}
  .scene--entry .micro-note{margin-top:10px}
  .entry-trail{width:min(205px,65vw);height:94px;margin-top:7px}
  .journey[data-step="0"] .poppy-actor{right:1%;bottom:10%;width:40vw;height:27%}
  .journey[data-step="0"] .forest-gate{bottom:14%;height:95px}
}
@keyframes trail-paw-glow{0%,100%{opacity:.4}45%{opacity:.82}}
@keyframes entry-bird-perch{0%,100%{transform:rotate(0) translateY(0)}45%{transform:rotate(1.2deg) translateY(2px)}65%{transform:rotate(-.7deg) translateY(1px)}}
@keyframes entry-firefly-drift{0%,100%{transform:translate(0,0);opacity:.4}35%{transform:translate(6px,-9px);opacity:.65}70%{transform:translate(-4px,-4px);opacity:.45}}
@media(prefers-reduced-motion:reduce){.entry-trail__paw,.entry-wildlife__firefly{animation:none}.entry-trail__paw{opacity:.66}}
