/* Celestial editorial invitation — asymmetry, cinematic images, champagne ink. */
:root{--ed-black:#141513;--ed-ink:#343027;--ed-paper:#e8dcc7;--ed-oat:#d4b895;--ed-clay:#b08b6e;--ed-moss:#606c38;--ed-gold:#c7a96f;--beat:.69s}
body{background:var(--ed-black);color:var(--ed-ink);font-family:WeddingElegant,'Songti SC',serif;font-size:16px;line-height:1.8}main.editorial{max-width:none;overflow:hidden}.editorial p,.editorial h1,.editorial h2,.editorial figure,.editorial blockquote{margin:0}.editorial img{width:100%;height:100%;object-fit:cover;border-radius:0;box-shadow:none}.ed-progress{position:fixed;top:0;left:0;width:100%;height:2px;z-index:30;background:#ffffff12}.ed-progress span{display:block;width:100%;height:100%;background:var(--ed-gold);transform:scaleX(0);transform-origin:left}.ed-cover{min-height:100svh;position:relative;isolation:isolate;background:var(--ed-black);color:var(--ed-paper);padding:30px 5vw 50px;display:grid;grid-template-columns:1.05fr .95fr;grid-template-rows:auto 1fr auto;gap:18px 5vw}.ed-cover-meta{grid-column:1/-1;display:flex;justify-content:space-between;border-bottom:1px solid #c7a96f55;padding-bottom:14px;font-size:11px;letter-spacing:.24em;color:#d4c0a0}.ed-cover-title{align-self:center;z-index:2}.ed-cover-title>p{font:11px/1.4 var(--western);letter-spacing:.28em;color:#cfb98f}.ed-cover h1{font:400 clamp(70px,8.6vw,126px)/.86 var(--western);letter-spacing:-.055em;margin:24px 0;color:#f1e5d2}.ed-cover h1 em{font-weight:400;color:#d3b985}.ed-cover h2{font:300 clamp(20px,2vw,29px)/1.5 WeddingElegant,serif;letter-spacing:.55em}.ed-cover-photo{align-self:center;height:min(68vh,750px);position:relative;padding:10px;border:1px solid #c4a77666;z-index:2;overflow:hidden}.ed-cover-photo:before{content:'';position:absolute;inset:10px;z-index:1;background:linear-gradient(115deg,transparent 43%,#fff8 50%,transparent 57%);transform:translateX(-120%);animation:photo-shine calc(var(--beat)*12) ease-in-out infinite}.ed-cover-photo figcaption{position:absolute;right:18px;bottom:18px;background:#171715cc;padding:7px 12px;font:9px/1.5 var(--western);letter-spacing:.13em;color:#ddc9a5;z-index:2}.ed-cover-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;border-top:1px solid #c7a96f55;padding-top:18px}.ed-cover-bottom p{font-size:14px;letter-spacing:.08em;color:#cbbda7}.ed-cover-bottom a{display:flex;align-items:center;gap:14px;border:1px solid #c7a96f88;padding:11px 21px;color:#eee0c8}.ed-cover-bottom small{font:8px var(--western);letter-spacing:.15em}.ed-sky{position:absolute;inset:0;z-index:-1;overflow:hidden;background:radial-gradient(ellipse at 20% 45%,#7e674526,transparent 45%)}.ed-sky:before,.ed-sky:after{content:'';position:absolute;width:100%;height:50%;border:1px solid #c6a56552;border-radius:50%;left:-28%;top:3%;transform:rotate(-18deg);animation:ed-orbit calc(var(--beat)*32) ease-in-out infinite alternate}.ed-sky:after{width:75%;left:36%;top:36%;animation-delay:calc(var(--beat)*-8)}.ed-sky i,.ed-details-sky i{position:absolute;width:3px;height:3px;background:#f5deaf;border-radius:50%;box-shadow:0 0 8px #f5d18f;animation:ed-twinkle calc(var(--beat)*6) ease-in-out infinite}.ed-sky i:nth-child(1){left:8%;top:18%}.ed-sky i:nth-child(2){left:31%;top:72%;animation-delay:calc(var(--beat)*-2)}.ed-sky i:nth-child(3){left:72%;top:13%;animation-delay:calc(var(--beat)*-4)}.ed-sky i:nth-child(4){left:93%;top:58%;animation-delay:calc(var(--beat)*-1)}.ed-sky i:nth-child(5){left:55%;top:88%;animation-delay:calc(var(--beat)*-3)}.ed-sky b{position:absolute;left:-10%;top:28%;width:90px;height:1px;background:linear-gradient(90deg,transparent,#f8dfaf);transform:rotate(22deg);animation:ed-shoot calc(var(--beat)*24) ease-in-out infinite}.ed-sky b:nth-of-type(2){top:68%;animation-delay:calc(var(--beat)*-12)}
.ed-letter{min-height:100svh;display:grid;grid-template-columns:1.08fr .92fr;background:var(--ed-paper)}.ed-letter-visual{min-height:760px;overflow:hidden}.ed-letter-visual img{will-change:transform;transform:scale(1.08)}.ed-letter-copy{align-self:center;padding:70px clamp(36px,7vw,110px)}.ed-index{font:10px/1.4 var(--western);letter-spacing:.24em;color:#8e754e}.ed-letter h2{font:300 clamp(34px,4vw,57px)/1.55 WeddingElegant,serif;letter-spacing:.11em;margin:17px 0}.ed-letter-copy>p[lang=en]{font:italic 18px/1.7 var(--western);color:#8c7556}.ed-letter-copy>p:not([lang=en]):not(.ed-index):not(.ed-sign){font-size:16px;line-height:2.25;letter-spacing:.06em;margin-top:22px}.ed-rule{width:75px;height:1px;background:var(--ed-clay);margin:28px 0}.ed-sign{margin-top:30px;font-size:18px;letter-spacing:.1em}.ed-sign i,.ed-ending i{font:italic 23px var(--western);color:#9c7c4c}
.ed-chapter{position:relative;isolation:isolate}.ed-chapter-head{max-width:1120px;margin:auto;display:flex;align-items:flex-start;gap:28px}.ed-chapter-head>span{font:italic 72px/.8 var(--western);color:#a4885c}.ed-chapter-head>div>p{font:10px var(--western);letter-spacing:.23em;color:#8c744f}.ed-chapter-head h2{font:300 clamp(29px,3vw,42px)/1.5 WeddingElegant,serif;letter-spacing:.08em;margin-top:8px}.ed-portrait{padding:100px 6vw;background:var(--ed-paper)}.ed-portrait-lead{max-width:1120px;margin:48px auto 0;display:grid;grid-template-columns:1.35fr .65fr;align-items:end}.ed-portrait-lead img{height:620px}.ed-portrait-lead blockquote{background:var(--ed-black);color:#eee0c8;padding:55px 45px;font-size:27px;line-height:1.8;letter-spacing:.08em;margin-left:-30px;margin-bottom:42px;position:relative}.ed-portrait-lead small{display:block;font:italic 16px/1.6 var(--western);color:#c8ae83;margin-top:20px}.ed-ribbon{max-width:1120px;margin:34px auto 0;display:grid;grid-template-columns:1fr .72fr 1fr 1fr;gap:18px;align-items:stretch}.ed-ribbon figure{height:330px;overflow:hidden}.ed-ribbon p{background:#d4b895;padding:35px 25px;font-size:17px;line-height:2;writing-mode:vertical-rl;letter-spacing:.15em}.ed-ribbon p span{font:9px var(--western);letter-spacing:.1em;margin-right:16px}.ed-orbit{position:absolute;width:660px;height:270px;border:1px solid #a47e4557;border-radius:50%;right:-260px;top:150px;transform:rotate(-28deg);z-index:-1;animation:ed-orbit calc(var(--beat)*24) ease-in-out infinite alternate}.ed-spark-field{position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,#a8844e80 1px,transparent 1.5px);background-size:83px 83px;mask-image:linear-gradient(90deg,transparent,#000,transparent);animation:spark-slide calc(var(--beat)*18) linear infinite}
.ed-field{background:var(--ed-black);color:#ecdfca}.ed-field-hero{height:95svh;min-height:620px;position:relative;overflow:hidden}.ed-field-hero img{will-change:transform;transform:scale(1.08)}.ed-field-hero:after,.ed-sunset-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,#111a 100%)}.ed-field-hero figcaption,.ed-sunset-hero figcaption{position:absolute;left:7vw;bottom:8vh;z-index:2;max-width:620px}.ed-field-hero span,.ed-sunset-hero span{font:10px var(--western);letter-spacing:.25em;color:#d6bd91}.ed-field-hero h2,.ed-sunset-hero h2{font:300 clamp(38px,5vw,72px)/1.3 WeddingElegant,serif;letter-spacing:.07em;margin:12px 0}.ed-field-hero p,.ed-sunset-hero p{font-size:17px;line-height:2;letter-spacing:.06em}.ed-field-hero p[lang=en]{font:italic 17px/1.6 var(--western);color:#d1b88e;margin-top:12px}.ed-field-cards{max-width:1120px;margin:auto;padding:90px 5vw 110px;display:grid;grid-template-columns:.9fr .55fr 1.1fr;gap:28px;align-items:start}.ed-field-cards figure{height:470px;overflow:hidden}.ed-field-cards .ed-card-tall{height:650px;grid-row:span 2}.ed-field-cards .ed-card-wide{grid-column:2/4;height:410px}.ed-field-cards figcaption{font-size:13px;color:#c8b99f;margin-top:-48px;padding:13px 18px;position:relative;background:#121311bb}.ed-field-note{height:390px;border:1px solid #ba9b6761;padding:45px 25px;display:flex;flex-direction:column;justify-content:space-between}.ed-field-note p{font:italic 34px/1.15 var(--western);color:#d5bd94}.ed-field-note span{font-size:14px;line-height:2;color:#c8baa3}
.ed-castle{background:#d4b895;padding:105px 0}.ed-castle-intro{max-width:780px;margin:0 auto 60px;padding:0 30px;text-align:center}.ed-castle-intro>p:first-child{font:10px var(--western);letter-spacing:.22em;color:#806642}.ed-castle-intro h2{font:300 clamp(34px,4.4vw,60px)/1.45 WeddingElegant,serif;letter-spacing:.08em;margin:20px 0}.ed-castle-intro>p:not(:first-child){font-size:16px;line-height:2.2;letter-spacing:.05em}.ed-castle-intro p[lang=en]{font:italic 17px/1.7 var(--western);color:#786145;margin-top:15px}.ed-castle-wide{height:80svh;min-height:580px;overflow:hidden}.ed-castle-wide img{transform:scale(1.08);will-change:transform}.ed-castle-grid{max-width:1040px;margin:-80px auto 0;position:relative;z-index:2;display:grid;grid-template-columns:1fr .8fr;gap:28px;align-items:start}.ed-castle-grid figure{height:580px;border:10px solid #e8dcc7}.ed-castle-grid blockquote{margin-top:130px;background:var(--ed-paper);padding:60px 40px;font-size:32px;line-height:1.7;letter-spacing:.2em;text-align:center}.ed-castle-grid small{display:block;font:9px var(--western);letter-spacing:.16em;margin-top:18px;color:#8c724b}.ed-castle-grid figure:nth-of-type(2){margin-top:-80px;height:480px}.ed-castle-grid .ed-castle-arch{height:600px;margin-top:30px;clip-path:inset(0 round 48% 48% 0 0)}
.ed-joy{background:#80342d;color:#f1e2cf;padding:110px 0 95px;overflow:hidden}.ed-joy-track{position:absolute;top:30px;white-space:nowrap;font:italic 52px var(--western);color:#e6caa21c;animation:ticker calc(var(--beat)*34) linear infinite}.ed-joy-head{max-width:760px;margin:0 auto 55px;text-align:center;padding:0 28px}.ed-joy-head>span{font:italic 70px var(--western);color:#dab784}.ed-joy-head h2{font:300 clamp(36px,4vw,56px)/1.4 WeddingElegant,serif;letter-spacing:.1em}.ed-joy-head p{font-size:16px;line-height:2;margin-top:20px}.ed-joy-head p[lang=en]{font:italic 17px var(--western);color:#d7bd98}.ed-joy-collage{max-width:1080px;margin:auto;display:grid;grid-template-columns:1fr 1.2fr .85fr;gap:20px;align-items:center;padding:0 25px}.ed-joy-collage figure{height:510px;overflow:hidden;transform:rotate(-2deg)}.ed-joy-collage figure:nth-child(2){height:650px;transform:rotate(1.5deg)}.ed-joy-collage figure:nth-child(3){height:470px;transform:rotate(-1deg)}
.ed-sunset{background:var(--ed-black);color:#eddfc8}.ed-sunset-hero{height:95svh;min-height:620px;position:relative;overflow:hidden}.ed-sunset-hero img{transform:scale(1.08);will-change:transform}.ed-sunset-story{max-width:1080px;margin:auto;padding:100px 35px 120px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}.ed-sunset-story figure{height:650px;overflow:hidden}.ed-sunset-story figcaption{font-size:13px;color:#cdbb9e;margin-top:-50px;padding:14px 18px;position:relative;background:#121311c4}.ed-sunset-words{padding:80px 30px;border:1px solid #ba99645e;min-height:480px;display:flex;flex-direction:column;justify-content:space-between}.ed-sunset-words p{font:italic 29px/1.35 var(--western);color:#d2b88d}.ed-sunset-words span{font-size:17px;line-height:2}.ed-sunset-story .ed-sunset-wide{grid-column:1/-1;height:70svh;min-height:520px;margin-top:20px}
.ed-details{position:relative;isolation:isolate;text-align:center;padding:115px 25px;background:#e8dcc7}.ed-details>h2{font:300 clamp(36px,4vw,55px)/1.5 WeddingElegant,serif;letter-spacing:.1em;margin:15px 0}.ed-details>p[lang=en]{font:italic 18px var(--western);color:#8b714a}.ed-date{display:flex;justify-content:center;align-items:center;gap:20px;margin:40px 0 30px}.ed-date strong{font:400 100px/.8 var(--western)}.ed-date span{font:10px/1.5 var(--western);letter-spacing:.15em;text-align:left}.ed-details dl{max-width:620px;margin:35px auto 0}.ed-details dl>div{display:grid;grid-template-columns:130px 1fr;padding:22px 0;border-top:1px solid #9d7d4d4a;text-align:left}.ed-details dt{font-size:14px}.ed-details dt small{display:block;font:9px var(--western);letter-spacing:.16em;color:#8e7045}.ed-details dd{margin:0;text-align:right;font-size:20px}.ed-details dd time{font:35px var(--western)}.ed-details dd small{font-size:13px;margin-left:10px}.ed-details-sky{position:absolute;inset:0;z-index:-1;overflow:hidden}.ed-details-sky:after{content:'';position:absolute;width:100%;height:400px;border:1px solid #aa864d3b;border-radius:50%;left:-50%;top:15%;animation:ed-orbit calc(var(--beat)*30) ease-in-out infinite alternate}.ed-details-sky i:nth-child(1){left:7%;top:20%}.ed-details-sky i:nth-child(2){left:92%;top:38%}.ed-details-sky i:nth-child(3){left:14%;top:79%}.ed-details-sky i:nth-child(4){left:87%;top:87%}.ed-ending{background:var(--ed-black);color:#efe0c6;text-align:center;padding:105px 25px}.ed-ending>p:first-child{font-size:13px;letter-spacing:.2em;color:#bda67f}.ed-ending h2{font:300 clamp(36px,5vw,64px)/1.5 WeddingElegant,serif;letter-spacing:.12em;margin:20px 0}.ed-ending p[lang=en]{font:italic 14px var(--western);letter-spacing:.18em;color:#bea67d}.ed-ending strong{display:block;font-weight:300;font-size:21px;letter-spacing:.13em;margin-top:40px}.ed-ending a{display:inline-block;font-size:12px;color:#bca57d;margin-top:40px;border-bottom:1px solid #bca57d}.editorial footer{background:var(--ed-black);color:#a9977e;padding:0 20px 90px}
.ed-reveal{opacity:0;transform:translateY(38px);transition:opacity 1.1s ease,transform 1.1s cubic-bezier(.18,.7,.25,1)}.ed-reveal.ed-in{opacity:1;transform:none}.ed-chapter img{transition:transform calc(var(--beat)*2.5) ease}.ed-chapter figure:hover img{transform:scale(1.025)}
@keyframes ed-twinkle{50%{opacity:.25;transform:scale(.65)}}@keyframes ed-orbit{to{transform:rotate(-8deg) translateY(30px)}}@keyframes ed-shoot{0%,83%{opacity:0;transform:translate(-60px,-30px) rotate(22deg)}86%{opacity:.8}94%,100%{opacity:0;transform:translate(650px,260px) rotate(22deg)}}@keyframes photo-shine{0%,68%{transform:translateX(-120%)}92%,100%{transform:translateX(120%)}}@keyframes spark-slide{to{background-position:83px -83px}}@keyframes ticker{to{transform:translateX(-50%)}}
.motion-paused .editorial *,.motion-paused .editorial *:before,.motion-paused .editorial *:after{animation-play-state:paused!important}.motion-paused .ed-reveal{opacity:1;transform:none;transition:none}.motion-paused [data-parallax] img{transform:scale(1.03)!important}
@media(max-width:700px){.ed-cover{grid-template-columns:1fr;grid-template-rows:auto auto auto auto;padding:18px 20px 32px}.ed-cover-meta{font-size:9px;letter-spacing:.12em}.ed-cover-title{text-align:center;margin-top:18px}.ed-cover-title>p{font-size:9px}.ed-cover h1{font-size:clamp(58px,19vw,78px);margin:17px 0}.ed-cover h2{font-size:17px}.ed-cover-photo{height:auto;width:min(100%,325px);aspect-ratio:2/3;margin:10px auto}.ed-cover-bottom{display:block;text-align:center}.ed-cover-bottom p{font-size:13px;line-height:2;margin-bottom:14px}.ed-cover-bottom a{display:inline-flex}.ed-letter{grid-template-columns:1fr}.ed-letter-visual{min-height:0;height:52svh}.ed-letter-copy{padding:55px 28px 65px}.ed-letter h2{font-size:33px}.ed-letter-copy>p:not([lang=en]):not(.ed-index):not(.ed-sign){font-size:15px}.ed-portrait{padding:65px 22px}.ed-chapter-head{gap:14px}.ed-chapter-head>span{font-size:48px}.ed-chapter-head h2{font-size:26px}.ed-portrait-lead{display:block;margin-top:30px}.ed-portrait-lead img{height:auto;aspect-ratio:1.45/1}.ed-portrait-lead blockquote{margin:-20px 15px 0;padding:28px 24px;font-size:20px}.ed-ribbon{grid-template-columns:1fr 1fr;gap:12px}.ed-ribbon figure{height:auto;aspect-ratio:2/3}.ed-ribbon p{min-height:270px;padding:24px 16px;font-size:15px}.ed-field-hero,.ed-sunset-hero{height:82svh;min-height:570px}.ed-field-hero figcaption,.ed-sunset-hero figcaption{left:25px;right:25px;bottom:45px}.ed-field-hero h2,.ed-sunset-hero h2{font-size:35px}.ed-field-hero p,.ed-sunset-hero p{font-size:14px}.ed-field-cards{padding:55px 22px 70px;grid-template-columns:1fr 1fr;gap:14px}.ed-field-cards figure,.ed-field-cards .ed-card-tall{height:auto;aspect-ratio:2/3;grid-row:auto}.ed-field-note{height:auto;min-height:275px;padding:28px 18px}.ed-field-note p{font-size:26px}.ed-field-cards .ed-card-wide{grid-column:1/-1;height:auto;aspect-ratio:1.45/1}.ed-castle{padding:65px 0}.ed-castle-intro{padding:0 26px;margin-bottom:40px;text-align:left}.ed-castle-intro h2{font-size:33px}.ed-castle-wide{height:62svh;min-height:470px}.ed-castle-grid{margin:-35px 18px 0;grid-template-columns:1fr 1fr;gap:13px}.ed-castle-grid figure{height:auto;aspect-ratio:2/3;border-width:5px}.ed-castle-grid blockquote{margin-top:60px;padding:30px 12px;font-size:19px;letter-spacing:.1em}.ed-castle-grid figure:nth-of-type(2){margin-top:-25px;height:auto}.ed-castle-grid .ed-castle-arch{height:auto;margin-top:15px}.ed-joy{padding:85px 0 70px}.ed-joy-track{font-size:32px}.ed-joy-head{margin-bottom:35px}.ed-joy-head>span{font-size:53px}.ed-joy-head h2{font-size:31px}.ed-joy-collage{grid-template-columns:.9fr 1.1fr;gap:12px;padding:0 18px}.ed-joy-collage figure,.ed-joy-collage figure:nth-child(2){height:auto;aspect-ratio:2/3}.ed-joy-collage figure:nth-child(3){height:auto;aspect-ratio:1.5/1;grid-column:1/-1;margin:0 25px}.ed-sunset-story{padding:65px 22px 80px;gap:14px}.ed-sunset-story figure{height:auto;aspect-ratio:2/3}.ed-sunset-words{padding:35px 18px;min-height:340px}.ed-sunset-words p{font-size:20px}.ed-sunset-words span{font-size:14px}.ed-sunset-story .ed-sunset-wide{height:auto;min-height:0;aspect-ratio:1.45/1}.ed-details{padding:75px 24px}.ed-details>h2{font-size:33px}.ed-date strong{font-size:82px}.ed-details dl>div{grid-template-columns:95px 1fr}.ed-details dd{font-size:16px}.ed-details dd time{font-size:30px}.ed-ending{padding:75px 24px}.ed-ending h2{font-size:38px}.ed-orbit{width:430px;right:-300px}.music-control{right:12px}.motion-toggle{left:12px}}

/* Readable chapter label and bilingual date. */
.ed-field-hero figcaption>span{font:600 14px/1.4 var(--western);letter-spacing:.25em;color:#f1d8a9;text-shadow:0 2px 14px #000}
.ed-date span b{display:block;font:300 15px/1.7 WeddingElegant,serif;letter-spacing:.12em;color:#5b4b36;white-space:nowrap}
@media(max-width:700px){.ed-field-hero figcaption>span{font-size:12px;letter-spacing:.2em}.ed-date{gap:13px}.ed-date span b{font-size:13px;letter-spacing:.08em}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.ed-reveal{opacity:1;transform:none}[data-parallax] img{transform:scale(1.03)!important}}
