@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@300;400;500;600&display=swap');
:root{--cream:#f8f4ed;--paper:#fffdf8;--ink:#2f2a24;--muted:#857b6d;--gold:#ad8a50;--line:#e8dfd1;--sage:#777b63}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-weight:300}a{color:inherit}.topbar{height:76px;padding:0 6vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,253,248,.96);position:sticky;top:0;z-index:20;border-bottom:1px solid #eee7dc}.brand{text-decoration:none;font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:600;letter-spacing:2px}.brand span{color:var(--gold);font-style:italic}.topbar nav{display:flex;align-items:center;gap:30px}.topbar nav a{text-decoration:none;font-size:11px;letter-spacing:1px;text-transform:uppercase}.topbar nav a:hover{color:var(--gold)}.nav-cta{border:1px solid var(--gold);padding:12px 16px}.hero{min-height:650px;height:min(790px,calc(100vh - 76px));position:relative;display:grid;place-items:center;overflow:hidden;background:#d4c5b0}.hero-image{position:absolute;inset:0;background:linear-gradient(90deg,rgba(33,27,21,.43),rgba(33,27,21,.08),rgba(33,27,21,.38)),url('12.jpg') center 48%/cover}.hero-content{position:relative;text-align:center;color:#fffaf0;padding:35px 20px;text-shadow:0 2px 20px #32251d55}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:600;color:var(--gold);text-transform:uppercase}.hero .eyebrow{color:#f3dfb9}.script{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:27px;margin:20px 0 0}
.hero h1{font-family:'Cormorant Garamond',serif;font-size:clamp(60px,10vw,120px);line-height:.94;font-weight:400;letter-spacing:-2px;margin:14px 0}.hero h1 i{color:#e9d3a8;font-weight:400}.ornament{color:var(--gold);letter-spacing:4px;margin:24px 0}.hero .ornament{color:#e9d3a8}.date{font-size:11px;letter-spacing:3px;margin:26px 0 32px}.gold-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;background:var(--gold);border:1px solid var(--gold);color:white;text-decoration:none;text-transform:uppercase;letter-spacing:1.5px;font:500 10px 'DM Sans',sans-serif;padding:17px 24px;cursor:pointer;transition:.2s}.gold-button:hover{background:#8e6d3b;border-color:#8e6d3b}.gold-button:disabled{opacity:.6;cursor:wait}.hero-bottom{position:absolute;bottom:24px;text-align:center;width:100%;color:#fff7e9;font-family:'Cormorant Garamond',serif;font-size:18px;font-style:italic}.section{text-align:center;padding:100px 6vw}.section h2,.closing h2,.admin-shell h1{font:500 clamp(38px,5vw,57px)/1.05 'Cormorant Garamond',serif;margin:14px 0 20px}.intro-copy,.section-copy{max-width:560px;margin:0 auto;color:var(--muted);font-size:14px;line-height:1.9}.countdown{display:flex;justify-content:center;gap:0;margin:46px auto 0;max-width:560px}.countdown div{min-width:105px;padding:0 24px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:7px}.countdown div:last-child{border:0}.countdown strong{font:500 38px 'Cormorant Garamond',serif;color:var(--gold)}.countdown span{font-size:9px;letter-spacing:1.7px;color:var(--muted)}.soft{background:var(--cream)}.video-wrap{max-width:950px;margin:42px auto 0;background:#171512;padding:8px;box-shadow:0 20px 60px #55442b16}.video-wrap video{width:100%;max-height:600px;display:block;background:#171512}.video-placeholder{max-width:950px;min-height:250px;margin:42px auto 0;background:linear-gradient(135deg,#e8dece,#d1c0a7);display:flex;flex-direction:column;align-items:center;justify-content:center;color:#655746}.video-placeholder .play{border:1px solid #a58b62;border-radius:50%;width:52px;height:52px;display:grid;place-items:center;padding-left:3px}.video-placeholder p{font:italic 26px 'Cormorant Garamond',serif;margin:14px 0 5px}.video-placeholder small{font-size:11px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;max-width:1100px;margin:40px auto 0}.photo-tile{position:relative;display:block;overflow:hidden;background:#eee4d5;min-height:130px;aspect-ratio:4/5}.photo-tile img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .5s}.photo-tile:hover img{transform:scale(1.04)}.upload-card{max-width:650px;margin:42px auto 0;padding:38px;background:#fff;border:1px solid var(--line);box-shadow:0 16px 50px #57462b0a}.camera-icon{font:40px 'Cormorant Garamond',serif;color:var(--gold)}.upload-card h3,.gallery-heading h3,.admin-panel h2{font:500 30px 'Cormorant Garamond',serif;margin:8px 0}.upload-card>p{color:var(--muted);font-size:13px;line-height:1.7}.upload-card form{margin-top:24px}.file-label{display:block;border:1px dashed #cdbb9e;padding:18px;cursor:pointer;color:var(--gold);font-size:12px;letter-spacing:1px;text-transform:uppercase}.upload-card input[type=file]{position:absolute;left:-9999px}.file-names{font-size:11px;color:var(--muted);margin:10px 0 22px;overflow-wrap:anywhere}.name-label,.admin-form label{display:block;text-align:left;font-size:11px;color:var(--muted);margin:12px 0 8px}.name-label span{opacity:.7}.text-input{width:100%;border:1px solid var(--line);padding:14px;background:#fffdf9;font:13px 'DM Sans',sans-serif;color:var(--ink);margin-bottom:12px}.upload-card .gold-button{width:100%;margin-top:8px}.form-note{font-size:10px!important;color:#8d8579!important;line-height:1.6}.upload-result{font-size:12px;margin-top:12px;line-height:1.6}.success{color:#2f6a43}.error{color:#a43d31}.gallery-heading{max-width:1100px;margin:62px auto 0;display:flex;align-items:center;justify-content:space-between;text-align:left;border-bottom:1px solid var(--line);padding-bottom:12px}.gallery-heading h3{font-size:26px}.gallery-heading span{font-size:11px;color:var(--muted)}.guest-grid{margin-top:22px}.guest-grid .photo-tile{aspect-ratio:1/1}.photo-credit{position:absolute;left:0;right:0;bottom:0;padding:30px 12px 12px;background:linear-gradient(transparent,#0009);color:#fff;font-size:11px;text-align:left}.empty-gallery{margin:28px auto 0;padding:44px 20px;background:var(--cream);max-width:1100px;color:var(--muted)}.empty-gallery span{font:45px 'Cormorant Garamond',serif;color:var(--gold)}.empty-gallery p{font:italic 24px 'Cormorant Garamond',serif;margin:8px}.empty-gallery small{font-size:11px}.closing{padding:85px 20px;text-align:center;background:#eee5d7}.closing .script{color:var(--gold)}.closing h2{margin:12px 0}.closing p:not(.script){color:var(--muted);font-size:12px}footer{text-align:center;padding:24px;background:#302b25;color:#d9c9ae;font-size:9px;letter-spacing:2px}footer span{color:#c49a5c}.admin-body{background:var(--cream);min-height:100vh;padding:30px 15px}.admin-shell{max-width:700px;margin:20px auto;background:var(--paper);padding:clamp(24px,5vw,50px);border:1px solid var(--line)}.admin-shell h1{font-size:48px}.admin-shell>p{color:var(--muted);font-size:13px;line-height:1.7}.admin-form{display:flex;flex-direction:column;gap:8px;margin:24px 0}.admin-form input[type=file]{padding:12px;border:1px solid var(--line);background:white}.admin-form .gold-button{align-self:flex-start}.admin-panel{border-top:1px solid var(--line);padding:24px 0}.admin-panel p{font-size:12px;color:var(--muted);line-height:1.7}.admin-panel code,.alert code{overflow-wrap:anywhere}.admin-bar{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);padding:12px;background:var(--cream)}.admin-bar a,.admin-foot a{color:var(--gold)}.alert{padding:14px;margin:18px 0;font-size:12px;line-height:1.7;background:#f3eee5}.alert.error{background:#f8e9e6}.alert.success{background:#eaf3e9}.admin-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:15px}.admin-grid a{aspect-ratio:1}.admin-grid img{width:100%;height:100%;object-fit:cover}.admin-foot{margin-top:30px;border-top:1px solid var(--line);padding-top:20px}.admin-foot a{text-decoration:none;font-size:12px}
@media(max-width:700px){.topbar{height:auto;min-height:68px;padding:12px 5vw;align-items:flex-start}.topbar nav{gap:12px;flex-wrap:wrap;justify-content:flex-end;max-width:75%}.topbar nav a{font-size:9px;letter-spacing:.4px}.topbar nav a:not(.nav-cta){display:none}.nav-cta{padding:10px}.hero{height:650px;min-height:580px}.hero-image{background-position:55% center}.hero h1{font-size:clamp(56px,14vw,85px)}.section{padding:72px 5vw}.countdown div{min-width:0;flex:1;padding:0 8px}.countdown strong{font-size:30px}.countdown span{font-size:8px;letter-spacing:1px}.photo-grid{gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.photo-tile{aspect-ratio:3/4}.upload-card{padding:28px 18px}.gallery-heading h3{font-size:23px}.closing{padding:65px 15px}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.brand {
    display: flex;
    align-items: center;
}

.brand-logo {
    height: 55px;
    width: auto;
    max-width: 180px;
    object-fit: contain;
    display: block;
}

/* Pre-shoot: preserve portrait and landscape ratios */
.preshoot-grid {
    align-items: start;
    grid-auto-flow: row;
}

.preshoot-grid .photo-tile {
    display: block;
    position: relative;
    width: 100%;
    min-height: 0;
    height: auto;
    aspect-ratio: auto;
    overflow: hidden;
    cursor: pointer;
    background: #eee4d5;
}

.preshoot-grid .photo-tile img {
    display: block;
    position: static;
    inset: auto;
    width: 100%;
    height: auto;
    object-fit: contain;
    transition: transform .35s ease;
}

.preshoot-grid .photo-tile:hover img {
    transform: scale(1.025);
}

/* Photo lightbox */
.photo-lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(18, 16, 14, .96);
    align-items: center;
    justify-content: center;
    padding: 65px 70px;
}

.photo-lightbox.open {
    display: flex;
}

.lightbox-image {
    display: block;
    max-width: 100%;
    max-height: calc(100vh - 130px);
    width: auto;
    height: auto;
    object-fit: contain;
    user-select: none;
}

.lightbox-close,
.lightbox-prev,
.lightbox-next {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.35);
    background: rgba(255,255,255,.10);
    color: white;
    cursor: pointer;
    transition: background .2s;
}

.lightbox-close:hover,
.lightbox-prev:hover,
.lightbox-next:hover {
    background: rgba(255,255,255,.25);
}

.lightbox-close {
    top: 18px;
    right: 22px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    font-size: 28px;
}

.lightbox-prev,
.lightbox-next {
    top: 50%;
    transform: translateY(-50%);
    width: 46px;
    height: 60px;
    border-radius: 4px;
    font-size: 32px;
}

.lightbox-prev {
    left: 15px;
}

.lightbox-next {
    right: 15px;
}

.lightbox-counter {
    position: absolute;
    bottom: 20px;
    left: 0;
    right: 0;
    color: white;
    font: 12px 'DM Sans', sans-serif;
    letter-spacing: 2px;
    text-align: center;
}

body.lightbox-open {
    overflow: hidden;
}

@media (max-width: 700px) {
    .preshoot-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .photo-lightbox {
        padding: 65px 12px;
    }

    .lightbox-image {
        max-width: 100%;
        max-height: calc(100vh - 140px);
    }

    .lightbox-prev,
    .lightbox-next {
        width: 38px;
        height: 48px;
        font-size: 26px;
        background: rgba(0,0,0,.45);
    }

    .lightbox-prev {
        left: 5px;
    }

    .lightbox-next {
        right: 5px;
    }

    .lightbox-close {
        top: 12px;
        right: 12px;
    }
}