:root{--bg:#f4efe8;--bg-soft:#fbf7f0;--ink:#1d1a17;--muted:#5f574f;--line:#49382724;--accent:#85523a;--accent-strong:#653620;--accent-soft:#85523a1a;--green-soft:#486b4d1f;--shadow:0 28px 90px #46311f1f}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);background:radial-gradient(circle at top left, #ffffffd6, transparent 26%), radial-gradient(circle at right 18%, #85523a1a, transparent 22%), linear-gradient(180deg, #faf6ef 0%, var(--bg) 52%, #ece0d0 100%);margin:0;font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}body:before{content:"";pointer-events:none;background-image:linear-gradient(#00000007 1px,#0000 1px),linear-gradient(90deg,#00000007 1px,#0000 1px);background-size:26px 26px;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#0000006b,#0000 86%);mask-image:linear-gradient(#0000006b,#0000 86%)}.shell{width:min(1220px,100% - 32px);margin:0 auto;padding:28px 0 64px}.hero{border:1px solid var(--line);min-height:34vh;box-shadow:var(--shadow);background:radial-gradient(circle at 82% 22%,#536e553d,#0000 18%),radial-gradient(circle at 76% 78%,#85523a33,#0000 19%),linear-gradient(145deg,#fff9f2f5,#e1cebac7);grid-template-columns:1.55fr .95fr;gap:24px;padding:42px;display:grid}.hero h1{max-width:11ch;margin:0;font-family:STSong,Songti SC,serif;font-size:clamp(2.7rem,6vw,5.4rem);line-height:1.02}.eyebrow,.section-kicker{letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:12px}.hero-text{max-width:620px;color:var(--muted);margin:18px 0 0;font-size:1.04rem;line-height:1.75}.hero-meta{align-content:end;gap:14px;display:grid}.hero-meta div{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffaf4b3;border:1px solid #4938271a;padding:20px}.hero-meta span,.info-block span{color:var(--muted);margin-bottom:8px;font-size:.84rem;display:block}.hero-meta strong,.info-block strong{font-size:1.05rem;line-height:1.55}.workspace{grid-template-columns:minmax(340px,450px) 1fr;gap:22px;margin-top:22px;display:grid}.panel{border:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--shadow);background:#fffbf7bd}.form-panel,.result-panel{padding:28px}.form-panel{align-content:start;gap:18px;display:grid}.section-head h2,.result-head h2,.empty-state h2{margin:0;font-family:STSong,Songti SC,serif;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.12}label,legend{font-size:.96rem;display:block}input,select,textarea{width:100%;color:var(--ink);font:inherit;background:#fffc;border:1px solid #49382729;outline:none;margin-top:8px;padding:14px 16px;transition:border-color .16s,box-shadow .16s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px #85523a1a}fieldset{border:0;margin:0;padding:0}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.chip-grid{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.chip{background:#ffffffb8;border:1px solid #49382724;align-items:center;gap:8px;padding:10px 14px;display:inline-flex}.chip input{width:auto;margin:0}.submit-button{background:linear-gradient(135deg, var(--accent), var(--accent-strong));color:#fffaf4;font:inherit;cursor:pointer;border:0;padding:16px 18px;font-weight:600;box-shadow:0 16px 36px #6536203d}.submit-button:disabled{cursor:wait;opacity:.82}.error-text{color:#a33621;margin:0}.upload-preview{background:#ffffffb8;border:1px solid #49382724;overflow:hidden}.upload-preview img{object-fit:cover;width:100%;max-height:220px;display:block}.result-panel{min-height:780px}.result-stack{gap:22px;display:grid}.result-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:16px;padding-bottom:18px;display:flex}.result-head p,.empty-state p,.list-item p,.list-item small{color:var(--muted);line-height:1.7}.badge{background:var(--green-soft);color:#36523a;white-space:nowrap;padding:9px 12px;font-size:.9rem}.triple-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.info-block,.surface-block{background:#ffffff8a}.info-block{border-top:2px solid #85523a5c;padding:18px 16px}.two-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.surface-block{padding:20px}.surface-block h3{margin:0 0 14px;font-size:1.06rem}.list-item+.list-item{margin-top:14px}.list-item h4{margin:0 0 8px;font-size:.98rem}.recipe-title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.recipe-title-row h4{margin:0}.copy-button{color:var(--accent-strong);font:inherit;cursor:pointer;white-space:nowrap;background:#ffffffb8;border:1px solid #4938272e;padding:7px 10px;font-size:.82rem;transition:border-color .16s,background .16s}.copy-button:hover{background:var(--accent-soft);border-color:#85523a6b}.list-item small{margin-top:8px;display:block}.list-item ul,.plain-list{margin:10px 0 0;padding-left:18px}.list-item li,.plain-list li{line-height:1.7}.list-item li+li,.plain-list li+li{margin-top:8px}.list-item li span{color:var(--muted);display:block}.warn-block{border-left:3px solid var(--accent)}.empty-state{place-content:center;max-width:460px;min-height:100%;display:grid}.progress-state{align-content:center;max-width:620px;min-height:100%;display:grid}.progress-state h2{margin:0;font-family:STSong,Songti SC,serif;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.12}.progress-state>p{color:var(--muted);line-height:1.7}.progress-list{gap:12px;margin-top:18px;display:grid}.progress-item{background:#ffffff7a;border-left:3px solid #49382724;grid-template-columns:70px 1fr;gap:14px;padding:14px;display:grid}.progress-item>span{color:var(--muted);font-size:.82rem}.progress-item strong{margin-bottom:4px;display:block}.progress-item p{color:var(--muted);margin:0;line-height:1.55}.progress-item.is-active{border-left-color:var(--accent);background:#ffffffad}.progress-item.is-active>span{color:var(--accent-strong)}.progress-item.is-done{border-left-color:#486b4d80}@media (max-width:980px){.hero,.workspace,.field-grid,.triple-grid,.two-grid{grid-template-columns:1fr}.hero{padding:26px}.hero h1{max-width:12ch}.result-head{flex-direction:column}}@media (max-width:640px){.shell{width:min(100% - 18px,100%);padding-top:12px}.hero,.form-panel,.result-panel{padding:20px}.hero h1{font-size:2.4rem}}
