.send-confirmation{width:100%;min-height:350px;padding-block:32px;text-align:center}.send-confirmation-seal{position:relative;display:grid;place-items:center;width:96px;height:96px;margin:0 auto 28px;color:var(--gold)}.send-confirmation-seal:before{content:"";position:absolute;inset:0;border-radius:50%;background:color-mix(in srgb,var(--gold) 4%,transparent);transition:background .55s var(--ease)}.send-confirmation-seal svg{position:absolute;width:100%;height:100%;overflow:visible;fill:none}.send-track{stroke:var(--line);stroke-width:1;opacity:.65}.send-orbit{stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-dasharray:65 195;transform-origin:48px 48px;opacity:0}.send-check{stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:48;stroke-dashoffset:48;opacity:0}.send-error-mark{stroke:var(--danger);stroke-width:2;stroke-linecap:round;opacity:0}.send-confirmation-copy>:is(h1,h2){font-family:var(--serif);font-size:clamp(1.8rem,6vw,2rem);font-weight:400;line-height:1.2;letter-spacing:-.016em;text-wrap:balance;margin:0 0 14px}.send-confirmation-copy>:is(h1,h2):focus{outline:none}.send-confirmation-copy>p{color:var(--muted);font-size:var(--text-sm);line-height:1.8;max-width:32ch;min-height:76px;margin:0 auto;overflow-wrap:anywhere;white-space:pre-line}.send-confirmation-action{width:100%;max-width:360px;margin:28px auto 0}.send-confirmation[data-state=sending] .send-orbit{opacity:1;animation:send-orbit 1.4s linear infinite}.send-confirmation[data-state=success] .send-confirmation-seal{color:var(--success)}.send-confirmation[data-state=success] .send-confirmation-seal:before{background:color-mix(in srgb,var(--success) 5%,transparent);animation:send-bloom .9s var(--ease) both}.send-confirmation[data-state=success] .send-track{stroke:var(--success);opacity:.25}.send-confirmation[data-state=success] .send-check{opacity:1;animation:send-draw .48s var(--ease) .12s forwards}.send-confirmation[data-state=success] .send-confirmation-copy{animation:send-arrive .55s var(--ease) both}.send-confirmation[data-state=error] .send-error-mark{opacity:1}.send-confirmation[data-state=error] .send-confirmation-seal:before{background:color-mix(in srgb,var(--danger) 3%,transparent)}.send-confirmation[data-state=error] .send-confirmation-copy{animation:send-arrive .35s var(--ease) both}@keyframes send-orbit{to{transform:rotate(360deg)}}@keyframes send-draw{to{stroke-dashoffset:0}}@keyframes send-bloom{0%{transform:scale(.88)}55%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes send-arrive{0%{opacity:.65;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.send-confirmation *,.send-confirmation *:before{animation:none!important;transition:none!important}.send-confirmation[data-state=success] .send-check{stroke-dashoffset:0}}.moment-invite{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--line);text-align:center}.moment-invite>button{display:inline-flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:50px;padding:10px 4px;border:0;background:transparent;color:var(--accent);font:400 1.2rem/1.4 var(--serif);text-wrap:balance}.moment-invite>button svg{width:18px;height:18px}.moment-invite>p{font-size:var(--text-xs);color:var(--muted);line-height:1.7}.moment-page h1{max-width:14ch;font-size:clamp(2.35rem,8vw,3.3rem);text-wrap:balance}.moment-page>.intro{max-width:43ch;font-size:var(--text-sm);line-height:1.8;margin-bottom:var(--space-5)}.moment-live{border-block:1px solid var(--line)}.moment-leaf{padding-block:var(--space-5);animation:moment-turn .26s cubic-bezier(.16,1,.3,1)}.moment-leaf h2{max-width:28ch;margin:0 0 var(--space-3);font-size:clamp(1.6rem,5.8vw,2.1rem);line-height:1.35;text-wrap:pretty}.moment-leaf p{max-width:49ch;font-size:var(--text-sm);color:var(--muted);line-height:1.85}.moment-actions{margin-top:var(--space-4)}.moment-actions .primary svg{width:19px;height:19px}.moment-other{width:100%;gap:8px;margin-top:6px}.moment-note{max-width:43ch;margin:var(--space-3) auto 0;text-align:center;font-size:var(--text-xs);line-height:1.8;color:var(--muted)}.moment-saved{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:var(--space-3);font-size:var(--text-xs);line-height:1.7;color:var(--success)}.moment-invite>.moment-saved{color:var(--success)}.moment-saved svg{width:16px;height:16px}.moment-context{margin-bottom:var(--space-5);padding-block:var(--space-3);border-block:1px solid var(--line)}.moment-context p{margin-bottom:6px;font:400 1.15rem/1.5 var(--serif)}.moment-context small{display:block;font-size:var(--text-xs);line-height:1.8;color:var(--muted)}.moment-context .text-button{margin-top:3px;font-size:var(--text-xs);text-align:left}@keyframes moment-turn{0%{opacity:.65;transform:translateY(4px);clip-path:inset(0 0 5%)}to{opacity:1;transform:translateY(0);clip-path:inset(0)}}@media(prefers-reduced-motion:reduce){.moment-leaf{animation:none}}.admin-workspace .content-editor,.admin-workspace .theme-editor{padding:0;margin:0;border:0;border-radius:0;background:transparent;box-shadow:none;min-width:0}.admin-workspace .content-editor+.theme-editor,.admin-workspace .theme-editor+.content-editor{border-top:1px solid var(--line);margin-top:2.5rem;padding-top:2.5rem}.admin-workspace .content-editor>p,.admin-workspace .theme-editor>p{max-width:65ch}.admin-workspace .content-language-tabs{display:inline-flex;flex-wrap:wrap;gap:.25rem;padding:.25rem;margin-bottom:1.5rem;border-radius:8px;background:var(--soft, #eee7dc)}.admin-workspace .content-language-tabs button{min-height:44px;padding:.5rem 1rem;border:0;border-radius:6px;background:transparent;color:var(--ink);font-size:.875rem;font-weight:500}.admin-workspace .content-language-tabs button:hover{background:var(--paper)}.admin-workspace .content-language-tabs button[aria-selected=true]{color:var(--accent);background:var(--paper);box-shadow:0 2px 5px #302d2714;font-weight:600}.admin-workspace .content-language-panel{max-width:46rem;margin-bottom:.75rem}.admin-workspace .content-language-panel[hidden]{display:none}.admin-workspace .content-editor textarea{min-height:8rem;line-height:1.6}.admin-workspace .content-editor #content-contact-hint,.admin-workspace .theme-editor #theme-contrast-hint{color:var(--muted);font-size:.875rem;margin-block:.5rem 1.5rem}.admin-workspace .theme-editor-fields{max-width:46rem;grid-template-columns:minmax(0,1fr) minmax(8rem,.5fr);align-items:end}.admin-workspace .theme-editor>.field{max-width:46rem}.admin-workspace .theme-preview{max-width:46rem;border:1px solid var(--line);border-radius:12px;padding:clamp(1.25rem,4vw,3rem)}.admin-workspace .content-editor-actions,.admin-workspace .theme-editor-actions{margin-top:1.5rem}@media(max-width:480px){.admin-workspace .theme-editor-fields{grid-template-columns:1fr}.admin-workspace .content-language-tabs{display:flex}.admin-workspace .content-language-tabs button{flex:1;padding-inline:.5rem}}.qr-workspace{min-width:0}.qr-workspace>.guest-access{--qr-size: 112px;padding:20px;margin-bottom:30px;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper);gap:24px}.qr-workspace .guest-access-info{gap:8px}.qr-workspace .guest-access h2{font:600 1rem/1.4 var(--sans)}.qr-workspace .guest-access p{margin:0;font-size:.875rem;color:var(--muted)}.qr-workspace .guest-access-link{font-size:.875rem;justify-self:start}.qr-workspace .guest-access-actions{margin-top:6px}.qr-workspace .guest-access-actions>*{font-size:.8125rem;min-height:42px;padding:9px 12px}.print-title{font-size:1.6rem;margin:0 0 6px}.print-intro{max-width:65ch;font-size:.875rem;color:var(--muted);margin:0 0 24px}.print-workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,.92fr);align-items:start;gap:28px}.print-controls{min-width:0}.print-controls fieldset{border:0;padding:0;margin:0 0 26px;min-width:0}.print-controls fieldset+fieldset{border-top:1px solid var(--line);padding-top:24px}.print-controls legend,.print-preview h3{font:600 .875rem/1.4 var(--sans);margin:0 0 12px;padding:0}.print-controls fieldset+fieldset legend{float:none;width:auto}.print-kind-choices,.print-field-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.print-kind-choices{margin-bottom:20px}.print-kind-choice{display:flex;align-items:center;gap:10px;padding:13px 12px;border:1px solid var(--line);border-radius:var(--radius);cursor:pointer;background:var(--paper);min-height:78px}.print-kind-choice:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--paper))}.print-kind-choice strong,.print-kind-choice small{display:block}.print-kind-choice strong{font-size:.8125rem}.print-kind-choice small{font-size:.75rem;color:var(--muted);margin-top:3px}.print-controls .field{margin:0 0 16px;font-size:.8125rem;min-width:0}.print-controls select,.print-controls input,.print-controls textarea{width:100%;min-width:0}.print-controls select,.print-controls textarea{display:block;margin-top:6px;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px;font:inherit;font-size:.9375rem;min-height:46px}.print-controls textarea{resize:vertical;line-height:1.5}.print-check{display:flex;align-items:center;gap:9px;min-height:var(--control-height);cursor:pointer;font-size:.8125rem}.print-check input,.print-kind-choice input{width:17px;height:17px;margin:0;accent-color:var(--accent);flex:0 0 auto}.print-preview{min-width:0;position:sticky;top:24px;background:var(--soft, var(--ivory));border-radius:var(--radius-card);padding:20px}.print-view-picker,.print-text-picker{display:flex;gap:4px;padding:4px;background:color-mix(in srgb,var(--ink) 5%,var(--ivory));border-radius:var(--radius);margin-bottom:20px}.print-view-picker button,.print-text-picker button{flex:1;min-width:0;min-height:40px;font:inherit;font-size:.8125rem;padding:7px;border:0;border-radius:4px;background:transparent;color:var(--ink);cursor:pointer}.print-view-picker button.secondary[aria-pressed=true],.print-text-picker button[aria-pressed=true]{color:var(--accent);background:var(--paper);font-weight:600}.print-preview-stage{display:flex;justify-content:center;align-items:center;min-height:360px;padding:20px;background:color-mix(in srgb,var(--ink) 9%,var(--ivory));border-radius:4px;overflow:hidden}.print-preview-stage>img{display:block;width:100%;max-height:32rem;object-fit:contain;filter:drop-shadow(0 5px 8px rgb(48 45 39 / 12%))}.print-preview-page>img{max-height:38rem}.print-preview-status{min-height:2.5rem;font-size:.8125rem;text-align:center;color:var(--muted);font-variant-numeric:tabular-nums}.print-download{width:100%;margin-top:8px}.print-hint{font-size:.8125rem;color:var(--muted);line-height:1.6}.print-controls select:focus-visible,.print-controls textarea:focus-visible,.print-text-picker button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:950px){.print-workspace{grid-template-columns:minmax(0,1fr)}.print-preview{position:static}.print-preview-stage>img{max-height:25rem}}@media(max-width:640px){.qr-workspace>.guest-access{--qr-size: 88px;grid-template-columns:minmax(0,1fr) var(--qr-size);padding:16px;gap:12px}.qr-workspace .guest-access-qr{grid-row:auto}.print-preview{padding:14px}}@media(max-width:480px){.qr-workspace>.guest-access{grid-template-columns:minmax(0,1fr)}.qr-workspace .guest-access-qr{display:none}.print-field-pair{grid-template-columns:minmax(0,1fr)}.print-preview-stage{min-height:300px;padding:14px}}.admin-app{--admin-width: 1280px;--accent: #6b473a;--ink: #302d27;--muted: #746c60;--line: #d9cebb;--paper: #fffcf7;--ivory: #f7f3eb;background:var(--ivory);min-height:100dvh;color:var(--ink);font-size:15px}.admin-app .admin-page{max-width:none;margin:0;padding:0}.admin-top{max-width:1280px;min-height:88px;margin:auto;padding:18px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-brand-group,.admin-top-actions{display:flex;align-items:center;gap:24px}.admin-brand{font:29px/1 var(--serif);text-decoration:none;color:var(--ink)}.admin-brand-group>span{font-size:13px;color:var(--muted);padding-left:24px;border-left:1px solid var(--line)}.admin-top .language-picker{margin:0}.admin-top .language-picker select{font-size:13px}.admin-app .secondary,.admin-app .primary{min-height:44px;border-radius:7px;padding:10px 16px;font-size:14px}.admin-top .admin-guest-open{text-decoration:none;background:var(--paper)}.admin-mode-wrap{border-block:1px solid var(--line);background:var(--paper)}.admin-mode-inner{max-width:1280px;margin:auto;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;gap:25px}.admin-modes{display:flex;padding:5px;gap:4px;border:1px solid var(--line);border-radius:10px;background:var(--ivory)}.admin-modes button{display:flex;align-items:center;gap:12px;text-align:left;min-height:62px;min-width:215px;border:0;border-radius:6px;padding:10px 19px;background:transparent;color:var(--muted)}.admin-modes strong,.admin-modes small{display:block}.admin-modes strong{font-size:15px;font-weight:600}.admin-modes small{font-size:12px;margin-top:1px}.admin-modes button[aria-pressed=true]{background:var(--accent);color:#fff}.admin-modes button[aria-pressed=true] small{color:#f1e4dc}.admin-modes button:not([aria-pressed=true]):hover{background:#eee7dc}.admin-mode-note{font-size:13px;max-width:260px;color:var(--muted)}.admin-icon{width:19px;height:19px;flex-shrink:0}.admin-layout{max-width:1280px;margin:auto;padding:35px 40px 60px;display:grid;grid-template-columns:205px minmax(0,1fr);gap:40px}.admin-sidenav{min-width:0;padding-top:4px}.admin-sidenav>p{margin:0 12px 13px;font-size:12px;color:var(--muted)}.admin-app .couple-tabs{display:flex;flex-direction:column;gap:5px;border:0;margin:0;padding:0}.admin-app .couple-tabs button{width:100%;display:flex;align-items:center;gap:11px;min-height:48px;text-align:left;border:0;border-radius:7px;padding:12px;color:var(--muted);font-size:14px}.admin-app .couple-tabs button[aria-selected=true]{background:#e9e0d4;color:var(--accent);font-weight:600}.admin-app .couple-tabs button:hover:not([aria-selected=true]){background:#eee7dc}.admin-side-note{margin:29px 12px 0;padding-top:22px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.admin-main{min-width:0}.admin-page-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:26px}.admin-app .admin-page-head h1{font-size:36px;line-height:1.25;margin:0}.admin-page-head p{color:var(--muted);margin-top:8px;max-width:60ch}.admin-logout{flex-shrink:0;font-size:13px}.admin-app .admin-card{margin:0 0 32px;padding:0;border-top:0}.admin-app .admin-card h2,.admin-app .admin-tools h2{font-size:27px;line-height:1.3;margin:0 0 10px}.admin-app .event-settings{max-width:720px}.admin-app .event-settings>p{color:var(--muted)}.admin-app .admin-tools{margin:32px 0 0;padding:26px 0;gap:16px;font-size:14px}.admin-app .admin-tools>p{margin:0}.admin-app .admin-totals{font-variant-numeric:tabular-nums}.admin-app .admin-media{margin-top:24px}.admin-app .admin-media article{background:var(--paper)}.admin-app .admin-media .status{font-size:13px}.admin-app .message-list article{padding:22px 0;border-bottom:1px solid var(--line)}.admin-app .message-list article:first-child{padding-top:0}.admin-app .message-body{max-width:65ch}.admin-app .message-list time{color:var(--muted);font-size:13px}.admin-app .download-option{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)}.admin-app .download-option h2{font-size:25px;margin:0 0 6px}.admin-app .download-option p{color:var(--muted);max-width:56ch}.admin-app .download-option>button{flex-shrink:0}.admin-app .export-links{margin-top:24px}.admin-app select:focus-visible{outline:2px solid var(--accent);outline-offset:4px}@media(max-width:1050px){.admin-layout{grid-template-columns:170px minmax(0,1fr);gap:25px;padding-inline:25px}.admin-top,.admin-mode-inner{padding-inline:25px}.admin-mode-note{max-width:210px}}@media(max-width:800px){.admin-top{min-height:75px;padding:16px 22px}.admin-brand-group,.admin-top-actions{gap:14px}.admin-brand-group>span{padding-left:14px}.admin-mode-inner{padding:17px 22px}.admin-mode-note{display:none}.admin-modes{width:100%}.admin-modes button{flex:1;min-width:0;justify-content:center;padding:10px 12px}.admin-layout{display:block;padding:0 22px 40px}.admin-sidenav{padding-top:19px;margin-bottom:26px}.admin-sidenav>p,.admin-side-note{display:none}.admin-app .couple-tabs{flex-direction:row;gap:8px;border-bottom:1px solid var(--line);padding-bottom:14px;overflow-x:auto;scrollbar-width:thin}.admin-app .couple-tabs button{width:auto;flex-shrink:0;white-space:nowrap;padding:10px 13px}.admin-app .couple-tabs .admin-icon{display:none}.admin-page-head{margin-bottom:20px}.admin-app .admin-page-head h1{font-size:31px}}@media(max-width:600px){.admin-app{font-size:14px}.admin-top{padding:17px 18px;gap:12px;flex-wrap:wrap}.admin-brand-group>span{display:none}.admin-top-actions{gap:10px}.admin-top .admin-guest-open{font-size:12px;padding:8px 10px}.admin-mode-inner{padding:14px 16px}.admin-modes button{gap:9px;padding:10px;min-height:65px}.admin-modes strong{font-size:14px}.admin-modes small{font-size:11px}.admin-layout{padding-inline:18px}.admin-app .admin-page-head h1{font-size:29px}.admin-app .admin-page-head p{font-size:13px}.admin-app .event-settings-fields{grid-template-columns:minmax(0,1fr)}.admin-app .deadline{align-items:stretch;flex-direction:column;width:100%}.admin-app .deadline label{min-width:0}.admin-app .download-option{align-items:stretch;flex-direction:column;gap:14px}}.admin-empty{padding:64px 20px;text-align:center;border-block:1px solid var(--line)}.admin-empty>.admin-icon{width:34px;height:34px;color:var(--accent);margin-bottom:16px}.admin-app .admin-empty h2{font-size:28px;margin:0 0 12px}.admin-empty>p{max-width:46ch;margin:0 auto 24px;color:var(--muted)}.admin-media-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.admin-media-filters>button{min-height:44px;padding:9px 16px;color:var(--muted);background:transparent;border:1px solid var(--line);border-radius:7px;font-size:13px}.admin-media-filters>button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.admin-media-filters>button:hover:not([aria-pressed=true]){background:#eee7dc}.admin-filter-empty{padding-block:32px;color:var(--muted)}@media(max-width:600px){.admin-empty{padding:44px 16px}.admin-app .admin-empty h2{font-size:25px}.admin-media-filters{gap:6px}.admin-media-filters>button{padding-inline:12px}}.admin-workspace>[role=tabpanel]:not([hidden]){animation:admin-panel-in .18s cubic-bezier(.16,1,.3,1)}@keyframes admin-panel-in{0%{opacity:.8;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.admin-workspace>[role=tabpanel]{animation:none}}.admin-memory-toolbar{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px}.admin-memory-toolbar .admin-media-filters{margin-bottom:0}.admin-refresh{flex-shrink:0}.admin-refresh-status{color:var(--success);margin-bottom:20px;font-size:14px}.guest-app{min-height:100svh}.guest-app .guest-shell{max-width:var(--page-width);min-height:100svh;margin-inline:auto;background:var(--ivory)}.guest-app .guest-page{padding:0;min-height:60vh}.guest-app .guest-screen{padding:var(--space-4) var(--page-inset) var(--space-6);animation:guest-screen-arrive .2s var(--ease)}.guest-app .home .guest-screen{padding:0 var(--page-inset) var(--space-3)}.guest-app .home-content{margin-inline:calc(-1 * var(--page-inset));padding-inline:var(--page-inset)}.guest-app .guest-screen h1:focus{outline:none}.guest-app .success{animation:guest-screen-arrive .2s var(--ease)}.guest-app .bottom-nav{max-width:none;padding:0;display:block}.guest-app .bottom-nav-controls{max-width:var(--page-width);margin-inline:auto;display:flex;padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom))}.guest-app .empty{padding-block:var(--space-5)}.guest-app .empty .primary{margin-top:var(--space-4)}@keyframes guest-screen-arrive{0%{opacity:.65;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:700px){.guest-app .guest-screen{padding-top:var(--space-5)}}@media(prefers-reduced-motion:reduce){.guest-app .guest-screen,.guest-app .success{animation:none}}:root{--ivory: #f7f3eb;--paper: #fffcf7;--ink: #302d27;--muted: #746c60;--accent: #6b473a;--gold: #a18757;--gold-ink: #78623c;--line: #d9cebb;--danger: #8b302d;--success: #385e43;--serif: "Wedding Serif", Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-xs: .76rem;--text-sm: .87rem;--text-base: 1rem;--text-md: 1.12rem;--text-lg: 1.5rem;--text-title: clamp(2.6rem, 8vw, 4.15rem);--text-hero: clamp(2.6rem, 9vw, 4.6rem);--space-1: .3rem;--space-2: .65rem;--space-3: 1rem;--space-4: 1.5rem;--space-5: 2.25rem;--space-6: 3.25rem;--space-7: 4.5rem;--radius: .45rem;--radius-card: 1rem;--page-width: 640px;--admin-width: 1050px;--page-inset: clamp(1.4rem, 5vw, 2.75rem);--control-height: 50px;--nav-height: 76px;--ease: cubic-bezier(.2, .65, .3, 1);--transition: .22s var(--ease);--shadow: 0 12px 42px #40331d0a}@font-face{font-family:"Wedding Serif";src:url(/assets/wedding-serif-CJYS_En0.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}::selection{color:#fff;background:var(--accent)}html{scrollbar-color:var(--muted) var(--ivory)}input,textarea{caret-color:var(--accent)}*{box-sizing:border-box}html{background:var(--ivory);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}body{margin:0}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}a{color:var(--accent);text-underline-offset:4px}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:5px}summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}button:active:not(:disabled){transform:scale(.98)}button{transition:background var(--transition),transform var(--transition),opacity var(--transition)}h1,h2,p{margin:0}h1,h2{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.025em}h1{font-size:var(--text-title);margin-bottom:var(--space-4)}h1 em{font-weight:400;color:var(--accent)}h2{font-size:2.2rem;margin:var(--space-4) 0}svg{flex-shrink:0}img,video{max-width:100%}audio{width:100%}small{font-size:var(--text-sm)}.brand{max-width:var(--page-width);margin:auto;padding:var(--space-4) var(--page-inset);display:flex;justify-content:space-between;align-items:center;gap:var(--space-3)}.brand button{min-width:0;overflow-wrap:anywhere;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.brand .language-picker{flex-shrink:0}.brand button,.brand a{background:none;border:0;text-align:left;padding:0;min-height:44px;text-decoration:none;color:var(--ink);font-family:var(--serif);font-size:var(--text-md)}.brand span:not(.brand-mark){display:block;font-family:var(--sans);font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:var(--space-1)}.brand .brand-mark{font:italic 2rem var(--serif);color:var(--gold)}.guest-page{max-width:var(--page-width);margin:auto;padding:var(--space-4) var(--page-inset) var(--space-6);outline:none;min-height:65vh}.guest-page.home{padding-top:0;padding-bottom:var(--space-3);min-height:auto}.intro{font-size:var(--text-base);color:var(--muted);max-width:65ch;margin-bottom:var(--space-5)}.home-content{position:relative;isolation:isolate;background:var(--ivory);padding:clamp(2rem,5vw,3.5rem) clamp(1.5rem,6vw,3.5rem) 2rem}.invitation-material{position:absolute;inset:0;width:100%;height:100%;background-image:url(/assets/invitation-sheet-DtHqOrMt.webp);background-size:100% 100%;filter:sepia(1);mix-blend-mode:multiply;opacity:.12;z-index:-1;pointer-events:none}.hero{text-align:center;padding-bottom:var(--space-4)}.hero,.home-actions{background:var(--ivory)}.hero .wedding-names{font-family:var(--serif);font-weight:400;font-style:normal;font-size:var(--text-hero);line-height:1.12;letter-spacing:-.025em;overflow-wrap:anywhere;text-wrap:balance;margin:0 0 var(--space-4)}.wedding-date{font:400 var(--text-md)/1.5 var(--serif);color:var(--ink);overflow-wrap:anywhere}.wedding-date:before,.wedding-date:after{content:"";display:block;width:3rem;height:1px;margin:var(--space-3) auto;background:var(--accent)}.welcome{max-width:40ch;margin:var(--space-4) auto 0;color:var(--ink);font-size:var(--text-sm);overflow-wrap:anywhere;text-wrap:pretty}.home-actions{display:grid}.home-actions button{width:100%;min-height:5.4rem;display:flex;align-items:center;gap:var(--space-3);background:none;border:0;padding:var(--space-4) 0;text-align:left}.home-actions .photo-action{min-height:4.7rem;padding:var(--space-3) var(--space-3);margin-bottom:var(--space-4);border-radius:.75rem;background:var(--accent);color:#fff;justify-content:center}.photo-action .action-copy{flex:0 1 auto}.photo-action .action-copy small{color:inherit;font-size:var(--text-xs)}.home-actions .invitation-row{border-top:1px solid var(--line)}.home-actions button:hover:not(:disabled){background:var(--paper)}.home-actions .photo-action:hover:not(:disabled){background:var(--accent);filter:brightness(1.08)}.action-icon{display:grid;place-items:center;color:inherit;flex-shrink:0;width:1.75rem}.action-icon svg{width:1.6rem;height:1.6rem}.action-copy{flex:1;min-width:0}.action-copy strong{font:400 var(--text-md)/1.35 var(--serif);display:block}.action-copy small{display:block;color:var(--muted);font-size:var(--text-xs);margin-top:var(--space-1)}.home-actions>button>svg{color:var(--accent);width:1rem;height:1rem}.primary,.secondary{min-height:var(--control-height);display:inline-flex;justify-content:center;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);border-radius:var(--radius);border:1px solid var(--accent);font-size:var(--text-sm);font-weight:500;letter-spacing:.025em}.primary{background:var(--accent);color:#fff}.primary:hover:not(:disabled){filter:brightness(1.1)}.secondary{background:transparent;color:var(--accent)}.secondary:hover:not(:disabled){background:var(--paper)}.full{width:100%}.text-button{min-height:44px;background:none;border:0;color:var(--accent);font-size:var(--text-sm);padding:var(--space-2) 0;display:inline-flex;align-items:center;justify-content:center;text-decoration:underline;text-underline-offset:5px}.back{margin-bottom:var(--space-4);text-decoration:none}.danger{color:var(--danger)}.field{display:block;font-size:var(--text-sm);font-weight:500;margin:var(--space-5) 0 var(--space-4)}.field>span{font-size:var(--text-xs);font-weight:400;color:var(--muted);margin-left:var(--space-2)}input,textarea{width:100%;border:1px solid var(--line);background:var(--paper);border-radius:var(--radius);padding:var(--space-3);color:var(--ink);margin-top:var(--space-2);min-height:var(--control-height);font-size:16px}textarea{resize:vertical;line-height:1.6}.field>small{display:block;text-align:right;color:var(--muted);font-weight:400}input::placeholder,textarea::placeholder{color:var(--muted)}.notice{border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-3);background:var(--paper);font-size:var(--text-sm);margin:var(--space-4) 0;color:var(--success);overflow-wrap:anywhere}.notice.error{border-color:var(--danger);color:var(--danger)}.privacy,.hint{color:var(--muted);font-size:var(--text-xs);margin-top:var(--space-3);line-height:1.7}.privacy{text-align:center;margin-top:var(--space-4)}.drop-zone{width:100%;border:1px dashed var(--gold);border-radius:var(--radius-card);padding:var(--space-6) var(--space-3);display:flex;flex-direction:column;align-items:center;background:var(--paper);gap:var(--space-3);color:var(--accent)}.drop-zone>svg{width:32px;height:32px}.drop-zone strong{font-weight:500;font-size:var(--text-base)}.drop-zone span{font-size:var(--text-xs);color:var(--muted)}.photo-selection{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);margin-top:var(--space-4)}.selected{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-2);overflow:hidden}.selected img{width:100%;height:130px;object-fit:cover;border-radius:var(--radius)}.selected p{font-size:var(--text-xs);overflow-wrap:anywhere}.selected span,.selected small{font-size:var(--text-xs);display:block;color:var(--muted)}.selected small{color:var(--danger)}progress{width:100%;height:5px;appearance:none;border:0;background:var(--line);border-radius:10px;overflow:hidden;margin:var(--space-2) 0;accent-color:var(--accent)}progress::-webkit-progress-bar{background:var(--line)}progress::-webkit-progress-value{background:var(--accent)}.upload-progress{margin-bottom:var(--space-3);font-size:var(--text-xs);color:var(--muted)}.segmented{display:flex;border-bottom:1px solid var(--line);margin-bottom:var(--space-5);gap:var(--space-2)}.segmented button{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);background:none;border:0;border-bottom:2px solid transparent;padding:var(--space-3) var(--space-2);font-size:var(--text-sm);color:var(--muted);min-height:var(--control-height)}.segmented svg{width:18px}.segmented button[aria-pressed=true]{color:var(--accent);border-bottom-color:var(--accent)}.recorder{text-align:center;padding:var(--space-4) 0 var(--space-5)}.record-orb{width:95px;height:95px;margin:0 auto var(--space-4);border:1px solid var(--line);border-radius:50%;background:var(--paper);display:grid;place-items:center;color:var(--accent)}.record-orb svg{width:34px;height:34px}.record-orb.recording{color:var(--danger);border-color:var(--danger)}.recorder>p{font-family:var(--serif);font-size:var(--text-md);margin-bottom:var(--space-4)}.recorder .record-time{font-family:var(--sans);font-variant-numeric:tabular-nums;font-size:var(--text-lg)}.record-time span{font-size:var(--text-sm);color:var(--muted)}.preview{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:var(--space-4);margin-bottom:var(--space-4)}.preview p{font-size:var(--text-xs);color:var(--muted);overflow-wrap:anywhere}video{border-radius:var(--radius);background:var(--ink);max-height:380px;width:100%}.live{margin-bottom:var(--space-4)}.hidden{display:none}.success{text-align:center;padding:var(--space-6) 0}.success h1{font-size:var(--text-title)}.success>p{max-width:320px;margin:0 auto var(--space-5);color:var(--muted)}.seal{width:100px;height:100px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;margin:auto auto var(--space-5);color:var(--gold);position:relative}.seal:after{content:"";position:absolute;inset:6px;border:1px solid var(--line);border-radius:50%}.seal svg{width:38px;height:38px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}.gallery-grid button{padding:0;border:0;background:var(--paper);text-align:left;border-radius:var(--radius);overflow:hidden;position:relative}.gallery-grid img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s var(--ease)}.gallery-grid button:hover img{transform:scale(1.03)}.gallery-grid span{display:block;padding:var(--space-2);font-size:var(--text-xs);overflow-wrap:anywhere}.empty{text-align:center;padding:var(--space-6) 0;color:var(--muted)}.empty>svg{width:32px;height:32px;color:var(--gold)}.empty h2{font-size:var(--text-lg);color:var(--ink)}.lightbox{position:fixed;inset:0;z-index:20;background:#201b18f5;padding:var(--space-4);display:flex;align-items:center;justify-content:center}.lightbox img{max-height:86dvh;max-width:100%;object-fit:contain}.lightbox button{position:absolute;top:var(--space-3);right:var(--space-3);min-height:44px;border:0;padding:var(--space-2) var(--space-3);border-radius:var(--radius);background:var(--paper);color:var(--ink)}footer{max-width:var(--page-width);margin:auto;text-align:center;padding:var(--space-3) var(--page-inset) calc(var(--nav-height) + var(--space-5) + env(safe-area-inset-bottom));border-top:1px solid var(--line);color:var(--muted);font-size:var(--text-xs);overflow-wrap:anywhere}footer p{font-family:var(--serif);font-style:italic;font-size:var(--text-base);margin-bottom:var(--space-2)}footer span{margin:0 var(--space-2)}footer small{font-size:var(--text-xs)}.bottom-nav{position:fixed;bottom:0;left:0;right:0;max-width:var(--page-width);margin:auto;z-index:5;display:flex;background:var(--paper);border-top:1px solid var(--line);padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom))}.bottom-nav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--space-1);padding:var(--space-2);border:0;background:none;color:var(--muted);font-size:var(--text-xs);letter-spacing:.02em;min-height:50px}.bottom-nav svg{width:21px;height:21px}.bottom-nav button[aria-current]{color:var(--accent);text-decoration:underline;text-underline-offset:4px}.entry-screen,.admin-login{max-width:var(--page-width);margin:auto;padding:var(--space-6) var(--page-inset);min-height:90vh}.entry-screen{text-align:center}.entry-screen>p{color:var(--muted)}.admin-page{max-width:var(--admin-width);margin:auto;padding:var(--space-4) var(--page-inset)}.admin-tools{padding:var(--space-4) 0;border-block:1px solid var(--line);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap;margin:var(--space-5) 0}.admin-tools>p{width:100%;color:var(--muted)}.export-links{display:flex;gap:var(--space-3);flex-wrap:wrap;width:100%;font-size:var(--text-sm)}.export-links a{padding:var(--space-2) 0;min-height:44px}.admin-card{padding:var(--space-4) 0;margin:var(--space-4) 0;border:0;border-top:1px solid var(--line);background:transparent}.admin-card .field{margin:var(--space-3) 0}.admin-card h2{font-size:clamp(1.6rem,4vw,2rem)}.guest-invite summary{min-height:var(--control-height);padding:var(--space-2) 0;cursor:pointer;color:var(--accent)}.guest-invite[open]{margin-bottom:var(--space-4)}.event-settings h2{margin-top:0}.event-settings form,.event-settings-fields{display:grid;gap:var(--space-3)}.event-settings form{margin-top:var(--space-4)}.event-settings-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.event-settings form>button{justify-self:start}.guest-access{--qr-size: 220px;display:grid;grid-template-columns:minmax(0,1fr) var(--qr-size);align-items:center;gap:var(--space-5)}.guest-access-info{display:grid;gap:var(--space-3);min-width:0}.guest-access h2{margin:0}.guest-access-link{overflow-wrap:anywhere}.guest-access-actions{display:flex;flex-wrap:wrap;gap:var(--space-2)}.guest-access-actions a{text-decoration:none}.guest-access-qr{width:var(--qr-size);max-width:100%;justify-self:center}@media(max-width:640px){.event-settings-fields{grid-template-columns:minmax(0,1fr)}.guest-access{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.guest-access-qr{grid-row:1}.guest-access-actions>*{flex:1 1 auto}}.message-list article{border-bottom:1px solid var(--line);padding:var(--space-4) 0}.message-body{white-space:pre-wrap;font-family:var(--serif);font-size:var(--text-lg);line-height:1.5;margin-bottom:var(--space-3)}time{color:var(--muted);font-size:var(--text-xs);margin-left:var(--space-2)}.admin-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.admin-media article{padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);overflow:hidden}.admin-media article>img{width:100%;height:200px;object-fit:cover;border-radius:var(--radius);margin-bottom:var(--space-3)}.admin-media p{overflow-wrap:anywhere;margin-top:var(--space-2)}.admin-media small,.status{color:var(--muted);font-size:var(--text-xs)}.media-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;font-size:var(--text-sm);align-items:center;margin-top:var(--space-3)}.visually-hidden{position:absolute;clip:rect(0,0,0,0);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap}.home-content.enter{animation:invitation-open .45s var(--ease)}@keyframes invitation-open{0%{transform:translateY(6px);clip-path:inset(0 0 1.5%);filter:brightness(.98)}to{transform:translateY(0);clip-path:inset(0);filter:brightness(1)}}@media(min-width:700px){.guest-page{padding-top:var(--space-5)}.hero{padding-top:var(--space-6)}.gallery-grid,.photo-selection{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.admin-media{grid-template-columns:1fr}.action-copy strong{font-size:var(--text-md)}.home-actions button{gap:var(--space-3)}.segmented button{gap:var(--space-1)}.lightbox{padding:var(--space-2)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.deadline{font-size:var(--text-sm);display:block;width:100%;max-width:300px}.preview-placeholder{height:130px;display:grid;place-items:center;color:var(--gold);background:var(--ivory);border-radius:var(--radius)}.brand{gap:var(--space-3)}.brand>button,.brand>a{min-width:0;overflow-wrap:anywhere}.language-picker{flex-shrink:0}.language-picker select{min-height:44px;font:inherit;font-size:.82rem;color:var(--ink);border:1px solid var(--line);background:var(--paper);border-radius:6px;padding:.55rem .4rem;max-width:110px}.entry-screen>.language-picker{position:absolute;top:1rem;right:1rem}.couple-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.couple-toolbar p{color:var(--muted);font-size:var(--text-sm)}.couple-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-1);padding:0;border-bottom:1px solid var(--line);margin:var(--space-3) 0 var(--space-5)}.couple-tabs button{border:0;background:transparent;border-bottom:2px solid transparent;min-height:var(--control-height);padding:var(--space-2);color:var(--muted);font-size:var(--text-sm)}.couple-tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--accent);font-weight:600}[role=tabpanel]{min-width:0}[hidden]{display:none!important}.download-help{color:var(--muted);font-size:var(--text-sm);padding-block:var(--space-4);border-top:1px solid var(--line);margin-top:var(--space-5)}.delete-memory{color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-card);padding:var(--space-4);max-width:min(var(--page-width),calc(100% - 2 * var(--page-inset)));max-height:calc(100dvh - 2 * var(--space-4));overflow:auto}.delete-memory::backdrop{background:#302d2780}.delete-memory h2{margin-top:var(--space-2)}.delete-memory img{display:block;max-height:180px;width:100%;object-fit:contain;border-radius:var(--radius)}.delete-memory small{color:var(--muted);display:block}.delete-memory-actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4)}.delete-memory-actions button{flex:1 1 auto}.danger-fill{background:var(--danger);border-color:var(--danger);color:#fff}@media(max-width:640px){.couple-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}}.theme-editor h2{margin-top:0}.theme-editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-block:1.5rem .75rem}.theme-editor input[type=color]{width:100%;height:3rem;padding:.25rem}.theme-editor h3{margin-block:2rem .5rem}.theme-preview{background:var(--ivory);color:var(--ink);padding:1.5rem;overflow-wrap:anywhere;font-family:var(--sans)}.theme-preview .hero{padding-block:1rem}.theme-preview .hero .wedding-names{font-size:clamp(2rem,5vw,3rem)}.theme-editor-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}@media(max-width:480px){.theme-editor-fields{grid-template-columns:1fr}.theme-editor-actions>button{flex:1 1 100%}}.theme-editor select{font:inherit;font-size:1rem;color:var(--ink);background:var(--paper);min-height:48px;padding:.65rem .75rem;border:1px solid var(--line);border-radius:6px;width:100%}.theme-preview .wedding-names{font-family:var(--serif);font-style:normal;font-weight:400}.theme-editor select:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.theme-preview .wedding-names{margin-top:0;line-height:1.1;letter-spacing:-.03em}.content-editor h2{margin-top:0}.content-editor form{margin-top:1.5rem}.content-editor fieldset{border:0;padding:0;margin:0 0 1.5rem;min-width:0}.content-editor legend{font-weight:600;margin-bottom:.75rem}.content-editor .field{margin-bottom:.75rem}.content-editor textarea{resize:vertical;font-size:1rem}.content-editor-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem}@media(max-width:480px){.content-editor-actions>button{flex:1 1 100%}}.hero .welcome{overflow-wrap:anywhere;white-space:pre-line}
