:root{color-scheme:light;--background:#f4f1ec;--ink:#1b1f24;--muted:#667085;--line:#ded8cf;--panel:#fffaf4;--panel-strong:#ffffff;--primary:#c4492d;--primary-dark:#95321e;--green:#0f8a5f;--blue:#2563eb;--shadow:0 18px 50px rgba(37,30,24,0.12)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--background);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input{font:inherit}a{color:inherit;text-decoration:none}main{min-height:100vh}.topbar{align-items:center;background:rgba(244,241,236,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);display:grid;grid-gap:18px;gap:18px;grid-template-columns:1fr auto 1fr;left:0;padding:16px clamp(20px,5vw,72px);position:-webkit-sticky;position:sticky;top:0;z-index:20}.balance,.brand,.download-link,.generate-button,.generation-rules span,.ghost-button,.hero-actions,.upload-button{align-items:center;display:inline-flex;gap:8px}.brand{font-size:17px;font-weight:900}nav{background:#ebe5db;border:1px solid var(--line);display:flex;gap:4px;justify-self:center;padding:4px}nav,nav a{border-radius:999px}nav a{color:#475467;font-size:14px;font-weight:800;min-width:74px;padding:8px 14px;text-align:center}nav a:hover{background:white;color:var(--ink)}.compact-balance,.header-actions{justify-self:end}.header-actions{align-items:center;display:flex;gap:10px;min-width:0}.account-trigger,.login-link{align-items:center;background:var(--ink);border:1px solid var(--ink);border-radius:8px;color:white;cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;gap:7px;min-height:40px;padding:0 12px}.charge-link{background:white;color:var(--ink)}.account-menu{position:relative}.account-trigger{max-width:210px}.account-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-popover{background:white;border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);min-width:220px;padding:8px;position:absolute;right:0;top:calc(100% + 8px);z-index:30}.account-popover p{color:var(--muted);font-size:13px;margin:4px 6px 9px;overflow-wrap:anywhere}.account-popover button{align-items:center;background:transparent;border:0;border-radius:6px;color:var(--ink);cursor:pointer;display:flex;font-weight:800;gap:8px;min-height:36px;padding:0 6px;width:100%}.account-popover button:hover{background:#f4f1ec}.studio-hero{grid-gap:clamp(32px,6vw,76px);gap:clamp(32px,6vw,76px);grid-template-columns:minmax(0,.96fr) minmax(420px,1.04fr);min-height:650px;padding:68px clamp(20px,5vw,72px) 56px}.create-hero,.studio-hero{align-items:center;display:grid}.create-hero{grid-gap:28px;gap:28px;grid-template-columns:minmax(0,1fr) minmax(360px,440px);padding:44px clamp(20px,5vw,72px) 12px}.hero-copy{max-width:720px}.eyebrow{color:var(--primary);font-size:12px;font-weight:900;letter-spacing:0;margin:0 0 10px;text-transform:uppercase}h1,h2,p{margin-top:0}h1{font-size:clamp(42px,6vw,76px);line-height:1.03;margin-bottom:22px}h1,h2{letter-spacing:0}h2{font-size:28px;line-height:1.15;margin-bottom:0}.lead{color:#4b5565;font-size:18px;line-height:1.75;max-width:640px}.hero-actions{margin-top:30px}.generate-button,.primary-link,.secondary-link{border-radius:8px;font-weight:900;min-height:46px;padding:0 18px}.generate-button,.primary-link{background:var(--primary);border:0;color:white;cursor:pointer}.generate-button:hover,.primary-link:hover{background:var(--primary-dark)}.secondary-link{color:#344054;display:inline-flex;align-items:center}.balance,.secondary-link{background:white;border:1px solid var(--line)}.balance{border-radius:8px;gap:10px;font-weight:900;min-height:40px;padding:0 13px}.balance a{color:var(--blue);font-size:13px;font-weight:800;margin-left:auto}.hero-showcase{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));min-height:500px;position:relative}.create-template-preview{justify-self:end;max-width:440px;width:100%}.hero-showcase .template-poster{align-self:center;box-shadow:var(--shadow);transform:translateY(var(--offset))}.hero-showcase .template-poster:nth-child(2){z-index:2}.hero-showcase .template-poster:first-child,.hero-showcase .template-poster:nth-child(3){opacity:.88}.gallery,.generate-layout,.template-section{padding:0 clamp(20px,5vw,72px) 56px}.create-layout{padding-top:24px}.section-heading{align-items:flex-end;display:flex;gap:20px;justify-content:space-between;margin-bottom:20px}.section-heading p:not(.eyebrow){color:var(--muted);line-height:1.6;margin-bottom:0;max-width:460px}.template-grid{display:grid;grid-gap:18px;gap:18px;grid-template-columns:repeat(3,minmax(0,1fr))}.template-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;cursor:pointer;overflow:hidden;padding:0;position:relative;text-align:left;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.template-card:hover{box-shadow:0 16px 38px rgba(37,30,24,.12);transform:translateY(-2px)}.template-card.selected{border-color:var(--primary);box-shadow:0 0 0 3px rgba(196,73,45,.15),var(--shadow)}.template-poster{aspect-ratio:4/5;background:#eee7dd;border-radius:8px;min-height:0;overflow:hidden;position:relative}.template-card .template-poster{border-radius:0}.template-poster.small{border-radius:8px;flex:0 0 88px;width:88px}.template-cover-image{display:block;height:100%;object-fit:cover;width:100%}.poster-shine{background:rgba(255,255,255,.42);height:160%;left:-34%;top:-50%;transform:rotate(18deg)}.poster-pet,.poster-shine{position:absolute;width:42%}.poster-pet{background:rgba(255,255,255,.85);border-radius:48% 48% 36% 36%;bottom:19%;box-shadow:-38px -30px 0 -16px rgba(255,255,255,.84),38px -30px 0 -16px rgba(255,255,255,.84),0 56px 0 14px rgba(255,255,255,.68);height:29%;left:50%;transform:translateX(-50%)}.poster-pet span:after,.poster-pet span:before{background:#24211f;border-radius:999px;content:"";height:10%;position:absolute;top:34%;width:10%}.poster-pet span:before{left:32%}.poster-pet span:after{right:32%}.poster-label{background:linear-gradient(180deg,transparent,rgba(0,0,0,.68));bottom:0;color:white;left:0;padding:52px 16px 16px;position:absolute;right:0}.poster-label small,.poster-label strong{display:block}.poster-label strong{font-size:18px;margin-bottom:4px}.poster-label small{opacity:.86}.template-poster.small .poster-label{display:none}.template-meta{padding:16px}.selected-template-strip span,.template-meta span{color:var(--primary);display:block;font-size:12px;font-weight:900;margin-bottom:6px}.selected-template-strip strong,.template-meta strong{display:block;font-size:18px;margin-bottom:7px}.generation-meta small,.selected-template-strip small,.template-meta small{color:var(--muted);display:block;line-height:1.5}.template-foot{align-items:center;display:flex;justify-content:space-between;margin-top:14px}.template-foot em{color:#475467;font-style:normal;font-weight:800}.template-foot b{background:#f8ebe5;border-radius:999px;color:var(--primary-dark);padding:5px 9px}.selected-mark{align-items:center;background:var(--primary);border-radius:999px;color:white;display:flex;height:28px;justify-content:center;position:absolute;right:12px;top:12px;width:28px}.generate-layout{align-items:flex-start;display:grid;grid-gap:22px;gap:22px;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr)}.gallery,.result-panel,.upload-panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}.compact-heading{align-items:center}.selected-template-strip{align-items:center;background:white;border:1px solid var(--line);border-radius:8px;display:flex;gap:14px;margin-bottom:18px;padding:12px}.uploader{align-items:center;aspect-ratio:16/10;background:#eee7dd;border:1px dashed #b7ab9d;border-radius:8px;display:flex;justify-content:center;margin-bottom:14px;overflow:hidden;position:relative}.uploader input{height:1px;left:16px;opacity:0;pointer-events:none;position:absolute;top:16px;width:1px}.image-box img,.image-open-button img,.uploader img{display:block;height:100%;object-fit:cover;width:100%}.uploader span{align-items:center;color:var(--muted);display:inline-flex;flex-direction:column;font-weight:900;gap:10px}.upload-button{background:white;border:1px solid var(--line);border-radius:8px;bottom:14px;box-shadow:0 8px 20px rgba(31,41,51,.12);cursor:pointer;font-weight:900;min-height:40px;padding:0 14px;position:absolute;right:14px}.generation-rules{color:#475467;display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px}.generation-rules span{background:white;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:800;min-height:34px;padding:0 11px}.generate-button{justify-content:center;width:100%}.generate-button:disabled{cursor:not-allowed;opacity:.58}.message{color:#475467;line-height:1.6;margin:14px 0 0}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.image-box{aspect-ratio:1/1;background:#ebe2d4;border-radius:8px;overflow:hidden}.image-open-button{background:transparent;border:0;cursor:zoom-in;display:block;height:100%;padding:0;width:100%}.status-box{align-items:center;color:var(--muted);display:flex;height:100%;justify-content:center}.generation-meta{padding-top:12px}.generation-meta strong{display:block}.status{border-radius:999px;display:inline-block;font-size:12px;font-weight:900;margin:8px 0;padding:4px 8px}.status.succeeded{background:#e1f5eb;color:var(--green)}.status.failed{background:#ffe4dd;color:var(--primary-dark)}.status.pending,.status.running{background:#e0edff;color:var(--blue)}.download-link,.ghost-button{background:white;border:1px solid var(--line);border-radius:8px;cursor:pointer;font-size:14px;font-weight:900;min-height:38px;padding:0 12px}.download-link:disabled{cursor:wait;opacity:.68}.generation-actions{align-items:center;display:flex;flex-wrap:wrap;gap:8px}.danger-button,.delete-button{align-items:center;background:white;border:1px solid #e8b6aa;border-radius:8px;color:var(--primary-dark);cursor:pointer;display:inline-flex;font-size:14px;font-weight:900;gap:8px;justify-content:center;min-height:38px;padding:0 12px}.delete-button:hover{background:#fff1ed}.danger-button{background:var(--primary);border-color:var(--primary);color:white}.danger-button:hover{background:var(--primary-dark)}.confirm-actions button:disabled,.danger-button:disabled,.delete-button:disabled{cursor:not-allowed;opacity:.58}.icon-button{background:white;border:1px solid var(--line);cursor:pointer;display:inline-flex;height:38px;width:38px}.empty-state,.icon-button{align-items:center;border-radius:8px;justify-content:center}.empty-state{aspect-ratio:1/1;background:#eee7dd;color:var(--muted);display:flex}.gallery-grid{display:grid;grid-gap:16px;gap:16px;grid-template-columns:repeat(4,minmax(0,1fr))}.gallery-page{padding:28px clamp(20px,5vw,72px) 56px}.gallery-login-state{align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:12px;max-width:520px;padding:28px}.gallery-login-state h2,.gallery-login-state p{margin:0}.gallery-login-state p{color:var(--muted);line-height:1.6}.auth-page{background:#f7f7f5;min-height:100vh}.auth-topbar{align-items:center;display:flex;justify-content:space-between;margin:0 auto;max-width:1180px;padding:24px}.back-home,.back-step{align-items:center;background:transparent;border:0;color:#475467;cursor:pointer;display:inline-flex;font-size:14px;font-weight:800;gap:6px;padding:0}.auth-shell{display:grid;min-height:calc(100vh - 82px);padding:36px 20px 80px;place-items:start center}.auth-panel{background:white;border:1px solid #e4e4e0;border-radius:8px;box-shadow:0 16px 44px rgba(35,35,32,.08);max-width:440px;padding:34px;width:100%}.auth-intro{margin-bottom:28px}.auth-icon{align-items:center;background:#f2eee8;border:1px solid #e5ddd2;border-radius:8px;color:var(--primary-dark);display:inline-flex;height:42px;justify-content:center;margin-bottom:18px;width:42px}.auth-intro h1{font-size:32px;line-height:1.12;margin-bottom:10px}.auth-intro>p:not(.eyebrow){color:var(--muted);line-height:1.6;margin-bottom:0}.auth-intro strong{color:var(--ink);font-weight:800;overflow-wrap:anywhere}.code-intro .back-step{margin-bottom:22px}.auth-form{display:grid;grid-gap:10px;gap:10px}.auth-form label{color:#344054;font-size:14px;font-weight:800}.auth-form input{background:white;border:1px solid #c9c8c2;border-radius:7px;color:var(--ink);height:48px;outline:none;padding:0 13px;width:100%}.auth-form input:focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(27,31,36,.12)}.auth-form input[inputmode=numeric]{font-size:22px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:5px;text-align:center}.auth-primary,.google-button{align-items:center;border-radius:7px;cursor:pointer;display:inline-flex;font-weight:800;justify-content:center;min-height:48px;width:100%}.auth-primary{background:var(--ink);border:1px solid var(--ink);color:white;gap:8px;margin-top:8px}.account-trigger:hover,.auth-primary:hover,.login-link:hover{background:#363c44}.auth-primary:disabled,.google-button:disabled,.resend-code:disabled{cursor:not-allowed;opacity:.55}.auth-divider{align-items:center;color:var(--muted);display:flex;font-size:13px;gap:12px;margin:22px 0}.auth-divider:after,.auth-divider:before{background:#e4e4e0;content:"";height:1px;flex:1 1}.google-button{background:white;border:1px solid #c9c8c2;color:var(--ink);gap:10px}.google-button:hover{background:#f7f7f5}.google-mark{color:#4285f4;font-size:18px;font-weight:900}.resend-code{background:transparent;border:0;color:var(--primary-dark);cursor:pointer;font-size:14px;font-weight:800;margin-top:18px;padding:0}.auth-error{background:#fff0ed;border:1px solid #f4c5bb;border-radius:7px;color:#9d2f1b;font-size:14px;line-height:1.5;margin:20px 0 0;padding:10px 12px}.auth-terms{color:#7b7c7b;font-size:12px;line-height:1.55;margin:24px 0 0;text-align:center}.lightbox{inset:0;padding:28px;position:fixed;z-index:50}.lightbox-backdrop{background:rgba(20,24,31,.72);border:0;cursor:zoom-out;inset:0;position:absolute}.lightbox-panel{background:var(--panel);border-radius:8px;box-shadow:0 28px 80px rgba(0,0,0,.32);display:flex;flex-direction:column;gap:14px;margin:0 auto;max-height:calc(100vh - 56px);max-width:min(980px,calc(100vw - 56px));padding:14px;position:relative}.lightbox-panel>img{background:#0f172a;border-radius:8px;display:block;max-height:calc(100vh - 150px);object-fit:contain;width:100%}.lightbox-actions,.lightbox-toolbar{align-items:center;display:flex;gap:12px}.lightbox-toolbar{justify-content:space-between}.lightbox-toolbar span,.lightbox-toolbar strong{display:block}.lightbox-toolbar span{color:var(--muted);font-size:13px;margin-top:2px}.confirm-dialog{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:60}.confirm-backdrop{background:rgba(20,24,31,.64);border:0;cursor:default;inset:0;position:absolute}.confirm-panel{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;box-shadow:0 28px 80px rgba(0,0,0,.28);max-width:420px;padding:26px;position:relative;width:100%}.confirm-icon{align-items:center;background:#fff1ed;border-radius:8px;color:var(--primary-dark);display:flex;height:42px;justify-content:center;margin-bottom:16px;width:42px}.confirm-panel h2{font-size:24px;margin-bottom:10px}.confirm-panel p{color:var(--muted);line-height:1.6;margin-bottom:22px}.confirm-actions{display:flex;gap:10px;justify-content:flex-end}.confirm-actions .danger-button,.confirm-actions .secondary-link{cursor:pointer;min-width:92px}.generation-card.compact{min-width:0}.checkout-success,.pricing-hero{padding:56px clamp(20px,5vw,72px) 28px}.checkout-success,.pricing-hero .hero-copy{max-width:760px}.pricing-section{padding:0 clamp(20px,5vw,72px) 56px}.pricing-shell{display:grid;grid-gap:18px;gap:18px}.pricing-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(3,minmax(0,1fr))}.pricing-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;padding:18px;position:relative}.pricing-card.featured{border-color:rgba(196,73,45,.35);box-shadow:0 18px 48px rgba(196,73,45,.12)}.plan-badge{background:#fbe7df;border-radius:999px;color:var(--primary-dark);font-size:12px;font-weight:900;padding:5px 10px;position:absolute;right:14px;top:14px}.plan-copy span,.plan-details span{color:var(--muted);font-size:13px;font-weight:800}.plan-copy strong{display:block;font-size:24px;line-height:1.2;margin-top:10px}.plan-copy p{color:var(--primary-dark);font-size:28px;font-weight:900;margin:12px 0 0}.plan-details{border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px;margin-top:18px;padding-top:16px}.plan-button{background:var(--ink);border:0;border-radius:8px;color:white;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-weight:900;justify-content:center;margin-top:16px;min-height:44px;padding:0 16px;width:100%}.plan-button:hover{opacity:.92}.plan-button:disabled{cursor:wait;opacity:.72}.checkout-success{display:grid;justify-items:start;grid-gap:16px;gap:16px}.success-icon{background:#ecfdf3;border:1px solid #abefc6;border-radius:999px;color:var(--green);height:48px;justify-content:center;width:48px}.success-balance,.success-icon{align-items:center;display:inline-flex}.success-balance{background:var(--panel-strong);border:1px solid var(--line);border-radius:8px;gap:8px;font-weight:900;min-height:44px;padding:0 14px}.payment-message{max-width:540px}@media (max-width:1080px){.create-hero,.generate-layout,.studio-hero{grid-template-columns:1fr}.hero-showcase{min-height:0}.gallery-grid,.template-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:720px){.topbar{align-items:stretch;grid-template-columns:1fr}.compact-balance,.header-actions,nav{justify-self:stretch}.header-actions{flex-wrap:wrap}.pricing-grid{grid-template-columns:1fr}.account-menu,.compact-balance,.login-link{flex:1 1}.account-trigger,.login-link{justify-content:center;width:100%}nav a{min-width:0;flex:1 1}.studio-hero{min-height:0;padding-top:38px}.create-hero{padding-top:34px}.hero-showcase{grid-template-columns:1fr}.hero-showcase .template-poster{transform:none}.hero-showcase .template-poster:nth-child(n+2){display:none}.hero-actions,.section-heading{align-items:stretch;flex-direction:column}.gallery-grid,.template-grid{grid-template-columns:1fr}.lightbox{padding:12px}.lightbox-panel{max-height:calc(100vh - 24px);max-width:calc(100vw - 24px)}.lightbox-toolbar{align-items:stretch;flex-direction:column}.lightbox-actions{justify-content:space-between}h1{font-size:40px}.auth-topbar{padding:18px 20px}.auth-shell{min-height:calc(100vh - 66px);padding-top:28px}.auth-panel{padding:25px 20px}}