:root{--night:#102d31;--ink:#fff8e9;--muted:#aec1b8;--gold:#e6bd76;--line:#41615d}*{box-sizing:border-box}body{margin:0;background:var(--night);color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",sans-serif;min-height:100vh;background-image:radial-gradient(ellipse at 23% 45%,#2f534c80,transparent 50%)}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible{outline:3px solid var(--gold);outline-offset:6px}a{color:inherit}[hidden]{display:none!important}.site-header{max-width:1440px;margin:auto;padding:30px 5%;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;font-family:"STSong","SimSun",serif;font-size:28px;letter-spacing:4px}.brand small{font:11px "Microsoft YaHei",sans-serif;letter-spacing:3px;display:block;color:var(--muted);margin-top:5px}.brand-moon{font-size:45px;color:var(--gold);font-family:Georgia,serif}.site-header nav{display:flex;gap:28px}.record-link{border:0;background:none;font-size:14px;color:#d1dcd0;padding:12px 0}.record-link span.ready{display:inline-block;width:5px;height:5px;background:var(--gold);border-radius:50%;vertical-align:middle;margin-left:5px}.experience{max-width:1340px;min-height:calc(100vh - 216px);margin:auto;padding:12px 5% 34px;display:grid;grid-template-columns:1.05fr 1fr;gap:7%;align-items:center}.cat-stage{position:relative;min-width:0;text-align:center;padding-bottom:36px;align-self:center}.cat-character{position:relative;display:block;width:100%;max-width:490px;margin:auto;border:0;background:none;padding:0;z-index:2}.cat-character svg{display:block;width:100%;overflow:visible}.halo{position:absolute;left:50%;top:12%;transform:translateX(-50%);width:85%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#a4b39510 40%,#dfd7a008 64%,transparent 66%)}.orbit{position:absolute;inset:3%;border:1px solid #adbe8c30;border-radius:50%;transform:rotate(-20deg)}.orbit:after{content:'';width:7px;height:7px;border-radius:50%;background:var(--gold);position:absolute;top:13%;left:14%;box-shadow:0 0 20px #d6b56b66}.star{position:absolute;color:#d2c48c;opacity:.6}.star-a{left:11%;top:22%;font-size:30px}.star-b{right:7%;top:44%;font-size:18px}.star-c{left:5%;bottom:26%;font-size:18px}.cat-caption{display:flex;align-items:center;justify-content:center;gap:9px;font-size:12px;color:var(--muted);position:relative;z-index:3}.presence{width:5px;height:5px;border-radius:50%;background:#98c4a5}.cat-caption button{background:none;border:1px solid #78927c50;border-radius:50%;width:26px;height:26px;margin-left:8px;color:var(--muted)}.conversation{padding:24px 0;max-width:530px}.speaker{display:flex;align-items:center;gap:14px;font-size:13px;color:var(--gold)}#stageTag{color:var(--muted);font-size:11px;border-left:1px solid var(--line);padding-left:14px}h1{font-family:"STSong","SimSun",serif;font-weight:400;font-size:clamp(34px,3.4vw,51px);line-height:1.4;letter-spacing:2px;margin:23px 0}.speech{color:#d2ddd2;font-size:16px;line-height:1.95;min-height:62px;max-width:31em}.primary{background:#ead1a0;color:#1d3836;border:1px solid #efddbb;border-radius:13px;padding:17px 25px;font-size:16px;font-weight:600;box-shadow:0 6px 20px #001c241a;transition:background .2s,transform .2s}.primary:hover{background:#f4dfb6;transform:translateY(-2px)}.primary.compact{padding:12px 18px;font-size:14px}.palm-icon{margin-right:12px;font-size:21px}.upload-panel{margin-top:30px}.photo-tip{font-size:12px;color:var(--muted);margin-top:17px}.text-button{border:0;background:none;color:#e2c78f;font-size:13px;padding:10px;text-decoration:underline;text-underline-offset:5px;text-decoration-color:#b7a27160}.selected-panel{padding:16px 0;display:flex;align-items:center;gap:18px}.selected-panel img{width:95px;height:112px;object-fit:cover;border-radius:16px}.selected-panel strong{font-size:16px}.selected-panel p{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted);font-size:12px}.gentle-note{font-size:11px;line-height:1.8;color:#8fa89e;margin-top:35px;max-width:38em}footer{max-width:1440px;margin:auto;display:flex;justify-content:space-between;padding:18px 5% 27px;color:#8ca79b;font-size:11px}.journey{margin:24px 0}.journey-track{display:flex;align-items:center;gap:10px;color:#91a89c;font-size:11px}.journey-track i{flex:1;height:1px;background:#405e54;max-width:28px}.journey-track .active{color:#f2d99d}.journey-track .done{color:#b7ceb8}.journey p{font-size:12px;color:var(--muted);line-height:1.6}.reveal{background:#d5d8b90b;border:1px solid #79997b40;border-radius:20px;padding:19px 21px;margin-top:18px;animation:reveal .45s ease-out}.reveal-header{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:#d4c799;margin-bottom:12px}.reveal-header .text-button{font-size:11px;padding:0}#revealContent p{line-height:1.85;font-size:14px;color:#e2e7d7;margin:8px 0}#revealContent h3{font-family:"STSong","SimSun",serif;font-weight:400;font-size:24px;margin:12px 0}#revealContent h4{font-size:14px;color:#e0cd9e;margin:17px 0 6px}#revealContent .preview-row{display:flex;align-items:center;gap:17px}#revealContent .preview-row img{width:88px;height:120px;object-fit:contain;border-radius:10px;background:#eee8d6}#revealContent small{color:var(--muted);font-size:11px;line-height:1.7}.domain-choices{display:flex;flex-wrap:wrap;gap:8px;margin-top:17px}.domain-choices button{border:1px solid #527060;border-radius:20px;background:none;padding:8px 12px;font-size:12px;color:#b7c7b5}.domain-choices button.available{border-color:#b09d65;color:#ecd5a0}.domain-choices button[aria-pressed=true]{background:#4a6250;color:#fff3cf}.recovery{border-left:2px solid #d2b27e;padding:4px 0 4px 17px;margin-top:22px}.recovery p{font-size:13px;line-height:1.8;color:#ecd4b7}.cat-body{transform-origin:250px 450px;animation:breathe 4s ease-in-out infinite}.cat-head{transform-origin:250px 295px;transition:transform .7s}.cat-tail{transform-origin:329px 437px;animation:tail 6s ease-in-out infinite}.cat-eyes{transform-origin:250px 227px;animation:blink 6s infinite}.orb-glow{animation:glow 4s ease-in-out infinite}.paw{transition:transform .6s}.paw-right{transform-origin:299px 406px}[data-mood=working] .cat-head{transform:rotate(7deg) translateY(5px)}[data-mood=working] .orb-glow{animation:glow 1.6s ease-in-out infinite}[data-mood=working] .paw-left{transform:translateY(-7px)}[data-mood=presenting] .paw-right{transform:translate(12px,-29px) rotate(-23deg)}[data-mood=presenting] .cat-head{transform:rotate(-5deg)}[data-mood=complete] .cat-body{animation:celebrate 1s ease-out 2,breathe 4s 2s ease-in-out infinite}[data-mood=error] .cat-head{transform:rotate(-12deg)}[data-mood=error] .orb-glow{opacity:.2;animation:none}.hello .paw-right{animation:wave .45s ease-in-out 3}.hello .cat-head{transform:rotate(-7deg)}body.motion-paused *,body.motion-paused *::before,body.motion-paused *::after{animation:none!important;transition:none!important}@keyframes breathe{50%{transform:translateY(-6px)}}@keyframes tail{50%{transform:rotate(8deg)}}@keyframes blink{0%,44%,48%,100%{transform:scaleY(1)}46%{transform:scaleY(.06)}}@keyframes glow{50%{opacity:.7;transform:translateY(-2px)}}@keyframes celebrate{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px) rotate(-3deg)}}@keyframes wave{50%{transform:translate(8px,-30px) rotate(-25deg)}}@keyframes reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}dialog{width:96vw;max-width:1500px;height:92vh;background:#152e31;color:var(--ink);border:1px solid #789583;border-radius:20px;padding:0;overflow:hidden}dialog::backdrop{background:#061d22ce;backdrop-filter:blur(7px)}.records-header{padding:17px 24px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.records-header p{font-size:11px;color:var(--muted);margin:0}.records-header h2{font-size:20px;font-weight:400;margin:5px 0 0}.records-header>div:last-child{display:flex;gap:14px;align-items:center}#closeRecords{background:none;border:1px solid #789583;border-radius:50%;height:35px;width:35px;font-size:17px}dialog iframe{width:100%;height:calc(92vh - 91px);border:0;background:#102d31}.record-empty{text-align:center;padding:80px 24px;color:var(--muted);line-height:1.8}@media(min-width:1500px){.experience{gap:110px}.cat-character{max-width:530px}}@media(max-width:800px){.site-header{padding:18px 6%}.brand{font-size:23px}.brand-moon{font-size:35px}.site-header nav{gap:17px}.record-link{font-size:12px}.experience{display:flex;flex-direction:column;gap:0;padding:0 7% 20px}.cat-stage{width:100%;max-width:280px;padding-bottom:15px}.cat-character{max-width:235px}.cat-caption{font-size:10px}.halo{width:80%}.conversation{padding:12px 0;width:100%;max-width:520px}h1{font-size:34px;margin:14px 0}.speech{font-size:14px;min-height:0}.upload-panel{margin-top:22px}.primary{width:100%;padding:15px 20px}.primary.compact{width:auto}.gentle-note{margin-top:24px}footer{padding:10px 7% 25px;font-size:10px}footer span:last-child{display:none}.records-header{padding:14px}.records-header h2{font-size:18px}.records-header .text-button{font-size:11px}dialog{width:98vw}.journey-track{gap:6px;font-size:10px}.journey-track i{max-width:18px}.selected-panel img{width:76px;height:96px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* 月见只在开场编排这一组光效，避免页面处处自行运动。 */
.moon-ring{position:absolute;inset:12%;border:1px solid #efd18d3b;border-radius:50%;opacity:0;transform:scale(.48) rotate(-18deg);pointer-events:none}.moon-ring-b{inset:21%;border-style:dashed;transform:scale(.4) rotate(20deg)}
.moon-motes{position:absolute;inset:5%;z-index:1;pointer-events:none}.moon-motes i{--a:0deg;position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#ffeab0;box-shadow:0 0 14px #ffe2a8;opacity:0;transform:rotate(var(--a)) translateX(170px) scale(.3)}.moon-motes i:nth-child(2){--a:48deg}.moon-motes i:nth-child(3){--a:102deg}.moon-motes i:nth-child(4){--a:157deg}.moon-motes i:nth-child(5){--a:211deg}.moon-motes i:nth-child(6){--a:268deg}.moon-motes i:nth-child(7){--a:324deg}
.summoned-palm{position:absolute;z-index:1;right:-1%;top:15%;width:42%;height:auto;overflow:visible;opacity:0;filter:drop-shadow(0 0 12px #bde8c488);transform:translate(28px,18px) rotate(8deg) scale(.8);pointer-events:none}.summoned-palm>path:first-child{fill:#a7d8c50c;stroke:#d9efc7;stroke-width:2;stroke-dasharray:780;stroke-dashoffset:780}.summoned-line{fill:none;stroke:#f1d392;stroke-width:3;stroke-linecap:round;stroke-dasharray:260;stroke-dashoffset:260}
.cat-stage[data-intro-beat=summon] .moon-ring-a{animation:moon-ring-open 1.8s cubic-bezier(.18,.8,.25,1) both}.cat-stage[data-intro-beat=summon] .moon-ring-b{animation:moon-ring-open 1.8s .22s cubic-bezier(.18,.8,.25,1) both reverse}.cat-stage[data-intro-beat=summon] .moon-motes i{animation:moon-mote-orbit 2.8s calc(var(--mote-delay,0s)) ease-in-out both}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(2){--mote-delay:.08s}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(3){--mote-delay:.16s}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(4){--mote-delay:.24s}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(5){--mote-delay:.32s}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(6){--mote-delay:.4s}.cat-stage[data-intro-beat=summon] .moon-motes i:nth-child(7){--mote-delay:.48s}
.cat-stage[data-intro-beat=reveal] .summoned-palm,.cat-stage[data-intro-beat=invite] .summoned-palm{opacity:.92;transform:translate(0,0) rotate(2deg) scale(1);transition:opacity .65s,transform .9s cubic-bezier(.16,.85,.24,1)}.cat-stage[data-intro-beat=reveal] .summoned-palm>path:first-child,.cat-stage[data-intro-beat=invite] .summoned-palm>path:first-child{animation:summon-outline 1.75s ease-out forwards}.cat-stage[data-intro-beat=reveal] .summoned-line,.cat-stage[data-intro-beat=invite] .summoned-line{animation:summon-lines 1.25s .85s ease-out forwards}
body.intro-invite #uploadButton{animation:moon-call 1.7s ease-in-out 2;box-shadow:0 0 0 1px #fff1bf5c,0 0 32px #e9c47942}.cat-stage[data-intro-beat=invite] .cat-character{animation:cat-present-nudge .9s cubic-bezier(.18,.9,.3,1) both}
@keyframes moon-ring-open{0%{opacity:0;transform:scale(.45) rotate(-24deg)}35%{opacity:.85}100%{opacity:.08;transform:scale(1.12) rotate(22deg)}}@keyframes moon-mote-orbit{0%{opacity:0;transform:rotate(var(--a)) translateX(84px) scale(.25)}35%{opacity:1}100%{opacity:0;transform:rotate(calc(var(--a) + 80deg)) translateX(218px) scale(1)}}@keyframes summon-outline{to{stroke-dashoffset:0}}@keyframes summon-lines{to{stroke-dashoffset:0}}@keyframes moon-call{0%,100%{transform:translateY(0);box-shadow:0 6px 20px #001c241a}45%{transform:translateY(-4px) scale(1.025);box-shadow:0 0 0 8px #f7dda916,0 12px 34px #e6bd7657}}@keyframes cat-present-nudge{0%{transform:translateX(0)}45%{transform:translateX(-10px) rotate(-1deg)}100%{transform:translateX(0)}}
@media(max-width:800px){.summoned-palm{right:-12%;top:12%;width:48%}.moon-motes i{transform:rotate(var(--a)) translateX(100px) scale(.3)}}

/* 玄幻开场：符阵、月光绸带与召掌事件构成一个明确高潮。 */
.mystic-portal{position:absolute;z-index:0;left:50%;top:46%;width:min(520px,112%);aspect-ratio:1;transform:translate(-50%,-50%) scale(.45) rotate(-35deg);border:2px solid #f5d68c00;border-radius:50%;opacity:0;pointer-events:none;filter:drop-shadow(0 0 14px #86d5bb88)}
.mystic-portal::before,.mystic-portal::after{content:'';position:absolute;border-radius:50%;inset:8%;border:1px solid #bce9c166;box-shadow:inset 0 0 28px #78c6ad21,0 0 30px #f2d18425}.mystic-portal::after{inset:23%;border-style:dashed;border-color:#f3d58d70}
.mystic-portal span{position:absolute;left:50%;top:50%;font:20px/1 Georgia,'STSong',serif;color:#f5dda3;text-shadow:0 0 10px #ffe8a8;transform:rotate(calc(var(--n)*45deg)) translateY(-226px) rotate(calc(var(--n)*-45deg))}.mystic-portal span:nth-child(1){--n:0}.mystic-portal span:nth-child(2){--n:1}.mystic-portal span:nth-child(3){--n:2}.mystic-portal span:nth-child(4){--n:3}.mystic-portal span:nth-child(5){--n:4}.mystic-portal span:nth-child(6){--n:5}.mystic-portal span:nth-child(7){--n:6}.mystic-portal span:nth-child(8){--n:7}
.moon-ribbons{position:absolute;z-index:1;inset:5%;pointer-events:none;overflow:visible}.moon-ribbons i{position:absolute;left:50%;top:49%;width:48%;height:2px;border-radius:50%;background:linear-gradient(90deg,transparent,#a8e2c5,#ffe1a0,transparent);opacity:0;transform-origin:0 50%;filter:blur(.2px) drop-shadow(0 0 8px #d9ffd9)}.moon-ribbons i:nth-child(1){--r:-28deg}.moon-ribbons i:nth-child(2){--r:7deg}.moon-ribbons i:nth-child(3){--r:41deg}
.intro-call{position:absolute;z-index:4;left:50%;bottom:58px;transform:translateX(-50%) translateY(16px);width:max-content;max-width:82%;opacity:0;color:#f8e5b4;pointer-events:none}.intro-call span{display:block;font-size:10px;letter-spacing:4px;color:#8fc9ae}.intro-call i{display:block;width:150px;height:1px;margin:8px auto;background:linear-gradient(90deg,transparent,#f2cf84,transparent);position:relative}.intro-call i::after{content:'✦';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:10px;background:#102d31;padding:0 7px}.intro-call strong{font:400 15px/1.4 'STSong',serif;letter-spacing:2px}
.cat-stage[data-intro-beat=summon] .mystic-portal{animation:portal-awaken 2s cubic-bezier(.13,.78,.18,1) both}.cat-stage[data-intro-beat=summon] .moon-ribbons i{animation:ribbon-cast 1.45s calc(var(--n,0)*.15s) ease-in-out both}.moon-ribbons i:nth-child(2){--n:1}.moon-ribbons i:nth-child(3){--n:2}
.cat-stage[data-intro-beat=reveal] .mystic-portal,.cat-stage[data-intro-beat=invite] .mystic-portal{opacity:.72;transform:translate(-50%,-50%) scale(1) rotate(0);border-color:#f5d68c4d;animation:portal-turn 13s linear infinite}.cat-stage[data-intro-beat=reveal] .cat-character{animation:cat-reveal-leap .9s cubic-bezier(.2,.85,.22,1) both}.cat-stage[data-intro-beat=reveal]::after{content:'';position:absolute;z-index:3;left:50%;top:48%;width:26px;height:26px;border-radius:50%;border:3px solid #fff0b9;transform:translate(-50%,-50%);animation:moon-burst 1.1s ease-out both;pointer-events:none}
.cat-stage[data-intro-beat=invite] .intro-call{animation:call-rise .7s .35s ease-out both}.cat-stage[data-intro-beat=invite] .summoned-palm{animation:palm-breathe 2.4s ease-in-out infinite}.cat-stage[data-intro-beat=invite] .mystic-portal span{animation:glyph-glint 2.8s calc(var(--n)*.11s) ease-in-out infinite}
body.intro-engaged .cat-stage .mystic-portal{opacity:1;filter:drop-shadow(0 0 24px #8ee4c0) drop-shadow(0 0 30px #f3d48b66);animation-duration:4s}body.intro-engaged .summoned-palm{transform:translate(-8px,-5px) rotate(-2deg) scale(1.08)!important;filter:drop-shadow(0 0 18px #d5ffd0) drop-shadow(0 0 24px #f7d47c)}body.intro-engaged .moon-ribbons i{opacity:.75;animation:ribbon-invite 1.3s ease-in-out infinite}body.intro-engaged .cat-character{animation:cat-ready-hop .72s ease-in-out infinite alternate}
@keyframes portal-awaken{0%{opacity:0;transform:translate(-50%,-50%) scale(.2) rotate(-60deg);border-color:#f5d68c00}38%{opacity:1;border-color:#f5d68c99}75%{transform:translate(-50%,-50%) scale(1.08) rotate(8deg)}100%{opacity:.7;transform:translate(-50%,-50%) scale(1) rotate(0);border-color:#f5d68c55}}@keyframes portal-turn{to{transform:translate(-50%,-50%) scale(1) rotate(360deg)}}@keyframes ribbon-cast{0%{opacity:0;transform:rotate(var(--r)) scaleX(.05)}35%{opacity:1}100%{opacity:0;transform:rotate(var(--r)) scaleX(1.25)}}@keyframes ribbon-invite{0%,100%{transform:rotate(var(--r)) scaleX(.55);opacity:.12}50%{transform:rotate(var(--r)) scaleX(1.15);opacity:.8}}@keyframes cat-reveal-leap{0%{transform:translateY(0) scale(1)}35%{transform:translateY(15px) scale(1.04,.95)}65%{transform:translateY(-30px) scale(.96,1.06)}100%{transform:translateY(0) scale(1)}}@keyframes moon-burst{0%{opacity:1;box-shadow:0 0 12px #fff3c4}100%{opacity:0;width:500px;height:500px;border-width:1px}}@keyframes call-rise{to{opacity:1;transform:translateX(-50%) translateY(0)}}@keyframes palm-breathe{50%{transform:translate(-4px,-7px) rotate(0) scale(1.035);filter:drop-shadow(0 0 19px #c7f4cd)}}@keyframes glyph-glint{0%,70%,100%{opacity:.38;text-shadow:0 0 5px #ffe8a8}82%{opacity:1;text-shadow:0 0 18px #fff2bb}}@keyframes cat-ready-hop{to{transform:translateY(-7px)}}
@media(max-width:800px){.mystic-portal{width:118%}.mystic-portal span{font-size:13px;transform:rotate(calc(var(--n)*45deg)) translateY(-115px) rotate(calc(var(--n)*-45deg))}.intro-call{bottom:20px}.intro-call strong{font-size:12px}}

/* First-screen promise stays visible; motion never gates the upload action. */
.opening-promise{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:22px 0 4px;max-width:520px}.opening-promise span{position:relative;min-height:62px;padding:12px 10px 11px 34px;border-top:1px solid #7ba08b66;color:#d7e0d5;font-size:12px;line-height:1.55;text-align:left}.opening-promise i{position:absolute;left:7px;top:13px;color:#e9c777;font:11px/1 Georgia,serif}.opening-promise span:nth-child(1){border-color:#a7dbc08c}.opening-promise span:nth-child(2){border-color:#e8c87d8c}.opening-promise span:nth-child(3){border-color:#d9a9c58c}
.cat-stage[data-intro-beat=summon] .mystic-portal{animation-duration:1.05s}.cat-stage[data-intro-beat=summon] .moon-ribbons i{animation-duration:.9s}.cat-stage[data-intro-beat=summon] .moon-motes i{animation-duration:1.15s}.cat-stage[data-intro-beat=invite] .mystic-portal{opacity:.76}.cat-stage[data-intro-beat=invite] .intro-call{animation-delay:0s}
@media(max-width:800px){.opening-promise{grid-template-columns:1fr;margin:14px 0 0;gap:0}.opening-promise span{min-height:42px;padding:8px 8px 8px 34px}.opening-promise i{top:10px}}

/* 首屏能力演示台：三项能力常驻，当前动作形成明显焦点。 */
#greeting strong{display:inline;color:#f0ce7d;font-weight:400;text-shadow:0 0 22px #e9bd6142;white-space:nowrap}.ability-orbit{position:absolute;z-index:4;inset:10% -5% 15%;pointer-events:none}.ability-orbit>button{position:absolute;width:160px;padding:10px 12px;border:1px solid #789b8960;border-radius:14px;background:#12383ad9;color:#dce8dd;text-align:left;opacity:.64;transform:scale(.92);transition:opacity .3s,transform .42s cubic-bezier(.18,.9,.28,1),border-color .3s,box-shadow .3s}.ability-orbit b{display:grid;place-items:center;float:left;width:34px;height:34px;margin-right:9px;border:1px solid #e3c57480;border-radius:50%;color:#f0d38e;font:400 19px/1 'STSong',serif}.ability-orbit span{display:block;font-size:12px;font-weight:700;line-height:1.4}.ability-orbit small{display:block;margin-top:3px;color:#91ad9f;font-size:9px;line-height:1.35}.ability-orbit [data-ability-card=run]{left:-2%;top:18%}.ability-orbit [data-ability-card=draw]{right:-3%;top:28%}.ability-orbit [data-ability-card=find]{right:2%;bottom:0}.cat-stage[data-ability=run] [data-ability-card=run],.cat-stage[data-ability=draw] [data-ability-card=draw],.cat-stage[data-ability=find] [data-ability-card=find]{opacity:1;transform:scale(1.08);border-color:#f0cf7fa6;box-shadow:0 0 0 4px #efd48712,0 13px 35px #001f2680,0 0 26px #9ed8bd26}.cat-stage[data-ability=run] [data-ability-card=run] b,.cat-stage[data-ability=draw] [data-ability-card=draw] b,.cat-stage[data-ability=find] [data-ability-card=find] b{background:#e9cf91;color:#173937;animation:ability-token .75s ease-in-out infinite alternate}
.cat-stage[data-ability=run] .orbit{border-width:3px;border-color:#a9dec18c;animation:ability-route-run 1.15s linear infinite}.cat-stage[data-ability=draw] .orbit{border-color:#f1cc788c;box-shadow:inset 0 0 32px #e8c4701f;animation:ability-route-draw 1.4s ease-in-out infinite}.cat-stage[data-ability=find] .halo{background:radial-gradient(circle at 70% 35%,#f4d17f44 0 5%,#8bd0af18 7% 23%,transparent 47%);animation:ability-find-pulse 1s ease-in-out infinite}
.opening-promise span{display:grid;grid-template-columns:30px 1fr;grid-template-rows:auto auto;column-gap:8px}.opening-promise i{position:static;grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border:1px solid #ddc17a66;border-radius:50%;font:400 15px/1 'STSong',serif}.opening-promise b{font-size:12px;font-weight:700;color:#ebead8}.opening-promise small{font-size:9px;color:#8fac9e}.opening-promise span:nth-child(1) i{color:#9fe0c2}.opening-promise span:nth-child(2) i{color:#f0cf7f}.opening-promise span:nth-child(3) i{color:#dfa9ca}
@keyframes ability-token{to{transform:scale(1.12);box-shadow:0 0 15px #f6df9b}}@keyframes ability-route-run{to{transform:rotate(340deg)}}@keyframes ability-route-draw{50%{transform:rotate(-12deg) scale(1.03)}}@keyframes ability-find-pulse{50%{filter:brightness(1.4)}}
@media(max-width:1100px){.ability-orbit>button{width:138px}.ability-orbit [data-ability-card=run]{left:-5%}.ability-orbit [data-ability-card=draw]{right:-7%}.ability-orbit [data-ability-card=find]{right:-3%}}
@media(max-width:800px){.ability-orbit{display:none}#greeting strong{white-space:normal}.opening-promise b{font-size:11px}}


.ability-orbit>button{font-family:inherit;cursor:pointer;pointer-events:auto}.ability-orbit>button:hover,.ability-orbit>button:focus-visible{opacity:1;transform:scale(1.08);border-color:#f0cf7fa6;outline:none}

/* 连续角色小剧场：空的掌位只提示“把手放这里”，不冒充用户的手。 */
.hand-invitation{position:absolute;z-index:1;right:-4%;top:14%;width:43%;aspect-ratio:180/230;opacity:.28;pointer-events:none;transform:translateX(18px) scale(.92);transition:opacity .35s,transform .55s cubic-bezier(.2,.9,.25,1);filter:drop-shadow(0 0 12px #9bd8bd38)}.hand-invitation svg{width:100%;height:100%;overflow:visible}.hand-invitation__route{fill:#8ed1b308;stroke:#a9dec2;stroke-width:2;stroke-dasharray:5 8}.hand-invitation__trace{fill:none;stroke:#efd083;stroke-width:2.5;stroke-linecap:round;stroke-dasharray:280;stroke-dashoffset:280}.hand-invitation i{position:absolute;left:var(--x);top:var(--y);width:8px;height:8px;border:1px solid #f1d58d;border-radius:50%;background:#163d3d;box-shadow:0 0 0 0 #f0d48755;opacity:.45}.hand-invitation span{position:absolute;left:50%;bottom:3%;transform:translateX(-50%);width:max-content;padding:5px 10px;border:1px solid #86ac9760;border-radius:16px;background:#113638d9;color:#d9e5db;font-size:10px;letter-spacing:1px}
.cat-stage[data-story=listen] .hand-invitation{opacity:.52;transform:translateX(0) scale(1)}.cat-stage[data-story=listen] .hand-invitation i{animation:fingertip-call .65s calc(var(--y)*.005s) ease-out both}.cat-stage[data-story=outline] .hand-invitation{opacity:.85;transform:translateX(0) scale(1.02)}.cat-stage[data-story=outline] .hand-invitation__route{stroke-dasharray:520;stroke-dashoffset:520;animation:hint-route-draw 1.25s ease-out forwards}.cat-stage[data-story=outline] .hand-invitation i{animation:fingertip-ping .8s ease-in-out infinite alternate}.cat-stage[data-story=draw] .hand-invitation{opacity:.9}.cat-stage[data-story=draw] .hand-invitation__trace{animation:hint-trace-draw 1.35s ease-out forwards}.cat-stage[data-story=find] .hand-invitation{opacity:1;filter:drop-shadow(0 0 20px #a8e2c280)}.cat-stage[data-story=find] .hand-invitation::after{content:'';position:absolute;left:66%;top:52%;width:22px;height:22px;border:2px solid #f2cf78;border-radius:50%;animation:hint-found 1s ease-out infinite}.cat-stage[data-story=wait] .hand-invitation{opacity:.58;transform:translateX(0) scale(1)}.cat-stage[data-story=wait] .hand-invitation i{animation:fingertip-breathe 2.2s ease-in-out infinite}
.conversation .ability-orbit{position:static;display:flex;gap:8px;margin:17px 0 5px;pointer-events:auto}.conversation .ability-orbit>button{position:relative!important;inset:auto!important;flex:1;width:auto;min-height:64px;transform:none;opacity:.72;padding:10px 8px;background:#15393adb}.conversation .ability-orbit>button:hover,.conversation .ability-orbit>button:focus-visible,.cat-stage[data-ability=run]~.conversation [data-ability-card=run]{transform:none}.conversation .ability-orbit b{width:28px;height:28px;font-size:15px}.conversation .ability-orbit span{font-size:11px}.conversation .ability-orbit small{font-size:9px}.conversation .ability-orbit [aria-current=true]{opacity:1;border-color:#edcd7e99;box-shadow:inset 0 -2px 0 #e8c875,0 8px 24px #001f263d}.conversation .ability-orbit [aria-current=true] b{background:#e7cc8e;color:#153735}
@keyframes fingertip-call{0%{opacity:0;transform:scale(.2)}70%{opacity:1;transform:scale(1.35)}100%{opacity:.7;transform:scale(1)}}@keyframes fingertip-ping{to{box-shadow:0 0 0 9px #f0d48700;transform:scale(1.2)}}@keyframes fingertip-breathe{50%{opacity:1;box-shadow:0 0 12px #f0d487}}@keyframes hint-route-draw{to{stroke-dashoffset:0}}@keyframes hint-trace-draw{to{stroke-dashoffset:0}}@keyframes hint-found{to{opacity:0;transform:scale(3.2);border-width:1px}}
@media(max-width:800px){.hand-invitation{right:-9%;top:8%;width:48%}.hand-invitation span{font-size:8px}.conversation .ability-orbit{display:grid;grid-template-columns:repeat(3,1fr)}.conversation .ability-orbit small{display:none}}

/* Character blocking: Yuejian physically approaches the empty palm slot. */
.cat-stage[data-story=outline] .cat-character{animation:opening-cat-scout 1.25s cubic-bezier(.22,.82,.2,1) both}.cat-stage[data-story=draw] .cat-character{animation:opening-cat-draw 1.35s cubic-bezier(.2,.85,.25,1) both}.cat-stage[data-story=find] .cat-character{animation:opening-cat-find 1.15s cubic-bezier(.16,.9,.26,1) both}.cat-stage[data-story=wait] .cat-character{transform:translateX(0)}
@keyframes opening-cat-scout{0%{transform:translateX(0) scale(1)}15%{transform:translateX(-8px) scale(1.03,.97)}55%{transform:translateX(38px) translateY(-5px) scale(.98,1.02)}100%{transform:translateX(20px) scale(1)}}@keyframes opening-cat-draw{0%{transform:translateX(20px)}25%{transform:translateX(32px) rotate(2deg)}70%{transform:translateX(27px) rotate(-2deg)}100%{transform:translateX(20px)}}@keyframes opening-cat-find{0%{transform:translateX(20px) scale(1)}28%{transform:translateX(5px) translateY(6px) scale(1.05,.94)}58%{transform:translateX(48px) translateY(-18px) scale(.96,1.06)}76%{transform:translateX(38px) translateY(2px) scale(1.05,.95)}100%{transform:translateX(30px) scale(1)}}

/* Separate the character from the palm slot so the invitation reads at a glance. */
body:not(.has-hand) .cat-stage .cat-character{left:-7%}.hand-invitation{right:-8%;top:8%;width:46%}
@media(max-width:800px){body:not(.has-hand) .cat-stage .cat-character{left:-4%}.hand-invitation{right:-16%;top:5%;width:53%}}

/* Yuejian's continuous anime palmistry theatre. */
.cat-stage .cat-performer .cp-orb{display:inline!important;transform-origin:250px 409px}.cat-stage[data-story=listen] .cp-orb,.cat-stage[data-story=wait] .cp-orb{animation:orb-companion 2.2s ease-in-out infinite}.cat-stage[data-story=outline] .cp-orb{animation:orb-route-charge 1.25s cubic-bezier(.18,.86,.24,1) both}.cat-stage[data-story=draw] .cp-orb{animation:orb-ink-pulse .72s ease-in-out infinite alternate}.cat-stage[data-story=find] .cp-orb{animation:orb-discovery-burst 1.05s cubic-bezier(.16,.9,.22,1) both}
.anime-effects{position:absolute;z-index:2;inset:0;pointer-events:none;overflow:visible}.sakura i{position:absolute;width:10px;height:7px;border-radius:80% 15% 80% 15%;background:linear-gradient(135deg,#ffd4dd,#eaa7ba);opacity:.55;filter:drop-shadow(0 0 4px #f2b6c5);animation:sakura-drift var(--d,6s) linear infinite}.sakura i:nth-child(1){left:7%;top:5%;--d:6.2s;animation-delay:-1s}.sakura i:nth-child(2){left:28%;top:-3%;--d:7.4s;animation-delay:-5s}.sakura i:nth-child(3){left:58%;top:2%;--d:6.8s;animation-delay:-3s}.sakura i:nth-child(4){left:80%;top:9%;--d:8s;animation-delay:-6s}.sakura i:nth-child(5){left:91%;top:23%;--d:7.1s;animation-delay:-2s}.sakura i:nth-child(6){left:43%;top:1%;--d:8.4s;animation-delay:-7s}
.washi-charms b{position:absolute;top:12%;width:32px;height:64px;padding-top:15px;background:linear-gradient(90deg,#f2e8cfdd,#fff8e8e8,#e6d6b8d8);clip-path:polygon(0 0,100% 0,100% 82%,50% 100%,0 82%);color:#315b55;font:400 15px/1 'STSong',serif;text-align:center;box-shadow:0 4px 12px #001c244f;transform-origin:50% 0;animation:charm-sway 3.2s ease-in-out infinite}.washi-charms b:nth-child(1){left:11%;transform:rotate(-7deg)}.washi-charms b:nth-child(2){right:8%;top:21%;animation-delay:-1.1s;transform:rotate(7deg)}.washi-charms b:nth-child(3){right:22%;top:5%;animation-delay:-2s;transform:rotate(-3deg)}
.mizuhiki{position:absolute;left:50%;top:50%;width:86%;height:56%;transform:translate(-50%,-50%);opacity:.28}.mizuhiki i{position:absolute;inset:12%;border:2px solid #bd5868;border-radius:50% 45% 55% 50%;transform:rotate(18deg)}.mizuhiki i+ i{border-color:#d4ad59;transform:rotate(-20deg) scale(.78)}
.anime-speedlines{position:absolute;inset:8%;border-radius:50%;opacity:0;background:repeating-conic-gradient(from 0deg,transparent 0 7deg,#f7dfa81f 7.4deg 7.8deg,transparent 8deg 14deg);mask:radial-gradient(circle,transparent 0 54%,#000 67%);transform:scale(.7)}.cat-stage[data-story=outline] .anime-speedlines,.cat-stage[data-story=find] .anime-speedlines{animation:anime-speed-impact .72s ease-out both}.cat-stage[data-story=find] .anime-speedlines{filter:sepia(.4) saturate(1.4)}
.palmistry-labels em{position:absolute;padding:3px 7px;border-radius:12px;background:#163a3bde;border:1px solid #e6c67866;color:#f0d998;font:10px/1.2 'STSong',serif;opacity:0}.palmistry-labels em:nth-child(1){left:49%;top:61%}.palmistry-labels em:nth-child(2){left:46%;top:49%}.palmistry-labels em:nth-child(3){left:55%;top:72%}.cat-stage[data-story=draw] .palmistry-labels em,.cat-stage[data-story=wait] .palmistry-labels em{animation:label-reveal .35s calc(var(--label,0)*.15s) ease-out forwards}.palmistry-labels em:nth-child(2){--label:1}.palmistry-labels em:nth-child(3){--label:2}
.mount-stars b{position:absolute;width:7px;height:7px;border-radius:50%;background:#f4d682;box-shadow:0 0 8px #ffe9a3;opacity:0}.mount-stars b:nth-child(1){left:37%;top:53%}.mount-stars b:nth-child(2){left:48%;top:41%}.mount-stars b:nth-child(3){left:63%;top:43%}.mount-stars b:nth-child(4){left:72%;top:55%}.mount-stars b:nth-child(5){left:45%;top:68%}.mount-stars b:nth-child(6){left:60%;top:65%}.mount-stars b:nth-child(7){left:54%;top:79%}.cat-stage[data-story=find] .mount-stars b{animation:mount-star-pop .7s calc(var(--star,0)*.07s) cubic-bezier(.2,1.4,.3,1) forwards}.mount-stars b:nth-child(2){--star:1}.mount-stars b:nth-child(3){--star:2}.mount-stars b:nth-child(4){--star:3}.mount-stars b:nth-child(5){--star:4}.mount-stars b:nth-child(6){--star:5}.mount-stars b:nth-child(7){--star:6}
@keyframes orb-companion{50%{transform:translateY(-5px) scale(1.045);filter:drop-shadow(0 0 18px #ffe7a0)}}@keyframes orb-route-charge{0%{transform:scale(.78);filter:brightness(.7)}45%{transform:scale(1.25);filter:brightness(1.35) drop-shadow(0 0 25px #fff0a9)}100%{transform:scale(1)}}@keyframes orb-ink-pulse{to{transform:scale(1.08);filter:hue-rotate(-12deg) drop-shadow(0 0 18px #f0bf6d)}}@keyframes orb-discovery-burst{0%{transform:scale(.82)}42%{transform:scale(1.38);filter:brightness(1.6) drop-shadow(0 0 30px #fff3b7)}100%{transform:scale(1)}}@keyframes sakura-drift{0%{transform:translate(0,-25px) rotate(0);opacity:0}12%{opacity:.62}55%{transform:translate(38px,260px) rotate(240deg)}100%{transform:translate(-16px,530px) rotate(520deg);opacity:0}}@keyframes charm-sway{0%,100%{rotate:-4deg}50%{rotate:5deg}}@keyframes anime-speed-impact{0%{opacity:0;transform:scale(.55) rotate(-8deg)}35%{opacity:.85}100%{opacity:0;transform:scale(1.16) rotate(4deg)}}@keyframes label-reveal{from{opacity:0;transform:translateY(6px) scale(.8)}to{opacity:1;transform:none}}@keyframes mount-star-pop{0%{opacity:0;transform:scale(.1)}70%{opacity:1;transform:scale(1.8)}100%{opacity:.85;transform:scale(1)}}
@media(max-width:800px){.washi-charms b{width:22px;height:43px;font-size:10px;padding-top:10px}.sakura i:nth-child(n+5){display:none}.palmistry-labels em{font-size:7px;padding:2px 4px}}

/* Quiet opening direction: the scene breathes; capability moments arrive as occasional discoveries. */
.cat-stage[data-intro-beat=invite] .mystic-portal{animation-duration:38s}
.cat-stage[data-story=listen] .cp-orb,.cat-stage[data-story=wait] .cp-orb{animation-duration:5.8s}
.cat-stage[data-story=outline] .cp-orb{animation-duration:3.7s}
.cat-stage[data-story=draw] .cp-orb{animation-duration:2.4s}
.cat-stage[data-story=find] .cp-orb{animation-duration:2.8s}
.sakura i:nth-child(1){--d:15.2s}.sakura i:nth-child(2){--d:18.4s}.sakura i:nth-child(3){--d:16.8s}.sakura i:nth-child(4){--d:20s}.sakura i:nth-child(5){--d:17.1s}.sakura i:nth-child(6){--d:21.4s}
.washi-charms b{animation-duration:8.6s}.washi-charms b:nth-child(2){animation-delay:-3.1s}.washi-charms b:nth-child(3){animation-delay:-5.4s}
.cat-stage[data-story=listen] .hand-invitation i{animation-duration:1.8s}
.cat-stage[data-story=outline] .hand-invitation__route{animation-duration:3.6s;animation-timing-function:cubic-bezier(.2,.62,.25,1)}
.cat-stage[data-story=outline] .hand-invitation i{animation-duration:2.4s}
.cat-stage[data-story=draw] .hand-invitation__trace{animation-duration:4.1s;animation-timing-function:cubic-bezier(.2,.62,.25,1)}
.cat-stage[data-story=find] .hand-invitation::after{animation-duration:2.6s}
.cat-stage[data-story=wait] .hand-invitation i{animation-duration:4.8s}
.cat-stage[data-story=outline] .cat-character{animation-duration:3.9s;animation-timing-function:cubic-bezier(.22,.7,.22,1)}
.cat-stage[data-story=draw] .cat-character{animation-duration:4.3s;animation-timing-function:cubic-bezier(.2,.68,.25,1)}
.cat-stage[data-story=find] .cat-character{animation-duration:3.6s;animation-timing-function:cubic-bezier(.16,.72,.26,1)}
.cat-stage[data-story=outline] .anime-speedlines,.cat-stage[data-story=find] .anime-speedlines{animation-duration:1.8s;opacity:.55}
body.intro-engaged .cat-stage .mystic-portal{animation-duration:16s}
body.intro-engaged .moon-ribbons i{animation-duration:3.4s}
body.intro-engaged .cat-character{animation:cat-ready-hop 2.6s ease-in-out infinite alternate}

/* The opening promises a personal reading instead of presenting implementation capabilities. */
.reading-invitation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:560px;margin:24px 0 6px}
.reading-invitation span{position:relative;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;column-gap:10px;min-height:70px;padding:12px 10px;border-top:1px solid #8db6a066;color:#dce6dc;background:linear-gradient(180deg,#8ac0a808,transparent);transition:border-color .8s ease,background .8s ease}
.reading-invitation i{grid-row:1/3;display:grid;place-items:center;width:32px;height:32px;border:1px solid #dfc47a73;border-radius:50%;color:#edcf84;font:400 16px/1 'STSong',serif;box-shadow:inset 0 0 14px #eccd7c0a}
.reading-invitation b{font-size:12px;font-weight:600;line-height:1.55;color:#efeddf;letter-spacing:.04em}
.reading-invitation small{font-size:9px;line-height:1.5;color:#91aea0}
.reading-invitation span:nth-child(2){border-color:#dfc47a66}.reading-invitation span:nth-child(3){border-color:#d4a6c266}
@media(max-width:800px){.reading-invitation{grid-template-columns:1fr;gap:0;margin-top:16px}.reading-invitation span{min-height:50px;padding:9px 8px}.reading-invitation i{width:28px;height:28px;font-size:14px}}

#experienceBuild{margin-left:8px;color:#d2bd82;font-size:9px;font-weight:400;letter-spacing:.08em}
