/* 首页首屏幻灯片：文字在左上（手机在上面），插图铺满整个首屏、底边对齐，星仔站在插图左下。
   夜里是靛蓝的夜空、金色的光；白天是浅蓝的天、红墙金瓦。插图里的颜色都从这里和 theme.css 的 --sc- 变量来。 */
html[data-mode="night"]{--hs-ink:#F6F1E6;--hs-soft:color-mix(in oklab,#F6F1E6 80%,transparent);--hs-kick:#E8D8B0;--hs-gold-a:#FFEFB8;--hs-gold-b:#F5C55A;--hs-gold-c:#D99A2E;--hs-em-glow:rgba(245,190,90,.5);
  --hs-glow:#FFD27A;--hs-ray:#FFD98A;--hs-path:#FFD877;--hs-node:#FFF1C2;--hs-lab-bg:rgba(255,250,236,.94);--hs-lab-ink:#2A2550;--hs-pill:rgba(20,22,60,.55);--hs-pill-line:rgba(237,193,96,.55);
  --hs-ele:#A8AFCF;--hs-ele-d:#6A7199;--hs-bush:#2E5A4E;--hs-mtn:#232A5E;--hs-mtn-hi:#3A4385;--hs-tile:#F6ECD3;--hs-tile-side:#C9A867;--hs-tile-ink:#3B2A12;--hs-book:#2F5EA8;--hs-book-d:#1D3E7A;--hs-cloud-0:#4A4AA8;--hs-cloud-1:#2C2C74}
html[data-mode="day"]{--hs-ink:#16233F;--hs-soft:color-mix(in oklab,#16233F 82%,transparent);--hs-kick:#3E5070;--hs-gold-a:#E9A92A;--hs-gold-b:#C9840E;--hs-gold-c:#9A5E05;--hs-em-glow:rgba(255,215,120,.55);
  --hs-glow:#FFF1C4;--hs-ray:#FFF7DA;--hs-path:#F2B53C;--hs-node:#FFFBEA;--hs-lab-bg:rgba(255,253,246,.96);--hs-lab-ink:#3A2C10;--hs-pill:rgba(255,255,255,.55);--hs-pill-line:rgba(201,132,14,.45);
  --hs-ele:#B9C0CF;--hs-ele-d:#6E7789;--hs-bush:#4C8A4E;--hs-mtn:#9BB8CC;--hs-mtn-hi:#C4D8E6;--hs-tile:#FFF8E6;--hs-tile-side:#D9B56B;--hs-tile-ink:#3B2A12;--hs-book:#2F63B6;--hs-book-d:#1E4687;--hs-cloud-0:#FFFFFF;--hs-cloud-1:#FFFFFF}

.hs{position:relative;isolation:isolate;margin:0 calc(-1*var(--pad));min-height:clamp(620px,100vh,1000px);overflow:hidden;color:var(--hs-ink);touch-action:pan-y}
.hs-vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hs-svg{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;overflow:hidden;-webkit-mask-image:linear-gradient(#000 94%,transparent);mask-image:linear-gradient(#000 94%,transparent)}
@media (min-width:1500px){.hs-svg{-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(#000 94%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent),linear-gradient(#000 94%,transparent);mask-composite:intersect}}
.hs-s{opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s}
.hs-s.is-on{opacity:1;visibility:visible;transition:opacity .9s ease,visibility 0s}
.hs.is-offscreen *,.hs.is-offscreen *::before,.hs.is-offscreen *::after,.hs-s:not(.is-on) *{animation-play-state:paused!important}   /* 没在放的那几张不动，省电 */

/* —— 文字 —— */
.hs-copy{display:grid;max-width:min(800px,66%);padding:clamp(44px,8.500vh,96px) var(--pad) 0;pointer-events:none}
.hs-slide{position:relative;z-index:3;grid-area:1/1;align-self:start;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s .45s}
.hs-slide.is-on{opacity:1;visibility:visible;transition:opacity .5s ease .15s,visibility 0s;pointer-events:auto}
.hs-kicker{font:600 13px/1.6 var(--pf-sans);letter-spacing:.34em;color:var(--hs-kick)}
.hs-title{margin:10px 0 0;font:800 clamp(36px,4.200vw,62px)/1.16 var(--pf-serif);letter-spacing:.04em;text-wrap:balance;text-shadow:0 2px 24px color-mix(in oklab,var(--pf-bg) 70%,transparent)}
.hs-title span,.hs-title em{white-space:nowrap}
.hs-title em{font-style:normal;background:linear-gradient(180deg,var(--hs-gold-a),var(--hs-gold-b) 52%,var(--hs-gold-c));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;filter:drop-shadow(0 0 16px var(--hs-em-glow))}
.hs-title.split em{display:block}
.hs-sub{margin-top:12px;font-size:clamp(15px,1.300vw,18.500px);letter-spacing:.04em;color:var(--hs-soft)}
.hs-tags{display:inline-flex;flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:16px;padding:6px 18px;border-radius:999px;border:1px solid var(--hs-pill-line);background:var(--hs-pill);font-size:13.500px;letter-spacing:.08em}
.hs-tags i{font-style:normal;opacity:.6}
.hs-slide p{margin:0}
.hs-slide .hs-sub{margin-top:12px}.hs-slide .hs-tags{margin-top:16px}

/* —— 特效按钮：金色、扫光、呼吸的光环，鼠标放上去星星闪，点了迸出一把星 —— */
.hs-cta{position:relative;display:flex;width:max-content;margin-top:24px;border-radius:999px;color:#2A1A02;text-decoration:none;-webkit-tap-highlight-color:transparent;transition:transform .25s cubic-bezier(.3,1.4,.5,1)}
.hs-cta::before{content:"";position:absolute;inset:-9px;z-index:-1;border-radius:inherit;background:radial-gradient(closest-side,rgba(255,206,100,.62),rgba(255,206,100,0));opacity:.7}
.hs-cta-in{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 24px 0 30px;border-radius:inherit;background:linear-gradient(180deg,#FFEDB0,#F8C755 48%,#E4A232);font:800 17px var(--pf-sans);letter-spacing:.12em;box-shadow:0 0 0 1.500px rgba(255,240,190,.9) inset,0 -3px 0 rgba(160,96,10,.35) inset,0 14px 32px -12px rgba(232,160,40,.95)}
.hs-cta-in::after{content:"";position:absolute;top:-30%;bottom:-30%;left:-45%;width:34%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.75),transparent);transform:skewX(-18deg)}
.hs-cta svg{flex:none;transition:transform .25s ease}
.hs-cta:hover{transform:translateY(-2px) scale(1.03)}
.hs-cta:hover svg{transform:translateX(4px)}
.hs-cta:active{transform:scale(.97)}
.hs-cta:focus-visible{outline:3px solid var(--hs-gold-b);outline-offset:5px}
.hs-cta.go .hs-cta-in{filter:brightness(1.15)}
.hs-sp{position:absolute;width:14px;height:14px;background:#FFF6D0;clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);opacity:0;pointer-events:none}
.hs-sp:nth-of-type(1){left:-6px;top:-8px}.hs-sp:nth-of-type(2){right:14px;top:-12px;width:10px;height:10px}.hs-sp:nth-of-type(3){right:-8px;bottom:-6px;width:12px;height:12px}

/* —— 换张的按钮：三条会走满的进度条、暂停、左右 —— */
.hs-ctrl{position:absolute;z-index:3;right:var(--pad);bottom:22px;display:flex;align-items:center;gap:8px;padding:5px 6px;border-radius:999px;background:color-mix(in oklab,var(--pf-solid) 42%,transparent);pointer-events:auto}
.hs-bars{display:flex;gap:6px}
.hs-bar{position:relative;width:46px;height:28px;padding:0;border:0;background:none;cursor:pointer}
.hs-bar i{position:absolute;left:0;right:0;top:12px;height:4px;border-radius:2px;background:color-mix(in oklab,var(--hs-ink) 22%,transparent);overflow:hidden}
.hs-bar i::after{content:"";position:absolute;inset:0;transform:scaleX(0);transform-origin:0 50%;background:linear-gradient(90deg,var(--hs-gold-a),var(--hs-gold-b))}
.hs-bar[aria-current] i::after{transform:scaleX(1)}
.hs-arrow,.hs-play{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid color-mix(in oklab,var(--hs-ink) 22%,transparent);border-radius:50%;background:color-mix(in oklab,var(--pf-solid) 40%,transparent);color:var(--hs-ink);cursor:pointer;transition:background .2s ease,transform .2s ease}
.hs-arrow:hover,.hs-play:hover{background:color-mix(in oklab,var(--hs-gold-b) 30%,transparent);transform:scale(1.06)}
.hs-bar:focus-visible,.hs-arrow:focus-visible,.hs-play:focus-visible{outline:2px solid var(--hs-gold-b);outline-offset:2px;border-radius:8px}
.hs-play .pl{display:none}.hs-play[aria-pressed="true"] .pl{display:block}.hs-play[aria-pressed="true"] .pz{display:none}
.hs-down{position:absolute;z-index:3;left:50%;bottom:16px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:4px;padding:6px 14px;border-radius:999px;background:color-mix(in oklab,var(--pf-solid) 55%,transparent);color:var(--hs-ink);font-size:12.500px;letter-spacing:.12em;text-decoration:none}
.hs-down:focus-visible{outline:2px solid var(--hs-gold-b);outline-offset:2px}

/* —— 插图里的东西 —— */
.hs-cloud{fill:url(#hsCloud)}
#hsCloud .c0{stop-color:var(--hs-cloud-0);stop-opacity:.96}#hsCloud .c1{stop-color:var(--hs-cloud-1);stop-opacity:.78}#hsCloud .c2{stop-color:var(--hs-cloud-1);stop-opacity:0}
.hs-mtn{fill:var(--hs-mtn)}.hs-mtn-hi{fill:var(--hs-mtn-hi);opacity:.7}
.hs-swirl-glow{fill:none;stroke:var(--hs-path);stroke-width:22;stroke-linecap:round;opacity:.14}
.hs-swirl{fill:none;stroke:var(--hs-path);stroke-width:4;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.hs-road-glow{fill:none;stroke:var(--hs-path);stroke-width:30;stroke-linecap:round;opacity:.16}
.hs-road{fill:none;stroke:var(--hs-path);stroke-width:6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:0}
.hs-comet{fill:none;stroke:#FFFDF0;stroke-width:10;stroke-linecap:round;stroke-dasharray:.05 1;stroke-dashoffset:1.05;opacity:0}
.hs-node-halo{fill:url(#hsGlow);opacity:.8}
.hs-node-dot{fill:var(--hs-node);stroke:var(--hs-path);stroke-width:4}
.hs-lab rect{fill:var(--hs-lab-bg);stroke:color-mix(in oklab,var(--hs-path) 70%,transparent);stroke-width:2.500}
.hs-lab text{text-anchor:middle;fill:var(--hs-lab-ink);font-family:var(--pf-sans);font-weight:700;letter-spacing:.06em}
.hs-ele>*{fill:var(--hs-ele);stroke:var(--hs-ele-d);stroke-width:2.400}
.hs-ele .ear{fill:color-mix(in oklab,var(--hs-ele) 82%,#c48)}
.hs-ele .tr,.hs-ele .ln{fill:none;stroke:var(--hs-ele);stroke-width:9;stroke-linecap:round}
.hs-ele .ln{stroke:var(--hs-ele-d);stroke-width:3}
.hs-ele .eye{fill:#1E2236;stroke:none}.hs-ele .tusk{fill:none;stroke:#FFFDF2;stroke-width:4;stroke-linecap:round}
.hs-bush circle{fill:var(--hs-bush)}.hs-bush .fl{fill:#F4B54A}
.hs-door{fill:var(--sc-lamp)}
.hs-peak .m{fill:color-mix(in oklab,var(--hs-mtn) 70%,#6c7a9c);stroke:color-mix(in oklab,var(--hs-mtn) 60%,#000);stroke-width:2}
html[data-mode="day"] .hs-peak .m{fill:#7E9A6A;stroke:#55704A}
.hs-peak .s{fill:#FFFFFF}.hs-peak .pole{stroke:#6B4A2A;stroke-width:3;stroke-linecap:round}.hs-peak .fg{fill:#E2412E}
.hs-cal .pg{fill:#FFFDF6;stroke:#C9C2B0;stroke-width:2}.hs-cal .top{fill:#D9473A}.hs-cal .ring{fill:#6B5B4A}.hs-cal .grid{fill:#C9C2B0}
.hs-cal .ck{fill:none;stroke:#D9302A;stroke-width:5.500;stroke-linecap:round;stroke-linejoin:round}
.hs-pav-glow{fill:url(#hsGlow);opacity:.75}
.hs-arch{fill:color-mix(in oklab,var(--sc-wall) 55%,#000)}
.hs-arch-lit{fill:var(--hs-ray)}
.hs-gate-glow{fill:url(#hsGlow);opacity:.8}
.hs-doors rect{fill:color-mix(in oklab,var(--sc-wall) 70%,#000);stroke:color-mix(in oklab,var(--sc-wall) 50%,#000);stroke-width:2}
.hs-ray{fill:url(#hsRay);opacity:.5}
.hs-lit{fill:var(--sc-lamp-off)}
html[data-mode="night"] .hs-lit{fill:var(--sc-lamp)}
.hs-road3{fill:color-mix(in oklab,var(--sc-stone) 88%,var(--hs-ray))}
.hs-step{stroke:color-mix(in oklab,var(--sc-stone) 70%,#000);stroke-width:2;opacity:.55}
.hs-tile{fill:var(--hs-tile);stroke:var(--hs-tile-side);stroke-width:2.500}.hs-tile-side{fill:var(--hs-tile-side)}
.hs-tile-t{text-anchor:middle;fill:var(--hs-tile-ink);font-family:"Songti SC","STSong","Noto Serif CJK SC",serif;font-weight:800}
.hs-book{fill:var(--hs-book);stroke:var(--hs-book-d);stroke-width:2}.hs-book-pg{fill:#FFF8E6;stroke:#D9C9A0;stroke-width:2}.hs-book-sp{fill:var(--hs-book-d)}.hs-book-lb{fill:#FFF3D6}
.hs-book-t{text-anchor:middle;fill:#7A4A10;font-family:"STKaiti","Kaiti SC","Songti SC",serif;font-weight:700}
/* —— 网页层：星仔、字卡、星星。位置 = 景物坐标 × --k + --ox / --oy（hero.js 的 place 算好） —— */
.hs-fx{position:absolute;inset:0;z-index:2;pointer-events:none;overflow:hidden;--k:1;--ox:0;--oy:0}
.hs-layer{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility 0s .9s}
.hs-layer.is-on{opacity:1;visibility:visible;transition:opacity .9s ease,visibility 0s}
.hs-card,.hs-star,.hs-mate{position:absolute;left:calc(var(--ox)*1px + var(--x)*var(--k)*1px);top:calc(var(--oy)*1px + var(--y)*var(--k)*1px)}
.hs-card{width:calc(var(--s)*var(--k)*1px);aspect-ratio:1;margin:calc(var(--s)*var(--k)*-.5px) 0 0 calc(var(--s)*var(--k)*-.5px)}
.hs-card-b{display:grid;place-items:center;width:100%;height:100%;border-radius:17%;background:linear-gradient(180deg,#FFF9EA,#F1DBA4);border:calc(var(--s)*var(--k)*.03px) solid #D5A64A;box-shadow:inset 0 0 0 calc(var(--s)*var(--k)*.05px) #FFF6DE,inset 0 0 0 calc(var(--s)*var(--k)*.07px) #E2BE73,0 0 calc(var(--s)*var(--k)*.4px) rgba(255,206,100,.55),0 calc(var(--s)*var(--k)*.08px) calc(var(--s)*var(--k)*.16px) rgba(30,20,0,.25);transform:rotate(var(--r))}
.hs-card span{font:800 calc(var(--s)*var(--k)*.56px)/1 "Songti SC","STSong","Noto Serif CJK SC",serif;color:#7A4A10;margin-top:4%}
.hs-card.brush span{font-family:"STKaiti","Kaiti SC","KaiTi","Songti SC",serif;font-weight:700}
.hs-card.long span{font-size:calc(var(--s)*var(--k)*.38px)}
.hs-star{width:calc(var(--s)*var(--k)*1px);aspect-ratio:1;margin:calc(var(--s)*var(--k)*-.5px) 0 0 calc(var(--s)*var(--k)*-.5px);background:#FFF6D2;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%)}
.hs-mate{width:calc(var(--w)*var(--k)*1px);height:calc(var(--h)*var(--k)*1px)}
.hs-mate::before{content:"";position:absolute;inset:-8% -14% 2% -14%;border-radius:50%;background:radial-gradient(closest-side,color-mix(in oklab,var(--pf-gold) 24%,transparent),transparent)}
.hs-mate::after{content:"";position:absolute;left:12%;right:4%;bottom:-2%;height:7%;border-radius:50%;background:radial-gradient(closest-side,rgba(10,12,30,.45),transparent)}
html[data-mode="day"] .hs-mate::after{background:radial-gradient(closest-side,rgba(40,60,100,.25),transparent)}
.hs-mate-body{position:relative;z-index:1;width:100%;height:100%;transform-origin:57% 98%}
.hs-mate-body img{display:block;width:100%;height:100%;-webkit-user-select:none;user-select:none}
.hs-mate .tw,.hs-mate .spot,.hs-mate .lid{position:absolute;left:var(--a);top:var(--b)}
.hs-mate .tw{width:11%;aspect-ratio:1;margin:-5.500% 0 0 -5.500%;background:#fff;clip-path:polygon(50% 0,56% 44%,100% 50%,56% 56%,50% 100%,44% 56%,0 50%,44% 44%);transform:scale(0)}
.hs-mate .spot{width:3.600%;aspect-ratio:1;margin:-1.800% 0 0 -1.800%;border-radius:50%}
.hs-mate .lid{width:var(--w);height:var(--e);border-radius:46% 46% 50% 50%;background:linear-gradient(#E4CDA2,#F3E2BE);border-bottom:2px solid #1C130C;transform:scaleY(0);transform-origin:50% 0}
.hs-mate-hit{position:absolute;z-index:2;left:22%;top:0;width:66%;height:90%;padding:0;border:0;border-radius:42%;background:none;cursor:pointer;pointer-events:auto;-webkit-tap-highlight-color:transparent}
.hs-mate-hit:focus-visible{outline:2px solid var(--hs-gold-b);outline-offset:3px}

/* —— 动起来 —— */
@media (prefers-reduced-motion:no-preference){
 .hs-cta::before{animation:hs-halo 2.600s ease-in-out infinite}
 .hs-cta-in::after{animation:hs-shine 3.800s 1s infinite}
 .hs-cta:hover .hs-sp{animation:hs-tw 1.100s ease-in-out infinite}
 .hs-cta:hover .hs-sp:nth-of-type(2){animation-delay:.35s}.hs-cta:hover .hs-sp:nth-of-type(3){animation-delay:.7s}
 .hs:not(.is-held) .hs-bar[aria-current] i::after{animation:hs-fill 7s linear both}
 .hs.is-held .hs-bar[aria-current] i::after{animation:hs-fill 7s linear both paused}
 .hs-slide.is-on .hs-kicker,.hs-slide.is-on .hs-title,.hs-slide.is-on .hs-sub,.hs-slide.is-on .hs-tags,.hs-slide.is-on .hs-cta{animation:hs-up .7s cubic-bezier(.2,.9,.3,1) both}
 .hs-slide.is-on .hs-title{animation-delay:.08s}.hs-slide.is-on .hs-sub{animation-delay:.2s}.hs-slide.is-on .hs-tags{animation-delay:.3s}.hs-slide.is-on .hs-cta{animation:hs-up .7s cubic-bezier(.2,.9,.3,1) .4s both,hs-nudge 5s 2s ease-in-out infinite}
 .hs-s.is-on .hs-swirl{animation:hs-draw 1.600s .2s cubic-bezier(.4,0,.2,1) both}
 .hs-s.is-on .hs-swirl-glow{animation:hs-fade 1.600s .5s both}
 .hs-star{animation:hs-tw 2.400s var(--d,0s) ease-in-out infinite}
 .hs-layer.is-on .hs-card{animation:hs-fly .9s calc(.5s + var(--i)*.22s) cubic-bezier(.2,1.3,.4,1) both}
 .hs-card-b{animation:hs-bob 4.200s calc(var(--i)*-1.3s) ease-in-out infinite}
 .hs-layer:not(.is-on) *{animation-play-state:paused!important}
 .hs-s.is-on .hs-road{animation:hs-draw 2.200s .3s cubic-bezier(.45,0,.25,1) both}
 .hs-s.is-on .hs-road-glow{animation:hs-fade 1.400s 1s both}
 .hs-s.is-on .hs-comet{animation:hs-comet 3.200s 2.600s linear infinite}
 .hs-s.is-on .hs-node{animation:hs-fade .4s calc(.6s + var(--i)*.42s) both}
 .hs-s.is-on .hs-node-pop{transform-box:fill-box;transform-origin:50% 100%;animation:hs-pop .6s calc(.7s + var(--i)*.42s) cubic-bezier(.2,1.5,.4,1) both}
 .hs-node-halo{transform-box:fill-box;transform-origin:50% 50%;animation:hs-halo2 2.400s calc(var(--i)*.3s) ease-in-out infinite}
 .hs-pav-glow,.hs-gate-glow{transform-box:fill-box;transform-origin:50% 50%;animation:hs-halo2 3.400s ease-in-out infinite}
 .hs-s.is-on .hs-rays{transform-box:fill-box;transform-origin:50% 100%;animation:hs-rays 1.400s .3s ease-out both}
 .hs-s.is-on .hs-door-l{transform-box:fill-box;transform-origin:0 50%;animation:hs-door 1.400s .4s cubic-bezier(.5,0,.2,1) both}
 .hs-s.is-on .hs-door-r{transform-box:fill-box;transform-origin:100% 50%;animation:hs-door 1.400s .4s cubic-bezier(.5,0,.2,1) both}
 .hs-s.is-on .hs-drop{transform-box:fill-box;transform-origin:50% 100%;animation:hs-drop .8s calc(1s + var(--i)*.18s) cubic-bezier(.3,1.4,.5,1) both}
 .hs-cloud{animation:drift 26s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
 .hs-mate{animation:hs-land .8s .2s cubic-bezier(.3,1.3,.5,1) both}
 .hs-mate-body{animation:hs-breathe 3.600s ease-in-out infinite}
 .hs-mate-body.hop{animation:hs-hop .62s cubic-bezier(.3,1.2,.5,1),hs-breathe 3.600s .62s ease-in-out infinite}
 .hs-mate .tw{animation:hs-twk 3.600s var(--d) ease-in-out infinite}
 .hs-mate .spot{animation:hs-spot 3s var(--d) ease-out infinite}
 .hs-mate .lid{animation:hs-blink 5.400s 1.600s ease-in-out infinite}
 .hs.is-instant *{animation-duration:0s!important;animation-delay:0s!important;transition:none!important}
 @keyframes hs-up{from{opacity:0;transform:translateY(18px)}}
 @keyframes hs-fade{from{opacity:0}}
 @keyframes hs-draw{from{stroke-dashoffset:1}}
 @keyframes hs-fly{from{opacity:0;transform:translate(-26vmin,24vmin) scale(.2) rotate(-40deg)}}
 @keyframes hs-bob{0%,100%{transform:translateY(0) rotate(var(--r))}50%{transform:translateY(-10%) rotate(var(--r))}}
 @keyframes hs-land{from{opacity:0;transform:translateY(-10%) scale(.94)}}
 @keyframes hs-pop{from{opacity:0;transform:scale(.3) translateY(14px)}}
 @keyframes hs-comet{0%{stroke-dashoffset:1.05;opacity:0}8%{opacity:1}92%{opacity:1}100%{stroke-dashoffset:0;opacity:0}}
 @keyframes hs-halo{0%,100%{opacity:.45;transform:scale(.96)}50%{opacity:.95;transform:scale(1.06)}}
 @keyframes hs-halo2{0%,100%{opacity:.55;transform:scale(.92)}50%{opacity:.95;transform:scale(1.08)}}
 @keyframes hs-shine{0%,62%{left:-45%}100%{left:130%}}
 @keyframes hs-tw{0%,100%{opacity:0;transform:scale(.3) rotate(0)}50%{opacity:1;transform:scale(1) rotate(45deg)}}
 @keyframes hs-nudge{0%,86%,100%{transform:none}90%{transform:translateY(-3px)}94%{transform:translateY(1px)}}
 @keyframes hs-rays{from{opacity:0;transform:scaleY(.3)}}
 @keyframes hs-door{from{transform:scaleX(1)}to{transform:scaleX(.12)}}
 @keyframes hs-drop{from{opacity:0;transform:translateY(-90px)}}
 @keyframes hs-breathe{50%{transform:scaleY(1.012)}}
 @keyframes hs-hop{30%{transform:translateY(-9%) scaleY(1.03)}60%{transform:translateY(0) scaleY(.97)}}
 @keyframes hs-twk{0%,62%,100%{transform:scale(0) rotate(0)}74%{transform:scale(1) rotate(30deg)}86%{transform:scale(0) rotate(60deg)}}
 @keyframes hs-spot{0%{box-shadow:0 0 0 0 var(--c)}36%,100%{box-shadow:0 0 0 6px transparent}}
 @keyframes hs-blink{0%,95%,100%{transform:scaleY(0)}97%,98%{transform:scaleY(1)}}
 @keyframes hs-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
}
.hs-s:not(.is-on) .hs-door-l,.hs-s:not(.is-on) .hs-door-r{transform:none}
@media (prefers-reduced-motion:reduce){.hs-door-l,.hs-door-r{transform-box:fill-box;transform:scaleX(.12)}.hs-door-l{transform-origin:0 50%}.hs-door-r{transform-origin:100% 50%}}

/* —— 手机和竖着的平板：文字在上面，标志和昼夜开关在最上面一行 —— */
@media (max-width:959px){.hs .hero-mode{display:block}.hs .hero-brand{display:flex}.hs-copy{padding-top:92px}}
@media (max-width:719px){
 .hs{min-height:max(600px,calc(100svh - var(--pf-bar) - env(safe-area-inset-bottom,0px)))}
 .hs-copy{max-width:none;padding:84px var(--pad) 0}
 .hs-kicker{font-size:12px;letter-spacing:.26em}
 .hs-title{margin-top:6px;font-size:clamp(30px,9.200vw,40px);line-height:1.2}
 .hs-title em{display:block}
 .hs-sub{margin-top:8px;font-size:14px}
 .hs-slide .hs-sub{margin-top:8px}.hs-slide .hs-tags{margin-top:12px}
 .hs-tags{gap:0 8px;padding:5px 14px;font-size:12.500px;letter-spacing:.04em}
 .hs-cta{margin-top:16px}
 .hs-cta-in{min-height:50px;padding:0 20px 0 24px;font-size:16px}
 .hs-ctrl{right:auto;left:50%;bottom:12px;transform:translateX(-50%);gap:4px;padding:3px 4px 3px 10px}
 .hs-arrow{display:none}
 .hs-bar{width:44px;height:44px}
 .hs-bar i{left:8px;right:8px;top:20px}
 .hs-play{width:44px;height:44px}
 .hs-down{display:none}
}
@media (max-width:719px) and (max-height:700px){.hs-copy{padding-top:76px}.hs-title{font-size:30px}}

/* 第二轮：仅移动桌面主按钮；透明度只作用于底色，文字和箭头保持不透明。 */
.hs-slide{position:static}
.hs-cta{position:absolute;left:var(--cta-x);top:var(--cta-y);translate:-50% -50%;margin:0;max-width:calc(100% - 32px)}
.hs-cta-in{background:linear-gradient(180deg,rgba(255,237,176,.6),rgba(248,199,85,.6) 48%,rgba(228,162,50,.6));box-shadow:inset 0 0 0 1.5px rgba(255,240,190,.85),0 6px 20px rgba(6,8,22,.2);backdrop-filter:blur(3px)}
.hs-cta::before{display:none}
html[data-mode="day"] .hs-cta-in{background:linear-gradient(180deg,rgba(255,253,245,.6),rgba(255,245,218,.6));color:#14233c;box-shadow:inset 0 0 0 1.5px rgba(27,43,65,.65),0 5px 16px rgba(27,43,65,.2)}
/* 竖屏不把完整桌面缩成小图：插图保留高度，按钮和轮播控制各占一行。 */
.hs[data-layout="stack"]{min-height:max(var(--stack-height,900px),calc(100svh - var(--pf-bar) - env(safe-area-inset-bottom,0px)))}
.hs[data-layout="stack"] .hs-copy{max-width:min(100%,720px);padding:100px var(--pad) 0;margin:0 auto}
.hs[data-layout="stack"] .hs-title{font-size:clamp(30px,5.5vw,46px);line-height:1.22}
.hs[data-layout="stack"] .hs-title em{display:block}
.hs[data-layout="stack"] .hs-title span{white-space:normal}
.hs[data-layout="stack"] .hero-brand{display:flex}
.hs[data-layout="stack"] .hero-mode{display:block}
.hs[data-layout="stack"] .hs-ctrl{left:50%;right:auto;bottom:12px;translate:-50% 0;transform:none;gap:4px;padding:3px 8px}
.hs[data-layout="stack"] .hs-bar{width:44px;height:44px}
.hs[data-layout="stack"] .hs-bar i{left:8px;right:8px;top:20px}
.hs[data-layout="stack"] .hs-play{width:44px;height:44px}
.hs[data-layout="stack"] .hs-arrow,.hs[data-layout="stack"] .hs-down{display:none}
@media(max-width:719px){
 .hs[data-layout="stack"] .hs-copy{padding:88px 20px 0}
 .hs[data-layout="stack"] .hs-title{font-size:clamp(30px,8.5vw,40px)}
 .hs[data-layout="stack"] .hs-sub{max-width:30em;line-height:1.65}
 .hs[data-layout="stack"] .hs-tags{gap:4px 7px;padding:6px 11px;font-size:12px;letter-spacing:0}
 .hs[data-layout="stack"] .hs-cta-in{min-height:54px;padding:0 24px;font-size:16px}
}
@media(min-width:960px) and (max-width:1180px) and (orientation:portrait){
 body.pf-home{padding-left:0;padding-bottom:var(--pf-bar)}
 .pf-home .pf-side{display:none}
 .pf-home .pf-bottom{display:grid}
}

/* 手机第三轮：轮播控件上移，插图、首屏高度及其余设备保持原样。 */
@media(max-width:719px){.hs[data-layout="stack"] .hs-ctrl{bottom:100px}}
