:root{font-family:Microsoft YaHei,PingFang SC,Segoe UI,sans-serif;color:#5f5552;background:#fbf8f4;--white: #fffdf9;--page-bg: radial-gradient(circle at bottom right, rgba(233, 185, 184, .18), transparent 34rem), linear-gradient(135deg, #fffdf9 0%, #fbf6f1 48%, #f7efe9 100%);--surface: rgba(255, 255, 255, .94);--surface-strong: #ffffff;--surface-soft: rgba(255, 255, 255, .82);--soft-accent: rgba(255, 239, 237, .92);--soft-accent-bottom: #fff6d9;--pink-deep: #c98486;--yellow-soft: #fff6d9;--line: #e4d5ce;--line-soft: rgba(234, 223, 218, .86);--button-line: #ead69c;--primary-bg: #f6ccca;--primary-hover-bg: #eab1b3;--primary-text: #ffffff;--primary-hover-text: #ffffff;--photo-shadow: 0 1px 2px rgba(92, 70, 58, .07);--photo-hover-shadow: 0 1px 5px rgba(172, 60, 0, .12);--scrollbar-track: rgba(255, 255, 255, .62);--scrollbar-thumb: rgba(201, 132, 134, .42);--scrollbar-thumb-hover: rgba(201, 132, 134, .68);--text: #5f5552;--heading: #4c4240;--muted: #9b8f8b;--shadow: 0 14px 34px rgba(150, 119, 98, .14);--top-bg: rgba(255, 255, 255, .6);--top-border: rgba(201, 132, 134, .18);--frame-bg: #f5efe9;--overlay-bg: rgba(76, 66, 64, .62);--favorite-button-bg: var(--surface);--favorite-button-text: var(--pink-deep);--favorite-button-border: rgba(201, 132, 134, .32);--favorite-button-active-bg: var(--yellow-soft);--favorite-heart-bg: var(--soft-accent);--favorite-heart-fill: var(--pink-deep);--notice-info: #6e91b8;--notice-success: #6c9f7c;--notice-warning: #c49445;--notice-error: #c76f72;--title-gradient: linear-gradient(115deg, #c98486 5%, #e0a19b 50%, #d9b86a 95%);--sidebar-width: clamp(144px, 10.5vw, 170px);--radius-sm: 10px;--radius-md: 16px;--radius-lg: 24px;--ui-radius: 16px;--motion-fast: .15s;--motion-base: .2s;--lightbox-nav-bg: rgba(18, 18, 22, .38);--lightbox-nav-bg-hover: rgba(18, 18, 22, .56);--ease-spring: cubic-bezier(.22, 1, .36, 1);--primary-gradient: linear-gradient(135deg, #f4c7c7 0%, #e4a6a8 55%, #d88f95 100%);--primary-gradient-hover: linear-gradient(135deg, #f0b9bb 0%, #dd989c 55%, #d1838b 100%);--header-glow: linear-gradient(90deg, transparent, color-mix(in srgb, var(--pink-deep) 42%, transparent), transparent)}:root[data-theme=dark]{color:#e9e1dd;background:#0d0d0f;--white: #17171a;--page-bg: radial-gradient(circle at bottom right, rgba(201, 132, 134, .12), transparent 34rem), linear-gradient(135deg, #0d0d0f 0%, #121216 52%, #0a0a0c 100%);--surface: rgba(23, 23, 27, .95);--surface-strong: #1b1b1f;--surface-soft: rgba(32, 32, 37, .86);--soft-accent: rgba(74, 70, 70, .7);--soft-accent-bottom: rgba(74, 70, 70, .7);--pink-deep: #efb0b2;--yellow-soft: #242016;--line: #63575c;--line-soft: rgba(66, 61, 67, .86);--button-line: #5c5132;--primary-bg: #775355;--primary-hover-bg: #8f6668;--primary-text: #ffffff;--photo-shadow: 0 1px 2px rgba(0, 0, 0, .28);--photo-hover-shadow: 0 2px 8px rgba(142, 90, 90, .38);--primary-hover-text: #fff;--scrollbar-track: rgba(18, 18, 22, .76);--scrollbar-thumb: rgba(239, 176, 178, .42);--scrollbar-thumb-hover: rgba(239, 176, 178, .68);--text: #eee7e2;--heading: #fff8f4;--muted: #b7aaa5;--shadow: 0 14px 34px rgba(0, 0, 0, .42);--top-bg: rgba(15, 15, 18, .82);--top-border: rgba(255, 255, 255, .08);--frame-bg: #202024;--overlay-bg: rgba(0, 0, 0, .76);--favorite-button-bg: rgba(28, 24, 28, .96);--favorite-button-text: #ffd0d2;--favorite-button-border: rgba(239, 176, 178, .5);--favorite-button-active-bg: rgba(239, 176, 178, .2);--favorite-heart-bg: rgba(239, 176, 178, .14);--favorite-heart-fill: #ffb9bc;--notice-info: #8bb7e5;--notice-success: #91c9a0;--notice-warning: #e2bd72;--notice-error: #f09a9d;--title-gradient: linear-gradient(115deg, #efb0b2 5%, #ffd9c4 50%, #fff2a8 95%);--primary-gradient: linear-gradient(135deg, #96696b 0%, #835a5c 55%, #775355 100%);--primary-gradient-hover: linear-gradient(135deg, #a27476 0%, #8f6668 55%, #83595b 100%)}*{box-sizing:border-box}::selection{background:color-mix(in srgb,var(--pink-deep) 26%,transparent)}html{scroll-behavior:smooth}button:focus-visible,a:focus-visible{outline:2px solid color-mix(in srgb,var(--pink-deep) 72%,transparent);outline-offset:2px}body{margin:0;min-width:0;background:var(--page-bg);color:var(--text);scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);scrollbar-width:thin;transition:background .25s ease,color .25s ease}body::-webkit-scrollbar,.date-sidebar::-webkit-scrollbar{width:10px;height:10px}body::-webkit-scrollbar-track,.date-sidebar::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}body::-webkit-scrollbar-thumb,.date-sidebar::-webkit-scrollbar-thumb{border:2px solid var(--scrollbar-track);border-radius:999px;background:var(--scrollbar-thumb)}body::-webkit-scrollbar-thumb:hover,.date-sidebar::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover)}.date-sidebar::-webkit-scrollbar{width:6px;height:6px}.date-sidebar::-webkit-scrollbar-track{margin:12px 0;background:transparent}.date-sidebar::-webkit-scrollbar-thumb{border:0;border-radius:999px;background:var(--scrollbar-thumb)}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{min-height:100vh;width:100%;--sidebar-sticky-top: 74px;--sidebar-width: clamp(154px, 11.5vw, 180px)}.album-layout,.date-block-header,.lightbox-footer,.lightbox-caption{display:flex;align-items:center}.eyebrow{margin:0 0 2px;color:var(--pink-deep);font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;background:var(--title-gradient);background-size:260% 260%;color:transparent;font-size:clamp(22px,3vw,29px);letter-spacing:.04em;-webkit-background-clip:text;background-clip:text;animation:title-gradient-flow 4.8s ease-in-out infinite}@keyframes title-gradient-flow{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.primary-button{border:0;border-radius:999px;padding:6px 10px;background:var(--primary-gradient);color:var(--primary-text);font-size:12px;font-weight:700;white-space:nowrap;box-shadow:inset 0 1px #ffffff52,0 6px 18px color-mix(in srgb,var(--pink-deep) 26%,transparent);transition:transform var(--motion-base) var(--ease-spring),box-shadow var(--motion-base) ease,background var(--motion-base) ease}.primary-button:hover{transform:translateY(-1px);background:var(--primary-gradient-hover);color:var(--primary-hover-text);box-shadow:inset 0 1px #ffffff61,0 10px 24px color-mix(in srgb,var(--pink-deep) 34%,transparent)}.primary-button:active:not(:disabled){transform:translateY(0) scale(.97)}.empty-sidebar{color:var(--muted);font-size:12px;line-height:1.55}.operation-notice{--notice-accent: var(--notice-info);position:fixed;top:clamp(14px,3vh,28px);left:50vw;z-index:100;width:min(400px,calc(100vw - 32px));display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 12px;overflow:hidden;border:1px solid color-mix(in srgb,var(--notice-accent) 26%,var(--line-soft));border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 78%,transparent);box-shadow:0 1px 2px color-mix(in srgb,var(--heading) 8%,transparent),0 12px 32px -8px color-mix(in srgb,var(--notice-accent) 30%,rgba(0,0,0,.14));-webkit-backdrop-filter:blur(10px) saturate(1.4);backdrop-filter:blur(10px) saturate(1.4);transform:translate(-50%)}.operation-notice.is-success{--notice-accent: var(--notice-success)}.operation-notice.is-warning{--notice-accent: var(--notice-warning)}.operation-notice.is-error{--notice-accent: var(--notice-error)}.operation-notice-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;background:color-mix(in srgb,var(--notice-accent) 14%,transparent);color:var(--notice-accent)}.operation-notice-icon svg,.operation-notice-close svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.operation-notice-spinner{width:18px;height:18px;border:2px solid color-mix(in srgb,var(--notice-accent) 28%,transparent);border-top-color:var(--notice-accent);border-radius:50%;animation:operation-notice-spin .8s linear infinite}.operation-notice-content{min-width:0}.operation-notice-title,.operation-notice-message{margin-bottom:0}.operation-notice-title{color:var(--heading);font-size:13px;font-weight:800;letter-spacing:.04em}.operation-notice-message{margin-top:4px;color:var(--text);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.operation-notice-close{width:26px;height:26px;display:grid;place-items:center;margin:0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:background var(--motion-base) ease,color var(--motion-base) ease,transform var(--motion-base) ease}.operation-notice-close:hover{background:var(--soft-accent);color:var(--pink-deep);transform:rotate(4deg)}.operation-notice-enter-active,.operation-notice-leave-active{transition:opacity .28s ease,transform .28s cubic-bezier(.22,1,.36,1)}.operation-notice-enter-from,.operation-notice-leave-to{opacity:0;transform:translate(-50%,-12px) scale(.96)}.confirm-dialog{position:fixed;top:0;right:0;bottom:0;left:0;z-index:120;display:grid;place-items:center;padding:clamp(18px,5vw,42px);background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.confirm-dialog-panel{--dialog-accent: var(--notice-info);position:relative;width:min(440px,100%);display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;padding:20px;overflow:hidden;border:1px solid color-mix(in srgb,var(--dialog-accent) 30%,var(--line-soft));border-radius:26px;background:var(--surface);box-shadow:0 26px 80px #2d222247;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}.confirm-dialog-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at top left,color-mix(in srgb,var(--dialog-accent) 18%,transparent),transparent 52%)}.confirm-dialog-panel.is-warning{--dialog-accent: var(--notice-warning)}.confirm-dialog-panel.is-danger{--dialog-accent: var(--notice-error)}.confirm-dialog-icon{position:relative;width:42px;height:42px;display:grid;place-items:center;border-radius:16px;background:color-mix(in srgb,var(--dialog-accent) 14%,transparent);color:var(--dialog-accent)}.confirm-dialog-icon svg,.confirm-dialog-close svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.confirm-dialog-content{position:relative;min-width:0}.confirm-dialog-kicker{margin-bottom:4px;color:var(--dialog-accent);font-size:10px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.confirm-dialog-content h2{margin-bottom:8px;color:var(--heading);font-size:clamp(18px,3vw,22px)}.confirm-dialog-content p:not(.confirm-dialog-kicker){margin-bottom:0;color:var(--text);font-size:14px;line-height:1.75;overflow-wrap:anywhere;white-space:pre-line}.confirm-dialog-close{position:relative;width:32px;height:32px;display:grid;place-items:center;margin:-6px -6px 0 0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);transition:background var(--motion-base) ease,color var(--motion-base) ease,transform var(--motion-base) ease}.confirm-dialog-close:hover{background:var(--soft-accent);color:var(--pink-deep);transform:rotate(4deg)}.confirm-dialog-actions{position:relative;grid-column:1 / -1;display:flex;justify-content:flex-end;gap:10px;margin-top:4px}.confirm-dialog-button{min-width:96px;padding:10px 16px;border-radius:999px;font-size:13px;font-weight:800;transition:transform var(--motion-base) ease,box-shadow var(--motion-base) ease,background var(--motion-base) ease,color var(--motion-base) ease}.confirm-dialog-button:hover{transform:translateY(-1px)}.confirm-dialog-button.ghost{border:1px solid var(--line-soft);background:var(--surface-soft);color:var(--text)}.confirm-dialog-button.primary{border:1px solid color-mix(in srgb,var(--dialog-accent) 36%,var(--button-line));background:linear-gradient(135deg,color-mix(in srgb,var(--dialog-accent) 74%,var(--primary-bg)),var(--primary-bg));color:var(--primary-text);box-shadow:0 12px 26px color-mix(in srgb,var(--dialog-accent) 24%,transparent)}.confirm-dialog-enter-active,.confirm-dialog-leave-active{transition:opacity .24s ease}.confirm-dialog-enter-active .confirm-dialog-panel,.confirm-dialog-leave-active .confirm-dialog-panel{transition:opacity .28s cubic-bezier(.2,.8,.2,1),transform .28s cubic-bezier(.2,.8,.2,1)}.confirm-dialog-enter-from,.confirm-dialog-leave-to{opacity:0}.confirm-dialog-enter-from .confirm-dialog-panel,.confirm-dialog-leave-to .confirm-dialog-panel{opacity:0;transform:translateY(18px) scale(.96)}@keyframes operation-notice-spin{to{transform:rotate(360deg)}}.empty-album{display:grid;place-items:center;min-height:min(360px,58svh);padding:clamp(24px,5vw,44px);border:1px dashed var(--top-border);border-radius:24px;background:var(--surface);text-align:center}.empty-album h2{font-size:25px}.empty-album p{width:100%;min-width:0;max-width:960px;color:var(--muted);font-size:17px;line-height:1.7;overflow-wrap:anywhere}.mode-half .photo-grid{grid-template-columns:repeat(auto-fill,minmax(95px,1fr))}.mode-half .photo-card{padding:5px;border-radius:12px}.mode-half .photo-frame{border-radius:9px}.mode-wide .photo-frame{aspect-ratio:16 / 9}.mode-standard .photo-frame{aspect-ratio:4 / 3}.mode-portrait-wide .photo-frame{aspect-ratio:9 / 16}.mode-portrait-standard .photo-frame{aspect-ratio:3 / 4}.trash-grid-wrap{min-width:0}.lazy-photo-image,.photo-skeleton,.photo-load-failed{width:100%;height:100%}.lazy-photo-image{position:relative}.photo-skeleton{background:var(--surface-soft);animation:photo-skeleton-pulse 1.2s ease-in-out infinite alternate}.photo-load-failed{display:grid;place-items:center;background:var(--surface-soft);color:var(--muted);font-size:24px;font-weight:700}.lazy-photo-image.is-loaded img{animation:photo-image-enter .2s ease-out both}@keyframes photo-skeleton-pulse{0%{opacity:.45}to{opacity:.9}}@keyframes photo-image-enter{0%{opacity:0}to{opacity:1}}.photo-frame img{width:100%;height:100%;display:block;object-fit:cover}.photo-card.selected .selected-badge{opacity:1;transform:scale(1)}.favorite-heart svg{width:11px;height:11px;display:block;transition:fill var(--motion-base) ease,transform var(--motion-base) ease}.favorite-heart.active svg{fill:var(--favorite-heart-fill)}.lightbox-delete.is-preview-loading{pointer-events:none;cursor:wait}.app-header{position:sticky;z-index:40;top:0;display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;padding:8px 20px;border-bottom:1px solid var(--line);background:var(--top-bg);-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6)}.app-header:after{position:absolute;right:0;bottom:-1px;left:0;height:1px;background:var(--header-glow);content:"";pointer-events:none}.brand-lockup{min-width:190px}.brand-lockup p{margin:0 0 2px;color:var(--pink-deep);font-size:10px;font-weight:800;letter-spacing:0}.brand-lockup h1{margin:0;background:var(--title-gradient);background-size:260% 260%;-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(17px,1.6vw,22px);line-height:1.15;letter-spacing:0;animation:title-gradient-flow 4.8s ease-in-out infinite}.header-actions{display:flex;min-width:0;align-items:center;justify-content:flex-end;gap:4px}.header-star-hint,.header-menu-button,.header-icon-button{display:inline-flex;height:48px;min-width:36px;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:var(--ui-radius);background:transparent;color:var(--text);font-size:13px;font-weight:650;text-decoration:none;transition:border-color var(--motion-base) ease,background var(--motion-base) ease,color var(--motion-base) ease,transform var(--motion-base) var(--ease-spring),box-shadow var(--motion-base) ease}.header-menu-button:hover,.header-icon-button:hover:not(:disabled),.header-menu-button[aria-expanded=true],.header-icon-button[aria-expanded=true]{border-color:var(--line);background:var(--surface-strong);color:var(--heading);transform:translateY(-1px)}.header-menu-button:active:not(:disabled),.header-icon-button:active:not(:disabled){transform:translateY(0) scale(.97)}.header-star-hint{max-width:min(37vw,400px);height:auto;min-height:0;padding:0 10px 0 0;border-color:transparent;background:transparent;color:var(--pink-deep);font-size:12px;line-height:1.35;text-align:center}.album-name-button{max-width:min(28vw,270px)}.album-name-button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-menu-wrap{position:relative}.header-dropdown{position:absolute;z-index:60;top:calc(100% + 7px);left:50%;width:max-content;min-width:230px;max-width:min(340px,calc(100vw - 24px));padding:6px;border:1px solid var(--line);border-radius:var(--ui-radius);background:color-mix(in srgb,var(--surface-strong) 90%,transparent);box-shadow:0 18px 44px #2d27232e;-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);transform:translate(calc(-50% + var(--menu-shift, 0px)));animation:header-dropdown-in .18s var(--ease-spring);transform-origin:top center}@keyframes header-dropdown-in{0%{opacity:0;transform:translate(calc(-50% + var(--menu-shift, 0px))) translateY(-6px) scale(.97)}to{opacity:1;transform:translate(calc(-50% + var(--menu-shift, 0px))) translateY(0) scale(1)}}.header-dropdown-right{right:auto;left:50%}.header-dropdown button,.header-dropdown a{display:flex;width:100%;min-height:48px;align-items:center;gap:9px;padding:7px 9px;border:0;border-radius:var(--ui-radius);background:transparent;color:var(--text);font-size:13px;text-align:left;text-decoration:none}.header-dropdown button:hover:not(:disabled),.header-dropdown a:hover,.header-dropdown .menu-radio.active{background:var(--soft-accent);color:var(--heading)}.view-dropdown .menu-radio{min-height:48px;margin-block:8px;padding-block:4px}.menu-separator{height:1px;margin:5px 3px;background:var(--line)}.menu-section-label,.menu-author{padding:15px 9px 4px;color:var(--muted);font-size:11px}.author-social-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:4px 3px 10px}.header-dropdown .author-social-link{min-width:0;min-height:38px;justify-content:center;gap:6px;padding:5px 7px;font-size:12px;white-space:nowrap}.xiaohongshu-link svg{color:#ff2442}.douyin-link svg{color:#111}:root[data-theme=dark] .douyin-link svg{color:#fff}.radio-mark{width:12px;height:12px;border:1px solid var(--muted);border-radius:50%}.menu-radio.active .radio-mark{border:3px solid var(--pink-deep)}.text-icon{display:inline-grid;width:16px;height:16px;place-items:center;border:1px solid currentColor;border-radius:3px;font-size:10px;font-weight:800}.spinning{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.help-dialog{position:fixed;z-index:100;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#18151585;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.help-dialog-panel{width:min(680px,100%);max-height:min(760px,calc(100vh - 40px));overflow:auto;border:1px solid var(--line);border-radius:35px;background:var(--surface-strong);box-shadow:0 24px 70px #0000003d;padding:18px}.help-dialog-panel>header{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid var(--line)}.help-dialog-panel h2,.help-dialog-panel h3,.help-dialog-panel p{margin:0}.help-dialog-panel>header h2{font-size:18px}.help-dialog-panel>header button{display:grid;width:34px;height:34px;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--text)}.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.help-grid section{min-width:0;padding:18px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.help-grid section:nth-child(2n){border-right:0}.help-grid h3{margin-bottom:10px;color:var(--heading);font-size:13px}.help-grid p{margin-top:6px;color:var(--muted);font-size:13px;line-height:1.65}.help-path{overflow-wrap:anywhere}.album-layout{position:relative;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);min-height:calc(100vh - 64px);align-items:stretch;gap:0;width:100%;max-width:none;margin:0;padding:0 clamp(8px,1vw,20px) 88px}.album-layout:not(.without-album):before{position:absolute;top:0;bottom:0;left:calc(clamp(8px,1vw,20px) + var(--sidebar-width));width:1px;background:var(--line);content:"";pointer-events:none}.album-layout.without-album{display:block;min-height:calc(100vh - 64px);padding-bottom:0}.sidebar-column{position:fixed;z-index:20;top:var(--sidebar-sticky-top);left:clamp(8px,1vw,20px);width:var(--sidebar-width);display:flex;height:calc(100vh - var(--sidebar-sticky-top));max-height:none;flex-direction:column;overflow:hidden;padding:10px 15px 18px 0;border-right:0}.album-view-nav,.date-sidebar{width:100%;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.album-view-nav{display:block;flex:0 0 auto;padding-bottom:10px;border-bottom:1px solid var(--line)}.date-sidebar{height:auto;min-height:0;max-height:none;flex:1 1 auto;margin-top:20px;overflow-x:hidden;overflow-y:auto;padding-right:7px;font-size:12px;scrollbar-color:var(--scrollbar-thumb) transparent;scrollbar-width:thin;scrollbar-gutter:stable}.sidebar-section-title{margin-bottom:8px;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.album-view-button{display:flex;width:100%;min-height:48px;align-items:center;justify-content:space-between;margin:5px 0;padding:7px 9px;border:0;border-radius:var(--ui-radius);background:transparent;color:var(--text);font-size:13px;font-weight:800;box-shadow:none;text-align:left;transition:background var(--motion-base) ease,color var(--motion-base) ease}.album-view-button:hover:not(:disabled),.album-view-button.active{color:var(--heading);box-shadow:none;transform:none;background:var(--favorite-button-active-bg);border-color:var(--favorite-button-text)}.album-view-button small{flex:0 0 auto;color:var(--muted);font-size:11px;font-weight:700}.timeline-toggle,.date-link{display:flex;width:100%;min-height:46px;align-items:center;gap:5px;border:0;border-radius:var(--ui-radius);background:transparent;color:var(--text);text-align:left}.album-view-button{min-height:38px}.timeline-toggle,.date-link{min-height:32px}.timeline-toggle:hover,.date-link:hover{background:var(--surface-strong);border:1px solid var(--line);color:var(--heading)}.timeline-toggle svg{flex:none;transition:transform var(--motion-fast) ease}.timeline-toggle svg.expanded{transform:rotate(90deg)}.timeline-toggle>span:last-child,.timeline-toggle>small,.date-link small{margin-left:auto;color:var(--muted)}.year-toggle{padding:5px 7px 5px 1px}.month-toggle{padding:4px 7px 4px 12px;font-size:13px}.timeline-dates{padding-left:28px}.date-link{position:relative;min-width:0;margin:0;padding:4px 7px;font-size:12px}.date-link:before{position:absolute;top:50%;left:0;width:3px;height:0;border-radius:999px;background:var(--pink-deep);content:"";transform:translateY(-50%);transition:height var(--motion-base) var(--ease-spring)}.date-link:hover:before{height:14px}.date-link small{flex:0 0 auto;white-space:nowrap}.album-content{grid-column:2;width:100%;min-width:0;margin:0;padding:13px 0 40px 20px;font-size:13px}.without-album .album-content{display:grid;min-height:calc(100vh - 64px);place-items:center;padding:32px 20px}.empty-album-start{width:min(680px,100%);text-align:center}.empty-start-mark{width:44px;height:3px;margin:0 auto 20px;background:linear-gradient(90deg,var(--pink-deep),#d4b84d)}.empty-album-start h2{margin:0;color:var(--heading);font-size:clamp(24px,4vw,38px);letter-spacing:0}.empty-album-start>p{margin:12px auto 22px;color:var(--muted)}.empty-album-start .primary-button{min-height:42px;border-radius:8px}.empty-album-start .recommended-path{margin-top:18px;overflow-wrap:anywhere;font-size:12px}.gallery-header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:0 0 16px;border-bottom:1px solid var(--line)}.gallery-header h2,.gallery-header p{margin:0}.gallery-header h2{color:var(--heading);font-size:22px}.gallery-header>p{color:var(--muted);font-size:13px}.photo-grid-wrap,.trash-grid-wrap{padding:0}.date-block{content-visibility:auto;contain-intrinsic-block-size:auto 520px;scroll-margin-top:clamp(112px,16vh,184px);margin:0;padding:13px 5px 28px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none}.date-block-header{flex-wrap:wrap;justify-content:space-between;gap:8px;min-height:32px;margin-bottom:10px;padding:0}.date-block-header h2{margin:0;color:var(--heading);font-size:14px;font-weight:750}.date-select-button{display:grid;width:30px;height:30px;margin-left:auto;place-items:center;border:1px solid var(--line);border-radius:11px;background:var(--surface-strong);color:transparent}.date-select-button:hover,.date-select-button.active{border-color:var(--pink-deep);color:var(--pink-deep)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(190px,100%),1fr));gap:8px}.photo-card{padding:8px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:var(--radius-md);background:var(--surface-strong);box-shadow:var(--photo-shadow);outline:none;transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}:root.is-theme-switching .photo-card{transition:none}.trash-photo-card{content-visibility:auto;contain-intrinsic-size:auto 220px}.photo-card:hover,.photo-card:focus-visible{transform:none;border-color:color-mix(in srgb,var(--pink-deep) 55%,var(--line));box-shadow:var(--photo-hover-shadow)}.photo-card.selected{border-color:var(--pink-deep);box-shadow:0 0 0 2px color-mix(in srgb,var(--pink-deep) 20%,transparent)}.photo-frame{position:relative;overflow:hidden;aspect-ratio:1 / 1;border-radius:12px;background:var(--frame-bg)}.photo-overlay{position:absolute;z-index:3;right:0;bottom:0;left:0;display:flex;min-height:72px;align-items:flex-end;padding:18px 9px 8px;background:linear-gradient(transparent 40%,#000000c7);color:#fff;opacity:0;pointer-events:none;transition:opacity var(--motion-fast) ease}.photo-overlay span{overflow:hidden;font-size:11px;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.photo-card:hover .photo-overlay,.photo-card:focus-visible .photo-overlay{opacity:1}.favorite-heart{position:absolute;z-index:5;top:8px;right:8px;display:grid;width:27px;height:27px;place-items:center;padding:0;border:1px solid rgba(255,255,255,.38);border-radius:9px;background:#19161657;color:#fff;-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:1;opacity:0;transition:opacity var(--motion-fast) ease,background var(--motion-fast) ease}.photo-card:hover .favorite-heart,.favorite-heart.active{opacity:1}.favorite-heart:hover{background:#1916168f}.favorite-heart.active{background:#cf64695d;color:#fff}.favorite-heart.active:hover{background:#c58385db}.favorite-heart.active svg{animation:favorite-heart-pop .32s var(--ease-spring)}@keyframes favorite-heart-pop{0%{transform:scale(.4)}60%{transform:scale(1.25)}to{transform:scale(1)}}.selected-badge{position:absolute;z-index:5;top:8px;left:8px;display:grid;width:25px;height:25px;place-items:center;border-radius:9px;background:var(--pink-deep);color:#fff;font-size:12px;font-weight:900;opacity:0;transform:scale(.75);transition:opacity var(--motion-base) ease,transform var(--motion-base) var(--ease-spring)}.trash-photo-grid{margin-top:18px}.inline-empty{min-height:46vh;padding:70px 20px;border:0;border-radius:0;background:transparent;box-shadow:none}.selection-bar{position:fixed;z-index:55;right:16px;bottom:16px;left:16px;display:flex;width:max-content;max-width:calc(100vw - 32px);min-height:50px;align-items:center;justify-content:center;gap:4px;margin:0 auto;padding:7px 8px 7px 14px;border:1px solid var(--line);border-radius:var(--ui-radius);background:color-mix(in srgb,var(--surface-strong) 95%,transparent);box-shadow:0 14px 38px #25201e38;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.selection-bar strong{padding-right:5px;color:var(--heading);font-size:13px;white-space:nowrap}.selection-divider{width:1px;height:24px;margin:0 4px;background:var(--line)}.selection-bar button{display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border:0;border-radius:var(--ui-radius);background:transparent;color:var(--text);font-size:12px;font-weight:700}.selection-bar button:hover:not(:disabled){background:var(--soft-accent-bottom)}.selection-bar .selection-danger{background:#bd656a;color:#fff}.selection-bar .selection-danger:hover:not(:disabled){background:#a94f55}.selection-bar .selection-close{width:46px;padding:0}.selection-bar-enter-active,.selection-bar-leave-active{transition:opacity var(--motion-base) ease,transform var(--motion-base) ease}.selection-bar-enter-from,.selection-bar-leave-to{opacity:0;transform:translateY(18px)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:5px;overflow:hidden;background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.lightbox-panel{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr);width:var(--lightbox-panel-width, min(920px, calc(100vw - 36px) ));max-width:calc(100vw - 20px);max-height:calc(100dvh - 76px);overflow:hidden;padding:14px;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-lg);background:var(--white);box-shadow:0 30px 80px #00000040}.lightbox-stage{position:relative;display:grid;width:100%;height:var(--lightbox-stage-height, calc(100dvh - 120px) );min-height:0;max-height:100%;overflow:hidden;place-items:center;border-radius:var(--radius-md);background:var(--frame-bg);touch-action:none}.lightbox-stage>img{width:auto;height:auto;max-width:100%;max-height:100%;display:block;object-fit:contain;border-radius:var(--radius-md);-webkit-user-select:none;user-select:none;transition:transform .08s linear}.lightbox-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.lightbox-nav-zone{position:absolute;top:0;bottom:0;z-index:5;display:flex;align-items:center;width:22%;max-width:140px;padding:0 12px}.lightbox-nav-zone--prev{left:0;justify-content:flex-start}.lightbox-nav-zone--next{right:0;justify-content:flex-end}.lightbox-nav-button{display:grid;width:44px;height:44px;place-items:center;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:var(--lightbox-nav-bg);color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transform:scale(.82);transition:opacity var(--motion-fast) ease,background var(--motion-fast) ease,transform var(--motion-base) var(--ease-spring)}.lightbox-nav-zone:hover .lightbox-nav-button,.lightbox-nav-zone:focus-within .lightbox-nav-button{opacity:1;pointer-events:auto;transform:scale(1)}.lightbox-nav-zone.is-navigation-hidden .lightbox-nav-button{opacity:0;pointer-events:none}.lightbox-nav-button:hover{background:var(--lightbox-nav-bg-hover)}.lightbox-zoom-controls{display:flex;gap:2px;padding-right:4px;margin-right:4px;border-right:1px solid var(--line)}.lightbox-zoom-controls button,.lightbox-toolbar button,.lightbox-close{display:grid;min-width:34px;height:34px;place-items:center;border:0;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;transition:background var(--motion-fast) ease,color var(--motion-fast) ease,transform var(--motion-fast) ease}.lightbox-close{flex:0 0 auto}.lightbox-zoom-controls button:disabled,.lightbox-toolbar button:disabled{cursor:not-allowed}.lightbox-zoom-controls button:nth-child(2){min-width:54px;font-size:11px;font-weight:750}.lightbox-zoom-controls button:hover:not(:disabled),.lightbox-toolbar button:hover:not(:disabled),.lightbox-close:hover{background:color-mix(in srgb,var(--text) 12%,transparent)}.lightbox-zoom-controls button:active:not(:disabled),.lightbox-toolbar button:active:not(:disabled),.lightbox-close:active{background:color-mix(in srgb,var(--text) 18%,transparent);transform:scale(.94)}.lightbox-footer{display:flex;justify-content:center;flex:0 0 auto;margin:0}.lightbox-caption{flex:1 1 auto;min-width:0;justify-content:flex-start;flex-wrap:wrap;gap:8px 12px;color:var(--text);font-size:12px}.lightbox-caption span{flex:0 0 auto;color:var(--muted)}.lightbox-toolbar{display:flex;flex:0 0 auto;align-items:center;gap:2px;padding:5px;border:1px solid var(--line);border-radius:var(--ui-radius);background:color-mix(in srgb,var(--surface-strong) 84%,transparent);box-shadow:0 10px 30px #19161638;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.lightbox-toolbar button.active{color:var(--favorite-heart-fill)}.lightbox-toolbar .lightbox-delete{padding:0;background:transparent;color:var(--notice-error);box-shadow:none}@media (max-width: 1100px){.album-content{padding-left:18px}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(min(168px,100%),1fr))}.mode-half .photo-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}}@media (max-width: 900px){.app-header{position:static;flex-wrap:wrap;gap:8px;padding:9px 12px}.brand-lockup{flex:1 1 180px}.header-actions{flex:1 1 auto;flex-wrap:wrap}.album-name-button{max-width:min(43vw,230px)}.album-layout{display:block;padding:0 12px 90px}.album-layout:not(.without-album):before{display:none}.sidebar-column{position:static;display:block;height:auto;max-height:none;overflow:visible;padding:16px 0;border-right:0;border-bottom:1px solid var(--line)}.album-view-nav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding-bottom:14px}.album-view-nav .sidebar-section-title{grid-column:1 / -1}.album-view-button{min-width:0;flex-direction:row;padding-inline:7px}.date-sidebar{margin-top:14px;overflow:visible;padding-right:0;scrollbar-gutter:auto}.timeline-year{max-width:360px}.album-content{padding:18px 0 32px}.without-album .album-content{min-height:calc(100vh - 112px)}}@media (max-width: 520px){.header-star-hint{display:none}.brand-lockup h1{font-size:17px}.header-actions{display:grid;width:100%;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.header-actions>button,.header-menu-wrap,.header-menu-wrap>button{width:100%}.header-icon-button:has(span){padding:0 10px}.album-name-button{max-width:none}.header-dropdown{width:max-content;max-width:calc(100vw - 24px)}.help-grid{grid-template-columns:1fr}.help-grid section,.help-grid section:nth-child(2n){border-right:0}.gallery-header{align-items:flex-start}.gallery-header h2{font-size:19px}.gallery-header>p{max-width:48%;text-align:right}.photo-grid,.mode-half .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.selection-bar{right:8px;bottom:8px;left:8px;width:calc(100vw - 16px);max-width:none;min-height:46px;padding:5px 6px;overflow-x:auto;justify-content:flex-start}.selection-bar strong{padding-left:5px}.selection-bar button{flex:0 0 auto;padding-inline:8px}.lightbox{padding:8px}.lightbox-panel{width:calc(100vw - 16px);max-width:calc(100vw - 16px);max-height:calc(100dvh - 78px);padding:9px;border-radius:24px}.lightbox-stage{min-height:0;border-radius:20px}.lightbox-footer{align-items:center}.lightbox-caption{width:auto}.lightbox-nav-zone{width:26%;padding:0 8px}.lightbox-nav-button{width:38px;height:38px}}@media (max-width: 420px){.photo-grid,.mode-half .photo-grid{grid-template-columns:1fr}}.primary-button,.confirm-dialog-button,.header-dropdown,.header-dropdown button,.header-dropdown a{border-radius:var(--ui-radius)}.primary-button,.confirm-dialog-button{min-height:48px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
