 :root{--paper:#f8f3ed;--card:#fffdf9;--ink:#392920;--muted:#92796b;--line:#e8d9cd;--rose:#a97665;--rose-dark:#875b4c;--soft:#f0e4da;--shadow:0 14px 38px #553a2b12}
*{box-sizing:border-box}html{min-height:100%;background:#eee9e3}body{margin:0;color:var(--ink);font-family:"DM Sans",sans-serif;-webkit-font-smoothing:antialiased}button{font:inherit;cursor:pointer}button:focus-visible{outline:3px solid #bd927d;outline-offset:3px}main{width:min(100%,520px);min-height:100dvh;margin:0 auto;background:var(--paper);box-shadow:0 0 35px #4c332012;position:relative}.cover-screen{min-height:100dvh;min-height:100svh;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;padding:35px 24px 24px;background-image:linear-gradient(180deg,rgba(255,248,239,.88) 0%,rgba(255,247,237,.55) 38%,rgba(75,48,36,.12) 100%),url("assets/backgrounds/cover-background.jpg"),radial-gradient(ellipse at 50% 25%,#fffaf2 0,#f8f0e7 55%,#eee0d2 100%);background-position:center;background-size:cover;background-repeat:no-repeat;isolation:isolate}.cover-glow{position:absolute;inset:0;background:linear-gradient(180deg,#fff8efcc 0%,#fff7ed40 42%,transparent 65%);z-index:-1}.cover-leaves{position:absolute;left:-40px;top:90px;font-size:140px;color:#b5a17e;opacity:.15;transform:rotate(-24deg)}.cover-content{text-align:center;z-index:2;width:100%}.monogram,.small-monogram{border:1px solid #c9a58f;border-radius:50%;display:grid;place-items:center;font-family:"Playfair Display",serif;color:var(--rose-dark);position:relative}.monogram{width:58px;height:58px;margin:0 auto 24px;font-size:23px;letter-spacing:-2px}.small-monogram{letter-spacing:-1.5px;font-size:19px}.monogram span,.small-monogram span{position:absolute;font-size:13px;right:6px;bottom:4px;color:#c29a7e}.eyebrow{display:flex;align-items:center;justify-content:center;gap:12px;font-size:10px;letter-spacing:3px;color:var(--rose-dark);margin:0 0 18px}.eyebrow span{width:23px;height:1px;background:#c9a58f}.cover-content h1{font:400 clamp(40px,10vw,58px)/1.05 "Playfair Display",serif;letter-spacing:-1.7px;margin:0}.cover-content h1 i,.gallery-brand i{font-weight:400;color:var(--rose);font-style:italic}.cover-quote{font:italic 16px "Playfair Display",serif;color:var(--rose);margin:17px 0 0}.cover-art{display:none;position:absolute;z-index:-1;bottom:45px;left:0;right:0;height:48%;overflow:hidden;background:linear-gradient(#f5dfbf 0%,#eac29d 35%,#d7a780 65%,#7e8c69 100%);border-radius:48% 48% 0 0/18% 18% 0 0}.sun{position:absolute;width:130px;height:130px;border-radius:50%;background:#fff2cc;filter:blur(1px);top:7%;left:calc(50% - 65px);box-shadow:0 0 65px #fff4c7aa}.distant-hills{position:absolute;left:-10%;right:-10%;height:55%;bottom:20%;background:#b99579;clip-path:polygon(0 70%,16% 40%,28% 57%,48% 20%,67% 57%,83% 35%,100% 62%,100% 100%,0 100%);opacity:.65}.garden-hill{position:absolute;inset:auto -10% -5%;height:53%;background:linear-gradient(130deg,#5f755b,#a3a27a 55%,#6c7d5b);border-radius:50% 50% 0 0/20% 20% 0 0}.flower{position:absolute;color:#fff2dc;text-shadow:0 0 8px #fff6e4;font-size:25px}.flower-one{left:9%;bottom:23%}.flower-two{right:12%;bottom:30%;font-size:32px}.flower-three{left:22%;bottom:11%;font-size:19px}.couple{position:absolute;bottom:10%;left:50%;transform:translateX(-50%);height:58%;width:48%;display:flex;align-items:flex-end;justify-content:center;gap:5px}.groom{width:31%;height:69%;background:linear-gradient(90deg,#d6c8b6,#f1e7d9 48%,#c7b6a2);border-radius:24% 24% 5% 5%;clip-path:polygon(20% 0,80% 0,100% 100%,0 100%);position:relative}.groom:before{content:"";position:absolute;top:-18%;left:28%;width:45%;height:22%;background:#614b3b;border-radius:42% 42% 35% 35%}.bride{width:39%;height:73%;background:linear-gradient(90deg,#e8d8c5,#fff6e8 45%,#d9c4af);clip-path:polygon(36% 0,66% 0,78% 24%,100% 100%,0 100%,24% 24%);position:relative}.bride:before{content:"";position:absolute;top:-15%;left:29%;width:43%;height:20%;background:#4b352b;border-radius:50% 50% 40% 40%}.bride:after{content:"";position:absolute;top:3%;left:47%;height:50%;width:28%;background:#fffaf0aa;transform:rotate(8deg);border-radius:50%}.open-gallery{position:absolute;z-index:3;bottom:75px;left:7%;width:86%;border:0;border-radius:999px;padding:18px 20px;background:var(--rose-dark);color:white;font-size:12px;letter-spacing:3px;font-weight:700;box-shadow:0 8px 24px #5d372b33}.open-gallery span{font-size:18px;margin-left:12px}.cover-footnote{position:absolute;bottom:25px;margin:0;color:#76584a;font-size:10px;letter-spacing:.4px}.gallery-screen{min-height:100dvh;padding-bottom:100px;background:var(--paper)}.gallery-header{height:76px;padding:0 18px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--line);background:#faf6f0}.small-monogram{width:42px;height:42px;font-size:23px;flex-shrink:0}.gallery-brand{display:grid;gap:4px;flex:1}.gallery-brand strong{font:500 17px "Playfair Display",serif}.gallery-brand small{font-size:8px;letter-spacing:2px;color:var(--muted)}.icon-button{border:0;background:transparent;color:var(--rose-dark);font-size:24px;width:40px;height:40px}.gallery-intro{padding:24px 17px 18px}.gallery-intro p{font-size:9px;letter-spacing:2.4px;color:var(--rose-dark);margin:0 0 8px}.gallery-intro h2{font:400 27px "Playfair Display",serif;margin:0 0 6px}.gallery-intro span{font-size:11px;color:var(--muted)}.gallery-status{margin:0 14px 12px;color:var(--muted);font-size:11px;padding:8px 2px}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;padding:0 3px}.gallery-tile{aspect-ratio:1/1;overflow:hidden;background:#eee0d3;cursor:pointer}.gallery-tile img{display:block;width:100%;height:100%;object-fit:cover}.empty-gallery{text-align:center;padding:38px 22px 24px;color:var(--muted)}.empty-gallery[hidden]{display:none}.empty-camera{width:52px;height:52px;border-radius:50%;background:var(--soft);display:grid;place-items:center;margin:0 auto 12px;color:var(--rose-dark);font-size:27px}.empty-gallery h3{font:400 21px "Playfair Display",serif;color:var(--ink);margin:0 0 8px}.empty-gallery p{font-size:12px;line-height:1.6;margin:0 0 17px}.empty-gallery button{border:1px solid #d7bbaa;background:transparent;color:var(--rose-dark);border-radius:999px;padding:10px 17px;font-size:12px}.bottom-nav{position:fixed;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);height:78px;padding:7px 15% calc(7px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:space-between;background:#fffdf9f2;border-top:1px solid var(--line);backdrop-filter:blur(14px)}.nav-item{width:44px;height:44px;border:0;background:transparent;color:#a27c69;font-size:29px}.nav-item.active{color:var(--rose-dark)}.camera-button{width:58px;height:58px;border:0;border-radius:50%;background:var(--rose-dark);color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 4px 14px #875b4c35;margin-top:-19px}.camera-button span{font-size:27px;line-height:24px}.camera-button small{font-size:7px;letter-spacing:1.5px;margin-top:3px}.toast{position:fixed;z-index:10;bottom:90px;left:50%;transform:translateX(-50%);width:max-content;max-width:90%;padding:11px 15px;border-radius:999px;background:#392920;color:white;font-size:12px;opacity:0;pointer-events:none;transition:opacity .2s}.toast.show{opacity:1}[hidden]{display:none!important}@media(min-height:800px){.cover-art{height:51%}.open-gallery{bottom:76px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Local gallery interactions and refined bottom navigation */
.gallery-status{line-height:1.5}.gallery-status:empty{display:none}.gallery-grid:empty{display:none}
.gallery-tile{display:block;width:100%;padding:0;border:0;position:relative}.gallery-tile:focus-visible{outline:3px solid var(--rose);outline-offset:-3px}.gallery-tile img{transition:transform .25s ease}.gallery-tile:hover img{transform:scale(1.03)}
.empty-camera svg,.camera-button svg,.nav-item svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.camera-button{width:54px;height:54px;margin-top:-12px;box-shadow:0 3px 10px #875b4c22}.camera-button svg{width:25px;height:25px}.nav-item{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;font-size:0}.nav-item.active{background:var(--soft)}.nav-item svg{width:22px;height:22px}.bottom-nav{height:72px;padding:6px 18% calc(6px + env(safe-area-inset-bottom));justify-content:space-between}.gallery-screen{padding-bottom:calc(86px + env(safe-area-inset-bottom))}.empty-gallery{padding-top:30px}.empty-camera svg{width:24px;height:24px}.photo-viewer{position:fixed;inset:0;z-index:20;background:#171310f5;display:flex;align-items:center;justify-content:center;padding:60px 16px 86px}.photo-viewer[hidden]{display:none}.photo-viewer>img{max-width:100%;max-height:100%;object-fit:contain;border-radius:3px}.viewer-close,.viewer-arrow{position:absolute;border:0;color:#fff;background:#ffffff20;display:grid;place-items:center}.viewer-close{top:calc(12px + env(safe-area-inset-top));right:14px;width:42px;height:42px;border-radius:50%;font-size:30px}.viewer-arrow{top:50%;transform:translateY(-50%);width:42px;height:54px;border-radius:8px;font-size:34px}.viewer-prev{left:10px}.viewer-next{right:10px}.viewer-caption{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom));left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:12px;color:#fff;font-size:12px}.viewer-caption span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-caption button{flex-shrink:0;background:transparent;border:1px solid #ffffff75;border-radius:999px;color:#fff;padding:9px 12px;font-size:11px}.toast{bottom:calc(84px + env(safe-area-inset-bottom))}@media(prefers-reduced-motion:reduce){.gallery-tile img{transition:none}}
