@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,700;0,900;1,400&family=Cormorant+Garamond:ital,wght@0,400;0,600;1,400;1,600&family=Barlow+Condensed:wght@400;600&family=Great+Vibes&family=Roboto:wght@400;700&family=Pacifico&family=Montserrat:wght@400;600;700;800&family=Bebas+Neue&family=Poppins:wght@400;500;600;700;800;900&display=swap";:root{--card-w:10cm;--card-h:25cm;--banner-w:30cm;--banner-h:100cm;--cols:3;--rows:4;--itinerary-h:12.5cm;--itinerary-rows:8;--bg-cream:#f5ece9;--bg-card-start:#fff;--bg-card-mid:#fdf4f0;--bg-card-end:#f7e1d7;--text-title:#9b3b3b;--text-cursive:#c45d5d;--text-body:#6b3030;--text-label:#a06060;--gold-start:#c5a059;--gold-mid:#e6c875;--gold-end:#b38b45;--accent-rose:#c92a2a;--accent-leaf:#227341;--guest-bg:#fff9f7;--dot-flower:#f4a896;--dot-center:#c04e4e;--leaf-color:#62a18e}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-cream);background-image:var(--bg-pattern,radial-gradient(var(--dot-flower,#e6d5ce) 1px, transparent 1px));color:var(--text-body);background-size:20px 20px;min-height:100vh;font-family:Cormorant Garamond,serif}.global-nav{background:#fff;border-bottom:2px solid #c88c8233;justify-content:center;gap:8px;padding:12px 16px;display:flex}.global-nav button{color:var(--text-label);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:600;transition:all .2s;display:flex}.nav-icon{font-size:18px}.global-nav button.active{color:var(--text-title);background:#c88c8226}.global-nav button:hover:not(.active){background:#c88c820d}.controls-bar{z-index:1000;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffffd9;border-bottom:1px solid #c88c8233;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0;box-shadow:0 2px 20px #8b353514}.controls-bar h1{color:var(--text-title);margin-right:16px;font-family:Great Vibes,cursive;font-size:28px}.btn{letter-spacing:1px;cursor:pointer;text-transform:uppercase;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 20px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:600;transition:all .25s;display:inline-flex}.btn-primary{background:linear-gradient(135deg, var(--gold-start), var(--gold-mid), var(--gold-end));color:#fff;box-shadow:0 4px 15px #c5a05959}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #c5a05980}.btn-secondary{color:var(--text-title);background:#9b3b3b14;border:1px solid #9b3b3b33}.btn-secondary:hover{background:#9b3b3b26;transform:translateY(-1px)}.btn-icon{font-size:18px}.preview-container{flex-direction:column;align-items:center;gap:40px;padding:32px;display:flex}.preview-title{color:var(--text-label);text-align:center;letter-spacing:2px;text-transform:uppercase;font-family:Playfair Display,serif;font-size:18px}.cards-grid{flex-wrap:wrap;justify-content:center;gap:24px;max-width:1200px;display:flex}.welcome-card,.itinerary-card,.trifold-card{background:linear-gradient(160deg, var(--bg-card-start) 0%, var(--bg-card-mid) 50%, var(--bg-card-end) 100%);border-radius:3px;flex-shrink:0;position:relative;overflow:hidden;box-shadow:0 8px 30px #8b353526,0 0 0 1px #ffffff80}.welcome-card{width:var(--card-w);height:var(--card-h)}.itinerary-card{width:var(--card-w);height:var(--itinerary-h)}.welcome-card.disco-card{border:1px solid #00ffff4d;box-shadow:0 0 30px #f0f3,0 0 60px #00ffff1a}.welcome-card.disco-card:before{opacity:.5;filter:blur(30px);background:#ff00ff26}.welcome-card.disco-card:after{opacity:.5;filter:blur(30px);background:#8a2be226}.welcome-card.disco-card .card-poem-wrapper{background:#ffffff08;border-color:#0ff3}.welcome-card:before,.welcome-card:after,.itinerary-card:before,.itinerary-card:after,.trifold-card:before,.trifold-card:after{content:"";filter:blur(20px);pointer-events:none;border-radius:50%;position:absolute}.welcome-card:before,.itinerary-card:before,.trifold-card:before{opacity:.35;background:#fce4e4;width:4cm;height:3.5cm;top:5%;right:5%}.welcome-card:after,.itinerary-card:after,.trifold-card:after{opacity:.35;background:#e8f0df;width:4.5cm;height:4cm;bottom:8%;left:5%}.card-inner{z-index:2;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:.6cm .5cm;display:flex;position:relative}.card-foto-wrapper{border:3px solid var(--gold-mid);z-index:5;border-radius:50%;flex-shrink:0;width:90px;height:90px;margin:0 auto 10px;position:relative;overflow:hidden;box-shadow:0 4px 10px #0000001a}.card-foto{object-fit:cover;width:100%;height:100%}.card-frame{border:.5pt solid;border-image:linear-gradient(135deg, var(--gold-start), var(--gold-mid), var(--gold-end)) 1;opacity:.7;z-index:1;pointer-events:none;border-radius:3px;position:absolute;inset:.25cm}.card-frame-inner{z-index:1;pointer-events:none;border:.3pt dashed #c88c8280;border-radius:2px;position:absolute;inset:.35cm}.corner{z-index:2;pointer-events:none;width:.5cm;height:.5cm;position:absolute}.corner:before,.corner:after{content:"";background:linear-gradient(135deg, var(--gold-start), var(--gold-mid), var(--gold-end));position:absolute}.corner:before{width:100%;height:1.5pt}.corner:after{width:1.5pt;height:100%}.corner-tl{top:.25cm;left:.25cm}.corner-tl:before,.corner-tl:after{top:0;left:0}.corner-tr{top:.25cm;right:.25cm}.corner-tr:before,.corner-tr:after{top:0;right:0}.corner-bl{bottom:.25cm;left:.25cm}.corner-bl:before,.corner-bl:after{bottom:0;left:0}.corner-br{bottom:.25cm;right:.25cm}.corner-br:before,.corner-br:after{bottom:0;right:0}.card-bienvenida-label{font-family:var(--font-condensed,"Barlow Condensed", sans-serif);letter-spacing:3pt;text-transform:uppercase;color:var(--text-label);margin-bottom:.15cm;font-size:10.5pt;font-weight:600}.card-bienvenida-text{font-family:var(--font-cursive,"Great Vibes", cursive);color:var(--text-cursive);margin-bottom:.2cm;font-size:35pt;line-height:1.1}.card-mama-name{font-family:var(--font-title,"Playfair Display", serif);color:var(--text-title,#8c3535);text-align:center;word-break:break-word;margin-bottom:.3cm;padding:0 .3cm;font-weight:900;line-height:1.15}.card-divider{align-items:center;gap:.2cm;width:80%;margin:.2cm 0;display:flex}.card-divider-line{background:linear-gradient(90deg, transparent, var(--gold-mid), transparent);flex:1;height:.5pt}.card-divider-diamond{background:var(--gold-mid,#cf6538);flex-shrink:0;width:6pt;height:6pt;position:relative;transform:rotate(45deg)}.card-divider-diamond:after{content:"";background:#fff;border-radius:50%;width:2pt;height:2pt;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-divider-solid{background:#222;width:50%;height:3pt;margin:.15cm 0}.card-poem-wrapper{background:0 0;border:.5pt solid #0000001a;border-radius:2pt;width:85%;margin:.2cm 0 .1cm;padding:.4cm .5cm;box-shadow:0 1px 3px #00000005}.card-poem{font-family:var(--font-body,"Cormorant Garamond", serif);color:var(--text-body);text-align:center;white-space:pre-line;font-size:11.5pt;font-style:italic;font-weight:600;line-height:1.55}.card-departe-label{font-family:var(--font-condensed,"Barlow Condensed", sans-serif);letter-spacing:2.5pt;text-transform:uppercase;color:var(--text-label);margin-top:.15cm;margin-bottom:.1cm;font-size:9pt;font-weight:600}.card-hijos-wrapper{border:.5pt solid;border-image:linear-gradient(135deg, var(--gold-start), var(--gold-mid), var(--gold-end)) 1;background:linear-gradient(90deg,#fff9f7cc,#fceae5e6,#fff9f7cc);border-radius:3pt;width:85%;padding:.2cm .3cm;position:relative}.card-hijos-wrapper:before{content:"";background:linear-gradient(to bottom, var(--gold-start), var(--gold-mid), var(--gold-end));border-radius:2pt 0 0 2pt;width:3pt;height:100%;position:absolute;top:0;left:0}.card-hijos-names{color:#7a2e2e;text-align:center;padding-left:.15cm;font-family:Great Vibes,cursive;font-size:17pt;line-height:1.3}.itinerary-schedule{flex-direction:column;gap:.15cm;width:90%;margin-top:.1cm;display:flex}.itinerary-item{align-items:center;font-family:Barlow Condensed,sans-serif;display:flex}.itinerary-time{color:var(--text-title);text-align:right;flex-shrink:0;width:1.8cm;font-size:8pt;font-weight:600}.itinerary-dots{border-bottom:.5pt dotted #c88c8266;flex-grow:1;margin:0 .2cm;position:relative;top:-2pt}.itinerary-activity{color:var(--text-body);flex-shrink:0;font-family:Cormorant Garamond,serif;font-size:9.5pt;font-weight:600}.card-decorations{z-index:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.card-flower-img{object-fit:contain;pointer-events:none;filter:drop-shadow(0 2px 4px #0000000f);position:absolute}.card-roses-row{justify-content:center;margin-top:.2cm;display:flex}.card-bouquet-img{pointer-events:none;filter:drop-shadow(0 1px 2px #0000000d);width:4.1cm;height:auto}.card-sparkle{pointer-events:none;z-index:3;border-radius:50%;position:absolute}.print-banner{display:none}.preview-banner-wrapper{margin:32px auto;padding:24px}.preview-banner-title{text-align:center;letter-spacing:2px;color:var(--text-label);text-transform:uppercase;margin-bottom:16px;font-family:Barlow Condensed,sans-serif;font-size:14px}.preview-banner{width:var(--banner-w);height:var(--banner-h);grid-template-columns:repeat(var(--cols), var(--card-w));grid-template-rows:repeat(var(--rows), var(--card-h));background:#fff;margin:0 auto;display:grid;overflow:hidden;box-shadow:0 4px 30px #0000001f}.preview-banner.itinerary-banner{grid-template-rows:repeat(var(--itinerary-rows), var(--itinerary-h))}.preview-banner.trifold-banner{grid-template-rows:repeat(6,15cm);grid-template-columns:1fr}.preview-banner .welcome-card,.preview-banner .itinerary-card,.preview-banner .trifold-card{outline-offset:-.5pt;border-radius:0;outline:.5pt dashed #b482784d;box-shadow:inset 0 0 0 .2pt #c88c8226}.export-status{color:#fff;letter-spacing:1px;z-index:9999;background:#6b3030e6;border-radius:8px;padding:12px 24px;font-family:Barlow Condensed,sans-serif;font-size:14px;animation:.3s slideUp;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #00000040}@keyframes slideUp{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}@page{size:30cm 100cm;margin:0}body{background:0 0!important}.controls-bar,.global-nav,.preview-container,.export-status{display:none!important}.print-banner{grid-template-rows:repeat(4,25cm);grid-template-columns:repeat(3,10cm);width:30cm;height:100cm;margin:0;padding:0;display:grid!important}.print-banner.itinerary-print-banner{grid-template-rows:repeat(8,12.5cm)}.print-banner.trifold-print-banner{grid-template-rows:repeat(6,15cm);grid-template-columns:1fr}.print-banner .welcome-card,.print-banner .itinerary-card,.print-banner .trifold-card{box-shadow:none;break-inside:avoid;border-radius:0}}.trifold-card{flex-shrink:0;width:30cm;height:16cm;position:relative;overflow:hidden}.trifold-layout{z-index:2;grid-template-columns:1fr 1fr 1fr;width:100%;height:100%;display:grid;position:relative}.trifold-panel{flex-direction:column;justify-content:center;align-items:center;padding:.8cm;display:flex;position:relative}.trifold-panel:not(:last-child){border-right:1px dashed #9b3b3b40}.trifold-cursive-label{color:var(--text-title);margin-bottom:-.2cm;font-family:Great Vibes,cursive;font-size:20pt;font-style:italic;font-weight:300}.trifold-panel-title{letter-spacing:4pt;text-transform:uppercase;color:var(--text-title);margin-top:0;margin-bottom:.4cm;font-family:Playfair Display,serif;font-size:16pt;font-weight:400}.trifold-divider{background:var(--gold-mid);opacity:.7;width:2cm;height:1px;margin-bottom:.5cm}.trifold-content{text-align:center;letter-spacing:1pt;width:100%;font-family:Barlow Condensed,sans-serif;font-size:10pt;line-height:1.4}.trifold-menu-item{margin:0}.trifold-menu-item strong{letter-spacing:2pt;opacity:.9;font-family:Playfair Display,serif;font-size:9pt;font-weight:600}.trifold-number{margin:0 0 .2cm;font-family:Playfair Display,serif;font-size:65pt;font-weight:400;line-height:1}.trifold-footer{text-align:center}.trifold-footer-names{letter-spacing:3pt;margin-bottom:.1cm;font-family:Barlow Condensed,sans-serif;font-size:10pt}.trifold-footer-date{letter-spacing:2pt;opacity:.8;font-family:Barlow Condensed,sans-serif;font-size:8pt}.trifold-schedule-item{text-align:left;justify-content:space-between;margin-bottom:.2cm;font-size:10pt;display:flex}.trifold-time{text-align:right;flex-shrink:0;width:1.5cm;margin-right:.5cm;font-weight:600}.trifold-activity{text-align:left;opacity:.9;flex-grow:1}@media screen and (width<=768px){.controls-bar{gap:8px;padding:12px 16px}.controls-bar h1{text-align:center;width:100%;margin-bottom:8px;margin-right:0;font-size:22px}.btn{padding:8px 14px;font-size:13px}.cards-grid{gap:16px}.preview-container{padding:16px}}.view-toggle{background:#9b3b3b0f;border:1px solid #9b3b3b26;border-radius:6px;display:flex;overflow:hidden}.view-toggle button{letter-spacing:1px;color:var(--text-label);cursor:pointer;background:0 0;border:none;padding:8px 16px;font-family:Barlow Condensed,sans-serif;font-size:13px;transition:all .2s}.view-toggle button.active{background:linear-gradient(135deg, var(--gold-start), var(--gold-mid));color:#fff}.view-toggle button:hover:not(.active){background:#9b3b3b1a}.album-page-wrapper{min-height:100vh;position:relative;overflow:hidden}.page-flowers{z-index:5;pointer-events:none;flex-direction:column;align-items:center;width:clamp(60px,10vw,120px);display:flex;position:fixed;top:0;bottom:0}.page-flowers-left{left:0}.page-flowers-right{right:0}.page-flower{opacity:.5;pointer-events:none;filter:drop-shadow(0 2px 4px #00000014);width:clamp(55px,9vw,110px);height:auto;transition:opacity .4s;position:absolute}.page-flower:hover{opacity:.75}.album-header{text-align:center;background:var(--bg-header,#ffffff08);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light,#ffffff1a);padding:48px 24px 32px;position:relative;overflow:hidden}.album-header-inner{z-index:2;position:relative}.album-title{font-family:var(--font-title,"Great Vibes", cursive);color:var(--text-cursive,var(--text-title));text-shadow:0 2px 10px #0006;margin-bottom:4px;font-size:48px;line-height:1.2}.album-subtitle{font-family:var(--font-body,"Barlow Condensed", sans-serif);letter-spacing:3px;text-transform:uppercase;color:var(--text-label);margin-bottom:12px;font-size:14px;font-weight:600}.album-divider{align-items:center;gap:8px;width:200px;margin:0 auto 12px;display:flex}.album-photo-count{font-family:var(--font-body,"Cormorant Garamond", serif);color:var(--text-body);font-size:16px;font-style:italic}.album-upload-section{justify-content:center;padding:24px;display:flex}.photo-upload-zone{text-align:center;cursor:pointer;background:#fff9;border:2px dashed #c88c8266;border-radius:12px;width:100%;max-width:600px;padding:36px 24px;transition:all .3s}.photo-upload-zone:hover{border-color:var(--gold-mid);background:#fff9f7e6;transform:translateY(-2px);box-shadow:0 4px 20px #c5a05926}.photo-upload-zone.dragging{border-color:var(--gold-start);background:#fdf4f0f2;transform:scale(1.02);box-shadow:0 0 0 4px #c5a05926,0 8px 30px #c5a05933}.photo-upload-zone.uploading{cursor:wait;opacity:.85}.upload-icon{margin-bottom:8px;font-size:40px;display:block}.upload-title{color:var(--text-title);margin-bottom:4px;font-family:Playfair Display,serif;font-size:18px;font-weight:700}.upload-subtitle{color:var(--text-label);font-family:Cormorant Garamond,serif;font-size:14px;font-style:italic}.upload-progress{flex-direction:column;align-items:center;gap:12px;display:flex}.upload-spinner{border:3px solid #c88c8233;border-top-color:var(--gold-mid);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.upload-status-text{color:var(--text-body);letter-spacing:.5px;font-family:Barlow Condensed,sans-serif;font-size:14px}.upload-error{color:#c92a2a;margin-top:8px;font-family:Barlow Condensed,sans-serif;font-size:13px}.album-grid-section{padding:0 24px 48px;overflow-x:hidden}.photo-masonry{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:50px 20px;max-width:1200px;margin:0 auto;padding-top:30px;display:grid}.photo-item{--rotation:0deg;break-inside:avoid;cursor:pointer;opacity:0;transform:translateY(30px) rotate(var(--rotation));transform-origin:top;z-index:1;background:#fff;border:1px solid #0000000d;border-radius:2px;margin-bottom:30px;padding:10px 10px 45px;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s,z-index;animation:.6s cubic-bezier(.34,1.56,.64,1) forwards photoFadeIn;position:relative;box-shadow:0 4px 12px #0000001a}.photo-item:nth-child(2n){--rotation:2deg}.photo-item:nth-child(3n){--rotation:-3deg}.photo-item:nth-child(5n){--rotation:4deg}.photo-item:nth-child(7n){--rotation:-2deg}.photo-item:before{content:"";z-index:0;pointer-events:none;background-image:url(https://assets.nuxx.app/madres/public/cordon.png);background-repeat:repeat-x;background-size:auto 100%;width:200vw;height:6px;position:absolute;top:-18px;left:-50vw}.photo-item:after{content:"";z-index:5;filter:drop-shadow(1px 2px 3px #0000004d);background-image:url(https://assets.nuxx.app/madres/public/gancho.png);background-position:50%;background-repeat:no-repeat;background-size:contain;width:16px;height:38px;position:absolute;top:-24px;left:50%;transform:translate(-50%)}@keyframes photoFadeIn{to{opacity:1;transform:translateY(0) rotate(var(--rotation))}}.photo-item img{aspect-ratio:1;object-fit:cover;background:#f5f5f5;border-radius:2px;width:100%;display:block;box-shadow:inset 0 0 4px #0000001a}.photo-item:hover{z-index:10;box-shadow:0 15px 30px #0003;transform:scale(1.05)rotate(0)!important}.photo-overlay{opacity:1;background:0 0;flex-direction:column;justify-content:center;align-items:center;gap:2px;height:45px;padding:0 10px;display:flex;position:absolute;bottom:0;left:0;right:0}.photo-meta-camera,.photo-meta-date{color:#666;letter-spacing:.5px;text-align:center;font-family:Barlow Condensed,sans-serif;font-size:13px;font-weight:500}.photo-meta-camera{color:#999;font-size:11px}.photo-placeholder{aspect-ratio:1;background:#f5ece980;border-radius:2px;justify-content:center;align-items:center;width:100%;display:flex}.album-empty{text-align:center;padding:60px 24px}.album-empty-icon{margin-bottom:12px;font-size:48px;display:block}.album-empty-text{color:var(--text-title);margin-bottom:4px;font-family:Playfair Display,serif;font-size:20px}.album-empty-subtitle{color:var(--text-label);font-family:Cormorant Garamond,serif;font-size:15px;font-style:italic}.album-loading,.album-error{text-align:center;color:var(--text-body);padding:48px 24px;font-family:Cormorant Garamond,serif;font-size:16px}.album-loading{flex-direction:column;align-items:center;gap:12px;display:flex}.album-error button{margin-top:12px}.album-new-photo-alert{background:linear-gradient(135deg, var(--gold-start), var(--gold-mid));color:#fff;letter-spacing:1px;z-index:9999;border-radius:24px;padding:10px 24px;font-family:Barlow Condensed,sans-serif;font-size:14px;font-weight:600;animation:.4s slideDown,.4s 2.6s slideUp;position:fixed;top:80px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #c5a05966}@keyframes slideDown{0%{opacity:0;transform:translate(-50%)translateY(-20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.modal-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10000;background:#000000d9;justify-content:center;align-items:center;transition:background-color .4s;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.modal-backdrop.immersive{background:#000}.hidden-ui{opacity:0!important;pointer-events:none!important}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{flex-direction:column;align-items:center;max-width:90vw;max-height:90vh;display:flex;position:relative}.modal-close{color:#fffc;cursor:pointer;z-index:10001;background:0 0;border:none;font-size:28px;transition:opacity .3s,color .2s;position:absolute;top:-40px;right:0}.modal-close:hover{color:#fff}.modal-nav{color:#fff;cursor:pointer;z-index:10001;background:#ffffff1a;border:1px solid #fff3;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;font-size:32px;transition:opacity .3s,background .2s;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.modal-nav:hover{background:#fff3}.modal-nav-prev{left:-60px}.modal-nav-next{right:-60px}.modal-image-container{border-radius:6px;overflow:hidden;box-shadow:0 8px 40px #00000080}.modal-image{object-fit:contain;max-width:85vw;max-height:75vh;display:block}.modal-meta{justify-content:space-between;align-items:center;gap:16px;width:100%;padding:12px 0;transition:opacity .3s;display:flex}.modal-meta-counter{color:#fff9;letter-spacing:1px;flex-shrink:0;font-family:Barlow Condensed,sans-serif;font-size:13px}.modal-meta-details{flex-wrap:wrap;justify-content:flex-end;gap:16px;display:flex}.modal-meta-item{color:#ffffffb3;letter-spacing:.5px;font-family:Barlow Condensed,sans-serif;font-size:12px}.upload-wrapper{position:relative}.upload-mobile-buttons{display:none}.upload-progress-bar-container{background:#c88c8226;border-radius:3px;width:80%;max-width:300px;height:6px;margin:0 auto 12px;overflow:hidden}.upload-progress-bar{background:linear-gradient(90deg, var(--gold-start), var(--gold-mid));border-radius:3px;height:100%;transition:width .3s}.upload-mobile-toast{display:none}.upload-success-toast{color:#fff;letter-spacing:.5px;z-index:9999;background:linear-gradient(135deg,#2d8a4e,#38a169);border-radius:24px;padding:12px 28px;font-family:Barlow Condensed,sans-serif;font-size:15px;font-weight:600;animation:.3s toastIn,.3s 2.7s forwards toastOut;position:fixed;bottom:40px;left:50%;transform:translate(-50%);box-shadow:0 4px 20px #2d8a4e66}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(20px)}to{opacity:1;transform:translate(-50%)translateY(0)}}@keyframes toastOut{0%{opacity:1}to{opacity:0;pointer-events:none}}.modal-swipe-hint{display:none}@media screen and (width<=768px){.page-flowers{width:clamp(35px,8vw,65px)}.page-flower{opacity:.35;width:clamp(35px,8vw,65px)}.global-nav{gap:4px;padding:8px 12px}.global-nav button{padding:8px 14px;font-size:14px}.album-header{padding:24px 16px 20px}.album-title{font-size:36px}.album-subtitle{letter-spacing:2px;margin-bottom:8px;font-size:12px}.album-photo-count{font-size:14px}.upload-mobile-buttons{justify-content:center;gap:12px;padding:16px;display:flex}.upload-btn{cursor:pointer;background:#fffc;border:2px solid #c88c824d;border-radius:16px;flex-direction:column;flex:1;align-items:center;gap:6px;max-width:180px;padding:20px 16px;transition:all .2s;display:flex}.upload-btn:active{border-color:var(--gold-mid);background:#fff9f7f2;transform:scale(.96)}.upload-btn:disabled{opacity:.5;cursor:wait}.upload-btn-icon{font-size:32px;display:block}.upload-btn-label{color:var(--text-title);letter-spacing:.5px;font-family:Barlow Condensed,sans-serif;font-size:14px;font-weight:600}.upload-btn-camera{background:linear-gradient(145deg,#fdf4f0e6,#fffc);border-color:#c5a05966}.upload-btn-gallery{border-color:#c88c824d}.photo-upload-zone{display:none}.album-upload-section{padding:0}.upload-mobile-toast{background:#ffffffe6;border:1px solid #c88c8233;border-radius:12px;flex-direction:column;align-items:center;gap:8px;margin:0 16px;padding:12px 16px;display:flex}.upload-mobile-toast-bar{background:#c88c8226;border-radius:3px;width:100%;height:6px;overflow:hidden}.upload-mobile-toast-fill{background:linear-gradient(90deg, var(--gold-start), var(--gold-mid));border-radius:3px;height:100%;transition:width .3s}.upload-mobile-toast-text{color:var(--text-body);margin:0;font-family:Barlow Condensed,sans-serif;font-size:13px}.photo-masonry{grid-template-columns:repeat(2,1fr);gap:40px 12px}.photo-item{margin-bottom:20px;padding:8px 8px 38px}.photo-overlay{height:38px;padding:0 5px}.album-grid-section{padding:0 8px 24px}.modal-content{justify-content:center;width:100vw;max-width:100vw;height:100vh;max-height:100vh}.modal-image-container{width:100%;height:100%;box-shadow:none;border-radius:0;justify-content:center;align-items:center;display:flex}.modal-image{object-fit:contain;width:100%;max-width:100vw;height:100%;max-height:100vh}.modal-close{background:#0006;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;padding-bottom:2px;font-size:22px;display:flex;top:16px;right:16px}.modal-nav{background:#0006;border:none;width:40px;height:40px;font-size:24px}.modal-nav-prev{left:8px}.modal-nav-next{right:8px}.modal-meta{z-index:10001;background:linear-gradient(#0000,#000c);flex-direction:column;align-items:center;gap:4px;padding:32px 16px 20px;position:absolute;bottom:0;left:0;right:0}.modal-meta-details{justify-content:center;gap:10px}.modal-meta-item{text-shadow:0 1px 2px #000c;font-size:11px}.modal-swipe-hint{color:#fff;letter-spacing:1px;text-align:center;z-index:10002;pointer-events:none;background:#0009;border-radius:24px;padding:12px 24px;font-family:Barlow Condensed,sans-serif;font-size:14px;font-weight:600;transition:opacity .3s;animation:2.5s forwards fadeHint;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes fadeHint{0%,70%{opacity:1}to{opacity:0}}}@media screen and (width<=480px){.nav-label{display:none}.global-nav button{padding:10px 16px}.nav-icon{font-size:22px}.album-title{font-size:28px}.album-header{padding:20px 12px 16px}.album-flower{display:none}.album-subtitle{font-size:11px}.album-divider{width:140px;margin-bottom:8px}.upload-mobile-buttons{gap:8px;padding:12px}.upload-btn{padding:16px 12px}.upload-btn-icon{font-size:28px}.upload-btn-label{font-size:13px}.photo-masonry{gap:30px 8px}.photo-item{margin-bottom:16px}.upload-success-toast{padding:10px 20px;font-size:13px;bottom:24px}.album-empty{padding:40px 16px}.album-empty-icon{font-size:36px}.album-empty-text{font-size:17px}.album-empty-subtitle{font-size:13px}}.qr-config-panel{background:#c4a35e0f;border:1px solid #c4a35e26;border-radius:12px;margin:12px 0 16px;padding:14px 16px}.qr-config-label{color:#c4a35e;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:10px;font-size:.8rem;font-weight:700;display:block}.qr-config-row{gap:8px;display:flex}.qr-config-input{color:#f5e6d3;background:#ffffff0d;border:1px solid #c4a35e33;border-radius:8px;outline:none;flex:1;padding:10px 12px;font-family:inherit;font-size:.9rem}.qr-config-input::placeholder{color:#f5e6d340}.qr-config-btn{color:#3d2914;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#c4a35e,#d4b87a);border:none;border-radius:8px;padding:10px 16px;font-family:inherit;font-size:.8rem;font-weight:700;transition:opacity .2s}.qr-config-btn:disabled{opacity:.5;cursor:not-allowed}.qr-config-error{color:#ef4444;margin:8px 0 0;font-size:.8rem}.qr-config-preview{align-items:center;gap:12px;margin-top:12px;display:flex}.qr-config-preview img{border:1px solid #c4a35e33;border-radius:6px;width:64px;height:64px}.qr-config-status{color:#22c55e;font-size:.8rem;font-weight:600}.trifold-qr{text-align:center;margin:.2cm 0}.trifold-qr-img{border-radius:4pt;width:4.5cm;height:4.5cm}.trifold-qr-label{color:var(--text-label);letter-spacing:1pt;margin:.05cm 0 0;font-family:Playfair Display,Georgia,serif;font-size:7pt}
