:root{--ink:#2b2420;--gold:#b9945c;--blush:#e9d3ce;--cream:#faf6ef;--sage:#6b5f4f;--line:#2b24202e}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--ink);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:Jost,sans-serif;overflow-x:hidden}::selection{background:var(--gold);color:var(--cream)}#stage{background:radial-gradient(ellipse at 50% 20%, #3a322b 0%, var(--ink) 60%);z-index:50;justify-content:center;align-items:center;transition:opacity 1s .2s,visibility 1s .2s;display:flex;position:fixed;inset:0}#stage.hidden{opacity:0;visibility:hidden;pointer-events:none}.prompt{color:var(--blush);letter-spacing:.35em;text-transform:uppercase;text-align:center;opacity:.85;font-size:.78rem;font-weight:400;position:absolute;top:14%;left:50%;transform:translate(-50%)}.prompt span{letter-spacing:.02em;color:var(--gold);margin-top:8px;font-family:Cormorant Garamond,serif;font-size:1.1rem;font-style:italic;display:block}.envelope-wrap{perspective:1600px;aspect-ratio:3/2;cursor:pointer;width:min(78vw,360px)}.envelope{width:100%;height:100%;position:relative}.env-body{background:linear-gradient(#f3ece1,#e8dcc9);border-radius:3px;position:absolute;inset:0;box-shadow:0 30px 60px #00000073}.env-body:before{content:"";background:linear-gradient(115deg,#0000 49.4%,#00000014 50%,#0000 50.6%);position:absolute;inset:0}.env-body:after{content:"";background:linear-gradient(245deg,#0000 49.4%,#00000014 50%,#0000 50.6%);position:absolute;inset:0}.env-flap{clip-path:polygon(0 0,100% 0,50% 92%);transform-origin:top;z-index:6;background:linear-gradient(160deg,#efe6d6,#ddcdb2);height:58%;transition:transform 1s cubic-bezier(.6,.05,.28,1);position:absolute;top:0;left:0;right:0;box-shadow:0 4px 10px #0000001f}.envelope.open .env-flap{z-index:2;transform:rotateX(180deg)}.seal{background:radial-gradient(circle at 35% 30%, #c79a68, var(--gold) 60%, #8a693e 100%);width:52px;height:52px;color:var(--cream);z-index:7;border-radius:50%;justify-content:center;align-items:center;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-style:italic;transition:opacity .35s,transform .35s;display:flex;position:absolute;top:47%;left:50%;transform:translate(-50%,-50%);box-shadow:0 6px 14px #00000059}.envelope.open .seal{opacity:0;transform:translate(-50%,-50%)scale(.5)}.card-peek{background:var(--cream);border:1px solid var(--line);z-index:4;text-align:center;border-radius:2px;justify-content:center;align-items:center;padding:16px;transition:transform 1s cubic-bezier(.2,.7,.3,1) .25s;display:flex;position:absolute;inset:14% 6% 6%;transform:translateY(0%)}.envelope.open .card-peek{transform:translateY(-64%)}.card-peek p{color:var(--sage);font-family:Cormorant Garamond,serif;font-size:.92rem;line-height:1.5}.card-peek .names{color:var(--ink);margin-bottom:6px;font-size:1.35rem;font-style:italic;display:block}#invite{background:var(--cream);opacity:0;min-height:100vh;transition:opacity 1.1s .4s;position:relative}#invite.show{opacity:1}.section{padding:90px 8vw;position:relative}.center{text-align:center}.hero{background:linear-gradient(180deg, #14110e26 0%, #14110ebf 100%), var(--hero-image) center 22% / cover;min-height:100vh;color:var(--cream);flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:70px;display:flex}.eyebrow{letter-spacing:.4em;text-transform:uppercase;color:var(--blush);margin-bottom:22px;font-size:.72rem;font-weight:500}.hero h1{font-family:Cormorant Garamond,serif;font-size:clamp(2.7rem,10vw,4.8rem);font-weight:500;line-height:1.05}.hero .amp{color:var(--gold);margin:4px 0;font-size:.5em;font-style:italic;display:block}.hero .nick{letter-spacing:.2em;text-transform:uppercase;opacity:.75;margin-top:4px;font-family:Jost,sans-serif;font-size:.32em;display:block}.hero .date{letter-spacing:.2em;text-transform:uppercase;border-top:1px solid #faf6ef66;margin-top:28px;padding-top:20px;font-size:.9rem}.divider{background:var(--gold);width:46px;height:1px;margin:26px auto}.story{text-align:left;grid-template-columns:1fr 1.1fr;align-items:center;gap:50px;max-width:900px;margin:0 auto;display:grid}.story-img img{border-radius:3px;width:100%;display:block}.story-text .eyebrow{color:var(--sage)}.story-text h2{color:var(--ink);margin-bottom:18px;font-family:Cormorant Garamond,serif;font-size:2rem;font-style:italic;font-weight:500}.story-text p{color:#5a4f43;font-size:1rem;font-weight:300;line-height:1.85}.details{background:var(--ink);color:var(--cream)}.details .eyebrow{color:var(--gold)}.timeline{text-align:left;border-left:1px solid #faf6ef38;max-width:620px;margin:56px auto 0}.t-item{padding:0 0 40px 34px;position:relative}.t-item:last-child{padding-bottom:4px}.t-item:before{content:"";background:var(--gold);width:10px;height:10px;box-shadow:0 0 0 4px var(--ink);border-radius:50%;position:absolute;top:4px;left:-5.5px}.t-time{color:var(--gold);font-family:Cormorant Garamond,serif;font-size:1.4rem;font-style:italic}.t-label{letter-spacing:.03em;opacity:.9;margin-top:4px;font-size:.95rem;font-weight:300}.venue-line{text-align:center;letter-spacing:.08em;opacity:.85;margin-top:56px;font-size:.95rem}.venue-line strong{color:var(--gold);font-weight:500}.location-name{margin-top:4px;font-family:Cormorant Garamond,serif;font-size:2.2rem;font-style:italic;font-weight:500}.location-city{letter-spacing:.08em;opacity:.85;margin-top:10px;font-size:.95rem}.map-button{border:1px solid var(--gold);color:var(--gold);letter-spacing:.15em;text-transform:uppercase;border-radius:999px;margin-top:34px;padding:12px 32px;font-size:.78rem;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.map-button:hover{background:var(--gold);color:var(--ink)}.gallery-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:170px;gap:10px;max-width:960px;margin:50px auto 0;display:grid}.gallery-grid img{object-fit:cover;border-radius:2px;width:100%;height:100%;display:block}.gallery-grid>:first-child{grid-area:span 2/span 2}.blessings-heading{color:var(--ink);margin-top:4px;font-family:Cormorant Garamond,serif;font-size:2rem;font-style:italic;font-weight:500}.blessings-body{color:#5a4f43;max-width:520px;margin:18px auto 0;font-size:1rem;font-weight:300;line-height:1.85}.qr-grid{grid-template-columns:repeat(3,1fr);gap:24px;max-width:780px;margin:46px auto 0;display:grid}.qr-card{border:1px solid var(--line);background:#fff;border-radius:6px;padding:14px}.qr-card img{border-radius:3px;width:100%;display:block}.qr-label{letter-spacing:.05em;color:var(--sage);margin-top:12px;font-size:.82rem}@media (width<=720px){.qr-grid{grid-template-columns:1fr;max-width:320px}}footer{text-align:center;background:var(--ink);color:#faf6ef80;letter-spacing:.1em;padding:40px;font-size:.75rem}.music-frame{opacity:0;pointer-events:none;width:1px;height:1px;position:fixed;overflow:hidden}.music-toggle{z-index:40;background:var(--gold);width:52px;height:52px;color:var(--cream);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:transform .2s,box-shadow .2s;display:flex;position:fixed;bottom:20px;right:20px;box-shadow:0 6px 18px #00000059}.music-toggle:hover{transform:scale(1.06);box-shadow:0 8px 22px #0006}@media (width<=720px){.story{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:200px}.gallery-grid>:first-child{grid-column:span 2}.section{padding:70px 6vw}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
