/* Quiet paper details. The selected square brand and all source images stay intact. */
:root{--wd-ink:#70583f;--wd-line:#b69b76;--wd-paper:#fcf8ef;--wd-soft:#e2d4be}
/* Replace competing legacy loops and text entrances with a single decorative focus. */
.art-dove,.art-rings,.wedding-scene .church,.wedding-scene .rings,.chapter-ornament,.mini-stars,.music-bars i{animation:none!important}
.js-reveal .reveal,.js-reveal .reveal.seen{opacity:1!important;transform:none!important;transition:none!important}
.story-card img,.story-card:hover img,.guide-article,.guide-article:hover,.button:hover{transform:none!important;transition:none!important}
[data-wd-panel][hidden],.wd-toggle[hidden],.story-card[hidden]{display:none!important}
.new-hero .eyebrow{flex-wrap:wrap;row-gap:12px}
.eyebrow .wd-signature,.eyebrow .wd-signature-text{width:auto;height:auto;background:none;flex:none}
html.wd-motion-off{scroll-behavior:auto!important}
.wd-signature{display:inline-block;position:relative;white-space:nowrap}
.wd-signature-text{display:inline-block;clip-path:inset(0)}
.wd-signature.wd-pending .wd-signature-text{clip-path:inset(0 100% 0 0)}
.wd-signature.wd-playing .wd-signature-text{animation:wd-signature-ink 620ms ease-out both}
@keyframes wd-signature-ink{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
.wd-signature-line{position:absolute;pointer-events:none;left:0;bottom:-9px;width:100%;height:12px;overflow:visible;fill:none;stroke:var(--wd-line);stroke-width:1.15;stroke-linecap:round}
.wd-signature-line path{stroke-dasharray:1;stroke-dashoffset:0}
.wd-signature.wd-pending .wd-signature-line path{stroke-dashoffset:1}
.wd-signature.wd-playing .wd-signature-line path{animation:wd-sign 680ms ease-out both}
@keyframes wd-sign{0%,25%{stroke-dashoffset:1}100%{stroke-dashoffset:0}}

/* Full quotes stay in the document. The linked card and its disclosure are siblings. */
.wd-story-link{display:block;color:inherit;text-decoration:none}
.wd-story-link:focus-visible,.wd-toggle:focus-visible{outline:2px solid #70583f;outline-offset:5px;border-radius:3px}
.wd-story .mobile-kind-words{display:block;margin:0;font-size:16px;line-height:1.9;color:#66503b;white-space:normal}
.wd-story .mobile-kind-words .translation-note{display:block;font-size:12px!important;line-height:1.7;margin:12px 0 0!important}
.wd-words{margin-top:16px;padding:20px;border:1px solid var(--wd-soft);background:#f5eee2;border-radius:3px}
.wd-story .cover-thanks{display:none;transform:none!important;transition:none!important;padding:24px 24px 66px;justify-content:center;background:#f6eee1;pointer-events:none;opacity:0}
.wd-story .cover-thanks-kicker{flex:none;margin-bottom:12px;font-size:12px;line-height:1.6;letter-spacing:.06em}
.wd-story .cover-thanks-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:7;overflow:hidden;font-size:17px;line-height:1.75}
/* The complete wording is available from the adjacent button, never only on hover. */
@media(hover:hover) and (pointer:fine){
 .wd-ready .wd-story .cover-thanks{display:flex}
 .wd-story:hover .has-thanks .cover-thanks,.wd-story:focus-within .has-thanks .cover-thanks{opacity:0}
 .wd-ready .wd-story.wd-hover .has-thanks .cover-thanks{opacity:1}
 .wd-story:hover .has-thanks>img,.wd-story:focus-within .has-thanks>img{opacity:1;transform:none!important}
 .wd-story.wd-hover.wd-playing .cover-thanks{animation:wd-thanks 320ms ease-out both}
}
@keyframes wd-thanks{from{opacity:.65}to{opacity:1}}
.wd-toggle{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:44px;max-width:100%;margin-top:17px;padding:9px 13px;border:1px solid #baa383;border-radius:3px;background:#fcf8ef;color:#614a34;font:inherit;font-size:14px;line-height:1.7;text-align:left;cursor:pointer;touch-action:manipulation}
.wd-toggle:hover{background:#f4eadb}
.wd-toggle-mark{font-size:21px;font-family:Georgia,serif;font-weight:400;line-height:1;flex:none}
.wd-toggle-label{overflow-wrap:break-word}

/* Opening the envelope moves only its small decorative fold; quotations stay still. */
.wd-letter{position:relative;isolation:isolate;padding-top:49px}
.wd-letter-fold{position:absolute;z-index:-1;top:0;left:0;right:0;height:30px;overflow:hidden;pointer-events:none;border-bottom:1px solid #c9b495;background:linear-gradient(165deg,#f0e5d4,#fbf7ef);transform-origin:50% 0}
.wd-letter-fold:after{content:'';position:absolute;width:54px;height:54px;left:calc(50% - 27px);top:-40px;border-right:1px solid #c9b495;border-bottom:1px solid #c9b495;transform:rotate(45deg);background:#f7efe2}
.wd-letter.wd-playing .wd-letter-fold{animation:wd-letter-open 620ms ease-out both}
@keyframes wd-letter-open{from{transform:perspective(320px) rotateX(-58deg);opacity:.55}to{transform:perspective(320px) rotateX(0);opacity:1}}
.wd-letter-panel{margin-top:20px;padding-top:2px}
.wd-letter-panel .original-image{display:block;width:100%;max-width:720px;margin:0 auto;line-height:0}
.wd-letter-panel .original-image img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border:1px solid #d2c1a7;background:#f4eddf}
.wd-image-note{margin:10px 0 0!important;font-family:var(--sans);font-size:12px!important;line-height:1.8!important;color:#70583f}
.wd-letter .quote-source{display:block;width:fit-content;max-width:100%;overflow-wrap:anywhere}
.quote-card.wd-letter blockquote{overflow:visible;max-height:none;-webkit-line-clamp:unset}

/* Each existing planning stage keeps all its original headings and guidance. */
.timeline.wd-journey{gap:30px}
.wd-journey .wd-stage{position:relative;min-width:0;padding-top:83px;border-top:0;isolation:isolate}
.wd-journey-icon{position:absolute;top:0;left:0;display:grid;place-items:center;width:56px;height:56px;background:#f5eee1;border:1px solid #cfbda2;border-radius:50%;z-index:1}
.wd-journey-icon svg{display:block;width:44px;height:44px}
.wd-stage:before,.wd-stage:after{content:'';position:absolute;left:28px;top:28px;width:calc(100% + 30px);height:1px;background:#dbceb9;pointer-events:none;transform-origin:left center}
.wd-stage:after{background:#a88a61;transform:scaleX(1)}
.wd-stage:last-child:before,.wd-stage:last-child:after{width:0}
.wd-stage.wd-pending:after{transform:scaleX(0)}
.wd-stage.wd-playing:after{animation:wd-journey-x 660ms ease-out both}
.wd-stage.wd-playing .wd-journey-icon{animation:wd-marker 660ms ease-out both}
@keyframes wd-journey-x{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes wd-marker{from{border-color:#dfd4c2}to{border-color:#a88a61}}

/* The invitation is always open to read and the existing WhatsApp CTA stays live. */
.wd-contact-paper{position:relative;isolation:isolate;max-width:800px;margin:0 auto;padding:clamp(28px,5vw,54px) clamp(18px,4vw,48px);background:#fcf8efeb;border:1px solid #cdbb9f;border-radius:3px;box-shadow:0 9px 28px #6f513a09}
.wd-contact-paper:before{content:'';position:absolute;left:-1px;right:-1px;top:-1px;height:17px;background:linear-gradient(180deg,#ebdec9,#f7f0e3);border:1px solid #cdbb9f;border-bottom-color:#d5c5ad;transform-origin:center top;pointer-events:none;z-index:-1}
.wd-contact-paper.wd-playing:before{animation:wd-contact-open 680ms ease-out both}
@keyframes wd-contact-open{from{transform:perspective(460px) rotateX(-65deg);opacity:.55}to{transform:perspective(460px) rotateX(0);opacity:1}}
.contact-v2 .wd-contact-paper>p{max-width:650px;margin-left:auto;margin-right:auto}
.contact-v2 .wd-contact-paper .contact-blessing{margin-top:29px}
.contact-v2 .wd-contact-paper .button{max-width:100%}

@media(max-width:760px){
 .wd-journey .wd-stage{padding:0 0 0 72px;min-height:72px}
 .wd-journey-icon{top:0;left:0;width:48px;height:48px}
 .wd-journey-icon svg{width:37px;height:37px}
 .wd-stage:before,.wd-stage:after{left:24px;top:24px;width:1px;height:calc(100% + 30px);transform-origin:center top}
 .wd-stage:after{transform:scaleY(1)}
 .wd-stage:last-child:before,.wd-stage:last-child:after{width:0;height:0}
 .wd-stage.wd-pending:after{transform:scaleY(0)}
 .wd-stage.wd-playing:after{animation-name:wd-journey-y}
 .wd-journey .wd-stage .time{margin-top:0}
 .wd-letter{padding-top:47px}
 .wd-toggle{font-size:15px;min-height:46px}
 .wd-words{padding:18px}
 .wd-contact-paper{padding-top:34px;padding-bottom:30px}
 .contact-v2 .wd-contact-paper h2,.english .contact-v2 .wd-contact-paper h2{font-size:clamp(27px,7.3vw,38px);line-height:1.5}
 .contact-v2 .wd-contact-paper p{font-size:16px;line-height:1.9}
}
@keyframes wd-journey-y{from{transform:scaleY(0)}to{transform:scaleY(1)}}
/* Both the existing off switch and OS setting turn every new motion into a still. */
.motion-off *,.motion-off *:before,.motion-off *:after,.wd-reduced *,.wd-reduced *:before,.wd-reduced *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.motion-off .wd-signature-text,.wd-reduced .wd-signature-text{clip-path:none!important}
.motion-off .wd-signature-line path,.wd-reduced .wd-signature-line path{stroke-dashoffset:0!important}
.motion-off .wd-stage:after,.wd-reduced .wd-stage:after{transform:none!important}
.motion-off .wd-story .cover-thanks,.wd-reduced .wd-story .cover-thanks{display:none!important}
@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .wd-signature-text{clip-path:none!important}
 .wd-signature-line path{stroke-dashoffset:0!important}
 .wd-stage:after{transform:none!important}
 .wd-story .cover-thanks{display:none!important}
 .js-reveal .reveal{opacity:1!important;transform:none!important}
}

/* Final responsive/accessibility pass: content, controls and captions keep their space. */
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px}
.site-header nav a{min-height:44px;display:flex;align-items:center}
.site-header nav a:not(.nav-contact){border-bottom:1px solid transparent}
.site-header nav a[aria-current="page"]{border-bottom-color:#9c8060}
.menu-toggle,.language-switch{flex-shrink:0}
.filter-bar button{min-height:44px}
.story-search{min-height:44px}
.story-search:focus-visible{outline:2px solid #70583f;outline-offset:4px}
.chinese,[lang^="zh-Hant"]{line-break:strict;word-break:normal}
.english .story-article,.english .watch-copy,.english .guide-article{overflow-wrap:break-word}
.english .story-article [lang^="zh-Hant"]{word-break:normal;overflow-wrap:normal;line-height:1.9}
.story-article .text-link,.source-links,.guide-takeaway,.wd-words,.wd-letter-panel{min-width:0;max-width:100%}
.story-article .text-link{overflow-wrap:anywhere}
.video-frame:has(.design-film-preview){aspect-ratio:auto;max-height:none;overflow:visible}
.design-film-preview figcaption{overflow-wrap:break-word}
.playback-controls .music-panel{max-width:100%}
.playback-controls .music-panel button{max-width:100%;white-space:normal;text-align:left}
.playback-controls .music-panel>p{display:block;max-width:30em;margin-inline:auto}
@media(max-width:1100px){
 .site-header nav{top:100%;max-height:calc(100dvh - 110px);overflow-y:auto;overscroll-behavior:contain}
 .site-header nav>a:not(.nav-contact){display:flex}
}
@media(max-width:960px){
 .timeline.wd-journey{grid-template-columns:minmax(0,1fr)}
 .wd-journey .wd-stage{padding:0 0 0 72px;min-height:72px}
 .wd-journey-icon{top:0;left:0;width:48px;height:48px}
 .wd-journey-icon svg{width:37px;height:37px}
 .wd-stage:before,.wd-stage:after{left:24px;top:24px;width:1px;height:calc(100% + 30px);transform-origin:center top}
 .wd-stage:after{transform:scaleY(1)}
 .wd-stage:last-child:before,.wd-stage:last-child:after{width:0;height:0}
 .wd-stage.wd-pending:after{transform:scaleY(0)}
 .wd-stage.wd-playing:after{animation-name:wd-journey-y}
}
@media(max-width:760px){
 .language-switch{gap:0}
 .header-right{gap:4px}
 .footer-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px}
 .footer-nav{gap:4px}
 .english .footer-nav{font-size:13px}
 .story-search{font-size:16px}
 .wd-contact-paper .button{gap:18px}
}
