html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f;--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12);--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12);--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12);--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12);--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12);--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500;--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px;--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}.stf__parent{position:relative;display:block;box-sizing:border-box;transform:translateZ(0);-ms-touch-action:pan-y;touch-action:pan-y}.sft__wrapper{position:relative;width:100%;box-sizing:border-box}.stf__parent canvas{position:absolute;width:100%;height:100%;left:0;top:0}.stf__block{position:absolute;width:100%;height:100%;box-sizing:border-box;perspective:2000px}.stf__item{display:none;position:absolute;transform-style:preserve-3d}.stf__outerShadow,.stf__innerShadow,.stf__hardShadow,.stf__hardInnerShadow{position:absolute;left:0;top:0}:root{--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 20px;--radius-full: 9999px;--border-default: 1px solid var(--br);--border-divider: 1px solid var(--brL);--border-accent: 1px solid var(--acc);--border-accent-light: 1px solid var(--accL);--border-dashed: 1px dashed var(--br);--border-warning: 1px solid var(--color-warning-br);--border-error: 1px solid var(--color-state-error-br);--border-toggle: 1px solid var(--color-toggle-border);--border-selection: 2px solid transparent;--border-spinner: 2px solid currentColor;--border-accent-2: 2px solid var(--accL);--border-resize: 2px solid var(--color-resize-handle);--border-album-header: 1px solid var(--color-album-separator);--border-album-toolbar: 1px solid var(--color-album-separator-light);--outline-drop-receiving: 2px dashed var(--color-drop-receiving-br);--outline-drop-active: 2px dashed var(--acc);--outline-offset-inset: -4px;--shadow-card: 0 4px 24px rgba(0, 0, 0, .06);--shadow-drag: 0 8px 24px rgba(0, 0, 0, .3);--shadow-focus: 0 0 0 3px var(--focus-ring);--shadow-polaroid: 0 1px 3px rgba(0, 0, 0, .22), 0 2px 6px rgba(0, 0, 0, .14);--shadow-book-drop: drop-shadow(0 24px 48px rgba(0, 0, 0, .7));--shadow-book-page-l: inset -6px 0 12px rgba(0, 0, 0, .1);--shadow-book-page-r: inset 6px 0 12px rgba(0, 0, 0, .08);--shadow-toggle: 0 2px 8px rgba(0, 0, 0, .15);--gradient-photo-caption: linear-gradient(transparent, rgba(0, 0, 0, .6));--gradient-book-spine: linear-gradient(to right, var(--color-book-spine-shadow) 0%, var(--color-book-spine-gold) 35%, var(--color-book-spine-gold-hi) 65%, var(--color-book-spine-shadow) 100%);--book-perspective: 2400px;--book-flip-duration: .75s;--book-spine-w: 18px;--book-page-radius: 3px;--book-bar-radius: 2px;--book-accent-bar-h: 3px;--book-nav-arrow-size: 44px;--font-sans: "DM Sans", "Helvetica Neue", sans-serif;--font-serif: "Playfair Display", serif;--font-mono: monospace;--text-2xs: 8px;--text-xs: 10px;--text-sm: 12px;--text-md: 14px;--text-base: 14px;--text-lg: 16px;--text-xl: 20px;--text-2xl: 22px;--text-3xl: 24px;--lh-tight: 1.2;--lh-snug: 1.4;--lh-relaxed: 1.6;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-btn: .2px;--tracking-xs: .3px;--tracking-px: .5px;--tracking-mono: 1px;--tracking-wide: 2px;--tracking-logo: 3px;--tracking-wider: 4px;--tracking-widest: 4px;--tracking-em-sm: .04em;--tracking-em-md: .12em;--lh-none: 1;--icon-sm: 24px;--icon-md: 32px;--icon-lg: 40px;--icon-xl: 56px;--space-2: 2px;--space-4: 4px;--space-6: 6px;--space-8: 8px;--space-10: 10px;--space-12: 12px;--space-14: 14px;--space-16: 16px;--space-18: 18px;--space-20: 20px;--space-22: 22px;--space-24: 24px;--space-28: 28px;--space-30: 30px;--space-32: 32px;--space-36: 36px;--space-38: 38px;--space-40: 40px;--space-44: 44px;--space-48: 48px;--space-64: 64px;--transition-fast: .15s;--transition-base: .2s;--blur-sm: blur(6px);--blur-md: blur(8px);--z-behind: 0;--z-base: 1;--z-above: 2;--z-flipper: 3;--z-spine: 4;--z-overlay-local: 6;--z-overlay: 10;--z-fixed: 100;--sidebar-width: 210px;--toolbar-h: 52px;--editor-panel-w: 300px;--panel-collapse-btn-h: 48px;--divider-h: 1px;--divider-w: 44px;--album-card-header-h: 100px;--polaroid-img-w: 118px;--polaroid-img-h: 94px;--drag-thumb-w: 80px;--drag-thumb-h: 60px;--drop-hint-min-h: 80px;--font-caption: "Georgia", serif}:root{--album-wedding-bg: #F5F0EB;--album-wedding-accent: #C9A882;--album-wedding-dark: #7C6355;--album-birthday-bg: #FFFBEF;--album-birthday-accent: #F0A830;--album-birthday-dark: #a07820;--album-baptism-bg: #EDF8F4;--album-baptism-accent: #4DB6AC;--album-baptism-dark: #2a7a72;--album-graduation-bg: #F5EEF8;--album-graduation-accent: #A06AB4;--album-graduation-dark: #6a3a80;--album-dark-bg: #1C1C2E;--album-dark-accent: #666677;--album-dark-tag-text: #888888}:root,[data-theme=light]{--bg: #F5F0EB;--card: #ffffff;--sec: #EDE8E2;--acc: #7C6355;--accL: #C9A882;--accD: #3A2818;--tx: #3A2818;--txS: #8B7060;--txT: #A08870;--br: #D4C0B0;--brL: #E8DDD4;--color-bg: var(--bg);--color-surface: var(--card);--color-border: var(--br);--color-text-secondary: var(--txS);--color-text-tertiary: var(--txT);--color-preview-item-border: var(--brL);--color-preview-item-bg: var(--card);--bg-frosted: rgba(255, 255, 255, .8);--bg-frosted-72: rgba(255, 255, 255, .72);--bg-frosted-88: rgba(255, 255, 255, .88);--color-on-accent: #fff;--focus-ring: rgba(124, 99, 85, .12);--color-state-success: #16a34a;--color-state-error: #dc2626;--color-state-error-bg: #fff0f0;--color-state-error-br: #f5c6c6;--color-state-error-text: #c0392b;--color-warn: #e57373;--color-drop-receiving-bg: #edf5e8;--color-drop-receiving-br: #66bb6a;--color-book-desk-start: #5a3e28;--color-book-desk-end: #1e1208;--color-book-shadow-far: #bfa890;--color-book-shadow-near: #d0b8a4;--color-book-page-bg: #fdf5e2;--color-book-spine-shadow: rgba(0, 0, 0, .25);--color-book-spine-gold: rgba(180, 140, 80, .35);--color-book-spine-gold-hi: rgba(200, 160, 90, .35);--color-warning-bg: #fef3c7;--color-warning-br: #f59e0b;--color-warning-tx: #92400e;--color-warning-icon: #d97706;--color-warning-action: #d97706;--color-warning-action-hover: #b45309;--color-warning-sent: #166534;--color-warning-err: #991b1b;--color-icon-overlay: rgba(0, 0, 0, .42);--color-icon-overlay-danger: rgba(180, 0, 0, .85);--color-resize-handle: rgba(0, 0, 0, .4);--color-editor-idle: rgba(255, 255, 255, .4);--color-editor-separator: rgba(255, 255, 255, .15);--color-editor-active: rgba(255, 218, 140, .9);--color-editor-hover: rgba(255, 255, 255, .8);--color-editor-dot: rgba(255, 255, 255, .25);--color-album-separator: rgba(180, 150, 120, .3);--color-album-separator-light: rgba(180, 150, 120, .2);--color-book-footer-bg: rgba(245, 240, 235, .95);--color-page-empty: rgba(0, 0, 0, .18);--color-scrim: rgba(0, 0, 0, .48);--color-dark-tag-bg: rgba(0, 0, 0, .5);--color-toggle-border: rgba(0, 0, 0, .1);--color-toggle-icon: rgba(0, 0, 0, .4);--color-toggle-active-bg: rgba(0, 0, 0, .07);--color-toggle-icon-active: rgba(0, 0, 0, .87);--color-toggle-hover-bg: rgba(0, 0, 0, .04);--color-toggle-icon-hover: rgba(0, 0, 0, .65)}[data-theme=dark]{--bg-frosted: rgba(255, 255, 255, .08);--bg-frosted-72: rgba(255, 255, 255, .06);--bg-frosted-88: rgba(255, 255, 255, .1);--bg: #1a1a2e;--card: #252538;--sec: #1e1e32;--acc: #9a7d6e;--accL: #b8917e;--accD: #e8d5c8;--tx: #e8d5c8;--txS: rgba(255, 255, 255, .54);--txT: rgba(255, 255, 255, .35);--br: #3a3a5c;--brL: #2e2e48;--color-bg: var(--bg);--color-surface: var(--card);--color-border: var(--br);--color-text-secondary: var(--txS);--color-text-tertiary: var(--txT);--color-preview-item-border: var(--brL);--color-preview-item-bg: var(--card);color-scheme:dark;--shadow-toggle: 0 2px 8px rgba(0, 0, 0, .4);--color-toggle-border: rgba(255, 255, 255, .1);--color-toggle-icon: rgba(255, 255, 255, .35);--color-toggle-active-bg: rgba(255, 255, 255, .12);--color-toggle-icon-active: rgba(255, 255, 255, .9);--color-toggle-hover-bg: rgba(255, 255, 255, .07);--color-toggle-icon-hover: rgba(255, 255, 255, .65)}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-wrap{display:flex;flex-wrap:wrap}.inline-flex{display:inline-flex}.grid{display:grid}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.content-start{align-content:flex-start}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.min-w-0{min-width:0}.min-h-0{min-height:0}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-auto{overflow:auto}.page-center{display:flex;align-items:center;justify-content:center;min-height:100vh}.gap-2{gap:2px}.gap-4{gap:4px}.gap-6{gap:6px}.gap-8{gap:8px}.gap-10{gap:10px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-20{gap:20px}.gap-24{gap:24px}.rounded-full{border-radius:50%}.text-center{text-align:center}.p-0{padding:0}.m-0{margin:0}html,body{height:100%}body{margin:0;font-family:var(--font-sans);background:var(--card);color:var(--tx)}@keyframes spin{to{transform:rotate(360deg)}}:root{--mat-sys-on-surface: #3A2818;--mat-sys-on-surface-variant: #8B7060;--mat-sys-surface: #ffffff;--mat-sys-surface-container: #EDE8E2;--mat-sys-surface-container-low: #F5F0EB;--mat-sys-surface-container-high: #E0DAD4;--mat-sys-surface-container-highest: #D4CEC8;--mat-sys-background: #F5F0EB;--mat-sys-on-background: #3A2818;--mat-sys-outline: #D4C0B0;--mat-sys-outline-variant: #E8DDD4;--mat-sys-primary: #7C6355;--mat-sys-on-primary: #ffffff}[data-theme=dark]{--mat-sys-on-surface: #e8d5c8;--mat-sys-on-surface-variant: rgba(255, 255, 255, .54);--mat-sys-surface: #252538;--mat-sys-surface-container: #1e1e32;--mat-sys-surface-container-low: #1a1a2e;--mat-sys-surface-container-high: #2a2a3e;--mat-sys-surface-container-highest: #303048;--mat-sys-background: #1a1a2e;--mat-sys-on-background: #e8d5c8;--mat-sys-outline: #3a3a5c;--mat-sys-outline-variant: #2e2e48;--mat-sys-primary: #9a7d6e;--mat-sys-on-primary: #ffffff;--mat-sys-inverse-on-surface: #1a1a2e;--mat-sys-inverse-surface: #e8d5c8}[data-theme=dark] mat-icon{color:#ffffffde}.auth-lbl{font-size:var(--text-sm);color:var(--txT);margin-bottom:var(--space-6);display:block;text-align:left}.auth-inp{width:100%;font-size:var(--text-base);padding:var(--space-12) var(--space-14);border-radius:var(--radius-md);border:var(--border-accent-light);background:var(--bg-frosted);color:var(--tx);font-family:var(--font-sans);margin-bottom:var(--space-16);outline:none;box-sizing:border-box;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.auth-inp:focus{border-color:var(--acc);box-shadow:0 0 0 3px var(--focus-ring)}.auth-btn{width:100%;background:var(--acc);color:var(--color-on-accent);border:none;padding:var(--space-12);font-size:var(--text-lg);border-radius:var(--radius-md);cursor:pointer;font-family:var(--font-serif);letter-spacing:var(--tracking-px);margin-bottom:var(--space-16);transition:background var(--transition-base)}.auth-btn:hover{background:var(--accD)}.auth-btn:disabled{opacity:.6;cursor:default}.auth-link{font-size:var(--text-sm);color:var(--txT);margin:0}.auth-link a{color:var(--acc);text-decoration:none}.auth-link a:hover{text-decoration:underline}.mat-mdc-card{border:var(--border-divider);border-radius:var(--radius-lg)}
