:root{color-scheme:dark;--bg: #0b0a12;--bg2: #14101f;--card: #1a1528;--text: #f4f0ff;--muted: rgba(244, 240, 255, .62);--line: rgba(255, 255, 255, .08);--accent: #c4a4ff;--ok: #8fd4a8;--danger: #ff7a8a;--radius: 20px;--font: "Noto Sans SC", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", system-ui, sans-serif;--display: "ZCOOL XiaoWei", "Noto Serif SC", "Songti SC", serif;--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}body{background:radial-gradient(1000px 500px at 50% -10%,rgba(196,164,255,.16),transparent 60%),radial-gradient(700px 400px at 80% 20%,rgba(110,200,255,.08),transparent 50%),var(--bg)}#app{max-width:430px;margin:0 auto;min-height:100dvh;padding:16px 16px calc(24px + var(--safe-b))}button,a.btn{font:inherit;cursor:pointer;border:0;appearance:none;text-decoration:none;color:inherit}.screen{animation:fade .28s ease}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.brand-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;font-size:13px;color:var(--muted);letter-spacing:.02em}.logo{font-family:var(--display);font-weight:700;font-size:18px;color:var(--text);letter-spacing:0;text-transform:none}.hero-card,.panel{background:linear-gradient(180deg,rgba(255,255,255,.04),transparent),var(--card);border:1px solid var(--line);border-radius:28px;padding:24px 20px;box-shadow:0 20px 60px #00000059}.hero-card h1,.panel h1{font-family:var(--display);font-size:28px;line-height:1.15;margin:8px 0 12px}.lead{color:var(--muted);font-size:15px;line-height:1.5;margin:0 0 18px}.price-row{display:flex;align-items:baseline;gap:10px;margin:8px 0 6px}.price{font-family:var(--display);font-size:42px;font-weight:700;color:#fff}.price-was{color:var(--muted);text-decoration:line-through;font-size:16px}.badge{display:inline-flex;align-items:center;gap:6px;background:#ff9aaa24;color:#ffb3c0;border:1px solid rgba(255,154,170,.35);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;margin:8px 0 16px}.proof{border-top:1px solid var(--line);margin-top:16px;padding-top:14px;color:var(--muted);font-size:13px;line-height:1.45}.proof strong{color:var(--text);font-weight:600}.btn-primary,.btn-secondary,.btn-ghost{display:flex;width:100%;align-items:center;justify-content:center;gap:8px;min-height:52px;border-radius:16px;font-weight:600;font-size:16px;transition:transform .12s ease,opacity .12s ease,background .12s ease}.btn-primary{background:linear-gradient(135deg,#c4a4ff,#7a8cff);color:#140f22;margin-top:8px}.btn-primary:active{transform:scale(.98)}.btn-secondary{background:#ffffff0f;border:1px solid var(--line);margin-top:10px}.btn-ghost{background:transparent;color:var(--muted);min-height:40px;font-size:14px;font-weight:500}.fineprint{margin-top:14px;font-size:11px;color:var(--muted);line-height:1.45;text-align:center}.fineprint a{color:var(--accent)}.pay-sum{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.pay-methods{display:grid;gap:10px;margin:14px 0 18px}.method{display:flex;align-items:center;gap:12px;padding:14px;border-radius:14px;border:1px solid var(--line);background:#ffffff08;text-align:left}.method.active{border-color:var(--accent);background:#c4a4ff1a}.method .dot{width:18px;height:18px;border-radius:50%;border:2px solid rgba(255,255,255,.35)}.method.active .dot{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--accent)}.stripe-stub{margin-top:8px;padding:12px;border-radius:12px;background:#ffffff08;border:1px dashed rgba(255,255,255,.15);font-size:12px;color:var(--muted);line-height:1.4}.stripe-stub code{color:var(--accent);font-size:11px}.unlock-mark{width:72px;height:72px;border-radius:50%;margin:12px auto 18px;display:grid;place-items:center;background:#ff9aaa2e;color:#ff9aaa;font-size:34px;border:1px solid rgba(255,154,170,.4)}.progress-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;font-size:13px;color:var(--muted)}.progress-top .n{color:#ff7a8a;font-weight:700;font-variant-numeric:tabular-nums}.bar-track{height:4px;border-radius:999px;background:#ffffff14;overflow:hidden;margin-bottom:22px}.bar-fill{height:100%;background:linear-gradient(90deg,#ff7a8a,#c4a4ff);transition:width .25s ease}.q-label{font-size:12px;letter-spacing:.04em;color:var(--muted);margin-bottom:8px}.q-prompt{font-family:var(--display);font-size:22px;line-height:1.3;margin:0 0 18px}.options{display:grid;gap:10px}.opt{text-align:left;padding:16px;border-radius:16px;background:#ffffff0a;border:1px solid var(--line);font-size:15px;line-height:1.35;transition:background .15s,border-color .15s,transform .12s}.opt:active,.opt.picked{border-color:var(--accent);background:#c4a4ff24;transform:scale(.99)}.ritual{min-height:70dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:14px}.orb{width:120px;height:120px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--accent) 45%,transparent 70%);opacity:.85;animation:pulse 1.4s ease-in-out infinite;filter:blur(.2px);box-shadow:0 0 60px #c4a4ff73}.silhouette{width:140px;height:160px;border-radius:48% 48% 42% 42%;background:radial-gradient(circle at 50% 35%,#ffb6c159,#c4a4ff2e 55%,#ffffff0a);animation:breathe 1.6s ease-in-out infinite;position:relative;overflow:hidden;box-shadow:0 0 40px #ff9aaa33}.silhouette:before{content:"♡";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);font-size:28px;opacity:.45}.silhouette:after{content:"";position:absolute;inset:18% 26%;border-radius:50%;background:#ffffff1a}@keyframes pulse{0%,to{transform:scale(.92);opacity:.7}50%{transform:scale(1.05);opacity:1}}@keyframes breathe{0%,to{transform:scale(.98);opacity:.75}50%{transform:scale(1.02);opacity:1}}.ritual h2{font-family:var(--display);font-size:24px;margin:8px 0 0}.ritual p{color:var(--muted);margin:0;font-size:14px}.result-card{text-align:center;padding:22px 18px 18px;border-radius:28px;border:1px solid color-mix(in srgb,var(--type) 45%,transparent);background:radial-gradient(500px 220px at 50% 0%,color-mix(in srgb,var(--type) 28%,transparent),transparent 70%),var(--card)}.meta-row{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);letter-spacing:.02em;margin-bottom:6px}.ip-label{font-size:12px;color:var(--muted);margin:4px 0 8px}.ip-hero{display:grid;place-items:center;margin:4px auto 6px}.ip-hero svg{filter:drop-shadow(0 12px 24px rgba(0,0,0,.35))}.ip-figure{animation:idle 3.2s ease-in-out infinite;transform-origin:80px 160px}@keyframes idle{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-4px) rotate(-1deg)}}.ip-eye{animation:blink 4.5s infinite;transform-origin:center}@keyframes blink{0%,46%,50%,to{transform:scaleY(1)}48%{transform:scaleY(.12)}}.affirm{color:color-mix(in srgb,var(--type-alt) 90%,#fff);font-size:14px;margin:0 0 10px}.type-name{font-family:var(--display);font-size:32px;margin:0 0 6px}.one-liner{color:var(--muted);margin:0 0 14px;font-size:15px}.tags{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-bottom:18px}.tag{background:var(--type);color:#1a1628;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700}.dims{text-align:left;display:grid;gap:12px;margin:8px 0 16px}.dim-row{display:grid;grid-template-columns:64px 1fr 20px;gap:8px;align-items:center;font-size:13px}.dim-track{height:8px;border-radius:999px;background:#ffffff14;overflow:hidden}.dim-fill{height:100%;border-radius:inherit;background:var(--type)}.card-foot{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-top:4px}.actions{margin-top:14px}.sheet{margin-top:12px;padding:16px;border-radius:20px;background:#ffffff08;border:1px solid var(--line)}.blurb-box{white-space:pre-wrap;font-size:13px;line-height:1.45;color:var(--muted);background:#00000040;border-radius:12px;padding:12px;margin:10px 0}.toast{position:fixed;left:50%;bottom:calc(24px + var(--safe-b));transform:translate(-50%);background:#221c33;border:1px solid var(--line);color:var(--text);padding:10px 16px;border-radius:999px;font-size:13px;z-index:50;box-shadow:0 10px 30px #0006;animation:fade .2s ease}.drawer{position:fixed;inset:0;background:#0000008c;display:grid;align-items:end;z-index:40}.drawer-panel{max-width:430px;width:100%;margin:0 auto;background:var(--bg2);border-radius:24px 24px 0 0;padding:20px 18px calc(24px + var(--safe-b));border:1px solid var(--line);max-height:80dvh;overflow:auto}.drawer-panel h3{font-family:var(--display);margin:0 0 10px}.drawer-panel p{color:var(--muted);font-size:14px;line-height:1.5;white-space:pre-wrap}.continue-banner{background:#c4a4ff1f;border:1px solid rgba(196,164,255,.3);border-radius:14px;padding:12px 14px;margin-bottom:14px;font-size:13px;display:flex;justify-content:space-between;gap:10px;align-items:center}.shop-pill,.auto-ship{display:inline-flex;align-items:center;gap:6px;background:#8fd4a824;color:#8fd4a8;border:1px solid rgba(143,212,168,.4);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;margin:0 0 12px}.auto-ship{display:flex;width:fit-content;margin-bottom:14px}.daily-home{text-align:center;padding:8px 0 12px}.daily-streak{display:inline-flex;align-items:baseline;gap:6px;background:#ff9aaa1f;border:1px solid rgba(255,154,170,.35);color:#ffb3c0;border-radius:999px;padding:6px 14px;font-size:13px;margin-bottom:14px}.streak-num{font-family:var(--display);font-size:22px;font-weight:700;color:#fff}.ip-bubble{max-width:320px;margin:0 auto 10px;padding:12px 16px;border-radius:18px 18px 18px 6px;background:#ffffff0f;border:1px solid var(--line);font-size:14px;line-height:1.45;color:var(--text);text-align:left}.ip-bubble.soft{color:var(--muted)}.ip-bubble.miss{border-color:#ff9aaa59;background:#ff9aaa14}.daily-name{margin:4px 0 16px;font-size:15px;color:var(--muted)}.daily-name strong{color:var(--text);font-family:var(--display);font-size:18px}.tip-card{text-align:left;padding:16px;border-radius:20px;border:1px solid color-mix(in srgb,var(--type) 40%,transparent);background:radial-gradient(400px 160px at 10% 0%,color-mix(in srgb,var(--type) 22%,transparent),transparent 70%),var(--card);margin-bottom:14px}.tip-label{font-size:12px;letter-spacing:.04em;color:color-mix(in srgb,var(--type-alt) 85%,#fff);margin-bottom:8px;font-weight:600}.tip-body{margin:0 0 10px;font-size:15px;line-height:1.5;color:var(--text)}.tip-flavor{font-size:11px;color:var(--muted)}.checkin-actions{margin-top:4px}.checkin-actions .btn-secondary:disabled{opacity:.7;cursor:default}.ip-daily{position:relative;margin:8px auto 2px}.ip-daily svg{width:240px;height:auto}.ip-mood-happy .ip-figure{animation:happy-wiggle .55s ease-in-out 3;transform-origin:80px 160px}@keyframes happy-wiggle{0%,to{transform:translateY(0) rotate(0) scale(1)}25%{transform:translateY(-10px) rotate(-6deg) scale(1.04)}50%{transform:translateY(-4px) rotate(5deg) scale(1.02)}75%{transform:translateY(-8px) rotate(-3deg) scale(1.03)}}.ip-mood-miss .ip-figure{animation:miss-sway 2.8s ease-in-out infinite;transform-origin:80px 160px}@keyframes miss-sway{0%,to{transform:translateY(2px) rotate(-2deg)}50%{transform:translateY(-2px) rotate(2deg)}}.ip-hearts{position:absolute;inset:0 10% 30%;pointer-events:none;z-index:2}.ip-hearts span{position:absolute;color:#ff9aaa;font-size:18px;animation:float-heart 1.6s ease-out forwards;opacity:0}.ip-hearts span:nth-child(1){left:18%;animation-delay:0s}.ip-hearts span:nth-child(2){left:48%;font-size:22px;animation-delay:.15s}.ip-hearts span:nth-child(3){left:72%;animation-delay:.28s}@keyframes float-heart{0%{transform:translateY(40px) scale(.6);opacity:0}30%{opacity:1}to{transform:translateY(-30px) scale(1.1);opacity:0}}.ip-miss-tear{position:absolute;left:58%;top:38%;width:6px;height:10px;border-radius:50%/40% 40% 60% 60%;background:#9ecfff;opacity:.75;z-index:2;animation:tear-drop 2.2s ease-in-out infinite}@keyframes tear-drop{0%,to{transform:translateY(0);opacity:.5}50%{transform:translateY(6px);opacity:.9}}.field-label{display:block;font-size:12px;color:var(--muted);margin:14px 0 6px;letter-spacing:.02em}.field-label .req{color:#ff9aaa;margin-left:4px}.field-label .opt{opacity:.7;margin-left:4px}.field{width:100%;border-radius:14px;border:1px solid var(--line);background:#00000040;color:var(--text);padding:12px 14px;font:inherit;margin-bottom:2px}.field:focus{outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);border-color:transparent}.sign-chip{display:inline-block;margin:12px 0 4px;padding:6px 12px;border-radius:999px;background:#c4a4ff26;border:1px solid rgba(196,164,255,.35);font-size:13px;color:#e6d8ff}.paypal-slot{min-height:48px;margin:8px 0 4px}.paypal-slot:empty:before{content:"PayPal 准备中…";display:block;font-size:13px;color:var(--muted);padding:10px 0}.notify-ask{margin-top:8px}.notify-on{color:var(--ok)!important}.ip-daily .ip-figure{animation:idle-float 2.8s ease-in-out infinite;transform-origin:80px 160px}@keyframes idle-float{0%,to{transform:translateY(0) rotate(-.5deg) scale(1)}35%{transform:translateY(-7px) rotate(1.2deg) scale(1.02)}70%{transform:translateY(-3px) rotate(-1deg) scale(1.01)}}.ip-daily .ip-eye{animation:blink 3.8s infinite}.ip-mood-happy .ip-hearts span:nth-child(1){left:12%}.ip-mood-happy .ip-hearts span:nth-child(2){left:45%}.ip-mood-happy .ip-hearts span:nth-child(3){left:78%}.ip-mood-happy .ip-hearts:after{content:"♡";position:absolute;left:30%;top:20%;font-size:14px;color:#ffc2cc;animation:float-heart 1.8s ease-out .4s forwards;opacity:0}.checkin-actions{display:flex;flex-direction:column;gap:8px}
