:root{--bg: #fff7f1;--bg-tint: #ffe9dc;--card: #fffefb;--ink: #2c1a14;--ink-2: #5e463c;--muted: #a18878;--line: #f7e2d1;--line-strong: #f1d2bb;--accent: #f15a3f;--accent-press: #db4329;--accent-weak: #ffe7df;--accent-ink: #ffffff;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-display: "Outfit", "Inter", sans-serif;--grad-accent: linear-gradient(120deg, #fb7185 0%, #fb923c 55%, #fbbf24 100%);--sheen: linear-gradient( 115deg, transparent 0%, rgba(255, 255, 255, 0) 38%, rgba(255, 255, 255, .55) 50%, rgba(255, 255, 255, 0) 62%, transparent 100% );--glow-accent: 0 12px 28px -8px rgba(241, 90, 63, .45);--ok: #0fb981;--ok-weak: #e6faf3;--err: #f0436a;--err-weak: #ffebef;--warn: #f5a524;--develop-from: sepia(.18) saturate(1.18) brightness(1.05);--shadow-sm: 0 1px 2px rgba(120, 60, 30, .05), 0 1px 1px rgba(120, 60, 30, .03);--shadow: 0 1px 2px rgba(120, 60, 30, .06), 0 10px 28px -12px rgba(220, 90, 40, .18);--shadow-lg: 0 22px 54px -16px rgba(220, 90, 40, .28), 0 2px 6px rgba(120, 60, 30, .08);--r-xs: 8px;--r-sm: 10px;--r: 15px;--r-lg: 20px;--r-xl: 22px;--r-pill: 999px;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-snap: cubic-bezier(.3, 0, .1, 1);--d-micro: .12s;--d-hover: .18s;--d-enter: .32s;--d-sheet: .42s;--d-sheen: .6s;--d-develop: .7s}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-feature-settings:"cv11","ss01","cv02";letter-spacing:-.006em;font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.display,h1{font-family:var(--font-display)}.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum"}::selection{background:var(--accent-weak);color:var(--accent-press)}.app{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;position:relative;overflow-x:clip}.app:before{content:"";position:fixed;top:0;left:0;right:0;width:100%;height:72vh;background:radial-gradient(58% 48% at 50% 0%,rgba(251,146,60,.3),transparent 62%),radial-gradient(40% 40% at 84% 4%,rgba(251,113,133,.24),transparent 60%);pointer-events:none;z-index:0}.topbar{position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--card) 80%,transparent);backdrop-filter:saturate(1.6) blur(12px);-webkit-backdrop-filter:saturate(1.6) blur(12px);border-bottom:1px solid var(--line);padding:12px 16px;padding-top:max(12px,env(safe-area-inset-top))}@supports not (backdrop-filter: blur(1px)){.topbar{background:var(--card)}}.brand{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:600;font-size:1.0625rem;letter-spacing:-.01em;color:var(--ink);text-decoration:none;transition:opacity var(--d-hover) var(--ease-out)}.brand:active{opacity:.6}.brand-mark{font-size:1.15rem;line-height:1;filter:drop-shadow(0 1px 3px rgba(91,91,245,.28))}.container{flex:1;position:relative;z-index:1;width:100%;max-width:560px;margin:0 auto;padding:20px 16px 56px}.footer{position:relative;z-index:1;text-align:center;color:var(--muted);font-size:.75rem;padding:24px 16px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.footer-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--ok);margin:0 7px 1px;vertical-align:middle;box-shadow:0 0 #0fb98180;animation:pulse 2.6s var(--ease-out) infinite}h1{font-size:1.625rem;font-weight:600;line-height:1.12;letter-spacing:-.018em;margin:0}h1.hero{font-size:clamp(1.875rem,1.4rem + 2.4vw,2.75rem);line-height:1.08;letter-spacing:-.022em}h2{font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;margin:0}p{margin:0;color:var(--ink-2)}.muted{color:var(--muted)}.small{font-size:.8125rem;line-height:1.45}.eyebrow{display:inline-block;font-size:.6875rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.error{color:var(--err);font-size:.9rem}.grad-text{color:var(--accent)}@supports (-webkit-background-clip: text) or (background-clip: text){.grad-text{background:var(--grad-accent);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}}.stack{display:flex;flex-direction:column;gap:16px}.stack-sm{display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:10px}.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px 0}.center-y{align-items:center}.gap{gap:10px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:20px}.label{font-size:.8rem;font-weight:600;letter-spacing:.005em;color:var(--muted)}.input{width:100%;padding:13px 15px;font-size:1rem;font-family:inherit;color:var(--ink);background:var(--bg-tint);border:1.5px solid transparent;border-radius:var(--r-sm);transition:border-color var(--d-hover) var(--ease-out),background var(--d-hover) var(--ease-out),box-shadow var(--d-hover) var(--ease-out)}.input::placeholder{color:var(--muted)}.input:focus{outline:none;background:var(--card);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-weak)}.btn{appearance:none;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);font-family:inherit;font-size:.9375rem;font-weight:600;letter-spacing:.005em;padding:12px 18px;border-radius:var(--r-sm);cursor:pointer;overflow:hidden;-webkit-tap-highlight-color:transparent;transition:transform .14s var(--ease-spring),box-shadow var(--d-hover) var(--ease-out),background var(--d-hover) var(--ease-out),border-color var(--d-hover) var(--ease-out),color var(--d-hover) var(--ease-out),opacity var(--d-hover) var(--ease-out)}.btn:active{transform:scale(.96)}.btn:focus-visible{outline:none;box-shadow:0 0 0 4px var(--accent-weak)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn-primary{color:var(--accent-ink);background:var(--grad-accent);border-color:transparent;border-radius:var(--r-pill);box-shadow:var(--glow-accent)}.btn-primary:active{transform:scale(.96) translateY(1px)}.btn-primary:disabled{box-shadow:none}.btn-primary:after{content:"";position:absolute;inset:0;background:var(--sheen);transform:translate(-120%) skew(-12deg);pointer-events:none}.btn-primary:hover:not(:disabled):after,.btn-primary:active:not(:disabled):after{animation:sheen var(--d-sheen) var(--ease-out)}.btn-ghost{background:transparent;border-color:transparent;color:var(--accent)}.btn-ghost:hover{background:var(--accent-weak)}.btn-danger{background:transparent;border-color:color-mix(in srgb,var(--err) 36%,transparent);color:var(--err)}.btn-danger:hover{background:var(--err-weak)}.btn-sm{padding:8px 13px;font-size:.85rem;border-radius:var(--r-xs)}.btn-lg{padding:15px 20px;font-size:1rem;border-radius:var(--r-pill);width:100%}.dropzone{position:relative;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--bg-tint);padding:30px 16px;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:border-color var(--d-hover) var(--ease-out),background var(--d-hover) var(--ease-out),transform .2s var(--ease-out),box-shadow var(--d-hover) var(--ease-out)}.dropzone:active{transform:scale(.99)}.dropzone-active{border-color:var(--accent);background:var(--accent-weak);transform:scale(1.01);box-shadow:var(--glow-accent)}.dropzone-compact{padding:18px 16px}.dropzone-inner{display:flex;flex-direction:column;align-items:center;gap:8px}.dropzone-inner strong{font-size:.95rem}.dropzone-icon{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);color:var(--accent);font-size:1.35rem;box-shadow:var(--shadow-sm);transition:transform .2s var(--ease-spring),box-shadow var(--d-hover) var(--ease-out)}.dropzone-active .dropzone-icon{transform:translateY(-3px);box-shadow:var(--glow-accent)}.segmented{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:4px;background:var(--bg-tint);border-radius:var(--r)}.segmented:before{content:"";position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);background:var(--card);border-radius:var(--r-sm);box-shadow:var(--shadow-sm),0 0 0 1px var(--accent) inset;transition:transform .28s var(--ease-snap);z-index:0}.segmented[data-active=own]:before{transform:translate(calc(100% + 8px))}.seg{position:relative;z-index:1;display:flex;flex-direction:column;gap:2px;text-align:left;padding:11px 12px;border:none;background:transparent;border-radius:var(--r-sm);cursor:pointer;color:var(--muted);font-family:inherit;-webkit-tap-highlight-color:transparent;transition:color var(--d-hover) var(--ease-out),transform .14s var(--ease-spring)}.seg:active{transform:scale(.97)}.seg strong{font-size:.9rem;font-weight:600;color:var(--ink-2);transition:color var(--d-hover) var(--ease-out)}.seg-on strong{color:var(--accent)}.seg-on .small,.seg-on span{color:var(--ink-2)}.seg:disabled{cursor:default}.toggle{display:flex;align-items:center;gap:12px;font-size:.9rem;color:var(--ink-2);cursor:pointer;-webkit-tap-highlight-color:transparent}.toggle input{appearance:none;-webkit-appearance:none;flex:none;position:relative;width:44px;height:26px;margin:0;border-radius:var(--r-pill);background:var(--line-strong);cursor:pointer;transition:background .2s var(--ease-out)}.toggle input:before{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0d121e4d;transition:transform .22s var(--ease-spring)}.toggle input:checked{background:var(--accent)}.toggle input:checked:before{transform:translate(18px)}.toggle input:focus-visible{outline:none;box-shadow:0 0 0 4px var(--accent-weak)}.toggle input:disabled{opacity:.55;cursor:not-allowed}.sharelink{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:var(--r);padding:7px 7px 7px 14px;background:var(--bg-tint);transition:box-shadow var(--d-hover) var(--ease-out)}.sharelink-copied{animation:ripple .6s var(--ease-out)}.sharelink-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;font-weight:500;color:var(--accent);text-decoration:none}.sharelink .btn{flex:none;transition:transform .14s var(--ease-spring),background var(--d-hover) var(--ease-out),color var(--d-hover) var(--ease-out)}.sharelink .btn-copied{background:var(--ok-weak);color:var(--ok);transform:scale(1.04)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.grid-sm{grid-template-columns:repeat(4,1fr)}@media(min-width:600px){.grid{grid-template-columns:repeat(4,1fr)}.grid-sm{grid-template-columns:repeat(5,1fr)}}.thumb{position:relative;margin:0;aspect-ratio:1 / 1;border-radius:var(--r-sm);overflow:hidden;background:var(--bg-tint);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .2s var(--ease-out),box-shadow var(--d-hover) var(--ease-out),border-radius var(--d-hover) var(--ease-out)}.thumb:active{transform:scale(.97)}@media(hover:hover){.thumb:hover{transform:translateY(-2px);border-radius:var(--r);box-shadow:var(--shadow);z-index:1}}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb[data-reveal] img{opacity:0}.thumb.in-view img{animation:develop var(--d-develop) var(--ease-out) both;animation-delay:calc(min(var(--i, 0),8)*55ms)}.thumb.fresh img{opacity:0;animation:thumbPop .32s var(--ease-spring) both}.badge{position:absolute;top:5px;right:5px;min-width:20px;height:20px;padding:0 5px;display:flex;align-items:center;justify-content:center;font-size:.72rem;font-weight:700;border-radius:var(--r-pill);color:#fff;background:#0b0d1299;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:stamp .32s var(--ease-spring) both}.badge-resizing{background:#0b0d128c}.badge-uploading{background:var(--accent)}.badge-done{background:var(--ok)}.badge-error{background:var(--err)}.thumb-download,.thumb-remove{position:absolute;border:none;border-radius:var(--r-pill);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:transform .14s var(--ease-spring),background var(--d-hover) var(--ease-out),opacity var(--d-hover) var(--ease-out)}.thumb-download{bottom:6px;right:6px;width:30px;height:30px;background:#0b0d128c;font-size:.85rem;opacity:0;transform:translateY(4px)}.thumb:hover .thumb-download,.thumb:focus-within .thumb-download{opacity:1;transform:none}@media(hover:none){.thumb-download{opacity:1;transform:none}}.thumb-download:active{transform:scale(.9);background:var(--accent)}.thumb-remove{top:5px;left:5px;width:23px;height:23px;background:#0b0d129e;font-size:1rem;line-height:1;z-index:2}.thumb-remove:active{transform:scale(.85);background:var(--err)}.people{display:grid;grid-template-columns:repeat(auto-fill,76px);justify-content:center;gap:18px 12px}.person{position:relative;width:76px}.person-tile{display:flex;flex-direction:column;align-items:center;gap:7px;border:none;background:transparent;cursor:pointer;padding:0;width:100%;-webkit-tap-highlight-color:transparent;transition:transform .16s var(--ease-spring)}.person-tile:active{transform:scale(.93)}.person-x{position:absolute;top:-4px;right:-2px;width:22px;height:22px;border-radius:var(--r-pill);border:2px solid var(--card);background:var(--err);color:#fff;font-size:.85rem;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:3;box-shadow:0 2px 6px #0d121e47;transform:scale(.001);opacity:0;transition:transform .2s var(--ease-spring),opacity .16s var(--ease-out)}.person:hover .person-x,.person:focus-within .person-x{transform:scale(1);opacity:1}@media(hover:none){.person-x{transform:scale(1);opacity:1}}.person-x:active{transform:scale(.85)}.person-x:disabled{opacity:.5}.facethumb{border-radius:var(--r-pill);background:var(--bg-tint);object-fit:cover;box-shadow:0 0 0 2px var(--card),0 0 0 3.5px var(--accent),var(--shadow-sm)}.facethumb.in-view{animation:ringDraw .52s var(--ease-spring) both}.person-count{font-size:.72rem;font-weight:500;color:var(--muted)}.camera-frame{position:relative;border-radius:var(--r-lg);padding:3px;background:var(--line)}.camera-frame.live{background:transparent}.camera-frame.live:before{content:"";position:absolute;inset:0;border-radius:var(--r-lg);padding:3px;background:conic-gradient(from 0deg,var(--accent),#6c6cff,#4f46e5,var(--accent));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;animation:ringSpin 8s linear infinite;z-index:0}.camera{position:relative;z-index:1;width:100%;aspect-ratio:3 / 4;max-height:58vh;border-radius:var(--r);overflow:hidden;background:#07090f;display:flex;align-items:center;justify-content:center}.camera-video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.camera-placeholder{padding:24px;text-align:center}.camera-placeholder .muted{color:#cbd5e1}.camera-flash{position:absolute;inset:0;z-index:2;background:#fff;opacity:0;pointer-events:none}.camera-flash.on{animation:flash .28s var(--ease-out)}.scan-box{position:relative;width:100%;aspect-ratio:3 / 4;max-height:58vh;border-radius:var(--r);overflow:hidden;background:#07090f;display:flex;align-items:center;justify-content:center}.scan-sweep{position:absolute;left:0;right:0;height:28%;top:0;background:linear-gradient(to bottom,transparent,color-mix(in srgb,var(--accent) 55%,transparent));border-bottom:2px solid var(--accent);box-shadow:0 0 24px 2px #5b5bf58c;animation:scanSweep 1.9s var(--ease-in-out) infinite}.empty-icon{font-size:2.25rem;animation:thumbPop .42s var(--ease-spring) both}.progress{height:8px;border-radius:var(--r-pill);background:var(--bg-tint);overflow:hidden}.progress-fill{position:relative;height:100%;border-radius:inherit;background:var(--grad-accent);transition:width .5s var(--ease-out);overflow:hidden}.progress-fill:after{content:"";position:absolute;inset:0;background:var(--sheen);transform:translate(-60%);animation:barShimmer 1.6s linear infinite}.done-pill{display:inline-flex;align-items:center;gap:7px;color:var(--ok);font-weight:600;font-size:.9rem}.spinner{position:relative;width:34px;height:34px;flex:none}.spinner:before,.spinner:after{content:"";position:absolute;inset:0;border-radius:50%;border:3px solid var(--line)}.spinner:before{border-top-color:var(--accent);animation:spin .8s linear infinite}.spinner:after{inset:6px;border-width:2px;border-bottom-color:var(--accent);animation:spinRev 1.2s linear infinite}.spinner-sm{width:20px;height:20px}.spinner-sm:before{border-width:2px}.spinner-sm:after{display:none}.modal-backdrop{position:fixed;inset:0;background:#0b0d127a;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);display:flex;align-items:flex-end;justify-content:center;z-index:40;padding:0;animation:backdropIn .22s var(--ease-out) both}.modal{position:relative;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--card);border-radius:var(--r-xl) var(--r-xl) 0 0;padding:18px 18px max(18px,env(safe-area-inset-bottom));box-shadow:var(--shadow-lg);animation:sheetUp var(--d-sheet) var(--ease-out) both}.modal:before{content:"";display:block;width:38px;height:4px;border-radius:var(--r-pill);background:var(--line-strong);margin:0 auto 12px}@media(min-width:600px){.modal-backdrop{align-items:center}.modal{border-radius:var(--r-xl)}.modal:before{display:none}}[data-reveal]:not([data-reveal=tile]){opacity:0;transform:translateY(16px) scale(.99)}[data-reveal]:not([data-reveal=tile]).in{animation:rise .48s var(--ease-out) both;animation-delay:calc(min(var(--i, 0),8)*50ms)}@keyframes rise{0%{opacity:0;transform:translateY(16px) scale(.99)}to{opacity:1;transform:none}}@keyframes thumbPop{0%{opacity:0;transform:scale(.9) translateY(6px)}60%{opacity:1}to{opacity:1;transform:none}}@keyframes develop{0%{opacity:0;filter:var(--develop-from);transform:scale(1.035)}55%{opacity:1}to{opacity:1;filter:none;transform:none}}@keyframes stamp{0%{transform:scale(0) rotate(-12deg);opacity:0}70%{transform:scale(1.15) rotate(0);opacity:1}to{transform:scale(1)}}@keyframes sheen{0%{transform:translate(-120%) skew(-12deg)}to{transform:translate(120%) skew(-12deg)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinRev{to{transform:rotate(-360deg)}}@keyframes barShimmer{0%{transform:translate(-60%)}to{transform:translate(160%)}}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}@keyframes ringSpin{to{transform:rotate(360deg)}}@keyframes flash{0%{opacity:0}35%{opacity:.65}to{opacity:0}}@keyframes scanSweep{0%{transform:translateY(-110%)}to{transform:translateY(360%)}}@keyframes ripple{0%{box-shadow:0 0 0 0 var(--accent-weak)}to{box-shadow:0 0 0 14px transparent}}@keyframes ringDraw{0%{opacity:0;transform:scale(.72)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%{box-shadow:0 0 #0fb98180}70%{box-shadow:0 0 0 6px #0fb98100}to{box-shadow:0 0 #0fb98100}}::view-transition-old(root){animation:vtOut .28s var(--ease-in-out) both}::view-transition-new(root){animation:vtIn .36s var(--ease-out) both}@keyframes vtOut{to{opacity:0;transform:translateY(-6px) scale(.995)}}@keyframes vtIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}[data-reveal],[data-reveal] img,.facethumb{opacity:1!important;transform:none!important;filter:none!important}.btn-primary:after,.scan-sweep,.progress-fill:after,.camera-frame.live:before,.footer-dot{display:none!important}.spinner:before{animation:spin .8s linear infinite!important}}
