/* Pearl stationery, burgundy velvet, and brushed champagne. */
:root { --forest:#633744; --forest-deep:#3c202b; --forest-light:#865b66; --gold:#ae8957; --gold-light:#dfc9a7; --cream:#f7f2ed; --paper:#fffdf9; --ink:#503d40; --muted:#947e80; }
body { background:#f7f2ed; }
.ambient-grain { opacity:.17; }
.opening { background:radial-gradient(ellipse at 50% 43%,#fffdf9 0%,#f4eae3 58%,#e6d7cd 100%); color:#633744; overflow-y:auto; }
.opening::before { inset:20px; border-color:#af8e5a70; border-radius:160px 160px 3px 3px; }
.opening::after { inset:28px; border-color:#af8e5a30; border-radius:152px 152px 2px 2px; }
.opening-aura--one { background:radial-gradient(circle,#b9837c30,transparent 70%); }
.opening-aura--two { background:radial-gradient(circle,#c9a66b26,transparent 70%); }
.botanical--opening-right,.botanical--opening-left { opacity:.2; filter:sepia(.5); }
.opening-content { max-width:680px; padding:52px 25px 38px; transform:none; }
.opening-title { text-shadow:none; gap:8px; }
.opening-title-intro { font-size:20px; color:#997349; }
.opening-title-names { color:#633744; font-weight:600; font-size:clamp(36px,6.5vw,56px); line-height:1.8; }
.opening-title-and { color:#b08b59; font-weight:400; }
.opening-title::after { width:116px; margin-top:10px; }
.envelope-button { margin-block:12px 0; width:min(88vw,460px); height:min(65vw,315px); }
.envelope-back { background:linear-gradient(145deg,#7b4658,#462331); box-shadow:0 16px 45px #6a36462b; }
.envelope-fold--left { background:linear-gradient(140deg,#875064,#683748); }
.envelope-fold--right { background:linear-gradient(215deg,#794355,#542b3b); }
.envelope-fold--bottom { background:linear-gradient(175deg,#8f5769,#603344); }
.envelope-flap { background:linear-gradient(155deg,#925a6d,#653447); filter:drop-shadow(0 3px 3px #32132338); }
.envelope-letter { background:linear-gradient(125deg,#fffdf9,#f5ebe0); border-color:#c3a475; outline-color:#fff8ed; }
.letter-monogram { color:#744254; }
.envelope-shadow { background:#69434c40; filter:blur(20px); }
.wax-seal { background:radial-gradient(circle at 30% 20%,#ead8af,#b18c52 75%,#91703f); box-shadow:0 4px 12px #321d2c42,inset 0 0 0 3px #c6a46d,inset 0 0 0 5px #f2deb566; }
.open-help { color:#795b60; font-size:12px; margin-top:12px; }
.tap-pulse { border-color:#ad8755; background:#ad87553a; }
.opening-bottom { color:#8e6c45; opacity:.85; margin-top:26px; letter-spacing:3px; }
.opening-bottom span { width:30px; background:#b49a7366; }
.invitation { background:radial-gradient(ellipse at 50% 0,#fffdf9,#f7f1eb 50%,#f0e6e0); }
.topbar { color:#957f78; min-height:86px; }
.topbar-label { font-size:10px; letter-spacing:3px; }
.music-control { background:#fffcf5e8; border-color:#cfbca0; color:#6c4050; box-shadow:0 5px 22px #61344712; backdrop-filter:blur(12px); }
.hero { padding-top:32px; padding-bottom:100px; min-height:880px; }
.hero::before { top:45%; width:min(88vw,620px); height:79%; border:1px solid #ba9a6055; border-radius:300px 300px 8px 8px; }
.hero::after { top:45%; width:min(84vw,596px); height:76%; border:1px solid #ba9a602b; border-radius:290px 290px 4px 4px; }
.hero-halo { background:radial-gradient(ellipse at center,#fffdfacc,transparent 72%); }
.botanical--hero-right,.botanical--hero-left { opacity:.2; width:clamp(130px,22vw,270px); filter:sepia(.4); }
.hero-first .eyebrow { color:#9b7d5c; font-size:17px; }
.hero-kicker { color:#a18b86; font-size:12px; margin:12px 0; }
.couple-names { color:#6d3c4d; font-weight:500; font-size:clamp(48px,8vw,86px); text-shadow:none; gap:18px; }
.couple-names em { color:#b29466; }
.rings-wrap { width:105px; opacity:.8; }
.dance-stage { margin-top:5px; }
.dance-aura { background:radial-gradient(circle,#eacdc6 0%,#eee0ce80 40%,transparent 73%); }
.dance-orbit { border-color:#c3a17f60; border-style:solid; }
.hero-poem { color:#795d65; font-size:clamp(17px,2.3vw,22px); }
.poet { color:#b09169; font-size:12px; }
.scroll-cue { color:#a38a80; }
.section-wrap { width:min(100% - 52px,960px); }
.message-section { padding:40px 0 80px; }
.invitation-paper { border-color:#d2bda0; background:#fffcf7; padding:13px; box-shadow:0 20px 65px #6337440c; }
.invitation-paper::before { inset:-7px; border-color:#d1b99a70; }
.paper-inner { border-color:#dfd1bd; padding:64px 40px; background:radial-gradient(ellipse at 50% 90%,#f1e3d650,transparent 70%); }
.paper-corner { color:#b99a71; font-size:23px; }
.section-kicker { color:#a48561; font-size:12px; }
.message-ornament { color:#b69263; font-size:26px; margin:14px 0 24px; }
.message-copy { color:#7b6267; line-height:2.35; }
.message-copy--emph { color:#623a48; }
.signature { color:#af9577; }
.signature strong { color:#784b5c; font-weight:500; }
.info-section { padding-bottom:80px; }
.section-heading { margin-bottom:28px; }
.eyebrow { color:#a18561; }
.detail-cards { gap:20px; }
.detail-card { background:#fffdf8b8; border:1px solid #d8c6af; box-shadow:none; border-radius:100px 100px 3px 3px; padding:45px 20px 28px; min-height:245px; }
.detail-card::before { inset:8px; border-radius:93px 93px 1px 1px; border-color:#d8c6af66; }
.detail-icon { color:#ad8c60; margin-bottom:14px; }
.detail-label { color:#9b857c; font-size:12px; }
.detail-value { color:#704354; font-size:clamp(18px,2.4vw,24px); }
.detail-hint { color:#98817a; font-size:11px; }
.countdown-grid>div { background:transparent; border:0; border-bottom:1px solid #cbb392; padding:16px 5px; }
.countdown-grid strong { color:#754457; font:500 29px var(--english); }
.countdown-grid span,.countdown-title { color:#a18470; }
.location-card { background:radial-gradient(ellipse at 50% 0,#8c5969,#653747 62%,#492534); border:1px solid #a18170; border-radius:160px 160px 4px 4px; padding:75px 30px 48px; box-shadow:0 20px 60px #6337441a; }
.location-card::before { inset:13px; border-radius:148px 148px 2px 2px; border-color:#dbc29e60; }
.location-leaf { opacity:.18; }
.location-eyebrow { font-size:10px; letter-spacing:3px; color:#d4b78d; }
.location-card h3 { font-weight:500; color:#fff1df; }
.location-description { color:#ddc5ba; }
.location-pin { color:#e0c59a; }
.address { color:#f1e0d4; }
.primary-btn { background:#e2cba5; color:#5c3543; box-shadow:none; border-radius:30px; }
.primary-btn:hover { background:#f1dfbd; }
.outline-btn { border-color:#cdb08c99; border-radius:30px; color:#f3dfc8; }
.copy-address { color:#e0cbb9; border-color:#b89a7b88; }
.footer { background:#e9ded7; border-color:#d6c0ad; padding:48px 20px 35px; }
.footer p { color:#94787b; }
.footer .footer-names { color:#754557; font-weight:500; font-size:30px; }
.footer-names span { color:#b39368; }
.footer-flower { color:#ac8b61; }
.footer-mark { color:#a18469; font-size:12px; letter-spacing:4px; }
.replay { color:#93797a; border-color:#b6a190; }
.toast { background:#633744; border-color:#c9ae86; }
@media (max-width:700px) {
 .hero { min-height:820px; padding-top:25px; }
 .opening::before { inset:12px; }.opening::after { inset:19px; }
 .opening-content { padding:45px 22px; }
 .envelope-button { height:270px; }
 .couple-names { font-size:54px; gap:12px; }
 .section-wrap { width:calc(100% - 42px); }
 .paper-inner { padding:45px 23px; }
 .detail-cards { gap:14px; }
 .detail-card { padding:37px 14px 24px; }
 .location-card { padding:65px 24px 40px; }
}
@media (max-width:450px) {
 .opening-title-names { font-size:39px; }
 .hero { min-height:790px; }
 .couple-names { font-size:47px; }
 .topbar-label { font-size:8px; letter-spacing:1.5px; }
 .detail-cards { grid-template-columns:1fr; max-width:330px; }
 .detail-card { min-height:205px; }
 .location-card { border-radius:120px 120px 4px 4px; }
 .location-card::before { border-radius:110px 110px 2px 2px; }
 .address { font-size:18px; }
 .hero::before { height:83%; }.hero::after { height:80%; }
}
@media (max-height:700px) {
 .opening-content { padding-block:30px; }
 .opening-title-intro { font-size:17px; }
 .opening-title-names { font-size:34px; }
 .envelope-button { height:235px; min-height:200px; margin-top:0; }
 .opening-bottom { margin-top:18px; }
}
