@import "https://fonts.googleapis.com/css2?family=Great+Vibes&display=swap";
:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#050505;--bg-soft:#111;--card:#121212e0;--card-strong:#181818fa;--text:#f7f4ef;--muted:#a8a39c;--border:#ffffff14;--accent:#1f41d6;--accent-soft:#d61f3d24;--shadow:0 20px 50px #00000073;--radius-xl:28px;--radius-lg:22px;--radius-md:16px;--max-width:1320px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:radial-gradient(circle at top,#2a75ff38,#0000 30%),linear-gradient(#08101f 0%,#050b16 42%,#03070f 100%);min-height:100vh;margin:0;font-family:Georgia,Times New Roman,serif}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}.page-shell{width:min(calc(100% - 32px), var(--max-width));margin:0 auto;padding:24px 0 72px}.homepage-shell{width:min(100% - 32px,1480px)}.homepage-body{padding:52px 0 72px}.app-header{grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-bottom:24px;display:grid}.app-header-side{min-width:0}.app-header-nav,.app-header-tools{align-items:center;display:flex}.app-header-nav{gap:14px}.app-header-tools{justify-content:flex-end}.header-link{color:var(--muted);text-transform:uppercase;letter-spacing:.12em;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.95rem}.app-logo-link{justify-content:center;display:flex}.app-logo{width:min(240px,48vw);height:auto}.language-switch{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffff0a;border:1px solid #ffffff1a;border-radius:999px;align-items:center;gap:8px;padding:8px 10px;display:flex}.language-chip{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:6px 10px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.88rem}.language-chip-active{color:var(--text);background:#ffffff1f}.app-header-floating-shell{z-index:40;pointer-events:none;position:fixed;top:24px;left:0;right:0}.app-header-floating{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;background:#060b16b8;border:1px solid #ffffff1a;border-radius:999px;width:min(100% - 108px,1620px);margin:0 auto;padding:18px 34px;transition:opacity .28s,transform .32s,background .22s;box-shadow:0 20px 40px #00000047}.app-header-wedding{color:#3d342b;margin:0 4%}.app-header-wedding .header-link{color:#3d342bb8}.app-header-wedding .header-link:hover{color:#3d342b}.app-header-wedding .language-switch{background:#fffaf5c2;border-color:#a8907638}.app-header-wedding .language-chip{color:#3d342bb8}.app-header-wedding .language-chip-active{color:#3d342b;background:#a8907629}.app-header-wedding.app-header-floating{background:#fffbf6b3;border-color:#a8907633;box-shadow:0 24px 48px #614a2c1f}.app-header-hidden{opacity:0;pointer-events:none;transform:translateY(-18px)scale(.98)}.app-header-visible{opacity:1;transform:translateY(0)scale(1)}.gallery-header,.empty-state{border:1px solid var(--border);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(#ffffff0d,#ffffff05)}.gallery-header h1,.empty-state h1,.empty-state h3,.section-heading{margin:0}.section-heading{justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 18px;display:flex}.section-heading h2{letter-spacing:-.04em;margin:0;font-size:clamp(2rem,4vw,3.6rem);font-weight:500;line-height:1}.section-kicker,.eyebrow{text-transform:uppercase;letter-spacing:.22em;color:#f2a3b0;margin:0 0 14px;font-family:Segoe UI,sans-serif;font-size:.72rem}.section-text,.gallery-description,.empty-state p{color:var(--muted);font-family:Segoe UI,sans-serif;font-size:1rem;line-height:1.7}.homepage-section{margin-top:42px}.intro-panel{height:100vh;box-shadow:none;background:0 0;border:0;position:relative;overflow:hidden}.intro-panel-fullbleed{border-left:0;border-right:0;border-radius:0;width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.intro-image{object-fit:cover;object-position:center top;width:100%;height:100%;margin:0;padding:0;position:absolute;inset:0}.intro-overlay{z-index:1;background:linear-gradient(#00000014 0%,#0000002e 45%,#0000006b 100%);flex-direction:column;justify-content:center;align-items:center;padding:48px;display:flex;position:absolute;inset:0}.intro-logo{filter:drop-shadow(0 12px 28px #00000073);width:min(260px,32vw);margin-bottom:22px}.intro-copy{text-align:center}.intro-name,.intro-role,.intro-credit{color:#f7f4ef;margin:0}.intro-name{text-shadow:0 10px 25px #00000059;font-size:clamp(2.2rem,5vw,4.8rem);font-weight:600;line-height:.95}.intro-role{letter-spacing:.32em;text-transform:uppercase;text-shadow:0 8px 20px #00000059;margin-top:10px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:clamp(1rem,2vw,1.25rem)}.intro-credit{color:#f7f4efeb;text-shadow:0 8px 18px #0006;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.94rem;position:absolute;bottom:24px;right:28px}.portfolio-grid-wrap{margin-top:120px;line-height:0}.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.portfolio-card{aspect-ratio:3/4;position:relative;overflow:hidden}.portfolio-image{object-fit:cover;width:100%;height:100%;transition:transform .32s}.portfolio-card:hover .portfolio-image{transform:scale(1.03)}.album-grid,.gallery-grid{gap:18px;display:grid}.album-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.album-grid-home{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.album-card,.media-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--card);transition:transform .22s,border-color .22s,box-shadow .22s;position:relative;overflow:hidden}.album-card:hover,.media-card:hover{border-color:#d61f3d66;transform:translateY(-4px);box-shadow:0 20px 40px #0006}.album-cover-wrap{aspect-ratio:4/5;overflow:hidden}.album-cover-wrap-home{aspect-ratio:4/5}.album-cover,.album-cover-fallback{object-fit:cover;width:100%;height:100%}.album-cover-fallback{background:linear-gradient(135deg,#d61f3d40,#ffffff0a)}.album-cover,.media-image{transition:transform .5s,filter .3s}.album-card:hover .album-cover,.media-card:hover .media-image{filter:saturate(1.06);transform:scale(1.03)}.album-home-overlay{background:linear-gradient(#0000 0%,#03050a33 32%,#03050ae6 100%);flex-direction:column;justify-content:flex-end;gap:8px;min-height:40%;padding:18px;display:flex;position:absolute;inset:auto 0 0}.album-home-overlay h3{margin:0;font-size:1.3rem;font-weight:500}.album-date{color:#f4d6db;letter-spacing:.18em;text-transform:uppercase;margin:0;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.82rem}.album-info,.media-overlay,.lightbox-caption{justify-content:space-between;align-items:center;gap:12px;display:flex}.album-info{padding:16px}.album-info-stack{display:block}.album-info h3,.media-overlay p{margin:0;font-size:1.2rem;font-weight:500}.album-info p,.album-link,.media-overlay span,.back-link{color:var(--muted);font-family:Segoe UI,sans-serif;font-size:.95rem}.gallery-header{border-radius:var(--radius-xl);justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:22px;padding:22px;display:flex}.back-link{margin-bottom:16px;display:block}.back-link-icon,.button-with-icon{align-items:center;gap:10px;display:flex}.action-icon{flex:none;width:16px;height:16px}.button,.button-secondary,.button-ghost,.chip{cursor:pointer;letter-spacing:.01em;border:1px solid #0000;border-radius:999px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;transition:transform .18s,background .18s,border-color .18s}.button,.button-secondary,.button-ghost{padding:12px 18px}.button{background:linear-gradient(135deg, var(--accent), #8a1327);color:#fff}.button:disabled{opacity:.4;cursor:not-allowed}.button-secondary,.button-ghost,.chip{color:var(--text);background:#ffffff0a;border-color:#ffffff1a}.button:hover,.button-secondary:hover,.button-ghost:hover,.chip:hover,.header-link:hover{transform:translateY(-1px)}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.media-preview{cursor:pointer;background:0 0;border:0;width:100%;height:100%;margin:0;padding:0;display:block}.media-card{background:#090909;height:280px;min-height:0}.media-image{object-fit:cover;width:100%;height:100%}.grid-download{color:#fff;z-index:2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#080808c7;border:1px solid #ffffff1f;border-radius:999px;justify-content:center;align-items:center;width:38px;height:38px;display:flex;position:absolute;top:12px;right:12px}.grid-download:hover{background:#d61f3de0}.media-overlay{background:linear-gradient(#0000 0%,#040404eb 70%);padding:16px;position:absolute;inset:auto 0 0}.media-overlay-actions{gap:8px;display:flex}.chip{padding:9px 12px}.chip-active{background:var(--accent-soft);border-color:#d61f3d80}.empty-state,.not-found-shell{min-height:50vh}.empty-state{border-radius:var(--radius-xl);padding:34px}.site-footer{flex-direction:column;align-items:center;gap:18px;margin-top:54px;padding-bottom:16px;display:flex}.site-footer-inline{gap:14px}.footer-instagram{color:#f7f4ef;letter-spacing:.12em;text-transform:uppercase;align-items:center;gap:12px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;display:flex}.footer-line{color:#ddd6cf;flex-wrap:wrap;justify-content:center;gap:18px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;display:flex}.footer-inline-item{align-items:center;gap:8px;display:flex}.footer-badges,.footer-badge{display:none}.footer-icon{flex:none;width:16px;height:16px}.lightbox-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:50;background:#000000e6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.lightbox-frame{width:min(100%,1100px)}.lightbox-image{object-fit:contain;cursor:zoom-in;transform-origin:50%;touch-action:manipulation;border-radius:0;width:100%;max-height:calc(100vh - 150px);transition:transform .22s}.lightbox-image-zoomed{cursor:grab}.lightbox-image-zoomed:active{cursor:grabbing}.lightbox-caption{margin-top:14px}.lightbox-close,.lightbox-nav{color:#fff;cursor:pointer;background:#121212cc;border:1px solid #ffffff1f;border-radius:999px;padding:10px 14px;position:fixed}.lightbox-close{top:18px;right:18px}.lightbox-nav{top:50%;transform:translateY(-50%)}.lightbox-nav-left{left:18px}.lightbox-nav-right{right:18px}.tag-popup-backdrop{z-index:45;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000006b;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.tag-popup{width:min(100%,560px);box-shadow:none;background:0 0;border:0;border-radius:50px;padding:0;position:relative}.tag-popup-close{width:38px;height:38px;color:var(--text);cursor:pointer;background:#2f0642a6;border:0;border-radius:999px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;position:absolute;top:10px;right:10px}.tag-popup-image{border-radius:25px;width:100%;height:auto}.tag-popup-actions{position:absolute;bottom:20px;right:20px}.instagram-icon{width:22px;height:22px}@media (max-width:1100px){.portfolio-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.album-grid-home{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.section-heading,.gallery-header,.lightbox-caption{flex-direction:column;align-items:start}.gallery-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.page-shell,.homepage-shell{width:min(calc(100% - 20px), var(--max-width));padding-top:14px}.homepage-body{padding-top:28px}.app-header-floating-shell{top:12px}.app-header{grid-template-columns:1fr;justify-items:center;gap:12px}.app-header-side{justify-content:center;width:100%}.app-header-nav{order:2}.app-header-tools{order:3}.app-header-floating{border-radius:28px;width:min(100% - 20px,1480px)}.intro-panel,.intro-image{height:72vh;min-height:72vh;margin:0;padding:0}.intro-image{object-fit:cover;margin:0;padding:0}.intro-overlay{padding:28px 20px}.intro-logo{width:min(220px,56vw)}.intro-credit{font-size:.78rem;bottom:18px;right:18px}.portfolio-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-grid{gap:12px}.album-grid-home{grid-template-columns:1fr}.media-card{height:220px}.media-overlay{padding:12px}.media-overlay-actions{flex-direction:column}.footer-line{gap:12px;font-size:.92rem}.lightbox-nav{display:none}.wedding-back-link{top:-210px;left:20px}}.homepage-section-heading{margin-bottom:20px}.homepage-section-title{letter-spacing:.22em;text-transform:uppercase;margin:0;font-size:clamp(1.3rem,2.6vw,2rem);font-weight:600}.homepage-section-widegap{margin-top:72px}.portfolio-card-button{cursor:pointer;background:0 0;border:0;width:100%;padding:0;display:block}.gallery-page-shell{padding-top:28px;padding-bottom:88px}.gallery-page-top{margin-bottom:28px}.gallery-page-heading{justify-content:space-between;align-items:center;gap:16px;width:100%;display:flex}.gallery-page-title{letter-spacing:.08em}.gallery-page-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.album-grid-collection{margin-top:12px}.gallery-page-top-compact{padding-bottom:8px}@media (max-width:900px){.gallery-page-heading{flex-direction:column;align-items:flex-start}}.gallery-page-top-compact{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:26px;display:flex}.gallery-page-actions-compact{justify-content:space-between;gap:16px;width:100%}.gallery-page-meta{color:var(--muted);font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.96rem}.button-small{padding:10px 16px}.wedding-page{color:#f1f1f1;background:radial-gradient(circle at top,#f3e0cd8c,#0000 32%),linear-gradient(#fffdf8 0%,#fbf5ee 52%,#f4ecdf 100%);min-height:10vh;padding:0}.wedding-page .app-logo{filter:none}.wedding-hero,.wedding-album-hero{width:100%;position:relative;overflow:hidden}.wedding-hero{min-height:80vh;padding:34px 0 120px}.wedding-hero:before{content:"";z-index:0;background:radial-gradient(circle at 20% 20%,#fffc,#0000 28%),radial-gradient(circle at 80% 15%,#e2c6a947,#0000 24%),linear-gradient(#fff9f2a8 0%,#f8eee1e0 100%);position:absolute;inset:0}.wedding-hero-copy,.wedding-album-hero-copy,.wedding-listing,.wedding-gallery-content{z-index:1;width:min(100% - 88px,1500px);margin:0 auto;position:relative}.wedding-hero-copy{text-align:center;padding-top:clamp(120px,20vh,190px)}.wedding-kicker{letter-spacing:.28em;text-transform:uppercase;color:#5e4830bd;margin:0 0 18px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.82rem}.wedding-display{color:#503d30;margin:0;font-family:Great Vibes,cursive;font-size:clamp(4.5rem,12vw,8.6rem);font-weight:400;line-height:.95}.wedding-lead{color:#423427c7;width:min(680px,100%);margin:22px auto 0;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:clamp(1rem,2vw,1.18rem);line-height:1.9}.wedding-listing{padding:10px 0 132px}.wedding-album-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;display:grid}.wedding-album-card{background:#ffffff94;border:1px solid #ab8e6d29;flex-direction:column;grid-column:span 4;justify-content:flex-end;min-height:450px;transition:transform .28s,box-shadow .28s;display:flex;position:relative;overflow:hidden;box-shadow:0 30px 60px #4a39251c}.wedding-album-card-2{grid-column:span 5}.wedding-album-card-3{grid-column:span 3}.wedding-album-card:hover{transform:translateY(-8px);box-shadow:0 36px 72px #4a392529}.wedding-album-media,.wedding-album-placeholder{position:absolute;inset:0}.wedding-album-image,.wedding-gallery-image,.wedding-album-hero-image{object-fit:cover;width:100%;height:100%}.wedding-album-overlay{background:linear-gradient(#160e080a 0%,#160e0833 38%,#160e08c7 100%);position:absolute;inset:0}.wedding-album-placeholder{background:linear-gradient(135deg,#f5e8d9e3,#dfcdbacc)}.wedding-album-copy{z-index:1;color:#fffaf4;padding:28px;position:relative}.wedding-album-copy h2{margin:0;font-family:Great Vibes,cursive;font-size:clamp(2.4rem,4vw,3.4rem);font-weight:400}.wedding-album-meta,.wedding-gallery-count,.wedding-back-link,.wedding-download-all{font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif}.wedding-album-meta{letter-spacing:.16em;text-transform:uppercase;color:#fff8f0e0;justify-content:space-between;gap:12px;margin-top:16px;font-size:.84rem;display:flex}.wedding-empty-state{text-align:center;background:#ffffff94;border:1px solid #ab8e6d2e;max-width:720px;margin:0 auto;padding:72px 36px;box-shadow:0 24px 56px #4a392514}.wedding-empty-state h2{color:#533f31;margin:0;font-family:Great Vibes,cursive;font-size:clamp(2.8rem,7vw,4.8rem);font-weight:400}.wedding-empty-state p{color:#ffffffc7;margin:18px 0 0;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;line-height:1.8}.wedding-gallery-page{background:linear-gradient(#e4d6c7 0%,#c7bcaf 24.1%,#b9b0a1 100%);padding-bottom:120px}.wedding-album-hero{background:#13100d;min-height:78vh}.wedding-album-hero-image,.wedding-album-hero-overlay{position:absolute;inset:0}.wedding-album-hero-overlay{background:linear-gradient(#00000029 0%,#00000047 42%,#000000b8 100%)}.wedding-album-hero-copy{color:#fff7f0;flex-direction:column;justify-content:flex-end;min-height:80vh;padding-bottom:72px;display:flex}.wedding-back-link{letter-spacing:.18em;text-transform:uppercase;color:#f1efecdb;align-items:center;gap:8px;margin-bottom:0;padding:5px 0 4px;font-size:.88rem;transition:transform .22s,color .22s;display:inline-flex;position:absolute;top:-30px;left:4px}.wedding-back-link:hover{color:#fff;transform:translate(-4px)}.wedding-album-title{color:#fff;text-shadow:0 24px 48px #e2e2e242;max-width:760px}.wedding-gallery-content{padding-top:42px;padding-bottom:24px}.wedding-gallery-controls{border-bottom:1px solid #8f71521f;justify-content:space-between;align-items:center;gap:18px;margin-bottom:34px;padding-bottom:18px;display:flex}.wedding-gallery-count{letter-spacing:.18em;text-transform:uppercase;color:#1b1919e6;margin:0;font-size:.88rem}.wedding-gallery-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.wedding-copy-link,.wedding-download-all{letter-spacing:.16em;text-transform:uppercase;cursor:pointer;border:1px solid #8f71522e;justify-content:center;align-items:center;padding:14px 22px;font-family:Segoe UI,Noto Sans,Helvetica Neue,Arial,sans-serif;font-size:.86rem;transition:transform .22s,box-shadow .22s,background .22s,color .22s;display:inline-flex}.wedding-copy-link{color:#241f1f;background:#bdbbbb80;border-color:#5a5a5a29;box-shadow:0 14px 28px #65472a14}.wedding-copy-link:hover{background:#312e2e33;transform:translateY(-2px);box-shadow:0 18px 34px #65472a1f}.wedding-download-all{color:#37291f;background:linear-gradient(135deg,#e7d4bf 0%,#e0c7a7 100%);box-shadow:0 18px 38px #7a5b3f3d}.wedding-download-all:hover{transform:translateY(-2px);box-shadow:0 22px 46px #2b1e1248}.wedding-download-all:disabled{opacity:.72;cursor:wait}.wedding-gallery-grid{grid-template-columns:repeat(var(--wedding-columns,4), minmax(0, 1fr));align-items:start;gap:20px;display:grid}.wedding-gallery-column{flex-direction:column;gap:20px;display:flex}.wedding-gallery-card{margin:0}.wedding-gallery-button{cursor:pointer;background:0 0;border:0;width:100%;padding:0;transition:transform .28s,box-shadow .28s;position:relative;overflow:hidden;box-shadow:0 18px 36px #4a342214}.wedding-gallery-button:after{content:"";opacity:0;pointer-events:none;background:linear-gradient(#fff0 48%,#19110b14 100%);transition:opacity .26s;position:absolute;inset:0}.wedding-gallery-button:hover{transform:translateY(-6px);box-shadow:0 28px 56px #3f2b1924}.wedding-gallery-button:hover:after{opacity:1}.wedding-gallery-image{object-fit:cover;object-position:center center;border-radius:0;width:100%;height:auto;transition:transform .56s,filter .28s,opacity .26s;display:block}.wedding-gallery-button:hover .wedding-gallery-image{filter:brightness(1.04);transform:scale(1.04)}@media (max-width:1100px){.wedding-album-card,.wedding-album-card-2,.wedding-album-card-3{grid-column:span 6}.wedding-gallery-grid,.wedding-gallery-column{gap:16px}}@media (max-width:760px){.wedding-hero,.wedding-album-hero{min-height:auto}.wedding-hero-copy,.wedding-listing,.wedding-gallery-content,.wedding-album-hero-copy{width:min(100% - 24px,1320px)}.wedding-hero{padding-bottom:84px}.wedding-hero-copy{padding-top:112px}.wedding-album-grid{grid-template-columns:1fr;gap:18px}.wedding-album-card,.wedding-album-card-2,.wedding-album-card-3{grid-column:auto;min-height:360px}.wedding-gallery-controls{flex-direction:column;align-items:flex-start;gap:14px}.wedding-gallery-grid,.wedding-gallery-column{gap:12px}.wedding-back-link{top:-20px;left:20px}}@media (max-width:520px){.wedding-gallery-grid,.wedding-gallery-column{gap:10px}.wedding-back-link{top:-90px;left:20px}}
