@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,600;1,300;1,400;1,600&family=Inter:wght@300;400;500&display=swap";*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--charcoal:#151412;--charcoal-2:#1e1b18;--charcoal-3:#252219;--ivory:#f7f2e9;--ivory-2:#ede6d8;--blush:#c9a99a;--gold:#c8a96e;--gold-light:#dfc08a;--text-primary:#f7f2e9;--text-muted:#9e9080;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Inter", system-ui, sans-serif;scroll-behavior:smooth}html,body,#root{background:var(--charcoal);width:100%;min-height:100vh;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased}.grain-overlay{z-index:1;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");position:absolute;inset:0}.input-page{background:radial-gradient(ellipse 80% 60% at 50% 40%, #2a2218 0%, var(--charcoal) 100%);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.input-content{z-index:2;text-align:center;max-width:640px;padding:2rem;animation:.8s both fadeUp;position:relative}.brand-badge{font-family:var(--font-body);letter-spacing:.25em;text-transform:uppercase;color:var(--gold);border:1px solid #c8a96e4d;border-radius:2rem;margin-bottom:2.5rem;padding:.4rem 1.2rem;font-size:.7rem;font-weight:500;animation:1s .2s both fadeIn;display:inline-block}.input-title{font-family:var(--font-display);color:var(--ivory);letter-spacing:-.01em;margin-bottom:1.2rem;font-size:clamp(2.8rem,7vw,5rem);font-weight:300;line-height:1.05}.title-accent{color:var(--gold);font-style:italic}.input-subtitle{color:var(--text-muted);margin-bottom:3rem;font-size:1rem;font-weight:300;line-height:1.7}.input-form{flex-direction:column;gap:1rem;margin-bottom:1.5rem;display:flex}.input-wrapper{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:8px;align-items:center;transition:border-color .2s;display:flex;position:relative;overflow:hidden}.input-wrapper:focus-within{border-color:var(--gold);box-shadow:0 0 0 3px #c8a96e1a}.input-at{font-family:var(--font-display);color:var(--gold);-webkit-user-select:none;user-select:none;padding:0 .3rem 0 1.2rem;font-size:1.4rem;line-height:1}.username-input{font-size:1.1rem;font-family:var(--font-body);color:var(--ivory);caret-color:var(--gold);background:0 0;border:none;outline:none;flex:1;padding:1rem 1.2rem 1rem .3rem;font-weight:400}.username-input::placeholder{color:#f7f2e94d}.generate-btn{background:var(--gold);font-family:var(--font-body);color:var(--charcoal);cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1rem;font-weight:500;transition:background .2s,transform .15s;display:flex}.generate-btn:hover:not(:disabled){background:var(--gold-light);transform:translateY(-1px)}.generate-btn:disabled{opacity:.5;cursor:not-allowed}.generate-btn.loading{color:var(--gold);background:#c8a96e4d}.btn-arrow{transition:transform .2s}.generate-btn:hover .btn-arrow{transform:translate(3px)}.btn-loading{align-items:center;gap:.6rem;display:flex}.spinner{border:2px solid;border-top-color:#0000;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.error-card{color:#e8a0a0;text-align:left;background:#c850501f;border:1px solid #c850504d;border-radius:8px;margin-bottom:1rem;padding:.8rem 1.2rem;font-size:.9rem}.error-icon{margin-right:.4rem}.input-footnote{color:var(--text-muted);letter-spacing:.05em;font-size:.75rem}.input-deco{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.deco-ring{border:1px solid #c8a96e12;border-radius:50%;position:absolute}.deco-ring-1{width:600px;height:600px;top:-100px;right:-200px}.deco-ring-2{width:400px;height:400px;bottom:-150px;left:-100px}.deco-ring-3{border-color:#c8a96e0a;width:200px;height:200px;top:50%;left:50%;transform:translate(-50%,-50%)}.loading-screen{z-index:100;background:var(--charcoal);justify-content:center;align-items:center;animation:.4s both fadeIn;display:flex;position:fixed;inset:0}.loading-content{z-index:2;text-align:center;padding:2rem;position:relative}.loading-logo{color:var(--gold);margin-bottom:1.5rem;font-size:2.5rem;animation:2s ease-in-out infinite pulse}.loading-title{font-family:var(--font-display);color:var(--ivory);margin-bottom:.8rem;font-size:clamp(2rem,5vw,3.5rem);font-style:italic;font-weight:300}.loading-sub{color:var(--text-muted);margin-bottom:3rem;font-size:.9rem;font-weight:300}.progress-track{background:#ffffff1a;border-radius:1px;width:300px;max-width:90vw;height:1px;margin:0 auto .8rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--gold), var(--gold-light));border-radius:1px;height:100%;transition:width .4s}.progress-label{color:var(--gold);letter-spacing:.1em;font-size:.75rem;font-weight:500;font-family:var(--font-body);margin-bottom:2rem}.loading-tagline{font-family:var(--font-display);color:var(--text-muted);font-size:1rem;font-style:italic}.gallery-page{opacity:0;pointer-events:none;transition:opacity .8s}.gallery-page.visible{opacity:1;pointer-events:auto}.hero{background:radial-gradient(ellipse 100% 80% at 50% 30%, #28211a 0%, var(--charcoal) 70%);text-align:center;justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.hero-content{z-index:2;max-width:780px;padding:2rem;animation:1s both fadeUp;position:relative}.hero-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:2rem;font-size:.8rem;font-weight:400}.hero-title{font-family:var(--font-display);color:var(--ivory);letter-spacing:-.02em;margin-bottom:1.5rem;font-size:clamp(3.5rem,9vw,7rem);font-weight:300;line-height:1}.hero-title em{color:var(--gold);font-style:italic}.hero-sub{color:var(--text-muted);margin-bottom:3rem;font-size:1.05rem;font-weight:300;line-height:1.7}.hero-cta{letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #c8a96e66;padding-bottom:3px;font-size:.85rem;text-decoration:none;transition:border-color .2s,color .2s;display:inline-block}.hero-cta:hover{color:var(--ivory);border-color:var(--ivory)}.reset-btn{z-index:10;color:var(--text-muted);letter-spacing:.08em;font-size:.75rem;font-family:var(--font-body);cursor:pointer;background:#ffffff12;border:1px solid #ffffff1f;border-radius:4px;padding:.5rem 1rem;transition:color .2s,border-color .2s;position:absolute;top:2rem;right:2rem}.reset-btn:hover{color:var(--ivory);border-color:#ffffff4d}.about{background:var(--charcoal-2);padding:7rem 2rem}.about-inner{grid-template-columns:1fr 1fr;align-items:center;gap:5rem;max-width:1100px;margin:0 auto;display:grid}.section-label{letter-spacing:.25em;text-transform:uppercase;color:var(--gold);margin-bottom:1.2rem;font-size:.7rem;font-weight:500;display:block}.about-title{font-family:var(--font-display);color:var(--ivory);margin-bottom:1.5rem;font-size:clamp(2rem,4vw,3rem);font-weight:300;line-height:1.15}.about-body{color:var(--text-muted);margin-bottom:1.2rem;font-size:.95rem;font-weight:300;line-height:1.85}.about-stats{border-top:1px solid #ffffff0f;gap:2.5rem;margin-top:2.5rem;padding-top:2rem;display:flex}.stat{flex-direction:column;gap:.2rem;display:flex}.stat-num{font-family:var(--font-display);color:var(--gold);font-size:2.5rem;font-weight:300;line-height:1}.stat-label{letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);font-size:.7rem}.about-quote{border-left:1px solid #c8a96e4d;padding-left:2.5rem}.about-quote blockquote{font-family:var(--font-display);color:var(--ivory-2);font-size:clamp(1.2rem,2.5vw,1.6rem);font-style:italic;font-weight:300;line-height:1.6}.gallery-section{background:var(--charcoal);padding:7rem 2rem}.section-header{text-align:center;max-width:600px;margin:0 auto 4rem}.section-title{font-family:var(--font-display);color:var(--ivory);margin-bottom:.6rem;font-size:clamp(2rem,4vw,3rem);font-weight:300}.section-desc{color:var(--text-muted);letter-spacing:.05em;font-size:.85rem}.gallery-masonry{columns:3;column-gap:12px;max-width:1200px;margin:0 auto}@media (width<=900px){.gallery-masonry{columns:2}}@media (width<=550px){.gallery-masonry{columns:1}}.gallery-item{break-inside:avoid;background:var(--charcoal-3);border-radius:4px;margin-bottom:12px;position:relative;overflow:hidden}.gallery-item img{filter:sepia(.1)contrast(1.02);width:100%;height:auto;transition:transform .5s,filter .4s;display:block}.gallery-item:hover img{filter:sepia(0)contrast();transform:scale(1.03)}.gallery-item.unloaded{min-height:200px}.gallery-item.loaded{animation:.5s both fadeIn}.gallery-error{min-height:160px;color:var(--text-muted);justify-content:center;align-items:center;font-size:1.5rem;display:flex}.img-shimmer{background:linear-gradient(90deg, var(--charcoal-3) 25%, var(--charcoal-2) 50%, var(--charcoal-3) 75%);background-size:200% 100%;min-height:200px;animation:1.5s infinite shimmer;position:absolute;inset:0}.testimonials{background:var(--charcoal-2);padding:7rem 2rem}.testimonial-grid{grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1100px;margin:0 auto;display:grid}@media (width<=800px){.testimonial-grid{grid-template-columns:1fr}}.testimonial-card{background:#ffffff08;border:1px solid #ffffff12;border-radius:8px;padding:2.5rem;transition:border-color .3s,transform .3s}.testimonial-card:hover{border-color:#c8a96e33;transform:translateY(-3px)}.testimonial-mark{font-family:var(--font-display);color:var(--gold);opacity:.6;margin-bottom:1.2rem;font-size:4rem;font-weight:300;line-height:.8}.testimonial-quote{font-family:var(--font-display);color:var(--ivory-2);margin-bottom:1.5rem;font-size:1.05rem;font-style:italic;font-weight:300;line-height:1.7}.testimonial-author{flex-direction:column;gap:.2rem;display:flex}.testimonial-author strong{color:var(--ivory);font-size:.85rem;font-weight:500}.testimonial-author span{color:var(--text-muted);letter-spacing:.08em;font-size:.75rem}.contact{background:var(--charcoal);padding:7rem 2rem}.contact-inner{text-align:center;max-width:680px;margin:0 auto}.contact-title{font-family:var(--font-display);color:var(--ivory);margin-bottom:.8rem;font-size:clamp(2rem,4vw,3rem);font-weight:300}.contact-sub{color:var(--text-muted);margin-bottom:3rem;font-size:.95rem;font-weight:300;line-height:1.7}.contact-form{text-align:left;flex-direction:column;gap:1rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (width<=500px){.form-row{grid-template-columns:1fr}}.form-input,.form-textarea{font-family:var(--font-body);color:var(--ivory);resize:none;background:#ffffff0a;border:1px solid #ffffff1a;border-radius:6px;outline:none;width:100%;padding:.9rem 1rem;font-size:.9rem;transition:border-color .2s}.form-input::placeholder,.form-textarea::placeholder{color:#f7f2e940}.form-input:focus,.form-textarea:focus{border-color:var(--gold)}.contact-btn{border:1px solid var(--gold);color:var(--gold);font-family:var(--font-body);letter-spacing:.08em;cursor:pointer;background:0 0;border-radius:6px;align-self:flex-end;padding:.9rem 2rem;font-size:.9rem;transition:background .2s,color .2s}.contact-btn:hover{background:var(--gold);color:var(--charcoal)}.footer{background:var(--charcoal-2);border-top:1px solid #ffffff0d;padding:3rem 2rem}.footer-inner{text-align:center;max-width:1100px;margin:0 auto}.footer-brand{font-family:var(--font-display);color:var(--gold);margin-bottom:.5rem;font-size:1.4rem;font-weight:300}.footer-tagline{color:var(--text-muted);font-size:.85rem;font-style:italic;font-family:var(--font-display);margin-bottom:1rem}.footer-copy{color:#9e908080;font-size:.75rem}@media (width<=768px){.about-inner{grid-template-columns:1fr;gap:3rem}.about-quote{border-top:1px solid #c8a96e4d;border-left:none;padding-top:2rem;padding-left:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.95)}}
