:root{--rose:#e8799c;--rose-deep:#d85c85;--rose-soft:#fbe4ec;--blue:#6fa8dc;--blue-soft:#e3eefb;--purple:#9b8fd4;--purple-soft:#eeeafb;--ink:#2d2226;--ink-soft:#6b5a60;--bg:#fff8f6;--card:#fff;--line:#2d222614;--radius:20px;--shadow:0 10px 30px #d85c851a}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Noto Sans SC,Microsoft YaHei,system-ui,sans-serif;line-height:1.7;overflow-x:hidden}h1,h2,h3{font-family:Noto Serif SC,Source Han Serif SC,SimSun,serif;font-weight:700;line-height:1.3}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.nav{z-index:100;justify-content:space-between;align-items:center;padding:18px 6vw;transition:background .3s,box-shadow .3s;display:flex;position:fixed;top:0;left:0;right:0}.nav.solid{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff8f6eb;box-shadow:0 2px 12px #2d22260f}.nav-brand{color:var(--rose-deep);align-items:center;gap:10px;font-family:Noto Serif SC,serif;font-size:1.25rem;font-weight:900;display:flex}.nav-brand svg{width:26px;height:26px}.nav-links{color:var(--ink-soft);gap:28px;font-size:.95rem;display:flex}.nav-links a:hover{color:var(--rose-deep)}.nav-cta{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff;border-radius:999px;padding:9px 20px;font-size:.9rem;font-weight:500;transition:transform .2s,box-shadow .2s;box-shadow:0 6px 16px #d85c8547}.nav-cta:hover{transform:translateY(-1px);box-shadow:0 8px 20px #d85c855c}@media (width<=720px){.nav-links{display:none}}.hero{background:radial-gradient(1000px 500px at 85% -10%,var(--rose-soft),transparent 60%), radial-gradient(900px 480px at -10% 110%,var(--blue-soft),transparent 55%), radial-gradient(700px 420px at 50% 120%,var(--purple-soft),transparent 55%), linear-gradient(180deg,#fff5f8 0%,var(--bg) 100%);align-items:center;min-height:100dvh;padding:120px 6vw 80px;display:flex;position:relative;overflow:hidden}.hero:before{content:"";pointer-events:none;background:radial-gradient(3px 3px at 20% 30%,#d85c8540,#0000 60%) 0 0/180px 180px,radial-gradient(2.5px 2.5px at 70% 20%,#9b8fd440,#0000 60%) 0 0/220px 220px,radial-gradient(3px 3px at 85% 65%,#6fa8dc40,#0000 60%) 0 0/200px 200px,radial-gradient(2px 2px at 40% 80%,#d85c852e,#0000 60%) 0 0/240px 240px;position:absolute;inset:0}.hero-wrap{grid-template-columns:1.15fr .85fr;align-items:center;gap:6vw;width:100%;max-width:1200px;margin:0 auto;display:grid;position:relative}.hero-eyebrow{color:var(--rose-deep);border:1px solid var(--line);background:#fff;border-radius:999px;align-items:center;gap:8px;margin-bottom:26px;padding:7px 16px;font-size:.85rem;display:inline-flex;box-shadow:0 4px 12px #d85c851a}.hero-eyebrow .dot{background:var(--rose);border-radius:50%;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.hero h1{letter-spacing:.02em;font-size:clamp(3rem,7vw,4.8rem);font-weight:900}.hero h1 .grad{background:linear-gradient(120deg,var(--rose-deep),var(--purple) 60%,var(--blue));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-sub{color:var(--ink-soft);max-width:34em;margin:18px 0 34px;font-size:clamp(1.05rem,2vw,1.3rem)}.hero-sub b{color:var(--ink);font-weight:500}.hero-actions{flex-wrap:wrap;align-items:center;gap:16px;display:flex}.btn{cursor:pointer;border:none;border-radius:999px;align-items:center;gap:10px;padding:14px 28px;font-size:1rem;font-weight:500;transition:transform .2s,box-shadow .2s;display:inline-flex}.btn-android{color:#fff;background:linear-gradient(135deg,#34c759,#1f9d55);box-shadow:0 8px 20px #1f9d5547}.btn-android:hover{transform:translateY(-2px);box-shadow:0 10px 26px #1f9d5561}.btn-ios{color:var(--ink);border:1.5px solid var(--line);background:#fff;box-shadow:0 6px 16px #2d22260f}.btn-ios:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}.btn svg{width:20px;height:20px}.hero-meta{color:var(--ink-soft);flex-wrap:wrap;gap:34px;margin-top:26px;font-size:.88rem;display:flex}.hero-meta .m b{color:var(--ink);font-family:Noto Serif SC,serif;font-size:1.35rem;display:block}.hero-visual{position:relative}.hero-visual .frame{border-radius:var(--radius);aspect-ratio:3/4;border:6px solid #fff;width:min(100%,420px);max-height:620px;margin-left:auto;overflow:hidden;transform:rotate(1.5deg);box-shadow:0 24px 60px #d85c8538}.hero-visual .frame img{object-fit:cover;width:100%;height:100%}.hero-badge{box-shadow:var(--shadow);color:var(--ink-soft);background:#fff;border-radius:14px;align-items:center;gap:12px;padding:12px 18px;font-size:.85rem;display:flex;position:absolute;bottom:34px;left:-14px}.hero-badge .h{background:linear-gradient(135deg,var(--rose),var(--purple));color:#fff;border-radius:10px;justify-content:center;align-items:center;width:38px;height:38px;display:flex}@media (width<=900px){.hero-wrap{grid-template-columns:1fr;gap:48px}.hero{padding-top:110px}.hero-visual .frame{max-height:480px;margin:0 auto}}.section{max-width:1200px;margin:0 auto;padding:96px 6vw}.sec-head{text-align:center;max-width:640px;margin:0 auto 60px}.sec-head .kicker{letter-spacing:.22em;color:var(--rose-deep);text-transform:uppercase;margin-bottom:14px;font-size:.8rem;font-weight:500;display:inline-block}.sec-head h2{margin-bottom:14px;font-size:clamp(1.8rem,3.5vw,2.6rem)}.sec-head p{color:var(--ink-soft)}.girls{grid-template-columns:repeat(3,1fr);gap:26px;display:grid}.girl{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden}.girl:hover{transform:translateY(-6px);box-shadow:0 18px 44px #d85c852e}.girl .ph{aspect-ratio:4/5;position:relative;overflow:hidden}.girl .ph img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.girl:hover .ph img{transform:scale(1.05)}.girl .ph:after{content:"";background:linear-gradient(#0000 45%,#00000057);position:absolute;inset:0}.girl .tag{z-index:2;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-radius:999px;padding:5px 13px;font-size:.75rem;position:absolute;top:14px;left:14px}.girl:first-child .tag{background:#d85c85bf}.girl:nth-child(2) .tag{background:#6fa8dcc7}.girl:nth-child(3) .tag{background:#9b8fd4c7}.girl .name{z-index:2;color:#fff;align-items:baseline;gap:10px;padding:0 18px;display:flex;position:absolute;bottom:12px;left:0;right:0}.girl .name h3{font-size:1.3rem}.girl .name span{opacity:.85;font-size:.8rem}.girl .bio{color:var(--ink-soft);padding:20px 22px 24px;font-size:.92rem}.girl .bio b{color:var(--ink)}.girl .line{border-radius:2px;width:46px;height:4px;margin:0 22px 2px}.girl:first-child .line{background:linear-gradient(90deg,var(--rose),var(--rose-soft))}.girl:nth-child(2) .line{background:linear-gradient(90deg,var(--blue),var(--blue-soft))}.girl:nth-child(3) .line{background:linear-gradient(90deg,var(--purple),var(--purple-soft))}@media (width<=860px){.girls{grid-template-columns:1fr;max-width:420px;margin:0 auto}}.features{grid-template-columns:repeat(4,1fr);gap:22px;display:grid}.feat{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 24px;transition:transform .25s;box-shadow:0 8px 24px #2d22260d}.feat:hover{transform:translateY(-4px)}.feat .ic{color:#fff;border-radius:14px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:18px;display:flex}.feat:first-child .ic{background:linear-gradient(135deg,var(--rose),var(--rose-deep))}.feat:nth-child(2) .ic{background:linear-gradient(135deg,var(--blue),#4a8fd0)}.feat:nth-child(3) .ic{background:linear-gradient(135deg,var(--purple),#7d6fc9)}.feat:nth-child(4) .ic{background:linear-gradient(135deg,#f0a35e,#e07c3a)}.feat h3{margin-bottom:8px;font-size:1.08rem}.feat p{color:var(--ink-soft);font-size:.88rem}@media (width<=900px){.features{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.features{grid-template-columns:1fr}}.download{text-align:center;border:1px solid var(--line);background:linear-gradient(135deg,#fff0f5 0%,#f3f0ff 50%,#edf4ff 100%);border-radius:28px;padding:70px 6vw;position:relative;overflow:hidden}.download:before{content:"";pointer-events:none;background:radial-gradient(2.5px 2.5px at 15% 25%,#d85c8533,#0000 60%) 0 0/160px 160px,radial-gradient(2px 2px at 82% 18%,#9b8fd433,#0000 60%) 0 0/190px 190px,radial-gradient(2.5px 2.5px at 68% 78%,#6fa8dc33,#0000 60%) 0 0/200px 200px;position:absolute;inset:0}.download h2{margin-bottom:14px;font-size:clamp(1.9rem,4vw,2.8rem)}.download .lead{color:var(--ink-soft);max-width:560px;margin:0 auto 40px}.dl-cards{flex-wrap:wrap;justify-content:center;gap:22px;display:flex;position:relative}.dl-card{border:1px solid var(--line);background:#fff;border-radius:22px;flex:1;min-width:260px;max-width:360px;padding:34px 36px;transition:transform .25s;box-shadow:0 14px 38px #d85c851f}.dl-card:hover{transform:translateY(-5px)}.dl-card .os{justify-content:center;align-items:center;gap:10px;margin-bottom:12px;font-family:Noto Serif SC,serif;font-size:1.25rem;font-weight:700;display:flex}.dl-card .os svg{width:26px;height:26px}.dl-card.android .os{color:#1f9d55}.dl-card.ios .os{color:var(--blue)}.dl-card .desc{color:var(--ink-soft);min-height:44px;margin-bottom:22px;font-size:.85rem}.btn-block{cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:9px;width:100%;padding:13px 0;font-size:.95rem;font-weight:500;transition:transform .2s,box-shadow .2s;display:flex}.btn-block:hover{transform:translateY(-2px)}.dl-card.android .btn-block{color:#fff;background:linear-gradient(135deg,#34c759,#1f9d55);box-shadow:0 6px 16px #1f9d5540}.dl-card.ios .btn-block{background:var(--blue-soft);color:#3b6ea8}.dl-card.ios .btn-block:hover{background:#d7e9fb}.dl-card .ver{color:var(--ink-soft);opacity:.75;margin-top:14px;font-size:.75rem}.qr-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:22px;margin-top:44px;display:flex;position:relative}.qr-box{box-shadow:var(--shadow);border:1px solid var(--line);background:#fff;border-radius:18px;padding:16px}.qr-box img{border-radius:8px;width:130px;height:130px}.qr-txt{text-align:left;color:var(--ink-soft);max-width:230px;font-size:.9rem}.qr-txt b{color:var(--ink);font-size:1rem}@media (width<=720px){.dl-cards{flex-direction:column;align-items:center}.dl-card{width:100%;min-width:0;max-width:360px}}.footer{border-top:1px solid var(--line);text-align:center;color:var(--ink-soft);padding:40px 6vw;font-size:.85rem}.footer .brand{color:var(--rose-deep);margin-bottom:10px;font-family:Noto Serif SC,serif;font-size:1.1rem;font-weight:900}.footer a{color:var(--rose-deep)}.toast{background:var(--ink);color:#fff;opacity:0;pointer-events:none;z-index:200;border-radius:999px;padding:13px 26px;font-size:.9rem;transition:opacity .3s,transform .3s;position:fixed;bottom:36px;left:50%;transform:translate(-50%)translateY(20px)}.toast.show{opacity:1;transform:translate(-50%)translateY(0)}.tts-hero{background:radial-gradient(900px 480px at 90% -10%,var(--rose-soft),transparent 60%), radial-gradient(800px 460px at -10% 100%,var(--purple-soft),transparent 55%), radial-gradient(600px 380px at 60% 120%,var(--blue-soft),transparent 55%), linear-gradient(180deg,#fff5f8 0%,var(--bg) 100%);flex-direction:column;justify-content:center;min-height:100dvh;padding:110px 6vw 80px;display:flex;position:relative}.tts-card{background:var(--card);border:1px solid var(--line);border-radius:24px;width:100%;max-width:760px;margin:0 auto;padding:38px 40px 30px;box-shadow:0 18px 50px #d85c851f}.tts-label{color:var(--ink-soft);letter-spacing:.04em;margin-bottom:14px;font-size:.82rem;font-weight:500}.voice-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:30px;display:grid}.voice-item{border:1.5px solid var(--line);text-align:center;cursor:pointer;background:#fff;border-radius:14px;padding:13px 8px;transition:border-color .2s,background .2s,transform .2s}.voice-item:hover{transform:translateY(-2px)}.voice-item .vn{color:var(--ink);font-family:Noto Serif SC,serif;font-size:.98rem;font-weight:700}.voice-item .vt{color:var(--ink-soft);margin-top:3px;font-size:.72rem}.voice-item .vd{border-radius:50%;width:8px;height:8px;margin:0 auto 6px}.voice-item.on{border-color:var(--pick,#e8799c);background:color-mix(in srgb,var(--pick,#e8799c) 8%,#fff)}@media (width<=560px){.voice-grid{grid-template-columns:repeat(2,1fr)}.tts-card{padding:28px 22px 24px}}.tts-input{position:relative}.tts-input textarea{resize:vertical;border:1.5px solid var(--line);width:100%;min-height:130px;color:var(--ink);background:#fff;border-radius:14px;padding:16px 18px;font-family:Noto Sans SC,Microsoft YaHei,sans-serif;font-size:.98rem;line-height:1.7;transition:border-color .2s}.tts-input textarea:focus{border-color:var(--rose);outline:none}.tts-count{color:var(--ink-soft);opacity:.7;font-size:.72rem;position:absolute;bottom:12px;right:14px}.tts-actions{justify-content:center;margin-top:22px;display:flex}.btn-gen{background:linear-gradient(135deg,var(--rose),var(--rose-deep));color:#fff;cursor:pointer;border:none;border-radius:999px;align-items:center;gap:10px;padding:14px 46px;font-size:1.02rem;font-weight:500;transition:transform .2s,box-shadow .2s,opacity .2s;display:inline-flex;box-shadow:0 8px 22px #d85c854d}.btn-gen:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 28px #d85c8566}.btn-gen:disabled{opacity:.6;cursor:not-allowed}.btn-gen .spin{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite rot;display:none}.btn-gen.loading .spin{display:inline-block}.btn-gen.loading svg{display:none}@keyframes rot{to{transform:rotate(360deg)}}.tts-result{border:1px dashed var(--rose);background:#fff8fa;border-radius:16px;margin-top:26px;padding:20px 22px}.tts-result audio{width:100%;margin-bottom:14px}.btn-dl{background:var(--ink);color:#fff;border-radius:999px;align-items:center;gap:9px;padding:11px 26px;font-size:.9rem;font-weight:500;transition:transform .2s;display:inline-flex}.btn-dl:hover{transform:translateY(-2px)}.tts-note{text-align:center;color:var(--ink-soft);opacity:.75;margin-top:22px;font-size:.76rem}.nav-links a.router-link-active{color:var(--rose-deep)}
