/* Lightweight, theme-specific life inside the dashboard hero. */
.hero-copy,.orbit-card { position:relative; z-index:2; }
.theme-stage { position:absolute; inset:0; z-index:3; overflow:hidden; border-radius:inherit; pointer-events:none; contain:layout paint style; }
.theme-stage * { box-sizing:border-box; }
.ambient-interaction { position:absolute; z-index:2; border:0; color:inherit; font:inherit; cursor:pointer; pointer-events:auto; -webkit-tap-highlight-color:transparent; }
.ambient-interaction:hover { animation-play-state:paused; }
.ambient-interaction:focus-visible { outline:3px solid var(--purple); outline-offset:4px; }
[data-ambience="quiet"] .theme-stage { display:none; }
[data-ambience="standard"] .ambient-extra { display:none; }
.ambience-paused .theme-stage * { animation-play-state:paused!important; }

/* Theme panel controls */
.ambience-settings { margin-top:12px; padding:11px 4px 1px; border-top:1px solid var(--line); }
.ambience-setting-row,.ambient-reminder-setting { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ambience-setting-row>span,.ambient-reminder-setting>span { flex:1; }
.ambience-settings strong,.ambience-settings small { display:block; }
.ambience-settings strong { font-size:10px; }
.ambience-settings small { margin-top:2px; color:var(--muted); font-size:8px; }
.ambience-levels { display:flex; padding:2px; border:1px solid var(--line); border-radius:10px; background:var(--theme-soft); }
.ambience-levels button { min-width:40px; padding:5px 6px; border:0; border-radius:7px; background:transparent; color:var(--muted); font-size:8px; cursor:pointer; }
.ambience-levels button.is-active { background:var(--purple); color:#fff; box-shadow:0 3px 8px color-mix(in srgb,var(--purple) 30%,transparent); }
.ambient-reminder-setting { margin-top:9px; padding-top:9px; border-top:1px dashed var(--line); cursor:pointer; }
.ambient-reminder-setting input { position:absolute; opacity:0; pointer-events:none; }
.ambient-reminder-setting>i { width:36px; height:20px; position:relative; flex:0 0 auto; border-radius:99px; background:color-mix(in srgb,var(--muted) 25%,transparent); transition:background .2s; }
.ambient-reminder-setting>i::after { content:""; width:14px; height:14px; position:absolute; top:3px; left:3px; border-radius:50%; background:#fff; box-shadow:0 2px 5px rgba(0,0,0,.2); transition:transform .2s; }
.ambient-reminder-setting input:checked+i { background:var(--purple); }
.ambient-reminder-setting input:checked+i::after { transform:translateX(16px); }

/* Daily whisper: intentionally small and non-blocking. */
.daily-whisper { width:min(440px,calc(100vw - 28px)); position:fixed; left:50%; bottom:24px; z-index:88; display:grid; grid-template-columns:38px 1fr 27px; gap:11px; align-items:start; padding:14px 14px 12px; border:1px solid color-mix(in srgb,var(--purple) 27%,var(--line)); border-radius:18px; background:color-mix(in srgb,var(--theme-panel) 95%,transparent); color:var(--ink); box-shadow:0 18px 50px rgba(19,15,45,.2); opacity:0; transform:translate(-50%,18px) scale(.97); transition:opacity .45s,transform .55s cubic-bezier(.2,.8,.2,1); pointer-events:none; }
.daily-whisper[hidden] { display:none; }
.daily-whisper.is-visible { opacity:1; transform:translate(-50%,0) scale(1); pointer-events:auto; }
.daily-whisper.is-leaving { opacity:0; transform:translate(-50%,12px) scale(.98); }
.daily-whisper-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:13px; background:var(--theme-accent-soft); color:var(--purple); font-size:18px; }
.daily-whisper small { display:block; margin:1px 0 3px; color:var(--purple); font-size:9px; font-weight:800; letter-spacing:.14em; }
.daily-whisper p { margin:0; font-size:13px; line-height:1.65; }
.daily-whisper [data-dismiss-day] { margin-top:5px; padding:0; border:0; background:none; color:var(--muted); font-size:9px; cursor:pointer; }
.daily-whisper-close { width:27px; height:27px; border:0; border-radius:50%; background:var(--theme-soft); color:var(--muted); font-size:18px; cursor:pointer; }
body.modal-open .daily-whisper,.ambience-paused .daily-whisper { opacity:0; pointer-events:none; }

/* Local theme library: one card is rendered on demand, the other 299 stay as data. */
.theme-content-card { width:min(410px,calc(100vw - 28px)); position:fixed; right:24px; bottom:24px; z-index:89; padding:18px; overflow:hidden; border:1px solid color-mix(in srgb,var(--purple) 30%,var(--line)); border-radius:22px; background:color-mix(in srgb,var(--theme-panel) 96%,transparent); color:var(--ink); box-shadow:0 22px 60px rgba(16,12,39,.24); opacity:0; transform:translateY(18px) scale(.97); transition:opacity .38s,transform .46s cubic-bezier(.2,.8,.2,1); pointer-events:none; }
.theme-content-card[hidden] { display:none; }
.theme-content-card::before { content:""; width:150px; height:150px; position:absolute; right:-72px; top:-82px; border-radius:50%; background:var(--theme-accent-soft); opacity:.75; }
.theme-content-card.is-visible { opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }
.theme-content-card.is-leaving { opacity:0; transform:translateY(12px) scale(.98); }
.theme-content-card header { position:relative; display:grid; grid-template-columns:42px 1fr 30px; gap:10px; align-items:center; }
.theme-content-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; background:var(--theme-accent-soft); color:var(--purple); font-size:20px; }
.theme-content-card header small,.theme-content-card header strong { display:block; }
.theme-content-space { color:var(--muted); font-size:8px; font-weight:800; letter-spacing:.13em; }
.theme-content-kind { margin-top:3px; color:var(--purple); font-size:10px; }
.theme-content-card [data-content-close] { width:30px; height:30px; border:0; border-radius:50%; background:var(--theme-soft); color:var(--muted); font-size:19px; cursor:pointer; }
.theme-content-card h3 { position:relative; margin:17px 0 7px; font:650 21px/1.35 var(--theme-display); }
.theme-content-copy { position:relative; min-height:52px; margin:0; color:var(--theme-hero-copy); font-size:13px; line-height:1.8; }
body.modal-open .theme-content-card,.ambience-paused .theme-content-card { opacity:0; pointer-events:none; }
[data-theme-content="candy"] { border-color:rgba(230,92,153,.28); }
[data-theme-content="cosmos"] { box-shadow:0 22px 65px rgba(6,10,38,.45); }
[data-theme-content="pixel"] { border-radius:10px; box-shadow:7px 7px 0 color-mix(in srgb,var(--theme-deep) 20%,transparent); }
[data-theme-content="journal"] { border-radius:7px; transform:translateY(18px) rotate(.4deg); }
[data-theme-content="journal"].is-visible { transform:translateY(0) rotate(.4deg); }
[data-theme-content="forest"] { border-color:rgba(72,121,80,.27); }

/* 晴日书房 */
.sunny-rays { position:absolute; width:420px; height:420px; right:-125px; top:-190px; border-radius:50%; background:repeating-conic-gradient(from 8deg,rgba(255,203,106,.13) 0 8deg,transparent 8deg 24deg); animation:sunny-breathe 8s ease-in-out infinite; }
.sunny-dust i { width:4px; height:4px; position:absolute; border-radius:50%; background:#f5b454; box-shadow:0 0 9px #ffd78b; animation:dust-drift 8s ease-in-out infinite; }
.sunny-dust i:nth-child(1){left:6%;top:21%;}.sunny-dust i:nth-child(2){left:31%;top:12%;animation-delay:-2s}.sunny-dust i:nth-child(3){left:48%;top:72%;animation-delay:-5s}.sunny-dust i:nth-child(4){right:8%;top:19%;animation-delay:-3s}.sunny-dust i:nth-child(5){right:38%;bottom:8%;animation-delay:-6s}.sunny-dust i:nth-child(6){left:19%;bottom:12%;animation-delay:-1s}
.sunny-plane { right:46%; bottom:34px; display:flex; align-items:center; gap:7px; padding:8px 10px; border-radius:99px; background:rgba(255,255,255,.76); color:#8c653c; box-shadow:0 8px 24px rgba(118,80,43,.12); transition:transform .2s,background .2s; }
.sunny-plane span { display:block; transform:rotate(-28deg); font-size:18px; }
.sunny-plane small { font-size:9px; white-space:nowrap; }
.sunny-plane:hover { transform:translateY(-3px); background:#fff; }
.sunny-plane.is-flying { animation:plane-flight 1.15s cubic-bezier(.2,.75,.25,1); }

/* 糖果云朵 */
.candy-puff { position:absolute; width:110px; height:42px; border-radius:50%; background:rgba(255,255,255,.34); filter:blur(1px); animation:puff-float 11s ease-in-out infinite; }
.puff-one { left:9%; top:12%; }.puff-two { right:4%; bottom:7%; animation-delay:-5s; }
.candy-cloud { width:126px; height:70px; right:41%; top:25px; display:grid; place-items:center; padding:13px 12px 8px; border-radius:45% 52% 44% 48%; background:linear-gradient(145deg,#fff,#ffe7f3); color:#89516d; box-shadow:0 10px 24px rgba(178,95,137,.17); animation:cloud-glow 5.5s ease-in-out infinite; }
.candy-cloud::before,.candy-cloud::after { content:""; position:absolute; z-index:-1; border-radius:50%; background:inherit; }
.candy-cloud::before { width:54px; height:54px; left:12px; top:-17px; }.candy-cloud::after { width:65px; height:65px; right:8px; top:-25px; }
.cloud-face { font-size:14px; font-weight:800; }.candy-cloud small { font-size:8px; opacity:.7; }
.cloud-pop { position:absolute; left:50%; top:15%; color:#f474aa; font-style:normal; animation:cloud-pop .95s ease-out both; transform:translateX(var(--pop-x)); }

/* 星河实验室 */
.cosmos-rings { width:520px; height:300px; position:absolute; right:-90px; top:14px; border:1px solid rgba(139,170,255,.22); border-radius:50%; transform:rotate(-15deg); box-shadow:0 0 0 48px rgba(107,85,219,.045),0 0 0 95px rgba(69,184,232,.028); animation:cosmos-drift 14s ease-in-out infinite; }
.mini-planet { display:grid; place-items:center; border-radius:50%; color:#eaf3ff; font-size:8px; letter-spacing:.05em; box-shadow:0 0 0 5px rgba(255,255,255,.05),0 12px 34px rgba(0,0,0,.25); animation:planet-glow 7s ease-in-out infinite; transition:transform .25s,filter .25s; }
.mini-planet:hover,.mini-planet.is-discovered { transform:scale(1.09); filter:brightness(1.16); }
.uranus { width:66px; height:66px; right:31%; top:52px; background:radial-gradient(circle at 35% 28%,#c8fbff,#55b7c9 55%,#337385); }
.uranus::after { content:""; width:88px; height:26px; position:absolute; border:2px solid rgba(204,248,255,.62); border-radius:50%; transform:rotate(-18deg); }
.neptune { width:76px; height:76px; right:4%; top:42%; background:radial-gradient(circle at 35% 28%,#8bc6ff,#315fd4 50%,#162d84); animation-delay:-3s; }
.cosmos-comet { width:90px; height:2px; position:absolute; left:-100px; top:18%; background:linear-gradient(90deg,transparent,#c7eaff); box-shadow:14px 0 8px #fff; transform:rotate(-13deg); animation:comet-cross 12s linear infinite; }

/* 像素电台 */
.pixel-equalizer { position:absolute; left:3%; bottom:17px; display:flex; align-items:end; gap:4px; height:42px; opacity:.4; }
.pixel-equalizer i { width:7px; height:30%; background:#3157d5; box-shadow:0 -8px 0 #e55a83; animation:pixel-level 1.1s steps(3,end) infinite alternate; animation-play-state:paused; }
.pixel-equalizer i:nth-child(2n){height:70%;animation-delay:-.3s}.pixel-equalizer i:nth-child(3n){height:100%;animation-delay:-.7s}
.scene-pixel.music-active .pixel-equalizer i,.pixel-buddy[data-state="dance"]~* { animation-play-state:running; }
.pixel-buddy { width:108px; right:42%; top:31px; padding:9px 9px 8px; border:3px solid #17234b; border-radius:7px; background:#ffea65; color:#17234b; box-shadow:6px 6px 0 rgba(23,35,75,.24); transform:rotate(-2deg); }
.pixel-screen { height:39px; display:grid; place-items:center; border:3px solid #17234b; background:#dff5e7; font-family:monospace; font-size:14px; }
.pixel-buddy small { display:block; margin-top:5px; font:700 7px/1 monospace; letter-spacing:.08em; }
.pixel-buddy[data-state="dance"] .pixel-screen { animation:pixel-dance .55s steps(2,end) infinite; }
.pixel-signal { position:absolute; right:5%; bottom:22px; padding:7px 9px; border:2px solid #17234b; background:#fff7cd; color:#17234b; font:700 9px monospace; animation:pixel-blink 2.2s steps(2,end) infinite; }

/* 诗页手账 */
.journal-doodle { position:absolute; left:5%; bottom:14px; color:rgba(104,79,65,.33); font-family:cursive; font-size:20px; letter-spacing:1em; transform:rotate(-4deg); }
.journal-note { width:168px; min-height:83px; position:absolute; z-index:2; right:40%; top:21px; padding:18px 15px 12px; border:1px solid rgba(104,79,65,.19); border-radius:4px; background:#fff7c9; color:#66564d; box-shadow:4px 6px 0 rgba(97,72,56,.1); text-align:left; transform:rotate(2.5deg); }
.journal-note:hover,.journal-note.is-open { transform:rotate(-1deg) translateY(-3px); box-shadow:7px 10px 0 rgba(97,72,56,.1); }
.journal-tape { width:53px; height:16px; position:absolute; left:50%; top:-9px; background:rgba(213,184,153,.65); transform:translateX(-50%) rotate(-3deg); }
.journal-note small { display:block; margin-bottom:6px; color:#a07458; font:600 8px sans-serif; letter-spacing:.12em; }
.journal-note strong { display:block; font:500 11px/1.65 "Noto Serif SC","Songti SC",serif; }

/* 森野呼吸 */
.forest-leaves { position:absolute; inset:0; }
.forest-leaves i { width:70px; height:34px; position:absolute; border-radius:100% 0 100% 0; background:rgba(72,121,80,.11); transform:rotate(22deg); animation:leaf-sway 8s ease-in-out infinite; transform-origin:100% 100%; }
.forest-leaves i:nth-child(1){left:-12px;top:12%}.forest-leaves i:nth-child(2){right:1%;top:7%;animation-delay:-3s}.forest-leaves i:nth-child(3){right:28%;bottom:-8px;animation-delay:-5s}
.forest-fireflies i { width:4px; height:4px; position:absolute; border-radius:50%; background:#ffe978; box-shadow:0 0 9px #ffe978; animation:firefly 7s ease-in-out infinite; }
.forest-fireflies i:nth-child(1){left:9%;top:23%}.forest-fireflies i:nth-child(2){left:27%;top:9%;animation-delay:-2s}.forest-fireflies i:nth-child(3){left:48%;top:65%;animation-delay:-5s}.forest-fireflies i:nth-child(4){right:8%;top:18%;animation-delay:-1s}.forest-fireflies i:nth-child(5){right:34%;bottom:8%;animation-delay:-4s}.forest-fireflies i:nth-child(6){right:14%;bottom:16%;animation-delay:-6s}.forest-fireflies i:nth-child(7){left:18%;bottom:13%;animation-delay:-3s}
.forest-bird { width:78px; height:48px; right:39%; top:30px; background:transparent; color:#31563e; }
.forest-bird span { position:absolute; left:8px; top:7px; font-size:29px; transform:rotate(-12deg); }.forest-bird b { position:absolute; right:14px; top:8px; font-size:23px; }.forest-bird i { position:absolute; right:5px; top:14px; width:0; height:0; border-left:9px solid #d8984d; border-top:5px solid transparent; border-bottom:5px solid transparent; }.forest-bird small { position:absolute; right:7px; bottom:0; font-size:8px; opacity:.6; }
.forest-bird:hover { transform:translateY(-3px) rotate(-2deg); }.forest-bird.is-flying { animation:bird-loop 1.45s ease-in-out; }
.forest-flyby { position:absolute; left:-80px; top:20%; color:#31563e; font-size:24px; animation:bird-cross 8s linear both; }

@keyframes sunny-breathe { 50%{transform:scale(1.08) rotate(3deg);opacity:.65} }
@keyframes dust-drift { 50%{transform:translate(18px,-16px);opacity:.35} }
@keyframes plane-flight { 45%{transform:translate(90px,-52px) rotate(-9deg);opacity:1} 100%{transform:translate(180px,-100px) rotate(8deg);opacity:0} }
@keyframes puff-float { 50%{transform:translateX(32px) scale(1.08)} }
@keyframes cloud-glow { 50%{box-shadow:0 14px 30px rgba(238,115,174,.27)} }
@keyframes cloud-pop { to{transform:translate(var(--pop-x),-55px) rotate(25deg);opacity:0} }
@keyframes cosmos-drift { 50%{transform:rotate(-11deg) scale(1.04)} }
@keyframes planet-glow { 50%{box-shadow:0 0 0 9px rgba(255,255,255,.07),0 14px 42px rgba(70,128,255,.36)} }
@keyframes comet-cross { 0%,72%{transform:translateX(0) rotate(-13deg);opacity:0} 76%{opacity:1} 91%,100%{transform:translateX(1500px) rotate(-13deg);opacity:0} }
@keyframes pixel-level { to{height:100%} }
@keyframes pixel-dance { 50%{transform:translateY(-5px) rotate(2deg)} }
@keyframes pixel-blink { 50%{opacity:.35} }
@keyframes leaf-sway { 50%{transform:rotate(10deg) scale(.96)} }
@keyframes firefly { 0%,100%{opacity:.15;transform:translate(0,0)} 45%{opacity:1;transform:translate(15px,-18px)} }
@keyframes bird-loop { 40%{transform:translate(-65px,-60px) rotate(-8deg)} 75%{transform:translate(45px,-36px) rotate(7deg)} }
@keyframes bird-cross { to{transform:translateX(calc(100vw + 160px)) translateY(-55px)} }

@media (max-width:900px) {
  .sunny-plane,.candy-cloud,.pixel-buddy,.journal-note,.forest-bird { right:18px; top:18px; bottom:auto; transform:scale(.82); transform-origin:top right; }
  .uranus { right:24%; top:53%; }.neptune { right:5%; top:69%; }
  .cosmos-rings { top:49%; right:-150px; }
  .pixel-equalizer { left:16px; bottom:10px; }
}
@media (max-width:620px) {
  .theme-stage { opacity:.9; }
  .sunny-plane small,.candy-cloud small,.forest-bird small { display:none; }
  .sunny-plane { padding:7px; }
  .candy-cloud { width:82px; height:44px; }
  .cloud-face { font-size:10px; }
  .journal-note { width:128px; min-height:60px; padding:13px 10px 8px; }
  .journal-note strong { font-size:9px; }.journal-note small { display:none; }
  .pixel-buddy { width:78px; }.pixel-screen { height:28px;font-size:10px; }
  .uranus { width:50px;height:50px;right:25%; }.uranus::after { width:65px;height:20px; }.neptune { width:56px;height:56px; }
  .mini-planet { font-size:6px; }
  .daily-whisper { bottom:14px; }
  .theme-content-card { width:calc(100vw - 24px); right:12px; bottom:12px; padding:16px; border-radius:19px; }
  .theme-content-card h3 { font-size:18px; }.theme-content-copy { font-size:12px; }
  .ambience-setting-row { align-items:flex-start; flex-direction:column; }
  .ambience-levels { width:100%; }.ambience-levels button { flex:1; }
}

.reduce-theme-motion .theme-stage * { animation:none!important; transition:none!important; }
@media (prefers-reduced-motion:reduce) {
  .theme-stage *,.daily-whisper,.theme-content-card { animation:none!important; transition:none!important; }
}

/* The right-hand music card becomes a different little world for every theme. */
.hero-world { isolation:isolate; }
.hero-world>div { width:100%; height:100%; position:relative; }
.hero-world.is-celebrating { animation:world-celebrate .82s cubic-bezier(.2,.9,.25,1); }
.hero-world [class*="world-"],.hero-world span,.hero-world i,.hero-world b,.hero-world em { box-sizing:border-box; }
.ambience-paused .hero-world * { animation-play-state:paused!important; }

/* 晴日书房：窗边书桌与太阳唱片 */
.world-sunny { min-height:230px; }
.sunny-window { width:156px; height:132px; position:absolute; left:50%; top:18px; overflow:hidden; border:7px solid #f7e4b3; border-radius:76px 76px 12px 12px; background:linear-gradient(145deg,#77bfe2,#d7eff1 72%); box-shadow:0 0 0 9px rgba(255,221,146,.11),0 14px 28px rgba(15,31,47,.26); transform:translateX(-50%); }
.sunny-window::before,.sunny-window::after { content:""; position:absolute; background:rgba(248,235,194,.83); }.sunny-window::before { width:4px; inset:0 auto 0 50%; }.sunny-window::after { height:4px; inset:52% 0 auto; }
.sunny-window b { position:absolute; right:18px; top:15px; color:#fff4ae; font-size:28px; text-shadow:0 0 16px #fff6b7; animation:window-sun 6s ease-in-out infinite; }
.sunny-window i { position:absolute; bottom:-2px; width:28px; height:36px; border-radius:55% 45% 0 0; background:#638d69; }.sunny-window i:first-child { left:15px; }.sunny-window i:nth-child(2) { left:40px; height:26px; background:#86a85b; }
.sunny-desk { width:235px; height:27px; position:absolute; left:50%; bottom:20px; border-radius:8px 8px 18px 18px; background:linear-gradient(180deg,#c98d56,#805033); box-shadow:0 13px 0 #5d3929; transform:translateX(-50%); }
.sunny-record { width:76px; height:76px; position:absolute; left:50%; bottom:18px; display:grid; place-items:center; border:7px solid #2b3457; border-radius:50%; background:radial-gradient(circle,#f7ca76 0 16%,#d8787c 17% 22%,#303960 23% 100%); color:#fff9e8; font-size:29px; box-shadow:0 7px 0 rgba(35,39,68,.45); transform:translateX(-50%); }
.hero-world-sunny.is-playing .sunny-record { animation:record-spin 3.2s linear infinite; }
.sunny-book { width:46px; height:14px; position:absolute; left:calc(50% - 104px); bottom:44px; border-radius:2px; background:#fff0bd; box-shadow:0 5px 0 #d16a60,0 10px 0 #6699a0; transform:rotate(-5deg); }
.sunny-glint { position:absolute; right:14%; top:34px; color:#fff5bd; font-size:20px; animation:glint 3.5s ease-in-out infinite; }

/* 糖果云朵：糖果音响、月亮云和软软的彩虹 */
.world-candy { min-height:230px; }
.candy-moon { width:120px; height:120px; position:absolute; left:50%; top:20px; border-radius:50%; background:radial-gradient(circle at 38% 30%,#fffdf0,#ffd0e9 55%,#e18bb4); box-shadow:0 0 0 10px rgba(255,220,242,.1),0 18px 35px rgba(94,34,78,.3); transform:translateX(-50%); }
.candy-moon::after { content:""; width:58px; height:32px; position:absolute; left:-23px; bottom:8px; border-radius:50%; background:#f7e8ff; box-shadow:27px -14px 0 #f7e8ff,53px 0 #f7e8ff; }
.candy-speaker { width:104px; height:80px; position:absolute; left:50%; bottom:27px; display:grid; place-items:center; border:5px solid #5a315a; border-radius:29px; background:linear-gradient(145deg,#ffb6d7,#d06fa6); box-shadow:0 9px 0 rgba(86,37,80,.35); transform:translateX(-50%); }
.candy-speaker i { width:48px; height:48px; border:6px solid #ffe5f5; border-radius:50%; background:radial-gradient(circle,#fff 0 18%,#8e4c84 19% 100%); }.candy-speaker b { position:absolute; color:#fff; font-size:21px; text-shadow:0 1px #8e4c84; }
.hero-world-candy.is-playing .candy-speaker { animation:candy-beat .65s ease-in-out infinite alternate; }
.candy-rainbow { width:205px; height:102px; position:absolute; left:50%; bottom:3px; border:9px solid #ffb0c9; border-bottom:0; border-radius:205px 205px 0 0; opacity:.78; transform:translateX(-50%); box-shadow:0 -15px 0 -6px #a98af3,0 -30px 0 -12px #94d8d8; }
.candy-spark { position:absolute; color:#fff1a7; font-size:21px; animation:glint 3s ease-in-out infinite; }.candy-spark-one { left:20%; top:30px; }.candy-spark-two { right:17%; top:74px; color:#fff6fb; animation-delay:-1.4s; }

/* 星河实验室：八大行星围绕太阳，保留完整太阳系意象。 */
.world-cosmos { min-height:230px; overflow:hidden; }
.solar-sun { width:69px; height:69px; position:absolute; left:50%; top:50%; z-index:3; display:grid; place-items:center; border-radius:50%; background:radial-gradient(circle,#fff7b0 0 23%,#ffbd5b 48%,#ec764d 100%); color:#fff9c8; font-size:26px; box-shadow:0 0 0 13px rgba(255,185,88,.08),0 0 35px rgba(255,173,71,.65); transform:translate(-50%,-50%); }
.solar-orbit { position:absolute; left:50%; top:50%; border:1px solid rgba(188,209,255,.25); border-radius:50%; transform:translate(-50%,-50%) rotate(-13deg); }.solar-orbit-one { width:110px; height:50px; }.solar-orbit-two { width:164px; height:78px; }.solar-orbit-three { width:220px; height:108px; }.solar-orbit-four { width:285px; height:145px; }
.hero-world-cosmos.is-playing .solar-orbit { animation:solar-turn 16s linear infinite; }.hero-world-cosmos.is-playing .solar-orbit-two { animation-duration:23s; animation-direction:reverse; }.hero-world-cosmos.is-playing .solar-orbit-three { animation-duration:30s; }.hero-world-cosmos.is-playing .solar-orbit-four { animation-duration:38s; animation-direction:reverse; }
.solar-planet { position:absolute; z-index:4; border-radius:50%; box-shadow:0 0 0 3px rgba(255,255,255,.06); }.mercury { width:8px; height:8px; left:36%; top:43%; background:#c9b8a5; }.venus { width:12px; height:12px; left:69%; top:39%; background:#eac276; }.earth { width:13px; height:13px; left:30%; top:62%; background:linear-gradient(135deg,#65cce8 50%,#5c9c69 51%); }.mars { width:10px; height:10px; left:74%; top:65%; background:#dc735b; }.jupiter { width:22px; height:22px; left:13%; top:44%; background:repeating-linear-gradient(0deg,#d99a68 0 4px,#f4d29a 4px 8px); }.saturn { width:18px; height:18px; right:12%; top:25%; background:#e4c78b; }.saturn::after { content:""; width:33px; height:9px; position:absolute; left:-8px; top:3px; border:2px solid rgba(242,220,176,.9); border-radius:50%; transform:rotate(-18deg); }.uranus-mini { width:13px; height:13px; left:21%; bottom:15%; background:#7ce0e8; }.neptune-mini { width:15px; height:15px; right:19%; bottom:13%; background:#5b88f2; }

/* 像素电台：一台真正会跳动的掌机收音机。 */
.world-pixel { min-height:230px; }
.pixel-console { width:142px; height:112px; position:absolute; left:50%; top:25px; border:5px solid #17234b; border-radius:8px; background:#f4d74d; box-shadow:9px 9px 0 rgba(23,35,75,.28); transform:translateX(-50%); }
.pixel-screen-art { width:75px; height:47px; position:absolute; left:13px; top:13px; display:grid; place-items:center; border:4px solid #17234b; background:#c8eddb; color:#3157d5; font:bold 26px monospace; font-style:normal; text-shadow:3px 0 #ef7561; }
.pixel-console b { position:absolute; left:16px; bottom:10px; color:#17234b; font:700 7px/1.25 monospace; letter-spacing:.1em; }.pixel-console em { width:15px; height:15px; position:absolute; right:15px; bottom:17px; border-radius:50%; background:#e45c70; box-shadow:-20px 6px 0 #3157d5; }
.pixel-antenna { width:62px; height:27px; position:absolute; left:calc(50% + 31px); top:9px; border-top:4px solid #17234b; border-right:4px solid #17234b; transform:skewY(-22deg); }
.pixel-bars { position:absolute; left:50%; bottom:16px; display:flex; align-items:end; gap:5px; height:36px; transform:translateX(-50%); }.pixel-bars i { width:8px; height:35%; background:#3157d5; box-shadow:0 -6px 0 #ef7561; }.pixel-bars i:nth-child(2){height:75%}.pixel-bars i:nth-child(3){height:100%}.pixel-bars i:nth-child(4){height:56%}.pixel-bars i:nth-child(5){height:86%}
.hero-world-pixel.is-playing .pixel-bars i { animation:pixel-world-bars .72s steps(3,end) infinite alternate; }.hero-world-pixel.is-playing .pixel-bars i:nth-child(2n){animation-delay:-.3s}.hero-world-pixel.is-playing .pixel-screen-art { animation:pixel-screen-pulse .8s steps(2,end) infinite; }

/* 诗页手账：纸页、日期印章和留声机式的墨迹。 */
.world-journal { min-height:230px; }
.journal-page-art { width:144px; height:162px; position:absolute; left:50%; top:15px; padding:33px 20px; overflow:hidden; border:1px solid rgba(91,69,55,.18); border-radius:5px 13px 8px 5px; background:repeating-linear-gradient(0deg,transparent 0 23px,rgba(132,103,80,.14) 24px),#fff9e9; box-shadow:7px 8px 0 rgba(91,69,55,.1); transform:translateX(-50%) rotate(2deg); }
.journal-page-art i { display:block; width:74px; height:3px; margin:9px 0; border-radius:99px; background:#c3a786; }.journal-page-art i:nth-child(2){width:91px}.journal-page-art i:nth-child(3){width:56px}.journal-page-art b { position:absolute; right:17px; bottom:17px; color:#a3435a; font:500 38px Georgia,serif; transform:rotate(-13deg); }
.journal-stamp { position:absolute; left:19%; top:22px; z-index:2; padding:5px 6px; border:2px dashed #a3435a; border-radius:50%; color:#a3435a; font:700 7px/1 monospace; letter-spacing:.08em; transform:rotate(-12deg); }
.journal-pencil { width:96px; height:7px; position:absolute; right:12%; bottom:31px; border-radius:99px; background:linear-gradient(90deg,#d7a952 0 8%,#784c39 9% 88%,#eecca1 89%); transform:rotate(-25deg); }.journal-twinkle { position:absolute; right:19%; top:32px; color:#b86d7b; font-size:22px; animation:glint 3.8s ease-in-out infinite; }
.hero-world-journal.is-playing .journal-page-art b { animation:journal-note-pulse 1.5s ease-in-out infinite; }

/* 森野呼吸：树冠、年轮唱片和枝叶留声机。 */
.world-forest { min-height:230px; }
.forest-canopy { width:255px; height:138px; position:absolute; left:50%; top:-22px; border-radius:50%; background:radial-gradient(ellipse at 32% 60%,rgba(160,198,118,.82),transparent 28%),radial-gradient(ellipse at 66% 55%,rgba(91,142,88,.9),transparent 31%),radial-gradient(ellipse at 48% 30%,rgba(200,218,143,.75),transparent 28%),#48765b; box-shadow:0 15px 38px rgba(23,64,41,.25); transform:translateX(-50%); }
.forest-ring { width:126px; height:126px; position:absolute; left:50%; bottom:14px; display:grid; place-items:center; overflow:hidden; border-radius:50%; background:repeating-radial-gradient(circle at center,#d6b67d 0 4px,#a8774c 5px 8px,#cfab72 9px 12px); box-shadow:0 0 0 10px #6b4935,0 12px 0 rgba(52,78,54,.35); transform:translateX(-50%); }
.forest-ring i { position:absolute; border:1px solid rgba(95,62,39,.42); border-radius:50%; }.forest-ring i:first-child { inset:13px; }.forest-ring i:nth-child(2){inset:26px}.forest-ring i:nth-child(3){inset:39px}.forest-ring b { z-index:2; color:#fff5cf; font-size:35px; text-shadow:0 1px 0 #58422e; }
.forest-needle { width:94px; height:4px; position:absolute; left:50%; bottom:103px; border-radius:99px; background:#33483b; transform:translateX(-1px) rotate(-24deg); transform-origin:left center; }.forest-needle::after { content:""; width:11px; height:11px; position:absolute; right:-5px; top:-3px; border-radius:50%; background:#d8b25d; }
.hero-world-forest.is-playing .forest-ring { animation:record-spin 4.4s linear infinite; }.hero-world-forest.is-playing .forest-needle { animation:needle-sway 2.8s ease-in-out infinite; }
.forest-leaf-art { position:absolute; color:#c9df90; font-size:28px; animation:leaf-world 5s ease-in-out infinite; }.leaf-art-one { left:17%; bottom:40px; }.leaf-art-two { right:15%; top:63px; color:#e6c66a; animation-delay:-2.3s; }

@keyframes world-celebrate { 35%{transform:translateY(-9px) scale(1.035)} 64%{transform:translateY(1px) scale(.99)} }
@keyframes window-sun { 50%{transform:translate(-3px,5px) scale(1.07)} }
@keyframes record-spin { to{transform:translateX(-50%) rotate(360deg)} }
@keyframes glint { 50%{transform:scale(1.28) rotate(18deg);opacity:.42} }
@keyframes candy-beat { to{transform:translateX(-50%) scale(1.06)} }
@keyframes solar-turn { to{transform:translate(-50%,-50%) rotate(347deg)} }
@keyframes pixel-world-bars { to{height:100%;transform:translateY(-5px)} }
@keyframes pixel-screen-pulse { 50%{filter:brightness(1.16);transform:translateY(-2px)} }
@keyframes journal-note-pulse { 50%{transform:rotate(-10deg) scale(1.12)} }
@keyframes needle-sway { 50%{transform:translateX(-1px) rotate(-18deg)} }
@keyframes leaf-world { 50%{transform:translate(12px,-10px) rotate(16deg);opacity:.56} }

@media (max-width:620px) {
  .world-sunny,.world-candy,.world-cosmos,.world-pixel,.world-journal,.world-forest { min-height:160px; transform:scale(.78); transform-origin:center bottom; }
  .world-cosmos .solar-orbit-four,.world-cosmos .jupiter,.world-cosmos .saturn { display:none; }
}
.reduce-theme-motion .hero-world * { animation:none!important; transition:none!important; }
