@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Montserrat:wght@400;500;600&display=swap');
:root{--ink:#17281f;--gold:#b8944d;--cream:#f8f3e9;--paper:#fffdf8}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:Montserrat,sans-serif}button,a{font:inherit}
.castle-cover{position:fixed;z-index:50;inset:0;overflow:hidden;background:#101b14;perspective:1800px;transition:opacity .8s ease 1.7s,visibility .8s ease 1.7s}.castle-glow{position:absolute;z-index:1;inset:0;background:radial-gradient(circle at 50% 52%,#f8d98b3b 0,transparent 25%),linear-gradient(180deg,#07120a26,#07120a80);pointer-events:none}.door-panel{position:absolute;z-index:2;top:0;width:50%;height:100%;overflow:hidden;backface-visibility:hidden;transition:transform 1.65s cubic-bezier(.62,.05,.25,1)}.door-panel img{position:absolute;top:0;width:200%;height:100%;object-fit:cover;max-width:none}.door-left{left:0;transform-origin:left center}.door-left img{left:0}.door-right{right:0;transform-origin:right center}.door-right img{right:0}.castle-intro{position:absolute;z-index:4;top:14%;left:50%;transform:translateX(-50%);width:min(92%,760px);text-align:center;color:#fff;text-shadow:0 3px 22px #000}.castle-intro p{margin:0 0 8px;text-transform:uppercase;letter-spacing:.38em;font-size:10px}.castle-intro h2{margin:0;font:500 clamp(50px,8vw,100px)/1 'Cormorant Garamond',serif}.castle-intro em{color:#e8c56e;font-weight:400}.heart-lock{position:absolute;z-index:5;left:50%;top:54%;transform:translate(-50%,-50%);width:116px;height:116px;border:0;background:transparent;cursor:pointer;filter:drop-shadow(0 10px 20px #000a);transition:transform .35s,filter .35s}.heart-lock:hover{transform:translate(-50%,-50%) scale(1.08);filter:drop-shadow(0 10px 30px #e4bd5b99)}.lock-shackle{position:absolute;left:36px;top:0;width:44px;height:52px;border:9px solid #e5c064;border-bottom:0;border-radius:25px 25px 0 0;background:transparent}.lock-heart{position:absolute;left:0;top:33px;display:grid;place-items:center;width:116px;height:92px;color:#fff2c0;font-size:58px;line-height:1;background:radial-gradient(circle at 34% 24%,#ffe6a1,#c38b29 63%,#845919);clip-path:path('M58 88 C50 78 8 52 8 27 C8 4 38 -4 58 20 C78 -4 108 4 108 27 C108 52 66 78 58 88 Z');text-shadow:0 2px 5px #744a11;box-shadow:inset 0 0 20px #fff5}.open-label{position:absolute;z-index:5;left:50%;top:calc(54% + 78px);transform:translateX(-50%);width:max-content;margin:0;color:#fff;text-shadow:0 2px 8px #000;font-size:10px;letter-spacing:.28em;text-transform:uppercase;transition:opacity .35s}.castle-cover.opened .door-left{transform:rotateY(-104deg)}.castle-cover.opened .door-right{transform:rotateY(104deg)}.castle-cover.opened .heart-lock{transform:translate(-50%,-50%) scale(0) rotate(20deg);opacity:0}.castle-cover.opened .castle-intro,.castle-cover.opened .open-label{opacity:0}.castle-cover.opened{opacity:0;visibility:hidden}
.music-toggle{position:fixed;z-index:40;right:20px;bottom:20px;display:flex;align-items:center;gap:9px;border:1px solid #d2b568;background:#fffdf0e8;color:#17281f;padding:12px 16px;box-shadow:0 8px 25px #0002;backdrop-filter:blur(8px);cursor:pointer;text-transform:uppercase;letter-spacing:.12em;font-size:9px;transition:background .25s,color .25s,transform .25s}.music-toggle:hover{transform:translateY(-2px)}.music-toggle span{font-size:18px;color:#a77b29}.music-toggle.playing{background:#17281fee;color:#fff}.music-toggle.playing span{color:#e8c56e}.invitation{opacity:0;transition:opacity 1s ease}.invitation.revealed{opacity:1}.hero{min-height:100svh;position:relative;display:grid;place-items:center;overflow:hidden;color:white}.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 42%;transform:scale(1.02)}.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,#10261d38,#0c1a14a8)}.hero-copy{z-index:1;text-align:center;padding:24px;text-shadow:0 2px 20px #0008}.eyebrow{text-transform:uppercase;letter-spacing:.34em;font-size:11px;font-weight:600}.hero h1{margin:18px 0 10px;display:flex;align-items:center;gap:22px;font:500 clamp(64px,10vw,138px)/.82 'Cormorant Garamond',serif}.hero h1 em,.closing h2 em{color:#d6bb79;font-weight:400;font-size:.72em}.ornament{color:#d6bb79;font-size:18px;margin:22px}.date{font:500 clamp(18px,2.4vw,28px) 'Cormorant Garamond',serif;letter-spacing:.12em}.place{font-size:11px;text-transform:uppercase;letter-spacing:.35em}.scroll-cue{position:absolute;z-index:2;bottom:28px;color:white;text-decoration:none;font-size:40px;animation:bob 1.8s infinite}@keyframes bob{50%{transform:translateY(8px)}}
.section{padding:110px 24px;text-align:center}.section h2{margin:12px auto 26px;font:500 clamp(45px,7vw,82px)/1.05 'Cormorant Garamond',serif}.gold{color:#9c7b3e}.story{max-width:900px;margin:auto}.story p:not(.eyebrow){max-width:700px;margin:20px auto;font:400 23px/1.65 'Cormorant Garamond',serif}.story .lead{font-size:29px!important}.story .lead em{color:#9c7b3e}.divider{display:flex;align-items:center;gap:12px;max-width:280px;margin:30px auto;color:#b8944d}.divider:before,.divider:after{content:"";height:1px;flex:1;background:#d9c69c}.story blockquote{margin:42px auto 0;padding:28px 40px;max-width:720px;border-top:1px solid #d9c69c;border-bottom:1px solid #d9c69c;font:italic 26px/1.45 'Cormorant Garamond',serif}
.countdown-section{background:var(--ink);color:white;position:relative;overflow:hidden}.countdown-section:before{content:"K & G";position:absolute;inset:auto 0 -35px;color:#ffffff0d;font:500 190px/1 'Cormorant Garamond',serif}.countdown{position:relative;display:grid;grid-template-columns:repeat(4,1fr);max-width:800px;margin:55px auto 0}.time-unit{border-right:1px solid #ffffff38}.time-unit:last-child{border:0}.time-unit strong{display:block;font:400 clamp(42px,6vw,72px) 'Cormorant Garamond',serif;color:#d6bb79}.time-unit span{font-size:10px;text-transform:uppercase;letter-spacing:.25em}
.details{background:var(--paper)}.event-card{max-width:740px;margin:48px auto 36px;display:flex;text-align:left;border:1px solid #d9c69c;background:white;box-shadow:0 18px 55px #49381413}.event-date{width:180px;background:#71806c;color:white;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px}.event-date span{font:500 72px/1 'Cormorant Garamond',serif}.event-date small{text-align:center;text-transform:uppercase;letter-spacing:.18em;line-height:1.6}.event-info{padding:38px 44px}.event-info time{color:#9c7b3e;text-transform:uppercase;letter-spacing:.22em;font-size:12px}.event-info h3{font:500 32px 'Cormorant Garamond',serif;margin:16px 0 5px}.event-info p{margin:0 0 18px}.address-note{font-size:12px;color:#71806c;font-style:italic}.calendar-button{border:1px solid #9c7b3e;background:transparent;color:var(--ink);padding:17px 26px;text-transform:uppercase;letter-spacing:.15em;font-size:10px;cursor:pointer}.calendar-button:hover{background:var(--ink);color:white}.calendar-button span{font-size:18px;margin-left:10px}
.closing{background:#eee3cf;min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:center}.closing-mark{width:112px;height:112px;display:grid;place-items:center;border:1px solid #b8944d;border-radius:50%;font:500 30px 'Cormorant Garamond',serif;margin-bottom:38px}.closing-mark em{color:#b8944d}.closing h2{font-size:clamp(55px,9vw,105px);margin-top:24px}.closing-date{letter-spacing:.35em;font-size:12px}
.language-toggle{position:fixed;z-index:70;top:20px;right:20px;display:flex;gap:3px;padding:4px;border:1px solid #d2b568;background:#fffdf0e8;border-radius:999px;box-shadow:0 8px 25px #0002;backdrop-filter:blur(10px)}.language-toggle button{min-width:48px;border:0;border-radius:999px;background:transparent;color:#45584c;padding:9px 12px;cursor:pointer;font-size:9px;font-weight:600;letter-spacing:.13em;transition:background .25s,color .25s,box-shadow .25s}.language-toggle button:hover{color:#17281f}.language-toggle button.active{background:#17281f;color:#fff;box-shadow:0 3px 10px #0003}
@media(max-width:650px){.castle-intro{top:16%}.castle-intro h2{font-size:54px}.heart-lock{top:58%;width:98px;height:98px}.lock-shackle{left:31px;width:38px;height:44px;border-width:8px}.lock-heart{top:29px;width:98px;height:79px;font-size:48px;clip-path:path('M49 76 C42 67 7 45 7 23 C7 4 32 -3 49 17 C66 -3 91 4 91 23 C91 45 56 67 49 76 Z')}.open-label{top:calc(58% + 69px);font-size:9px;letter-spacing:.18em}.door-panel img{object-position:center}.hero h1{flex-direction:column;gap:0;font-size:70px}.hero h1 em{line-height:.55}.hero img{object-position:55% center}.section{padding:78px 20px}.time-unit strong{font-size:40px}.time-unit span{font-size:8px;letter-spacing:.08em}.event-card{flex-direction:column}.event-date{width:100%;flex-direction:row;gap:20px}.event-date span{font-size:58px}.event-info{padding:30px 24px}.story blockquote{padding:25px 10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}
