@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Geist:wght@300;400;500;600;700&family=Geist+Mono:wght@400;500&display=swap");:root{--bg:#0a0a0d;--bg-elev:#111114;--bg-elev-2:#16161b;--line:#1f1f27;--line-strong:#2a2a35;--text:#ededf0;--text-dim:#8b8b95;--text-faint:#5a5a63;--accent:#c8ff5a;--accent-ink:#0a0a0d;--violet:#7c5cff;--danger:#ff6b6b;--radius:14px;--radius-sm:10px;--radius-lg:22px}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{background:radial-gradient(1200px 600px at 80% -10%,rgba(124,92,255,.1),transparent 60%),radial-gradient(900px 500px at -10% 110%,rgba(200,255,90,.06),transparent 60%),var(--bg);min-height:100vh}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}::selection{background:var(--accent);color:var(--accent-ink)}.serif{font-family:"Instrument Serif",ui-serif,Georgia,serif;font-weight:400;letter-spacing:-.01em}.mono{font-family:Geist Mono,ui-monospace,SFMono-Regular,monospace}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 28px;position:relative;z-index:1}@media (max-width:640px){.container{padding:0 18px}}:root{--ease-out-quart:cubic-bezier(0.25,1,0.5,1);--ease-out-quint:cubic-bezier(0.22,1,0.36,1);--ease-out-expo:cubic-bezier(0.16,1,0.3,1)}@keyframes fadeUp{0%{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translateZ(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes tileIn{0%{opacity:0;transform:translate3d(0,8px,0) scale(.98)}to{opacity:1;transform:translateZ(0) scale(1)}}@keyframes resultIn{0%{opacity:0;transform:translate3d(0,18px,0) scale(.96);filter:blur(8px)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}@keyframes pulseDot{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.6);opacity:.35}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes stamp{0%{transform:scale(0) rotate(-12deg);opacity:0}60%{transform:scale(1.08) rotate(0deg);opacity:1}to{transform:scale(1) rotate(0deg);opacity:1}}@keyframes loadingDots{0%,to{opacity:.25}50%{opacity:1}}.enter{opacity:0;animation:fadeUp .7s var(--ease-out-expo) forwards}.lift{transition:transform .28s var(--ease-out-quart),border-color .22s var(--ease-out-quart),box-shadow .32s var(--ease-out-quart);will-change:transform}.lift:hover{transform:translateY(-3px)}.lift:active{transform:translateY(-1px) scale(.995);transition-duration:90ms}.cta-btn{transition:transform .2s var(--ease-out-quart),box-shadow .28s var(--ease-out-quart),background .2s var(--ease-out-quart)}.cta-btn:not(:disabled):hover{transform:translateY(-2px)}.cta-btn:not(:disabled):active{transform:translateY(0) scale(.98);transition-duration:80ms}.cta-btn .arrow{transition:transform .26s var(--ease-out-expo)}.cta-btn:not(:disabled):hover .arrow{transform:translateX(4px)}.ghost-btn{transition:color .18s var(--ease-out-quart),border-color .18s var(--ease-out-quart),background .18s var(--ease-out-quart)}.ghost-btn:hover{color:var(--text)}.env-lock-card:hover,.ghost-btn:hover{border-color:var(--line-strong);background:var(--bg-elev-2)}.env-lock-card:focus-visible{border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,197,94,.18)}.brand-chip-btn:hover{background:var(--bg-elev-2)}.brand-chip-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-chip-clear:hover{background:var(--bg-elev-2);color:var(--text)}.brand-chip-clear:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-chip-add:hover{color:var(--text);border-color:var(--accent);background:var(--bg-elev)}.brand-chip-add:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.brand-picker-hex{transition:border-color .18s ease,box-shadow .18s ease}.brand-picker-hex:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,197,94,.15)}.feedback-input{transition:border-color .18s ease,box-shadow .18s ease}.feedback-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(34,197,94,.15)}.feedback-cancel-btn:hover{color:var(--text);border-color:var(--line-strong);background:var(--bg-elev-2)}.feedback-cancel-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.feedback-confirm-btn:not(:disabled):hover{filter:brightness(1.06)}.feedback-confirm-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.control{transition:border-color .18s var(--ease-out-quart),box-shadow .22s var(--ease-out-quart),background .18s var(--ease-out-quart)}.control:focus,.control:focus-visible{border-color:var(--accent);box-shadow:0 0 0 4px rgba(200,255,90,.1);background:var(--bg-elev-2);outline:none}.dropzone{position:relative;overflow:hidden;transition:border-color .22s var(--ease-out-quart),background .22s var(--ease-out-quart),transform .22s var(--ease-out-quart)}.dropzone:hover{border-color:var(--accent);transform:translateY(-1px)}.dropzone:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(200,255,90,.06) 45%,rgba(200,255,90,.1) 50%,rgba(200,255,90,.06) 55%,transparent);background-size:200% 100%;animation:shimmer 4.5s linear infinite;opacity:.6;mix-blend-mode:screen}.live-dot{position:relative}.live-dot:after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:pulseDot 1.8s var(--ease-out-quart) infinite}.stamp{animation:stamp .36s var(--ease-out-expo) forwards}@keyframes indicatorPulse{0%,to{box-shadow:0 0 0 0 rgba(200,255,90,0),0 0 0 1.5px rgba(200,255,90,0)}50%{box-shadow:0 0 0 6px rgba(200,255,90,.1),0 0 18px rgba(200,255,90,.25)}}.step-indicator--active{animation:indicatorPulse 2.4s var(--ease-out-quart) infinite}.tile-in{animation:tileIn .42s var(--ease-out-expo) both}.result-in{animation:resultIn .72s var(--ease-out-expo) both}.dots span{display:inline-block;animation:loadingDots 1.2s var(--ease-out-quart) infinite}.dots span:nth-child(2){animation-delay:.15s}.dots span:nth-child(3){animation-delay:.3s}.spinner{width:14px;height:14px;border:2px solid;border-top:2px solid transparent;border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes routeIn{0%{opacity:0;transform:translate3d(0,12px,0) scale(.992);filter:blur(6px)}to{opacity:1;transform:translateZ(0) scale(1);filter:blur(0)}}.route-frame{animation:routeIn .52s var(--ease-out-expo) both;transform-origin:50% 0}@keyframes routeOut{to{opacity:0;transform:translate3d(0,-10px,0) scale(.992);filter:blur(6px)}}html.is-leaving .route-frame{animation:routeOut .24s var(--ease-out-quart) forwards}.cta-btn{position:relative;overflow:hidden;isolation:isolate}.cta-btn:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);transition:transform .7s var(--ease-out-expo);mix-blend-mode:overlay;z-index:1}.cta-btn:not(:disabled):hover:before{transform:translateX(120%)}.lift:after{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;background:radial-gradient(400px 220px at var(--mx,50%) var(--my,0),rgba(200,255,90,.1),transparent 60%);opacity:0;transition:opacity .26s var(--ease-out-quart)}.lift:hover:after{opacity:1}.remove-x,.remove-x:before{position:absolute}.remove-x:before{content:"";inset:-10px;border-radius:50%}.remove-x:hover{background:rgba(255,80,80,.85)!important;transform:scale(1.06);box-shadow:0 8px 24px -8px rgba(255,80,80,.55)}.remove-x:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.dropzone.is-drag{border-color:var(--accent);background:repeating-linear-gradient(45deg,transparent 0 12px,rgba(200,255,90,.04) 12px 13px),rgba(200,255,90,.04);transform:translateY(-1px) scale(1.005)}.dropzone.is-drag:after{animation-duration:1.6s;opacity:1}@keyframes countPulse{0%{transform:scale(1);color:var(--text)}40%{transform:scale(1.18);color:var(--accent)}to{transform:scale(1);color:var(--text)}}.count-pulse{animation:countPulse .38s var(--ease-out-expo);display:inline-block}@keyframes resultsReveal{0%{opacity:0;transform:translate3d(0,24px,0) scale(.985)}60%{opacity:1;transform:translate3d(0,-2px,0) scale(1.004)}to{opacity:1;transform:translateZ(0) scale(1)}}.results-reveal{animation:resultsReveal .9s var(--ease-out-expo) both}@keyframes resultsBurst{0%{opacity:0;transform:scale(.5)}35%{opacity:1}to{opacity:0;transform:scale(2.4)}}.results-burst{position:absolute;top:-10%;left:50%;width:60%;height:200%;transform:translateX(-50%);pointer-events:none;background:radial-gradient(closest-side,rgba(200,255,90,.35),rgba(124,92,255,.18) 40%,transparent 70%);filter:blur(30px);animation:resultsBurst 1.4s var(--ease-out-expo) both;animation-delay:80ms;z-index:0}@keyframes readyHeadline{0%{opacity:0;transform:translate3d(0,8px,0) scale(.96);color:var(--accent)}60%{opacity:1;transform:translateZ(0) scale(1.04);color:var(--accent)}to{opacity:1;transform:translateZ(0) scale(1);color:var(--text)}}.ready-headline{display:inline-block;animation:readyHeadline .9s var(--ease-out-expo) both;animation-delay:.18s}@keyframes sparkleArrive{0%{transform:rotate(0deg) scale(0);opacity:0}60%{transform:rotate(1turn) scale(1.2);opacity:1}to{transform:rotate(540deg) scale(1);opacity:1}}@keyframes sparkleBreath{0%,to{filter:drop-shadow(0 0 4px rgba(200,255,90,.45));transform:rotate(540deg) scale(1)}50%{filter:drop-shadow(0 0 12px rgba(200,255,90,.85));transform:rotate(540deg) scale(1.08)}}.sparkle-spin{animation:sparkleArrive .9s var(--ease-out-expo) both,sparkleBreath 2.4s ease-in-out .9s infinite;transform-origin:center}.result-skeleton{display:block;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:10px;animation:resultIn .72s var(--ease-out-expo) both}.result-skeleton .sk-img{width:100%;aspect-ratio:9/16;border-radius:10px;background:linear-gradient(90deg,rgba(255,255,255,.02) 0,rgba(200,255,90,.1) 45%,rgba(200,255,90,.16) 50%,rgba(200,255,90,.1) 55%,rgba(255,255,255,.02) 100%),var(--bg-elev-2);background-size:200% 100%,100% 100%;background-repeat:no-repeat;animation:shimmer 1.6s linear infinite}.result-skeleton .sk-meta{display:flex;justify-content:space-between;align-items:center;padding:10px 4px 0}.result-skeleton .sk-bar{height:10px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.04),rgba(255,255,255,.1) 50%,rgba(255,255,255,.04));background-size:200% 100%;animation:shimmer 1.6s linear infinite}@keyframes conjureRing{to{transform:rotate(1turn)}}@keyframes conjureSheen{0%{transform:translate3d(-120%,0,0) skewX(-18deg)}to{transform:translate3d(120%,0,0) skewX(-18deg)}}@keyframes conjureBreath{0%,to{transform:scale(1);filter:saturate(1) brightness(1)}50%{transform:scale(1.025);filter:saturate(1.15) brightness(1.06)}}@keyframes conjureGlow{0%,to{box-shadow:0 0 0 1px rgba(200,255,90,.45),0 0 24px -4px rgba(200,255,90,.45),0 0 60px -8px rgba(124,92,255,.25)}50%{box-shadow:0 0 0 1px rgba(200,255,90,.65),0 0 36px -2px rgba(200,255,90,.7),0 0 80px -6px rgba(124,92,255,.45)}}.tile-img-wrap{position:relative;border-radius:10px;overflow:hidden;isolation:isolate}.tile-img-wrap.is-conjuring{animation:conjureGlow 2.2s ease-in-out infinite}.tile-img-wrap.is-conjuring img{animation:conjureBreath 2.6s ease-in-out infinite}.tile-img-wrap.is-conjuring:before{inset:-40%;z-index:1;background:conic-gradient(from 0deg,transparent 0deg,rgba(200,255,90,.85) 40deg,transparent 100deg,transparent 180deg,rgba(124,92,255,.85) 220deg,transparent 280deg);filter:blur(14px);animation:conjureRing 2.6s linear infinite;opacity:.85}.tile-img-wrap.is-conjuring:after,.tile-img-wrap.is-conjuring:before{content:"";position:absolute;pointer-events:none;mix-blend-mode:screen}.tile-img-wrap.is-conjuring:after{top:-10%;bottom:-10%;left:0;width:40%;z-index:2;background:linear-gradient(90deg,transparent,rgba(255,255,255,0) 30%,rgba(255,255,255,.55) 50%,rgba(200,255,90,.35) 60%,transparent);filter:blur(2px);animation:conjureSheen 1.8s var(--ease-out-quart) infinite}.suggest-skeleton{position:relative;overflow:hidden;animation:suggestShimmer 1.6s linear infinite}.suggest-skeleton:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(200,255,90,.08) 50%,transparent);transform:translateX(-100%);animation:suggestSweep 1.6s ease-in-out infinite;pointer-events:none}.suggest-skeleton .suggest-spark{color:var(--accent);font-size:13px;animation:suggestPulse 1.4s ease-in-out infinite}.suggest-skeleton .suggest-label{color:var(--text-faint);font-size:11px}.suggest-skeleton .suggest-dots{display:inline-flex;gap:3px;margin-left:2px}.suggest-skeleton .suggest-dots i{width:4px;height:4px;border-radius:50%;background:var(--accent);opacity:.35;animation:suggestDot 1.2s ease-in-out infinite}.suggest-skeleton .suggest-dots i:nth-child(2){animation-delay:.15s}.suggest-skeleton .suggest-dots i:nth-child(3){animation-delay:.3s}@keyframes suggestShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes suggestSweep{0%{transform:translateX(-100%)}60%,to{transform:translateX(100%)}}@keyframes suggestPulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.15)}}@keyframes suggestDot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.suggest-arrive,.suggest-arrive-delay{animation:suggestArrive .36s cubic-bezier(.2,.8,.2,1) both}.suggest-arrive-delay{animation-delay:90ms}@keyframes suggestArrive{0%{opacity:0;transform:translateY(4px);filter:blur(2px)}60%{opacity:1;filter:blur(0)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.dropzone:after{display:none}}