:root{--paper:#fcf5ef;--pink:#f6dce3;--ink:#64263e;--muted:#80596a;--hot:#b83f66;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:88px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:14px}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible{outline:2px solid var(--hot);outline-offset:6px}button:active,.button:active{transform:scale(.97)}.grain{position:fixed;inset:0;pointer-events:none;z-index:10;opacity:.045;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.7' filter='url(%23n)'/%3E%3C/svg%3E")}header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:#fae9ed;border-bottom:1px solid #64263e14}.brand{font-family:'Cormorant Garamond',serif;font-size:42px;font-style:italic}.brand span{font-size:26px}nav{display:flex;align-items:center;gap:40px;font-size:12px}nav .nav-wish{border:1px solid #64263e40;padding:12px 20px;border-radius:30px}.nav-wish span{margin-left:14px}.hero{position:relative;min-height:735px;background:radial-gradient(ellipse at 75% 60%,#f5bdcf55,transparent 53%),#fae9ed;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:80px 8% 110px}.date-tag{position:absolute;top:26px;right:6%;font-size:9px;letter-spacing:2px}.date-tag span{padding:0 12px}.hero-text{position:relative;z-index:2;animation:enter 900ms var(--ease-out) both}.eyebrow{font-size:10px;letter-spacing:2.4px;font-weight:600;line-height:1.8}h1,h2{font-family:'Cormorant Garamond',serif;font-weight:400;margin:24px 0;line-height:.97;letter-spacing:-3px}h1{font-size:clamp(70px,7.5vw,112px)}h1 em{font-size:1.17em;font-weight:400;color:var(--hot)}.title-heart{font-size:.55em;display:inline-block;transform:rotate(-18deg);margin-left:15px}h2{font-size:64px;letter-spacing:-2px;line-height:1.04}h2 em{font-weight:400;color:var(--hot)}.intro{font-size:13px;line-height:1.9;color:var(--muted);margin:28px 0}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;background:var(--ink);border:1px solid var(--ink);border-radius:50px;color:#fff5f5;padding:17px 26px;font-size:12px;transition:transform 160ms var(--ease-out),background 200ms ease}.button span{font-size:18px}.handwritten{font-family:'La Belle Aurore',cursive;font-weight:400}.hero-note{font-size:22px;margin:18px 0 0 14px;transform:rotate(-5deg);color:#a75c75}.collage{height:490px;position:relative;margin-left:20px;animation:enter 900ms 80ms var(--ease-out) both}.polaroid{background:#fffaf5;padding:12px 12px 0;box-shadow:0 12px 26px #69203917;border:1px solid #78435a0b;margin:0;position:relative}.hero-photo{position:absolute;width:245px}.photo-one{left:2%;top:15px;transform:rotate(-10deg);z-index:2}.photo-two{right:-3%;top:128px;transform:rotate(12deg);z-index:3}.photo-placeholder{height:270px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;isolation:isolate}.photo-placeholder>span:not(.art-heart):not(.art-star){position:absolute;bottom:18px;left:10px;right:10px;text-align:center;font-family:'La Belle Aurore',cursive;font-size:21px;line-height:1.2;color:#6d324c}.photo-placeholder small{font:9px 'DM Sans',sans-serif;letter-spacing:1px;display:block;margin-top:8px;opacity:.75}.rose-photo{background:radial-gradient(ellipse at 45% 35%,#fdebf0 0,#f0c3d0 60%,#e5acbd)}.flower{font-size:155px;color:#bf6281aa;text-shadow:12px 10px 0 #f8dae3;transform:rotate(-15deg);margin-bottom:45px}.sky-photo{background:linear-gradient(155deg,#cfbdcf,#ecd4dc 50%,#fae1d3)}.sky-photo:before,.sky-photo:after{content:'';position:absolute;width:240px;height:100px;border-radius:50%;background:#fce9e3aa;transform:rotate(-25deg);bottom:58px;left:-40px;z-index:-1}.sky-photo:after{left:90px;bottom:75px;background:#f5e7ef88}.moon{width:78px;height:78px;border-radius:50%;background:#fff2dc;box-shadow:0 0 40px #fff4e9;position:absolute;top:43px;right:40px}figcaption{font-family:'La Belle Aurore',cursive;text-align:center;font-size:23px;padding:13px 0 16px}.tape{position:absolute;width:95px;height:30px;background:#e8c897a0;top:-14px;left:calc(50% - 47px);transform:rotate(-5deg);z-index:4;clip-path:polygon(3% 0,98% 3%,96% 28%,100% 49%,97% 76%,100% 100%,0 97%,3% 70%,0 40%)}.sparkle{position:absolute;font-family:serif}.s1{font-size:72px;right:3%;top:-10px;transform:rotate(10deg)}.s2{font-size:44px;left:-40px;bottom:65px;color:var(--hot)}.love-stamp{position:absolute;bottom:15px;left:22%;width:98px;height:98px;border:1px dashed #ad6c83;border-radius:50%;text-align:center;display:flex;flex-direction:column;justify-content:center;font-size:8px;letter-spacing:1px;transform:rotate(-16deg);z-index:4;background:#f8dce6}.love-stamp b{font-size:32px;line-height:22px;font-weight:400}.collage-note{position:absolute;right:0;bottom:-60px;font-size:25px;line-height:1.1;transform:rotate(-7deg)}.hero-orbit{position:absolute;border:1px solid #b8678114;width:950px;height:500px;border-radius:50%;right:-290px;transform:rotate(-35deg)}.orbit-two{width:1100px;height:700px;right:-350px}.scroll-note{position:absolute;bottom:30px;left:8%;display:flex;align-items:center;gap:20px;font-size:18px}.scroll-note span{font-size:8px;letter-spacing:2px}.edge-note{position:absolute;right:18px;top:48%;writing-mode:vertical-rl;font-size:8px;letter-spacing:3px}.ribbon{overflow:hidden;background:#e9b7c8;border-top:1px solid #b3718820;border-bottom:1px solid #b3718820;padding:18px 0}.ribbon>div{width:max-content;font:italic 26px 'Cormorant Garamond',serif;animation:marquee 42s linear infinite}.ribbon span{font-size:20px;margin:0 50px}.section{padding:100px 8%}.section-top{text-align:center}.section-top>p:last-child,.letter-heading>p,.wish-section>p{color:var(--muted);line-height:1.8}.memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;max-width:1050px;margin:65px auto 35px}.memory:nth-child(1){transform:rotate(-5deg)}.memory:nth-child(2){transform:translateY(25px) rotate(3deg)}.memory:nth-child(3){transform:rotate(-3deg)}.memory .photo-placeholder{height:300px}.peach-photo{background:radial-gradient(circle at 30% 20%,#fce3c9,#edbba9)}.lilac-photo{background:radial-gradient(circle at 60% 20%,#eee2ee,#c5abc8)}.art-heart,.art-star{font:130px 'Cormorant Garamond',serif;color:#a3567390;margin-bottom:42px}.art-star{color:#faf0df}.tiny-number{position:absolute;bottom:17px;right:12px;font-size:8px;opacity:.5}.photo-help{text-align:center;font-size:11px;color:var(--muted);line-height:2.1;margin-top:65px}.photo-help small{font-size:10px}.text-button{color:var(--ink);border:0;border-bottom:1px solid #a45c77;background:none;padding:0;font-size:11px}.letter-section{display:grid;grid-template-columns:1fr 1fr;background:#f5dfe6;align-items:center;gap:60px;padding-top:115px;padding-bottom:120px}.letter-heading .handwritten{display:block;font-size:25px;transform:rotate(-5deg);margin-top:30px}.envelope-wrap{padding:45px 0}.envelope{display:block;position:relative;background:none;border:0;width:100%;aspect-ratio:1.5;max-width:450px;transform:rotate(-7deg);filter:drop-shadow(0 18px 20px #73344c20);transition:transform 250ms var(--ease-out)}.envelope-back{position:absolute;inset:0;background:#d78da8}.letter-peek{position:absolute;inset:5% 6% 0;background:#fff8ee;font:32px 'La Belle Aurore',cursive;padding:18px;transform:translateY(-18px);transition:transform 250ms var(--ease-out)}.envelope-front{position:absolute;inset:0;background:#eab3c6;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%)}.seal{position:absolute;left:calc(50% - 29px);top:42%;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#aa345e;color:#fbd7e4;font:38px 'Cormorant Garamond',serif;box-shadow:0 3px 6px #7b244433}.envelope-label{position:absolute;bottom:12%;left:0;right:0;color:#76324e;font:24px 'La Belle Aurore',cursive}.wish-section{text-align:center;background:radial-gradient(ellipse at 50% 55%,#f6d5de66,transparent 60%)}.cake{position:relative;width:230px;margin:65px auto 35px;padding-top:70px}.cake-top{height:45px;background:#ffebee;border-radius:50%;position:relative;z-index:2;border-bottom:4px solid #e6a8be}.cake-body{height:100px;background:repeating-linear-gradient(90deg,#e6a2b8 0 18px,#f1b8ca 18px 36px);margin-top:-21px;border-radius:0 0 50% 50% / 0 0 20% 20%;display:flex;align-items:center;justify-content:center;gap:32px;padding-top:15px;position:relative;z-index:1}.cake-body span{color:#fff1f3;font-size:32px}.cake-plate{height:20px;border-radius:50%;background:#cfa4b5;position:absolute;bottom:-8px;left:-20px;right:-20px}.candles{display:flex;gap:35px;position:absolute;top:15px;left:65px;z-index:3}.candles i{display:block;width:10px;height:65px;border-radius:3px;background:repeating-linear-gradient(135deg,#ffefd7 0 7px,#c25d82 7px 13px);position:relative}.candles i:nth-child(2){transform:translateY(-8px)}.flame{position:absolute;top:-23px;left:-1px;width:12px;height:20px;background:#eda451;border-radius:70% 30% 60% 40%;box-shadow:0 0 16px #f5bd65;transform-origin:bottom;animation:flicker 1800ms ease-in-out infinite alternate;transition:opacity 250ms ease}.candles i:nth-child(2) .flame{animation-delay:-600ms}.candles i:nth-child(3) .flame{animation-delay:-1200ms}.cake.blown .flame{opacity:0;animation:none}.wish-result{font-size:28px;min-height:42px;color:var(--hot);margin-top:25px}footer{padding:40px 8%;border-top:1px solid #64263e22;display:flex;align-items:center;justify-content:space-between;gap:22px;flex-wrap:wrap}footer p{font-size:11px}footer .handwritten{font-size:25px}footer small{width:100%;text-align:center;font-size:8px;letter-spacing:2px;opacity:.7}dialog{border:1px solid #d9afbf;background:#fff8ef;color:var(--ink);width:min(610px,calc(100% - 32px));max-height:85dvh;padding:48px;box-shadow:0 30px 100px #64263e33}dialog::backdrop{background:#42162c77;backdrop-filter:blur(7px)}dialog[open]{animation:letter-in 250ms var(--ease-out)}dialog h2{font-size:48px;letter-spacing:-1px}dialog .close{position:absolute;right:16px;top:10px;border:0;background:none;font-size:30px;color:var(--ink);width:40px;height:40px}.letter-copy{font-size:14px;line-height:1.9}.signature{font-size:30px;margin-bottom:0}.confetti{position:fixed;top:-20px;pointer-events:none;z-index:30;animation:fall 3s linear forwards;width:9px;height:14px}.photo-placeholder img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;z-index:3}.reveal{opacity:1}.js .reveal{opacity:0;transition:opacity 800ms var(--ease-out),translate 800ms var(--ease-out);translate:0 22px}.js .reveal.visible{opacity:1;translate:0 0}.memory:nth-child(2){transition-delay:60ms}.memory:nth-child(3){transition-delay:120ms}@keyframes enter{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@keyframes letter-in{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes marquee{to{transform:translateX(-45%)}}@keyframes flicker{to{transform:rotate(10deg) scale(.9)}}@keyframes fall{to{transform:translateY(110vh) rotate(540deg);opacity:0}}@media(hover:hover) and (pointer:fine){.button:hover{background:#8b3653;transform:translateY(-2px)}nav a:hover,.text-button:hover{color:var(--hot)}.polaroid{transition:transform 250ms var(--ease-out)}.polaroid:hover{transform:rotate(0) translateY(-7px);z-index:5}.envelope:hover{transform:rotate(-3deg) translateY(-5px)}.envelope:hover .letter-peek{transform:translateY(-35px)}}@media(min-width:1400px){.hero{padding-left:max(8%,calc((100vw - 1200px)/2));padding-right:max(8%,calc((100vw - 1200px)/2))}}@media(max-width:1000px){.hero{padding-left:6%;padding-right:6%}h1{font-size:78px}.hero-photo{width:205px}.hero-photo .photo-placeholder{height:235px}.photo-one{left:0}.photo-two{right:-5%;top:155px}.collage{margin-left:0}.love-stamp{left:0;bottom:0}.memory-grid{gap:20px}.memory .photo-placeholder{height:230px}.memory figcaption{font-size:19px}.section{padding-left:6%;padding-right:6%}}@media(max-width:700px){header{height:76px;padding:0 6%}.brand{font-size:34px}nav{gap:20px;font-size:10px}nav>a:first-child{display:none}nav .nav-wish{padding:10px 12px}.hero{display:block;padding-top:70px;padding-bottom:90px}.date-tag{font-size:8px;top:20px}.hero-text{text-align:center}h1{font-size:74px;margin-top:25px}.eyebrow{font-size:8px;letter-spacing:1.8px}.intro{font-size:12px}.hero-note{font-size:21px}.collage{width:330px;max-width:100%;height:450px;margin:50px auto 0}.hero-photo{width:190px}.hero-photo .photo-placeholder{height:220px}.photo-one{top:5px;left:0}.photo-two{top:115px;right:0}.love-stamp{bottom:10px;left:10px;width:80px;height:80px;font-size:6px}.collage-note{right:0;bottom:-15px;font-size:22px}.s1{right:0;font-size:52px;top:-35px}.s2{left:-15px;bottom:120px;font-size:35px}.edge-note{display:none}.scroll-note{left:calc(50% - 75px);bottom:20px}.section{padding:75px 7%}h2{font-size:48px}.memory-grid{display:flex;flex-direction:column;gap:48px;margin:50px auto;width:min(310px,90%)}.memory:nth-child(2){transform:rotate(4deg)}.memory .photo-placeholder{height:300px}.memory figcaption{font-size:23px}.photo-help{margin-top:40px}.letter-section{display:block;text-align:center}.letter-heading .handwritten{font-size:23px}.envelope-wrap{padding:65px 0 15px}.envelope{max-width:350px;margin:auto}.envelope-label{font-size:20px}.letter-peek{font-size:26px}.seal{width:50px;height:50px;left:calc(50% - 25px)}footer{justify-content:center;text-align:center}footer .brand{width:100%}footer p{width:100%;margin:0}dialog{padding:35px 26px}dialog h2{font-size:42px}.letter-copy{font-size:13px}.wish-result{font-size:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero-text,.collage,.ribbon>div,.flame,dialog[open]{animation:none}.js .reveal{translate:none;transition:opacity 200ms ease}.polaroid,.envelope,.letter-peek,.button{transition:opacity 200ms ease,background 200ms ease}.confetti{display:none}}
/* The opening drive */
[hidden]{display:none!important}.trip-pending{background:#f3e4de}.trip{min-height:100dvh;padding:0 5% 24px;color:#563443;background:radial-gradient(ellipse at 80% 5%,#f2cbd440,transparent 50%),#f3e4de}.trip-top{max-width:1230px;margin:auto;height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #80596a26}.trip-monogram{font-family:'La Belle Aurore',cursive;font-size:27px;white-space:nowrap}.trip-top>span{font-size:9px;letter-spacing:2px}.trip-skip{background:none;border:0;padding:10px 0;color:#674655;font-size:11px;text-decoration:underline;text-underline-offset:4px}.trip-heading{text-align:center;margin:33px auto 28px}.trip-heading h1{font-size:clamp(45px,5vw,69px);letter-spacing:-2px;margin:10px 0 12px}.trip-heading h1 em{font-size:1em}.trip-heading>p:last-child{font-size:12px;color:#795f6a}.trip-heading .eyebrow{font-size:9px}.drive-shell{max-width:1000px;margin:auto;border:1px solid #9b727438;border-radius:18px;overflow:hidden;box-shadow:0 18px 70px #6c324513;background:#fdf6ee}.drive-hud{padding:17px 25px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #59364722;gap:15px}.drive-hud>div{display:flex;flex-direction:column;gap:4px}.hud-label{font-size:8px;letter-spacing:2px;color:#876576}.drive-hud strong{font-size:14px;font-weight:500}.hud-location{font-size:10px;color:#876576}.hud-right{text-align:right;font-size:11px}.heart-score{font-size:17px;color:#ad4064}.heart-score b{font-size:12px;font-weight:400}.drive-scene{position:relative;background:#eddbd5;height:clamp(300px,43vw,475px);overflow:hidden}.drive-scene canvas{width:100%;height:100%;object-fit:cover;display:block}.trip-start,.trip-arrived{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:20px;background:#f8e9e1e8;backdrop-filter:blur(3px)}.trip-start h2,.trip-arrived h2{font-size:56px;letter-spacing:-1.5px;margin:18px 0 12px}.trip-start p,.trip-arrived p{font-size:12px;line-height:1.8;margin:0 0 22px}.trip-start small{font-size:10px;color:#886775;margin-top:15px}.trip-tag{font-size:8px;letter-spacing:2px}.trip-start .button,.trip-arrived .button{padding:14px 24px}.drive-bottom{position:relative;padding:18px 24px 13px}.drive-controls{display:flex;align-items:center;justify-content:center;gap:10px}.drive-controls button{width:48px;height:42px;border:1px solid #ad8696;background:#fff9f1;color:#633348;border-radius:11px;touch-action:none;user-select:none;-webkit-user-select:none;font-size:20px;transition:transform 160ms var(--ease-out),background 160ms ease}.drive-controls #accelerate{width:170px;background:#8e354f;color:#fff3e7;border-color:#8e354f;font-size:12px;display:flex;align-items:center;justify-content:center;gap:20px}.drive-controls #accelerate.pressed{background:#64263e;transform:scale(.97)}.drive-bottom>p{font-size:10px;text-align:center;color:#7c5d6d;margin:12px 0 4px;min-height:25px;line-height:1.5}.route-track{position:absolute;left:0;right:0;bottom:0;height:4px;background:#e9d4d4;overflow:hidden}.route-track>span{display:block;width:100%;height:100%;background:#b14564;transform:scaleX(0);transform-origin:left}.trip-foot{max-width:1000px;margin:18px auto 0;display:flex;align-items:center;justify-content:space-between;gap:15px;color:#856573}.trip-foot>span:first-child{font-size:8px;letter-spacing:1.3px}.trip-foot>span:nth-child(2){font:19px 'La Belle Aurore',cursive}.trip-foot .trip-skip{font-size:10px}.trip-skip[aria-pressed=true]{color:#923851;font-weight:600}.noscript-note{padding:20px;text-align:center}.letter-copy{font-family:'DM Sans',sans-serif;line-height:1.95}.letter-copy p{margin:0 0 22px}#home h1:focus{outline:none}@media(max-width:700px){.trip{padding:0 16px 20px}.trip-top{height:65px;gap:10px}.trip-top>span{font-size:7px;letter-spacing:1px;max-width:95px;line-height:1.7}.trip-skip{font-size:9px;max-width:115px;text-align:right;line-height:1.5}.trip-heading{margin:28px auto 22px}.trip-heading h1{font-size:44px;line-height:1.1}.trip-heading>p:last-child{font-size:11px}.drive-hud{padding:14px 16px}.drive-hud strong{font-size:12px}.drive-scene{height:340px}.drive-scene canvas{width:100%;height:100%;object-fit:cover}.trip-start h2,.trip-arrived h2{font-size:45px}.trip-start p,.trip-arrived p{font-size:11px;max-width:260px}.trip-tag{font-size:7px;letter-spacing:1.4px}.drive-bottom{padding:15px 12px 10px}.drive-controls button{height:47px;width:50px}.drive-controls #accelerate{width:155px}.drive-bottom>p{font-size:9px;min-height:28px}.trip-foot{flex-wrap:wrap;margin-top:12px;gap:8px}.trip-foot>span:first-child{font-size:6px;letter-spacing:.8px}.trip-foot>span:nth-child(2){font-size:17px}.trip-foot .trip-skip{max-width:none;font-size:9px}.trip-arrived .button{font-size:10px;gap:15px}.hero h1{font-size:68px}}
/* Arrival story and birthday film */
.drive-scene.story-scene{height:auto;aspect-ratio:1100/620}.drive-scene.story-scene canvas{width:100%;height:100%;object-fit:contain}.trip-start{inset:auto 20px 12px auto;width:305px;padding:18px;background:#fff4e8ed;border:1px solid #cfaebb66;border-radius:12px;backdrop-filter:none}.trip-start h2{font-size:34px;line-height:1.05;margin:9px 0}.trip-start p{font-size:10px;margin:0 0 12px}.trip-start small{font-size:8px;margin-top:10px}.trip-start .trip-tag{font-size:6px;letter-spacing:1px}.trip-start .button{padding:10px 20px}.drive-controls[hidden]{display:none}.trip-heading>p:last-child{padding:0 8px}.album-nav{position:absolute;z-index:4;left:0;right:0;background:transparent;border-bottom:1px solid #fff3e52b;color:#fff4e8;height:85px}.album-nav nav a:first-child{display:block}.cinema{height:100svh;min-height:700px;position:relative;background:#21131c;color:#fff3e5;overflow:hidden}.film-frame{position:absolute;inset:0;opacity:0;transition:opacity 1200ms var(--ease-out);pointer-events:none}.film-frame.active{opacity:1}.film-backdrop{width:100%;height:100%;object-fit:cover;filter:blur(25px) brightness(.42);transform:scale(1.1)}.film-photo{position:absolute;right:6%;top:12%;width:57%;height:78%;object-fit:contain;filter:drop-shadow(0 12px 40px #0005);transform:scale(1);transition:transform 8s linear}.film-frame.active .film-photo{transform:scale(1.035)}.film-shade{position:absolute;inset:0;background:linear-gradient(90deg,#291321bb,transparent 75%),linear-gradient(0deg,#1c1019b0,transparent 30%);pointer-events:none}.film-kicker{position:absolute;top:125px;left:7%;font-size:9px;letter-spacing:2.3px}.film-title{position:absolute;left:7%;top:39%;width:60%;pointer-events:none;text-shadow:0 2px 20px #21131c77}.film-title .eyebrow{font-size:9px;color:#eab7cb}.film-title h1{font-size:clamp(56px,6.5vw,98px);letter-spacing:-2px;line-height:1.04;margin:25px 0}.film-title h1 em{font-size:1em;color:#f4bbd0}.film-title s{font-style:italic;text-decoration-thickness:2px;text-decoration-color:#e8abc5}.film-title>p:last-child{font-size:12px;color:#f1d5df}.film-bottom{position:absolute;bottom:35px;left:7%;right:7%;display:flex;justify-content:space-between;align-items:center;font-size:9px;letter-spacing:1.5px}.film-bottom>a{display:flex;align-items:center;gap:35px}.film-bottom>a span{font-size:22px}.film-bottom>div{display:flex;align-items:center;gap:20px}.film-bottom button{color:#fff1e4;background:#fff2e612;border:1px solid #fff2e655;border-radius:30px;padding:10px 15px;font-size:10px}.album-section{padding:95px 5% 75px;background:#f8eee7}.album-heading{max-width:1000px;margin:0 auto 48px;text-align:center}.album-heading h2{font-size:64px;line-height:1.05}.album-heading>p:not(.eyebrow){font-size:12px;color:#876371;line-height:1.7}.album-heading .album-tip{font-size:10px!important;margin-top:20px}.album-grid{columns:3;column-gap:17px;max-width:1250px;margin:auto}.album-photo{display:block;position:relative;width:100%;padding:0;margin:0 0 17px;border:0;background:#ecd7d6;break-inside:avoid;overflow:hidden;text-align:left;cursor:zoom-in}.album-photo img{display:block;width:100%;height:auto;transition:transform 250ms var(--ease-out)}.album-photo span{position:absolute;bottom:0;left:0;right:0;padding:24px 14px 12px;color:#fff0e6;background:linear-gradient(transparent,#29121c8c);font-size:8px;letter-spacing:2px}.letter-jump{display:block;width:max-content;margin:55px auto 0;border-bottom:1px solid #b88999;padding-bottom:10px;font:24px 'La Belle Aurore',cursive}.real-letter{background:#f1dbe2;padding-top:105px;padding-bottom:100px}.real-letter article{max-width:670px;margin:auto;background:#fff7ed;padding:60px 65px;box-shadow:0 15px 60px #73344d12;position:relative;border:1px solid #c4a3a326}.real-letter article:before{content:'';position:absolute;top:-13px;left:calc(50% - 48px);width:96px;height:28px;background:#d5b88670;transform:rotate(-4deg)}.real-letter h2{font-size:62px;letter-spacing:-2px;margin:24px 0}.letter-date{display:block;font-size:8px;letter-spacing:1.6px;margin:28px 0 37px;color:#95687b}.real-letter .letter-copy{font-size:13px;line-height:2}.real-letter .signature{font-size:31px;color:#a34064}.wish-section{background:#f9ede9}#photo-viewer{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:55px 70px 65px;border:0;background:#20141ef5;margin:0;overflow:hidden;color:#fff3e7;box-shadow:none}#photo-viewer::backdrop{background:#20141e}#full-photo{display:block;width:100%;height:100%;object-fit:contain}#photo-viewer button{position:absolute;border:1px solid #f2ceda66;color:#fff4ec;background:#4b2f4380;border-radius:50%;width:42px;height:42px;font-size:22px;z-index:2}#photo-viewer .photo-close{right:18px;top:14px}#photo-viewer .photo-previous{left:15px;top:calc(50% - 21px)}#photo-viewer .photo-next{right:15px;top:calc(50% - 21px)}#photo-counter{text-align:center;position:absolute;bottom:20px;left:0;right:0;font-size:11px;letter-spacing:3px;margin:0}.trip-start[hidden]{display:none}.trip-foot{margin-bottom:0}@media(hover:hover) and (pointer:fine){.album-photo:hover img{transform:scale(1.025)}}@media(max-width:700px){.trip-start{position:relative;inset:auto;width:auto;background:#fff6ed;margin:0;padding:18px;border:0;border-radius:0}.trip-start h2{font-size:30px;margin:7px 0}.trip-start .trip-tag{font-size:6px}.trip-start p{display:none}.trip-start small{margin-top:7px}.drive-scene.story-scene{aspect-ratio:auto;height:auto}.drive-scene.story-scene canvas{height:auto;aspect-ratio:1100/620;display:block}.drive-scene:not(.story-scene) canvas{object-position:58% center}.drive-hud strong{font-size:11px}.hud-right{font-size:8px}.trip-top>span{font-size:6px}.trip-heading h1{font-size:40px}.trip-heading>p:last-child{font-size:9px}.album-nav{height:65px}.album-nav nav{gap:17px;font-size:9px}.album-nav nav a:last-child{display:none}.cinema{height:100svh;min-height:720px}.film-kicker{top:88px;left:7%;font-size:7px;letter-spacing:1.5px}.film-photo{top:17%;left:6%;right:6%;width:88%;height:59%;object-fit:contain}.film-shade{background:linear-gradient(0deg,#21131cf2 0,transparent 66%)}.film-title{left:7%;top:auto;bottom:92px;width:90%}.film-title h1{font-size:48px;line-height:1.03;margin:14px 0}.film-title .eyebrow{font-size:7px;letter-spacing:1.4px}.film-title>p:last-child{font-size:10px}.film-bottom{bottom:25px;font-size:6px;letter-spacing:1px}.film-bottom>a{gap:10px}.film-bottom>div{gap:12px}.film-bottom button{font-size:8px;padding:9px 12px}.album-section{padding:60px 12px}.album-heading{padding:0 18px;margin-bottom:30px}.album-heading h2{font-size:43px}.album-heading>p:not(.eyebrow){font-size:11px}.album-grid{columns:2;column-gap:10px}.album-photo{margin-bottom:10px}.album-photo span{font-size:7px;padding:20px 9px 9px}.letter-jump{font-size:21px;max-width:90%}.real-letter{padding:60px 18px}.real-letter article{padding:36px 25px}.real-letter h2{font-size:45px}.real-letter .letter-copy{font-size:12px;line-height:2}.letter-date{font-size:6px;letter-spacing:1.3px}.real-letter .signature{font-size:28px}#photo-viewer{padding:65px 12px 80px}#photo-viewer .photo-previous{top:auto;bottom:18px;left:22px}#photo-viewer .photo-next{top:auto;bottom:18px;right:22px}#photo-counter{bottom:32px}}
@media(prefers-reduced-motion:reduce){.film-frame{transition:opacity 200ms ease}.film-photo,.film-frame.active .film-photo{transform:none;transition:none}.album-photo img{transition:none}}
/* Traffic drive instruments */
.hud-speed{display:flex;align-items:baseline;gap:5px;min-width:90px;justify-content:center}.hud-speed b{font-size:33px;line-height:1;font-weight:500;font-variant-numeric:tabular-nums}.hud-speed span{font-size:9px}.hud-right strong{font-size:11px;font-weight:400}.hud-right>span{font-size:8px;color:#96798b}.drive-controls #accelerate{width:120px}.drive-controls #brake{width:105px;font-size:12px;color:#fff0df;background:#545766;border-color:#545766}.drive-controls button.pressed{transform:scale(.97);filter:brightness(.8)}.driving-now .drive-shell{max-width:1150px}.driving-now .drive-scene{height:auto;aspect-ratio:1100/620}.driving-now .drive-scene canvas{width:100%;height:100%;object-fit:contain}.driving-now .trip-heading{margin:20px auto 18px}.driving-now .trip-heading h1{font-size:48px;line-height:1.03}.driving-now .trip-heading h1 br{display:none}.driving-now .trip-heading h1 em{margin-left:12px}.drive-controls button{min-height:46px}.trip-heading h1{line-height:1.02}.trip-foot a{text-decoration:underline;text-underline-offset:3px}@media(max-width:700px){.hud-speed{min-width:55px;gap:3px}.hud-speed b{font-size:25px}.hud-speed span{font-size:7px}.hud-right strong{font-size:9px}.hud-right>span{font-size:6px}.drive-hud{gap:8px}.drive-hud>div:first-child{max-width:165px}.drive-hud strong{font-size:10px}.drive-controls{gap:7px}.drive-controls #accelerate{width:85px}.drive-controls #brake{width:80px}.drive-controls button{width:42px}.driving-now .trip-heading h1{font-size:29px}.driving-now .trip-heading h1 em{margin-left:5px}.driving-now .trip-heading p:last-child{font-size:8px}.driving-now .drive-scene{height:355px;aspect-ratio:auto}.driving-now .drive-scene canvas{height:100%;object-fit:cover;object-position:center}.driving-now .drive-bottom{padding-top:12px}.driving-now .trip-top{height:52px}.driving-now .trip-heading{margin:15px auto}.driving-now .drive-hud{padding:12px}.trip-heading h1{font-size:39px}}
/* Keep the complete driving view on screen. */
.trip.driving-now{position:fixed;inset:0;z-index:12;padding:0 3%;overflow:hidden;background:#e8dbd1;display:flex;flex-direction:column}.driving-now .trip-heading,.driving-now .trip-foot{display:none}.driving-now .trip-top{flex:0 0 42px;height:42px;width:100%}.driving-now .trip-monogram{font-size:23px}.driving-now .drive-shell{flex:1;min-height:0;width:100%;max-width:1250px;display:flex;flex-direction:column;border-radius:0 0 14px 14px}.driving-now .drive-hud{flex:0 0 67px}.driving-now .drive-scene{flex:1;min-height:0;aspect-ratio:auto;height:auto;background:#b9aa8d}.driving-now .drive-scene canvas{height:100%;object-fit:contain}.driving-now .drive-bottom{flex:0 0 102px;padding:12px 15px 8px}.driving-now .drive-bottom>p{margin-top:8px;min-height:22px}@media(max-width:700px){.trip.driving-now{padding:0 10px 10px}.driving-now .trip-top{flex-basis:44px;height:44px}.driving-now .drive-hud{flex-basis:66px}.driving-now .drive-scene{height:auto}.driving-now .drive-scene canvas{object-fit:cover;object-position:center}.driving-now .drive-bottom{flex-basis:105px}.driving-now .drive-controls button{min-height:46px}.driving-now .trip-top>span{font-size:6px}}
/* WebGL game scene */
#world-canvas{display:none}.has-webgl #drive-canvas{display:none}.has-webgl #world-canvas{display:block;width:100%;height:auto;aspect-ratio:1100/620}.has-webgl.driving-now #world-canvas{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto}.three-hud{display:none;position:absolute;inset:0;pointer-events:none;color:#fff3df;font-family:'DM Sans',sans-serif}.has-webgl.driving-now .three-hud{display:block}.three-directions{position:absolute;left:23%;right:23%;top:20px;background:#111d28c9;backdrop-filter:blur(12px);padding:15px 20px;border:1px solid #fff1d32b;border-radius:10px;display:flex;flex-direction:column;gap:5px}.three-directions strong{font-size:15px;font-weight:500}.three-directions span{font-size:10px;color:#d4d8cb}.three-map{position:absolute;left:20px;top:20px;width:150px;background:#111d28bd;border:1px solid #fff1d32b;backdrop-filter:blur(10px);padding:12px;border-radius:10px}.three-map>span{font-size:8px;letter-spacing:1px}.three-map svg{display:block;width:100%;height:100px}.three-map small{font-size:6px;letter-spacing:1px;color:#b1c3c4}.three-speed{position:absolute;right:24px;bottom:25px;min-width:160px;background:#111d28bd;border:1px solid #fff1d32b;backdrop-filter:blur(12px);border-radius:14px;padding:18px 23px;display:flex;flex-direction:column;align-items:center}.three-speed b{font-size:48px;line-height:1.1;font-weight:400;font-variant-numeric:tabular-nums}.three-speed>span{font-size:10px;color:#cdd3ce}.three-speed small{font-size:8px;margin-top:12px;color:#e6c5d2}#start-drive:disabled{opacity:.65;cursor:wait}.asset-credit{font-size:9px;width:100%;text-align:center;color:#876371}.has-webgl .trip-start{z-index:2}@media(max-width:700px){.has-webgl .drive-scene.story-scene #world-canvas{height:300px;aspect-ratio:auto}.has-webgl.driving-now .drive-scene #world-canvas{height:100%;position:absolute}.three-directions{left:12px;right:12px;top:12px;padding:12px 14px}.three-directions strong{font-size:12px}.three-directions span{font-size:8px}.three-map{left:12px;top:91px;width:110px;padding:9px}.three-map svg{height:80px}.three-map>span{font-size:6px}.three-map small{font-size:5px}.three-speed{right:12px;top:91px;bottom:auto;min-width:110px;padding:12px}.three-speed b{font-size:37px}.three-speed small{font-size:6px;margin-top:8px}}
.three-speed .three-revs{font-size:9px;letter-spacing:1px;color:#efd1de;margin-top:9px}.three-speed #grip-state{font-size:7px;color:#adc8bd;margin-top:6px}.three-speed #three-passes{margin-top:6px}@media(max-width:700px){.three-speed .three-revs{font-size:7px}.three-speed #grip-state{font-size:6px}.three-speed #three-passes{font-size:6px}}
/* Personal landing, no-build edition. Motion never blocks controls. */
.petals{position:absolute;inset:0;pointer-events:none;overflow:hidden}.petals i{position:absolute;left:calc(var(--i)*11%);top:0;font:28px Georgia;color:#b83f662c;animation:petal 22s linear infinite;animation-delay:calc(var(--i)*-2.8s)}@keyframes petal{from{translate:0 -30px;rotate:0deg}to{translate:55px 100vh;rotate:90deg}}.gear-controls{display:flex;gap:8px;justify-content:center;margin-top:8px}.gear-controls[hidden]{display:none}.gear-controls button{min-width:62px;min-height:36px;border:1px solid #b6a09f;border-radius:8px;background:#fff5ea;color:#64263e;font-size:10px;touch-action:manipulation}.gear-controls button[aria-pressed=true]{background:#64263e;color:#fff5ea}.driving-now .drive-bottom{flex-basis:145px}.real-letter .letter-copy{font-family:'La Belle Aurore',cursive;font-size:21px;line-height:1.85}#full-photo{touch-action:pan-y}.trip .trip-heading{z-index:1}.trip.driving-now .petals{display:none}@media(max-width:700px){.driving-now .drive-bottom{flex-basis:150px}.gear-controls button{min-height:38px}.real-letter .letter-copy{font-size:20px;line-height:1.8}.trip-heading h1{font-size:48px}}@media(prefers-reduced-motion:reduce){.petals i{animation:none;top:35%}.real-letter .reveal{transition:none;translate:none}}

/* Keep the parking and door sequence cinematic on small screens too. */
.arrival-now .three-hud{display:none!important}.arrival-now .drive-bottom{flex-basis:60px}.arrival-now .drive-bottom>p{font-size:11px}

/* First-person parking and walking controls stay within thumb reach. */
.arrival-now .drive-bottom{flex-basis:155px}.arrival-actions{display:flex;justify-content:center;gap:12px;margin-top:8px}.arrival-actions button{min-height:40px;padding:8px 18px;border:1px solid #b28c9b;border-radius:10px;background:#fff5ec;color:#64263e}.arrival-actions button:disabled{opacity:.45}.arrival-actions [hidden]{display:none}#arrival-guide{position:absolute;inset:12px 12px auto;z-index:2;pointer-events:none;color:#fff8ef;display:flex;align-items:start;gap:10px}#arrival-guide[hidden]{display:none}#arrival-guide strong{font-size:12px;line-height:1.5;background:#17232de8;padding:12px;border-radius:10px;font-weight:400;flex:1}#arrival-guide svg{width:130px;flex:0 0 130px;border:1px solid #f2d7dd66;border-radius:8px}.on-foot .drive-bottom{flex-basis:112px}@media(max-width:700px){#arrival-guide{inset:8px}#arrival-guide strong{font-size:10px;padding:9px}#arrival-guide svg{width:95px;flex-basis:95px}}
