:root{font-family:system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;color:#fffaf4;background:#18122d}*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(circle at 80% 10%,#6c4a94 0,transparent 37%),radial-gradient(circle at 10% 75%,#463470 0,transparent 35%),#18122d;overflow-x:hidden}.sky{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(#ffe7b7 1px,transparent 1px),radial-gradient(#a996d9 1px,transparent 1px);background-size:113px 137px,173px 161px;opacity:.35;animation:float 18s ease-in-out infinite alternate}@keyframes float{to{transform:translateY(-20px)}}.shell{position:relative;max-width:950px;min-height:100vh;margin:auto;padding:16px 18px 40px}header{display:flex;align-items:center;justify-content:space-between;gap:14px}.brand{color:#fffaf4;text-decoration:none;font-size:24px;font-weight:900}.brand small{display:block;font-size:10px;letter-spacing:.28em;color:#edcf8c}header>span{font-size:13px;color:#e7d6fb}.nav{display:flex;justify-content:space-between;gap:10px;margin:20px 0}.nav button{border:0;background:transparent;color:#f3e8ff;padding:10px 4px;font:inherit;cursor:pointer}.nav button:disabled{opacity:.35}main{border:1px solid #b49ad48f;border-radius:32px;min-height:580px;overflow:hidden;background:linear-gradient(145deg,#382952ec,#261d43f2);padding:clamp(22px,5vw,48px);box-shadow:0 28px 70px #0d092d88}.scene-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(100px,220px);align-items:center;gap:12px}.cat{width:100%;max-height:230px;object-fit:contain;filter:drop-shadow(0 15px 20px #1b1139);animation:bob 4s ease-in-out infinite}@keyframes bob{50%{transform:translateY(-8px)}}.eyebrow{color:#f0c987;letter-spacing:.18em;font-size:12px;font-weight:700}h1{font-size:clamp(29px,7vw,55px);line-height:1.16;margin:12px 0;letter-spacing:-.025em}h2{font-size:clamp(24px,5vw,38px);line-height:1.2;margin:12px 0}p{line-height:1.65}.lead{font-size:clamp(15px,2vw,18px);color:#e8dff2;max-width:55ch}.choices,.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0}.choices.two{grid-template-columns:repeat(2,minmax(0,1fr))}button,.button{font:inherit;cursor:pointer}button:focus-visible,.button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffda80;outline-offset:3px}.choice,.slot,.rune{min-height:110px;text-align:left;border:1px solid #a994ce;border-radius:20px;padding:17px;background:#ffffff12;color:#fff9f3;transition:transform .18s,background .18s,border-color .18s}.choice:hover,.slot:hover,.rune:hover{transform:translateY(-2px);background:#ffffff25}.choice strong,.slot strong{display:block;font-size:20px}.choice span{display:block;font-size:30px;margin-bottom:7px}.choice small,.slot small{display:block;color:#dfcfe9;line-height:1.45;margin-top:7px}.selected{border-color:#f7cd83!important;background:#7757aa66!important}.actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:25px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border-radius:14px;padding:10px 18px;border:1px solid #f2d393;background:#f2d393;color:#2b1c42;font-weight:750;text-decoration:none}.button.secondary{background:transparent;color:#fff4df}.fine{color:#d8cce7;font-size:13px}.upload{display:block;border:1px dashed #c7b0e4;border-radius:18px;padding:22px;margin:22px 0}.upload input{display:block;width:100%;margin-top:12px;color:#fff}.preview{display:block;max-width:min(100%,320px);max-height:320px;object-fit:contain;border-radius:16px;margin:16px auto}.card{margin:24px auto;padding:22px;border:1px solid #f5d79b;border-radius:24px;max-width:480px;background:linear-gradient(150deg,#644687,#301f53);text-align:center;box-shadow:0 18px 34px #160e3e}.card .glyph{font-size:65px;display:block;color:#f6d496}.card h2{color:#ffe3aa}.card p{color:#f2e7ff}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:20px 0}.slot{min-height:170px}.slot.done{background:#8460a36b;border-color:#f5d79b}.runes{display:flex;gap:9px;flex-wrap:wrap}.rune{min-height:48px;min-width:100px;touch-action:none;text-align:center;padding:9px 14px}.rune[aria-pressed=true]{background:#f4d49a;color:#2b1c42}.message{min-height:24px;color:#ffe2a0}.note{border-left:3px solid #f2d393;padding:10px 15px;background:#ffffff0d;border-radius:0 12px 12px 0}footer{text-align:center;color:#cbbddc;font-size:12px;padding:30px 10px}footer a{color:#f4d696}.hidden{display:none!important}@media(max-width:600px){.shell{padding:12px 12px 30px}main{min-height:540px;border-radius:25px;padding:22px}.scene-head{grid-template-columns:minmax(0,1fr) 105px}.cat{max-height:160px}.choices{grid-template-columns:repeat(2,minmax(0,1fr))}.board{grid-template-columns:1fr}.slot{min-height:105px}.choice{min-height:115px}.actions>*{flex:1 1 100%}}@media(max-width:360px){.scene-head{grid-template-columns:1fr}.cat{max-height:130px;margin:auto}.choices,.choices.two{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;scroll-behavior:auto!important;transition:none!important}}
@media(min-width:361px) and (max-width:600px){.scene-head{grid-template-columns:minmax(0,1fr) 84px;gap:8px}.scene-head h1{font-size:27px}.cat{max-height:135px}}

/* 每张心愿星和主题牌都有自己的色温，保持星月猫的深色宇宙底座。 */
body{--star-accent:#e7ceff;--star-soft:#8e63c8;--star-glow:#62418c;--panel-top:#3b2a59;--panel-bottom:#241a3f;background:radial-gradient(circle at 82% 8%,var(--star-glow) 0,transparent 38%),radial-gradient(circle at 12% 82%,#423262 0,transparent 42%),#18122d}
body[data-palette="gold"]{--star-accent:#ffe2a2;--star-soft:#af7950;--star-glow:#765132;--panel-top:#443050;--panel-bottom:#281d39}
body[data-palette="pink"]{--star-accent:#ffd0e4;--star-soft:#ae698f;--star-glow:#753b6b;--panel-top:#4b2b57;--panel-bottom:#2b1d40}
body[data-palette="blue"]{--star-accent:#c8eaff;--star-soft:#668eb9;--star-glow:#2e6382;--panel-top:#253c5e;--panel-bottom:#1d253f}
body[data-palette="violet"]{--star-accent:#e7ceff;--star-soft:#8e63c8;--star-glow:#62418c;--panel-top:#3b2a59;--panel-bottom:#241a3f}
body[data-scene="profile"]{background-position:0 0,0 0;background-color:#1b1832}
body[data-scene="deck"] .sky,body[data-scene="reveal"] .sky{opacity:.56}
main{background:linear-gradient(150deg,var(--panel-top),var(--panel-bottom));border-color:color-mix(in srgb,var(--star-accent) 48%,transparent)}
.eyebrow,.card .glyph,.card h2{color:var(--star-accent)}
.card{border-color:var(--star-accent);background:linear-gradient(150deg,color-mix(in srgb,var(--star-soft) 55%,#241a3f),var(--panel-bottom))}
.button{background:var(--star-accent);border-color:var(--star-accent)}
.button.secondary{border-color:var(--star-accent)}
.selected,.slot.done{border-color:var(--star-accent)!important;background:color-mix(in srgb,var(--star-soft) 35%,transparent)!important}
.note{border-left-color:var(--star-accent)}
h1,h2,.lead,.choice strong,.formation-choice strong{text-wrap:balance;overflow-wrap:anywhere}
.scene-head>div{min-width:0}
.section-title{font-size:clamp(22px,4vw,30px);margin:28px 0 10px}
.profile-form{display:grid;gap:14px;max-width:620px;margin:24px 0}
.profile-form label{display:block;font-weight:750;color:#fffaf4}
.profile-form label small{font-weight:400;color:#ded1e8}
.profile-form input,.profile-form select{display:block;width:100%;min-height:49px;margin-top:8px;border:1px solid #d8c8e7;border-radius:13px;padding:11px 14px;background:#fffaf4;color:#211833;font:inherit}
.form-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.deck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:28px 0}
.deck-card{position:relative;min-height:242px;border:2px solid var(--star-accent);border-radius:23px;background:radial-gradient(circle at 50% 35%,color-mix(in srgb,var(--star-soft) 50%,transparent),transparent 60%),linear-gradient(160deg,var(--panel-top),#1a1532);color:#fff9f3;box-shadow:0 12px 28px #0a092a80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;transition:transform .18s,box-shadow .18s}
.deck-card::before{content:"";position:absolute;inset:10px;border:1px solid color-mix(in srgb,var(--star-accent) 65%,transparent);border-radius:15px;pointer-events:none}
.deck-card:hover,.deck-card:focus-visible{transform:translateY(-8px);box-shadow:0 22px 38px #090820a8}
.deck-card span{font-size:56px;color:var(--star-accent)}
.deck-card b{font-size:18px}.deck-card small{color:#eadff2}
.formation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0}
.formation-choice{text-align:left;min-height:137px;border:1px solid #b8a6d0;border-radius:18px;padding:13px;background:#ffffff10;color:#fffaf4}
.formation-choice span{display:block;font-size:24px;color:var(--star-accent)}
.formation-choice strong,.formation-choice small{display:block;line-height:1.4}
.formation-choice strong{margin:6px 0;font-size:17px}.formation-choice small{color:#e4d8ed;font-size:12px}
.template-wrap{display:flex;align-items:center;justify-content:center;gap:28px;margin:22px 0;padding:20px;border:1px solid #a997c4;border-radius:22px;background:#ffffff0b}
.phone-template{flex:0 0 215px;width:215px;border:4px solid #f6ecff;border-radius:29px;padding:15px 10px 12px;background:#141029;box-shadow:0 15px 30px #0a081d8c}
.phone-notch{height:6px;width:54px;border-radius:99px;margin:0 auto 13px;background:#e9ddeb}
.phone-cells{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.template-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:57px;border:1px dashed #73688c;border-radius:10px;color:#8d83a2;font-size:18px;text-align:center}
.template-cell.open,.template-cell.guide{border:1px solid var(--star-accent);color:#211833;background:var(--star-accent)}
.template-cell.guide{background:color-mix(in srgb,var(--star-accent) 64%,#fff);border-color:#fff}
.template-cell b{font-size:13px}.template-cell small{font-size:10px;line-height:1.1}
.phone-dock{text-align:center;margin-top:9px;padding:6px;border:1px solid #716583;border-radius:9px;color:#c8bbd7;font-size:11px}
.template-copy{max-width:340px}.template-copy strong{font-size:21px;color:var(--star-accent)}.template-copy p{margin:8px 0}
.task{cursor:pointer}.task strong{display:flex;align-items:center;gap:9px}.task-check{display:inline-grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid var(--star-accent);border-radius:50%;font-size:15px;color:var(--star-accent)}
.task.done .task-check{background:var(--star-accent);color:#241a3f}.task em{display:block;margin-top:12px;font-size:12px;font-style:normal;color:var(--star-accent)}
@media(max-width:600px){.scene-head{display:grid;grid-template-columns:1fr;gap:0}.scene-head .cat{grid-row:1;justify-self:end;width:100px;max-height:112px;margin:0 0 -3px}.scene-head>div{grid-row:2}.scene-head h1{font-size:clamp(29px,8vw,39px);line-height:1.2}.deck-grid{gap:7px}.deck-card{min-height:176px;border-radius:16px;padding:9px}.deck-card::before{inset:6px;border-radius:11px}.deck-card span{font-size:36px}.deck-card b{font-size:14px}.deck-card small{font-size:11px}.formation-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.template-wrap{flex-direction:column;gap:14px;padding:16px}.phone-template{flex-basis:auto}.form-two{grid-template-columns:1fr}.board{grid-template-columns:1fr}.task{min-height:110px}}
@media(max-width:360px){.deck-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.formation-grid{grid-template-columns:1fr}}
