@import"https://fonts.googleapis.com/css2?family=Allura&family=Bodoni+Moda:opsz,wght@6..96,700;6..96,900&family=Great+Vibes&family=Inter:wght@500;650;800;900&family=Manrope:wght@600;800;900&display=swap";:root{--poster-black: #080808;--poster-ink: #141414;--poster-cream: #fffdf6;--poster-paper: #f1e7d8;--poster-red: #e43b31;--poster-red-dark: #8f1713;--poster-gold: #d9b35f;--poster-muted: #6d665d;--poster-line: rgba(20, 20, 20, .18);--font-main: "Inter", "Manrope", system-ui, sans-serif;--font-monogram: "Bodoni Moda", Georgia, serif;--font-script: "Allura", "Great Vibes", "Bodoni Moda", Georgia, serif;font-family:var(--font-main);color:var(--poster-ink);background:var(--poster-cream)}*{box-sizing:border-box}html{min-height:100%;overflow-x:hidden;scroll-behavior:smooth;background:var(--poster-cream)}body{margin:0;min-height:100%;overflow-x:hidden;background:linear-gradient(90deg,rgba(20,20,20,.045) 1px,transparent 1px),linear-gradient(180deg,var(--poster-cream),var(--poster-paper));background-size:38px 38px,auto;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(112deg,transparent 0 47%,rgba(228,59,49,.12) 47.05% 47.7%,transparent 47.75%),repeating-linear-gradient(0deg,rgba(20,20,20,.03) 0 1px,transparent 1px 42px)}button,input,textarea{font:inherit}button{cursor:pointer}a{color:inherit}img,video{max-width:100%}#root,.poster-app{min-height:100vh}.poster-app{position:relative;overflow-x:hidden;background:var(--poster-cream);color:var(--poster-ink)}.poster-app:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:linear-gradient(90deg,rgba(20,20,20,.045) 1px,transparent 1px),linear-gradient(0deg,rgba(20,20,20,.035) 1px,transparent 1px);background-size:42px 42px}.poster-app>*{position:relative;z-index:1}.poster-header{position:fixed;top:max(.8rem,env(safe-area-inset-top));left:clamp(.75rem,3vw,2rem);right:clamp(.75rem,3vw,2rem);z-index:90;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;color:var(--poster-black)}.poster-header.invert{color:var(--poster-cream)}.poster-header.home-header{justify-content:flex-end}.poster-header.home-header .poster-nav{max-width:none}.upload-screen .poster-header,.gallery-screen .poster-header,.admin-login-screen .poster-header{position:absolute}@media(min-width:981px){.upload-screen .poster-header.invert .poster-nav{color:var(--poster-black)}}.poster-back-link,.admin-back-link{min-height:44px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.38rem;border:2px solid currentColor;border-radius:0;color:currentColor;padding:0 .78rem;font-size:.66rem;font-weight:950;letter-spacing:.1em;line-height:1;text-decoration:none;text-transform:uppercase;background:transparent}.poster-back-link:hover,.admin-back-link:hover{transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--poster-red)}.poster-nav{min-width:0;display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:.5rem clamp(.62rem,2vw,1rem);text-align:right;font-size:clamp(.56rem,1.9vw,.72rem);font-weight:950;letter-spacing:.08em;text-transform:uppercase}.poster-nav a,.poster-date{color:currentColor;text-decoration:none;text-shadow:0 2px 12px rgba(0,0,0,.22)}.poster-nav a.active{color:var(--poster-red)}.poster-kicker{margin:0;display:inline-flex;align-items:center;gap:.42rem;color:var(--poster-red);font-size:clamp(.66rem,2vw,.82rem);font-weight:950;letter-spacing:.15em;line-height:1.2;text-transform:uppercase}.poster-btn,.poster-submit,.poster-square-btn,.poster-icon-link{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:.48rem;padding:.75rem .95rem;border:2px solid var(--poster-black);border-radius:0;background:var(--poster-cream);color:var(--poster-black);font-size:.7rem;font-weight:950;letter-spacing:.08em;line-height:1;text-align:center;text-decoration:none;text-transform:uppercase;transition:transform .15s ease,box-shadow .15s ease}.poster-btn:hover,.poster-submit:hover,.poster-square-btn:hover,.poster-icon-link:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--poster-black)}.poster-btn.red,.poster-submit,.poster-square-btn.red,.poster-icon-link.red{background:var(--poster-red);color:var(--poster-cream)}.poster-btn:disabled,.poster-submit:disabled,.poster-icon-link:disabled{opacity:.58;cursor:not-allowed;transform:none;box-shadow:none}.poster-square-btn{width:46px;padding:0}.home-screen{padding:4.65rem clamp(.75rem,3vw,2rem) 2.4rem}.poster-home-hero{width:min(1680px,100%);min-height:min(650px,calc(100svh - 9.3rem));margin:0 auto;display:grid;grid-template-columns:minmax(0,.5fr) minmax(430px,.5fr);gap:clamp(1.4rem,4.2vw,4.8rem);align-items:center}.poster-hero-copy{align-self:center;padding:clamp(.6rem,2vw,1.4rem) 0;transform:translateY(clamp(-2rem,-2.5vw,-.75rem));min-width:0}.poster-hero-copy h1,.gallery-hero-poster h1,.upload-poster-copy h1,.slideshow-poster-caption h1,.admin-poster-header h1,.admin-login-card h1,.poster-empty h2{margin:0;color:currentColor;font-family:var(--font-main);font-weight:950;letter-spacing:0;line-height:.88;text-transform:uppercase}.poster-hero-copy h1{max-width:920px;margin-top:.55rem;font-size:clamp(4.4rem,13.4vw,13rem);overflow-wrap:anywhere}.poster-hero-copy .wedding-title{max-width:min(100%,820px);color:var(--poster-black);font-family:var(--font-main);letter-spacing:0;line-height:.82;text-transform:none;overflow-wrap:normal}.wedding-title span{display:block;margin:0 0 .34rem .12rem;color:var(--poster-red);font-family:var(--font-main);font-size:clamp(.72rem,2vw,1.08rem);font-weight:950;letter-spacing:.18em;line-height:1;text-transform:uppercase}.wedding-title strong{display:block;color:var(--poster-black);font-family:Great Vibes,Allura,cursive;font-size:clamp(3.35rem,6.35vw,7.35rem);font-weight:400;letter-spacing:0;line-height:.86;text-transform:none;white-space:nowrap}.poster-subline{max-width:760px;margin:1.15rem 0 0;color:var(--poster-muted);font-size:clamp(.9rem,2vw,1.18rem);font-weight:850;letter-spacing:.02em}.poster-hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:.9rem}.poster-hero-actions .poster-btn{min-width:min(100%,260px)}.poster-feature-card{position:relative;min-width:0;min-height:min(500px,58svh);overflow:hidden;display:grid;align-content:end;padding:1rem;border:3px solid var(--poster-black);background:var(--poster-black);color:var(--poster-cream);text-align:left;box-shadow:12px 12px 0 var(--poster-red)}.poster-feature-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.72) saturate(.9) contrast(1.08)}.poster-feature-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 40%,rgba(8,8,8,.88) 100%),linear-gradient(112deg,rgba(228,59,49,.62) 0 22%,transparent 22.2%)}.poster-feature-card>span,.poster-feature-card>strong,.poster-feature-card>p{position:relative;z-index:1}.poster-feature-card strong{margin-top:0;color:var(--poster-cream);font-size:clamp(1.8rem,5vw,4.2rem);font-weight:950;letter-spacing:0;line-height:.95;text-transform:uppercase}.poster-feature-card p{max-width:440px;margin:.5rem 0 0;color:#fffdf6d1;font-size:.92rem}.poster-ticker{position:relative;width:calc(100% + 2rem);margin:.45rem -1rem .35rem;overflow:hidden;border-block:3px solid var(--poster-black);background:var(--poster-red);color:var(--poster-cream);padding:.55rem 0;transform:rotate(-1.4deg)}.poster-ticker-track{width:100%;display:block;will-change:transform}.poster-ticker-sequence{position:relative;min-height:1.3rem;display:block;overflow:hidden;gap:0}.poster-ticker span{flex:0 0 auto;font-size:var(--ticker-font-size, .75rem);font-weight:950;letter-spacing:.12em;text-transform:uppercase}.poster-ticker-train{position:absolute;top:50%;left:0;display:flex;align-items:center;width:max-content;white-space:nowrap;will-change:transform;animation:tickerTrain var(--ticker-run-duration, 20s) linear infinite}.poster-ticker-train span{padding-inline:.9rem}.poster-ticker-train .ticker-gap-second{margin-left:var(--ticker-gap-second, 340px)}.poster-ticker-train .ticker-gap-third{margin-left:var(--ticker-gap-third, 340px)}.poster-single-upload{width:min(1480px,100%);margin:0 auto 1rem;display:flex;justify-content:center}.poster-single-upload .poster-btn{width:min(100%,430px);min-height:50px}.poster-action-card{min-height:142px;display:grid;align-content:space-between;gap:.8rem;padding:.9rem;border:3px solid var(--poster-black);background:var(--poster-cream);color:var(--poster-black);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}.poster-action-card:hover{transform:translate(-3px,-3px);box-shadow:7px 7px 0 var(--poster-red)}.poster-action-card span{font-size:1.05rem;font-weight:950;letter-spacing:0;line-height:.95;text-transform:uppercase}.poster-action-card small{color:var(--poster-muted);font-size:.76rem;line-height:1.35}.poster-wall-section{width:min(1480px,100%);margin:0 auto;padding-top:clamp(1.2rem,4vw,3.8rem)}.poster-section-heading{display:grid;grid-template-columns:1fr;gap:.55rem;justify-items:center;align-items:center;margin-bottom:clamp(1rem,3vw,2rem);text-align:center}.poster-section-heading p{max-width:min(100%,760px);margin:0;color:var(--poster-red);font-size:clamp(.78rem,1.45vw,1.02rem);font-weight:950;letter-spacing:.14em;text-transform:uppercase}.poster-section-heading h2{margin:0;max-width:min(100%,880px);font-size:clamp(2.9rem,7.8vw,7.4rem);font-weight:950;letter-spacing:0;line-height:.82;text-transform:uppercase}.poster-icon-link{align-self:end}.poster-grid-wall,.gallery-poster-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:.45rem;transform:rotate(-.7deg)}.poster-tile,.gallery-poster-tile{position:relative;min-height:160px;overflow:hidden;border:3px solid var(--poster-black);background:var(--poster-black);color:var(--poster-cream);text-align:left;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}.poster-tile{aspect-ratio:1.1 / 1}.poster-tile:nth-child(3n+1),.gallery-poster-tile:nth-child(5n+2){transform:translateY(-8px)}.poster-tile:nth-child(3n+2),.gallery-poster-tile:nth-child(5n+4){transform:translateY(7px)}.poster-tile:hover,.gallery-poster-tile:hover{z-index:3;transform:translate(-3px,-10px) rotate(1deg);box-shadow:8px 8px 0 var(--poster-red)}.poster-tile-media,.gallery-tile-media,.admin-strip-media,.admin-media-preview{width:100%;height:100%;display:block;object-fit:cover}.poster-tile.placeholder{display:grid;place-items:center;align-content:center;gap:.4rem;background:var(--poster-red);color:var(--poster-cream)}.audio-poster{display:grid;place-items:center;align-content:center;gap:.55rem;background:linear-gradient(135deg,var(--poster-red),var(--poster-black));color:var(--poster-cream);text-align:center}.upload-screen,.admin-login-screen{background:linear-gradient(90deg,var(--poster-black) 0 42%,var(--poster-cream) 42.1%),var(--poster-cream)}.upload-screen:before,.admin-login-screen:before{background:linear-gradient(90deg,rgba(255,253,246,.08) 1px,transparent 1px),linear-gradient(0deg,rgba(255,253,246,.06) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(90deg,#000 0 42%,transparent 42.2%);mask-image:linear-gradient(90deg,#000 0 42%,transparent 42.2%)}.mobile-back{position:absolute;top:max(.82rem,env(safe-area-inset-top));left:.8rem;z-index:100;min-height:42px;display:inline-flex;align-items:center;gap:.42rem;border:2px solid var(--poster-cream);background:var(--poster-black);color:var(--poster-cream);padding:0 .8rem;font-size:.68rem;font-weight:950;letter-spacing:.08em;text-decoration:none;text-transform:uppercase}.upload-poster-shell{width:min(1420px,100%);min-height:100svh;display:grid;grid-template-columns:minmax(300px,.64fr) minmax(0,1.36fr);gap:clamp(1rem,3vw,2rem);align-items:center;margin:0 auto;padding:5.4rem clamp(.8rem,3vw,2rem) 2rem}.upload-poster-copy{color:var(--poster-cream);max-width:500px}.upload-poster-copy h1{margin-top:.8rem;max-width:100%;font-size:clamp(2.85rem,5.6vw,5.4rem);color:var(--poster-cream);overflow-wrap:normal}.upload-poster-copy>p{max-width:530px;color:#fffdf6c7;font-size:1rem;font-weight:700}.upload-note-card{width:max-content;max-width:100%;display:inline-flex;margin-top:.85rem;padding:.72rem .85rem;border:3px solid var(--poster-cream);background:var(--poster-red);color:var(--poster-cream);box-shadow:8px 8px #fffdf624}.upload-note-card strong{font-size:.98rem;font-weight:950;letter-spacing:0}.poster-upload-form{position:relative;padding:1rem .9rem .9rem;border:3px solid var(--poster-black);background:var(--poster-cream);box-shadow:12px 12px 0 var(--poster-red)}.upload-locked-panel{min-height:360px;display:grid;place-items:center;align-content:center;gap:.75rem;text-align:center}.upload-locked-panel h2{max-width:520px;color:var(--poster-black);font-size:clamp(2rem,6vw,4rem);line-height:.95;text-transform:uppercase}.upload-locked-panel p{max-width:520px;margin:0;color:var(--poster-muted);font-weight:800}.memory-mode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem}.memory-mode-card,.selected-memory-panel,.poster-dropzone,.upload-preview-card,.poster-recorder,.poster-status,.admin-login-card,.poster-panel,.admin-copy-field,.admin-media-card{border:2px solid var(--poster-black);background:var(--poster-cream)}.memory-mode-card{min-height:112px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:.7rem;padding:.75rem;color:var(--poster-black);text-align:left;transition:transform .15s ease,box-shadow .15s ease,background .15s ease,color .15s ease}.memory-mode-card svg{color:var(--poster-red)}.memory-mode-card span{min-height:3.3em;display:flex;align-items:flex-end;font-size:.62rem;font-weight:950;letter-spacing:.06em;line-height:1.18;text-transform:uppercase}.memory-mode-card.active,.memory-mode-card:hover{transform:translate(-3px,-3px);background:var(--poster-black);color:var(--poster-cream);box-shadow:6px 6px 0 var(--poster-red)}.memory-mode-card.active svg,.memory-mode-card:hover svg{color:var(--poster-cream)}.selected-memory-panel{margin-top:.75rem;padding:.85rem}.selected-memory-panel>span,.tile-label,.admin-type{display:inline-flex;align-items:center;gap:.35rem;width:fit-content;border:2px solid var(--poster-cream);background:var(--poster-red);color:var(--poster-cream);padding:.34rem .5rem;font-size:.62rem;font-weight:950;letter-spacing:.09em;text-transform:uppercase}.selected-memory-panel h2{margin:.55rem 0 0;font-size:clamp(1.75rem,6vw,3rem);line-height:.94;letter-spacing:0;text-transform:uppercase}.selected-memory-panel p{margin:.55rem 0 0;color:var(--poster-muted)}.poster-field-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:.75rem;margin-top:.75rem}.poster-field-grid label,.admin-copy-field{display:grid;gap:.4rem}.poster-field-grid span,.admin-copy-field span,.admin-media-card span:not(.admin-type){color:var(--poster-black);font-size:.68rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase}input,textarea{width:100%;border:2px solid var(--poster-black);border-radius:0;background:#fff;color:var(--poster-black);outline:none}input{min-height:50px;padding:0 .8rem}textarea{min-height:112px;padding:.8rem;resize:vertical}input:focus,textarea:focus{box-shadow:5px 5px 0 var(--poster-red)}.poster-recorder{display:grid;gap:.8rem;margin-top:.75rem;padding:.9rem;background:var(--poster-black);color:var(--poster-cream)}.poster-recorder h3{margin:0;color:var(--poster-cream);font-size:1.2rem;letter-spacing:0;text-transform:uppercase}.poster-recorder p{margin:.25rem 0 0;color:#fffdf6b8}.recorder-preview{min-height:190px;display:grid;place-items:center;border:2px solid rgba(255,253,246,.3);background:#fffdf614}.recorder-preview video{width:100%;height:100%;object-fit:cover}.recorder-controls{display:flex;flex-wrap:wrap;gap:.55rem;align-items:center}.record-clock{min-height:42px;display:inline-flex;align-items:center;gap:.4rem;border:2px solid rgba(255,253,246,.3);padding:0 .65rem;color:var(--poster-cream);font-weight:950}.record-clock i{width:8px;height:8px;background:var(--poster-red);animation:pulse 1s ease infinite}.poster-dropzone{position:relative;display:grid;place-items:center;align-content:center;min-height:150px;gap:.35rem;margin-top:.75rem;border-style:dashed;text-align:center}.poster-dropzone.active{box-shadow:7px 7px 0 var(--poster-red)}.poster-dropzone input{position:absolute;inset:0;height:100%;opacity:0;cursor:pointer}.poster-dropzone svg{color:var(--poster-red)}.poster-dropzone strong{font-weight:950;letter-spacing:.05em;text-transform:uppercase}.poster-dropzone span,.upload-summary,.poster-status,.poster-empty p{color:var(--poster-muted)}.upload-preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(126px,1fr));gap:.65rem;margin-top:.8rem}.upload-preview-card{position:relative;overflow:hidden}.upload-preview-card img,.upload-preview-card video{width:100%;aspect-ratio:1;object-fit:cover;display:block;background:var(--poster-black)}.upload-preview-card audio{width:100%;min-height:118px;padding:.5rem;background:var(--poster-black)}.upload-preview-card button{position:absolute;top:.35rem;right:.35rem;width:30px;height:30px;display:grid;place-items:center;border:2px solid var(--poster-cream);background:var(--poster-black);color:var(--poster-cream)}.upload-preview-card span{display:block;overflow:hidden;padding:.5rem;color:var(--poster-black);font-size:.68rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.upload-summary{display:flex;justify-content:space-between;gap:1rem;margin:.7rem 0 .8rem;font-size:.78rem;font-weight:950}.poster-progress{height:10px;overflow:hidden;margin-bottom:.8rem;border:2px solid var(--poster-black);background:var(--poster-cream)}.poster-progress span{display:block;height:100%;background:var(--poster-red)}.poster-submit{width:100%;min-height:52px}.poster-status{display:flex;align-items:center;justify-content:center;gap:.45rem;margin:.75rem 0 0;padding:.78rem;font-weight:850;text-align:center}.poster-status.success{background:#e3f7dd;color:#1f5e2a}.poster-status.error{display:block;background:#ffe0dc;color:var(--poster-red-dark)}.gallery-screen{padding:5.3rem clamp(.8rem,3vw,2rem) 3rem;background:linear-gradient(180deg,var(--poster-black) 0 540px,var(--poster-cream) 540px),var(--poster-cream)}.gallery-screen:before{background:linear-gradient(90deg,rgba(255,253,246,.07) 1px,transparent 1px),linear-gradient(0deg,rgba(255,253,246,.055) 1px,transparent 1px);background-size:44px 44px;-webkit-mask-image:linear-gradient(180deg,#000 0 540px,transparent 540px);mask-image:linear-gradient(180deg,#000 0 540px,transparent 540px)}.gallery-hero-poster{width:min(1220px,100%);margin:0 auto .85rem;padding:clamp(.2rem,1vw,.8rem) 0 clamp(.6rem,1.4vw,1.1rem);color:var(--poster-cream)}.gallery-hero-poster h1{max-width:100%;margin-top:.75rem;color:var(--poster-cream);font-size:clamp(1.35rem,6vw,5rem);line-height:.98;white-space:nowrap;text-shadow:0 2px 0 var(--poster-black),0 0 20px rgba(8,8,8,.7)}.gallery-hero-poster>p:not(.poster-kicker){max-width:720px;color:#fffdf6e0;font-size:1rem;font-weight:750;text-shadow:0 1px 0 var(--poster-black)}.gallery-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1rem}.poster-stat-row{width:min(1220px,100%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;margin:1rem auto}.poster-stat-row span{min-height:76px;display:grid;align-content:center;border:3px solid var(--poster-black);background:var(--poster-cream);color:var(--poster-black);padding:.65rem;font-size:.68rem;font-weight:950;letter-spacing:.08em;text-transform:uppercase;box-shadow:5px 5px 0 var(--poster-red)}.poster-stat-row strong{color:var(--poster-red);font-size:2.1rem;line-height:.9}.gallery-toolbar{width:min(1220px,100%);display:flex;justify-content:flex-end;margin:1.1rem auto}.filter-strip{display:flex;align-items:center;justify-content:flex-end;gap:.45rem;flex-wrap:wrap}.filter-strip button{min-height:40px;display:inline-flex;align-items:center;gap:.34rem;border:2px solid var(--poster-black);background:var(--poster-cream);color:var(--poster-black);padding:0 .62rem;font-size:.64rem;font-weight:950;letter-spacing:.07em;text-transform:uppercase}.filter-strip button.active{background:var(--poster-red);color:var(--poster-cream)}.gallery-poster-grid{width:min(1480px,100%);margin:1.2rem auto 0;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.gallery-poster-tile{min-height:auto;display:grid;align-content:end;aspect-ratio:4 / 5;padding:0}.gallery-poster-tile:after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(180deg,transparent,rgba(8,8,8,.92))}.gallery-tile-media{position:absolute;inset:0}.gallery-poster-tile .tile-label,.gallery-poster-tile strong,.gallery-poster-tile p{position:relative;z-index:1;margin-left:.65rem;margin-right:.65rem}.gallery-poster-tile .tile-label{margin-bottom:.5rem}.gallery-poster-tile strong{color:var(--poster-cream);font-size:1.1rem;font-weight:950;letter-spacing:0;text-transform:uppercase}.gallery-poster-tile p{display:-webkit-box;overflow:hidden;margin-bottom:.7rem;color:#fffdf6d1;font-size:.8rem;line-height:1.35;-webkit-line-clamp:2;-webkit-box-orient:vertical}.poster-empty{width:min(100%,560px);margin:3rem auto;display:grid;place-items:center;gap:.7rem;border:3px solid var(--poster-black);background:var(--poster-cream);padding:1.4rem;text-align:center;box-shadow:8px 8px 0 var(--poster-red)}.poster-empty h2{font-size:clamp(2rem,8vw,4rem)}.poster-lightbox{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#080808f0}.lightbox-media{max-width:min(92vw,1180px);max-height:76vh;border:3px solid var(--poster-cream);background:var(--poster-black);object-fit:contain}.lightbox-close,.lightbox-nav{position:absolute;z-index:2;display:grid;place-items:center;border:2px solid var(--poster-cream);background:var(--poster-black);color:var(--poster-cream)}.lightbox-close{top:1rem;right:1rem;width:46px;height:46px}.lightbox-nav{top:50%;width:48px;height:48px;transform:translateY(-50%)}.lightbox-nav.prev{left:1rem}.lightbox-nav.next{right:1rem}.lightbox-caption{position:absolute;left:50%;bottom:1rem;width:min(760px,calc(100vw - 1.5rem));transform:translate(-50%);border:2px solid var(--poster-cream);background:var(--poster-black);color:var(--poster-cream);padding:.85rem;text-align:center}.lightbox-caption span,.lightbox-caption a{display:inline-flex;align-items:center;gap:.34rem;color:var(--poster-gold);font-size:.64rem;font-weight:950;letter-spacing:.11em;text-transform:uppercase}.lightbox-caption h2{margin:.3rem 0 0;color:var(--poster-cream);font-size:clamp(1.5rem,6vw,3.2rem);letter-spacing:0;line-height:.96;text-transform:uppercase}.lightbox-caption p{margin:.3rem 0 0;color:#fffdf6d1}.lightbox-caption a{margin-top:.5rem;text-decoration:none}.slideshow-screen{overflow:hidden;background:linear-gradient(112deg,transparent 0 48%,rgba(228,59,49,.32) 48.05% 49%,transparent 49.05%),var(--poster-black);color:var(--poster-cream)}.slideshow-screen:before{background:linear-gradient(90deg,rgba(255,253,246,.07) 1px,transparent 1px),linear-gradient(0deg,rgba(255,253,246,.06) 1px,transparent 1px);background-size:48px 48px}.slideshow-topbar{position:fixed;top:max(.85rem,env(safe-area-inset-top));left:.8rem;right:.8rem;z-index:20;display:flex;justify-content:space-between;gap:.7rem}.slideshow-stage{height:100svh;display:grid;place-items:center;padding:4.9rem .75rem 10.2rem}.slideshow-media,.slideshow-audio{max-width:100%;width:min(88vw,860px);max-height:min(64svh,680px);border:3px solid var(--poster-cream);background:var(--poster-black);box-shadow:9px 9px 0 var(--poster-red)}.slideshow-media{height:auto;object-fit:contain}.slideshow-audio{min-height:320px;display:grid;place-items:center;align-content:center;gap:1rem;padding:2rem}.slideshow-audio strong{font-size:clamp(2rem,8vw,4rem);font-weight:950;letter-spacing:0;text-transform:uppercase}.slideshow-audio audio{width:min(100%,420px)}.slideshow-poster-caption{position:fixed;left:.8rem;right:.8rem;bottom:max(.8rem,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;border:2px solid rgba(255,253,246,.55);background:#0808084d;color:var(--poster-cream);padding:.68rem;box-shadow:7px 7px #e43b31b3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.slideshow-poster-caption p{margin:0 0 .25rem;display:inline-flex;align-items:center;gap:.34rem;color:var(--poster-gold);font-size:.62rem;font-weight:950;letter-spacing:.03em;text-transform:none}.slideshow-poster-caption h1{color:var(--poster-cream);font-size:clamp(1.25rem,4.4vw,2.8rem);line-height:.9}.slideshow-poster-caption span{display:block;margin-top:.25rem;color:#fffdf6db;font-size:clamp(.76rem,2vw,.98rem);line-height:1.25}.slideshow-controls{display:flex;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}.slideshow-controls button{width:44px;height:44px;display:grid;place-items:center;border:2px solid var(--poster-cream);background:var(--poster-black);color:var(--poster-cream)}.slideshow-controls button.red{background:var(--poster-red)}.slideshow-screen.empty{display:grid;place-items:center;align-content:center;gap:1rem;text-align:center}.admin-login-screen{min-height:100vh;display:grid;place-items:center;padding:5rem 1rem 2rem}.admin-login-card{width:min(100%,440px);display:grid;gap:.85rem;padding:1.2rem;box-shadow:10px 10px 0 var(--poster-red)}.admin-login-card h1{font-size:clamp(3.5rem,16vw,6rem)}.admin-screen{display:grid;grid-template-columns:270px minmax(0,1fr);background:var(--poster-cream)}.admin-poster-sidebar{position:sticky;top:0;min-height:100vh;display:flex;flex-direction:column;gap:.55rem;padding:1rem;background:var(--poster-black);color:var(--poster-cream)}.admin-poster-sidebar strong{margin-bottom:.6rem;font-size:1rem;font-weight:950;letter-spacing:0;text-transform:uppercase}.admin-poster-sidebar button{min-height:46px;border:2px solid rgba(255,253,246,.28);background:transparent;color:var(--poster-cream);font-size:.72rem;font-weight:950;letter-spacing:.08em;text-align:left;text-transform:uppercase;padding:0 .75rem}.admin-poster-sidebar button.active,.admin-poster-sidebar button.logout{border-color:var(--poster-cream);background:var(--poster-red)}.admin-poster-sidebar button.logout{margin-top:auto;display:inline-flex;align-items:center;gap:.45rem}.admin-poster-content{min-width:0;padding:clamp(1rem,3vw,2rem)}.admin-poster-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;margin-bottom:1rem}.admin-poster-header h1{font-size:clamp(3rem,8vw,7rem)}.admin-poster-header>div{display:flex;gap:.5rem;flex-wrap:wrap;justify-content:flex-end}.admin-stats{margin-left:0;margin-right:0}.poster-panel{padding:1rem;box-shadow:8px 8px #e43b3152}.poster-panel h2{margin:0 0 .8rem;font-size:clamp(1.8rem,5vw,3.4rem);letter-spacing:0;text-transform:uppercase}.admin-media-strip{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.admin-strip-media{aspect-ratio:1;border:2px solid var(--poster-black);background:var(--poster-black)}.admin-media-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:.9rem}.admin-media-card{display:grid;gap:.55rem;padding:.75rem;box-shadow:7px 7px #e43b3147}.admin-media-preview{aspect-ratio:4 / 3;border:2px solid var(--poster-black);background:var(--poster-black)}.admin-media-card>div{display:flex;flex-wrap:wrap;gap:.45rem}.admin-media-card .poster-btn{min-height:38px;padding:.55rem .65rem;font-size:.62rem}.admin-copy-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem}.admin-copy-field{padding:.85rem;box-shadow:7px 7px #e43b313d}.admin-copy-preview{margin-top:1rem;overflow:hidden}.admin-copy-preview .poster-ticker{width:100%;margin:.5rem 0 0;transform:none}.storage-panel{width:min(720px,100%);display:grid;gap:.8rem}.storage-meter{height:16px;border:2px solid var(--poster-black);background:var(--poster-cream)}.storage-meter span{display:block;height:100%;background:var(--poster-red)}.storage-panel.warning{box-shadow:8px 8px 0 var(--poster-red)}.poster-error{min-height:100vh;display:grid;place-items:center;align-content:center;gap:1rem;padding:2rem;background:var(--poster-black);color:var(--poster-cream);text-align:center}.spin{animation:spin .85s linear infinite}@keyframes ticker{to{transform:translate(-50%)}}@keyframes tickerTrain{0%{transform:translate(var(--ticker-start-x, 420px),-50%)}to{transform:translate(calc(var(--ticker-end-x, 900px) * -1),-50%)}}@keyframes pulse{70%{box-shadow:0 0 0 10px #e43b3100}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:980px){.poster-home-hero,.upload-poster-shell,.admin-screen{grid-template-columns:1fr}.poster-feature-card{min-height:430px}.upload-screen,.admin-login-screen{background:linear-gradient(180deg,var(--poster-black) 0 38%,var(--poster-cream) 38.1%),var(--poster-cream)}.upload-screen:before,.admin-login-screen:before{-webkit-mask-image:linear-gradient(180deg,#000 0 38%,transparent 38.2%);mask-image:linear-gradient(180deg,#000 0 38%,transparent 38.2%)}.admin-poster-sidebar{position:relative;min-height:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.admin-poster-sidebar .admin-back-link,.admin-poster-sidebar strong,.admin-poster-sidebar button.logout{grid-column:1 / -1}}@media(max-width:760px){.poster-header{left:.72rem;right:.72rem}.poster-nav{max-width:72%;row-gap:.28rem}.poster-date{flex-basis:100%}.home-screen{padding:4.35rem .72rem 1.8rem}.poster-home-hero{min-height:auto;gap:.75rem}.poster-hero-copy{transform:translateY(-.65rem)}.poster-hero-copy h1{font-size:clamp(3.55rem,18vw,5.4rem)}.wedding-title span{margin-bottom:.22rem;font-size:.68rem}.wedding-title strong{font-size:clamp(3.1rem,13.2vw,5rem)}.poster-subline{margin-top:.72rem}.poster-feature-card{min-height:292px}.poster-section-heading,.gallery-toolbar,.slideshow-poster-caption,.admin-poster-header{grid-template-columns:1fr;display:grid;align-items:stretch}.poster-stat-row,.memory-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.poster-field-grid{grid-template-columns:1fr}.upload-poster-shell,.gallery-screen{padding-left:.72rem;padding-right:.72rem}.poster-upload-form{box-shadow:8px 8px 0 var(--poster-red)}.gallery-poster-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-strip{justify-content:flex-start}.slideshow-controls{justify-content:center}.slideshow-stage{padding:4.7rem .72rem 9.2rem}.slideshow-media,.slideshow-audio{max-height:58svh}}@media(max-width:420px){.poster-nav{font-size:.52rem;gap:.32rem .48rem}.poster-btn,.poster-submit,.poster-icon-link{min-height:42px;padding:.68rem .75rem;font-size:.62rem}.poster-hero-copy h1,.upload-poster-copy h1{font-size:clamp(3rem,17vw,4.6rem)}.gallery-hero-poster h1{font-size:clamp(1.22rem,5.5vw,1.45rem)}.wedding-title strong{font-size:2.72rem}.poster-single-upload,.poster-stat-row{gap:.45rem}.memory-mode-card{min-height:100px;padding:.65rem}.poster-ticker{width:calc(100% + 1rem);margin:.65rem -.5rem .75rem}.slideshow-poster-caption{padding:.58rem}.slideshow-poster-caption h1{font-size:clamp(1.18rem,6vw,1.75rem)}.slideshow-poster-caption span{font-size:.72rem}.gallery-poster-grid{gap:.36rem}.lightbox-nav{display:none}}@media(max-width:360px){.wedding-title strong{font-size:2.42rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}
