@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:IBM Plex Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plus-jakarta-sans-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/plus-jakarta-sans-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plus-jakarta-sans-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plus-jakarta-sans-700-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800-latin-ext.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Plus Jakarta Sans;font-style:normal;font-weight:800;font-display:swap;src:url(/fonts/plus-jakarta-sans-800-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*{box-sizing:border-box}html,body{margin:0;height:100%}#root{height:100%}body{font-family:Plus Jakarta Sans,system-ui,sans-serif;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;letter-spacing:-.006em}.ant-typography{color:inherit}::selection{background:color-mix(in oklch,var(--accent) 24%,transparent)}*::-webkit-scrollbar{width:11px;height:11px}*::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px;border:3px solid transparent;background-clip:content-box}*::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}:root{--font-ui: "Plus Jakarta Sans", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace;--r-xs: 7px;--r-sm: 10px;--r: 14px;--r-lg: 18px;--r-xl: 24px;--r-pill: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px}[data-theme=light]{color-scheme:light;--bg: oklch(.974 .005 278);--bg-2: oklch(.962 .007 278);--surface: oklch(1 0 0);--surface-2: oklch(.972 .006 278);--surface-3: oklch(.955 .008 278);--surface-inset: oklch(.966 .007 278);--border: oklch(.922 .006 278);--border-soft: oklch(.945 .005 278);--border-strong: oklch(.86 .012 278);--text: oklch(.26 .022 280);--text-dim: oklch(.49 .022 280);--text-faint: oklch(.65 .016 280);--accent: oklch(.55 .2 278);--accent-2: oklch(.61 .17 300);--accent-press: oklch(.49 .2 278);--accent-contrast: oklch(.99 .004 278);--accent-soft: oklch(.955 .028 282);--accent-line: oklch(.9 .04 282);--shadow-xs: 0 1px 2px oklch(.45 .04 280 / .05);--shadow-sm: 0 1px 2px oklch(.45 .04 280 / .06), 0 2px 6px -2px oklch(.45 .04 280 / .07);--shadow-md: 0 2px 4px oklch(.45 .04 280 / .05), 0 10px 24px -8px oklch(.45 .05 280 / .14);--shadow-lg: 0 4px 8px oklch(.4 .04 280 / .06), 0 24px 48px -16px oklch(.4 .06 280 / .22);--glow: 0 0 0 4px oklch(.55 .2 278 / .12)}[data-theme=dark]{color-scheme:dark;--bg: oklch(.175 .018 280);--bg-2: oklch(.155 .016 280);--surface: oklch(.222 .021 280);--surface-2: oklch(.262 .023 280);--surface-3: oklch(.295 .024 280);--surface-inset: oklch(.188 .018 280);--border: oklch(.31 .022 280);--border-soft: oklch(.27 .02 280);--border-strong: oklch(.4 .026 280);--text: oklch(.965 .008 280);--text-dim: oklch(.75 .016 280);--text-faint: oklch(.58 .02 280);--accent: oklch(.71 .16 282);--accent-2: oklch(.77 .14 302);--accent-press: oklch(.66 .17 282);--accent-contrast: oklch(.15 .03 282);--accent-soft: oklch(.3 .06 284);--accent-line: oklch(.4 .07 284);--shadow-xs: 0 1px 2px oklch(.08 .02 280 / .4);--shadow-sm: 0 1px 2px oklch(.08 .02 280 / .4), 0 2px 8px -2px oklch(.06 .02 280 / .5);--shadow-md: 0 2px 6px oklch(.06 .02 280 / .45), 0 12px 28px -10px oklch(.04 .02 280 / .6);--shadow-lg: 0 8px 16px oklch(.04 .02 280 / .5), 0 28px 56px -18px oklch(.02 .02 280 / .75);--glow: 0 0 0 4px oklch(.71 .16 282 / .18)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;transition-duration:.001ms!important}}.shell{height:100vh;min-height:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}.ant-app{height:100%;min-height:0}.topbar{min-height:56px;flex:0 0 auto;display:flex;align-items:center;flex-wrap:wrap;row-gap:6px;gap:12px;padding:6px 16px 6px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.brand-badge{width:30px;height:30px;border-radius:9px;flex:0 0 auto;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-2));color:var(--accent-contrast);font-weight:800;font-size:13px;box-shadow:var(--shadow-sm),inset 0 1px #ffffff40;letter-spacing:-.02em}.brand-meta{display:flex;flex-direction:column;line-height:1.2}.brand-name{font-size:14px;font-weight:700;letter-spacing:-.01em}.brand-tag{font-size:11px;color:var(--text-faint);font-family:var(--font-mono)}.topbar__spacer{flex:1 1 0;min-width:0}.topbar__search{flex:0 1 220px;min-width:170px;max-width:34vw}.shell__body{flex:1;min-height:0;display:flex}.shell__main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column}.sidebar{flex:0 0 232px;display:flex;flex-direction:column;gap:14px;overflow-y:auto;padding:12px 10px 24px 8px;background:var(--bg)}.sidebar__group{display:flex;flex-direction:column;gap:2px}.sidebar__title{padding:6px 14px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint)}.sidebar__item{display:flex;align-items:center;gap:14px;width:100%;height:40px;padding:0 14px;border:none;border-radius:var(--r-pill);background:transparent;color:var(--text);font:inherit;font-size:14px;text-align:left;cursor:pointer;transition:background .12s}.sidebar__item:hover{background:var(--surface-2)}.sidebar__item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.sidebar__item[aria-current=page]{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar__icon{display:grid;place-items:center;width:20px;font-size:18px}.sidebar__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar__badge{padding:1px 8px;border-radius:var(--r-pill);background:var(--surface-3);color:var(--text-dim);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums}.sidebar-drawer .ant-drawer-body{padding:0;background:var(--bg)}.sidebar-drawer .sidebar{min-height:100%}@media(max-width:600px){.topbar{gap:4px;padding-left:8px;padding-right:8px}.topbar .brand-meta,.topbar .brand-badge{display:none}.topbar .topbar__search{order:10;flex:1 1 100%;max-width:none}}.surface{flex:1;min-height:0;overflow-y:auto;scrollbar-gutter:stable;background:var(--bg)}.surface__inner{max-width:1180px;margin:0 auto;padding:28px 32px 48px}.muted{color:var(--text-faint)}.mono{font-family:var(--font-mono);letter-spacing:0}.login-wrap{flex:1;min-height:0;display:grid;place-items:center;padding:2rem 1rem;background:var(--bg)}.login-card{width:100%;max-width:384px}.login-brand{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,var(--accent),var(--accent-2));color:var(--accent-contrast);font-weight:800;font-size:20px;box-shadow:var(--shadow-sm),inset 0 1px #ffffff40;letter-spacing:-.02em}.timeline-scroll{padding:16px}.timeline-scroll--sectioned{padding-top:0}.timeline-canvas{position:relative;margin:0 auto}.timeline-pinned-header{position:sticky;top:0;z-index:3;margin:0 auto -44px;height:44px;display:flex;align-items:flex-end;padding-bottom:10px;font-weight:600;font-size:14px;letter-spacing:-.01em;background:var(--bg);pointer-events:none}.timeline-year-rail{position:sticky;top:0;height:0;z-index:4;pointer-events:none}.timeline-year-rail__mark{position:absolute;right:0;transform:translateY(-50%);pointer-events:auto;border:none;background:transparent;color:var(--text-faint);font-size:11px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.01em;padding:2px 7px;border-radius:7px;cursor:pointer;transition:color .12s,background .12s}.timeline-year-rail__mark:hover{color:var(--text);background:var(--surface-2)}.timeline-year-rail__mark[data-current]{color:var(--accent)}.timeline-year-rail__mark[data-dot]{width:14px;height:14px;padding:0;margin-right:13px;border-radius:50%}.timeline-year-rail__mark[data-dot]:before{content:"";display:block;width:4px;height:4px;margin:auto;border-radius:50%;background:currentColor}.timeline-header{margin:0 auto}.archive-head{padding:14px 0 2px}.archive-head__title{margin:0;font-size:18px;font-weight:700;letter-spacing:-.015em}.archive-note{margin:2px 0 0;color:var(--text-dim);font-size:13px}.memories{padding:14px 0 6px}.memories__title{margin:0 0 10px;font-size:14px;font-weight:600;letter-spacing:-.01em}.memories__row{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:8px;scrollbar-width:thin}.memory-card{position:relative;flex:0 0 auto;width:156px;height:208px;border-radius:var(--r);overflow:hidden;background:var(--surface-2);scroll-snap-align:start;box-shadow:var(--shadow-sm)}.memory-card__open{all:unset;position:absolute;inset:0;cursor:pointer;border-radius:inherit}.memory-card__open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.memory-card__open img{width:100%;height:100%;object-fit:cover;display:block;user-select:none;transition:transform .35s cubic-bezier(.2,0,0,1)}.memory-card:hover .memory-card__open img{transform:scale(1.04)}.memory-card__ph{position:absolute;inset:0;background:linear-gradient(100deg,var(--surface-2) 30%,var(--surface-3) 50%,var(--surface-2) 70%);background-size:200% 100%;animation:tile-shimmer 1.4s ease-in-out infinite}.memory-card__text{position:absolute;left:0;right:0;bottom:0;display:flex;flex-direction:column;gap:2px;padding:36px 12px 11px;color:#fff;background:linear-gradient(to top,#000000b8,#0000);text-shadow:0 1px 2px rgb(0 0 0 / .35)}.memory-card__title{font-size:15px;font-weight:700;letter-spacing:-.01em}.memory-card__sub{font-size:12px;line-height:1.3;opacity:.92}.memory-card__hide{position:absolute;top:6px;right:6px;width:26px;height:26px;display:grid;place-items:center;border:none;border-radius:50%;background:#00000080;color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:opacity .12s}.memory-card:hover .memory-card__hide,.memory-card:focus-within .memory-card__hide{opacity:1}.memory-card__hide:focus-visible{opacity:1;outline:2px solid var(--accent)}@media(hover:none){.memory-card__hide{opacity:1}}.memories__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(156px,1fr));gap:12px}.memories__grid .memory-card{width:auto;height:auto;aspect-ratio:3 / 4}.memories-page .memories{padding:0 0 24px}.memories-page__title{margin-bottom:18px}.memory-view{flex:1;min-height:0;display:flex;flex-direction:column}.memory-view__head{display:flex;align-items:center;flex-wrap:wrap;gap:12px;width:100%;max-width:1632px;margin:0 auto;padding:12px 16px 4px}.memory-view__titles{display:flex;flex-direction:column;flex:1;min-width:0}.memory-view__title{font-size:18px;font-weight:700;letter-spacing:-.015em}.memory-view__sub{color:var(--text-dim);font-size:13px}.memory-view__actions{display:flex;gap:8px}.zoom-control{display:inline-flex;align-items:center}.timeline-section-header{position:absolute;top:0;left:0;right:0;height:44px;display:flex;align-items:flex-end;padding-bottom:10px;font-weight:600;font-size:14px;letter-spacing:-.01em;will-change:transform}.tile{position:absolute;top:0;left:0;border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);will-change:transform}.tile img{width:100%;height:100%;object-fit:cover;display:block;user-select:none}.tile__ph{width:100%;height:100%;background:linear-gradient(100deg,var(--surface-2) 30%,var(--surface-3) 50%,var(--surface-2) 70%);background-size:200% 100%;animation:tile-shimmer 1.4s ease-in-out infinite}.tile__ph[data-failed]{animation:none;background:var(--surface-inset)}.tile__video{position:relative;width:100%;height:100%;background:linear-gradient(160deg,#56596f,#282a3a);color:#f3f5fc}.tile__video-tag{position:absolute;left:9px;bottom:7px;display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.06em;opacity:.8}.tile__doc{width:100%;height:100%;display:grid;place-content:center;gap:6px;background:var(--surface-inset);color:var(--text-dim)}.tile__doc-icon{font-size:30px}.tile__doc-ext{font-size:11px;font-weight:600;letter-spacing:.08em;text-align:center}@keyframes tile-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.center-note{min-height:240px;display:grid;place-content:center;justify-items:center;gap:10px;text-align:center;color:var(--text-dim)}.tile__trash{position:absolute;top:6px;right:6px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:12px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,background .12s ease}.tile:hover .tile__trash,.tile__trash:focus-visible{opacity:1}.tile__trash:hover{background:#d64545}.tile__remove{font-size:18px}.tile__remove:hover{background:#000c}.tile__check{position:absolute;top:6px;left:6px;font-size:22px;color:#ffffffd9;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));pointer-events:none;z-index:1}.tile__check[data-on]{color:var(--accent, #4c8dff)}.tile[data-selected] .tile__open{outline:3px solid var(--accent, #4c8dff);outline-offset:-3px;border-radius:8px}.select-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;padding:8px 12px;margin-bottom:var(--space-3);border-radius:10px;background:var(--surface-2, rgba(127, 127, 127, .12))}.select-bar__count{font-weight:600}.select-bar__actions{display:flex;gap:8px;flex-wrap:wrap}.tile__play{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:#ffffffeb;font-size:34px;text-shadow:0 1px 6px rgba(0,0,0,.55)}.tile__fav{position:absolute;top:6px;left:6px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:13px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s ease,color .12s ease}.tile:hover .tile__fav,.tile__fav:focus-visible,.tile__fav[data-on]{opacity:1}.tile__fav[data-on]{color:#ffcc40}.trash-panel__head{margin-bottom:12px}.dropzone-overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-6);background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(2px)}.dropzone-overlay__inner{display:grid;justify-items:center;gap:var(--space-2);width:min(560px,100%);padding:var(--space-8) var(--space-6);text-align:center;border:2px dashed var(--accent-line);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--glow)}.dropzone-overlay__icon{font-size:40px;color:var(--accent);margin-bottom:var(--space-1)}.upload-queue{position:fixed;right:var(--space-4);bottom:var(--space-4);z-index:40;width:min(340px,calc(100vw - 2 * var(--space-4)));border:1px solid var(--border);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow-lg);overflow:hidden}.upload-queue__head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-soft)}.upload-queue__list{max-height:260px;overflow-y:auto}.upload-item{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);font-size:13px}.upload-item+.upload-item{border-top:1px solid var(--surface-inset)}.upload-item__icon{display:inline-flex;color:var(--text-dim)}.upload-item[data-status=done] .upload-item__icon,.upload-item[data-status=duplicate] .upload-item__icon{color:var(--accent)}.upload-item[data-status=error] .upload-item__icon{color:#d64545}.upload-item__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text)}.upload-item__status{color:var(--text-faint);font-size:12px;white-space:nowrap}.upload-item[data-status=error] .upload-item__status{color:#d64545}.tile__open{display:block;width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer}.tile__open:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:var(--space-6);background:#000000db;backdrop-filter:blur(4px)}.lightbox__stage{display:grid;place-items:center;max-width:100%;max-height:100%}.lightbox__img{max-width:92vw;max-height:84vh;object-fit:contain;border-radius:var(--r-sm);box-shadow:0 24px 64px #0009}.zoomimg{display:grid;place-items:center;max-width:92vw;max-height:84vh;overflow:hidden;border-radius:var(--r-sm);box-shadow:0 24px 64px #0009;touch-action:none}.zoomimg img{display:block;max-width:92vw;max-height:84vh;object-fit:contain;transform-origin:center center;will-change:transform;user-select:none}.zoomimg[data-zoomed]{cursor:grab}.zoomimg[data-zoomed]:active{cursor:grabbing}.lightbox__note{display:inline-flex;align-items:center;gap:var(--space-2);color:#ffffffd1;font-size:15px}.lightbox__doc{display:grid;justify-items:center;gap:var(--space-3);color:#ffffffe6}.lightbox__doc-icon{font-size:56px}.lightbox__doc-ext{font-size:13px;font-weight:600;letter-spacing:.1em}.lightbox__download{color:var(--accent-2);text-decoration:underline}.lightbox__pdf{width:92vw;height:84vh;border:none;border-radius:var(--r-sm);background:#fff;box-shadow:0 24px 64px #0009}.lightbox__office{width:min(920px,92vw);height:84vh;border:none;border-radius:var(--r-sm);background:#fff;box-shadow:0 24px 64px #0009}.lightbox__audio{width:min(560px,88vw)}.lightbox__text{max-width:92vw;max-height:84vh;overflow:auto;margin:0;padding:var(--space-4);background:#0000008c;border-radius:var(--r-sm);box-shadow:0 24px 64px #0009;color:#ffffffeb;font-family:var(--font-mono, ui-monospace, monospace);font-size:13px;line-height:1.5;white-space:pre;text-align:left}.lightbox__caption{position:fixed;left:0;right:0;bottom:var(--space-4);display:flex;align-items:center;justify-content:center;gap:var(--space-3);color:#ffffffb8;font-size:13px;pointer-events:none}.lightbox__name{max-width:50vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox__dl{pointer-events:auto;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#ffffff1f;color:#fff;font-size:12px;cursor:pointer;transition:background .12s ease}.lightbox__dl:hover:not(:disabled){background:#ffffff3d}.lightbox__dl:disabled{cursor:default;opacity:.7}.lightbox__dl[aria-pressed=true]{background:#ffffff47;border-color:#ffffff73}.lightbox__dl--danger:hover:not(:disabled){background:#ff4d4fd9;border-color:#ff4d4fe6}.info-panel{position:fixed;top:0;right:0;bottom:0;width:min(340px,86vw);display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-5) var(--space-4);background:#141418eb;backdrop-filter:blur(10px);border-left:1px solid rgba(255,255,255,.12);color:#ffffffdb;overflow-y:auto;z-index:3}.info-panel__head{display:flex;align-items:center;justify-content:space-between}.info-panel__title{font-size:15px;font-weight:700}.info-panel__close{display:inline-flex;padding:4px;border:0;background:transparent;color:#ffffffb3;cursor:pointer;border-radius:6px}.info-panel__close:hover{background:#ffffff1f;color:#fff}.info-panel__name{font-size:13px;color:#fff9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.info-panel__note{display:flex;align-items:center;gap:8px;color:#fff9;font-size:13px;padding:var(--space-3) 0}.info-panel__note-input{width:100%;min-height:60px;resize:vertical;padding:8px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:#ffffff0f;color:#fff;font:inherit;font-size:13px;line-height:1.4}.info-panel__note-input::placeholder{color:#fff6}.info-panel__note-input:focus{outline:none;border-color:#fff6;background:#ffffff1a}.info-panel__list{display:flex;flex-direction:column;gap:var(--space-3);margin:var(--space-2) 0 0}.info-panel__row{display:flex;flex-direction:column;gap:2px}.info-panel__row dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#ffffff73}.info-panel__row dd{margin:0;font-size:14px;color:#fff}.info-panel__foot{margin-top:auto;font-size:11px;color:#fff6;line-height:1.4}.share-video{position:relative;pointer-events:auto}.share-video__btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#ffffff1f;color:#fff;font-size:12px;cursor:pointer;transition:background .12s ease}.share-video__btn:hover{background:#ffffff3d}.share-video__panel{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:200px;max-height:40vh;overflow-y:auto;padding:6px;border-radius:10px;background:#1c1c1e;border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 32px #00000080;display:flex;flex-direction:column;gap:2px}.share-video__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:#ffffffe6;font-size:13px;text-align:left;cursor:pointer}.share-video__row:hover:not(:disabled){background:#ffffff14}.share-video__row:disabled{cursor:default;opacity:.85}.share-video__row--muted{color:#ffffff8c;cursor:default}.share-video__who{font-variant-numeric:tabular-nums;font-family:var(--font-mono, monospace)}.share-video__cta{color:var(--accent, #4c8dff);font-weight:600}.share-video__ok{color:#34c759}.share-video__err{padding:6px 10px;color:#ff6b6b;font-size:12px}.share-link__opt{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:8px 10px;color:#ffffffe6;font-size:13px}.share-link__opt select{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.18);border-radius:6px;padding:3px 6px;font-size:12px}.share-link__opt--check{justify-content:flex-start;gap:8px;cursor:pointer}.share-link__result{display:flex;flex-direction:column;gap:8px;padding:8px 10px;max-width:320px}.share-link__url{font-family:var(--font-mono, monospace);font-size:11.5px;color:#ffffffeb;background:#00000059;border:1px solid rgba(255,255,255,.12);border-radius:6px;padding:7px 9px;word-break:break-all;max-height:5.5em;overflow-y:auto}.share-link__copy{align-self:flex-start;display:inline-flex;align-items:center;gap:6px;padding:5px 14px;border:none;border-radius:6px;background:var(--accent, #4c8dff);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.share-link__hint{margin:0;color:#ffffff8c;font-size:11.5px;line-height:1.45}.share-link__err{padding:6px 10px;color:#ff6b6b;font-size:12px}.album-add{position:relative;pointer-events:auto}.album-add__btn{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:#ffffff1f;color:#fff;font-size:12px;cursor:pointer;transition:background .12s ease}.album-add__btn:hover{background:#ffffff3d}.album-add__panel{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);min-width:220px;max-height:44vh;overflow-y:auto;padding:6px;border-radius:10px;background:#1c1c1e;border:1px solid rgba(255,255,255,.14);box-shadow:0 12px 32px #00000080;display:flex;flex-direction:column;gap:2px}.album-add__row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%;padding:8px 10px;border:none;border-radius:6px;background:transparent;color:#ffffffe6;font-size:13px;text-align:left;cursor:pointer}.album-add__row:hover{background:#ffffff14}.album-add__row--muted{color:#ffffff8c;cursor:default}.album-add__row--muted:hover{background:transparent}.album-add__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-add__cta{color:var(--accent, #4c8dff);font-weight:600}.album-add__on{color:#34c759}.album-add__new{color:#ffffffb8;border-top:1px solid rgba(255,255,255,.1);border-radius:0;margin-top:2px}.album-add__create{display:flex;gap:6px;padding:6px}.album-add__input{flex:1;min-width:0;padding:6px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:#fff;font-size:13px}.albums__new{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-4);flex-wrap:wrap}.albums__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-4)}.album-card{position:relative}.album-card__open{display:block;width:100%;padding:0;border:none;background:transparent;cursor:pointer;text-align:left}.album-card__cover{display:grid;place-items:center;aspect-ratio:4 / 3;border-radius:12px;overflow:hidden;background:var(--surface-2, rgba(127, 127, 127, .12));color:var(--text-secondary, rgba(127, 127, 127, .7));font-size:40px}.album-card__cover img{width:100%;height:100%;object-fit:cover}.album-card__name{margin-top:6px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.album-card__count{font-size:12px;color:var(--text-secondary, rgba(127, 127, 127, .7))}.album-card__act{position:absolute;top:6px;width:26px;height:26px;display:grid;place-items:center;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:13px;cursor:pointer;opacity:0;transition:opacity .12s ease}.album-card:hover .album-card__act,.album-card__act:focus-visible{opacity:1}.album-card__rename{right:38px}.album-card__delete{right:6px}.album-card__delete:hover{background:#d64545}.face-avatar{position:relative;flex:none;display:grid;place-items:center;overflow:hidden;border-radius:50%;background:var(--surface-2, rgba(127, 127, 127, .12));color:var(--text-secondary, rgba(127, 127, 127, .7));font-size:32px}.face-avatar--square{border-radius:12px}.face-avatar img{position:absolute;max-width:none;user-select:none}.people__optin{display:flex;gap:var(--space-4);align-items:flex-start;max-width:640px;margin-bottom:var(--space-5, 20px);padding:var(--space-4);border-radius:14px;background:var(--surface-2, rgba(127, 127, 127, .08))}.people__optin-icon{font-size:28px;color:var(--accent)}.people__optin-switch{display:inline-flex;gap:var(--space-2, 8px);align-items:center;cursor:pointer}.people__status{display:flex;flex-wrap:wrap;gap:var(--space-2, 8px);align-items:center;margin-bottom:var(--space-4)}.people__status .ant-progress{width:180px;margin:0}.people__alert{margin-bottom:var(--space-4)}.people__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:var(--space-4)}.people__grid--picker{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));max-height:60vh;overflow-y:auto}.people__more,.people__section{margin-top:var(--space-4)}.person-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-2, 8px) 0;border:none;border-radius:14px;background:transparent;color:inherit;font:inherit;cursor:pointer}.person-card:hover,.person-card:focus-visible{background:var(--surface-2, rgba(127, 127, 127, .08))}.person-card__name{max-width:100%;padding:0 6px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.person-card__name--unnamed{font-weight:500;color:var(--text-secondary, rgba(127, 127, 127, .7))}.person-card__count{font-size:12px;color:var(--text-secondary, rgba(127, 127, 127, .7))}.person__head{margin-bottom:var(--space-2, 8px)}.person__who{display:flex;gap:var(--space-4);align-items:center;margin-bottom:var(--space-4)}.person__id{display:flex;flex-direction:column;gap:2px;min-width:0}.person__name.ant-typography{margin:0}.person__add-name.ant-btn{padding:0;height:auto;font-size:20px;font-weight:600}.person__actions{display:flex;flex-wrap:wrap;gap:var(--space-2, 8px);margin-bottom:var(--space-4)}.person__fiche{display:flex;flex-direction:column;gap:var(--space-2, 8px);max-width:640px;margin-bottom:var(--space-4)}.person__links{display:flex;flex-wrap:wrap;gap:4px}.person__review{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-5, 20px)}.person__faces{display:flex;flex-wrap:wrap;gap:var(--space-3)}.person__face{position:relative}.person__face-act{position:absolute;top:4px;width:24px;height:24px;display:grid;place-items:center;border:none;border-radius:50%;background:#0000008c;color:#fff;font-size:12px;cursor:pointer;opacity:0;transition:opacity .12s ease}.person__face:hover .person__face-act,.person__face-act:focus-visible,.person__face-act[aria-pressed=true]{opacity:1}.person__face-remove{right:4px}.person__face-remove:hover{background:#d64545}.person__face-cover{left:4px}.person__suggest .person__face-act{opacity:1}.person__face-accept{left:4px}.person__face-via{display:block;max-width:96px;font-size:11px;line-height:1.2;text-align:center}.person__face-accept:hover{background:#2e9e5b}.person__face-cover[aria-pressed=true]{background:var(--accent)}.album-detail__head{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.albums--shared{margin-bottom:var(--space-5, 24px)}.albums__section{margin-bottom:var(--space-4)}.albums__note{display:block;font-size:12px}.album-card__invite{display:flex;gap:var(--space-2, 8px);margin-top:6px}.share-album{display:flex;flex-direction:column;gap:var(--space-4)}.share-album__section{display:flex;flex-direction:column;gap:var(--space-2, 8px)}.share-album__row{display:flex;align-items:center;gap:var(--space-2, 8px);flex-wrap:wrap}.share-album__spacer{flex:1}.share-album__who{display:inline-flex;align-items:center;gap:4px}.share-album__rename{border:none;background:transparent;color:var(--text-secondary, rgba(127, 127, 127, .7));cursor:pointer;padding:2px}.share-album__hint,.share-album__note{font-size:12px}.album-card__warn{font-size:12px;color:var(--ant-color-error, #d4380d)}.album-detail__alert{margin-bottom:var(--space-3, 12px)}.verify-words{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;margin:6px 0 0;padding-inline-start:1.6em;font-size:15px}.verify-words__alert{margin-bottom:var(--space-3, 12px)}.household{max-width:720px}.household__section{display:flex;flex-direction:column;gap:var(--space-2, 8px);margin-bottom:var(--space-5, 24px)}.household__hint{margin-bottom:0!important;font-size:13px}.household__words{max-width:520px;padding:12px 16px;border:1px solid var(--border, rgba(127, 127, 127, .25));border-radius:8px}.household__row{padding:6px 0;border-bottom:1px solid var(--border, rgba(127, 127, 127, .15))}.household__note{max-width:720px}.lightbox__close,.lightbox__nav{position:fixed;display:grid;place-items:center;width:44px;height:44px;border:none;border-radius:50%;background:#ffffff1f;color:#fff;font-size:18px;cursor:pointer;transition:background .12s ease}.lightbox__close:hover,.lightbox__nav:hover{background:#ffffff3d}.lightbox__close{top:var(--space-4);right:var(--space-4)}.lightbox__nav--prev{left:var(--space-4);top:50%;transform:translateY(-50%)}.lightbox__nav--next{right:var(--space-4);top:50%;transform:translateY(-50%)}.shared-videos{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.drive__bar{margin-bottom:16px}.drive__clip{margin-bottom:16px;padding:8px 12px;border-radius:10px;background:color-mix(in oklab,var(--accent, #5b37db) 12%,transparent)}.drive-folders{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;margin-bottom:20px}.drive-folder{display:flex;align-items:center;gap:4px;padding:8px 8px 8px 12px;border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:12px;background:var(--surface-2, rgba(128, 128, 128, .06))}.drive-folder__open{display:flex;align-items:center;gap:10px;flex:1;min-width:0;padding:0;border:none;background:none;cursor:pointer;color:inherit;text-align:left;font:inherit}.drive-folder__icon{font-size:22px;color:var(--accent, #9d80f2);flex-shrink:0}.drive-folder__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drive-files{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.drive-tile{display:flex;flex-direction:column;border:1px solid var(--border, rgba(128, 128, 128, .25));border-radius:12px;overflow:hidden;background:var(--surface-2, rgba(128, 128, 128, .06))}.drive-tile__open{aspect-ratio:1;padding:0;border:none;background:var(--surface-3, rgba(128, 128, 128, .12));cursor:pointer;overflow:hidden}.drive-tile__img{width:100%;height:100%;object-fit:cover;display:block}.drive-tile__placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:34px;color:var(--text-muted, rgba(128, 128, 128, .7))}.drive-tile__foot{display:flex;align-items:center;gap:4px;padding:6px 6px 6px 10px}.drive-tile__name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
