:root{color:#292b25;font-synthesis:none;background:#faf9f6;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input{font:inherit}.button,button{color:#fff;cursor:pointer;background:#33493d;border:1px solid #33493d;border-radius:12px;justify-content:center;align-items:center;gap:.5rem;padding:.8rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}button:disabled{opacity:.5;cursor:wait}.secondary{color:#33493d;background:0 0;border-color:#c6cdc7}.text-button{color:inherit;background:0 0;border:0;padding:.5rem;text-decoration:underline}input{color:#292b25;background:#fff;border:1px solid #c6cdc7;border-radius:8px;width:100%;margin-top:.3rem;padding:.75rem;display:block}label{font-weight:600}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-.045em;font-size:clamp(2.3rem,9vw,4rem);font-weight:550;line-height:1.08}h2{font-size:1.35rem;line-height:1.3}h3{margin-bottom:.5rem;font-size:1.05rem}.page{width:100%;max-width:760px;margin:auto;padding:24px 20px 64px}.actions,.section-heading,nav{justify-content:space-between;align-items:center;gap:12px;display:flex}nav{margin-bottom:36px}.brand{font-size:1.3rem;font-weight:700;text-decoration:none}.hero{padding:64px 0}.hero p{max-width:520px}.eyebrow{text-transform:uppercase;letter-spacing:.15em;color:#657260;font-size:.75rem;font-weight:700}.landing section{margin-bottom:52px}.card{background:#fff;border:1px solid #dfdfd6;border-radius:16px;margin:16px 0;padding:22px}.card p:last-child{margin-bottom:0}.stack{flex-direction:column;gap:16px;display:flex}.stack h2,.stack p{margin-bottom:0}.hint,footer{color:#72756e;font-size:.85rem}.wedding-header{padding:38px 0 12px}.full{width:100%}.hint{text-align:center;margin-top:10px}.section-heading{margin-top:30px;margin-bottom:16px}.section-heading h2{margin:0}small{font-size:.8em;font-weight:400}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:18px;display:grid}.tile{aspect-ratio:1;background:#e5e6df;border-radius:6px;position:relative;overflow:hidden}.tile img,.tile video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%}.play{color:#fff;text-shadow:0 1px 8px #000;pointer-events:none;place-items:center;font-size:1.5rem;display:grid;position:absolute;inset:0}.error{color:#a22222}.actions{flex-wrap:wrap;justify-content:flex-start}.qr{align-self:center;width:100%;max-width:300px}.wrap-link{overflow-wrap:anywhere}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.viewer{color:#fff;background:#111;position:fixed;inset:0}.viewer-nav{z-index:2;padding:calc(16px + env(safe-area-inset-top)) 20px 32px;pointer-events:none;background:linear-gradient(#0009,#0000);position:absolute;top:0;left:0;right:0}.viewer-nav a{pointer-events:auto}.slides{scroll-snap-type:y mandatory;overscroll-behavior:contain;height:100dvh;overflow-y:auto}.slide{scroll-snap-align:start;scroll-snap-stop:always;justify-content:center;align-items:center;height:100dvh;padding:70px 0 90px;display:flex}.slide img,.slide video{-o-object-fit:contain;object-fit:contain;width:100%;height:100%}.viewer-controls{padding:12px 20px calc(16px + env(safe-area-inset-bottom));background:linear-gradient(#0000,#0009);justify-content:center;align-items:center;gap:24px;display:flex;position:absolute;bottom:0;left:0;right:0}.viewer-controls button{background:#3339;border:1px solid #ffffff50;padding:.45rem .9rem}.viewer-message{text-align:center;position:absolute;top:40%;left:20px;right:20px}:focus-visible{outline-offset:3px;outline:3px solid #b28948}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}.guest-page{--rose:#9b4653;--rose-dark:#7d3541;--ink:#493b37;--muted:#81716a;--line:#e8dfd4;width:min(1120px,100%);color:var(--ink);margin:auto;padding:0 36px}body:has(.guest-page){background:#fbf8f1 radial-gradient(#9c816515 .6px,#0000 0) 0 0/6px 6px}.guest-page h1,.guest-page h2,.guest-page h3{letter-spacing:-.045em;font-family:Georgia,Times New Roman,serif;font-weight:400}.guest-page .button,.guest-page button{background:var(--rose);border-color:var(--rose);border-radius:100px;padding:14px 24px;font-size:.85rem;transition:background .2s,transform .2s}.guest-page .button:hover,.guest-page button:hover:not(:disabled){background:var(--rose-dark);transform:translateY(-2px)}.guest-page .eyebrow{color:var(--rose);letter-spacing:.18em;font-size:.65rem;font-weight:600}.guest-nav{border-bottom:1px solid var(--line);min-height:94px;margin:0}.memory-brand{color:#773c46;letter-spacing:-.07em;align-items:center;gap:9px;font-family:Georgia,Times New Roman,serif;font-size:1.85rem;font-weight:400;line-height:1;display:inline-flex}.memory-brand svg{width:32px;height:32px}.brand-serif{font-style:italic}.brand-dot{color:#bd7d64}.nav-links{align-items:center;gap:24px;font-size:.75rem;display:flex}.nav-links a{text-decoration:none}.nav-links a:hover{text-decoration:underline}.nav-links span{color:var(--rose);margin-left:8px}.language-switch{border:1px solid var(--line);background:#f5ede4;border-radius:100px;padding:3px;display:inline-flex}.guest-page .language-switch button{min-width:34px;color:var(--muted);background:0 0;border:0;border-radius:100px;padding:5px 8px;font-size:.65rem;line-height:1;transition:background .2s,color .2s}.guest-page .language-switch button:hover:not(:disabled){color:var(--ink);background:#eadbd0;transform:none}.guest-page .language-switch button.active{background:var(--rose);color:#fff}.guest-page .language-switch button:focus-visible{outline:2px solid var(--rose);outline-offset:2px}.celebration-hero{text-align:center;isolation:isolate;padding:67px 0 25px;position:relative}.celebration-hero .eyebrow span{padding:0 10px;font-size:1rem}.celebration-hero h1{margin:23px 0;font-size:clamp(2.7rem,5.7vw,4.7rem);line-height:1.08}.celebration-hero h1 em{color:var(--rose);font-weight:400}.hero-description{color:var(--muted);max-width:520px;margin:0 auto;font-size:.88rem;line-height:1.85}.hero-floral{z-index:-1;pointer-events:none;width:155px;position:absolute}.hero-floral-left{top:116px;left:-8px;transform:rotate(-22deg)}.hero-floral-right{top:76px;right:-5px;transform:rotate(23deg)}.bouquet{width:100%;height:auto;display:block}.love-divider{color:#b98578;justify-content:center;align-items:center;gap:14px;margin-top:29px;font-family:Georgia,Times New Roman,serif;font-size:1.45rem;display:flex}.love-divider span{background:#dbcaba;width:45px;height:1px}.upload-card{background:#f7e9df;border:1px solid #e9cfc3;border-radius:18px;align-items:center;gap:23px;padding:28px 32px;display:flex;position:relative}.upload-illustration{width:76px;height:84px;color:var(--rose);flex:0 0 76px;place-items:center;display:grid}.camera-drawing{width:64px;transform:rotate(-8deg)}.upload-copy{flex:1;min-width:0}.upload-copy .eyebrow{margin-bottom:7px;font-size:.6rem}.upload-copy h2{margin-bottom:6px;font-size:1.65rem}.upload-copy>p:last-of-type{color:var(--muted);margin:0;font-size:.78rem}.upload-action{flex-direction:column;align-items:center;gap:9px;display:flex}.upload-action button{white-space:nowrap}.button-plus{font-size:1.2rem;font-weight:400;line-height:1}.upload-note{color:var(--muted);font-size:.62rem}.upload-hint{color:var(--muted);margin:11px 0 0;font-size:.64rem}.spinning-bouquet{width:78px;animation:5s linear infinite bouquet-spin}@keyframes bouquet-spin{to{transform:rotate(1turn)}}.upload-copy progress{width:100%;max-width:300px;height:5px;color:var(--rose);accent-color:var(--rose);background:#e5cfc4;border:0;border-radius:8px;margin-top:12px;display:block;overflow:hidden}.upload-copy progress::-webkit-progress-bar{background:#e5cfc4;border-radius:8px}.upload-copy progress::-webkit-progress-value{background:var(--rose);border-radius:8px;transition:width .3s}.upload-copy progress::-moz-progress-bar{background:var(--rose);border-radius:8px}.upload-feedback{background:#edf0e4;border-radius:12px;margin:18px 0 0;padding:14px 20px;font-size:.85rem}.upload-feedback.error{background:#fbe7e3}.memory-section{padding:52px 0 65px;scroll-margin-top:24px}.memory-section .section-heading{align-items:flex-end;margin:0 0 10px}.memory-section .eyebrow{color:var(--muted);margin-bottom:7px;font-size:.6rem}.memory-section h2{align-items:center;gap:13px;font-size:2.2rem;display:flex}.memory-count{letter-spacing:0;background:#efe6da;border:1px solid #e6d9ca;border-radius:50px;place-items:center;min-width:27px;height:27px;padding:3px 8px;font-family:Arial,sans-serif;font-size:.65rem;display:grid}.guest-page .refresh-button{border-color:var(--line);color:var(--ink);background:0 0;padding:9px 15px;font-size:.7rem}.guest-page .refresh-button:hover:not(:disabled){background:#f0e6dc}.refresh-button svg{width:15px;height:15px}.gallery-hint{color:var(--muted);margin:0 0 25px;font-size:.75rem}.memory-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:19px;display:grid}.memory-print{background:#fffefa;border:1px solid #ece5db;min-width:0;padding:9px 9px 0;text-decoration:none;transition:transform .25s,box-shadow .25s;box-shadow:0 3px 8px #6e4c3210}.memory-print:nth-child(4n+1){transform:rotate(-1.2deg)}.memory-print:nth-child(4n+4){transform:rotate(1.2deg)}.memory-print:focus-visible,.memory-print:hover{transform:translateY(-5px)rotate(0);box-shadow:0 8px 18px #6e4c3220}.memory-image{aspect-ratio:1;background:#eee8de;position:relative;overflow:hidden}.memory-image img,.memory-image video{-o-object-fit:cover;object-fit:cover;width:100%;height:100%;display:block}.memory-open{color:#fff;opacity:0;background:#493b3780;border-radius:50%;place-items:center;width:28px;height:28px;transition:opacity .2s;display:grid;position:absolute;bottom:9px;right:9px}.memory-print:focus-visible .memory-open,.memory-print:hover .memory-open{opacity:1}.print-caption{min-height:39px;color:var(--muted);justify-content:space-between;align-items:center;gap:4px;padding:5px 3px;font-size:.59rem;display:flex}.caption-dot{color:#c6aa8d;padding:0 5px}.print-heart{color:#aa6570;font-family:Georgia,Times New Roman,serif;font-size:1.05rem}.empty-memory{text-align:center;border:1px dashed #decebd;border-radius:16px;margin-top:24px;padding:35px 20px}.empty-memory .bouquet{width:100px;margin:0 auto 18px}.empty-memory h3{font-size:1.7rem}.empty-memory p{color:var(--muted);margin-bottom:0;font-size:.85rem}.guest-footer{border-top:1px solid var(--line);text-align:center;flex-direction:column;align-items:center;padding:32px 0;display:flex}.guest-footer .memory-brand{font-size:1.4rem}.guest-footer .memory-brand svg{width:25px;height:25px}.guest-footer p{color:var(--ink);margin:14px 0 4px;font-family:Georgia,Times New Roman,serif;font-size:.95rem}.guest-footer>span{color:var(--muted);font-size:.6rem}.landing-intro{padding-bottom:55px}.landing-intro .hero-description{margin-bottom:25px}.landing-intro .hero-floral{width:175px;top:145px}.landing-steps{border-top:1px solid var(--line);text-align:center;padding:48px 0 60px}.landing-steps h2{margin:10px 0 30px;font-size:2.4rem}.steps-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.step-card{border:1px solid var(--line);background:#f5ebe1;border-radius:80px 80px 12px 12px;padding:30px 23px}.step-card:nth-child(2){background:#f3e3df}.step-card:nth-child(3){background:#eceee2}.step-number{color:var(--rose);font-family:Georgia,Times New Roman,serif;font-size:2rem;font-style:italic}.step-card h3{margin:12px 0;font-size:1.8rem}.step-card p{color:var(--muted);margin:0;font-size:.82rem}@media (width>=1500px){.guest-page{width:1200px}.celebration-hero{padding-top:77px;padding-bottom:32px}}@media (width<=1000px){.hero-floral{opacity:.85;width:110px}.hero-floral-left{top:130px;left:-15px}.hero-floral-right{top:90px;right:-15px}.upload-card{gap:16px;padding:24px}.upload-illustration{flex-basis:60px;width:60px}.upload-copy h2{font-size:1.4rem}.upload-action button{padding:13px 18px;font-size:.75rem}.memory-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.landing-intro .hero-floral{width:115px}}@media (width<=700px){.guest-page{padding:0 22px}.guest-nav{min-height:78px}.memory-brand{font-size:1.6rem}.memory-brand svg{width:28px;height:28px}.nav-links{gap:10px;font-size:.68rem}.nav-links>a:first-child{display:none}.celebration-hero{padding:43px 0 23px}.celebration-hero .eyebrow{letter-spacing:.14em;font-size:.51rem}.celebration-hero .eyebrow span{padding:0 4px;font-size:.75rem}.celebration-hero h1{margin:22px 0 17px;font-size:clamp(2.6rem,8.8vw,3.8rem)}.hero-description{padding:0 13px;font-size:.78rem}.desktop-break,.hero-floral{display:none}.love-divider{margin-top:18px}.upload-card{flex-wrap:wrap;gap:12px;padding:21px}.upload-illustration{flex-basis:49px;width:49px;height:65px}.camera-drawing{width:47px}.upload-copy h2{font-size:1.4rem;line-height:1.2}.upload-copy .eyebrow{letter-spacing:.13em;font-size:.5rem}.upload-copy>p:last-of-type{font-size:.7rem}.upload-action{width:100%;margin-top:8px}.upload-action button{width:100%;padding:14px;font-size:.8rem}.upload-note{font-size:.6rem}.upload-hint{padding:0 13px;font-size:.57rem;line-height:1.8}.spinning-bouquet{width:59px}.memory-section{padding:36px 0 42px}.memory-section h2{gap:8px;font-size:1.75rem}.memory-section .eyebrow{letter-spacing:.12em;font-size:.49rem}.memory-count{min-width:23px;height:23px;font-size:.59rem}.guest-page .refresh-button{padding:8px 10px;font-size:.63rem}.gallery-hint{max-width:290px;margin-bottom:20px;font-size:.66rem}.memory-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.memory-print{padding:6px 6px 0}.print-caption{min-height:32px;padding:4px 2px;font-size:.52rem}.caption-dot{padding:0 2px}.landing-intro{padding-bottom:40px}.landing-steps{padding:35px 0}.landing-steps h2{font-size:2rem}.steps-grid{grid-template-columns:1fr;gap:14px}.step-card{border-radius:14px;padding:24px}}@media (prefers-reduced-motion:reduce){.guest-page *{transition:none!important;animation:none!important}}
