@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/c3cb240f9c892514-s.d8e4bce2.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-weight:100 1000;font-display:swap;src:url(../media/5c285b27cdda1fe8-s.p.a62025f2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans Fallback;src:local(Arial);ascent-override:94.9%;descent-override:29.66%;line-gap-override:0.0%;size-adjust:104.53%}.dm_sans_78e3e10c-module__ZPtN2q__className{font-family:DM Sans,DM Sans Fallback;font-style:normal}.dm_sans_78e3e10c-module__ZPtN2q__variable{--font-dm-sans:"DM Sans","DM Sans Fallback"}
@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/167cd0713aa75522-s.25158358.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/e455bcff747f0d5e-s.5f7c7356.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/791bf8c4bb753ed6-s.p.fb4c44d9.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Fraunces Fallback;src:local(Times New Roman);ascent-override:84.71%;descent-override:22.09%;line-gap-override:0.0%;size-adjust:115.45%}.fraunces_5e0e76fa-module__Jg8Z5W__className{font-family:Fraunces,Fraunces Fallback;font-style:normal}.fraunces_5e0e76fa-module__Jg8Z5W__variable{--font-fraunces:"Fraunces","Fraunces Fallback"}
:root{--bg:#000;--bg-elevated:#050505;--bg-subtle:#0a0a0a;--ink:#00ff41;--ink-2:#0c3;--muted:#008f11;--muted-2:#003b00;--accent:#00ff41;--accent-soft:#00ff411f;--accent-2:#ffd93d;--glow-color:#00ff0026;--glow-shadow:0 0 15px -2px var(--glow-color);--glass-bg-card:#0c0c0cf0;--glass-border:#ffffff8c;--glass-blur-sm:12px;--glass-blur:24px;--glass-blur-lg:40px;--success:#12a068;--warn:#e08c00;--error:#d93025;--error-soft:#d930251a;--line:#00000017;--line-strong:#00000026;--shadow-sm:0 2px 8px #0000000f;--shadow-md:0 8px 28px #0000001a;--shadow-lg:0 20px 60px #00000026;--shadow-xl:0 32px 80px #00000038;--glass-bg:#ffffffb8;--glass-bg-heavy:#ffffffe0;--glass-border-subtle:#ffffff59;--glass-highlight:linear-gradient(135deg,#ffffff73 0%,#ffffff14 100%);--r-sm:8px;--r-md:16px;--r-lg:24px;--r-xl:32px;--r-pill:9999px;--font-display:"SF Mono","Fira Code",monospace;--font-ui:"SF Mono","Fira Code",monospace;--font-mono:"SF Mono","Fira Code",monospace;--bp-sm:640px;--bp-md:768px;--bp-lg:1024px;--bp-xl:1280px;--sidebar-w:240px;--sidebar-w-collapsed:72px}[data-theme=light]{--bg:#fff0f3;--bg-elevated:#fff;--bg-subtle:#ffeaee;--ink:#590d22;--ink-2:#800f2f;--muted:#c9184a;--muted-2:#ffb3c1;--accent:#ff758f;--accent-soft:#ff758f26;--accent-2:#ff4d6d;--success:#38b000;--warn:#ff9f1c;--error:#ff0054;--error-soft:#ff005414;--line:#590d2214;--line-strong:#590d2226;--shadow-sm:0 4px 12px #590d220a;--shadow-md:0 12px 32px #590d2214;--shadow-lg:0 24px 64px #590d221f;--shadow-xl:0 40px 100px #590d2229;--glass-bg:#fff0f3bf;--glass-bg-card:#ffffffd9;--glass-bg-heavy:#fffffff2;--glass-border:#ff758f4d;--glass-border-subtle:#ff758f26;--glass-highlight:linear-gradient(135deg,#fffc 0%,#fff3 100%);--glow-color:transparent;--glow-shadow:none}[data-theme=dark]{--bg:#000;--bg-elevated:#050505;--bg-subtle:#0a0a0a;--ink:#00ff41;--ink-2:#0c3;--muted:#008f11;--muted-2:#003b00;--accent:#00ff41;--accent-soft:#00ff4126;--accent-2:#ffd93d;--glow-color:#00ff0026;--glow-shadow:0 0 15px -2px var(--glow-color);--glass-bg-card:#0c0c0cf0;--glass-border:#00ff4147;--line:#00ff411a;--line-strong:#00ff4133;--shadow-sm:0 2px 8px #00000080;--shadow-md:0 8px 28px #0009;--shadow-lg:0 20px 60px #000000b3;--shadow-xl:0 32px 80px #000c}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;height:100%}body{font-family:var(--font-ui);background:var(--bg);color:var(--ink);min-height:100%;line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;font-family:inherit}img{max-width:100%;display:block}.glass{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border:1px solid var(--glass-border);box-shadow:var(--shadow-md),var(--glow-shadow)}.glass-heavy{background:var(--glass-bg-heavy);-webkit-backdrop-filter:blur(60px)saturate(220%)brightness(1.08);border:1px solid var(--glass-border);box-shadow:inset 0 1px #fff6,0 4px 24px #00000014,0 0 0 .5px #0000000d}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slide-up-sheet{0%{transform:translateY(100%)}to{transform:translateY(0)}}.spin{animation:1s linear infinite spin}.app-shell{min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom));flex-direction:column;display:flex}@media (min-width:1024px){.app-shell{flex-direction:row;padding-bottom:0}}.app-header{z-index:50;background:0 0;transition:transform .28s cubic-bezier(.4,0,.2,1),background .28s,-webkit-backdrop-filter .28s,backdrop-filter .28s,box-shadow .28s;position:fixed;top:0;left:0;right:0}.app-header.header-scrolled{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(40px)saturate(210%)brightness(1.05);border-bottom:1px solid var(--line);box-shadow:var(--shadow-md),var(--glow-shadow)}.app-header.header-hidden{transform:translateY(-100%)}.app-header-inner{padding:.65rem 1rem;padding-top:max(.65rem,env(safe-area-inset-top));align-items:center;gap:.75rem;display:flex}@media (min-width:1024px){.app-header{display:none}}.app-logo{white-space:nowrap;flex-shrink:0;align-items:center;gap:.45rem;font-size:1rem;font-weight:700;display:inline-flex}.app-logo-mark{border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent),var(--accent-2));width:2rem;height:2rem;box-shadow:0 0 15px var(--accent-soft);flex-shrink:0}.app-logo-text{letter-spacing:.2em;text-transform:uppercase;color:var(--ink);text-shadow:var(--glow-shadow);font-size:.82rem}.app-search-bar{border:1px solid var(--line);background:var(--bg-subtle);cursor:text;border-radius:4px;flex:1;align-items:center;gap:.5rem;min-width:0;padding:.55rem .8rem;transition:box-shadow .15s,border-color .15s;display:flex}.app-search-bar:focus-within{box-shadow:0 0 10px var(--accent-soft);border-color:var(--accent)}.app-search-bar input{color:var(--ink);font-family:var(--font-ui);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:.9rem}.app-search-bar input::placeholder{color:var(--muted)}.app-search-icon{color:var(--muted);flex-shrink:0}.app-search-clear{background:var(--bg-subtle);width:20px;height:20px;color:var(--muted);cursor:pointer;min-height:unset;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .12s;display:flex}.app-search-clear:hover{background:var(--line-strong)}.app-header-btn{border-radius:var(--r-pill);width:36px;height:36px;color:var(--ink-2);cursor:pointer;min-height:unset;background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:flex}.app-header-btn:hover{background:var(--bg-subtle);color:var(--ink)}.app-avatar{border-radius:var(--r-pill);cursor:pointer;background:0 0;border:none;flex-shrink:0;width:2rem;height:2rem;padding:0}.app-avatar-inner{border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent),var(--accent-2));width:100%;height:100%;box-shadow:0 2px 8px var(--accent-soft)}.bottom-nav{z-index:50;padding:0 12px;padding-bottom:max(10px,env(safe-area-inset-bottom));position:fixed;bottom:0;left:0;right:0}@media (min-width:1024px){.bottom-nav{display:none}}.bottom-nav-inner{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-radius:var(--r-xl);border:1px solid var(--glass-border);box-shadow:var(--shadow-lg),var(--glow-shadow);align-items:stretch;gap:.15rem;padding:.35rem .65rem;display:flex}.bottom-nav-item{border-radius:var(--r-md);color:var(--muted);font-family:var(--font-ui);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:.2rem;min-height:44px;padding:.45rem .25rem;font-size:.7rem;font-weight:500;transition:color .15s,background .15s;display:flex;position:relative}.bottom-nav-item.prominent{background:var(--accent);height:72px;color:var(--bg-elevated);box-shadow:0 8px 16px var(--accent-soft);border:4px solid var(--bg-elevated);z-index:2;border-radius:50%;flex:0 0 72px;justify-content:center;align-items:center;margin-top:-34px;display:flex}.bottom-nav-item.prominent:hover{box-shadow:0 12px 24px var(--accent-soft);transform:translateY(-2px)}.bottom-nav-item.prominent .nav-icon{color:var(--bg-elevated)}.bottom-nav-item:hover{color:var(--ink-2)}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-item.active .nav-label{font-weight:700}.nav-icon{justify-content:center;align-items:center;line-height:1;display:flex}.desktop-fab{background:var(--accent);width:56px;height:56px;color:var(--bg-elevated);box-shadow:0 8px 24px var(--accent-soft);cursor:pointer;z-index:40;border:none;border-radius:16px;justify-content:center;align-items:center;transition:transform .15s,box-shadow .15s;display:none;position:fixed;bottom:32px;right:32px}@media (min-width:1024px){.desktop-fab{display:flex}}.desktop-fab:hover{box-shadow:0 12px 32px var(--accent-soft);transform:translateY(-4px)}.desktop-fab:active{transform:translateY(-1px)}.page-content{padding-top:calc(64px + env(safe-area-inset-top));flex:1;min-width:0;padding-bottom:1rem}@media (min-width:1024px){.page-content{margin-left:0;padding-top:0}.page-content.with-sidebar{margin-left:var(--sidebar-w)}}.page-shell{max-width:680px;margin:0 auto;padding:1.5rem 1rem 2rem}@media (min-width:1024px){.page-shell{max-width:1200px;padding:3rem 2rem}}.page-full{max-width:100%;padding:1rem}.display-heading{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.75rem,5vw,2.5rem);font-weight:700;line-height:1.1}.section-heading{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:700}.mono{font-family:var(--font-mono);font-size:.82rem}.card{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-sm);padding:1rem}.panel{background:var(--bg-elevated);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-md);padding:1.25rem}.btn{border-radius:var(--r-pill);font-family:var(--font-ui);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.45rem;min-height:44px;padding:.65rem 1.25rem;font-size:.9rem;font-weight:600;transition:transform .12s,opacity .12s,box-shadow .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:not(:disabled):active{transform:scale(.97)}.btn-primary{background:var(--bg);color:var(--ink);border:1px solid var(--ink);box-shadow:var(--glow-shadow)}.btn-primary:not(:disabled):hover{background:var(--ink);color:var(--bg);box-shadow:var(--shadow-md),var(--glow-shadow)}.btn-secondary{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-sm));color:var(--ink-2);border:1px solid var(--glass-border);box-shadow:var(--glow-shadow)}.btn-secondary:not(:disabled):hover{background:var(--bg-subtle)}.btn-ghost{color:var(--accent);border:1px solid var(--accent-soft);background:0 0}.btn-ghost:not(:disabled):hover{background:var(--accent-soft)}.btn-danger{-webkit-backdrop-filter:blur(8px);color:#fff;background:#d93025d9;box-shadow:0 4px 12px #d9302533}.btn-icon{border-radius:var(--r-pill);background:var(--glass-bg-card);width:44px;height:44px;-webkit-backdrop-filter:blur(var(--glass-blur-sm));border:1px solid var(--glass-border);box-shadow:var(--glow-shadow);padding:0;font-size:1.1rem}.btn-sm{min-height:36px;padding:.4rem .8rem;font-size:.82rem}.chip{white-space:nowrap;border:1px solid var(--line);background:var(--bg-subtle);color:var(--ink-2);cursor:pointer;border-radius:4px;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.82rem;font-weight:500;transition:all .12s;display:inline-flex}.chip:hover{border-color:var(--ink);color:var(--ink);box-shadow:var(--shadow-sm)}.chip.active{background:var(--ink);color:var(--bg);border-color:var(--ink)}.status-chip{border-radius:var(--r-pill);letter-spacing:.03em;text-transform:uppercase;align-items:center;gap:.35rem;padding:.3rem .75rem;font-size:.78rem;font-weight:700;display:inline-flex}.status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.status-queued{color:#4338ca;background:#eef2ff}.status-queued .status-dot{background:#6366f1}.status-draft{color:#374151;background:#f3f4f6}.status-draft .status-dot{background:#9ca3af}.status-processing{color:#0e7490;background:#ecfeff;animation:2s ease-in-out infinite pulse-bg}.status-processing .status-dot{background:#22d3ee;animation:1.5s ease-in-out infinite pulse-dot}.status-completed{color:#065f46;background:#ecfdf5}.status-completed .status-dot{background:#10b981}.status-failed{background:var(--error-soft);color:var(--error)}.status-failed .status-dot{background:var(--error)}.field{flex-direction:column;gap:.4rem;display:flex}.field label{color:var(--ink-2);font-size:.85rem;font-weight:600}.field input[type=text],.field input[type=number],.field input[type=email],.field textarea,.field select{border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--bg-elevated);color:var(--ink);font-family:var(--font-ui);outline:none;min-height:44px;padding:.65rem .85rem;font-size:.92rem;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.hint{color:var(--muted);font-size:.8rem}.error-text{color:var(--error);font-size:.88rem;font-weight:600}.warn-text{color:var(--warn);font-size:.88rem;font-weight:600}.drag-zone{border:2px dashed var(--line-strong);border-radius:var(--r-lg);text-align:center;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:220px;padding:3rem 1.5rem;transition:border-color .15s,background .15s,transform .2s;display:flex;position:relative;overflow:hidden}.drag-zone:hover,.drag-zone.drag-over{border-color:var(--accent);background:var(--accent-soft);transform:scale(1.01)}.drag-zone-icon{opacity:.6;font-size:3rem;line-height:1;transition:transform .2s}.drag-zone:hover .drag-zone-icon,.drag-zone.drag-over .drag-zone-icon{opacity:1;transform:scale(1.15)translateY(-4px)}.drag-zone-title{color:var(--ink-2);font-size:1rem;font-weight:600}.drag-zone-sub{color:var(--muted);font-size:.85rem}.photo-preview-grid{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:.6rem;margin-top:1rem;display:grid}.photo-preview-item{aspect-ratio:1;border-radius:var(--r-sm);background:var(--bg-subtle);position:relative;overflow:hidden}.photo-preview-img{object-fit:cover;width:100%;height:100%}.photo-preview-ring{color:#fff;background:#00000059;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;display:flex;position:absolute;inset:0}.photo-preview-ring.done{background:#10b981bf}.photo-preview-ring.failed{background:#d93025c7}.photo-preview-remove{color:#fff;cursor:pointer;opacity:0;width:20px;height:20px;min-height:unset;background:#0000008c;border:none;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:.7rem;transition:opacity .12s;display:flex;position:absolute;top:3px;right:3px}.photo-preview-item:hover .photo-preview-remove{opacity:1}.accordion{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.accordion-trigger{background:var(--bg-subtle);width:100%;font-family:var(--font-ui);color:var(--ink-2);cursor:pointer;border:none;justify-content:space-between;align-items:center;min-height:44px;padding:.75rem 1rem;font-size:.88rem;font-weight:600;transition:background .12s;display:flex}.accordion-trigger:hover{background:var(--bg-elevated)}.accordion-chevron{color:var(--muted);font-size:.8rem;transition:transform .25s cubic-bezier(.4,0,.2,1)}.accordion-chevron.open{transform:rotate(180deg)}.accordion-body{opacity:0;max-height:0;transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .3s;overflow:hidden}.accordion-body.open{opacity:1;max-height:600px}.accordion-body-inner{gap:.85rem;padding:1rem;display:grid}.grid-two{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.grid-three{grid-template-columns:1fr 1fr 1fr;gap:.75rem;display:grid}.stepper{align-items:center;gap:0;margin:1.25rem 0;display:flex}.stepper-step{flex-direction:column;flex:1;align-items:center;gap:.35rem;display:flex;position:relative}.stepper-step:not(:last-child):after{content:"";background:var(--line-strong);height:2px;transition:background .4s;position:absolute;top:15px;left:calc(50% + 15px);right:calc(15px - 50%)}.stepper-step.done:not(:last-child):after,.stepper-step.active:not(:last-child):after{background:var(--accent)}.stepper-circle{border:2px solid var(--line-strong);background:var(--bg-elevated);width:30px;height:30px;color:var(--muted);z-index:1;border-radius:50%;justify-content:center;align-items:center;font-size:.72rem;font-weight:700;transition:all .3s;display:flex}.stepper-step.done .stepper-circle{background:var(--accent);border-color:var(--accent);color:#fff}.stepper-step.active .stepper-circle{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft);animation:1.5s ease-in-out infinite pulse-ring}.stepper-label{color:var(--muted);text-align:center;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem;font-weight:600}.stepper-step.done .stepper-label,.stepper-step.active .stepper-label{color:var(--accent)}.stats-row{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.65rem;margin:1rem 0;display:grid}.stat-card{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--r-md);text-align:center;border:1px solid var(--glass-border);box-shadow:var(--glow-shadow);padding:.85rem .65rem}.stat-card-value{font-family:var(--font-display);color:var(--ink);font-size:2rem;font-weight:700;line-height:1}.stat-card-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-top:.3rem;font-size:.72rem;font-weight:600}.people-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin-top:1rem;display:grid}.person-card{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--r-lg);border:1px solid var(--glass-border);box-shadow:var(--glow-shadow);transition:transform .18s,box-shadow .18s;overflow:hidden}.person-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.person-card-preview{aspect-ratio:1;object-fit:cover;background:var(--bg-subtle);width:100%;display:block}.person-card-preview-placeholder{aspect-ratio:1;background:linear-gradient(135deg,var(--bg-subtle),var(--accent-soft));justify-content:center;align-items:center;width:100%;font-size:3rem;display:flex}.person-card-body{padding:.75rem}.person-name-edit{width:100%;font-family:var(--font-ui);color:var(--ink);background:0 0;border:none;border-bottom:1.5px solid #0000;outline:none;padding:.2rem 0;font-size:.95rem;font-weight:700;transition:border-color .15s}.person-name-edit:focus{border-bottom-color:var(--accent)}.person-card-meta{color:var(--muted);margin-top:.2rem;font-size:.78rem}.person-card-badge{color:var(--muted);background:var(--bg-subtle);border-radius:var(--r-pill);align-items:center;gap:.25rem;margin-top:.35rem;padding:.15rem .5rem;font-size:.72rem;font-weight:700;display:inline-flex}.face-thumb-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:.35rem;margin-top:.65rem;display:grid}@media (min-width:480px){.face-thumb-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.face-thumb-wrap{aspect-ratio:1;border-radius:var(--r-sm);cursor:pointer;background:var(--bg-subtle);transition:transform .14s,box-shadow .14s;position:relative;overflow:hidden}.face-thumb-wrap:hover{box-shadow:var(--shadow-md);transform:scale(1.05)}.face-thumb-wrap.selected{outline:3px solid var(--accent);outline-offset:1px;z-index:2;transform:scale(1.08)}.face-thumb-img{object-fit:cover;width:100%;height:100%}.face-thumb-check{color:#fff;opacity:0;background:#5b4eff59;justify-content:center;align-items:center;font-size:1.1rem;transition:opacity .15s;display:flex;position:absolute;inset:0}.face-thumb-wrap.selected .face-thumb-check{opacity:1}.face-thumb-score{color:#fff;text-align:center;opacity:0;background:#0000008c;padding:1px 0;font-size:.6rem;font-weight:700;transition:opacity .15s;position:absolute;bottom:0;left:0;right:0}.face-thumb-wrap:hover .face-thumb-score{opacity:1}.lightbox-overlay{z-index:100;justify-content:center;align-items:center;animation:.2s fade-in;display:flex;position:fixed;inset:0}.lightbox-backdrop{cursor:pointer;background:#000000eb;border:none;width:100%;padding:0;position:absolute;inset:0}.lightbox-shell{background:var(--glass-bg-card);max-width:90vw;max-height:90vh;-webkit-backdrop-filter:blur(var(--glass-blur-lg));border:1px solid var(--glass-border);border-radius:var(--r-lg);box-shadow:0 32px 80px #00000080,var(--glow-shadow);position:relative;overflow:hidden}.lightbox-img{border-radius:var(--r-lg);object-fit:contain;width:100%;max-height:70vh;box-shadow:var(--shadow-xl)}.lightbox-header{justify-content:space-between;align-items:center;display:flex;position:absolute;top:-3rem;left:0;right:0}.lightbox-badge{color:#fff;border-radius:var(--r-pill);background:#5b4effd9;padding:.25rem .65rem;font-size:.78rem;font-weight:700}.lightbox-close{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:background .12s;display:flex}.lightbox-close:hover{background:#ffffff40}.lightbox-nav{color:#fff;cursor:pointer;background:#ffffff1f;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.2rem;transition:background .12s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lightbox-nav:hover{background:#ffffff38}.lightbox-nav.prev{left:-54px}.lightbox-nav.next{right:-54px}.lightbox-nav:disabled{opacity:.25;cursor:default}.retag-bar{bottom:calc(72px + env(safe-area-inset-bottom) + .75rem);z-index:60;border-radius:var(--r-xl);background:var(--glass-bg-card);min-width:min(94vw,480px);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:0 10px 40px #0000004d,var(--glow-shadow);padding:.9rem 1.1rem;animation:.25s cubic-bezier(.34,1.56,.64,1) slide-up;position:fixed;left:50%;transform:translate(-50%)}.retag-bar-title{color:var(--ink);margin-bottom:.65rem;font-size:.85rem;font-weight:700}.retag-bar-options{flex-wrap:wrap;gap:.45rem;display:flex}.sheet-overlay{z-index:80;animation:.2s fade-in;position:fixed;inset:0}.sheet-backdrop{cursor:pointer;background:#00000073;border:none;width:100%;padding:0;position:absolute;inset:0}.sheet-panel{padding:.5rem 1.25rem 1.5rem;padding-bottom:calc(1.5rem + env(safe-area-inset-bottom));border-radius:28px 28px 0 0;animation:.32s cubic-bezier(.34,1.2,.64,1) slide-up;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 40px #0003}.sheet-drag-handle{background:var(--line-strong);border-radius:2px;width:40px;height:4px;margin:.5rem auto 1rem}.sheet-title{margin-bottom:.85rem;font-size:1.05rem;font-weight:700}.toast{bottom:calc(76px + env(safe-area-inset-bottom) + 1rem);z-index:90;-webkit-backdrop-filter:blur(var(--glass-blur));color:#000;border-radius:var(--r-pill);box-shadow:0 8px 32px #00ff414d,var(--glow-shadow);white-space:nowrap;background:#00ff41f0;padding:.75rem 1.5rem;font-size:.88rem;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) slide-up;position:fixed;left:50%;transform:translate(-50%)}.skeleton{background:linear-gradient(90deg,var(--bg-subtle)25%,var(--bg-elevated)50%,var(--bg-subtle)75%);border-radius:var(--r-sm);background-size:400% 100%;animation:1.6s ease-in-out infinite shimmer}.photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;display:grid}@media (min-width:480px){.photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.photo-thumb-cell{aspect-ratio:1;background:var(--bg-subtle);overflow:hidden}.photo-thumb-img{object-fit:cover;width:100%;height:100%;transition:transform .16s}.photo-thumb-cell:hover .photo-thumb-img{transform:scale(1.04)}.albums-section-title{color:var(--ink);margin-bottom:.75rem;font-size:1.05rem;font-weight:700}.albums-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem;display:grid}.album-card{border-radius:var(--r-md);background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);box-shadow:var(--glow-shadow);transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}.album-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.album-cover{aspect-ratio:1;object-fit:cover;background:var(--bg-subtle);width:100%;display:block}.album-cover-placeholder{aspect-ratio:1;background:linear-gradient(135deg,var(--bg-subtle)0%,var(--accent-soft)100%);justify-content:center;align-items:center;width:100%;font-size:2.5rem;display:flex}.album-info{padding:.55rem .65rem}.album-name{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;font-weight:700;overflow:hidden}.album-count{color:var(--muted);margin-top:.1rem;font-size:.75rem}.search-chips-row{-ms-overflow-style:none;scrollbar-width:none;gap:.45rem;padding-bottom:.35rem;display:flex;overflow-x:auto}.search-chips-row::-webkit-scrollbar{display:none}.recent-search-item{border-bottom:1px solid var(--line);cursor:pointer;color:var(--ink-2);align-items:center;gap:.65rem;padding:.7rem 0;font-size:.9rem;transition:color .12s;display:flex}.recent-search-item:hover{color:var(--accent)}.recent-search-item:last-child{border-bottom:none}.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:320px;padding:3rem 1.5rem;display:flex}.empty-state-icon{opacity:.55;font-size:4rem;line-height:1}.empty-state-title{color:var(--ink);font-size:1.05rem;font-weight:700}.empty-state-sub{color:var(--muted);max-width:280px;font-size:.88rem;line-height:1.55}.list{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.row{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:.75rem;padding:.65rem .85rem;display:grid}.row:first-child{border-top:none}.import-grid{grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem;display:grid}.import-card{border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-elevated);cursor:pointer;color:var(--ink-2);min-height:80px;font-size:.85rem;font-weight:600;font-family:var(--font-ui);flex-direction:column;align-items:center;gap:.4rem;padding:1rem;transition:border-color .15s,background .15s,color .15s;display:flex}.import-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.import-card-icon{font-size:1.6rem;line-height:1}.divider{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;align-items:center;gap:.75rem;margin:1rem 0;font-size:.78rem;font-weight:600;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-up{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes pulse-bg{0%,to{opacity:1}50%{opacity:.75}}@keyframes pulse-dot{0%,to{transform:scale(1)}50%{transform:scale(1.4)}}@keyframes pulse-ring{0%,to{box-shadow:0 0 0 4px var(--accent-soft)}50%{box-shadow:0 0 0 8px var(--accent-soft)}}.settings-group{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);border-radius:var(--r-md);box-shadow:var(--glow-shadow);margin-bottom:1.5rem;overflow:hidden}.setting-row{border:none;border-top:1px solid var(--line);width:100%;font-family:var(--font-ui);color:var(--ink);text-align:left;cursor:pointer;background:0 0;align-items:center;gap:.75rem;min-height:48px;padding:.85rem 1rem;font-size:.9rem;transition:background .12s;display:flex}.setting-row:first-child{border-top:none}.setting-row:hover{background:var(--bg-subtle)}.setting-row-icon{color:var(--muted);flex-shrink:0;display:flex}.setting-row-label{flex:1;font-weight:500}.setting-row-right{flex-shrink:0;align-items:center;display:flex}.setting-value{color:var(--muted);margin-right:4px;font-size:.85rem;font-weight:500}.settings-toggle{cursor:pointer;min-height:unset;background:0 0;border:none;padding:0}.settings-toggle-track{background:var(--line-strong);border-radius:13px;width:44px;height:26px;transition:background .2s;display:block;position:relative}.settings-toggle-track.on{background:var(--accent)}.settings-toggle-thumb{background:#fff;border-radius:50%;width:22px;height:22px;transition:transform .2s cubic-bezier(.4,0,.2,1);position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #00000026}.settings-toggle-track.on .settings-toggle-thumb{transform:translate(18px)}.settings-shell{max-width:1240px}.settings-layout{grid-template-columns:minmax(0,1fr);align-items:start;gap:1.5rem;display:grid}.settings-main-column,.settings-side-column{flex-direction:column;gap:1.5rem;display:flex}.settings-account-panel{align-items:center;gap:1rem;padding:1.5rem;display:flex}.settings-avatar-wrap{border-radius:var(--r-pill);background:linear-gradient(135deg,var(--accent),var(--accent-2));flex-shrink:0;justify-content:center;align-items:center;width:72px;height:72px;display:flex;position:relative;overflow:hidden}.settings-avatar-edit{border:1px solid var(--glass-border);background:var(--glass-bg-heavy);width:28px;height:28px;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;min-height:0;padding:0;display:inline-flex;position:absolute;bottom:-4px;right:-4px}.settings-storage-chips{grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;display:grid}.settings-storage-chip{background:var(--bg-elevated);border:1px solid var(--line);border-radius:var(--r-sm);flex-direction:column;gap:.3rem;padding:.8rem .9rem;display:flex}.settings-storage-chip-label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:.72rem;font-weight:700}.settings-storage-chip-value{color:var(--ink);font-size:.9rem;font-weight:700}@media (min-width:1024px){.settings-layout{grid-template-columns:minmax(0,1fr) 320px;gap:2rem}.settings-side-column{position:sticky;top:2rem}}@media (max-width:640px){.settings-storage-chips{grid-template-columns:1fr}}.search-page-bar{border-radius:var(--r-pill);border:1px solid var(--glass-border);background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--glow-shadow);align-items:center;gap:.5rem;padding:.65rem .9rem;transition:box-shadow .15s,border-color .15s;display:flex}.search-page-bar:focus-within{box-shadow:0 0 0 3px var(--accent-soft);border-color:var(--accent)}.search-page-bar input{color:var(--ink);font-family:var(--font-ui);background:0 0;border:none;outline:none;flex:1;min-width:0;font-size:.92rem}.search-page-bar input::placeholder{color:var(--muted)}.search-page-bar-icon{color:var(--muted);flex-shrink:0}.search-section{margin-bottom:1.5rem}.search-chips-row{flex-wrap:wrap;gap:.45rem;display:flex}.recent-search-item{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:.65rem;padding:.65rem .85rem;font-size:.88rem;transition:background .12s;display:flex}.recent-search-item:hover{background:var(--bg-subtle)}.install-banner{bottom:calc(80px + env(safe-area-inset-bottom));z-index:60;border-radius:var(--r-lg);box-shadow:0 8px 32px #0003,var(--glow-shadow);background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border:1px solid var(--glass-border);padding:.85rem 1rem;animation:.3s cubic-bezier(.4,0,.2,1) slide-up-sheet;position:fixed;left:12px;right:12px}.install-banner-content{align-items:center;gap:.75rem;display:flex}.install-banner-icon{border-radius:var(--r-md);background:var(--accent-soft);width:40px;height:40px;color:var(--accent);flex-shrink:0;justify-content:center;align-items:center;display:flex}.install-banner-text{flex:1;min-width:0}.install-banner-title{margin-bottom:.1rem;font-size:.88rem;font-weight:700}.install-banner-sub{color:var(--muted);font-size:.78rem;line-height:1.4}.install-banner-actions{flex-shrink:0;align-items:center;gap:.35rem;display:flex}.press-scale{transition:transform .15s cubic-bezier(.4,0,.2,1)}.press-scale:active{transform:scale(.96)}.panel{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur));border-radius:var(--r-md);border:1px solid var(--glass-border);box-shadow:0 1px 3px #0000000a,0 4px 12px #00000008,inset 0 1px 0 #ffffff80,var(--glow-shadow);padding:1rem}[data-theme=dark] .panel{box-shadow:0 1px 3px #0003,0 4px 12px #00000026,inset 0 1px 0 #ffffff0a,var(--glow-shadow)}.theme-selector{gap:.5rem;display:flex}.theme-selector-btn{border-radius:var(--r-sm);border:1.5px solid var(--line);background:var(--bg-subtle);font-family:var(--font-ui);color:var(--muted);cursor:pointer;flex:1;min-height:40px;padding:.55rem .5rem;font-size:.82rem;font-weight:600;transition:all .15s}.theme-selector-btn.active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.bottom-sheet-overlay{z-index:200;align-items:flex-end;display:flex;position:fixed;inset:0}.bottom-sheet-scrim{background:#0006;animation:.2s fadeIn;position:absolute;inset:0}.bottom-sheet-panel{border-radius:var(--r-lg)var(--r-lg)0 0;width:100%;max-height:85vh;padding:.5rem 1rem 1.25rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom));background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-top:1px solid var(--glass-border);box-shadow:0 -10px 40px #0006,var(--glow-shadow);animation:.3s cubic-bezier(.4,0,.2,1) slide-up-sheet;position:relative;overflow-y:auto}.bottom-sheet-handle{background:var(--muted-2);opacity:.5;border-radius:2px;width:36px;height:4px;margin:.5rem auto .75rem}.bottom-sheet-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.bottom-sheet-title{font-family:var(--font-display);font-size:1.1rem;font-style:italic;font-weight:700}.bottom-sheet-content{flex-direction:column;gap:.25rem;display:flex}.sidebar{width:var(--sidebar-w);background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border-right:1px solid var(--glass-border);z-index:60;flex-direction:column;padding:1.5rem 1rem;display:none;position:fixed;top:0;bottom:0;left:0}@media (min-width:1024px){.sidebar{box-shadow:4px 0 15px #0000001a,var(--glow-shadow);display:flex}}.sidebar-logo{align-items:center;gap:.75rem;margin-bottom:2.5rem;padding:0 .5rem;display:flex}.sidebar-nav{flex-direction:column;gap:.5rem;display:flex}.sidebar-item{border-radius:var(--r-md);color:var(--muted);cursor:pointer;align-items:center;gap:.85rem;padding:.75rem 1rem;font-size:.9rem;font-weight:600;transition:all .15s;display:flex}.sidebar-item:hover{background:var(--bg-subtle);color:var(--ink-2)}.sidebar-item.active{background:var(--accent-soft);color:var(--accent)}.responsive-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}@media (min-width:640px){.responsive-grid{grid-template-columns:repeat(4,1fr);gap:4px}}@media (min-width:1024px){.responsive-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}}.photo-viewer-container{flex-direction:column;flex:1;width:100%;height:100%;display:flex}.photo-viewer-main{background:#000;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}@media (min-width:1024px){.photo-viewer-container{flex-direction:row}.photo-viewer-aside{background:var(--bg-elevated);border-left:1px solid var(--line);flex-direction:column;gap:2rem;width:380px;padding:2rem;display:flex;overflow-y:auto}}.desktop-only{display:none!important}@media (min-width:1024px){.desktop-only{display:flex!important}.mobile-only{display:none!important}}.no-scroll{overflow:hidden}.btn-icon{border-radius:var(--r-pill);flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;min-height:44px;padding:0;font-size:0;display:inline-flex}.btn-danger{background:var(--error);color:#fff;border-radius:var(--r-md);border:none;justify-content:center;align-items:center;gap:.4rem;min-height:48px;padding:.75rem 1.25rem;font-size:.9rem;font-weight:700;transition:opacity .15s;display:inline-flex}.btn-danger:hover{opacity:.9}.page-content.no-header{padding-top:0}@media (max-width:480px){.grid-two,.grid-three{grid-template-columns:1fr}.people-grid,.albums-grid,.stats-row{grid-template-columns:1fr 1fr}.lightbox-nav.prev{left:-48px}.lightbox-nav.next{right:-48px}}@media (min-width:768px){.page-shell{padding:2rem 1.5rem 3rem}.people-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}}.dropdown-menu{background:var(--glass-bg-card);-webkit-backdrop-filter:blur(var(--glass-blur-lg));border:1px solid var(--glass-border);border-radius:var(--r-md);min-width:160px;box-shadow:0 10px 25px #0000004d,var(--glow-shadow);z-index:50;padding:.5rem;animation:.15s fade-in;position:absolute}.menu-item{border-radius:var(--r-sm);width:100%;color:var(--ink-2);cursor:pointer;background:0 0;border:none;align-items:center;gap:.75rem;padding:.65rem .85rem;font-size:.9rem;font-weight:600;transition:all .12s;display:flex}.menu-item:hover{background:var(--accent-soft);color:var(--accent)}.menu-item{width:100%;color:var(--ink);border-radius:var(--r-sm);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.65rem;padding:.65rem .75rem;font-size:.82rem;font-weight:500;transition:background .15s;display:flex}.menu-item:hover{background:var(--bg-subtle)}.album-picker-item{border:1px solid var(--line);background:var(--bg-elevated);border-radius:var(--r-md);width:100%;color:var(--ink);cursor:pointer;text-align:left;align-items:center;gap:.75rem;padding:1rem;font-size:.95rem;font-weight:600;transition:all .15s;display:flex}.album-picker-item:hover:not(:disabled){background:var(--bg-subtle);border-color:var(--accent)}.album-picker-item:disabled{opacity:.6;cursor:not-allowed}.nav-arrow-btn{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;cursor:pointer;z-index:30;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;padding:0;transition:all .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.nav-arrow-btn:hover{background:#fff3;transform:translateY(-50%)scale(1.1)}.nav-arrow-btn:active{transform:translateY(-50%)scale(.95)}.shimmer{background:linear-gradient(90deg,#fff0 0%,#fff3 50%,#fff0 100%) 0 0/200% 100%;animation:1.5s infinite shimmer}.photo-viewer-container{height:100%;display:flex;overflow:hidden}.photo-viewer-main{background:#000;flex:1;justify-content:center;align-items:center;display:flex;position:relative}.photo-viewer-aside{background:var(--bg-elevated);border-left:1px solid var(--line);width:360px;color:var(--ink);padding:2rem;overflow-y:auto}@media (max-width:1023px){.desktop-only{display:none!important}}@media (min-width:1024px){.mobile-only{display:none!important}}
