@import"https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&display=swap";:root{--color-bg: #F9F7F5;--color-bg-warm: #F2EFEA;--color-surface: #FFFFFF;--color-surface-glass: rgba(255, 255, 255, .82);--color-text: #1C1917;--color-text-muted: #8E8A86;--color-accent: #B07452;--color-accent-soft: #E0C1B0;--color-accent-bg: rgba(176, 116, 82, .06);--color-danger: #bf4040;--color-border: rgba(28, 25, 23, .06);--color-border-strong: rgba(28, 25, 23, .12);--photo-border: #FFFFFF;--photo-shadow: 0 4px 32px rgba(28, 25, 23, .08), 0 1px 4px rgba(28, 25, 23, .04);--photo-shadow-lifted: 0 16px 48px rgba(28, 25, 23, .12), 0 4px 16px rgba(28, 25, 23, .06);--font-serif: "Instrument Serif", "Georgia", "Times New Roman", serif;--font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-full: 9999px;--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--duration-fast: .15s;--duration-normal: .3s;--duration-slow: .5s;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--photo-max-height: calc(100vh - 300px) ;--photo-max-width: calc(100vw - 64px) }*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:touch}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:transparent}#app{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column}.screen{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;animation:screen-in var(--duration-slow) var(--ease-out) both}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes float-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.landing{position:relative;display:flex;flex-direction:column;background:var(--color-bg);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.landing__container{width:100%;max-width:1100px;margin:0 auto;padding:0 var(--space-lg)}.landing__section{padding:100px 0}.landing__section-eyebrow{display:block;font-family:var(--font-sans);font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.15em;color:var(--color-accent);margin-bottom:var(--space-sm)}.landing__section-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(2rem,5vw,3.2rem);font-weight:400;color:var(--color-text);line-height:1.1;margin-bottom:var(--space-md)}.landing__section-sub{font-size:clamp(1rem,2vw,1.15rem);line-height:1.6;color:var(--color-text-muted);font-weight:300}.landing__hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;flex-shrink:0;overflow:hidden;background:linear-gradient(135deg,#f5c8a8,#f0b494 35%,#eda07e 65%,#e8966f)}.landing__canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;transform:translateZ(0)}.landing__hero-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-lg);max-width:800px}.landing__title{font-family:var(--font-serif);font-size:clamp(4.5rem,15vw,9rem);font-weight:400;font-style:italic;letter-spacing:-.04em;color:#fff;line-height:.9;margin-bottom:var(--space-md);animation:float-up 1.2s var(--ease-out) both;text-shadow:0 8px 48px rgba(0,0,0,.15)}.landing__tagline{font-family:var(--font-sans);font-size:clamp(1rem,2vw,1.3rem);font-weight:300;color:#ffffffe6;letter-spacing:.03em;margin-bottom:var(--space-xl);animation:float-up 1.2s var(--ease-out) .15s both;text-shadow:0 4px 24px rgba(0,0,0,.15)}.landing__upload-btn{display:flex;align-items:center;justify-content:center;gap:12px;padding:18px 48px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-full);background:#ffffff0d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:#fff;font-family:var(--font-sans);font-size:1rem;font-weight:400;letter-spacing:.04em;cursor:pointer;transition:all .5s var(--ease-out);animation:float-up 1.2s var(--ease-out) .3s both;box-shadow:0 8px 32px #00000014,inset 0 0 0 1px #ffffff1a}.landing__upload-btn:hover{background:#ffffff26;border-color:#ffffff80;transform:translateY(-2px);box-shadow:0 16px 48px #0000001f,inset 0 0 0 1px #fff3}.landing__upload-btn:active{transform:translateY(1px) scale(.98)}.landing__hero-trust{margin-top:var(--space-lg);font-size:.8rem;color:#ffffff80;letter-spacing:.03em;animation:float-up 1.2s var(--ease-out) .45s both}.landing__file-input{display:none}.landing__scroll-hint{position:absolute;bottom:40px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:#fff9;z-index:1;animation:fade-in 1s var(--ease-out) 1s both}.landing__scroll-text{font-size:.75rem;text-transform:uppercase;letter-spacing:.2em;font-weight:500}.landing__scroll-hint svg{animation:bounce-hint 2.5s ease-in-out infinite}@keyframes bounce-hint{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}.landing__showcase{background:var(--color-surface)}.showcase__header{text-align:center;margin-bottom:var(--space-2xl)}.showcase__interactive{display:flex;flex-direction:column;align-items:center;gap:var(--space-lg)}.showcase__controls{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md)}.showcase__subjects,.showcase__modes{display:inline-flex;gap:var(--space-xs);padding:5px;background:var(--color-bg-warm);border-radius:var(--radius-full)}.showcase__subject-btn,.showcase__mode-btn{background:none;border:none;padding:9px 20px;font-family:var(--font-sans);font-size:.85rem;font-weight:500;border-radius:var(--radius-full);color:var(--color-text-muted);cursor:pointer;transition:all .35s var(--ease-out);white-space:nowrap}.showcase__subject-btn:hover,.showcase__mode-btn:hover{color:var(--color-text)}.showcase__subject-btn.active{background:var(--color-surface);color:var(--color-accent);box-shadow:0 2px 8px #1c191714}.showcase__mode-btn.active{background:var(--color-accent);color:#fff;box-shadow:0 2px 10px #b0745233}.showcase__slider{position:relative;width:100%;max-width:900px;aspect-ratio:4 / 5;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--photo-shadow-lifted);background:var(--color-bg-warm);cursor:ew-resize;touch-action:none;user-select:none;-webkit-user-select:none}@media(min-width:800px){.showcase__slider{aspect-ratio:16 / 10}}.showcase__slider--transitioning .showcase__slider-img{opacity:0;transition:opacity .3s ease}.showcase__slider-img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .3s ease;pointer-events:none}.showcase__slider-before{z-index:1}.showcase__slider-after-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;clip-path:inset(0 50% 0 0)}.showcase__slider-after{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.showcase__slider-line{position:absolute;top:0;bottom:0;left:50%;z-index:3;width:3px;margin-left:-1.5px;background:#ffffffe6;box-shadow:0 0 8px #0000004d;pointer-events:none}.showcase__slider-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:0 2px 12px #00000040;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.showcase__slider-label{position:absolute;top:var(--space-md);z-index:4;padding:5px 12px;background:#00000073;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:var(--radius-full);color:#fff;font-family:var(--font-sans);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;pointer-events:none}.showcase__slider-label--before{left:var(--space-md)}.showcase__slider-label--after{right:var(--space-md)}.landing__usecases{background:var(--color-bg)}.usecases__header{text-align:center;margin-bottom:var(--space-2xl)}.usecases__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-xl)}.usecases__card{display:flex;flex-direction:column}.usecases__card-img-wrap{width:100%;aspect-ratio:4 / 3;border-radius:var(--radius-md);overflow:hidden;margin-bottom:var(--space-lg);box-shadow:var(--photo-shadow)}.usecases__card-img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease-out)}.usecases__card:hover .usecases__card-img{transform:scale(1.03)}.usecases__card-title{font-family:var(--font-serif);font-size:1.5rem;font-style:italic;font-weight:400;color:var(--color-text);margin-bottom:var(--space-sm)}.usecases__card-text{font-size:.95rem;line-height:1.6;color:var(--color-text-muted)}.landing__how{background:var(--color-surface)}.how__header{text-align:center;margin-bottom:64px}.how__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2xl)}.how__step{display:flex;flex-direction:column;align-items:center;text-align:center}.how__step-num{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border-strong);border-radius:50%;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-accent);margin-bottom:var(--space-lg)}.how__step-title{font-family:var(--font-serif);font-size:1.8rem;font-style:italic;font-weight:400;color:var(--color-text);margin-bottom:var(--space-sm)}.how__step-text{font-size:.95rem;color:var(--color-text-muted);line-height:1.6;max-width:280px}.landing__pricing{background:var(--color-bg)}.pricing__header{text-align:center;margin-bottom:64px;max-width:600px;margin-left:auto;margin-right:auto}.pricing__plans{display:flex;justify-content:center;gap:var(--space-xl);max-width:800px;margin:0 auto}.pricing__plan{flex:1;position:relative;display:flex;flex-direction:column;padding:40px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform .4s var(--ease-out),box-shadow .4s ease}.pricing__plan:hover{transform:translateY(-4px);box-shadow:0 12px 40px #1c191714}.pricing__plan--featured{border-color:var(--color-accent);box-shadow:0 4px 24px #b0745214}.pricing__plan-badge{position:absolute;top:-13px;left:50%;transform:translate(-50%);background:var(--color-accent);color:#fff;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;padding:6px 16px;border-radius:var(--radius-full);white-space:nowrap}.pricing__plan-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--space-xl);padding-bottom:var(--space-md);border-bottom:1px solid var(--color-border)}.pricing__plan-name{font-family:var(--font-serif);font-size:1.8rem;font-style:italic;color:var(--color-text)}.pricing__plan-volume{font-family:var(--font-sans);font-size:.8rem;font-weight:500;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted)}.pricing__plan-price-row{display:flex;align-items:flex-start;margin-bottom:6px}.pricing__plan-currency{font-family:var(--font-sans);font-size:1.4rem;color:var(--color-text-muted);margin-top:6px;margin-right:4px}.pricing__plan-price{font-family:var(--font-serif);font-size:4rem;line-height:1;color:var(--color-text)}.pricing__plan-rate{font-size:.85rem;color:var(--color-text-muted);margin-bottom:32px}.pricing__plan-btn{margin-top:auto;width:100%;padding:14px;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:transparent;color:var(--color-text);font-family:var(--font-sans);font-size:.95rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .3s var(--ease-out)}.pricing__plan-btn:hover{border-color:var(--color-text);background:var(--color-bg)}.pricing__plan-btn--primary{background:var(--color-text);color:var(--color-bg);border-color:var(--color-text)}.pricing__plan-btn--primary:hover{background:#36312d;border-color:#36312d}.pricing__privacy{text-align:center;margin-top:var(--space-xl);font-size:.85rem;color:var(--color-text-muted)}.landing__cta{background:var(--color-surface);text-align:center;padding:120px 0}.landing__cta-title{font-family:var(--font-serif);font-style:italic;font-size:clamp(2.2rem,5vw,3.5rem);font-weight:400;color:var(--color-text);margin-bottom:40px}.landing__cta-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;padding:18px 48px;border:none;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-family:var(--font-sans);font-size:1.05rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .4s var(--ease-out);box-shadow:0 8px 24px #b0745233}.landing__cta-btn:hover{background:#a5673f;transform:translateY(-2px);box-shadow:0 12px 32px #b074524d}.landing__cta-btn:active{transform:translateY(1px) scale(.98)}.landing__footer{background:var(--color-bg);padding:40px 0;border-top:1px solid var(--color-border);text-align:center}.landing__footer p{font-size:.85rem;color:var(--color-text-muted)}@media(max-width:900px){.usecases__grid{grid-template-columns:1fr;gap:var(--space-xl);max-width:480px;margin:0 auto}.how__steps{grid-template-columns:1fr;gap:48px}.pricing__plans{flex-direction:column;align-items:center}.pricing__plan{width:100%;max-width:400px}}@media(max-width:600px){.landing__section{padding:64px 0}.landing__cta{padding:80px 0}.showcase__controls{flex-direction:column;align-items:center}.showcase__subject-btn,.showcase__mode-btn{padding:8px 16px;font-size:.8rem}}.editor{background:var(--color-bg);background-image:radial-gradient(ellipse at 50% 30%,rgba(212,145,111,.08) 0%,transparent 60%)}.editor__image-area{flex:1;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:calc(var(--safe-top) + var(--space-xl)) var(--space-lg) var(--space-md);perspective:800px}.editor__photo-frame{position:relative;padding:10px 10px 32px;background:var(--photo-border);border-radius:3px;box-shadow:var(--photo-shadow);transform:rotate(var(--photo-rotation, -2deg));transition:transform .6s var(--ease-out),box-shadow var(--duration-normal) ease;max-width:calc(100% - 32px);max-height:100%;background-image:linear-gradient(135deg,rgba(255,255,255,.6) 0%,transparent 50%),linear-gradient(to bottom,#faf6f0,#f3ede5)}.editor__photo-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;border:1px solid rgba(44,36,32,.06);pointer-events:none}.editor__image{display:block;max-width:var(--photo-max-width);max-height:var(--photo-max-height);object-fit:contain;border-radius:1px}.editor__rotate-btn{position:absolute;top:calc(var(--safe-top) + var(--space-md));right:var(--space-md);width:42px;height:42px;border:none;border-radius:var(--radius-full);background:var(--color-surface);box-shadow:0 2px 10px #2c24201a;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:transform var(--duration-fast) var(--ease-spring),color var(--duration-fast) ease}.editor__rotate-btn:active{transform:scale(.9)}.editor__rotate-btn:hover{color:var(--color-text)}.editor__rotate-btn svg{width:20px;height:20px}.editor__back-btn{position:absolute;top:calc(var(--safe-top) + var(--space-md));left:var(--space-md);width:42px;height:42px;border:none;border-radius:var(--radius-full);background:var(--color-surface);box-shadow:0 2px 10px #2c24201a;color:var(--color-text-muted);font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:transform var(--duration-fast) var(--ease-spring),color var(--duration-fast) ease}.editor__back-btn:active{transform:scale(.9)}.editor__back-btn:hover{color:var(--color-text)}.editor__bottom{display:flex;flex-direction:column;gap:var(--space-sm);padding:var(--space-md) var(--space-lg) calc(var(--space-md) + var(--safe-bottom))}.editor__levels{display:flex;background:var(--color-border);border-radius:var(--radius-full);padding:3px}.editor__level{flex:1;padding:10px 0;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:.82rem;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.editor__level:active{transform:scale(.97)}.editor__level--active{background:var(--color-surface);color:var(--color-text);box-shadow:0 1px 4px #2c24201a}.editor__relight-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:16px;border:none;border-radius:var(--radius-full);background:var(--color-text);color:var(--color-bg);font-family:var(--font-sans);font-size:1rem;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:transform var(--duration-fast) var(--ease-spring),background var(--duration-normal) ease}.editor__relight-btn:hover{background:#3d332d}.editor__relight-btn:active{transform:scale(.98)}.editor__relight-btn svg{width:20px;height:20px}.loading-overlay{align-items:center;justify-content:center;background:var(--color-bg);gap:var(--space-lg);z-index:100;padding:var(--space-xl) var(--space-lg)}.loading__photo-wrap{position:relative;overflow:hidden;line-height:0;padding:10px 10px 32px;border-radius:3px;box-shadow:var(--photo-shadow);background-image:linear-gradient(135deg,rgba(255,255,255,.6) 0%,transparent 50%),linear-gradient(to bottom,#faf6f0,#f3ede5);animation:photo-straighten .6s var(--ease-out) both}@keyframes photo-straighten{0%{transform:rotate(-2deg)}to{transform:rotate(0)}}.loading__photo{display:block;max-width:var(--photo-max-width);max-height:var(--photo-max-height);border-radius:1px}.loading__shimmer{position:absolute;top:10px;right:10px;bottom:32px;left:10px;pointer-events:none;border-radius:1px;overflow:hidden;background:linear-gradient(90deg,transparent 0%,rgba(255,252,245,.3) 45%,rgba(255,255,250,.5) 50%,rgba(255,252,245,.3) 55%,transparent 100%);background-size:250% 100%;background-repeat:no-repeat;animation:shimmer-sweep 3s linear infinite;will-change:background-position}@keyframes shimmer-sweep{0%{background-position:-100% 0}to{background-position:200% 0}}.loading__text{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--color-text-muted);animation:loading-text-pulse 2.5s ease-in-out infinite}@keyframes loading-text-pulse{0%,to{opacity:.4}50%{opacity:1}}.loading__slow-msg{font-size:.82rem;color:var(--color-text-muted);animation:fade-in var(--duration-slow) var(--ease-out) both}.loading__cancel-btn{padding:var(--space-sm) var(--space-lg);border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);font-family:var(--font-sans);font-size:.85rem;cursor:pointer;transition:background var(--duration-fast) ease;animation:fade-in var(--duration-slow) var(--ease-out) both}.loading__cancel-btn:active{background:#2c24200a}.result{background:var(--color-bg);background-image:radial-gradient(ellipse at 50% 40%,rgba(212,145,111,.08) 0%,transparent 60%)}.result__cards{flex:1;display:flex;align-items:center;justify-content:center;padding:calc(var(--safe-top) + var(--space-md)) var(--space-lg) 0;perspective:800px;min-height:0}.result__card{position:relative;flex-shrink:1}.result__card-frame{padding:8px 8px 28px;border-radius:3px;box-shadow:var(--photo-shadow);background-image:linear-gradient(135deg,rgba(255,255,255,.6) 0%,transparent 50%),linear-gradient(to bottom,#faf6f0,#f3ede5)}.result__card-frame:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:3px;border:1px solid rgba(44,36,32,.06);pointer-events:none}.result__card-img{display:block;max-width:calc(var(--photo-max-width) / 2);max-height:var(--photo-max-height);object-fit:contain;border-radius:1px}.result__card-label{display:block;text-align:center;font-family:var(--font-serif);font-style:italic;font-size:.9rem;color:var(--color-text-muted);padding-top:4px}.result__card--before{z-index:1;transform:rotate(-4deg);margin-right:-20px;animation:card-before-in .6s var(--ease-out) both}.result__card--after{z-index:2;transform:rotate(3deg);margin-left:-20px;animation:card-after-reveal .8s var(--ease-out) .15s both}@keyframes card-before-in{0%{opacity:0;transform:rotate(0) scale(.92)}to{opacity:1;transform:rotate(-4deg) scale(1)}}@keyframes card-after-reveal{0%{opacity:0;transform:rotate(0) translate(-40px) scale(.92)}to{opacity:1;transform:rotate(3deg) translate(0) scale(1)}}.result__bottom{display:flex;gap:var(--space-sm);padding:var(--space-md);padding-bottom:calc(var(--space-md) + var(--safe-bottom))}.result__btn{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);padding:14px var(--space-md);border:none;border-radius:var(--radius-full);font-family:var(--font-sans);font-size:.88rem;font-weight:500;letter-spacing:.01em;cursor:pointer;transition:transform var(--duration-fast) var(--ease-spring),background var(--duration-fast) ease}.result__btn:active{transform:scale(.97)}.result__btn--primary{background:var(--color-text);color:var(--color-bg)}.result__btn--primary:hover{background:#3d332d}.result__btn--secondary{background:transparent;color:var(--color-text);border:1.5px solid var(--color-border-strong)}.result__btn--ghost{background:transparent;color:var(--color-text-muted);flex:0 0 auto;padding:14px}.toast{position:fixed;bottom:calc(100px + var(--safe-bottom));left:50%;transform:translate(-50%) translateY(20px);background:var(--color-danger);color:#fff;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-full);font-size:.82rem;font-weight:500;z-index:200;opacity:0;animation:toast-in .3s var(--ease-out) forwards,toast-out .3s var(--ease-out) 3s forwards;max-width:calc(100vw - 2 * var(--space-lg));text-align:center}@keyframes toast-in{to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes toast-out{to{opacity:0;transform:translate(-50%) translateY(20px)}}.auth-modal__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;display:flex;align-items:center;justify-content:center;background:#1c191766;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:var(--space-lg);animation:auth-modal-fade-in var(--duration-normal) var(--ease-out) both}@keyframes auth-modal-fade-in{0%{opacity:0}to{opacity:1}}.auth-modal__card{position:relative;width:100%;max-width:420px;background:var(--color-bg);border-radius:var(--radius-lg);padding:48px 40px 40px;text-align:center;box-shadow:0 24px 80px #1c191733,0 4px 16px #1c191714;animation:auth-modal-card-in var(--duration-slow) var(--ease-out) both}@keyframes auth-modal-card-in{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.auth-modal__close{position:absolute;top:16px;right:16px;width:36px;height:36px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) ease,color var(--duration-fast) ease}.auth-modal__close:hover{background:var(--color-border);color:var(--color-text)}.auth-modal__title{font-family:var(--font-serif);font-style:italic;font-size:clamp(2.5rem,6vw,3.5rem);font-weight:400;color:var(--color-text);margin-bottom:var(--space-sm)}.auth-modal__subtitle{font-size:1rem;color:var(--color-text-muted);margin-bottom:var(--space-xl)}.auth-modal__form{display:flex;flex-direction:column;gap:var(--space-md)}.auth-modal__input{width:100%;padding:16px 20px;border:1px solid var(--color-border-strong);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text);font-family:var(--font-sans);font-size:1rem;outline:none;transition:border-color var(--duration-fast) ease;box-sizing:border-box}.auth-modal__input:focus{border-color:var(--color-accent)}.auth-modal__input::placeholder{color:var(--color-text-muted)}.auth-modal__submit-btn{width:100%;padding:16px;border:none;border-radius:var(--radius-full);background:var(--color-accent);color:#fff;font-family:var(--font-sans);font-size:1rem;font-weight:500;letter-spacing:.02em;cursor:pointer;transition:all .4s var(--ease-out)}.auth-modal__submit-btn:hover:not(:disabled){background:#b5603c}.auth-modal__submit-btn:disabled{opacity:.6;cursor:not-allowed}.auth-modal__status{margin-top:var(--space-md);font-size:.9rem;min-height:1.4em}.auth-modal__status--success{color:var(--color-accent)}.auth-modal__status--error{color:var(--color-danger)}.landing__user-bar{position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + var(--space-md)) var(--space-lg) var(--space-md)}.landing__user-email{font-size:.8rem;color:#ffffffb3;letter-spacing:.02em}.landing__signout-btn,.landing__signin-btn{padding:8px 16px;border:1px solid rgba(255,255,255,.3);border-radius:var(--radius-full);background:#ffffff0d;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#fffc;font-family:var(--font-sans);font-size:.8rem;cursor:pointer;transition:all .3s var(--ease-out)}.landing__signout-btn:hover,.landing__signin-btn:hover{background:#ffffff26;border-color:#ffffff80}.landing__gen-badge{font-size:.75rem;color:#ffffff80;font-family:var(--font-sans);letter-spacing:.02em}.editor__gen-count{text-align:center;font-size:.8rem;color:var(--color-text-muted);margin:0;padding-top:var(--space-xs)}.editor__relight-btn:disabled{opacity:.5;cursor:not-allowed;background:var(--color-text-muted)}.editor__photo-frame,.result__card-frame{cursor:zoom-in}.img-viewer__backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;background:#0a0807eb;animation:img-viewer-in var(--duration-normal) var(--ease-out) both}@keyframes img-viewer-in{0%{opacity:0}to{opacity:1}}.img-viewer__stage{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;cursor:default}.img-viewer__img{position:absolute;max-width:100vw;max-height:100vh;width:auto;height:auto;object-fit:contain;transform-origin:0 0;will-change:transform;user-select:none;-webkit-user-select:none;touch-action:none;animation:img-viewer-img-in var(--duration-slow) var(--ease-out) both}@keyframes img-viewer-img-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.img-viewer__close{position:fixed;top:calc(var(--safe-top, 0px) + var(--space-md));right:var(--space-md);z-index:601;width:42px;height:42px;border:none;border-radius:var(--radius-full);background:#ffffff24;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#ffffffe6;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--duration-fast) ease,transform var(--duration-fast) var(--ease-spring);animation:fade-in var(--duration-slow) var(--ease-out) both}.img-viewer__close:hover{background:#ffffff3d}.img-viewer__close:active{transform:scale(.9)}
