:root{--paper:#f7f4f1;--white:#fff;--ink:#262326;--muted:#7f777c;--pink:#d78999;--pink-dark:#a95369;--pink-soft:#f2dfe4;--purple:#9a89b5;--line:#e9e2e2;--green:#668f7b;--shadow:0 18px 55px rgba(70,46,57,.10);--serif:"Noto Serif SC","Songti SC",serif;--sans:"Noto Sans SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{background:#eee9e6}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans)}button,input,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}#app{width:min(100%,680px);min-height:100vh;margin:auto;background:var(--paper)}
.topbar{height:66px;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);background:rgba(247,244,241,.95);backdrop-filter:blur(12px);position:sticky;top:0;z-index:20}.logo{font:700 20px var(--serif);letter-spacing:.03em}.logo i{color:var(--pink-dark);font-style:normal}.top-note{margin-left:auto;color:var(--muted);font-size:12px}.history-link{border:0;background:transparent;padding:10px 0}.back{border:0;background:none;font-size:24px;margin-right:12px}.landing{overflow:hidden}.hero{padding:52px 22px 26px;position:relative}.hero:after{content:"";position:absolute;width:230px;height:230px;border-radius:50%;right:-115px;top:22px;background:linear-gradient(135deg,var(--pink-soft),rgba(154,137,181,.16));filter:blur(2px)}.kicker{position:relative;z-index:1;color:var(--pink-dark);font-size:12px;letter-spacing:.17em;font-weight:700}.hero h1{position:relative;z-index:1;margin:24px 0 18px;font:400 clamp(40px,11vw,63px)/1.25 var(--serif);letter-spacing:-.03em}.hero h1 em{color:var(--pink-dark);font-style:normal}.hero-copy{position:relative;z-index:1;color:var(--muted);font-size:18px;line-height:1.9}.main-button,.ghost-button{width:100%;min-height:58px;border-radius:17px;border:0;padding:14px 18px}.main-button{background:linear-gradient(135deg,#c86f84,#a85c73);color:white;box-shadow:0 12px 26px rgba(169,83,105,.22);font-weight:700}.main-button:disabled{opacity:.4;box-shadow:none;cursor:not-allowed}.ghost-button{background:var(--white);border:1px solid var(--line);color:var(--ink)}.hero .main-button{margin-top:26px;font-size:18px}.microcopy{text-align:center;color:var(--muted);font-size:12px;margin:12px 0}.benefits{padding:18px 18px 42px;display:grid;gap:12px}.benefit{display:grid;grid-template-columns:50px 1fr;gap:14px;padding:18px;border-radius:20px;background:rgba(255,255,255,.82);box-shadow:var(--shadow)}.benefit-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:var(--pink-soft);font-size:22px}.benefit b{display:block;margin:2px 0 7px}.benefit p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.disclaimer{margin:0 18px 34px;padding:16px;border-radius:16px;background:#eeebe7;color:var(--muted);font-size:11px;line-height:1.7}
.modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:18px;background:rgba(35,29,33,.55);backdrop-filter:blur(5px)}.modal-card{position:relative;width:min(100%,520px);padding:30px 22px 22px;border-radius:26px;background:var(--white);box-shadow:0 25px 80px rgba(0,0,0,.25)}.close{position:absolute;right:17px;top:12px;border:0;background:none;color:var(--muted);font-size:25px}.key-icon{display:grid;place-items:center;width:54px;height:54px;margin-bottom:20px;border-radius:17px;background:linear-gradient(135deg,var(--pink-soft),#eee6f3);color:var(--pink-dark);font-size:25px}.modal h2{margin:10px 0;font:32px var(--serif)}.modal p{color:var(--muted);line-height:1.7}.field-head{display:flex;justify-content:space-between;margin:20px 2px 8px;color:var(--muted);font-size:13px}.field-head b{color:var(--ink)}.code-input{display:flex;align-items:center;gap:10px;padding:0 15px;border:2px solid var(--pink);border-radius:16px;min-height:64px}.code-input input{width:100%;border:0;outline:0;font-size:22px;letter-spacing:.15em;text-transform:uppercase}.modal small{display:block;color:var(--muted);margin:8px 2px 20px}.demo{text-align:center;color:var(--muted);font-size:11px;margin-top:14px}
.form-shell{padding-bottom:104px}.form-header{padding:24px 20px 12px}.step-row{display:flex;justify-content:space-between;align-items:center}.step-name{color:var(--pink-dark);font-size:13px;font-weight:700}.step-count{color:var(--muted);font-size:12px}.progress{height:5px;margin-top:14px;border-radius:9px;background:#e6dfdf;overflow:hidden}.progress span{display:block;height:100%;border-radius:9px;background:linear-gradient(90deg,var(--pink),var(--purple));transition:.25s}.form-intro{padding:18px 20px 6px}.form-intro h1{margin:0 0 10px;font:34px/1.35 var(--serif)}.form-intro p{margin:0;color:var(--muted);line-height:1.7}.form-card{margin:16px 16px 0;padding:20px;border-radius:23px;background:var(--white);box-shadow:var(--shadow)}.question{padding:18px 0;border-bottom:1px solid var(--line)}.question:first-child{padding-top:0}.question:last-child{padding-bottom:0;border-bottom:0}.question label.title,.question legend{display:block;margin-bottom:12px;font-weight:700}.question small{color:var(--muted);font-weight:400}.option-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.option-grid.three{grid-template-columns:repeat(3,1fr)}.choice{min-height:50px;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fbf9f8;color:#514c50}.choice.selected{border-color:var(--pink);background:var(--pink-soft);color:#8e4357;font-weight:700}.text-field,.select-field{width:100%;min-height:52px;padding:0 14px;border:1px solid var(--line);border-radius:14px;background:#fbf9f8;color:var(--ink);outline:none}.text-field:focus,.select-field:focus{border-color:var(--pink)}.inline-fields{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:9px}.chips{display:flex;flex-wrap:wrap;gap:9px}.chip{min-height:42px;padding:9px 13px;border:1px solid var(--line);border-radius:999px;background:#fbf9f8;color:#655f63}.chip.selected{border-color:var(--pink);background:var(--pink-soft);color:#8e4357}.chip.priority{box-shadow:inset 0 0 0 2px var(--pink);position:relative}.chip.priority:after{content:attr(data-rank);display:grid;place-items:center;position:absolute;right:-5px;top:-7px;width:20px;height:20px;border-radius:50%;background:var(--pink-dark);color:#fff;font-size:10px}.form-nav{position:fixed;z-index:20;left:50%;bottom:0;transform:translateX(-50%);width:min(100%,680px);display:grid;grid-template-columns:.75fr 1.4fr;gap:10px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:rgba(247,244,241,.96);backdrop-filter:blur(12px)}.error{margin:12px 18px 0;padding:11px 13px;border-radius:12px;background:#fde8e8;color:#a84455;font-size:12px}
.loading{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center}.loading-orbit{position:relative;width:190px;height:190px;margin:auto}.loading-orbit:before,.loading-orbit:after{content:"";position:absolute;inset:0;border:1px solid var(--pink);border-radius:50%;animation:spin 2s linear infinite}.loading-orbit:after{inset:24px;border-color:var(--purple);animation-direction:reverse}.loading-heart{position:absolute;inset:0;display:grid;place-items:center;color:var(--pink-dark);font-size:54px}.loading h1{font:32px var(--serif)}.loading p{color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}
.report{padding-bottom:40px}.report-hero{padding:34px 20px;background:linear-gradient(160deg,#fff 0,#f7e9ed 58%,#eee9f2 100%)}.report-kicker{color:var(--pink-dark);font-size:12px;letter-spacing:.14em;font-weight:700}.report-hero h1{margin:12px 0 4px;font:32px var(--serif)}.rate{font:700 clamp(72px,22vw,118px)/1 var(--serif);color:var(--pink-dark);letter-spacing:-.08em;margin:24px 0 12px}.estimate{display:inline-block;padding:6px 10px;border-radius:10px;background:rgba(255,255,255,.7);color:var(--muted);font-size:11px}.strength-row{display:flex;align-items:center;gap:12px;margin-top:24px}.stars{letter-spacing:.12em;color:#ca8897}.report-hero>p{color:#665e63;line-height:1.8}.report-section{padding:28px 18px}.report-section h2{margin:0 0 16px;font:28px var(--serif)}.card{padding:20px;border-radius:21px;background:#fff;box-shadow:var(--shadow)}.impact-list{display:grid;gap:10px}.impact{display:grid;grid-template-columns:38px 1fr auto;gap:11px;align-items:center;padding:14px;border-radius:16px;background:#faf7f6}.medal{font-size:22px}.impact b{display:block}.impact small{color:var(--muted)}.level{padding:6px 9px;border-radius:10px;background:var(--pink-soft);color:var(--pink-dark);font-size:11px}.adjust{background:linear-gradient(145deg,#4b4149,#2e2930);color:white}.adjust small{color:#d7cbd1}.change{display:flex;align-items:center;justify-content:center;gap:16px;margin:22px 0}.change b{font:30px var(--serif)}.change span{color:#e6a3b2}.score-ring{display:grid;place-items:center;width:150px;height:150px;margin:20px auto;border:12px solid var(--pink-soft);border-top-color:var(--pink);border-radius:50%;text-align:center}.score-ring b{font:42px var(--serif);color:var(--pink-dark)}.score-ring small{display:block;color:var(--muted)}.tag-row{display:flex;flex-wrap:wrap;gap:8px}.tag{padding:8px 11px;border-radius:999px;background:var(--pink-soft);color:#87485a;font-size:12px}.insight-grid{display:grid;gap:12px}.insight{padding:18px;border:1px solid var(--line);border-radius:18px}.insight h3{margin:0 0 9px;font:20px var(--serif)}.insight p{margin:0;color:var(--muted);line-height:1.8;font-size:13px}.actions{display:grid;gap:10px;padding:20px 18px 44px}.fineprint{margin:18px;color:var(--muted);font-size:11px;line-height:1.7;text-align:center}.toast{position:fixed;z-index:120;left:50%;top:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:13px 17px;border-radius:15px;background:#2d292c;color:white;box-shadow:var(--shadow);font-size:13px}
@media(min-width:560px){.benefits{grid-template-columns:repeat(3,1fr)}.benefit{grid-template-columns:1fr;text-align:center}.benefit-icon{margin:auto}.insight-grid{grid-template-columns:1fr 1fr}}@media(max-width:350px){.hero h1{font-size:38px}.form-card{margin-left:10px;margin-right:10px;padding:16px}.option-grid.three{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
