:root{--paper:#f7f1e5;--paper-deep:#eee0c9;--ink:#342a27;--muted:#7b6860;--red:#b52d2a;--wine:#681f26;--line:rgba(104,31,38,.2);font-family:"Noto Serif SC","Songti SC",STSong,serif;color:var(--ink);background:var(--paper)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper)}.panel{min-height:100svh;position:relative;overflow:hidden;padding:12vh clamp(24px,7vw,68px);display:flex;flex-direction:column;justify-content:center}.eyebrow{font-family:Georgia,serif;letter-spacing:.16em;color:var(--red);font-size:11px;margin:0 0 18px}h1,h2,p{margin-top:0}h1{font-size:clamp(48px,13vw,88px);font-weight:500;letter-spacing:.12em;margin:0 0 20px}h2{font-size:clamp(30px,8vw,52px);font-weight:500;letter-spacing:.07em;line-height:1.35;margin-bottom:18px}.photo{background:#e7d6cb center/cover no-repeat}.hero{min-height:100svh;justify-content:flex-start;padding-top:13vh}.hero-copy{position:relative;z-index:2}.paper-noise{position:absolute;inset:0;opacity:.4;background:radial-gradient(ellipse at 70% 25%,#fff8 0 12%,transparent 40%),repeating-linear-gradient(15deg,transparent 0 6px,#9d816008 7px 8px)}.seal{border:1px solid var(--red);color:var(--red);width:max-content;padding:10px;line-height:1.5;letter-spacing:.1em;font-size:13px}.scroll-prompt{position:absolute;bottom:7vh;color:var(--wine);text-decoration:none;letter-spacing:.25em;font-size:12px}.hero-photo{position:absolute;inset:39% 0 0;background-image:linear-gradient(0deg,var(--paper),transparent 35%),url("./assets/h5/photos/p1-cover.jpg");background-position:center 30%}.couple{gap:36px;background:#fbf8f0}.couple-photo{height:min(56vw,430px);background-image:url("./assets/h5/photos/p2-couple.jpg")}.copy-block{position:relative;z-index:1}.copy-block h2 span{font-size:.65em;color:var(--red);margin:0 .15em}.ink-branch{position:absolute;right:-10vw;top:9%;width:70vw;height:45vw;background:radial-gradient(ellipse at 50% 50%,#583a2b20,transparent 60%);transform:rotate(-20deg)}.ceremony{text-align:center;align-items:center;background:linear-gradient(145deg,#fbf8ef,var(--paper-deep))}.timeline{width:min(100%,380px);margin:28px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.timeline div{padding:18px;display:grid;grid-template-columns:1fr 1fr;align-items:center}.timeline div+div{border-top:1px solid var(--line)}dt{font:22px Georgia,serif;color:var(--wine);letter-spacing:.08em}dd{margin:0;font-size:18px}.quiet{color:var(--muted);letter-spacing:.06em}.detail{padding:0;min-height:95svh}.detail-photo{position:absolute;inset:0;background-image:linear-gradient(90deg,#f7f1e5e8 0 30%,transparent 80%),url("./assets/h5/photos/p4-hands.jpg")}.detail-copy{position:relative;max-width:290px;margin:0 9vw}.detail-copy p:last-child{line-height:2;color:#53413b}.venue{text-align:center;align-items:center;background:#f9f4e9}.mountains{position:absolute;inset:auto 0 0;height:44%;background:linear-gradient(160deg,transparent 0 30%,#4a5a4b18 31% 40%,transparent 41%),linear-gradient(25deg,transparent 0 35%,#4a5a4b12 36% 48%,transparent 49%)}.venue>*:not(.mountains){position:relative}.venue-name{font-size:28px;color:var(--wine);letter-spacing:.15em;margin:5px 0 20px}address{font-style:normal;line-height:1.9;margin-bottom:28px}.button{appearance:none;border:1px solid var(--red);background:var(--red);border-radius:0;color:#fffaf1;padding:14px 27px;font:inherit;letter-spacing:.12em;text-decoration:none;cursor:pointer;min-width:170px;text-align:center}.hint,.form-note{font-size:13px;color:var(--muted);line-height:1.7;margin-top:18px}.rsvp{text-align:center;align-items:center;background:linear-gradient(0deg,#e9d9c2,#fbf8ef)}.blessings{padding:0;min-height:100svh;color:#fffaf1;justify-content:flex-end}.blessing-photo{position:absolute;inset:0;background-image:linear-gradient(0deg,#321c1ce8 0 28%,#321c1c19 70%),url("./assets/h5/photos/p7-farewell.jpg")}.blessing-content{position:relative;padding:12vh clamp(24px,7vw,68px)}.blessings .eyebrow{color:#f7d4be}.button-light{border-color:#f7e6d0;background:transparent}.form-status{min-height:1.5em;font-size:13px;color:var(--wine);margin:15px 0 0}.form-status.light{color:#fff1df}.dialog{border:0;padding:0;background:transparent;width:min(calc(100% - 32px),460px);max-height:90svh}.dialog::backdrop{background:#2a1716aa;backdrop-filter:blur(2px)}.dialog form{position:relative;background:#fbf7ed;padding:40px 26px 28px;overflow:auto;max-height:90svh}.dialog h2{font-size:29px}.close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:28px;color:var(--muted);cursor:pointer}label,fieldset{display:block;margin:18px 0;border:0;padding:0;font-size:15px}input,textarea,select{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid #cdbba9;border-radius:0;background:#fffdf8;font:inherit;color:var(--ink)}textarea{min-height:108px;resize:vertical}fieldset label{display:inline-flex;align-items:center;gap:7px;margin-right:15px}fieldset input{width:auto;margin:0}.greeting{color:var(--wine)}.dialog .button{width:100%;margin-top:5px}@media (min-width:700px){.hero-photo{inset:20% 0 0 48%;background-image:linear-gradient(90deg,var(--paper),transparent 20%),url("./assets/h5/photos/p1-cover.jpg")}.couple{flex-direction:row;align-items:center}.couple-photo{width:55%;height:65vh}.ceremony{min-height:70svh}.detail-copy{margin-left:13vw}.venue{min-height:75svh}.blessing-content{max-width:680px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.panel,*{animation:none!important;transition:none!important}}
.message-randomizer{margin:18px 0}.message-randomizer p{margin:0 0 8px;color:var(--muted);font-size:13px}.message-randomizer button{width:100%;min-height:46px;border:1px solid var(--red);background:#fff8ef;color:var(--wine);padding:10px 14px;font:inherit;letter-spacing:.08em;cursor:pointer}.message-randomizer button:focus,.message-randomizer button:hover{background:#f1dfd4;outline:none}.ceremony h2{font-size:clamp(42px,10vw,68px);font-weight:600;color:var(--wine);letter-spacing:.04em;line-height:1.2}.hero .scroll-prompt{z-index:3;left:50%;bottom:4vh;transform:translateX(-50%);border:1px solid var(--red);background:#fff8efde;padding:12px 20px;min-width:148px;text-align:center;color:var(--wine);font-weight:600;box-shadow:0 8px 22px #4b20251f}.hero .scroll-prompt span{font-size:18px;vertical-align:-1px;margin-left:5px}
.hero .scroll-prompt{position:relative;left:auto;bottom:auto;transform:none;display:inline-block;align-self:flex-start;margin-top:26px;z-index:3;min-width:170px;letter-spacing:.12em;border-color:var(--red);background:var(--red);color:#fffaf1;box-shadow:0 10px 24px #681f2630}.hero .scroll-prompt:hover{background:var(--wine);border-color:var(--wine)}.ceremony-date{white-space:nowrap;font-size:clamp(26px,7.6vw,68px)!important;letter-spacing:.015em;line-height:1.25}@media (max-width:420px){.hero .scroll-prompt{margin-top:22px;min-width:160px}.ceremony-date{font-size:clamp(26px,7.5vw,32px)!important}}
@media (max-width:699px){.hero{padding:12vh 24px 0}.hero-photo{inset:50% 0 0;background-position:center 28%}.hero .scroll-prompt{position:absolute;left:24px;top:42%;margin:0;min-width:170px}}@media (min-width:700px) and (max-width:1024px){.couple{flex-direction:column;justify-content:center}.couple-photo{width:100%;height:min(60vw,500px);background-size:contain;background-repeat:no-repeat;background-color:#e7d6cb}}@media (orientation:landscape) and (max-height:600px){.couple{min-height:auto;flex-direction:column;justify-content:center;padding:7vh clamp(24px,7vw,68px)}.couple-photo{width:100%;height:55vh;background-size:contain;background-repeat:no-repeat;background-color:#e7d6cb}.couple .copy-block{text-align:center}}
@media (max-width:699px){.hero-copy{position:relative;z-index:2}.hero-photo{inset:54% 0 0}.hero .scroll-prompt{position:relative;left:auto;top:auto;bottom:auto;transform:none;align-self:flex-start;margin-top:26px}}

/* v1.1 A/B：零外部依赖的归乡画卷；弱网下仍可完整呈现静态画面。 */
.project-title{margin:0 0 24px;color:var(--wine);font-size:clamp(34px,4.2vw,62px);font-weight:600;letter-spacing:.12em;line-height:1.1;white-space:nowrap;text-shadow:0 2px 12px #fff8}.music-toggle{position:fixed;z-index:15;right:14px;bottom:max(14px,env(safe-area-inset-bottom));border:1px solid #8d5d59;background:#fff9efdc;color:var(--wine);padding:8px 11px;font:13px inherit;letter-spacing:.05em;cursor:pointer;box-shadow:0 3px 10px #2b17171c}.music-toggle[aria-pressed="true"]{background:var(--red);border-color:var(--red);color:#fffaf1}@media (max-width:699px){.project-title{font-size:clamp(44px,12.3vw,48px);font-weight:700;margin-bottom:20px;letter-spacing:.075em;line-height:1.06}.music-toggle{right:12px;bottom:max(12px,env(safe-area-inset-bottom));font-size:12px}}
.site-record{position:relative;z-index:2;padding:22px max(24px,env(safe-area-inset-right)) calc(22px + env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left));background:var(--paper);text-align:center;line-height:1.5}.site-record a{color:var(--muted);font-size:12px;letter-spacing:.06em;text-decoration:none;border-bottom:1px solid transparent}.site-record a:hover,.site-record a:focus-visible{color:var(--wine);border-bottom-color:currentColor;outline:none}.site-record a:focus-visible{outline:2px solid var(--red);outline-offset:4px}@media (min-width:700px){.site-record{padding-top:26px;padding-bottom:26px}.site-record a{font-size:13px}}
.featured-carousel #featured-gallery .featured-caption{position:relative;z-index:2;min-height:2.6em;margin:0;padding:10px 16px 14px;color:var(--muted);background:linear-gradient(to bottom,#f8f3e800,#f8f3e8 28%,#f8f3e8);font-size:13px;letter-spacing:.12em;text-align:center}
/* v1.2：喜庆仪式感、融合式照片与三卡相册。 */
@media (min-width:700px){.hero .scroll-prompt{position:absolute;left:clamp(56px,7vw,120px);bottom:16vh;margin:0;z-index:4}.hero-copy{width:min(42vw,560px);min-height:74svh}}
/* v1.3.1：手机首屏把操作区与主视觉物理分层，避免按钮压到婚纱照。 */
@media (max-width:699px){.hero .scroll-prompt{margin-top:22px;margin-bottom:0}.hero-photo{inset:62% 0 0}}
/* v1.3.2：仅提升第三页“成礼之时”的移动端识读层级，不影响首页或其他页眉。 */
@media (max-width:699px){.ceremony .ceremony-kicker{margin-bottom:12px;color:var(--wine);font-size:clamp(26px,8vw,32px);font-weight:700;letter-spacing:.12em;line-height:1.2;text-shadow:0 1px 8px #fff8}}
.story-intro{background:radial-gradient(circle at 14% 17%,#fff6e8 0 10%,transparent 28%),radial-gradient(circle at 86% 78%,#d95a4526 0 5%,transparent 24%),#f7f1e5!important}.story-intro::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(130deg,transparent 38%,#a5221b12 62%,transparent 82%)}.story-intro .story-copy{margin-top:33vh}.story-joy{margin:0 0 10px;color:#a5221b;font-size:14px;letter-spacing:.42em;font-weight:600}.story-intro .story-ribbon{fill:#a5221b;opacity:0;animation:story-ribbon 1.8s .25s cubic-bezier(.2,.8,.2,1) forwards}.story-intro .ribbon-two{fill:#7b2026;animation-delay:.7s}.story-intro .story-lanterns{fill:#b52d2a;stroke:#681f26;stroke-width:2;opacity:0;animation:story-glow 1.3s 1.3s ease forwards}.story-intro .story-peonies{fill:#bd3230;opacity:0;transform-origin:center;animation:story-bloom .8s 3.5s ease forwards}.story-intro .story-seal-mark{fill:#a5221b;stroke:#fff2df;stroke-width:2;opacity:0;animation:story-seal .55s 2.4s cubic-bezier(.2,.8,.2,1) forwards}.story-intro .story-seal-mark path{fill:none;stroke:#fff2df;stroke-width:3}.story-intro .story-sparks{stroke:#e2a14c;stroke-width:3.5}.motion-reduced .story-intro .story-ribbon,.motion-reduced .story-intro .story-lanterns,.motion-reduced .story-intro .story-peonies,.motion-reduced .story-intro .story-seal-mark{opacity:1;animation:none!important}@keyframes story-ribbon{0%{opacity:0;transform:translateX(-28px)}100%{opacity:.92;transform:translateX(0)}}@keyframes story-glow{0%{opacity:0;transform:scale(.7)}100%{opacity:1;transform:scale(1)}}@keyframes story-seal{0%{opacity:0;transform:scale(1.4) rotate(-10deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.gallery{background:radial-gradient(ellipse at 50% 3%,#fffdf6 0 20%,transparent 50%),linear-gradient(145deg,#fbf8ef,#eee0c9)}.featured-carousel{background:transparent!important;box-shadow:none!important}.featured-carousel #featured-gallery{position:relative;display:block;width:100%;overflow:hidden;background:transparent;mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 88%,transparent 100%)}.featured-carousel #featured-gallery::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#f8f3e8 0%,transparent 12%,transparent 80%,#f8f3e8 100%)}.featured-carousel #featured-gallery .featured-frame{position:relative;margin:0;background:transparent;animation:featured-dissolve .8s cubic-bezier(.2,.7,.2,1) both}.featured-carousel #featured-gallery .featured-image{display:block;width:100%;height:min(65svh,710px);aspect-ratio:auto;object-fit:contain;background:transparent;animation:photo-breathe 12s ease-in-out both}.featured-carousel #featured-gallery figcaption{position:absolute;z-index:1;right:7%;bottom:8%;min-height:0;padding:7px 12px;color:#6f2530;background:#fff9efb8;font-size:13px;letter-spacing:.12em}.gallery-controls{position:relative;z-index:2;border-top:0!important;background:linear-gradient(to right,transparent,#fff8efbd,transparent)}@keyframes featured-dissolve{from{opacity:0;transform:translateY(10px);filter:blur(5px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes photo-breathe{from{transform:scale(1.015)}to{transform:scale(1.045)}}
#full-album{width:min(100%,980px);margin:34px auto 0;display:grid!important;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:10px;background:transparent}.album-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:clamp(6px,1.5vw,18px);min-width:0;touch-action:pan-y}.album-card{padding:0;border:0;background:transparent;cursor:pointer;opacity:.48;transform:scale(.84);transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .5s ease,filter .5s ease;filter:saturate(.75)}.album-card.is-current{opacity:1;transform:scale(1);filter:none}.album-card img{display:block;width:100%;height:clamp(180px,34vw,430px);object-fit:contain!important;aspect-ratio:auto!important;background:transparent!important;box-shadow:0 10px 30px #48251a22}.album-arrow{width:40px;height:40px;border:1px solid var(--red);background:#fff9efbf;color:var(--wine);font-size:20px;cursor:pointer}.album-position{grid-column:1/-1;margin:4px 0 0;color:var(--muted);font:13px Georgia,serif;letter-spacing:.15em}.photo-lightbox{width:min(96vw,1180px);height:min(94svh,940px);border:0;background:#201818f2;color:#fff8ed;padding:26px 54px}.photo-lightbox::backdrop{background:#1d1314d8;backdrop-filter:blur(5px)}.photo-lightbox figure{width:100%;height:100%;margin:0;display:grid;place-items:center}.photo-lightbox img{max-width:100%;max-height:calc(100% - 36px);object-fit:contain}.photo-lightbox figcaption{align-self:end;color:#f7e3cb;font:13px Georgia,serif;letter-spacing:.18em}.lightbox-close,.lightbox-arrow{position:absolute;z-index:1;border:1px solid #fff1dc80;background:#241a1ab8;color:#fff8ed;cursor:pointer}.lightbox-close{right:15px;top:12px;width:36px;height:36px;font-size:25px}.lightbox-arrow{top:50%;width:42px;height:48px;font-size:24px;transform:translateY(-50%)}.lightbox-previous{left:10px}.lightbox-next{right:10px}@media (max-width:699px){.featured-carousel #featured-gallery .featured-image{height:min(61svh,570px)}.featured-carousel #featured-gallery figcaption{bottom:10%;right:5%;font-size:12px}.featured-carousel #featured-gallery{mask-image:linear-gradient(to bottom,transparent 0,#000 5%,#000 90%,transparent 100%)}#full-album{grid-template-columns:32px minmax(0,1fr) 32px;gap:4px}.album-deck{gap:2px}.album-card img{height:42vw}.album-arrow{width:30px;height:34px;font-size:16px}.photo-lightbox{width:100vw;height:100svh;padding:20px 42px}.lightbox-arrow{width:34px;height:42px}.lightbox-close{right:8px;top:8px}}.motion-reduced .featured-frame,.motion-reduced .featured-image,.motion-reduced .album-card{animation:none!important;transition:none!important;transform:none!important}@media (prefers-reduced-motion:reduce){.featured-frame,.featured-image,.album-card{animation:none!important;transition:none!important;transform:none!important}}
.featured-carousel{width:min(100%,680px);background:#f8f1e6;box-shadow:0 12px 30px #42202315}.featured-carousel .featured-gallery{display:block;width:100%;overflow:hidden;background:#e7d6cb}.featured-carousel .featured-gallery figure{margin:0}.featured-carousel .featured-gallery img{display:block;width:100%;height:min(62svh,680px);object-fit:contain;background:#e7d6cb}.featured-carousel .featured-gallery figcaption{min-height:2.5em;padding:10px;color:var(--muted);font-size:13px;letter-spacing:.08em}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:18px;padding:10px 14px;border-top:1px solid var(--line)}.gallery-controls p{margin:0;color:var(--wine);font:13px Georgia,serif;letter-spacing:.12em}.gallery-controls button{width:34px;height:30px;border:1px solid var(--red);background:transparent;color:var(--wine);font-size:18px;cursor:pointer}.full-album{width:min(100%,950px)}@media (max-width:699px){.featured-carousel .featured-gallery img{height:min(60svh,560px)}.featured-carousel{width:100%}}
/* v1.1 C/D：精选轮播与完整相册均按需加载；祝福弹幕默认播放，但不影响正文阅读。 */
.blessing-stream{position:absolute;z-index:1;top:var(--blessing-top,5%);left:0;right:0;height:var(--blessing-height,29%);overflow:hidden;opacity:0;transition:opacity .25s ease;pointer-events:none;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent)}.blessing-stream.is-playing{opacity:1}.blessing-stream.is-compact{display:none}.blessing-track{position:relative;width:100%;height:100%;color:#fff6e7;font-size:13px;letter-spacing:.04em;text-shadow:0 1px 6px #341515}.blessing-lane{position:absolute;top:calc((var(--lane) + .5) * (100% / var(--blessing-lanes)));left:0;width:100%;height:30px;overflow:visible;transform:translateY(-50%)}.blessing-lane-track{display:flex;width:max-content;animation:blessing-lane-roll var(--travel) linear var(--delay) infinite;animation-play-state:paused;will-change:transform}.blessing-stream.is-playing .blessing-lane-track{animation-play-state:running}.blessing-lane-group{display:flex;align-items:center;gap:var(--gap);padding-right:var(--gap);white-space:nowrap}.blessing-chip{display:inline-block;max-width:min(78vw,620px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:5px 10px;border:1px solid #fff0db3d;background:#321b1a38;backdrop-filter:blur(2px);border-radius:999px}.blessing-chip b{font-weight:400;color:#f4ccb4}.blessing-toggle{margin-top:20px;border:1px solid #f2cfbd;background:#fff8ef1c;color:#fff6e7;padding:8px 11px;font:13px inherit;letter-spacing:.06em;cursor:pointer}.gallery{min-height:80svh;align-items:center;text-align:center;background:linear-gradient(145deg,#fbf8ef,#eee0c9)}.gallery-intro{color:var(--muted);margin-bottom:28px}.featured-gallery,.full-album{width:min(100%,950px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.featured-gallery figure,.full-album figure{margin:0;background:#f8f1e6}.featured-gallery img,.full-album img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}.featured-gallery figcaption,.full-album figcaption{min-height:1.4em;padding:8px 10px;color:var(--muted);font-size:12px}.full-album{margin-top:14px}.gallery .button{margin-top:24px}@keyframes blessing-lane-roll{from{transform:translateX(0)}to{transform:translateX(-33.333%)}}.motion-reduced .blessing-lane-track{animation:none!important}@media (max-width:699px){.blessing-track{font-size:12px}.blessing-lane{height:28px}.blessing-toggle{margin-top:16px}.featured-gallery,.full-album{gap:8px}}@media (orientation:landscape) and (max-height:600px){.blessing-stream{display:none}}@media (prefers-reduced-motion:reduce){.blessing-stream{display:none}.blessing-toggle{display:none}}
.story-intro{position:fixed;z-index:30;inset:0;display:grid;place-items:center;overflow:hidden;background:#f7f1e5;color:var(--ink);transition:opacity .5s ease,visibility .5s ease}.story-intro::before{content:"";position:absolute;inset:0;opacity:.45;background:repeating-linear-gradient(15deg,transparent 0 6px,#9d816008 7px 8px)}.story-art{position:absolute;inset:0}.story-svg{width:100%;height:100%;display:block}.story-mountain{fill:#657064;opacity:0;transform-origin:center;animation:story-rise 1.3s ease forwards}.mountain-back{fill:#778579;animation-delay:.2s}.mountain-front{fill:#556655;animation-delay:.55s}.story-water{fill:#d9d5c5;opacity:0;animation:story-fade 1s 1s ease forwards}.story-road{fill:none;stroke:url(#story-road-color);stroke-width:5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;animation:story-road 2s 1.2s ease forwards}.story-gate{fill:#681f26;opacity:0;animation:story-fade .5s 3s ease forwards}.story-door{fill:#b52d2a;transform-box:fill-box}.door-left{transform-origin:right center;animation:door-left .7s 3.3s ease forwards}.door-right{transform-origin:left center;animation:door-right .7s 3.3s ease forwards}.story-flowers{fill:#b52d2a;opacity:0;transform-origin:center;animation:story-bloom .7s 3.7s ease forwards}.story-feast{stroke:#681f26;fill:none;stroke-width:3;opacity:0;animation:story-fade .7s 4.5s ease forwards}.story-feast circle{fill:#b52d2a;stroke:none}.story-smoke{fill:none;stroke:#776d62;stroke-width:3;stroke-linecap:round;opacity:0;animation:story-smoke 1.8s 4.7s ease-in-out infinite}.story-sparks{fill:none;stroke:#b52d2a;stroke-width:3;opacity:0;animation:story-spark 1.1s 5.1s ease-in-out infinite}.story-copy{position:relative;z-index:1;width:min(82vw,460px);margin-top:36vh;text-align:center;text-shadow:0 1px 12px #fff9}.story-kicker{margin-bottom:10px;color:var(--red);letter-spacing:.32em;font-size:12px}.story-title{margin-bottom:15px;color:var(--wine);font-size:clamp(38px,12vw,64px);font-weight:600;letter-spacing:.18em}.story-caption{min-height:1.6em;margin:0;color:#5d4b43;font-size:15px;letter-spacing:.12em;transition:opacity .25s ease}.story-controls{position:absolute;z-index:2;right:18px;bottom:max(22px,env(safe-area-inset-bottom));display:flex;gap:8px}.story-control,.motion-preference{border:1px solid #8d5d59;background:#fff9efdc;color:var(--wine);padding:9px 11px;font:13px inherit;letter-spacing:.05em;cursor:pointer}.story-skip{background:var(--red);border-color:var(--red);color:#fffaf1}.motion-preference{position:fixed;z-index:15;right:14px;bottom:max(14px,env(safe-area-inset-bottom));padding:7px 9px;font-size:12px;opacity:.88;box-shadow:0 3px 10px #2b17171c}.story-finished .story-intro{opacity:0;visibility:hidden;pointer-events:none}.motion-reduced .story-intro *{animation:none!important;transition:none!important}.motion-reduced .story-mountain,.motion-reduced .story-water,.motion-reduced .story-gate,.motion-reduced .story-flowers,.motion-reduced .story-feast,.motion-reduced .story-smoke,.motion-reduced .story-sparks{opacity:1}.motion-reduced .story-road{stroke-dashoffset:0}.motion-reduced .door-left{transform:skewY(-12deg)}.motion-reduced .door-right{transform:skewY(12deg)}@keyframes story-rise{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes story-fade{to{opacity:1}}@keyframes story-road{to{stroke-dashoffset:0}}@keyframes door-left{to{transform:perspective(80px) skewY(-17deg)}}@keyframes door-right{to{transform:perspective(80px) skewY(17deg)}}@keyframes story-bloom{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.16)}100%{opacity:1;transform:scale(1)}}@keyframes story-smoke{0%,100%{opacity:0;transform:translateY(8px)}35%,70%{opacity:.65;transform:translateY(-16px)}}@keyframes story-spark{0%,100%{opacity:0;transform:scale(.7)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.story-intro *{animation:none!important;transition:none!important}.story-mountain,.story-water,.story-gate,.story-flowers,.story-feast,.story-smoke,.story-sparks{opacity:1}.story-road{stroke-dashoffset:0}.story-intro{transition:none}}
