:root{--ink: #21191c;--ink-soft: #554548;--paper: #f5efe8;--paper-deep: #ece2d7;--blush: #e8c7ba;--blush-deep: #c99a89;--copper: #a86f4b;--line: rgba(33, 25, 28, .16);--serif: "Cormorant Garamond", "Noto Serif SC", "Songti SC", serif;--sans: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:400;line-height:1.7;-webkit-font-smoothing:antialiased}button,input,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}.app-shell{position:relative;min-height:100vh;overflow:hidden}.grain{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 220 220' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px clamp(20px,5vw,64px);background:#f5efe8db;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand{display:inline-flex;align-items:center;gap:12px;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:var(--serif);font-size:15px;letter-spacing:.12em}.brand-text{display:flex;flex-direction:column;line-height:1.15}.brand-text strong{font-family:var(--serif);font-size:18px;font-weight:700;letter-spacing:.04em}.brand-text small{color:var(--ink-soft);font-family:var(--serif);font-size:10px;letter-spacing:.24em}.topnav{display:flex;gap:26px}.topnav a{color:var(--ink-soft);font-size:13px;letter-spacing:.08em;text-decoration:none}.topnav a:hover{color:var(--copper)}.hero{max-width:1180px;margin:0 auto;padding:clamp(64px,10vw,140px) clamp(20px,5vw,64px) clamp(48px,7vw,96px)}.eyebrow{margin:0 0 22px;color:var(--copper);font-size:12px;letter-spacing:.28em;text-transform:uppercase}.hero h1{max-width:800px;margin:0;font-family:var(--serif);font-size:clamp(48px,8vw,104px);font-weight:500;line-height:.98;letter-spacing:-.04em}.hero h1 span{color:var(--copper);font-style:italic;padding:0 .12em}.hero-copy{max-width:600px;margin:30px 0 0;color:var(--ink-soft);font-size:16px;line-height:1.9}.hero-cta{display:inline-flex;align-items:center;gap:12px;margin-top:38px;padding:15px 26px;border:1px solid var(--ink);color:var(--ink);font-size:14px;letter-spacing:.08em;text-decoration:none;transition:background .25s ease,color .25s ease}.hero-cta:hover{background:var(--ink);color:var(--paper)}.studio,.result-section,.history{max-width:1180px;margin:0 auto;padding:clamp(40px,6vw,80px) clamp(20px,5vw,64px)}.section-heading{display:flex;align-items:baseline;gap:18px;margin-bottom:34px;padding-bottom:16px;border-bottom:1px solid var(--line)}.section-no{color:var(--copper);font-family:var(--serif);font-size:13px;letter-spacing:.18em}.section-heading h2{margin:0;font-family:var(--serif);font-size:clamp(30px,4vw,46px);font-weight:500;line-height:1}.step-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.step-card{position:relative;min-height:300px;padding:26px;background:#fffcf885;border:1px solid var(--line)}.step-index{position:absolute;top:20px;right:22px;color:var(--blush-deep);font-family:var(--serif);font-size:15px;letter-spacing:.1em}.step-card h3{margin:0 0 8px;font-family:var(--serif);font-size:24px;font-weight:600}.step-card p{margin:0 0 20px;color:var(--ink-soft);font-size:13px;line-height:1.75}.upload-box{position:relative;min-height:150px;cursor:pointer;border:1px dashed rgba(33,25,28,.32);background:#ece2d78c;transition:border-color .2s ease,background .2s ease}.upload-box.small{min-height:118px}.upload-box:hover,.upload-box.dragging{border-color:var(--copper);background:#e8c7ba47}.upload-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:inherit;gap:7px;color:var(--ink-soft);font-size:13px;text-align:center;padding:20px}.plus{font-family:var(--serif);font-size:38px;font-weight:300;line-height:1;color:var(--copper)}.upload-preview{position:relative;min-height:inherit}.upload-preview img{display:block;width:100%;max-height:250px;min-height:150px;object-fit:cover}.upload-box.small .upload-preview img{max-height:190px;min-height:118px}.clear-file{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--ink);color:var(--paper);font-size:18px;line-height:1}.prompt-box{width:100%;min-height:150px;padding:16px;resize:vertical;border:1px dashed rgba(33,25,28,.32);background:#ece2d78c;color:var(--ink);outline:none}.prompt-box:focus{border-color:var(--copper)}.generate-block{display:flex;flex-direction:column;align-items:flex-start;gap:12px}.generate-btn{width:100%;padding:17px 20px;border:0;background:var(--ink);color:var(--paper);cursor:pointer;font-size:15px;letter-spacing:.08em;transition:background .25s ease,transform .2s ease}.generate-btn:hover:not(:disabled){background:var(--copper);transform:translateY(-1px)}.generate-btn:disabled{cursor:not-allowed;opacity:.4}.hint{color:var(--ink-soft);font-size:12px}.studio-foot{margin-top:24px}.guarantee{display:flex;align-items:center;gap:10px;margin-bottom:14px;color:var(--ink-soft);font-size:13px}.guarantee-dot{width:7px;height:7px;border-radius:50%;background:var(--copper)}.adjust-row{display:flex;gap:12px}.adjust-row input{flex:1;padding:14px 15px;border:1px solid var(--line);background:#fffcf8b3;color:var(--ink);outline:none}.adjust-row input:focus{border-color:var(--copper)}.text-btn{padding:0 22px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-size:13px;letter-spacing:.05em;transition:background .2s ease,color .2s ease}.text-btn:hover:not(:disabled){background:var(--ink);color:var(--paper)}.text-btn:disabled{cursor:not-allowed;opacity:.4}.error-banner{max-width:1180px;margin:28px auto 0;padding:15px 22px;border-left:3px solid #a6483c;background:#a6483c1a;color:#7e342c;font-size:14px}.result-section{scroll-margin-top:90px}.empty-result{padding:70px 20px;text-align:center;border:1px solid var(--line);background:#fffcf86b}.empty-result p{margin:0 0 6px;font-family:var(--serif);font-size:26px}.empty-result span{color:var(--ink-soft);font-size:13px}.result-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:20px}.result-panel{margin:0;border:1px solid var(--line);background:#fffcf873}.result-panel figcaption{padding:12px 16px;border-bottom:1px solid var(--line);color:var(--ink-soft);font-size:12px;letter-spacing:.08em}.result-panel img{display:block;width:100%;max-height:640px;object-fit:contain;background:#e9dfd5}.placeholder{width:100%;min-height:320px;background:#e9dfd5}.loading-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:380px;gap:12px;padding:40px;text-align:center}.spinner{width:40px;height:40px;border:2px solid rgba(168,111,75,.25);border-top-color:var(--copper);border-radius:50%;animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-panel p{margin:0;font-family:var(--serif);font-size:22px}.loading-panel small{color:var(--ink-soft)}.result-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}.outline-btn{padding:12px 20px;border:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;font-size:13px;letter-spacing:.06em;transition:background .2s ease,color .2s ease}.outline-btn:hover{background:var(--ink);color:var(--paper)}.history{scroll-margin-top:90px}.history-empty{padding:40px 0;color:var(--ink-soft);text-align:center}.history-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.history-card{display:flex;flex-direction:column;gap:8px;padding:0;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;text-align:left;transition:transform .2s ease,border-color .2s ease}.history-card:hover,.history-card.active{border-color:var(--copper);transform:translateY(-3px)}.history-card img{width:100%;aspect-ratio:3 / 4;object-fit:cover;filter:saturate(.92)}.history-card span{display:-webkit-box;padding:0 10px;overflow:hidden;font-size:12px;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.history-card small{padding:0 10px 10px;color:var(--ink-soft);font-size:11px}.footer{margin-top:60px;padding:40px clamp(20px,5vw,64px) 50px;border-top:1px solid var(--line);text-align:center}.footer-brand{font-family:var(--serif);font-size:22px;letter-spacing:.22em}.footer p{margin:8px 0 0;color:var(--ink-soft);font-size:12px}@media (max-width: 800px){.topnav{display:none}.step-grid,.result-grid{grid-template-columns:1fr}.step-card{min-height:auto}.result-panel img{max-height:480px}.history-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 480px){.hero h1{font-size:clamp(42px,15vw,64px)}.hero-copy{font-size:14px}.adjust-row{flex-direction:column}.text-btn{padding:13px 18px}}.auth-loading{display:grid;min-height:100vh;place-items:center;color:var(--ink-soft);font-family:var(--serif);letter-spacing:.08em}.auth-screen{display:grid;min-height:100vh;place-items:center;padding:24px;background:radial-gradient(circle at 20% 15%,rgba(232,199,186,.45),transparent 38%),radial-gradient(circle at 82% 85%,rgba(168,111,75,.18),transparent 34%),var(--paper)}.auth-card{position:relative;width:min(100%,420px);padding:36px 30px;border:1px solid var(--line);background:#fffcf8c7;box-shadow:0 24px 60px #21191c14}.auth-lang-toggle{position:absolute;top:16px;right:16px}.auth-mark{width:48px;height:48px;margin-bottom:22px}.auth-card h1{margin:0 0 10px;font-family:var(--serif);font-size:30px;font-weight:600}.auth-card p{margin:0 0 26px;color:var(--ink-soft);font-size:13px;line-height:1.8}.auth-label{display:block;margin:0 0 7px;color:var(--ink-soft);font-size:12px;letter-spacing:.05em}.auth-input{width:100%;padding:14px 15px;margin-bottom:16px;border:1px solid var(--line);background:#fffcf8cc;color:var(--ink);outline:none}.auth-input:focus{border-color:var(--copper)}.auth-primary{width:100%;padding:15px 18px;margin-top:4px;border:0;background:var(--ink);color:var(--paper);cursor:pointer;font-size:14px;letter-spacing:.08em}.auth-primary:disabled{cursor:not-allowed;opacity:.45}.auth-toggle{width:100%;padding:10px;margin-top:14px;border:0;background:transparent;color:var(--copper);cursor:pointer;font-size:13px}.trial-btn{width:100%;padding:13px 18px;margin-top:14px;border:1px solid var(--copper);background:transparent;color:var(--copper);cursor:pointer;font-size:14px;letter-spacing:.05em}.trial-btn:disabled{cursor:not-allowed;opacity:.45}.trial-hint{margin:8px 0 0;color:var(--ink-soft);font-size:12px;line-height:1.6;text-align:center}.auth-error{margin:0 0 14px;padding:10px 12px;border-left:3px solid #a6483c;background:#a6483c1a;color:#7e342c;font-size:13px}.auth-message{margin:0 0 14px;padding:10px 12px;border-left:3px solid var(--copper);background:#a86f4b1a;color:var(--copper);font-size:13px}.account-actions{display:flex;align-items:center;gap:12px}.account-phone{color:var(--ink-soft);font-size:13px}.lang-toggle{padding:8px 10px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:12px;letter-spacing:.04em}.lang-toggle:hover{border-color:var(--copper);color:var(--copper)}.logout-btn{padding:8px 14px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font-size:12px;letter-spacing:.05em}.logout-btn:hover{border-color:var(--copper);color:var(--copper)}
