:root{--bg-pearl:#faf7f8;--bg-blush:#f3e4df;--bg-sand:#e8d5cb;--rose:#c47872;--rose-deep:#b56b66;--rose-soft:#d9a39e;--ink:#3a3332;--ink-muted:#6f6563;--stone:#c9b7b0;--stone-soft:#ddd0cb;--surface:#fffcfbb8;--white:#fffdfc;--shadow:0 18px 50px #7850461a;--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--font-serif:"Cormorant Garamond", "Times New Roman", serif;--font-sans:"Outfit", "Segoe UI", sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);color:var(--ink);background:var(--bg-pearl);font-family:var(--font-sans);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{min-width:320px;color:var(--ink);background-color:#0000;background-image:radial-gradient(80% 60% at 12% 18%,#e8b4a873,#0000 55%),radial-gradient(70% 55% at 88% 12%,#d6baa866,#0000 50%),radial-gradient(90% 70% at 50% 100%,#ebd2c68c,#0000 60%),linear-gradient(165deg,#fdf8f6 0%,#f7ebe6 45%,#edd9cf 100%);background-position:0 0,0 0,0 0,0 0;background-repeat:repeat,repeat,repeat,repeat;background-size:auto,auto,auto,auto;background-attachment:fixed;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;margin:0}button,input{font:inherit}button{cursor:pointer;color:inherit;background:0 0;border:none}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.app-shell{flex-direction:column;width:min(1120px,100% - 2.5rem);min-height:100vh;margin:0 auto;padding:1.35rem 0 2.5rem;display:flex}.site-header{animation:rise .7s var(--ease) both;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:clamp(2rem,6vh,3.5rem);display:flex}.brand{font-family:var(--font-serif);letter-spacing:.01em;color:var(--rose-deep);font-size:2rem;font-weight:500;line-height:1}.nav-links{align-items:center;gap:1.6rem;display:flex}.nav-links button{color:var(--ink-muted);font-size:.95rem;font-weight:400;transition:color .2s}.nav-links button:hover,.nav-links button:focus-visible{color:var(--rose-deep)}.stage{text-align:center;flex-direction:column;flex:1;align-items:center;display:flex}.hero-title{font-family:var(--font-serif);letter-spacing:-.02em;color:var(--rose);animation:rise .75s var(--ease) 50ms both;margin:0;font-size:clamp(2.8rem,7vw,4.4rem);font-weight:500;line-height:1.05}.hero-copy{max-width:34rem;color:var(--ink-muted);animation:rise .75s var(--ease) .12s both;margin:1rem 0 0;font-size:1.05rem;font-weight:300;line-height:1.55}.cta-row{animation:rise .75s var(--ease) .18s both;flex-wrap:wrap;justify-content:center;align-items:center;gap:1.25rem;margin-top:1.75rem;display:flex}.btn{border-radius:var(--radius-sm);letter-spacing:.01em;min-height:3rem;transition:transform .2s var(--ease), background .2s ease, box-shadow .2s ease, border-color .2s ease;justify-content:center;align-items:center;gap:.55rem;padding:.75rem 1.45rem;font-size:1rem;font-weight:500;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--rose);color:var(--white);box-shadow:0 10px 24px #b4645a38}.btn-primary:hover{background:var(--rose-deep)}.btn-primary:disabled{opacity:.65;cursor:wait;transform:none}.btn-secondary{background:var(--white);color:var(--rose-deep);border:1.5px solid var(--rose-soft)}.btn-secondary:hover{border-color:var(--rose);background:#fff8f7}.btn-text{color:var(--rose);border-bottom:1px solid #0000;padding:.4rem .2rem;font-size:1rem;font-weight:500}.btn-text:hover{border-bottom-color:var(--rose-soft)}.dropzone{border:1.5px dashed var(--stone);border-radius:var(--radius-lg);width:min(720px,100%);transition:border-color .2s ease, background .2s ease, transform .25s var(--ease);animation:rise .8s var(--ease) .24s both;cursor:pointer;background:linear-gradient(#fffcfb8c,#f8ece659);margin-top:2.1rem;padding:clamp(2.5rem,7vw,4.2rem) 1.5rem}.dropzone:hover,.dropzone:focus-visible,.dropzone.is-dragging{border-color:var(--rose);background:linear-gradient(#fff8f6cc,#f4dcd473);outline:none}.dropzone-icon{border:1.5px solid var(--stone);width:3.4rem;height:3.4rem;color:var(--rose-deep);border-radius:999px;place-items:center;margin:0 auto 1.1rem;display:grid}.dropzone-title{color:var(--ink);margin:0;font-size:1.15rem;font-weight:500}.dropzone-hint{color:var(--ink-muted);margin:.45rem 0 0;font-size:.92rem;font-weight:300}.processing{width:min(420px,100%);animation:rise .6s var(--ease) both}.processing-frame{border-radius:var(--radius-md);border:1px solid var(--stone-soft);width:min(280px,70vw);box-shadow:var(--shadow);aspect-ratio:1;background:var(--bg-blush);margin:0 auto;overflow:hidden}.processing-frame img{object-fit:cover;filter:saturate(.92);width:100%;height:100%}.processing-title{font-family:var(--font-serif);color:var(--rose);margin:1.6rem 0 0;font-size:clamp(1.8rem,4vw,2.3rem);font-weight:500}.progress-track{background:#c478722e;border-radius:999px;width:min(320px,100%);height:4px;margin:1.25rem auto 0;overflow:hidden}.progress-fill{border-radius:inherit;background:linear-gradient(90deg, var(--rose-soft), var(--rose));width:40%;height:100%;animation:progress 1.8s var(--ease) infinite}.processing-hint{color:var(--ink-muted);margin:.9rem 0 0;font-size:.95rem;font-weight:300}.result{width:min(760px,100%);animation:rise .65s var(--ease) both}.compare{aspect-ratio:4/3;border-radius:var(--radius-lg);border:1px solid var(--stone-soft);width:100%;box-shadow:var(--shadow);-webkit-user-select:none;user-select:none;touch-action:none;background:#efe4df;margin-top:1.75rem;position:relative;overflow:hidden}.compare-img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.compare-after{clip-path:inset(0 0 0 var(--pos))}.compare-handle{top:0;bottom:0;left:var(--pos);background:#ffffffe6;width:2px;position:absolute;transform:translate(-50%);box-shadow:0 0 0 1px #7850461f}.compare-knob{background:var(--white);width:2.6rem;height:2.6rem;color:var(--rose-deep);border:1px solid #c4787259;border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 8px 20px #5a3c322e}.compare-label{z-index:2;letter-spacing:.02em;color:var(--ink-muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffcfbe0;border:1px solid #c9b7b0b3;border-radius:999px;padding:.35rem .75rem;font-size:.78rem;font-weight:500;position:absolute;top:.9rem}.compare-label.left{left:.9rem}.compare-label.right{right:.9rem}.result-actions{flex-wrap:wrap;justify-content:center;gap:.85rem;margin-top:1.6rem;display:flex}.footnote{color:var(--ink-muted);margin:1.4rem 0 0;font-size:.88rem;font-weight:300}.error-banner{border-radius:var(--radius-sm);width:min(720px,100%);color:var(--rose-deep);animation:rise .4s var(--ease) both;background:#c478721f;border:1px solid #c4787247;margin-top:1.25rem;padding:.85rem 1rem;font-size:.95rem;line-height:1.45}.invite-gate{animation:rise .7s var(--ease) both}.invite-form{width:min(420px,100%);animation:rise .75s var(--ease) .12s both;flex-direction:column;gap:.85rem;margin-top:1.75rem;display:flex}.invite-input{border-radius:var(--radius-sm);border:1.5px solid var(--stone);width:100%;min-height:3.1rem;color:var(--ink);letter-spacing:.04em;text-align:center;background:#fffcfbd9;outline:none;padding:.8rem 1rem;font-size:1.05rem;transition:border-color .2s,box-shadow .2s}.invite-input::placeholder{color:var(--ink-muted);letter-spacing:0}.invite-input:focus{border-color:var(--rose);box-shadow:0 0 0 3px #c4787226}.admin-panel{width:min(560px,100%)}.admin-label{text-align:left;color:var(--ink-muted);font-size:.92rem;display:block}.admin-create{margin-top:1rem}.admin-created,.admin-list{text-align:left;width:100%;margin-top:1.4rem}.admin-created ul{border-radius:var(--radius-sm);border:1px solid var(--stone-soft);background:#fffcfbcc;margin:.6rem 0 0;padding:.9rem 1rem;list-style:none}.admin-created li+li{margin-top:.45rem}.admin-created code,.admin-row code{color:var(--ink);font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.95rem}.admin-row{border-bottom:1px solid #c9b7b073;justify-content:space-between;align-items:center;gap:1rem;padding:.7rem 0;display:flex}.admin-row .is-unused{color:var(--rose-deep);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem;font-weight:500}.admin-row .is-used{color:var(--ink-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.82rem}.modal-backdrop{z-index:40;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3a333247;place-items:center;padding:1.25rem;animation:.2s both fade;display:grid;position:fixed;inset:0}.modal{border-radius:var(--radius-md);background:var(--white);border:1px solid var(--stone-soft);width:min(480px,100%);box-shadow:var(--shadow);text-align:left;animation:rise .35s var(--ease) both;padding:1.75rem 1.6rem 1.5rem}.modal h2{font-family:var(--font-serif);color:var(--rose-deep);margin:0;font-size:1.9rem;font-weight:500}.modal p,.modal li{color:var(--ink-muted);font-size:.98rem;font-weight:300;line-height:1.55}.modal ol{margin:.85rem 0 0;padding-left:1.15rem}.modal-close{color:var(--rose);margin-top:1.25rem;font-weight:500}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes progress{0%{transform:translate(-80%)}to{transform:translate(280%)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=640px){.app-shell{width:min(100% - 1.5rem,1120px);padding-top:1rem}.brand{font-size:1.7rem}.nav-links{gap:1rem}.nav-links button{font-size:.88rem}.compare{aspect-ratio:3/4}.btn{width:100%}.cta-row{flex-direction:column;width:100%}.btn-text{width:auto}.result-actions .btn{width:min(100%,280px)}}
