:root{color-scheme:dark;--bg:#29151e;--text:#f6e8dc;--rose:#dba6a8;--muted:#bb9fa4;--line:rgba(237,202,190,.19)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}.grain{position:fixed;inset:0;pointer-events:none;opacity:.035;z-index:9;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.6' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}header{margin:0 6%;height:108px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}.monogram{font-family:Georgia,serif;font-size:27px;text-decoration:none;color:var(--text);letter-spacing:3px}.monogram span{color:var(--rose);font-style:italic;font-size:17px;margin:0 7px}.header-note{color:var(--muted);letter-spacing:3px;font-size:9px}.language{background:transparent;color:var(--text);border:1px solid var(--line);border-radius:30px;padding:10px 16px;cursor:pointer;font-size:11px;letter-spacing:1px}.language span{padding-left:14px;color:var(--rose)}main{overflow:hidden}.hero{display:grid;grid-template-columns:1.1fr 1fr;max-width:1320px;margin:auto;padding:80px 6% 45px;min-height:680px;align-items:center}.hero-copy{position:relative;z-index:2}.eyebrow{font-size:10px;letter-spacing:2.6px;font-weight:400;color:var(--rose);margin:0 0 28px}.spark{font-size:18px;vertical-align:middle;margin-right:12px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(65px,7.9vw,112px);line-height:1.04;font-weight:400;letter-spacing:-5px;margin:0 0 30px}h1 em{font-weight:400;color:var(--rose)}.intro{color:#d3bfc0;max-width:300px;font-size:15px;line-height:1.8;margin-bottom:40px}.date-line{display:flex;align-items:center;width:290px;gap:18px;border-top:1px solid var(--line);padding-top:22px}.date-number{font-family:Georgia,serif;font-size:54px;line-height:1}.date-line div{display:grid;gap:8px}.date-line strong{font-weight:400;font-size:11px;letter-spacing:3px}.date-line div>span{color:var(--muted);font-size:9px;letter-spacing:1.5px}.date-star{font-size:38px;color:var(--rose);margin-left:auto}.art{position:relative;height:550px;isolation:isolate}.halo{position:absolute;inset:0 -15% 0;background:radial-gradient(ellipse,rgba(172,86,102,.19),transparent 65%);z-index:-1}.flower{width:100%;height:100%;position:absolute;top:-28px;left:5%;filter:drop-shadow(8px 20px 25px rgba(9,3,7,.25));transform:rotate(8deg);animation:sway 13s ease-in-out infinite}.orbit{position:absolute;border:1px solid var(--line);width:360px;height:440px;border-radius:50%;left:14%;top:20px;transform:rotate(30deg);opacity:.65}.orbit-two{transform:rotate(-28deg);width:390px;height:390px;top:65px;opacity:.35}.art-star{position:absolute;color:#dbb398;font-size:30px}.star-a{top:70px;right:3%}.star-b{bottom:100px;left:6%;font-size:20px}.art-caption{position:absolute;bottom:0;right:0;writing-mode:vertical-rl;font-size:8px;letter-spacing:2.7px;color:var(--muted)}.countdown-section{max-width:1160px;margin:0 auto;padding:35px 30px 45px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.countdown-top{display:flex;align-items:center;justify-content:space-between}.countdown-top .eyebrow{margin:0}.live{font-size:8px;color:var(--muted);letter-spacing:1.7px;display:flex;align-items:center;gap:10px}.live i{display:block;width:4px;height:4px;border-radius:50%;background:var(--rose);box-shadow:0 0 10px #dba6a8}.countdown{display:flex;justify-content:center;align-items:start;gap:38px;padding:38px 0 26px}.countdown>div{display:flex;flex-direction:column;align-items:center;min-width:110px}.digits{font-family:Georgia,serif;font-variant-numeric:tabular-nums;font-size:88px;font-weight:400;letter-spacing:-3px;line-height:1.15}.unit{color:var(--muted);font-size:8px;letter-spacing:3px;margin-top:14px}.colon{font-size:35px;font-family:Georgia,serif;color:#835260;padding-top:15px}.timer-note{font:italic 17px Georgia,serif;color:var(--rose);text-align:center;margin:10px 0 0}.letter-section{max-width:1160px;margin:auto;padding:100px 30px;display:grid;grid-template-columns:1fr 2fr;gap:40px}.section-mark{font-size:9px;letter-spacing:2px;color:var(--muted);padding-top:12px}.prelude{font-family:Georgia,serif;font-size:19px;font-style:italic;color:var(--rose);margin:0 0 22px}h2{font:400 58px/1.1 Georgia,serif;letter-spacing:-2px;margin:0 0 28px}.scene-text{font-size:14px;line-height:1.9;color:#d3bfc0;max-width:470px}.letter-button{background:none;border:0;border-bottom:1px solid #ae7e87;color:var(--text);font-size:12px;padding:18px 0 14px;margin-top:14px;cursor:pointer;display:flex;gap:70px;align-items:center}.letter-button>span:last-child{font-size:20px;color:var(--rose)}button:hover{color:var(--rose)}button:focus-visible,a:focus-visible{outline:2px solid var(--rose);outline-offset:6px}.letter{max-width:510px;background:#ead9cc;color:#432432;margin-top:34px;padding:36px 40px;box-shadow:8px 8px 0 #492632;transform:rotate(-1deg);font:16px/1.85 Georgia,serif}.letter[hidden]{display:none}.letter-flower{float:right;font-size:32px;color:#865768}.signature{font-style:italic;font-size:27px;text-align:right;margin-bottom:0}.closing{padding:70px 25px 95px;text-align:center;background:radial-gradient(ellipse at 50% 100%,#482430,transparent 70%)}.closing>span:first-child{color:var(--rose);font-size:25px}.closing p{font:italic 42px/1.35 Georgia,serif;margin:25px auto}.closing-date{font-size:9px;letter-spacing:3px;color:var(--rose)}footer{display:flex;justify-content:space-between;gap:20px;margin:0 6%;padding:27px 0;border-top:1px solid var(--line);font-size:8px;letter-spacing:2px;color:var(--muted)}.heart{margin:0 9px;font-size:14px;color:var(--rose)}@keyframes sway{0%,100%{transform:rotate(8deg)}50%{transform:rotate(4deg)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.flower{animation:none}}@media(min-width:1500px){.hero{padding-left:40px;padding-right:40px}}@media(max-width:800px){header{height:80px}.header-note{display:none}.hero{padding-top:48px;min-height:0;grid-template-columns:1fr 1fr;gap:0}.hero-copy{padding-bottom:20px}h1{font-size:68px;letter-spacing:-3px}.art{height:430px;width:120%;margin-left:-15%}.orbit{width:240px;height:330px;left:5%}.orbit-two{width:270px;height:270px;top:70px}.intro{font-size:13px}.date-line{width:245px}.countdown-section{margin:10px 6% 0;padding:25px 0 30px}.countdown{gap:18px}.countdown>div{min-width:75px}.digits{font-size:62px}.colon{font-size:25px;padding-top:8px}.letter-section{padding:70px 6%;grid-template-columns:1fr;gap:30px}.closing{padding-top:30px}.closing p{font-size:35px}}@media(max-width:530px){.hero{grid-template-columns:1fr;padding:46px 7% 25px;position:relative}.hero-copy{width:100%}h1{font-size:72px;letter-spacing:-3px}.intro{max-width:230px}.art{position:absolute;top:150px;right:-80px;width:230px;height:350px;opacity:.75;z-index:0;pointer-events:none}.flower{top:15px;left:0}.orbit{height:230px;width:180px;left:20px;top:60px}.orbit-two{height:210px;width:190px;top:70px;left:10px}.star-a{top:40px;right:50px;font-size:20px}.star-b{display:none}.art-caption{display:none}.date-line{width:230px;margin-top:45px}.date-number{font-size:45px}.countdown-top{align-items:flex-start;gap:15px}.countdown-top .eyebrow{font-size:8px;letter-spacing:1.6px}.live{font-size:6px;letter-spacing:1px;gap:6px}.countdown{gap:7px;padding-top:28px}.countdown>div{min-width:54px;flex:1}.digits{font-size:49px;letter-spacing:-2px}.colon{font-size:20px;padding-top:5px}.unit{font-size:6px;letter-spacing:1.6px}.timer-note{font-size:15px}h2{font-size:47px}.letter-section{padding-top:55px;padding-bottom:55px}.letter{padding:25px;font-size:15px}.closing p{font-size:29px}.closing-date{font-size:8px;letter-spacing:2px}footer{font-size:6px;letter-spacing:1px}.language{padding:8px 12px}}

/* New York → El Salvador: self-contained geographic route illustration. */
.journey-section{max-width:1160px;margin:0 auto;padding:85px 30px 10px}.journey-heading{display:flex;align-items:center;justify-content:space-between;gap:35px;margin-bottom:30px}.journey-heading .eyebrow{margin-bottom:16px}.journey-heading h2{font-size:42px;max-width:580px;margin:0;line-height:1.2}.journey-number{font:italic 21px Georgia,serif;white-space:nowrap;color:var(--rose)}.journey-number span{padding:0 18px;font-size:32px}.map-panel{border:1px solid var(--line);background:radial-gradient(ellipse at 65% 25%,#452534,#24151e 70%);border-radius:14px;overflow:hidden}.map-route-heading{display:flex;align-items:center;justify-content:center;gap:20px;padding:27px 15px 12px;font-size:10px;letter-spacing:2.6px;color:#ebc4be}.route-dots{letter-spacing:3px;color:#a97183;font-size:15px}.route-map{display:block;width:100%;height:auto;max-height:540px}.map-grid{stroke:#ae798b;opacity:.09;stroke-width:1}.country{fill:#5a3a46;stroke:#ab7e89;stroke-width:.7;stroke-opacity:.45}.destination-country{fill:#e1ad9d;stroke:#f2d2b9;stroke-width:1.4}.map-country-label{fill:#b3969b;font:10px Arial,sans-serif;letter-spacing:4px;opacity:.62}.ocean-label{fill:#9f7f8d;font:italic 11px Georgia,serif;letter-spacing:3px;opacity:.5}.flight-route{fill:none;stroke:#d7a0a7;stroke-width:1.5;stroke-dasharray:4 7;opacity:.4}.flight-trail{fill:none;stroke:#eec4a9;stroke-width:2;opacity:.9}.map-pin-halo{fill:#dba6a8;opacity:.12;stroke:#dba6a8;stroke-width:1}.map-pin{fill:#f6d7ba;stroke:#40232f;stroke-width:2}.city-label{fill:#ffe9ce;font:600 13px Arial,sans-serif;letter-spacing:2px}.person-label{fill:#d8a1aa;font:9px Arial,sans-serif;letter-spacing:2.8px}.plane-glow{stroke:#efd4b5;stroke-width:8;filter:url(#plane-glow);opacity:.3}.map-footer{border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 27px;background:#2b1822}.flight-status{font-size:11px;letter-spacing:.4px;color:#e2c2c0;display:flex;gap:10px;align-items:center}.status-dot{width:5px;height:5px;flex-shrink:0;background:#dba6a8;border-radius:50%;box-shadow:0 0 9px #ad7381}.flight-controls{display:flex;gap:16px}.flight-controls button{font-size:10px;color:#e4bcb5;cursor:pointer;padding:5px 0;background:none;border:0;border-bottom:1px solid #875c69}.map-caption{display:flex;justify-content:space-between;gap:20px;color:var(--muted);font:italic 12px/1.6 Georgia,serif;margin-top:16px}.map-caption span:last-child{font:8px/1.6 Arial,sans-serif;letter-spacing:.8px;white-space:nowrap}@media(max-width:800px){.journey-section{padding:65px 6% 0}.journey-heading h2{font-size:35px}.journey-number{font-size:16px}.journey-number span{padding:0 8px;font-size:22px}}@media(max-width:530px){.journey-section{padding-top:50px}.journey-heading{display:block}.journey-heading h2{font-size:33px;max-width:300px}.journey-number{display:block;font-size:14px;margin-top:22px}.map-route-heading{font-size:7px;letter-spacing:1px;gap:8px;padding-top:20px}.route-dots{font-size:11px;letter-spacing:1px}.map-footer{padding:15px 13px;gap:15px;align-items:flex-start;flex-direction:column}.flight-status{font-size:10px}.flight-controls{align-self:flex-end;margin-top:-3px}.map-caption{font-size:11px;gap:15px}.map-country-label{font-size:13px;letter-spacing:2px}.city-label{font-size:17px;letter-spacing:1px}.person-label{font-size:12px;letter-spacing:1px}.ocean-label{font-size:13px;letter-spacing:1px}}

/* Refinement: a cinematic map and a cream travel keepsake. */
.journey-link{display:inline-flex;align-items:center;gap:25px;color:var(--rose);font-size:11px;text-decoration:none;border-bottom:1px solid #855763;padding:5px 0 12px;margin:0 0 4px}.journey-link span:last-child{font-size:20px}.hero{min-height:620px;padding-top:60px;padding-bottom:35px}.art{height:490px}.date-line{margin-top:25px}.journey-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:24px;align-items:stretch}.map-panel{position:relative;background:#2a1e2b;border-color:#845b6c55;border-radius:16px}.map-route-heading{padding:25px 15px 15px}.route-map{height:405px;max-height:none}.country{fill:#76515f;stroke:#e3bac0;stroke-opacity:.25;stroke-width:1}.destination-country{fill:#f5caa5;stroke:#ffe1bb}.map-country-label{fill:#d2b0b9;opacity:.55;font-size:10px}.ocean-label{fill:#c8b4c8;opacity:.42;font-size:11px;letter-spacing:3px}.map-grid{opacity:.1;stroke:#dcc3d4}.flight-route{stroke:#eac0c3;opacity:.4;stroke-width:1.7;stroke-dasharray:3 6}.flight-trail{stroke:url(#route-light);stroke-width:2.8;filter:drop-shadow(0 0 4px #efc4af55)}.map-pin-halo{fill:#efb4b7;stroke:#ecc7b5;stroke-width:1.3;opacity:.2}.map-pin{fill:#ffe2b9;stroke:#49303d;stroke-width:2}.city-label{font-size:12px;letter-spacing:1.4px;fill:#ffecda}.person-label{font-size:9px;letter-spacing:2px;fill:#e3b0ba}.destination-aura{fill:#d49985;opacity:.06}.destination-ring{fill:none;stroke:#e4ad92;stroke-width:1;opacity:.09}.map-footer{background:#2b1c28;padding:19px 23px}.landing-heart{position:absolute;top:69%;left:35%;font:50px Georgia,serif;color:#ffddbf;opacity:0;transform:translateY(10px) scale(.7);transition:opacity .7s,transform .9s;pointer-events:none;text-shadow:0 0 25px #f6bf96}.landed .landing-heart{opacity:1;transform:translateY(-20px) scale(1)}.map-panel.landed{box-shadow:0 0 55px #c98e7518}.travel-card{background:#efe0d3;color:#452735;border-radius:16px;padding:24px 25px 0;position:relative;overflow:hidden;display:flex;flex-direction:column;box-shadow:8px 10px 0 #180e141c}.ticket-top{font-size:7px;letter-spacing:1.3px;display:flex;align-items:center;justify-content:space-between;padding-bottom:22px;border-bottom:1px solid #6f42532b}.ticket-top>span:last-child{font-size:17px;color:#9f6b76}.ticket-city{padding:22px 0 0;position:relative}.city-small{font-size:7px;letter-spacing:2px;color:#9a6b77}.ticket-city h3{font:400 34px/1.2 Georgia,serif;letter-spacing:-1px;margin:6px 0 7px}.ticket-person{font-size:8px;letter-spacing:2px;color:#8d5b6a}.city-silhouette{width:100%;height:65px;fill:none;stroke:#a77b80;stroke-width:1.1;display:block;margin-top:8px;opacity:.7}.ticket-connection{display:flex;align-items:center;gap:10px;color:#a6727d;margin:6px -25px 0}.connection-line{border-top:1px dashed #b48a8c88;flex:1}.ticket-connection>span:nth-child(2){font-size:17px;transform:rotate(25deg)}.arrival-city{padding-top:18px}.landscape{height:55px;margin-top:7px}.ticket-bottom{margin:auto -25px 0;padding:16px 13px;background:#e4cec2;text-align:center;color:#714557;font:italic 14px Georgia,serif}.flight-strip{display:flex;align-items:center;gap:14px;margin-top:27px}.flight-phase{display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:1.8px;color:#8d707d;transition:color .5s}.phase-number{width:25px;height:25px;border:1px solid #775465;border-radius:50%;display:grid;place-items:center;font-size:8px;letter-spacing:0}.phase-active{color:#f0cab2}.phase-active .phase-number{background:#efc8af;color:#412433;border-color:#efc8af}.phase-done{color:#dba6a8}.phase-connector{flex:1;height:1px;background:var(--line)}.flight-progress-track{height:2px;background:#63414f44;margin-top:20px;overflow:hidden}.flight-progress-track span{display:block;width:0;height:100%;background:linear-gradient(90deg,#bd7d92,#f0ceaa)}.map-caption{margin-top:16px}.journey-heading h2{font-size:44px;letter-spacing:-1.6px}.journey-section{padding-top:75px}.flight-controls button{padding:5px 1px;font-size:10px}.flight-controls button:disabled{opacity:.5;cursor:default}@media(max-width:1000px){.journey-layout{grid-template-columns:minmax(0,1fr) 230px;gap:16px}.travel-card{padding-left:20px;padding-right:20px}.ticket-city h3{font-size:29px}.ticket-bottom{margin-left:-20px;margin-right:-20px}.route-map{height:390px}.ticket-top{font-size:6px}}@media(max-width:700px){.journey-layout{grid-template-columns:1fr}.travel-card{display:grid;grid-template-columns:1fr 1fr;gap:0 25px;padding:20px 23px 0}.ticket-top{grid-column:1/-1;padding-bottom:15px;font-size:8px}.ticket-connection{display:none}.ticket-city{padding:18px 0 0}.ticket-city h3{font-size:28px}.ticket-bottom{grid-column:1/-1;margin:10px -23px 0;padding:14px;font-size:15px}.city-silhouette{height:55px}.landscape{height:55px;margin-top:8px}.route-map{height:auto;max-height:440px}.landing-heart{left:34%;top:66%}.journey-heading h2{font-size:36px}.flight-phase{font-size:7px;gap:7px;letter-spacing:1px}.phase-number{width:23px;height:23px;flex-shrink:0}.flight-strip{gap:9px}.map-footer{padding:17px 16px;flex-direction:row;align-items:center}.flight-status{font-size:10px;max-width:210px}.flight-controls{gap:12px;align-self:center;margin:0}.flight-controls button{font-size:9px}.map-caption{font-size:11px}.hero{padding-top:46px}.art{height:350px}.journey-number{display:none}.journey-heading{margin-bottom:25px}}@media(max-width:400px){.map-footer{align-items:flex-start;flex-direction:column}.flight-controls{align-self:flex-end;margin-top:-4px}.flight-phase{letter-spacing:.5px}.ticket-city h3{font-size:25px}.travel-card{gap:0 18px}.map-route-heading{font-size:7px}}@media(prefers-reduced-motion:reduce){.landing-heart{transition:none}}

/* A first-meeting story, with a quiet opening and an embrace as the payoff. */
body.cover-open{overflow:hidden}.story-cover{position:fixed;inset:0;z-index:50;background:radial-gradient(ellipse at 50% 55%,#57303d,#25151e 68%);display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:35px;transition:opacity 1s,visibility 1s;overflow:hidden}.story-cover.is-opened{opacity:0;visibility:hidden;pointer-events:none}.cover-mark{font:26px Georgia,serif;letter-spacing:5px;margin-bottom:48px;color:#efdbcd;z-index:1}.cover-mark em{font-style:normal;color:#dba6a8;font-size:21px;margin:0 14px}.story-cover .eyebrow{font-size:9px;z-index:1}.story-cover h2{font-size:clamp(48px,7vw,82px);line-height:1.13;white-space:pre-line;letter-spacing:-2px;position:relative;margin:0 0 24px}.story-cover>p:not(.eyebrow){color:#d7b9ba;font:italic 17px/1.5 Georgia,serif;z-index:1}.begin-story{display:flex;align-items:center;gap:45px;background:#ecd8c8;color:#432635;border:0;border-radius:40px;padding:17px 25px;margin-top:20px;font-size:12px;cursor:pointer;z-index:1;box-shadow:0 10px 40px #10080e44}.begin-story:hover{background:#f6e4d7;color:#432635}.begin-story>span:last-child{font-size:21px}.begin-quietly{background:none;border:0;border-bottom:1px solid #99707b55;color:#c99fa7;font-size:11px;cursor:pointer;padding:10px 1px;margin-top:14px;z-index:1}.cover-date{position:absolute;bottom:35px;color:#b9909e;letter-spacing:2.5px;font-size:8px}.cover-orbit{position:absolute;width:520px;height:620px;border:1px solid #dab5b819;border-radius:50%;transform:rotate(-25deg)}.cover-orbit:after{content:'';position:absolute;inset:15px -30px;border:1px solid #dab5b80d;border-radius:50%;transform:rotate(45deg)}.floating-light{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.floating-light i{position:absolute;width:3px;height:3px;background:#efd2ad;border-radius:50%;box-shadow:0 0 9px #efc6a8;opacity:0;animation:float-light 17s linear infinite}.floating-light i:nth-child(1){left:9%;animation-delay:0s}.floating-light i:nth-child(2){left:29%;animation-delay:5s;width:2px;height:2px}.floating-light i:nth-child(3){left:48%;animation-delay:11s}.floating-light i:nth-child(4){left:67%;animation-delay:3s;width:2px;height:2px}.floating-light i:nth-child(5){left:83%;animation-delay:8s}.floating-light i:nth-child(6){left:94%;animation-delay:13s}header,main,footer{position:relative}.story-timeline{max-width:1160px;margin:auto;padding:85px 30px 10px}.story-timeline>h2{font-size:46px;max-width:650px;line-height:1.2}.timeline-chapters{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;margin-top:48px;position:relative}.timeline-chapters:before{content:'';position:absolute;left:10px;right:10px;top:20px;height:1px;background:linear-gradient(90deg,#8d5b6c44,#e3baa655,#8d5b6c44)}.story-chapter{position:relative}.chapter-icon{position:relative;width:40px;height:40px;display:grid;place-items:center;background:#29151e;font:21px Georgia,serif;color:#e6b8ac;border:1px solid #a87a8844;border-radius:50%;margin-bottom:28px}.chapter-date{font-size:8px;letter-spacing:2.3px;color:var(--rose)}.story-chapter h3{font:400 25px/1.25 Georgia,serif;margin:12px 0;color:#f1dbcc;letter-spacing:-.4px}.story-chapter p{font-size:13px;line-height:1.9;color:#bfa3ac;max-width:285px;margin:0}.embrace-section{max-width:1160px;margin:0 auto;padding:95px 30px 20px;text-align:center}.embrace-section h2{font:italic 51px/1.2 Georgia,serif;white-space:pre-line;color:#efcfbd;letter-spacing:-1.5px;margin:0}.embrace-stage{position:relative;margin-top:12px;isolation:isolate}.embrace-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,#99596b24,transparent 55%);z-index:-1}.embrace-illustration{width:min(100%,800px);height:auto;display:block;margin:0 auto}.ground-shadow{fill:#100911;opacity:.22}.person-left{transform:translateX(-145px);transition:transform 3.6s cubic-bezier(.4,0,.2,1)}.person-right{transform:translateX(145px);transition:transform 3.6s cubic-bezier(.4,0,.2,1)}.embrace-playing .person-left,.embrace-playing .person-right{transform:translateX(0)}.hug-arm{opacity:0;transition:opacity 1.2s}.rest-arm{opacity:1;transition:opacity 1s}.hugged .hug-arm{opacity:1}.hugged .rest-arm{opacity:0}.hug-halo{opacity:.1;transition:opacity 2s}.hugged .hug-halo{opacity:1}.embrace-hearts{opacity:0;transition:opacity 1s}.hugged .embrace-hearts{opacity:1}.hug-heart{transform-box:fill-box;transform-origin:center;opacity:0}.hugged .hug-heart{animation:heart-rise 6.5s ease-out infinite}.hugged .h2{animation-delay:1.5s}.hugged .h3{animation-delay:3.2s}.hug-spark{opacity:0;transition:opacity 2s}.hugged .hug-spark{opacity:.45}.embrace-caption{font:italic 21px/1.6 Georgia,serif;color:#d1a4ac;margin:0 auto 18px;max-width:520px}.embrace-replay{font-size:10px;background:none;border:0;border-bottom:1px solid #855d6c;color:#c69ca7;padding:7px 0;cursor:pointer}.music-player{position:fixed;left:24px;bottom:20px;z-index:25;background:#2d1c26ed;border:1px solid #d3a3a044;border-radius:16px;backdrop-filter:blur(16px);box-shadow:0 8px 30px #10090e44;padding:12px 16px;display:grid;grid-template-columns:auto 55px;gap:6px 16px;opacity:0;transform:translateY(15px);transition:opacity .7s,transform .7s;pointer-events:none}.story-entered .music-player{opacity:1;transform:translateY(0);pointer-events:auto}.music-player button{border:0;background:none;color:#efd6c4;display:flex;align-items:center;gap:11px;padding:0;font-size:11px;cursor:pointer;text-align:left}.music-bars{display:flex;gap:3px;align-items:center;height:15px}.music-bars i{width:2px;height:5px;background:#d3a1ab;border-radius:2px}.music-on .music-bars i{animation:music-bar 1.2s ease-in-out infinite}.music-on .music-bars i:nth-child(2){animation-delay:.3s}.music-on .music-bars i:nth-child(3){animation-delay:.6s}.music-on .music-bars i:nth-child(4){animation-delay:.15s}.music-detail{font-size:6px;letter-spacing:1px;color:#ad8796;grid-column:1}.music-player input{grid-column:2;grid-row:1/3;width:55px;accent-color:#d5a4a4;align-self:center;height:15px}.letter-section{padding-top:75px}footer{padding-bottom:85px}.story-chapter,.embrace-section{scroll-margin-top:35px}@keyframes float-light{0%{bottom:-3%;opacity:0;transform:translateX(0)}10%{opacity:.3}85%{opacity:.2}100%{bottom:102%;opacity:0;transform:translateX(45px)}}@keyframes heart-rise{0%{opacity:0;transform:translateY(7px) scale(.75)}20%{opacity:.75}75%{opacity:.3}100%{opacity:0;transform:translateY(-65px) scale(1.15)}}@keyframes music-bar{0%,100%{height:4px}50%{height:14px}}@media(max-width:700px){.story-timeline{padding:65px 6% 0}.story-timeline>h2{font-size:35px}.timeline-chapters{grid-template-columns:1fr;gap:36px;margin-top:30px;padding-left:0}.timeline-chapters:before{left:18px;top:15px;bottom:30px;width:1px;height:auto;right:auto}.story-chapter{padding-left:62px}.chapter-icon{position:absolute;left:0;top:0;width:37px;height:37px;margin:0}.story-chapter h3{font-size:25px;margin-top:9px}.story-chapter p{max-width:none}.embrace-section{padding:75px 5% 10px}.embrace-section h2{font-size:37px}.embrace-illustration{width:120%;max-width:none;margin-left:-10%;overflow:visible}.embrace-caption{font-size:18px;max-width:290px}.music-player{left:14px;bottom:12px;max-width:calc(100vw - 28px);padding:11px 14px;grid-template-columns:auto 45px;gap:6px 12px}.music-player input{width:45px}.music-detail{font-size:5.5px}.cover-mark{margin-bottom:35px}.story-cover h2{font-size:51px}.story-cover{padding:25px}.cover-date{font-size:6.5px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){.floating-light{display:none}.person-left,.person-right{transition:none;transform:none}.hug-arm,.rest-arm,.hug-halo,.embrace-hearts,.hug-spark,.story-cover,.music-player{transition:none}.hugged .hug-heart{animation:none;opacity:.7}.music-on .music-bars i{animation:none;height:10px}}

.embrace-link{display:block;width:fit-content;margin:29px auto 22px;color:#e4b6b3;font:italic 20px Georgia,serif;text-decoration:none;border-bottom:1px solid #aa79855c;padding-bottom:10px}.embrace-link:hover{color:#f9ddc5}

.music-player input{min-height:26px}.begin-quietly{min-height:32px}

.embrace-illustration{width:min(100%,620px)}@media(max-width:700px){.embrace-illustration{width:100%;max-width:620px;margin:0 auto}}

/* Astra story revision — October 28. A personal botanical chapter and a quiet climax. */
:root{--marigold:#e6b66c}
.header-controls{display:flex;gap:14px;align-items:center}
.motion-toggle{font:10px Arial,sans-serif;letter-spacing:.3px;color:#ddbdc3;padding:12px 5px;min-height:44px;border:0;background:none;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #f1cf9c;outline-offset:5px}
button{touch-action:manipulation}
.flower.marigold-flower{filter:drop-shadow(0 20px 35px #11091044);animation-duration:14s}
.art-caption{color:#d9bb91}
.story-timeline{padding-top:90px;padding-bottom:75px}
.story-timeline>h2{max-width:780px;font-size:clamp(35px,4.3vw,54px);letter-spacing:-1.5px}
.timeline-chapters{gap:50px}
.story-chapter p{font-size:14px;color:#cdb4b9;line-height:1.85}
.story-chapter h3{font-size:25px}
.marigold-memory{max-width:1100px;margin:20px auto 30px;display:grid;grid-template-columns:1fr 1fr;align-items:center;min-height:530px;border-radius:3px;background:#ecdfcb;color:#4b3038;position:relative;overflow:hidden}
.memory-art{position:relative;min-width:0;align-self:stretch;background:radial-gradient(ellipse at 50% 45%,#f5ead5,transparent 65%);display:flex;align-items:center;justify-content:center;padding:10px 0 45px}
.marigold-field{width:108%;max-width:none;flex-shrink:0;height:auto;overflow:visible}
.botanical-label{position:absolute;bottom:30px;font:8px Arial,sans-serif;letter-spacing:2px;color:#846a59;text-align:center}
.memory-copy{position:relative;padding:65px 55px 65px 25px}
.memory-copy .eyebrow{color:#8a534e;font-size:9px;margin-bottom:26px}
.memory-copy h2{font:400 clamp(34px,3.6vw,45px)/1.13 Georgia,serif;letter-spacing:-1.7px;margin:0 0 28px;white-space:pre-line}
.memory-copy>p:not(.eyebrow){font:14px/1.85 Arial,sans-serif;color:#6b514d;max-width:375px;margin:0 0 19px}
.memory-copy>.memory-thought{font-family:Georgia,serif!important;font-size:19px!important;line-height:1.55!important;color:#61433f!important}
.memory-date{display:block;font-size:8px;letter-spacing:2px;color:#8b5e52;margin-top:30px}
.journey-section{padding-top:75px}
.journey-heading h2{font-size:clamp(35px,4.3vw,49px);line-height:1.12;max-width:720px}
.journey-layout{grid-template-columns:minmax(0,1fr) 238px;gap:20px}
.route-map{height:350px}
.travel-card{padding:20px 22px 0;border-radius:12px;background:#e9dccc;box-shadow:none}
.ticket-city h3{font-size:29px}
.ticket-top{padding-bottom:16px;font-size:6.5px}
.ticket-city{padding-top:17px}.city-silhouette{height:48px}.landscape{height:45px}
.ticket-bottom{margin-left:-22px;margin-right:-22px;padding:15px 12px;font-size:13px}
.flight-strip{margin-top:18px}.flight-phase{letter-spacing:1.2px}.flight-progress-track{margin-top:14px;height:1px}
.map-caption{color:#bca5ac}.map-caption span:first-child{font-size:12px}
.embrace-link{margin-top:36px;margin-bottom:22px;font-size:19px}
.embrace-section{padding-top:105px;padding-bottom:55px}
.embrace-section .eyebrow{font-size:9px;letter-spacing:2.4px}
.embrace-section h2{font-size:clamp(38px,4.9vw,60px);line-height:1.14;color:#f1dac8}
.embrace-stage{margin-top:18px}
.embrace-illustration{width:min(100%,580px)}
.hug-spark{display:none}
.hugged .hug-heart{animation:heart-rise 8s ease-out 2}
.hugged .h2{animation-delay:1.8s}.hugged .h3{animation-delay:3.5s}
.embrace-caption{font-size:19px;max-width:470px;color:#d3b3bb}
.embrace-replay{min-height:40px;font-size:11px}
.heartbeat-moment{max-width:650px;margin:65px auto 0;padding:50px 30px 10px;position:relative}
.heartbeat-moment:before{content:'';position:absolute;top:0;left:calc(50% - 50px);width:100px;height:1px;background:linear-gradient(90deg,transparent,#d7aa8b88,transparent)}
.heartbeat-symbol{display:block;margin:0 auto 28px;font:40px Georgia,serif;color:#e4bf9f;transform-origin:center;animation:quiet-pulse 5s ease-in-out infinite}
.heartbeat-moment .eyebrow{font-size:8px;letter-spacing:2.4px;color:#c6a1a8;margin-bottom:24px}
.heartbeat-moment blockquote{font:italic clamp(25px,3vw,35px)/1.45 Georgia,serif;color:#f0d8c5;margin:0 auto 25px;max-width:550px;letter-spacing:-.5px}
.heartbeat-answer{font:15px/1.9 Arial,sans-serif;color:#c7aab3;margin:0}
.letter-section{border-top:1px solid #d9b29c16;padding-top:65px;max-width:1100px;margin:auto}
.letter-content{min-width:0}
.letter{border-radius:2px}
.closing{padding-bottom:85px}
.music-player{background:#281a23f5;box-shadow:0 5px 20px #10090e33}
.music-detail{color:#c7a6b1}
.flight-controls button{min-height:36px}
.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;scroll-behavior:auto!important}
.motion-paused .person-left,.motion-paused .person-right{transform:none;transition:none}
.motion-paused .hug-arm{opacity:1;transition:none}.motion-paused .rest-arm{opacity:0;transition:none}
.motion-paused .hug-heart{animation:none!important;opacity:.6;transform:none}
.motion-paused .hug-halo,.motion-paused .embrace-hearts{opacity:1;transition:none}
@keyframes quiet-pulse{0%,32%,60%,100%{transform:scale(1);opacity:.7}38%,49%{transform:scale(1.1);opacity:1}44%,55%{transform:scale(1.02);opacity:.85}}
@media(max-width:1000px){.marigold-memory{margin-left:6%;margin-right:6%;min-height:480px}.memory-copy{padding:50px 28px 50px 10px}.journey-layout{grid-template-columns:minmax(0,1fr) 210px}.route-map{height:340px}.ticket-city h3{font-size:26px}}
@media(max-width:700px){
 header{height:76px}.header-controls{gap:10px}.motion-toggle{font-size:9px}.language{min-height:40px}
 .hero{padding-bottom:30px}.art{opacity:.9}.flower.marigold-flower{width:100%}
 .story-timeline{padding-top:58px;padding-bottom:35px}.story-timeline>h2{font-size:36px;letter-spacing:-1px;line-height:1.15}
 .timeline-chapters{gap:32px}.story-chapter h3{font-size:24px}.story-chapter p{font-size:13px;line-height:1.8}.chapter-date{font-size:8px;letter-spacing:1.6px}
 .marigold-memory{grid-template-columns:1fr;margin-top:22px;margin-bottom:8px;min-height:0}
 .memory-art{height:245px;padding:0 0 20px;overflow:hidden}.marigold-field{width:375px;max-width:115%;transform:translateY(18px)}.botanical-label{font-size:6.5px;bottom:9px;letter-spacing:1.5px}
 .memory-copy{padding:28px 27px 36px}.memory-copy .eyebrow{font-size:8px;margin-bottom:20px}.memory-copy h2{font-size:36px;letter-spacing:-1.2px;margin-bottom:22px}.memory-copy>p:not(.eyebrow){font-size:13px;line-height:1.75}.memory-copy>.memory-thought{font-size:18px!important}.memory-date{margin-top:24px;font-size:7px}
 .journey-section{padding-top:65px}.journey-heading h2{font-size:36px;letter-spacing:-1px}
 .journey-layout{grid-template-columns:1fr;gap:14px}.route-map{height:auto;max-height:420px}
 .travel-card{padding:0 18px;grid-template-columns:1fr 1fr;gap:0 20px;border-radius:8px}
 .ticket-top{padding:14px 0 12px;font-size:6px}.ticket-city{padding:13px 0 15px}.ticket-city h3{font-size:24px;letter-spacing:-.7px}.ticket-person{font-size:7px}.city-small{font-size:6px}.city-silhouette{display:none}.ticket-bottom{margin:0 -18px;padding:12px;font-size:13px}.flight-strip{gap:6px}.flight-phase{font-size:6px;letter-spacing:.5px;gap:5px}.phase-number{width:20px;height:20px;font-size:7px}
 .map-caption{gap:10px}.map-caption span:first-child{font-size:11px}.map-caption span:last-child{font-size:7px}
 .embrace-section{padding:78px 6% 45px}.embrace-section h2{font-size:38px;letter-spacing:-1.2px}.embrace-section .eyebrow{font-size:7.5px;letter-spacing:1.8px}.embrace-stage{margin-top:22px}.embrace-illustration{width:100%}.embrace-caption{font-size:18px;max-width:290px}
 .heartbeat-moment{margin-top:42px;padding:38px 10px 0}.heartbeat-symbol{margin-bottom:22px;font-size:35px}.heartbeat-moment blockquote{font-size:28px;line-height:1.4;letter-spacing:-.5px}.heartbeat-answer{font-size:13px;line-height:1.85}
 .letter-section{margin:0 6%;padding:45px 0;gap:24px}.letter-content h2{font-size:43px}.scene-text{font-size:15px}.closing{padding-top:30px;padding-bottom:70px}
 .music-player{left:12px;bottom:12px;padding:10px 12px}.music-player button{min-height:25px}.music-detail{font-size:5.5px;letter-spacing:.7px}
}
@media(max-width:360px){.motion-toggle{font-size:8px}.header-controls{gap:6px}.monogram{font-size:23px}.memory-copy{padding-left:22px;padding-right:22px}.memory-copy h2{font-size:31px}.embrace-section h2{font-size:34px}.story-timeline>h2{font-size:33px}.countdown{gap:4px}.countdown>div{min-width:0}.digits{font-size:43px}}
@media(prefers-reduced-motion:reduce){.heartbeat-symbol{animation:none}.hugged .hug-heart{animation:none;opacity:.6}.flower.marigold-flower{animation:none}}

/* Continuous ambient motion. Flight and embrace poses are sampled by one JS clock. */
.person-left,.person-right,.hug-arm,.rest-arm,.hug-halo,.embrace-hearts,
.embrace-illustration,.landing-heart{transition:none!important}
.hugged .hug-heart,.hug-heart{animation:none!important}
.marigold-flower{transform-origin:50% 96%;animation:marigold-sway 11s ease-in-out infinite!important}
.bloom-breath{transform-box:fill-box;transform-origin:center;animation:marigold-breathe var(--bloom-duration,9s) ease-in-out var(--bloom-delay,0s) infinite}
.marigold-petal:nth-child(8n){animation:petal-light 6.5s ease-in-out var(--bloom-delay,0s) infinite}
.marigold-petal:nth-child(16n){animation-delay:calc(var(--bloom-delay,0s) - 2.7s)}
.art .halo{animation:botanical-glow 12s ease-in-out infinite}
.art .orbit-one{animation:botanical-orbit 19s ease-in-out infinite;transform-origin:center}
.art:not(.motion-in-view) *,.memory-art:not(.motion-in-view) *,
.heartbeat-symbol:not(.motion-in-view){animation-play-state:paused!important}
.motion-suspended *, .motion-suspended *:before,.motion-suspended *:after,
.motion-paused *, .motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important}
/* Do not snap to a final pose when paused: the current inline sampled pose is retained. */
.motion-paused .person-left,.motion-paused .person-right{transition:none!important}
.motion-paused .hug-heart{animation:none!important}
button:disabled{cursor:default;opacity:.55}
@keyframes marigold-sway{0%,100%{transform:rotate(3deg) translateY(0)}45%{transform:rotate(9deg) translateY(-4px)}75%{transform:rotate(5deg) translateY(-1px)}}
@keyframes marigold-breathe{0%,100%{transform:scale(.985) rotate(-.8deg)}50%{transform:scale(1.045) rotate(.8deg)}}
@keyframes petal-light{0%,100%{opacity:.82}50%{opacity:1}}
@keyframes botanical-glow{0%,100%{opacity:.68}50%{opacity:1}}
@keyframes botanical-orbit{0%,100%{transform:rotate(-5deg) scale(1)}50%{transform:rotate(1deg) scale(1.025)}}
@media(prefers-reduced-motion:reduce){
 .marigold-flower,.bloom-breath,.marigold-petal,.art .halo,.art .orbit-one{animation:none!important}
 .heartbeat-symbol{animation:none!important}
}
