@font-face{font-family:LoveSerif;src:url(serif.woff2) format("woff2");font-weight:700;font-display:swap}
:root{
  --paper:#FCFAF7;--paper2:#EEECE8;--ink:#141414;--ink2:#373737;--muted:#8A8A8A;--line:#E6E4E0;
  --accent:#FFBEAF;--accent-soft:rgba(255,190,175,0.22);--accent-deep:#A03246;
  --brand0:#A03246;--brand1:#FFA08C;
  --c:var(--accent-deep);--c2:var(--accent-soft);
  --serif:"LoveSerif","Noto Serif SC","Songti SC","STSong",serif;
  --sans:-apple-system,"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif;
  --en:Georgia,"Times New Roman",Times,serif;
}
*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);min-height:100%}
body{font-family:var(--sans);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;background-color:var(--paper);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E")}
button{font-family:inherit}#app{min-height:100vh;opacity:0;transition:opacity .35s}html.fl #app{opacity:1}
.serif{font-family:var(--serif)}.en{font-family:var(--en);font-style:italic;color:var(--muted)}
@keyframes in{from{opacity:0;transform:translateY(14px)}}@keyframes out{to{opacity:0;transform:translateY(-10px)}}
.screen{animation:in .45s cubic-bezier(.2,.8,.2,1) both;padding-bottom:48px}.screen.out{animation:out .24s forwards}
.mast{background:var(--paper2);text-align:center;padding:14px 16px;font-size:12px;letter-spacing:.14em;color:#5A5A5A;border-bottom:1px solid var(--line)}
.btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;border:0;border-radius:18px;padding:16px 18px;font-size:16px;font-weight:600;letter-spacing:.04em;color:#fff;background:var(--ink);cursor:pointer;transition:transform .15s}
.btn:active{transform:scale(.98)}.btn.c{background:var(--accent-deep);color:#fff}.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}.btn:disabled{opacity:.55}
.linkbtn{background:none!important;border:0;color:var(--muted)!important;font-size:13px;margin-top:14px;text-decoration:underline;text-underline-offset:4px;cursor:pointer;width:100%;box-shadow:none!important}
.land{padding:0 0 48px;max-width:480px;margin:0 auto}.land .brand{display:none}
.land .cover-en{font-family:var(--en);font-weight:700;font-size:21px;line-height:1.35;text-align:center;padding:26px 28px 0;color:var(--ink)}
.land .cover-en small{display:block;font-weight:400;font-style:italic;font-size:14.5px;color:var(--ink2);margin-top:8px}
.land h1{font-family:var(--serif);font-size:28px;line-height:1.4;text-align:center;padding:16px 26px 0;letter-spacing:.02em}
.land h1 em{font-style:normal;border-bottom:3px solid color-mix(in srgb,var(--accent) 65%,transparent)}
.land .rule{height:6px;margin:20px 36px 0;background:var(--accent);border:0}
.land .lead{color:var(--ink2);font-size:14px;line-height:1.85;margin:14px 36px 0;font-family:var(--en)}
.land .lead .cn{display:block;font-family:var(--sans);margin-top:10px;font-style:normal}
.land .panel{margin:24px 28px 0;background:var(--accent);border-radius:4px;min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;gap:10px}
.land .panel .orbit{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;width:100%;height:auto;margin:0;position:static}
.land .panel .orbit .em{position:static!important;left:auto!important;top:auto!important;width:48px;height:48px;animation:none}
.land .panel .core{position:static;transform:none;text-align:center;width:auto}
.land .panel .core .big{font-family:var(--serif);font-size:56px;line-height:1;color:var(--ink)}
.land .panel .kicker{font-size:10px;letter-spacing:.28em;color:rgba(0,0,0,.55);text-transform:uppercase;font-family:var(--en)}
.meta{display:grid;grid-template-columns:repeat(3,1fr);margin:20px 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.meta div{padding:14px 6px;text-align:center}.meta b{display:block;font-family:var(--serif);font-size:22px}.meta span{font-size:11px;color:var(--muted);letter-spacing:.08em}
.land .btn{margin:8px 28px 0;width:calc(100% - 56px)}
.note{text-align:center;color:var(--muted);font-size:12px;line-height:1.7;margin:14px 28px 0}
.invite{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;gap:12px;align-items:center;margin:16px 28px 0}
.invite p{font-size:13px;line-height:1.55;color:var(--ink2)}.invite b{color:var(--ink)}
.qtop{display:flex;align-items:center;gap:12px;padding:14px 18px 8px;position:sticky;top:0;background:linear-gradient(var(--paper),rgba(252,250,247,.94));backdrop-filter:blur(8px);z-index:5}
.back{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);background:#fff;font-size:17px;color:var(--ink);cursor:pointer;flex:none}
.prog{flex:1;height:3px;border-radius:2px;background:var(--line);overflow:hidden}.prog i{display:block;height:100%;background:var(--accent-deep);border-radius:2px;transition:width .5s}
.qn{font-family:var(--en);font-size:12px;color:var(--muted);min-width:52px;text-align:right;letter-spacing:.06em}
.qbody{padding:14px 22px 40px}.chap{font-size:10px;letter-spacing:.32em;color:var(--muted);margin-bottom:12px;text-transform:uppercase;font-family:var(--en)}
.qtext{font-family:var(--serif);font-size:22px;line-height:1.55;margin-bottom:22px;color:var(--ink)}
.opt{display:flex;gap:14px;align-items:flex-start;width:100%;text-align:left;padding:15px 15px;margin-bottom:10px;border:1px solid var(--line);border-radius:12px;background:#fff;font-size:15px;line-height:1.6;color:var(--ink);cursor:pointer;transition:all .2s;animation:in .45s both}
.opt span{flex:none;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);font-size:11px;display:flex;align-items:center;justify-content:center;color:var(--muted);font-weight:600;margin-top:1px;font-family:var(--en)}
.opt.on{border-color:var(--accent-deep);background:var(--accent-soft)}.opt.on span{background:var(--accent-deep);color:#fff;border-color:var(--accent-deep)}
.calc{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:40px 24px}
.orb{position:relative;width:140px;height:140px;margin-bottom:22px}.orb i{position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--accent-deep);opacity:.18;animation:ring 2.4s ease-out infinite}
.orb i:nth-child(2){animation-delay:.8s}.orb i:nth-child(3){animation-delay:1.6s}
.orb .core{position:absolute;inset:16px;border-radius:4px;overflow:hidden;display:flex;align-items:center;justify-content:center;background:var(--accent)}
.orb .core svg{width:90%;height:90%}@keyframes ring{from{transform:scale(.4);opacity:.5}to{transform:scale(1.2);opacity:0}}
.calc h2{font-family:var(--serif);font-size:22px}.calc p{color:var(--muted);font-size:13px;margin-top:12px;min-height:20px}
.pct{font-family:var(--en);font-size:36px;color:var(--accent-deep);margin-top:14px}
.reveal{position:fixed;inset:0;background:var(--paper);z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.reveal .k{font-size:11px;letter-spacing:.4em;color:var(--muted);margin-bottom:14px;font-family:var(--en);text-transform:uppercase}
.reveal .big{width:170px;height:170px;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;animation:pop .65s cubic-bezier(.2,1.4,.3,1) both}
.reveal h2{font-family:var(--serif);font-size:34px;margin-top:16px}.reveal .en{margin-top:6px}.burst{display:none}
@keyframes pop{from{transform:scale(.2);opacity:0}}@keyframes fadein{from{opacity:0}}
.hero{background:var(--paper);padding:16px 24px 26px;text-align:center;border-bottom:1px solid var(--line)}
.hero:after{content:"";display:block;height:6px;background:var(--accent);margin:16px 36px 0}
.hero .code{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.24em;color:var(--muted);margin-bottom:8px;font-family:var(--en);text-transform:uppercase}
.hero .art{width:150px;height:150px;margin:6px auto;background:var(--accent);border-radius:4px;display:flex;align-items:center;justify-content:center;padding:8px}
.hero .art svg{width:100%;height:100%}.hero .kicker{font-size:10px;letter-spacing:.28em;color:var(--muted);font-family:var(--en);text-transform:uppercase;margin-top:6px}
.hero h1{font-family:var(--serif);font-size:34px;margin:6px 0 4px;color:var(--ink)!important;background:none!important;-webkit-text-fill-color:initial!important;-webkit-background-clip:initial!important}
.hero .tl{display:inline-block;margin-top:10px;padding:0;border:0;background:none;font-family:var(--serif);font-size:14.5px;color:var(--accent-deep)}
.sec{padding:20px 24px 0;max-width:520px;margin:0 auto}.rep{counter-reset:sec}
.rep .sec h3{counter-increment:sec;font-family:var(--serif);font-size:19px;margin-bottom:12px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;padding-top:14px;border-top:1px solid var(--line)}
.rep .sec h3:before{content:"0" counter(sec) " ·";font-family:var(--en);font-style:italic;font-size:12px;color:var(--accent-deep);letter-spacing:.06em;width:auto;background:none;height:auto;border:0;margin:0;align-self:auto}
.rep .sec h3 small{margin-left:auto;font-family:var(--en);font-size:10px;letter-spacing:.2em;color:var(--muted);font-weight:500}
.sec p{font-size:15px;line-height:1.9;color:var(--ink2);margin-bottom:10px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stat{background:#fff;border:1px solid var(--line);border-radius:10px;padding:12px 8px;text-align:center}
.stat b{display:block;font-family:var(--serif);font-size:24px;color:var(--accent-deep)}.stat b sup{font-size:11px}.stat em{display:block;font-style:normal;font-size:12px;margin-top:3px}.stat span{font-size:10px;color:var(--muted)}
.fine{font-size:11px;color:var(--muted);margin-top:8px!important}
.dim{margin-bottom:12px}.dim .h{display:flex;justify-content:space-between;font-size:13px;margin-bottom:5px}.dim .h b{font-family:var(--serif);color:var(--accent-deep)}
.track{height:6px;background:var(--line);border-radius:3px;overflow:hidden}.track i{display:block;height:100%;width:0;background:var(--accent-deep);border-radius:3px;transition:width .8s}
.card{background:#fff;border:1px solid var(--line);border-radius:10px;padding:14px}.card.glow{border-left:4px solid var(--accent-deep);background:linear-gradient(90deg,var(--accent-soft),#fff)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips span{background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 12px;font-size:12.5px}
.list{list-style:none}.list li{position:relative;padding:9px 0 9px 16px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.7}.list li:last-child{border:0}
.list li:before{content:"";position:absolute;left:0;top:16px;width:6px;height:6px;border-radius:50%;background:var(--accent-deep)}
.mt{display:flex;gap:12px;align-items:center;margin-bottom:10px}.mt .lb{font-size:10px;letter-spacing:.24em;color:var(--muted);font-family:var(--en)}.mt h4{font-family:var(--serif);font-size:17px;margin-top:2px}
.word{background:var(--ink);color:#fff;border-radius:4px;padding:22px 18px;text-align:center}
.word .lb{font-size:10px;letter-spacing:.36em;opacity:.55;font-family:var(--en)}.word p{font-family:var(--serif);font-size:17px;line-height:1.8;color:#fff;margin:10px 0 0}
.quote{background:#fff;border:1px solid var(--line);border-radius:4px;padding:18px;text-align:left;border-top:6px solid var(--accent)}
.quote:before{display:none}.quote .q1{font-family:var(--en);font-style:italic;font-size:14.5px;color:var(--ink2);margin-bottom:8px}.quote .q2{font-family:var(--serif);font-size:14px;line-height:1.7}
.acts{padding:22px 24px 8px;display:flex;flex-direction:column;gap:10px;max-width:520px;margin:0 auto}
.scene{padding:12px 12px 2px;margin-bottom:8px;border-radius:4px;background:var(--accent-soft);border:1px solid var(--line)}
.scene .sh{display:flex;align-items:center;gap:8px;font-family:var(--serif);font-size:14.5px;margin-bottom:6px}
.scene .sh span{width:26px;height:26px;border-radius:4px;display:grid;place-items:center;background:var(--accent);font-size:12px}
.job{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.job:last-child{border:0}
.job b{font-family:var(--en);font-style:italic;font-size:22px;color:var(--accent-deep);line-height:1;min-width:30px}
.job h4,.fam h4,.wk h4{font-family:var(--serif);font-size:14.5px;margin-bottom:3px}
.job p,.fam p,.wk p{font-size:13px!important;color:var(--muted)!important;margin:0!important;line-height:1.7!important}
.fam{display:grid;gap:8px}.fam>div{padding:12px;border-radius:4px;background:#fff;border:1px solid var(--line);border-left:4px solid var(--accent)}.fam>div:after{display:none}
.trap{border-radius:4px;overflow:hidden;margin-bottom:8px;border:1px solid var(--line);background:#fff}
.trap .tq{padding:11px 12px;font-family:var(--serif);font-size:14px;border-bottom:1px solid var(--line)}.trap .tq:before{content:"※ ";color:var(--accent-deep)}
.trap .ta{padding:11px 12px;font-size:13px;line-height:1.7;background:var(--accent-soft)}.trap .ta b{color:var(--accent-deep)}
.plan{position:relative}.plan:before{content:"";position:absolute;left:13px;top:8px;bottom:8px;width:1px;background:var(--accent)}
.wk{display:flex;gap:12px;padding:8px 0 10px}.wk i{flex:none;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-family:var(--en);font-size:11px;background:#fff;border:1.5px solid var(--accent-deep);color:var(--accent-deep);z-index:1}
.locked{position:relative;margin-top:8px}.blur{filter:blur(5px);opacity:.5;font-size:14px;line-height:2;user-select:none;pointer-events:none;height:120px;overflow:hidden}
.lockcard{position:relative;margin-top:-32px;background:#fff;border:1px solid var(--line);border-radius:4px;padding:22px 18px;text-align:center;box-shadow:0 10px 28px rgba(0,0,0,.06);border-top:6px solid var(--accent)}
.lk{width:36px;height:36px;border-radius:4px;background:var(--accent);color:var(--ink);display:flex;align-items:center;justify-content:center;margin:0 auto 8px}
.perks{list-style:none;text-align:left;margin:12px 0 14px;background:var(--paper);border-radius:4px;padding:8px 12px}
.perks li{padding:6px 0 6px 20px;position:relative;font-size:12.5px;border-bottom:1px solid var(--line)}.perks li:last-child{border:0}.perks li:before{content:"✓";position:absolute;left:0;color:var(--accent-deep);font-weight:700}
.codein{display:flex;align-items:center;justify-content:center;gap:4px;background:var(--paper);border:1.5px solid var(--line);border-radius:10px;padding:10px;margin:8px 0;font-family:ui-monospace,Menlo,monospace;font-size:16px;letter-spacing:.06em}
.codein span{color:var(--accent-deep);font-weight:700}.codein input{border:0;background:transparent;width:7.5em;font:inherit;color:var(--ink);outline:0}
.codein.bad{border-color:#C45C4A;animation:shake .35s}.cerr{color:#C45C4A;font-size:12px;min-height:16px;margin:6px 0}.chint{font-size:11px;color:var(--muted);margin-top:8px}
@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.mask{position:fixed;inset:0;background:rgba(20,20,20,.45);backdrop-filter:blur(5px);z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;flex-direction:column}
.mask img{max-width:min(360px,92vw);border-radius:6px;box-shadow:0 14px 36px rgba(0,0,0,.28)}.mask p{color:#fff;margin:12px 0;font-size:13px}.mask>button{background:#fff;border:0;border-radius:999px;padding:10px 24px;font-size:14px;font-weight:600;cursor:pointer}
.sheet{background:#fff;border-radius:16px;padding:22px 18px;width:100%;max-width:380px;text-align:center;border-top:6px solid var(--accent)}
.sheet .hint{color:var(--muted);font-size:13px;margin:8px 0 12px}
.nick{width:100%;border:1.5px solid var(--line);border-radius:10px;padding:12px;font-size:15px;outline:0;background:var(--paper)}
.linkbox{background:var(--paper);border-radius:10px;padding:12px;font-size:13px;line-height:1.7;text-align:left;word-break:break-all;margin:8px 0 12px;user-select:text;-webkit-user-select:text}
.toast{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:10px 14px;border-radius:999px;font-size:13px;z-index:50;animation:in .3s both;white-space:nowrap}
.pair .x{font-family:var(--serif);font-size:20px;color:var(--muted)}
.ends{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);margin-top:3px}

#app{max-width:480px;margin:0 auto;min-height:100vh;min-height:100dvh;position:relative}
.land .orbit .em svg,.land .panel .core svg{max-width:100%;height:auto}
.opt p{margin:0}
