:root{--bg1:#f6f5fb;--bg2:#faf6f8;--card:#fff;--border:#ececf1;--border2:#e3e0ee;--ink:#20232b;--ink2:#3d4250;--muted:#9499a6;--muted2:#b7bcc7;--accent:#7c5cff;--accent2:#9b7bff;--accent-ink:#6a4bff;--accent-soft:#f1edff}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Nunito,system-ui,sans-serif;color:var(--ink);min-height:100vh;background:linear-gradient(135deg,var(--bg1),var(--bg2))}.topbar{display:flex;align-items:center;justify-content:space-between;max-width:1280px;margin:0 auto;padding:18px 28px}.brand{gap:10px;font-weight:700;color:var(--ink)}.brand,.brand .logo{display:flex;align-items:center;font-size:18px}.brand .logo{width:34px;height:34px;border-radius:10px;background:linear-gradient(135deg,var(--accent),var(--accent2));justify-content:center;color:#fff;box-shadow:0 6px 16px rgba(124,92,255,.35)}.topnav{display:flex;gap:26px}.topnav a{display:flex;align-items:center;gap:6px;color:var(--ink2);text-decoration:none;font-size:14px;font-weight:600;cursor:pointer;transition:color .2s}.topnav a:hover{color:var(--accent-ink)}.panels{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px;gap:22px;max-width:1280px;margin:8px auto 60px;padding:0 28px}.panel{background:var(--card);border:1px solid var(--border);border-radius:20px;padding:26px 28px;box-shadow:0 18px 50px rgba(40,30,80,.06)}.phead h2{font-size:21px;font-weight:700;color:var(--ink)}.phead p{margin-top:5px;font-size:14px;color:var(--muted);line-height:1.5}.phead.row{align-items:flex-start;gap:16px}.phead.row,.style-head{display:flex;justify-content:space-between}.style-head{align-items:center;margin:22px 0 10px}.style-head .lbl{font-size:15px;font-weight:700;color:var(--ink)}.badge{background:var(--accent-soft);color:var(--accent-ink);font-size:12px;font-weight:700;padding:5px 12px;border-radius:20px}.selected-style{gap:16px;background:linear-gradient(180deg,#f7f4ff,#fbfaff);border:1px solid var(--border2);border-radius:16px;padding:16px}.selected-style,.thumb{display:flex;align-items:center}.thumb{flex:none;width:88px;height:108px;border-radius:12px;border:1px solid rgba(0,0,0,.06);box-shadow:0 6px 14px rgba(40,30,80,.12);overflow:hidden;justify-content:center;font-size:40px;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.18)}.sinfo{min-width:0}.picked{font-size:12px;font-weight:700;color:var(--accent-ink);margin-bottom:3px}.sname{font-size:19px;font-weight:800;color:var(--ink);line-height:1.15}.sdesc{margin:6px 0 11px;color:var(--muted);line-height:1.5}.ghost,.sdesc{font-size:13px}.ghost{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid var(--border2);color:var(--accent-ink);font-family:inherit;font-weight:700;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .2s,border-color .2s}.ghost:hover{background:var(--accent-soft);border-color:var(--accent)}.content{margin-top:18px;width:100%;min-height:230px;resize:vertical;border-radius:14px;padding:16px;background:#fbfbfe;border:1px solid var(--border);color:var(--ink);font-family:inherit;font-size:15px;line-height:1.6;outline:none;transition:border-color .2s,box-shadow .2s}.content::placeholder{color:var(--muted2)}.content:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.14)}.generate{margin-top:16px;width:100%;border:none;cursor:pointer;border-radius:14px;padding:15px;font-family:inherit;font-size:16px;font-weight:800;color:#fff;background:linear-gradient(95deg,var(--accent),var(--accent2));box-shadow:0 12px 26px rgba(124,92,255,.36);transition:transform .14s,box-shadow .2s}.generate:hover{transform:translateY(-1px);box-shadow:0 16px 32px rgba(124,92,255,.44)}.generate:active{transform:none}.generate:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.err{margin-top:12px;font-size:13px;font-weight:600;color:#c0392b;background:#fdecea;border:1px solid #f5c6c0;border-radius:10px;padding:10px 12px}.aspect-row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:wrap}.aspect-lbl{color:var(--muted)}.aspect-btn,.aspect-lbl{font-size:13px;font-weight:700}.aspect-btn{border:1px solid var(--border2);background:#fff;color:var(--ink2);font-family:inherit;padding:7px 12px;border-radius:9px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.aspect-btn:hover{border-color:var(--accent2)}.aspect-btn.sel{background:var(--accent-soft);border-color:var(--accent);color:var(--accent-ink)}.copyall{display:inline-flex;align-items:center;gap:6px;flex:none;background:#fff;border:1px solid var(--border2);color:var(--ink2);font-family:inherit;font-size:13px;font-weight:700;padding:8px 14px;border-radius:10px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.copyall:hover:not(:disabled){background:var(--accent-soft);color:var(--accent-ink);border-color:var(--accent)}.copyall:disabled{opacity:.5;cursor:not-allowed}.result{margin-top:18px;min-height:430px;display:flex;flex-direction:column}.promptbox{flex:1 1;white-space:pre-wrap;overflow-wrap:anywhere;font-family:Fraunces,Georgia,serif;font-size:15px;line-height:1.74;color:var(--ink2);background:#fbfafe;border:1px solid var(--border);border-radius:14px;padding:18px 20px}.empty{flex:1 1;flex-direction:column;text-align:center;gap:8px;color:var(--muted)}.empty,.empty .spark{display:flex;align-items:center;justify-content:center}.empty .spark{width:64px;height:64px;border-radius:18px;background:#f5f3fc;border:1px solid var(--border);color:var(--accent);font-size:28px;margin-bottom:8px}.empty .big{font-size:17px;font-weight:800;color:var(--ink2)}.empty .hint{font-size:13px;color:var(--muted)}.empty.loading .big{color:var(--accent-ink)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin:0 2px;animation:blink 1.2s infinite}.dot:nth-child(2){animation-delay:.2s}.dot:nth-child(3){animation-delay:.4s}.overlay{position:fixed;inset:0;z-index:50;background:rgba(30,24,55,.42);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .2s}.modal{background:var(--card);border-radius:22px;width:min(760px,100%);max-height:86vh;overflow:auto;box-shadow:0 40px 90px rgba(20,12,50,.4);padding:24px 26px}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.modal-head h3{font-size:19px;font-weight:800;color:var(--ink)}.xbtn{width:34px;height:34px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--ink2);font-size:16px;cursor:pointer}.xbtn:hover{background:#f5f3fc}.style-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:14px;gap:14px}.scard{border:1px solid var(--border);border-radius:14px;padding:12px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .15s;background:#fff}.scard:hover{transform:translateY(-3px);box-shadow:0 12px 24px rgba(40,30,80,.12);border-color:var(--accent2)}.scard.sel{border:2px solid var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.16)}.scard .sthumb{width:100%;aspect-ratio:3/4;border-radius:10px;margin-bottom:9px;border:1px solid rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;font-size:44px;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.18)}.scard .scn{font-size:14px;font-weight:800;color:var(--ink);line-height:1.2}.scard .scs{margin-top:3px;font-size:12px;color:var(--muted)}.scard .sthumb,.thumb{position:relative;overflow:hidden}.thumbimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}@keyframes blink{0%,to{opacity:.25}50%{opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.step{margin-top:20px}.step-h{gap:9px;font-size:15px;color:var(--ink)}.step-h,.step-h .num{display:flex;align-items:center;font-weight:800}.step-h .num{width:22px;height:22px;flex:none;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:12px;justify-content:center;box-shadow:0 4px 10px rgba(124,92,255,.3)}.step .content{min-height:150px}.step .aspect-row,.step .content{margin-top:11px}.custom-n{width:88px;border:1px solid var(--accent);background:#fff;color:var(--ink);font-family:inherit;font-size:13px;font-weight:700;padding:7px 10px;border-radius:9px;outline:none}.custom-n:focus{box-shadow:0 0 0 3px rgba(124,92,255,.14)}.hint-sm{margin-top:9px;font-size:12px;color:var(--muted)}.style-actions{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}.rec-btn{flex:1 1;min-width:170px;border:none;cursor:pointer;border-radius:11px;padding:11px 14px;font-family:inherit;font-size:14px;font-weight:800;color:#fff;background:linear-gradient(95deg,var(--accent),var(--accent2));box-shadow:0 8px 18px rgba(124,92,255,.3);transition:transform .14s,box-shadow .2s}.rec-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 12px 24px rgba(124,92,255,.4)}.rec-btn:disabled{opacity:.6;cursor:not-allowed}.err.small{margin-top:10px;padding:8px 11px;font-size:12px}.recs{margin-top:14px;background:#faf8ff;border:1px solid var(--border2);border-radius:14px;padding:13px}.recs-lbl{font-size:12px;font-weight:800;color:var(--accent-ink);margin-bottom:10px}.recs-row{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px}.rcard{border:1px solid var(--border);border-radius:12px;padding:9px;cursor:pointer;background:#fff;transition:border-color .2s,box-shadow .2s,transform .15s}.rcard:hover{transform:translateY(-2px);box-shadow:0 10px 20px rgba(40,30,80,.12);border-color:var(--accent2)}.rcard.sel{border:2px solid var(--accent);box-shadow:0 0 0 3px rgba(124,92,255,.16)}.rcard .sthumb{width:100%;aspect-ratio:3/4;border-radius:9px;margin-bottom:7px;border:1px solid rgba(0,0,0,.05);display:flex;align-items:center;justify-content:center;font-size:30px;line-height:1;text-shadow:0 1px 3px rgba(0,0,0,.18)}.rcn{font-size:13px;font-weight:800;color:var(--ink);line-height:1.2}.rcr{margin-top:3px;font-size:11px;color:var(--muted);line-height:1.35}.selected-style{margin-top:14px}.tagrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.tag{background:#fff;border:1px solid var(--border2);color:var(--ink2);font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}.modal-body{display:flex;flex-direction:column;gap:22px}.cat-block .cat-h{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:800;color:var(--ink);margin-bottom:12px;padding-bottom:7px;border-bottom:1px solid var(--border)}.cat-h .cat-n{font-size:11px;font-weight:700;color:var(--muted);background:#f3f1fa;border-radius:20px;padding:2px 9px}.rcard .sthumb,.scard .sthumb,.thumb{position:relative;overflow:hidden}.topnav a.active{color:var(--accent-ink)}.hp-hero{position:relative;width:100vw;height:100vh;overflow:hidden;background:#0c1810}.hp-bg{position:absolute;inset:0;background:url(/art/hero.png) 50%/cover no-repeat;animation:hp-kenburns 26s ease-in-out infinite alternate;will-change:transform}@keyframes hp-kenburns{0%{transform:scale(1.04) translate(0)}to{transform:scale(1.12) translate(-1.5%,-1.2%)}}.hp-godrays{position:absolute;inset:-25%;pointer-events:none;mix-blend-mode:screen;transform-origin:60% 2%;background:repeating-conic-gradient(from 198deg at 60% 2%,rgba(255,236,170,0) 0deg,rgba(255,236,170,.16) 2.4deg,rgba(255,236,170,0) 6deg,rgba(255,236,170,.1) 9deg,rgba(255,236,170,0) 13deg);animation:hp-rays 13s ease-in-out infinite}@keyframes hp-rays{0%,to{opacity:.35;transform:rotate(-1.4deg)}50%{opacity:.7;transform:rotate(1.4deg)}}.hp-water{position:absolute;left:0;right:0;bottom:0;height:38%;pointer-events:none;mix-blend-mode:soft-light;opacity:.55;background:linear-gradient(100deg,transparent,hsla(0,0%,100%,.55) 18%,transparent 38%,hsla(0,0%,100%,.42) 60%,transparent 82%);background-size:220% 100%;animation:hp-flow 8s linear infinite;-webkit-mask:radial-gradient(120% 90% at 50% 110%,#000 35%,transparent 70%);mask:radial-gradient(120% 90% at 50% 110%,#000 35%,transparent 70%)}@keyframes hp-flow{0%{background-position:0 0}to{background-position:220% 0}}.hp-wash{position:absolute;inset:0;background:linear-gradient(95deg,rgba(8,20,12,.82),rgba(8,20,12,.5) 32%,rgba(8,20,12,0) 58%),linear-gradient(180deg,rgba(8,20,12,.4),transparent 22%,transparent 78%,rgba(8,20,12,.42))}.hp-nav{position:absolute;top:0;left:0;right:0;z-index:7;justify-content:space-between;padding:26px 48px}.hp-brand,.hp-nav{display:flex;align-items:center}.hp-brand{gap:12px;font-size:25px;letter-spacing:.5px;text-shadow:0 2px 12px rgba(0,0,0,.45)}.hp-brand,.hp-seal{font-family:Cormorant Garamond,Georgia,serif;font-weight:600;color:#fff}.hp-seal{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#5cc46f,#2f9d52);font-size:21px;box-shadow:0 6px 16px rgba(47,157,82,.45)}.hp-tabs{display:flex;gap:30px}.hp-tabs a{position:relative;color:hsla(0,0%,100%,.82);text-decoration:none;font-size:15px;font-weight:600;cursor:pointer;padding:6px 2px;transition:color .2s;text-shadow:0 2px 10px rgba(0,0,0,.35)}.hp-tabs a.active,.hp-tabs a:hover{color:#fff}.hp-tabs a.active:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;background:#ffd27a;border-radius:2px}.hp-content{position:absolute;z-index:6;left:8.5vw;top:50%;transform:translateY(-50%);max-width:620px}.hp-eyebrow{font-size:13px;letter-spacing:5px;color:#ffd27a;margin-bottom:20px;animation:hp-rise .9s .15s forwards}.hp-eyebrow,.hp-title{font-weight:600;opacity:0}.hp-title{font-family:Cormorant Garamond,Georgia,serif;font-size:82px;line-height:1.06;color:#fff;letter-spacing:.5px;text-shadow:0 4px 26px rgba(0,0,0,.5);animation:hp-rise .9s .3s forwards}.hp-title .accent{color:#ffd27a;font-style:italic}.hp-subtitle{margin-top:24px;font-size:18px;line-height:1.75;color:hsla(0,0%,100%,.9);font-weight:400;max-width:520px;text-shadow:0 2px 14px rgba(0,0,0,.5);opacity:0;animation:hp-rise .9s .5s forwards}.hp-cta{margin-top:40px;display:flex;gap:14px;opacity:0;animation:hp-rise .9s .7s forwards}.hp-btn,.hp-cta{align-items:center}.hp-btn{display:inline-flex;gap:8px;padding:15px 30px;border-radius:999px;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .15s,box-shadow .2s}.hp-btn--primary{background:linear-gradient(100deg,#5cc46f,#2f9d52);color:#fff;box-shadow:0 12px 28px rgba(47,157,82,.42)}.hp-btn--primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(47,157,82,.55)}.hp-btn--ghost{background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.4);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.hp-btn--ghost:hover{background:hsla(0,0%,100%,.24)}@keyframes hp-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.hp-mote{position:absolute;bottom:-20px;z-index:5;border-radius:50%;pointer-events:none;background:radial-gradient(circle,#fff3c8,rgba(255,210,122,.5) 55%,rgba(255,210,122,0) 75%);box-shadow:0 0 8px rgba(255,224,150,.8);will-change:transform,opacity}@keyframes hp-floatup{0%{transform:translateY(0) translateX(0);opacity:0}15%{opacity:.85}85%{opacity:.85}to{transform:translateY(-112vh) translateX(40px);opacity:0}}@media(max-width:880px){.panels{grid-template-columns:1fr}.style-grid{grid-template-columns:repeat(2,1fr)}.hp-content{left:6vw;right:6vw;max-width:none}.hp-title{font-size:52px}.hp-nav{padding:18px 22px}.hp-tabs{gap:18px}}