
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Montserrat",sans-serif;background:#f5eee7;color:#51453d;overflow-x:hidden;}
body.locked{overflow:hidden;}
:root{--cream:#f5eee7;--cream-dark:#eee3d9;--paper:#fbf8f4;--clay:#a98268;--clay-dark:#8f6c57;--clay-light:#c9aa91;--text:#51453d;--muted:#8a7b70;--gold:#b79a78;}
h1,h2,h3,.card-names,.footer-monogram{font-family:"Cormorant Garamond",serif;}
.hero h1 span{font-style:italic;}
p{line-height:1.7;}

.welcome-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden;background:#eee5dd;opacity:1;transition:opacity 2.4s ease,visibility 2.4s ease;}
.welcome-background{position:absolute;inset:-40px;background-image:url("./images/hero.png");background-position:center;background-size:cover;filter:blur(28px) brightness(1.08) saturate(0.72);opacity:0.62;transform:scale(1.08);}
.welcome-mist{position:absolute;inset:0;background:radial-gradient(circle at center,rgba(255,255,255,0.40) 0%,rgba(255,255,255,0.43) 32%,rgba(255,255,255,0.50) 65%,rgba(255,255,255,0.60) 100%);}
.welcome-glow{position:absolute;width:700px;height:700px;border-radius:50%;background:rgba(255,255,255,0.22);filter:blur(80px);pointer-events:none;}
.invitation-wrapper{position:relative;z-index:10;width:min(620px,90vw);display:flex;flex-direction:column;align-items:center;transform:translateY(55px);animation:invitationAppear 1.2s ease forwards;}
.envelope{position:relative;width:min(520px,86vw);aspect-ratio:1.55 / 1;perspective:1200px;overflow:visible;border-radius:5px;filter:drop-shadow(0 30px 35px rgba(63,44,30,0.20)) drop-shadow(0 8px 10px rgba(63,44,30,0.12));}
.envelope-back{position:absolute;inset:0;z-index:1;background:repeating-linear-gradient(0deg,rgba(255,255,255,0.025) 0,rgba(255,255,255,0.025) 1px,transparent 1px,transparent 4px),linear-gradient(135deg,#d9d4ce,#d2cbc4 40%,#c8c0b8 72%,#bfb6ad);border-radius:5px;box-shadow:inset 0 0 0 1px rgba(255,255,255,0.30);}
.invitation-card{position:absolute;left:9%;top:9%;width:82%;height:84%;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:13%;text-align:center;background:repeating-linear-gradient(0deg,rgba(160,130,100,0.025) 0,rgba(160,130,100,0.025) 1px,transparent 1px,transparent 4px),linear-gradient(135deg,#fffdfa,#f8f2eb);border:1px solid rgba(157,128,102,0.20);box-shadow:0 10px 25px rgba(60,45,35,0.13);transform:translateY(0);transition:transform 3.2s cubic-bezier(.22,.61,.36,1),box-shadow 1.2s ease;}
.card-small{font-size:12px;letter-spacing:0.25em;color:#8f7969;font-weight:500;white-space:nowrap;}
.card-couple-icon{width:220px;height:135px;margin-top:10px;display:flex;align-items:center;justify-content:center;}
.card-couple-icon img{display:block;width:100%;height:100%;object-fit:contain;}
.envelope.card-releasing .invitation-card{transform:translateY(-24%);}
.envelope-front{position:absolute;inset:0;z-index:8;background:repeating-linear-gradient(0deg,rgba(255,255,255,0.025) 0,rgba(255,255,255,0.025) 1px,transparent 1px,transparent 4px),linear-gradient(135deg,#d5d0ca,#cec7c0 42%,#c5bdb5 72%,#bdb4ab);clip-path:polygon(0 0,50% 55%,100% 0,100% 100%,0 100%);}
.envelope-flap{position:absolute;left:0;top:0;width:100%;height:56%;z-index:10;background:repeating-linear-gradient(0deg,rgba(255,255,255,0.025) 0,rgba(255,255,255,0.025) 1px,transparent 1px,transparent 4px),linear-gradient(135deg,#dad5cf,#d0c9c2 45%,#c1b9b1);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top center;transform:rotateX(0deg);transform-style:preserve-3d;transition:transform 1.25s cubic-bezier(.22,.75,.16,1);backface-visibility:hidden;pointer-events:none;}
.envelope.opening .envelope-flap{transform:rotateX(-175deg);}
.wax-seal{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);z-index:20;width:74px;height:74px;border-radius:47% 53% 50% 48% / 51% 47% 53% 49%;border:0;cursor:pointer;background:radial-gradient(circle at 35% 30%,#ffffff 0%,#f8f7f5 30%,#e6e2dd 68%,#c9c2ba 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,0.9),inset 0 -4px 8px rgba(110,100,90,0.13),0 5px 13px rgba(65,50,38,0.18);color:#8e796a;transition:transform 0.6s ease,opacity 0.6s ease;}
.wax-seal::before{content:"";position:absolute;inset:8px;border:1px solid rgba(142,121,106,0.32);border-radius:50%;}
.wax-seal span{position:relative;font-family:"Cormorant Garamond",serif;font-size:20px;font-weight:600;}
.wax-seal:hover{transform:translate(-50%,-50%) scale(1.06);}
.envelope.opening .wax-seal{transform:translate(-50%,-50%) scale(0.82);opacity:0;pointer-events:none;}
.welcome-caption{margin-top:25px;text-align:center;color:rgba(80,66,56,0.90);letter-spacing:0.28em;font-size:10px;transition:opacity 1s ease,transform 1s ease;}
.welcome-caption span{display:block;margin-top:8px;font-size:9px;letter-spacing:0.32em;color:rgba(110,91,76,0.65);}
.welcome-caption small{display:block;margin-top:18px;font-size:8px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(110,91,76,0.55);}
.envelope.opening ~ .welcome-caption{opacity:0;transform:translateY(10px);}
.welcome-screen.opened{pointer-events:none;opacity:0;visibility:hidden;}

@keyframes invitationAppear{
from{opacity:0;transform:translateY(90px);}
to{opacity:1;transform:translateY(55px);}
}

.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:#ddd1c6;}
.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none;animation:none;}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(18,12,8,0.48) 0%,rgba(18,12,8,0.25) 25%,rgba(18,12,8,0.05) 53%,rgba(18,12,8,0.02) 100%);}
.hero-content{position:relative;z-index:2;width:100%;padding-left:clamp(20px,3.5vw,55px);}
.hero-text{width:min(500px,42vw);text-align:left;}
.hero-text.reveal{opacity:0;transform:translateX(-45px) translateY(35px);filter:blur(14px);transition:opacity 1.3s ease,transform 1.3s cubic-bezier(.22,.61,.36,1),filter 1.3s ease;}
.hero-text.reveal.visible{opacity:1;transform:translateX(0) translateY(0);filter:blur(0);}
.hero-top{font-size:9px;letter-spacing:0.34em;color:rgba(255,255,255,0.82);margin-bottom:18px;}
.hero h1{font-size:clamp(70px,8vw,120px);font-weight:500;line-height:0.85;color:#fffaf6;}
.hero-line{width:70px;height:1px;background:rgba(255,255,255,0.62);margin:27px 0 18px;}
.hero-names{font-family:"Cormorant Garamond",serif;font-size:clamp(25px,3vw,38px);color:#fffaf6;}
.hero-date{margin-top:5px;font-size:10px;letter-spacing:0.35em;color:rgba(255,255,255,0.78);}
.scroll-indicator{position:absolute;left:50%;bottom:30px;transform:translateX(-50%);width:20px;height:32px;z-index:3;}
.scroll-indicator span{position:absolute;left:50%;top:0;width:1px;height:26px;background:rgba(255,255,255,0.75);transform:translateX(-50%);}

.section-inner{width:min(900px,88vw);margin:0 auto;text-align:center;}
.quote-section,.location-section,.info-section{padding:125px 0;}
.countdown-section,.announcement-section{padding:115px 0;}
.reveal-section{overflow:hidden;}
.reveal{position:relative;opacity:0;transform:translateY(70px) scale(0.985);filter:blur(18px);transition:opacity 1.2s ease,transform 1.25s cubic-bezier(.22,.61,.36,1),filter 1.2s ease;}
.reveal::before{content:"";position:absolute;left:-20%;top:-20%;width:140%;height:140%;background:radial-gradient(ellipse at center,rgba(255,255,255,0.75) 0%,rgba(255,255,255,0.48) 38%,rgba(255,255,255,0) 78%);filter:blur(22px);pointer-events:none;opacity:1;transform:scale(1.12);transition:opacity 1.3s ease,transform 1.5s ease;}
.reveal.visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
.reveal.visible::before{opacity:0;transform:scale(1);}
.reveal-item{opacity:0;transform:translateY(30px);filter:blur(7px);transition:opacity 0.9s ease,transform 0.9s cubic-bezier(.22,.61,.36,1),filter 0.9s ease;}
.reveal.visible .reveal-item{opacity:1;transform:translateY(0);filter:blur(0);}
.reveal.visible .reveal-item:nth-child(1){transition-delay:0.08s;}
.reveal.visible .reveal-item:nth-child(2){transition-delay:0.16s;}
.reveal.visible .reveal-item:nth-child(3){transition-delay:0.24s;}
.reveal.visible .reveal-item:nth-child(4){transition-delay:0.32s;}
.reveal.visible .reveal-item:nth-child(5){transition-delay:0.40s;}
.reveal.visible .reveal-item:nth-child(6){transition-delay:0.48s;}
.reveal.visible .reveal-item:nth-child(7){transition-delay:0.56s;}

.quote-section{background:var(--cream);}
.ornament{font-size:22px;color:var(--gold);margin-bottom:20px;}
.ornament.small{margin-bottom:10px;}
.eyebrow{font-size:9px;letter-spacing:0.30em;color:var(--clay);margin-bottom:20px;}
.quote{max-width:700px;margin:0 auto;font-family:"Cormorant Garamond",serif;font-size:clamp(27px,4vw,43px);line-height:1.25;font-style:italic;color:#65574d;}
.quote-line{width:45px;height:1px;background:var(--clay-light);margin:30px auto 0;}

.countdown-section{background:var(--paper);}
h2{font-family:"Cormorant Garamond",serif;font-size:clamp(36px,5vw,56px);font-weight:500;line-height:1.05;color:#62544b;}
.countdown{display:flex;justify-content:center;align-items:center;gap:14px;margin-top:50px;}
.count-item{min-width:65px;}
.count-item strong{display:block;font-family:"Cormorant Garamond",serif;font-size:46px;font-weight:500;color:var(--clay-dark);line-height:1;}
.count-item span{display:block;margin-top:7px;font-size:7px;letter-spacing:0.18em;text-transform:uppercase;color:#948379;}
.count-separator{width:1px;height:42px;flex:0 0 1px;background:rgba(167,146,130,0.42);margin:0 4px;align-self:center;}

.location-section{background:var(--cream-dark);}
.location-address{margin-top:18px;font-size:13px;line-height:1.8;color:#817269;}
.map-wrapper{width:100%;height:400px;margin-top:40px;overflow:hidden;border-radius:4px;box-shadow:0 15px 40px rgba(74,56,44,0.12);}
.map-wrapper iframe{width:100%;height:100%;border:0;}
.map-button{display:inline-block;margin-top:25px;padding:13px 24px;border:1px solid rgba(143,108,87,0.40);color:var(--clay-dark);text-decoration:none;font-size:9px;letter-spacing:0.18em;text-transform:uppercase;transition:background 0.3s ease,color 0.3s ease;}
.map-button:hover{background:var(--clay-dark);color:#fff;}

.dog-section{padding:105px 0;background:var(--cream);}
.dog-medallion{margin-bottom:25px;}
.dog-frame{position:relative;width:160px;height:160px;margin:0 auto;border-radius:50%;padding:5px;background:linear-gradient(135deg,#c9aa91,#a98268,#d7c0aa);box-shadow:0 15px 30px rgba(90,68,53,0.15);}
.dog-frame::after{content:"";position:absolute;inset:4px;border:1px solid rgba(255,255,255,0.72);border-radius:50%;pointer-events:none;z-index:2;}
.dog-image{width:100%;height:100%;display:block;object-fit:cover;object-position:center;border-radius:50%;border:3px solid #f8f3ee;}
.dog-title{font-family:"Cormorant Garamond",serif;font-size:29px;font-weight:500;color:#62544b;margin-bottom:12px;}
.dog-line{width:45px;height:1px;background:var(--clay-light);margin:0 auto 20px;}
.dog-quote{max-width:470px;margin:0 auto;font-family:"Cormorant Garamond",serif;font-size:23px;line-height:1.35;font-style:italic;color:#7b6b60;}

.info-section{background:var(--cream-dark);}
.info-text{max-width:600px;margin:30px auto 0;color:#77695f;font-size:14px;line-height:1.9;}
.info-date{margin-top:30px;font-family:"Cormorant Garamond",serif;font-size:38px;color:var(--clay-dark);letter-spacing:0.08em;}
.info-small{max-width:560px;margin:20px auto 0;font-size:11px;line-height:1.8;color:#948379;}

.announcement-section{background:var(--paper);}
.announcement-text{margin-top:22px;font-size:14px;color:#817269;}
.second-countdown{margin-top:40px;}

.footer{display:block;position:relative;width:100%;padding:65px 20px 55px;text-align:center;background:#e9ddd3;color:#79695d;overflow:hidden;}
.footer .section-inner{width:min(900px,88vw);margin:0 auto;text-align:center;}
.footer-monogram{display:block;font-family:"Cormorant Garamond",serif;font-size:36px;line-height:1;color:var(--clay-dark);margin-bottom:10px;}
.footer span{display:block;margin-top:5px;font-size:9px;letter-spacing:0.30em;}
.footer-ornament{display:block;margin-top:22px;color:var(--gold);font-size:18px;line-height:1;}

.footer-contacts{position:absolute;right:clamp(25px,5vw,75px);top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:18px;text-align:left;}
.footer-contact{display:flex;align-items:center;gap:0px;color:#79695d;text-decoration:none;transition:opacity 0.3s ease,transform 0.3s ease;}
.footer-contact:hover{opacity:0.72;transform:translateX(-3px);}
.contact-name {
    font-family: "Cormorant Garamond", serif;
    font-size: 56px;
    font-weight: 600;
    color: var(--clay-dark);
    white-space: nowrap;
    line-height: 0.85;
    min-width: 150px;
    margin-bottom: -18px;
}
.contact-info{display:flex;flex-direction:column;line-height:1.2;}
.contact-info small{font-size:7px;letter-spacing:0.18em;text-transform:uppercase;color:#a08d80;margin-bottom:4px;}
.contact-info strong{font-family:"Cormorant Garamond",serif;font-size:18px;font-weight:500;letter-spacing:0.04em;color:#79695d;}

@media (max-width:700px){
.footer{padding-bottom:45px;}
.footer-contacts{position:relative;right:auto;top:auto;transform:none;width:100%;align-items:center;margin-top:30px;gap:14px;}
.footer-contact{justify-content:center;}
}

@media (max-width:600px){
.invitation-wrapper{width:92vw;transform:translateY(38px);}
@keyframes invitationAppear{from{opacity:0;transform:translateY(65px);}to{opacity:1;transform:translateY(38px);}}
.envelope{width:88vw;}
.wax-seal{width:62px;height:62px;}
.wax-seal span{font-size:17px;}
.invitation-card{padding-top:12%;}
.card-small{font-size:8px;letter-spacing:0.20em;}
.card-couple-icon{width:160px;height:98px;margin-top:10px;}
.welcome-caption{margin-top:20px;font-size:8px;}
.hero-overlay{background:linear-gradient(90deg,rgba(18,12,8,0.50) 0%,rgba(18,12,8,0.26) 35%,rgba(18,12,8,0.04) 75%);}
.hero-content{padding-left:18px;padding-right:15px;}
.hero-text{width:min(320px,72vw);}
.hero h1{font-size:65px;}
.hero-top{font-size:7px;letter-spacing:0.27em;}
.hero-names{font-size:26px;}
.hero-date{font-size:8px;}
.reveal{transform:translateY(55px) scale(0.985);filter:blur(13px);}
.reveal.visible{transform:translateY(0) scale(1);}
.reveal::before{filter:blur(15px);background:radial-gradient(ellipse at center,rgba(255,255,255,0.72) 0%,rgba(255,255,255,0.48) 38%,rgba(255,255,255,0.00) 78%);}
.quote-section,.location-section,.info-section{padding:90px 0;}
.countdown-section,.announcement-section{padding:80px 0;}
.countdown{gap:7px;margin-top:40px;}
.count-item{min-width:50px;}
.count-item strong{font-size:34px;}
.count-item span{font-size:6px;letter-spacing:0.12em;}
.count-separator{height:34px;margin:0 3px;}
.map-wrapper{height:330px;margin-top:35px;}
.dog-section{padding:75px 0 80px;}
.dog-frame{width:126px;height:126px;}
.dog-title{font-size:26px;}
.dog-quote{font-size:20px;padding:0 15px;}
.info-text,.announcement-text{font-size:13px;padding:0 10px;}
.contact-icon{width:42px;height:50px;}
}

@media (max-width:380px){
.hero h1{font-size:58px;}
.hero-content{padding-left:15px;}
.hero-text{width:75vw;}
.count-item strong{font-size:29px;}
.count-item{min-width:44px;}
.count-separator{height:30px;margin:0 2px;}
.dog-frame{width:116px;height:116px;}
.card-couple-icon{width:145px;height:88px;}
.footer-contact {
    gap: 0 !important;
    row-gap: 0 !important;
}

.contact-name {
    margin-bottom: -12px;
}

/* Strona dostępna wyłącznie na telefonach */
#desktop-blocker {
    display: none;
}

@media screen and (min-width: 601px) {
    body > *:not(#desktop-blocker) {
        display: none !important;
    }

    #desktop-blocker {
        display: flex !important;
        position: fixed;
        inset: 0;
        z-index: 999999;
        background: #f4f0e9;
        color: #6d5947;
        align-items: center;
        justify-content: center;
        text-align: center;
        padding: 32px;
        box-sizing: border-box;
        font-family: Georgia, serif;
    }

    #desktop-blocker .desktop-message {
        max-width: 420px;
    }

    #desktop-blocker h2 {
        font-size: 32px;
        font-weight: normal;
        margin-bottom: 16px;
    }

    #desktop-blocker p {
        font-size: 18px;
        line-height: 1.7;
    }
}

/* Poprawki odstępów w stopce na telefonie */
@media screen and (max-width: 600px) {
    .footer-contact {
        gap: 0 !important;
        row-gap: 0 !important;
    }

    .contact-name {
        line-height: 0.85;
        margin-bottom: -18px;
    }

    .footer-contacts {
        margin-top: 35px !important;
    }
}


}

/* Telefony na samym dole stopki — wersja mobilna */
@media screen and (max-width: 600px) {
    .footer {
        display: flex;
        flex-direction: column;
    }

    .footer-contacts {
        position: relative !important;
        order: 10;
        inset: auto !important;
        width: 100%;
        margin-top: 30px !important;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 18px !important;
    }

    .footer-contact {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 0 !important;
    }

    .contact-name {
        margin-bottom: 0 !important;
        line-height: 1;
    }
}

/* Imiona obok numerów — na dole stopki mobilnej */
@media screen and (max-width: 600px) {
    .footer-contacts {
        position: relative !important;
        order: 10;
        inset: auto !important;
        width: 100%;
        margin-top: 30px !important;
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 18px !important;
    }

    .footer-contact {
        display: flex;
        flex-direction: row !important;
        align-items: center;
        justify-content: center;
        gap: 12px !important;
        width: 100%;
    }

    .contact-name {
        font-size: 56px;
        line-height: 1;
        min-width: 0;
        margin-bottom: 0 !important;
        text-align: right;
    }

    .contact-info {
        text-align: left;
    }
}
