html{color-scheme:light;--mat-sys-background: light-dark(#faf9fd, #121316);--mat-sys-error: light-dark(#ba1a1a, #ffb4ab);--mat-sys-error-container: light-dark(#ffdad6, #93000a);--mat-sys-inverse-on-surface: light-dark(#f2f0f4, #2f3033);--mat-sys-inverse-primary: light-dark(#abc7ff, #005cbb);--mat-sys-inverse-surface: light-dark(#2f3033, #e3e2e6);--mat-sys-on-background: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-error: light-dark(#ffffff, #690005);--mat-sys-on-error-container: light-dark(#93000a, #ffdad6);--mat-sys-on-primary: light-dark(#ffffff, #002f65);--mat-sys-on-primary-container: light-dark(#00458f, #d7e3ff);--mat-sys-on-primary-fixed: light-dark(#001b3f, #001b3f);--mat-sys-on-primary-fixed-variant: light-dark(#00458f, #00458f);--mat-sys-on-secondary: light-dark(#ffffff, #283041);--mat-sys-on-secondary-container: light-dark(#3e4759, #dae2f9);--mat-sys-on-secondary-fixed: light-dark(#131c2b, #131c2b);--mat-sys-on-secondary-fixed-variant: light-dark(#3e4759, #3e4759);--mat-sys-on-surface: light-dark(#1a1b1f, #e3e2e6);--mat-sys-on-surface-variant: light-dark(#44474e, #e0e2ec);--mat-sys-on-tertiary: light-dark(#ffffff, #003737);--mat-sys-on-tertiary-container: light-dark(#004f4f, #00fbfb);--mat-sys-on-tertiary-fixed: light-dark(#002020, #002020);--mat-sys-on-tertiary-fixed-variant: light-dark(#004f4f, #004f4f);--mat-sys-outline: light-dark(#74777f, #8e9099);--mat-sys-outline-variant: light-dark(#c4c6d0, #44474e);--mat-sys-primary: light-dark(#005cbb, #abc7ff);--mat-sys-primary-container: light-dark(#d7e3ff, #00458f);--mat-sys-primary-fixed: light-dark(#d7e3ff, #d7e3ff);--mat-sys-primary-fixed-dim: light-dark(#abc7ff, #abc7ff);--mat-sys-scrim: light-dark(#000000, #000000);--mat-sys-secondary: light-dark(#565e71, #bec6dc);--mat-sys-secondary-container: light-dark(#dae2f9, #3e4759);--mat-sys-secondary-fixed: light-dark(#dae2f9, #dae2f9);--mat-sys-secondary-fixed-dim: light-dark(#bec6dc, #bec6dc);--mat-sys-shadow: light-dark(#000000, #000000);--mat-sys-surface: light-dark(#faf9fd, #121316);--mat-sys-surface-bright: light-dark(#faf9fd, #38393c);--mat-sys-surface-container: light-dark(#efedf0, #1f2022);--mat-sys-surface-container-high: light-dark(#e9e7eb, #292a2c);--mat-sys-surface-container-highest: light-dark(#e3e2e6, #343537);--mat-sys-surface-container-low: light-dark(#f4f3f6, #1a1b1f);--mat-sys-surface-container-lowest: light-dark(#ffffff, #0d0e11);--mat-sys-surface-dim: light-dark(#dbd9dd, #121316);--mat-sys-surface-tint: light-dark(#005cbb, #abc7ff);--mat-sys-surface-variant: light-dark(#e0e2ec, #44474e);--mat-sys-tertiary: light-dark(#006a6a, #00dddd);--mat-sys-tertiary-container: light-dark(#00fbfb, #004f4f);--mat-sys-tertiary-fixed: light-dark(#00fbfb, #00fbfb);--mat-sys-tertiary-fixed-dim: light-dark(#00dddd, #00dddd);--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-body-large-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-body-medium-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-body-small-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-display-large-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-display-medium-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-display-small-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-headline-large-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-headline-medium-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-headline-small-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-label-large-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-label-medium-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-label-small-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-title-large-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-title-medium-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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 Be Vietnam Pro, Roboto, system-ui, sans-serif;--mat-sys-title-small-font: Be Vietnam Pro, Roboto, system-ui, sans-serif;--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;--brand: var(--mat-sys-primary);--brand-container: var(--mat-sys-primary-container)}html.dark-theme{color-scheme:dark;--mdc-theme-primary: #5fa8ff;--mdc-theme-surface: #0d1117;--mdc-theme-background: #0d1117;--mat-sys-on-surface: #e0e0e0;--mat-sys-outline: #2a2a3a;--brand: #5fa8ff;--brand-container: #3d3d5c}:root{--blue:#0288d1;--blue-dark:#01579b;--teal:#fff;--sky:#e1f5fe;--sea:#4fc3f7;--ink:#0f2b3a;--muted:#5b7684;--line:#d7eefb;--cream:#f4fbff}html.dark-theme{--ink: #ffffff;--muted: #b0acc4;--line: #34324a;--cream: #1c1b25;--blue: #8a6eff;--blue-dark: #ffffff;--teal: #ffffff;--sea: #ffffff;--pp-bg: #1c1b25;--pp-surface: #2a2937;--pp-surface-2: #333147;--pp-accent: #8a6eff;--pp-accent-soft: rgba(138,110,255,.16);--pp-label: #b0acc4;--mdc-theme-primary: #8a6eff;--mdc-theme-surface: #2a2937;--mdc-theme-background: #1c1b25;--mdc-on-surface: #ffffff;--mdc-on-background: #ffffff}html.dark-theme,html.dark-theme body,html.dark-theme .admin-content{font-family:Be Vietnam Pro,Inter,system-ui,Segoe UI,sans-serif;font-size:14px;letter-spacing:0}html.dark-theme .admin-content h1,html.dark-theme .admin-content h2,html.dark-theme .admin-content h3{font-family:inherit;color:#fff;font-weight:600;letter-spacing:-.01em}html.dark-theme .admin-content h1{font-size:1.35rem;line-height:1.3}html.dark-theme .admin-content h2{font-size:1.1rem}html.dark-theme .admin-content label{font-size:.78rem;font-weight:400;color:var(--pp-label)}html.dark-theme .admin-content label>input,html.dark-theme .admin-content label>select,html.dark-theme .admin-content label>textarea{color:#fff;font-weight:500;font-size:.9rem}html.dark-theme .mat-mdc-form-field .mdc-floating-label,html.dark-theme .mat-mdc-form-field .mat-mdc-floating-label,html.dark-theme .mat-mdc-form-field-hint,html.dark-theme .mat-mdc-select-value-text{color:var(--pp-label)}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:Be Vietnam Pro,system-ui,Segoe UI,sans-serif;color:var(--ink);background:linear-gradient(180deg,#f4fbff,#fff)}html.dark-theme body{background:var(--pp-bg)}h1,h2,h3,.brand{font-family:Playfair Display,Georgia,serif;color:var(--blue-dark)}h1{font-size:clamp(2.1rem,8vw,4.6rem);line-height:1.08}h2{font-size:clamp(1.6rem,5vw,2.8rem)}a{color:var(--blue-dark)}html.dark-theme a{color:var(--blue)}.site-header{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.7rem 1rem;background:#f4fbffeb;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.site-header .header-left{display:flex;align-items:center;gap:.75rem}.brand{text-decoration:none;font-size:1.35rem;font-weight:700}.site-header nav{display:flex;gap:.75rem;overflow:auto}.site-header nav a{text-decoration:none;white-space:nowrap;font-size:.95rem}.active{color:var(--blue);font-weight:700}main{width:min(1120px,100%);margin:auto;padding:1rem}.hero{min-height:86vh;display:grid;place-items:center;text-align:center;padding:3rem 1rem;background:radial-gradient(circle at top,#bde7fb,#e1f5fe 60%,#f4fbff);background-size:cover;background-position:center;color:var(--blue-dark)}.hero h1,.hero .date{color:var(--blue-dark)}.hero h1 span{color:var(--blue)}.eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--teal);font-size:.82rem;font-weight:700}.date,.lead{font-size:1.15rem}.card{background:#ffffffe6;border:1px solid var(--line);border-radius:24px;padding:clamp(1.25rem,4vw,2.4rem);margin:1rem 0;box-shadow:0 16px 44px #0288d11a}html.dark-theme .card{background:var(--pp-surface);border:1px solid var(--line);border-radius:12px;box-shadow:none}.center{text-align:center}.page-card{max-width:760px;margin:2rem auto}.button,button.cta{border:0;border-radius:999px;background:var(--blue);color:#fff;padding:.8rem 1.2rem;font-weight:700;cursor:pointer;text-decoration:none;display:inline-block}.button.secondary{background:var(--teal);color:#062b33}html.dark-theme .button.secondary{background:var(--teal);color:#000}.button.danger{background:#e53935}.muted{color:var(--muted)}.error{color:#c62828}html.dark-theme .error{color:#ff6b6b}.success{color:#2e7d32}html.dark-theme .success{color:#51cf66}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;max-width:560px;margin:1.2rem auto}.countdown div{background:#fff9;border:1px solid var(--line);border-radius:18px;padding:.8rem}html.dark-theme .countdown div{background:var(--pp-surface);border:1px solid var(--line)}.countdown strong{display:block;font-size:1.8rem;color:var(--blue-dark)}.countdown span{font-size:.8rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem}.gallery-grid figure{margin:0;background:#fff;border-radius:20px;overflow:hidden;border:1px solid var(--line)}html.dark-theme .gallery-grid figure{background:var(--pp-surface);border:1px solid var(--line)}.gallery-grid img{width:100%;height:220px;object-fit:cover;display:block}.gallery-grid figcaption{padding:.7rem;color:var(--muted)}.timeline{display:grid;gap:1rem}.timeline article{border-left:4px solid var(--teal);padding:1rem;background:#fff;border-radius:16px}html.dark-theme .timeline article{background:var(--pp-surface);border-left:3px solid var(--pp-accent)}.timeline time{color:var(--blue);font-weight:700}.wishes{display:grid;gap:1rem}.wishes blockquote{margin:0;padding:1rem;border-radius:16px;background:var(--sky)}html.dark-theme .wishes blockquote{background:var(--pp-surface)}.gift{background:linear-gradient(135deg,#fff,#e1f5fe)}html.dark-theme .gift{background:var(--pp-surface)}.footer{text-align:center;padding:2rem;color:var(--muted)}.form{display:grid;gap:1rem}.form label{display:grid;gap:.35rem;font-weight:600}.honeypot{position:absolute;left:-10000px}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.grow{flex:1 1 auto}.mt{margin-top:1rem}@media(max-width:760px){.site-header{flex-wrap:wrap}.hero{min-height:78vh}.countdown{grid-template-columns:repeat(2,1fr)}}input:not(.mat-mdc-input-element),select:not(.mat-mdc-input-element),textarea:not(.mat-mdc-input-element){width:100%;border:1px solid var(--line);border-radius:12px;padding:.7rem;background:#fff;color:var(--ink);font-family:inherit}html.dark-theme input:not(.mat-mdc-input-element),html.dark-theme select:not(.mat-mdc-input-element),html.dark-theme textarea:not(.mat-mdc-input-element){background:var(--pp-surface-2);border:1px solid var(--line);color:var(--ink);border-radius:10px;font-size:.9rem}html.dark-theme input:not(.mat-mdc-input-element):focus,html.dark-theme select:not(.mat-mdc-input-element):focus,html.dark-theme textarea:not(.mat-mdc-input-element):focus{outline:none;border-color:var(--pp-accent)}textarea:not(.mat-mdc-input-element){resize:vertical}.admin-form,.settings{display:grid;gap:1rem}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.stats div{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.2rem}html.dark-theme .stats div{background:var(--pp-surface);border:1px solid var(--line);border-radius:12px}.stats strong{font-size:2rem;color:var(--blue-dark);display:block}.legacy-table{display:grid;gap:.7rem}.legacy-table article,.table article{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem;align-items:center;border-left:4px solid var(--teal);padding:1rem;background:#fff;border-radius:14px}html.dark-theme .legacy-table article,html.dark-theme .table article{background:var(--pp-surface);border-left:3px solid var(--pp-accent);border-radius:12px}.table{display:grid;gap:.7rem}.admin-gallery img{height:160px}.admin-content button:not(.mat-mdc-button-base):not(.mdc-icon-button){border:0;border-radius:999px;background:var(--blue);color:#fff;padding:.55rem 1.1rem;font-weight:700;cursor:pointer;width:auto;justify-self:start;align-self:start}.admin-content button.danger{background:#e53935}.admin-content button:disabled{opacity:.55;cursor:not-allowed}html.dark-theme .admin-content button:not(.mat-mdc-button-base):not(.mdc-icon-button){background:var(--pp-accent-soft);color:#c7b6ff;border-radius:10px;font-weight:500}html.dark-theme .admin-content button.danger{background:#e07b7b29;color:#e07b7b}html.dark-theme .mat-mdc-unelevated-button,html.dark-theme .mat-mdc-raised-button{background-color:var(--pp-accent-soft);border:0;color:#c7b6ff;border-radius:10px;font-weight:500;letter-spacing:0}html.dark-theme .mat-mdc-unelevated-button:hover,html.dark-theme .mat-mdc-raised-button:hover{background-color:#8a6eff42}html.dark-theme .mat-mdc-outlined-button{border-color:var(--line);color:#fff;border-radius:10px}html.dark-theme .mat-mdc-button[color=warn]{color:#e07b7b}.admin-content>h1,.admin-content>.admin-form,.admin-content>.settings,.admin-content>.filters,.admin-content>.legacy-table,.admin-content>.table,.admin-content>.stats,.admin-content>.gallery-grid,.admin-content>p{max-width:900px;margin-left:auto;margin-right:auto}html.dark-theme .mdc-text-field{background-color:var(--pp-surface-2)}html.dark-theme .mdc-text-field__input{color:var(--ink)}html.dark-theme input:not(.mat-mdc-input-element),html.dark-theme textarea:not(.mat-mdc-input-element),html.dark-theme .mdc-text-field__input,html.dark-theme .mat-mdc-input-element{caret-color:#fff}.mat-mdc-form-field .mat-mdc-input-element{line-height:1.5;height:auto}html.dark-theme .mat-mdc-form-field-label{color:var(--muted)}html.dark-theme .mat-mdc-table{background-color:var(--pp-surface);color:var(--ink)}html.dark-theme .mat-mdc-header-cell{background-color:var(--pp-surface);color:var(--muted);font-size:.78rem;font-weight:500;border-bottom-color:var(--line)}html.dark-theme .mat-mdc-cell{color:#fff;font-size:.88rem;border-bottom-color:var(--line)}html.dark-theme .mat-mdc-button:not([disabled]){color:#fff}html.dark-theme .mat-mdc-icon-button:not([disabled]){color:var(--muted)}html.dark-theme .mat-mdc-icon-button:not([disabled]):hover{color:#fff;background:var(--pp-surface-2)}html.dark-theme .mat-toolbar{background:var(--pp-bg);color:#fff;border-bottom:1px solid var(--line)}html.dark-theme .mat-nav-list{background:transparent;color:var(--ink)}html.dark-theme .mat-mdc-list-item{color:var(--ink);font-size:.9rem}html.dark-theme .mat-mdc-list-item:hover{background-color:var(--pp-surface-2)}html.dark-theme .mat-mdc-dialog-surface{background:var(--pp-surface);color:#fff;border-radius:14px}html.dark-theme .mat-mdc-dialog-title{color:#fff}html.dark-theme .mat-mdc-dialog-content{color:var(--pp-label)}html.dark-theme .mat-mdc-snack-bar-container{--mdc-snackbar-container-color:var(--pp-surface-2)}
