:root{--ivory: #f7f3eb;--paper: #fffcf7;--ink: #302d27;--muted: #746c60;--accent: #6b473a;--gold: #a18757;--gold-ink: #78623c;--line: #d9cebb;--danger: #8b302d;--success: #385e43;--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}*{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}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:-.045em}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);border-bottom:1px solid var(--line)}.brand button{min-width:0;overflow-wrap:anywhere}.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}.eyebrow{font:500 var(--text-xs)/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:var(--space-3)}.intro{font-size:var(--text-base);color:var(--muted);max-width:440px;margin-bottom:var(--space-5)}.hero{overflow:clip;text-align:center;position:relative;isolation:isolate;padding:var(--space-6) 0 var(--space-5)}.hero .eyebrow{position:relative;z-index:1}.hero h1{font-size:var(--text-hero);font-style:italic;overflow-wrap:anywhere;margin-bottom:var(--space-2)}.botanical{position:absolute;right:var(--space-2);top:var(--space-4);width:150px;height:180px;color:var(--gold);opacity:.55;z-index:-1;transform:rotate(4deg)}.monogram{display:flex;flex-direction:column;align-items:center;justify-content:center;width:130px;height:160px;border:1px solid var(--line);border-radius:70px 70px 6px 6px;margin:var(--space-5) auto var(--space-5);font:italic 4.5rem/1 var(--serif);color:var(--accent);position:relative;background:var(--ivory)}.monogram:before{content:"";position:absolute;inset:6px;border:1px solid var(--line);border-radius:inherit}.monogram span{font:var(--text-xs)/1.5 var(--sans);letter-spacing:.12em;margin-top:var(--space-2);text-transform:uppercase;color:var(--muted)}.wedding-date{letter-spacing:.14em;font-size:var(--text-xs);text-transform:uppercase;color:var(--muted)}.gold-rule{height:1px;width:55px;background:var(--gold);margin:var(--space-4) auto}.welcome{max-width:365px;margin:auto;color:var(--muted);font-size:var(--text-base)}.home-actions{border-top:1px solid var(--line)}.home-actions button{width:100%;min-height:116px;display:flex;align-items:center;gap:var(--space-4);background:none;border:0;border-bottom:1px solid var(--line);padding:var(--space-4) 0;text-align:left}.home-actions button:hover{background:var(--paper)}.action-icon{color:var(--accent);width:46px;height:46px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;flex-shrink:0}.action-copy{flex:1}.action-copy .eyebrow{display:block;font-size:.65rem;margin-bottom:var(--space-1);color:var(--gold-ink)}.action-copy strong{font:400 var(--text-lg)/1.3 var(--serif);letter-spacing:-.025em;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(--gold);width:20px}.home-note{text-align:center;font:italic var(--text-md)/1.7 var(--serif);color:var(--muted);margin-top:var(--space-5)}.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:var(--paper)}.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-left:2px solid var(--gold);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);box-shadow:var(--shadow)}.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);transition:width var(--transition)}.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{animation:pulse 1.8s ease-in-out infinite}.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 h2{font-size:var(--text-title)}.success>p:not(.eyebrow){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;animation:seal .6s var(--ease)}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2);margin-bottom:var(--space-4)}.gallery button{padding:0;border:0;background:var(--paper);text-align:left;border-radius:var(--radius);overflow:hidden;position:relative}.gallery img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .5s var(--ease)}.gallery button:hover img{transform:scale(1.03)}.gallery 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-4) 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)}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:#fffcf7f5;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--line);border-bottom:0;padding:var(--space-2) var(--space-4) calc(var(--space-2) + env(safe-area-inset-bottom));border-radius:var(--radius-card) var(--radius-card) 0 0;box-shadow:0 -6px 30px #30251b06}.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:.68rem;letter-spacing:.02em;min-height:50px}.bottom-nav svg{width:21px;height:21px}.bottom-nav button[aria-current]{color:var(--accent);background:var(--ivory);border-radius:var(--radius)}.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-6) 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);margin:var(--space-4) 0;border:1px solid var(--line);border-radius:var(--radius-card);background:var(--paper)}.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}.enter,.home-actions button{animation:arrive .6s var(--ease) both}.home-actions button:nth-child(2){animation-delay:70ms}.home-actions button:nth-child(3){animation-delay:.14s}@keyframes arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{box-shadow:0 0 #a1875720}50%{box-shadow:0 0 0 15px #a1875700}}@keyframes seal{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:scale(1)}}@media(min-width:700px){.guest-page{padding-top:var(--space-5)}.hero{padding-top:var(--space-6)}.gallery,.photo-selection{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:480px){.admin-media{grid-template-columns:1fr}.hero .botanical{width:110px;height:140px;top:var(--space-3)}.action-copy strong{font-size:1.3rem}.home-actions button{gap:var(--space-3)}.action-icon{width:40px;height:40px}.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}@media(max-width:480px){:root{--hero-mobile-top: 1rem;--hero-mobile-bottom: 1rem;--monogram-mobile-width: 92px;--monogram-mobile-height: 114px;--monogram-mobile-gap: .85rem;--hero-mobile-rule-gap: .8rem;--action-mobile-height: 100px}.brand{padding-block:var(--space-3)}.hero{padding-top:var(--hero-mobile-top);padding-bottom:var(--hero-mobile-bottom)}.hero .eyebrow{margin-bottom:var(--space-2)}.hero .monogram{width:var(--monogram-mobile-width);height:var(--monogram-mobile-height);margin-block:var(--monogram-mobile-gap);font-size:3.3rem}.hero .monogram span{font-size:.6rem}.hero h1{font-size:2.75rem}.hero .gold-rule{margin-block:var(--hero-mobile-rule-gap)}.hero .welcome{font-size:var(--text-sm)}.home-actions button{min-height:var(--action-mobile-height);padding-block:var(--space-3)}}.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}
