@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/allura-vietnamese-400-normal.6f3316c5.woff2) format("woff2"),url(/_next/static/media/allura-vietnamese-400-normal.be3c680c.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/allura-latin-ext-400-normal.b5f9be06.woff2) format("woff2"),url(/_next/static/media/allura-latin-ext-400-normal.bf00b522.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Allura;font-style:normal;font-display:swap;font-weight:400;src:url(/_next/static/media/allura-latin-400-normal.51bf3b98.woff2) format("woff2"),url(/_next/static/media/allura-latin-400-normal.8b41ecc6.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--ink:#020617;--navy:#071a3f;--blue:#2563eb;--sky:#38bdf8;--ice:#eff6ff;--muted:#64748b;--line:#dbeafe;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body,html{overflow-x:hidden}body{margin:0;min-width:320px;background:#fff;color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input,textarea{font:inherit}a{color:inherit;text-decoration:none}svg{width:1.2em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}:focus-visible{outline:3px solid var(--sky);outline-offset:3px}.skip-link{position:fixed;left:1rem;top:1rem;z-index:100;transform:translateY(-160%);border-radius:999px;background:#fff;padding:.8rem 1.1rem;font-weight:700;transition:transform .2s}.skip-link:focus{transform:translateY(0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero,.sr-only{overflow:hidden}.hero{position:relative;min-height:92svh;background:radial-gradient(circle at 76% 18%,rgba(37,99,235,.5),transparent 27%),radial-gradient(circle at 20% 80%,rgba(14,165,233,.2),transparent 30%),linear-gradient(145deg,#020617 10%,#071a3f 55%,#0b2f69);color:#fff}.hero:before{inset:0;opacity:.25;background-image:linear-gradient(rgba(96,165,250,.12) 1px,transparent 0),linear-gradient(90deg,rgba(96,165,250,.12) 1px,transparent 0);background-size:70px 70px;-webkit-mask-image:linear-gradient(180deg,#000,transparent 80%);mask-image:linear-gradient(180deg,#000,transparent 80%)}.hero:after,.hero:before{content:"";position:absolute;pointer-events:none}.hero:after{width:620px;height:620px;right:-280px;bottom:-360px;border:1px solid rgba(125,211,252,.25);border-radius:50%;box-shadow:0 0 0 70px rgba(37,99,235,.04),0 0 0 140px rgba(37,99,235,.035)}.hero-stars{position:absolute;inset:0;pointer-events:none;opacity:.4;background-image:radial-gradient(circle,rgba(255,255,255,.7) 1px,transparent 1.5px),radial-gradient(circle,rgba(56,189,248,.7) 1px,transparent 1.5px);background-position:0 0,30px 20px;background-size:120px 120px,170px 170px}.topbar{position:relative;z-index:20;width:min(1120px,calc(100% - 2rem));margin:0 auto;padding-top:1.2rem;display:flex;align-items:center;justify-content:space-between}.couple-mark{display:grid;place-items:center;width:3.5rem;height:3.5rem;border:1px solid rgba(255,255,255,.2);border-radius:50%;background:rgba(255,255,255,.08);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-family:Georgia,serif;font-size:1rem;font-style:italic}.topbar-actions{display:flex;align-items:center;gap:.65rem}.nav-links{display:flex;gap:.35rem;padding:.35rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(2,6,23,.35);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.nav-links a{padding:.7rem 1rem;border-radius:999px;font-size:.9rem;color:#cbd5e1;transition:.2s}.nav-links a:hover{color:#fff;background:rgba(255,255,255,.1)}.language-switch{position:relative;z-index:50;display:flex;padding:.3rem;pointer-events:auto;isolation:isolate;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(2,6,23,.62);box-shadow:0 8px 24px rgba(0,0,0,.2);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.language-switch a{display:grid;place-items:center;min-width:2.75rem;min-height:2.75rem;border-radius:999px;padding:.48rem .55rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;color:#cbd5e1;background:transparent;cursor:pointer;font-size:.75rem;font-weight:900;transition:.2s}.language-switch a.active{color:#071a3f;background:#fff;box-shadow:0 5px 16px rgba(0,0,0,.2)}.hero-content{position:relative;z-index:1;width:min(850px,calc(100% - 2rem));margin:0 auto;padding:clamp(5rem,11vh,8rem) 0 6rem;text-align:center}.eyebrow{margin:0 0 1rem;text-transform:uppercase;letter-spacing:.24em;font-size:.75rem;font-weight:800;color:#93c5fd}.eyebrow.blue{color:#1d4ed8}.eyebrow.light{color:#7dd3fc}.hero h1{margin:0;font:400 clamp(3.3rem,9vw,7.2rem)/.96 Georgia,Times New Roman,serif;letter-spacing:-.055em;text-wrap:balance}.hero-date{margin:1.4rem 0 0;color:#bfdbfe;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.hero .hero-signature-eyebrow{margin-bottom:.6rem;font-family:Allura,Segoe Script,cursive;font-size:clamp(2rem,4.5vw,3.2rem);font-weight:400;line-height:1;letter-spacing:.02em;text-transform:none}.hero .hero-signature-couple{font-family:Allura,Segoe Script,cursive;font-size:clamp(2.2rem,14vw,8.4rem);font-weight:400;line-height:.9;letter-spacing:.01em;white-space:nowrap}.hero .hero-signature-date{margin-top:1rem;font-family:Allura,Segoe Script,cursive;font-size:clamp(1.35rem,3.2vw,2.25rem);font-weight:400;line-height:1.1;letter-spacing:.02em;text-transform:none}.rings{display:flex;justify-content:center;margin:2.1rem auto 1.8rem}.rings span{display:block;width:2.3rem;height:2.3rem;border:2px solid #60a5fa;border-radius:50%;box-shadow:0 0 20px rgba(56,189,248,.25)}.rings span+span{margin-left:-.55rem;border-color:#bae6fd}.hero-copy{max-width:620px;margin:0 auto 2.1rem;color:#cbd5e1;font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.75}.primary-button,.secondary-button,.submit-upload{display:inline-flex;align-items:center;justify-content:center;gap:.65rem;border:0;border-radius:999px;padding:.95rem 1.35rem;cursor:pointer;font-size:.94rem;font-weight:800;transition:transform .2s,background .2s,box-shadow .2s}.primary-button{color:#fff;background:linear-gradient(135deg,#2563eb,#0284c7);box-shadow:0 13px 35px rgba(37,99,235,.3)}.primary-button:hover,.submit-upload:hover{transform:translateY(-2px);box-shadow:0 18px 45px rgba(37,99,235,.38)}.secondary-button{color:#0f172a;border:1px solid #cbd5e1;background:#fff}.secondary-button:hover{transform:translateY(-2px);border-color:#93c5fd;background:#eff6ff}.native-file-button{position:relative;overflow:hidden;cursor:pointer}.native-file-button input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;font-size:100px}.countdown-panel{position:relative;z-index:1;width:min(640px,calc(100% - 2rem));margin:-3.4rem auto 0;text-align:center}.countdown-panel>p{display:inline-block;margin:0 0 .7rem;padding:.45rem .85rem;border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#e2e8f0;background:rgba(2,6,23,.48);font-size:.7rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.countdown-panel.live>p{color:#fff}.countdown{display:grid;grid-template-columns:repeat(4,1fr);width:100%;border:1px solid rgba(255,255,255,.14);border-radius:1.5rem 1.5rem 0 0;background:rgba(2,6,23,.52);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.countdown div{padding:1.2rem .5rem;text-align:center}.countdown div+div{border-left:1px solid rgba(255,255,255,.1)}.countdown strong{display:block;font:400 1.7rem/1 Georgia,serif}.countdown span{display:block;margin-top:.45rem;color:#94a3b8;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em}.story-intro{max-width:880px;margin:0 auto;padding:clamp(5rem,10vw,8rem) 1.25rem;text-align:center}.story-intro h2,.upload-heading h2{margin:0;font:400 clamp(2.5rem,5vw,4.5rem)/1.08 Georgia,serif;letter-spacing:-.04em;text-wrap:balance}.story-intro>p:last-child,.upload-heading>p:last-child{max-width:660px;margin:1.5rem auto 0;color:var(--muted);font-size:1.08rem;line-height:1.8}.schedule-section{position:relative;overflow:hidden;padding:clamp(5rem,9vw,8rem) max(1.25rem,calc((100vw - 1120px)/2));background:linear-gradient(155deg,#020617,#071a3f 60%,#0d3a7a);color:#fff}.schedule-section:after{content:"";position:absolute;width:500px;height:500px;right:-180px;top:-260px;border:1px solid rgba(125,211,252,.22);border-radius:50%;box-shadow:0 0 0 70px rgba(37,99,235,.035),0 0 0 140px rgba(37,99,235,.025)}.section-heading{position:relative;z-index:1;display:flex;justify-content:space-between;align-items:end;gap:2rem}.section-heading h2{margin:0;font:400 clamp(2.7rem,5vw,4.5rem)/1 Georgia,serif;letter-spacing:-.04em}.section-heading>p{margin:0;color:#94a3b8;line-height:1.7;text-align:right}.timeline{position:relative;z-index:1;margin-top:4rem}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:184px;width:1px;background:linear-gradient(#38bdf8,rgba(56,189,248,.1))}.timeline-item{display:grid;grid-template-columns:140px 88px 1fr;align-items:start;min-height:130px}.timeline-item .time{padding-top:.8rem;font:400 1.35rem Georgia,serif;color:#bae6fd}.timeline-dot{display:flex;justify-content:center}.timeline-dot span{display:grid;place-items:center;width:3rem;height:3rem;border:1px solid rgba(125,211,252,.4);border-radius:50%;background:#08275a;color:#7dd3fc;font-size:.72rem;font-weight:800;box-shadow:0 0 0 8px rgba(37,99,235,.08)}.timeline-item h3{margin:.2rem 0 .55rem;font:400 1.8rem Georgia,serif}.timeline-item p{margin:0;max-width:570px;color:#94a3b8;line-height:1.7}.event-schedules{position:relative;z-index:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;margin-top:3.5rem}.event-schedule-card{overflow:hidden;border:1px solid rgba(255,255,255,.13);border-radius:1.75rem;background:rgba(255,255,255,.07);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.event-schedule-card>header{padding:1.6rem;border-bottom:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.045)}.event-schedule-card>header span{color:#bae6fd;font-size:.73rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.event-schedule-card>header h3{margin:.45rem 0 0;font:400 2.1rem Georgia,serif}.event-schedule-card>header h3.event-signature-title{font-family:Allura,Segoe Script,cursive;font-size:2.85rem;line-height:1;letter-spacing:.01em}.event-schedule-list{padding:.45rem 1.2rem 1rem}.event-schedule-row{display:grid;grid-template-columns:3rem 4.5rem 1fr;gap:.75rem;align-items:start;padding:1rem 0}.event-schedule-row+.event-schedule-row{border-top:1px solid rgba(255,255,255,.08)}.event-schedule-row .timeline-dot{justify-content:flex-start}.event-schedule-row .timeline-dot span{width:2.4rem;height:2.4rem;box-shadow:none}.event-schedule-row time{padding-top:.55rem;color:#bae6fd;font-size:.8rem;font-weight:800}.event-schedule-row h4{margin:.3rem 0 .35rem;font:400 1.25rem Georgia,serif}.event-schedule-row p{margin:0;color:#94a3b8;font-size:.82rem;line-height:1.55}.location-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,6vw,5rem);align-items:center;max-width:1120px;margin:0 auto;padding:clamp(5rem,10vw,8rem) 1.25rem}.location-copy h2{margin:0;font:400 clamp(2.5rem,5vw,4.3rem)/1.05 Georgia,serif;letter-spacing:-.04em;text-wrap:balance}.location-copy>p:not(.eyebrow){margin:1.4rem 0;color:var(--muted);font-size:1.04rem;line-height:1.75}.location-address{display:flex;gap:.8rem;align-items:flex-start;margin:1.6rem 0;padding:1rem;border:1px solid #dbeafe;border-radius:1rem;background:#f8fbff}.location-address>svg{flex:0 0 1.3rem;margin-top:.1rem;color:#2563eb}.location-address div{display:grid;gap:.3rem}.location-address strong{font-size:.9rem}.location-address span{color:#64748b;font-size:.82rem;line-height:1.5}.map-frame{min-height:430px;overflow:hidden;border:1px solid #dbeafe;border-radius:2rem;background:#e2e8f0;box-shadow:0 24px 70px rgba(15,23,42,.13)}.map-frame iframe{display:block;width:100%;height:430px;border:0}.map-consent{display:grid;place-items:center;align-content:center;gap:.7rem;width:100%;min-height:430px;border:0;padding:2rem;color:#e2e8f0;background:radial-gradient(circle at 50% 25%,rgba(37,99,235,.35),transparent 34%),linear-gradient(145deg,#020617,#0b2f69);cursor:pointer;text-align:center}.map-consent svg{width:2.4rem;fill:none;stroke:#7dd3fc;stroke-width:1.7}.map-consent strong{font:400 1.7rem Georgia,serif}.map-consent span{max-width:24rem;color:#94a3b8;font-size:.82rem;line-height:1.55}.upload-section{padding:clamp(5rem,10vw,8rem) 1.25rem;background:linear-gradient(180deg,#fff,#eff6ff)}.upload-heading{text-align:center}.occasion-badge{display:inline-grid;gap:.15rem;margin-top:1.2rem;padding:.65rem 1rem;border:1px solid #bfdbfe;border-radius:999px;color:#1e3a8a;background:#eff6ff}.occasion-badge span{color:#64748b;font-size:.67rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.occasion-badge strong{font-size:.88rem}.upload-card{max-width:860px;margin:3rem auto 0;padding:.75rem;border:1px solid #dbeafe;border-radius:2rem;background:rgba(255,255,255,.9);box-shadow:0 30px 90px rgba(30,64,175,.12)}.drop-zone{border:1.5px dashed #93c5fd;border-radius:1.5rem;padding:clamp(2rem,6vw,4rem) 1.2rem;text-align:center;background:radial-gradient(circle at top,#eff6ff,#fff 65%);transition:.2s}.drop-zone.dragging{border-color:#2563eb;transform:scale(.995);background:#dbeafe}.upload-orb{display:grid;place-items:center;width:5rem;height:5rem;margin:0 auto 1.3rem;border-radius:1.5rem;color:#fff;background:linear-gradient(145deg,#1d4ed8,#0ea5e9);box-shadow:0 18px 40px rgba(37,99,235,.25);transform:rotate(-4deg)}.upload-orb svg{width:2rem;transform:rotate(4deg)}.drop-zone h3{margin:0;font:400 2rem Georgia,serif}.drop-zone>p{margin:.8rem auto 1.7rem;max-width:500px;color:var(--muted);line-height:1.6}.upload-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.drop-hint{display:block;margin-top:1.25rem;color:#94a3b8;font-size:.8rem}.upload-queue{padding:1.5rem .65rem .65rem}.queue-title{display:flex;align-items:center;justify-content:space-between;padding:0 .35rem 1rem}.queue-title h3{margin:0;font-size:1rem}.queue-title span{color:var(--muted);font-size:.85rem}.queue-list{max-height:350px;overflow:auto;padding-right:.25rem}.queue-item{position:relative;display:flex;gap:.9rem;align-items:center;padding:.8rem 3rem .8rem .8rem;border:1px solid #e2e8f0;border-radius:1rem;background:#fff}.queue-item+.queue-item{margin-top:.6rem}.queue-item.done{border-color:#bfdbfe;background:#f8fbff}.queue-item.error{border-color:#fecaca}.selected-media-preview{position:relative;flex:0 0 5rem;width:5rem;height:5rem;overflow:hidden;border-radius:.85rem;background:#e2e8f0}.selected-media-preview img,.selected-media-preview video{display:block;width:100%;height:100%;object-fit:cover}.video-badge{position:absolute;right:.35rem;bottom:.35rem;display:grid;place-items:center;width:1.65rem;height:1.65rem;border-radius:50%;color:#fff;background:rgba(2,6,23,.76)}.video-badge svg{width:.9rem}.file-info{min-width:0;flex:1 1}.file-info>div:first-child{display:flex;gap:.75rem;justify-content:space-between}.file-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.file-info span{flex:0 0 auto;color:var(--muted);font-size:.75rem}.progress-track{height:.28rem;margin-top:.6rem;overflow:hidden;border-radius:999px;background:#e2e8f0}.progress-track span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2563eb,#38bdf8);transition:width .2s}.file-error{margin:.45rem 0 0;color:#b91c1c;font-size:.75rem}.done-mark,.remove-file{position:absolute;top:.45rem;right:.45rem;display:grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%}.remove-file{border:0;color:#fff;background:rgba(2,6,23,.78);font-size:1.35rem;line-height:1;cursor:pointer}.remove-file:hover{background:#b91c1c}.remove-file:disabled{opacity:.35;cursor:default}.done-mark{color:#fff;background:#2563eb;font-weight:900}.guest-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:.8rem;margin-top:1rem}.guest-fields label{display:flex;flex-direction:column;gap:.5rem;color:#334155;font-size:.84rem;font-weight:800}.guest-fields small{color:#94a3b8;font-weight:400}.guest-fields input,.guest-fields textarea{width:100%;min-height:3rem;border:1px solid #cbd5e1;border-radius:.9rem;padding:.8rem .9rem;color:#0f172a;background:#fff;font-size:.9rem;resize:vertical}.guest-fields textarea{min-height:5.5rem}.submit-upload{width:100%;margin-top:1rem;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0284c7)}.submit-upload:disabled{cursor:default;opacity:.58;transform:none;box-shadow:none}.consent-row{display:flex;align-items:flex-start;gap:.7rem;margin-top:1rem;color:#475569;font-size:.78rem;line-height:1.55;cursor:pointer}.consent-row input{flex:0 0 auto;width:1.05rem;height:1.05rem;margin-top:.15rem;accent-color:#2563eb}.consent-row a{color:#1d4ed8;font-weight:800;text-decoration:underline}.privacy-note{display:flex;gap:.9rem;align-items:flex-start;margin:.75rem 0 0;padding:1rem 1.2rem;color:#334155}.privacy-note>svg{flex:0 0 1.35rem;color:#2563eb}.privacy-note p{margin:0}.privacy-note span,.privacy-note strong{display:block}.privacy-note strong{font-size:.86rem}.privacy-note span{margin-top:.25rem;color:#64748b;font-size:.8rem;line-height:1.5}.site-footer{padding:3rem 1.25rem;border-top:1px solid #e2e8f0;text-align:center;background:#020617;color:#94a3b8}.site-footer>p{margin:0;font:400 1.15rem Georgia,serif;color:#cbd5e1}.footer-links{display:flex;justify-content:center;gap:1.2rem;margin-top:1rem;font-size:.8rem}.footer-links a:hover{color:#fff}.made-by{display:inline-block;margin-top:2rem;padding-top:1rem;border-top:1px solid #1e293b;color:#64748b;font-size:.72rem;letter-spacing:.04em}.made-by span{color:#60a5fa;font-weight:800}.legal-page{max-width:820px;margin:0 auto;padding:5rem 1.25rem 8rem}.back-link{display:inline-block;margin-bottom:4rem;color:#2563eb;font-weight:700}.legal-page h1{margin:0;font:400 clamp(3rem,7vw,5rem) Georgia,serif}.legal-copy{margin-top:3rem;color:#475569;font-size:1rem;line-height:1.8}.legal-copy h2{margin:2rem 0 .5rem;color:#0f172a;font:400 1.55rem Georgia,serif}.legal-copy p{margin:.5rem 0}.event-access{min-height:80svh;display:grid;place-items:center;padding:1.25rem;color:#e2e8f0;background:radial-gradient(circle at 70% 15%,rgba(37,99,235,.35),transparent 28%),linear-gradient(145deg,#020617,#071a3f)}.event-access-card{display:grid;place-items:center;gap:1.2rem;width:min(560px,100%);padding:clamp(2rem,6vw,4rem);border:1px solid rgba(255,255,255,.14);border-radius:2rem;background:rgba(2,6,23,.6);box-shadow:0 35px 100px rgba(0,0,0,.35);text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.event-access-card>svg{width:3rem;fill:none;stroke:#7dd3fc;stroke-width:1.7}.event-access-card h1{margin:0;font:400 clamp(2rem,7vw,3.5rem)/1.05 Georgia,serif}.event-access-card p{margin:0;color:#94a3b8;line-height:1.7}@media (max-width:720px){.nav-links{display:none}.language-switch{position:fixed;top:max(1rem,env(safe-area-inset-top));right:max(1rem,env(safe-area-inset-right))}.hero{min-height:880px}.hero-content{padding-top:5.5rem}.countdown-panel{margin-top:-1rem}.countdown strong{font-size:1.35rem}.section-heading{display:block}.section-heading>p{margin-top:1rem;text-align:left}.timeline:before{left:24px}.timeline-item{grid-template-columns:49px 1fr;min-height:155px}.timeline-item .time{grid-column:2;grid-row:1;padding:.2rem 0 .35rem;font-size:.9rem;color:#7dd3fc}.timeline-dot{grid-column:1;grid-row:1/span 2;justify-content:flex-start}.timeline-dot span{width:3rem;height:3rem}.timeline-item>div:last-child{grid-column:2}.timeline-item h3{margin-top:0}.event-schedules,.guest-fields{grid-template-columns:1fr}.event-schedule-row{grid-template-columns:2.5rem 4.2rem 1fr;gap:.55rem}.location-section{grid-template-columns:1fr}.map-frame,.map-frame iframe{min-height:350px;height:350px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.admin-login{min-height:100svh;display:grid;place-items:center;padding:1.25rem;background:radial-gradient(circle at 70% 15%,rgba(37,99,235,.35),transparent 28%),linear-gradient(145deg,#020617,#071a3f)}.admin-login-card{width:min(460px,100%);padding:2rem;border:1px solid rgba(255,255,255,.15);border-radius:2rem;background:rgba(255,255,255,.96);box-shadow:0 35px 100px rgba(0,0,0,.35)}.admin-brand{display:inline-flex;align-items:center;gap:.7rem;margin-bottom:3rem}.admin-brand span,.admin-mark{display:grid;place-items:center;width:2.8rem;height:2.8rem;border-radius:50%;color:#fff;background:#071a3f;font:italic 700 .8rem Georgia,serif}.admin-brand small{color:#64748b}.admin-login h1{margin:0;font:400 2.8rem/1.05 Georgia,serif}.admin-login-card>p:not(.eyebrow){color:#64748b;line-height:1.65}.admin-login form{display:grid;gap:1rem;margin-top:2rem}.admin-login label{display:grid;gap:.55rem;color:#334155;font-size:.85rem;font-weight:800}.admin-login input{width:100%;border:1px solid #cbd5e1;border-radius:.9rem;padding:.9rem 1rem}.login-error{margin-top:.8rem;padding:.8rem;border-radius:.8rem;color:#991b1b;background:#fef2f2;font-size:.84rem}.admin-login .submit-upload{margin-top:1rem}.admin-session-note{margin:-.25rem 0 0;font-size:.78rem}.admin-shell{min-height:100svh;background:#f8fafc}.admin-loading{display:grid;place-items:center;align-content:center;gap:1rem;color:#64748b}.loader{width:2.5rem;height:2.5rem;border:3px solid #dbeafe;border-top-color:#2563eb;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.admin-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem max(1.25rem,calc((100vw - 1200px)/2));border-bottom:1px solid #e2e8f0;background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.admin-header>div:first-child{display:flex;align-items:center;gap:.75rem}.admin-header>div:first-child>div{display:grid}.admin-header span{font-size:.9rem;font-weight:800}.admin-header small{margin-top:.15rem;color:#64748b;font-size:.7rem}.admin-header-actions{display:flex;gap:.5rem}.admin-header-actions button,.pagination button{border:1px solid #cbd5e1;border-radius:999px;padding:.65rem .9rem;background:#fff;color:#334155;font-size:.78rem;font-weight:800;cursor:pointer}.admin-content{max-width:1200px;margin:0 auto;padding:clamp(3rem,7vw,6rem) 1.25rem}.project-selector{display:grid;gap:.45rem;max-width:440px;margin-bottom:1rem;color:#475569;font-size:.75rem;font-weight:800}.project-selector select,.qr-dialog select{width:100%;border:1px solid #cbd5e1;border-radius:.8rem;padding:.75rem .85rem;color:#0f172a;background:#fff}.occasion-tabs{display:flex;flex-wrap:wrap;gap:.65rem;margin-bottom:2rem}.occasion-tabs button{display:grid;gap:.2rem;min-width:145px;border:1px solid #cbd5e1;border-radius:1rem;padding:.75rem 1rem;color:#475569;background:#fff;cursor:pointer;text-align:left}.occasion-tabs button span{font-weight:900}.occasion-tabs button small{color:#94a3b8}.occasion-tabs button.active{color:#fff;border-color:#1d4ed8;background:linear-gradient(135deg,#1d4ed8,#0284c7);box-shadow:0 10px 24px rgba(37,99,235,.2)}.occasion-tabs button.active small{color:#dbeafe}.admin-title-row{display:flex;justify-content:space-between;align-items:end;gap:2rem}.admin-title-row h1{margin:0;font:400 clamp(2.8rem,6vw,4.6rem)/1 Georgia,serif}.admin-title-row>div>p:last-child{margin:1rem 0 0;color:#64748b}.download-all{padding:.9rem 1.2rem;border-radius:999px;color:#fff;background:linear-gradient(135deg,#1d4ed8,#0284c7);font-size:.85rem;font-weight:800;box-shadow:0 12px 30px rgba(37,99,235,.2)}.download-all.disabled{pointer-events:none;opacity:.45}.empty-album{margin-top:3rem;padding:5rem 1rem;border:1px dashed #bfdbfe;border-radius:2rem;text-align:center;background:#fff}.empty-album div{color:#60a5fa;font:400 4rem Georgia,serif}.empty-album h2{margin:.5rem 0;font:400 2rem Georgia,serif}.empty-album p{margin:0;color:#64748b}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:3rem}.photo-card{overflow:hidden;border:1px solid #e2e8f0;border-radius:1.3rem;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.04)}.heic-placeholder,.photo-preview{display:block;width:100%;aspect-ratio:4/3;padding:0;border:0;cursor:zoom-in;background:#e2e8f0}.photo-preview img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.photo-preview:hover img{transform:scale(1.025)}.video-preview{position:relative;overflow:hidden}.video-preview video{display:block;width:100%;height:100%;object-fit:cover;background:#020617}.video-preview span{position:absolute;left:50%;bottom:1rem;transform:translateX(-50%);width:max-content;max-width:calc(100% - 2rem);padding:.55rem .8rem;border-radius:999px;color:#fff;background:rgba(2,6,23,.76);font-size:.72rem;font-weight:800;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.heic-placeholder{display:grid;place-items:center;align-content:center;color:#60a5fa;background:linear-gradient(145deg,#071a3f,#0b2f69)}.heic-placeholder span{font:400 2rem Georgia,serif}.heic-placeholder small{margin-top:.4rem;color:#94a3b8}.photo-meta{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem}.photo-meta>div:first-child{min-width:0;display:grid;gap:.2rem}.photo-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.83rem}.photo-meta span{color:#64748b;font-size:.68rem}.photo-actions{display:flex;gap:.35rem}.photo-actions a,.photo-actions button{display:grid;place-items:center;width:2rem;height:2rem;border:1px solid #e2e8f0;border-radius:50%;background:#fff;color:#475569;cursor:pointer;font-size:1rem}.photo-actions button:hover{color:#b91c1c;border-color:#fecaca}.pagination{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2rem;color:#64748b;font-size:.8rem}.pagination button:disabled{opacity:.4;cursor:default}.modal-backdrop{position:fixed;z-index:50;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(2,6,23,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.admins-dialog,.photo-dialog,.qr-dialog{position:relative;width:min(940px,100%);max-height:calc(100svh - 2rem);overflow:auto;border-radius:1.5rem;background:#fff;box-shadow:0 30px 100px rgba(0,0,0,.4)}.photo-dialog>img{object-fit:contain}.dialog-video,.photo-dialog>img{display:block;width:100%;max-height:68svh;background:#020617}.modal-close{position:absolute;z-index:2;right:.75rem;top:.75rem;display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid rgba(255,255,255,.3);border-radius:50%;color:#fff;background:rgba(2,6,23,.65);cursor:pointer;font-size:1.5rem}.dialog-info{display:flex;justify-content:space-between;gap:2rem;padding:1.25rem}.dialog-info h2{margin:0;font:400 1.6rem Georgia,serif}.dialog-info p{margin:.5rem 0;color:#475569;line-height:1.6}.dialog-info small{color:#94a3b8}.dialog-info>div:last-child{display:flex;align-items:start;gap:.5rem}.dialog-info a,.dialog-info button{border:1px solid #cbd5e1;border-radius:999px;padding:.7rem .9rem;background:#fff;font-size:.75rem;font-weight:800;cursor:pointer}.dialog-info button{color:#b91c1c}.heic-large{display:grid;place-items:center;min-height:350px;color:#cbd5e1;background:#020617}.qr-dialog{width:min(520px,100%);padding:2rem;text-align:center}.qr-dialog .modal-close{color:#475569;border-color:#e2e8f0;background:#fff}.qr-dialog h2{margin:0;font:400 2.2rem Georgia,serif}.qr-dialog>p:not(.eyebrow){color:#64748b;line-height:1.6}.qr-dialog label{display:grid;gap:.4rem;text-align:left;color:#334155;font-size:.8rem;font-weight:800}.qr-dialog input{width:100%;border:1px solid #cbd5e1;border-radius:.8rem;padding:.75rem}.qr-dialog canvas{display:block;width:min(300px,100%)!important;height:auto!important;margin:1.2rem auto}.admins-dialog{width:min(620px,100%);padding:2rem}.admins-dialog .modal-close{color:#475569;border-color:#e2e8f0;background:#fff}.admins-dialog h2{margin:0;font:400 2.2rem Georgia,serif}.admins-dialog>p:not(.eyebrow){color:#64748b;line-height:1.6}.admin-account-list{display:grid;gap:.65rem;margin:1.5rem 0 2rem}.admin-account{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid #e2e8f0;border-radius:1rem}.admin-account>div{display:grid;gap:.2rem}.admin-account strong{font-size:.9rem}.admin-account span{color:#64748b;font-size:.75rem}.admin-account button{border:1px solid #bfdbfe;border-radius:999px;padding:.55rem .75rem;color:#1d4ed8;background:#eff6ff;cursor:pointer;font-size:.7rem;font-weight:800}.admin-account button.danger{color:#b91c1c;border-color:#fecaca;background:#fef2f2}.admin-account button:disabled{cursor:default;opacity:.4}.new-admin-form{display:grid;gap:1rem;padding-top:1.5rem;border-top:1px solid #e2e8f0}.new-admin-form h3{margin:0;font:400 1.4rem Georgia,serif}.new-admin-form label{display:grid;gap:.45rem;color:#334155;font-size:.8rem;font-weight:800}.new-admin-form input{width:100%;border:1px solid #cbd5e1;border-radius:.8rem;padding:.8rem .9rem}@media (max-width:800px){.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-title-row{display:block}.download-all{display:inline-flex;margin-top:1.5rem}.dialog-info{display:block}.dialog-info>div:last-child{margin-top:1rem}}@media (max-width:520px){.admin-header>div:first-child>div{display:none}.admin-header-actions{gap:.25rem}.admin-header-actions button{padding:.6rem .7rem;font-size:.7rem}.photo-grid{grid-template-columns:1fr}.heic-placeholder,.photo-preview{aspect-ratio:16/11}.dialog-info>div:last-child{flex-direction:column}.admins-dialog{padding:1.5rem 1rem}.admin-account{align-items:start}}html[data-theme=kina] .hero{background:radial-gradient(circle at 76% 18%,rgba(220,38,38,.5),transparent 27%),radial-gradient(circle at 20% 80%,rgba(244,63,94,.2),transparent 30%),linear-gradient(145deg,#160406 10%,#47090f 55%,#7f1018)}html[data-theme=kina] .hero:before{background-image:linear-gradient(rgba(251,113,133,.12) 1px,transparent 0),linear-gradient(90deg,rgba(251,113,133,.12) 1px,transparent 0)}html[data-theme=kina] .hero:after{border-color:rgba(253,164,175,.28);box-shadow:0 0 0 70px rgba(220,38,38,.045),0 0 0 140px rgba(220,38,38,.035)}html[data-theme=kina] .hero-stars{background-image:radial-gradient(circle,rgba(255,255,255,.7) 1px,transparent 1.5px),radial-gradient(circle,rgba(251,113,133,.75) 1px,transparent 1.5px)}html[data-theme=kina] .event-schedule-card>header span,html[data-theme=kina] .event-schedule-row time,html[data-theme=kina] .eyebrow,html[data-theme=kina] .hero-date{color:#fecdd3}html[data-theme=kina] .eyebrow.blue{color:#b91c1c}html[data-theme=kina] .rings span{border-color:#fb7185;box-shadow:0 0 20px rgba(244,63,94,.3)}html[data-theme=kina] .rings span+span{border-color:#fecdd3}html[data-theme=kina] .download-all,html[data-theme=kina] .primary-button,html[data-theme=kina] .submit-upload{background:linear-gradient(135deg,#b91c1c,#e11d48);box-shadow:0 13px 35px rgba(185,28,28,.3)}html[data-theme=kina] .secondary-button:hover{border-color:#fda4af;background:#fff1f2}html[data-theme=kina] .schedule-section{background:linear-gradient(155deg,#160406,#47090f 60%,#7f1018)}html[data-theme=kina] .schedule-section:after{border-color:rgba(253,164,175,.24);box-shadow:0 0 0 70px rgba(220,38,38,.04),0 0 0 140px rgba(220,38,38,.03)}html[data-theme=kina] .timeline-dot span{border-color:rgba(253,164,175,.45);background:#64101a;color:#fecdd3}html[data-theme=kina] .upload-section{background:linear-gradient(180deg,#fff,#fff1f2)}html[data-theme=kina] .location-address{border-color:#fecdd3;background:#fff7f7}html[data-theme=kina] .location-address>svg{color:#b91c1c}html[data-theme=kina] .map-frame{border-color:#fecdd3;box-shadow:0 24px 70px rgba(159,18,57,.12)}html[data-theme=kina] .upload-card{border-color:#fecdd3;box-shadow:0 30px 90px rgba(159,18,57,.12)}html[data-theme=kina] .drop-zone{border-color:#fda4af;background:radial-gradient(circle at top,#fff1f2,#fff 65%)}html[data-theme=kina] .drop-zone.dragging{border-color:#dc2626;background:#ffe4e6}html[data-theme=kina] .upload-orb{background:linear-gradient(145deg,#b91c1c,#e11d48);box-shadow:0 18px 40px rgba(185,28,28,.25)}html[data-theme=kina] .back-link,html[data-theme=kina] .privacy-note>svg{color:#b91c1c}html[data-theme=kina] .done-mark{color:#fff;background:#b91c1c}html[data-theme=kina] .progress-track span{background:linear-gradient(90deg,#b91c1c,#fb7185)}html[data-theme=kina] .empty-album,html[data-theme=kina] .queue-item.done{border-color:#fecdd3}html[data-theme=kina] .made-by span{color:#fb7185}html[data-theme=kina] .admin-login{background:radial-gradient(circle at 70% 15%,rgba(220,38,38,.38),transparent 28%),linear-gradient(145deg,#160406,#47090f)}html[data-theme=kina] .loader{border-color:#dc2626 #ffe4e6 #ffe4e6}html[data-theme=kina] .empty-album div{color:#e11d48}