:root{--ink:#243630;--muted:#74827d;--cream:#fffaf0;--paper:#fff;--mint:#bfe7d1;--green:#176b57;--yellow:#ffd66b;--coral:#ff806d;--line:#dfe8e2;--shadow:0 18px 50px rgba(39,79,64,.12)}*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--cream);color:var(--ink);font-family:Nunito,"Microsoft YaHei",sans-serif;min-height:100vh}.noise{position:fixed;inset:0;pointer-events:none;opacity:.22;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.08'/%3E%3C/svg%3E")}.topbar{height:74px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;border-bottom:1px solid rgba(36,54,48,.08);background:rgba(255,250,240,.86);backdrop-filter:blur(16px);position:sticky;top:0;z-index:20}.brand{display:flex;gap:10px;align-items:center;color:var(--ink);text-decoration:none;font-weight:900;font-size:20px;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:13px 13px 18px 18px;background:var(--green);color:#fff;font-family:"ZCOOL KuaiLe";transform:rotate(-4deg);box-shadow:4px 4px 0 var(--yellow)}nav{display:flex;gap:8px;margin:auto}.nav-item{border:0;background:transparent;padding:10px 15px;color:var(--muted);font:700 14px inherit;border-radius:99px;cursor:pointer}.nav-item.active{background:#fff;color:var(--green);box-shadow:0 5px 16px rgba(39,79,64,.08)}.nav-item span{background:var(--coral);color:#fff;border-radius:20px;padding:1px 6px;margin-left:4px;font-size:11px}.mini-profile{font-size:13px;font-weight:800;color:var(--green);background:#dff3e8;border:1px solid #c4e5d3;padding:8px 12px;border-radius:99px}.mini-profile span{color:#e29e00}.view{display:none}.view.active{display:block}main{max-width:1180px;margin:auto;padding:46px 24px 80px}.intro{display:flex;align-items:end;justify-content:space-between;min-height:210px;padding:0 24px 24px}.eyebrow{font-size:13px;font-weight:900;letter-spacing:1.5px;color:var(--green);text-transform:uppercase}.eyebrow span{color:#e9a900}.intro h1,.history-head h1{font-family:"ZCOOL KuaiLe",Nunito,sans-serif;font-size:clamp(38px,5vw,64px);line-height:1.08;margin:15px 0 12px;font-weight:400;letter-spacing:-1px}.intro h1 em{font-style:normal;color:var(--coral);position:relative}.intro p,.history-head p{color:var(--muted);font-weight:600;font-size:17px;margin:0}.hero-pets{width:260px;height:210px;object-fit:contain;filter:drop-shadow(0 14px 16px rgba(40,82,66,.14));margin:0 40px -18px 0}.workspace{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(350px,.82fr);gap:24px;align-items:start}.upload-card,.preview-card{background:var(--paper);border:1px solid rgba(36,54,48,.1);border-radius:28px;box-shadow:var(--shadow)}.upload-card{padding:28px}.step-title{display:flex;gap:14px;align-items:center;margin-bottom:20px}.step-title>span{display:grid;place-items:center;width:42px;height:42px;background:var(--yellow);border-radius:50% 50% 45% 55%;font-size:13px;font-weight:900}.step-title h2{font-size:20px;margin:0 0 3px}.step-title p{font-size:13px;color:var(--muted);margin:0}.dropzone{height:228px;border:2px dashed #a9d8bd;background:#f2fbf6;border-radius:22px;display:grid;place-items:center;position:relative;overflow:hidden;cursor:pointer;transition:.2s}.dropzone:hover,.dropzone.drag{background:#e9f8ef;border-color:var(--green);transform:translateY(-2px)}.dropzone input,.owner-upload input{display:none}.drop-copy{text-align:center;display:flex;align-items:center;flex-direction:column}.camera{width:58px;height:58px;display:grid;place-items:center;background:#fff;border-radius:20px;font-size:27px;box-shadow:0 8px 20px rgba(23,107,87,.12);margin-bottom:10px;transform:rotate(-3deg)}.drop-copy strong{font-size:17px}.drop-copy span{font-size:13px;color:var(--green);margin:3px}.drop-copy small{font-size:11px;color:#94a19c;margin-top:8px}.dropzone>img{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.dropzone.has-image>img{display:block}.dropzone.has-image .drop-copy{display:none}.change-photo{display:none;position:absolute;right:12px;bottom:12px;border:0;background:rgba(255,255,255,.9);border-radius:99px;padding:9px 13px;font:800 12px inherit;color:var(--ink)}.dropzone.has-image .change-photo{display:block}.tips{margin:18px 0;background:#fffaf0;border:1px solid #f4e6bd;border-radius:18px;padding:15px}.tips-head{display:flex;gap:10px;align-items:center}.tips-head>span{font-size:24px}.tips-head div{display:flex;flex-direction:column}.tips-head strong{font-size:14px}.tips-head small{font-size:11px;color:var(--muted)}.tip-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.tip{min-height:92px;background:#fff;border:1px solid #eee7d4;border-radius:13px;text-align:center;display:flex;flex-direction:column;align-items:center;padding:8px 4px;position:relative}.tip-pic{font-size:26px}.tip strong{font-size:12px;margin:2px 0}.tip small{font-size:9px;color:var(--muted)}.tip.good:after{content:"✓";position:absolute;right:6px;top:5px;color:var(--green);font-weight:900}.tip.optional:after{content:"＋";position:absolute;right:6px;top:5px;color:#d99b00;font-weight:900}.tip.bad:after{content:"×";position:absolute;right:6px;top:5px;color:var(--coral);font-weight:900}.pet-fields{display:grid;grid-template-columns:1fr 1fr;gap:12px}.pet-fields label{font-size:12px;font-weight:900}.pet-fields input,.pet-fields select{display:block;width:100%;margin-top:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;font:700 14px inherit;color:var(--ink);outline:none}.pet-fields input:focus,.pet-fields select:focus{border-color:var(--green);box-shadow:0 0 0 3px #dff3e8}.primary,.secondary{border:0;border-radius:15px;font:900 15px inherit;cursor:pointer;transition:.2s}.primary{width:100%;padding:15px;background:var(--green);color:#fff;box-shadow:0 8px 0 #0f4f40;margin-top:17px}.primary:hover{transform:translateY(-2px);box-shadow:0 10px 0 #0f4f40}.primary:active{transform:translateY(4px);box-shadow:0 4px 0 #0f4f40}.primary span{color:var(--yellow)}.privacy{text-align:center;color:#8d9995;font-size:10px;margin:14px 0 0}.preview-card{overflow:hidden;position:sticky;top:96px}.sample-label{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;font-size:12px;font-weight:900;color:var(--muted)}.sample-label span{color:#a96e00;background:#fff0bd;padding:3px 7px;border-radius:20px}.result-photo{height:210px;margin:0 16px;background:linear-gradient(135deg,#d9f2e5,#ffe9ad);border-radius:18px;overflow:hidden;position:relative;display:grid;place-items:center}.result-photo img{display:none;width:100%;height:100%;object-fit:cover}.result-photo.has-image img{display:block}.result-photo.has-image .result-placeholder{display:none}.result-placeholder{font-size:72px}.match-tag{position:absolute;right:10px;bottom:10px;background:rgba(255,255,255,.9);padding:6px 10px;border-radius:99px;font-size:11px;font-weight:900}.result-body{padding:21px 24px}.result-body>small{font-size:12px;color:var(--green);font-weight:900}.result-body h2{font-family:"ZCOOL KuaiLe";font-size:34px;font-weight:400;margin:6px 0 10px}.result-body p{font-size:13px;line-height:1.7;color:#596963;background:#f6f8f7;padding:11px 13px;border-radius:12px;margin:0}.traits{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0}.traits span{font-size:10px;font-weight:900;padding:5px 8px;border-radius:99px;background:#ffeab1;color:#845e00}.meters{display:grid;gap:8px}.meters label{display:flex;justify-content:space-between;font-size:10px;font-weight:800}.meters i{display:block;height:6px;background:#e8efeb;border-radius:10px;margin-top:3px;overflow:hidden}.meters i span{display:block;height:100%;background:var(--coral);border-radius:10px}.parent-test{border-top:1px dashed var(--line);padding:16px 20px;display:flex;gap:10px;align-items:center;background:#fbfcfb}.parent-test>div:first-child{white-space:nowrap;font-size:18px}.parent-test>div:nth-child(2){display:flex;flex-direction:column;flex:1}.parent-test strong{font-size:12px}.parent-test small{font-size:9px;color:var(--muted)}.parent-test button{border:0;border-radius:10px;padding:8px 10px;font:900 10px inherit;background:#dfe5e2;color:#89938f}.parent-test button:not(:disabled){background:var(--coral);color:#fff;cursor:pointer}.history-view{padding-top:20px}.history-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:30px}.history-head h1{font-size:48px;margin-bottom:8px}.secondary{padding:13px 18px;background:#fff;border:1px solid var(--line);color:var(--green)}.history-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.history-card{background:#fff;border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 10px 30px rgba(39,79,64,.08)}.history-card img{width:100%;height:180px;object-fit:cover;background:#dff3e8}.history-card div{padding:17px}.history-card small{color:var(--muted)}.history-card h3{font-family:"ZCOOL KuaiLe";font-size:24px;margin:5px 0}.history-card p{margin:0;color:var(--green);font-size:12px;font-weight:800}.history-empty{text-align:center;padding:80px 20px;display:none}.history-empty.show{display:block}.history-empty>span{font-size:60px}.history-empty h2{font-size:22px}.history-empty p{color:var(--muted)}.history-empty .primary{width:auto;padding-inline:30px}dialog{width:min(460px,calc(100% - 32px));border:0;border-radius:28px;padding:30px;box-shadow:0 30px 90px rgba(15,50,40,.3);text-align:center;color:var(--ink)}dialog::backdrop{background:rgba(20,40,34,.5);backdrop-filter:blur(5px)}.dialog-close{position:absolute;right:16px;top:13px;border:0;background:transparent;font-size:28px;color:var(--muted);cursor:pointer}.dialog-icon{font-size:38px}.dialog-icon span{color:var(--coral)}dialog h2{font-family:"ZCOOL KuaiLe";font-size:30px;margin:12px 0 5px}dialog>p{font-size:13px;color:var(--muted);line-height:1.6}.owner-upload{display:flex;flex-direction:column;align-items:center;border:2px dashed #b7dcca;border-radius:18px;background:#f2fbf6;padding:18px;cursor:pointer;margin-top:20px}.owner-upload span{font-size:28px}.owner-upload strong{font-size:14px;margin:4px}.owner-upload small{font-size:10px;color:var(--muted)}.match-result{display:none;background:#fff4d5;border-radius:18px;padding:18px;margin-top:18px}.match-result.show{display:block}.match-result small{display:block;color:#9b7519;font-weight:900}.match-result strong{font-size:48px;color:var(--coral)}.match-result p{font-size:12px;line-height:1.6;margin:4px}.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,120px);background:var(--ink);color:#fff;padding:12px 20px;border-radius:99px;font-size:13px;font-weight:800;z-index:50;transition:.35s}.toast.show{transform:translate(-50%,0)}@media(max-width:850px){.mini-profile{display:none}.topbar{padding:0 16px}.brand span:last-child{display:none}main{padding:28px 14px 60px}.intro{min-height:0;padding:0 5px 24px;align-items:center}.intro h1{font-size:39px}.intro p{font-size:14px}.hero-pets{width:140px;height:135px;margin:0 -5px -10px -35px}.workspace{grid-template-columns:1fr}.preview-card{position:static}.history-list{grid-template-columns:1fr 1fr}}@media(max-width:560px){nav{margin-left:auto}.nav-item{padding:9px;font-size:12px}.intro{display:block}.hero-pets{position:absolute;right:10px;top:82px;width:120px;opacity:.9}.intro h1{font-size:35px;max-width:90%}.intro p{max-width:80%}.upload-card{padding:18px;border-radius:22px}.dropzone{height:190px}.tip-grid{gap:5px}.tip small{max-width:80px}.pet-fields{grid-template-columns:1fr}.history-head{align-items:start}.history-head h1{font-size:38px}.history-list{grid-template-columns:1fr}}
