@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;0,600;1,400;1,500&display=swap');
:root{--paper:#f8f4eb;--ink:#343e32;--muted:#78796d;--green:#4e6244;--line:#dddccf}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 'DM Sans',sans-serif}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:3px solid #ac6b48;outline-offset:5px}.site-header,main,footer{max-width:1120px;margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;padding:28px 32px;border-bottom:1px solid var(--line)}.brand{font:italic 28px 'Playfair Display',Georgia,serif}.brand span{color:#a87856;margin-left:10px}nav{display:flex;gap:30px;font-size:12px}nav a:hover{color:#a87856}.hero{position:relative;text-align:center;padding:90px 24px 76px}.eyebrow{font-size:10px;font-weight:600;letter-spacing:2px;text-transform:uppercase}.hero h1{font:500 clamp(44px,6vw,76px)/1.12 'Playfair Display',Georgia,serif;letter-spacing:-2px;margin:25px 0}.hero em{color:#7d8b62;font-weight:400}.hero>p:not(.eyebrow){color:var(--muted);font-size:14px}.button{display:inline-flex;align-items:center;justify-content:center;gap:30px;background:var(--green);color:white;border:0;border-radius:5px;padding:14px 23px;font-size:12px;transition:background .2s,transform .2s}.button:hover{background:#3b4b33;transform:translateY(-2px)}.hero .button{margin-top:20px}.handwritten,.small-note,.signature{font:italic 18px/1.5 Georgia,serif;color:#888871}.handwritten{font-size:14px;margin-top:18px}.hero-flower{position:absolute;right:9%;top:34%;font-size:68px;color:#b5bb97;transform:rotate(12deg)}section:not(.hero){padding:48px 32px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:36px}.section-heading p{margin:0 0 10px;color:var(--muted)}h2{font:400 clamp(27px,3vw,36px)/1.3 'Playfair Display',Georgia,serif;margin:0}.small-note{font-size:15px}.memory-layout{display:grid;grid-template-columns:1fr 1fr;gap:75px;align-items:center;padding:12px 40px 30px}.polaroid{position:relative;background:#fffdf8;padding:15px 15px 8px;box-shadow:0 8px 24px #47433214;transform:rotate(-3deg)}.tape{position:absolute;width:100px;height:30px;top:-14px;left:calc(50% - 50px);background:#d5c9a6a6;transform:rotate(4deg);z-index:1}.photo{aspect-ratio:1.1;position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 73% 25%,#ede4b5 0 10%,transparent 10.5%),linear-gradient(155deg,transparent 52%,#71806b 52% 68%,#4c6358 68%),#c6cfbe}.art-japan{background:radial-gradient(circle at 70% 25%,#d9a28c 0 11%,transparent 11.5%),linear-gradient(140deg,transparent 50%,#8a9690 50% 68%,#5d7169 68%),#e6dccc}.art-korea{background:radial-gradient(circle at 25% 24%,#f0d9a7 0 10%,transparent 10.5%),linear-gradient(165deg,transparent 55%,#788c82 55% 70%,#4d6864 70%),#c6d6d5}.photo-icon{font:60px Georgia;color:#fffaf0;text-shadow:0 2px 10px #33443033}.photo-label{font-size:10px;letter-spacing:1px;color:white;background:#34493666;padding:4px 9px;margin-top:12px}.photo img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}.polaroid p{text-align:center;font:italic 17px Georgia;margin:17px 0 12px}.memory-note h3{font:400 35px/1.25 'Playfair Display',Georgia,serif;margin:15px 0 22px}.memory-note>p:not(.eyebrow):not(.signature):not(.counter){color:#74766c;font-size:14px}.signature{margin:22px 0 30px}.counter{font-size:10px;color:var(--muted);margin-top:12px}.timeline{display:grid;grid-template-columns:repeat(4,1fr);padding:15px 0}.timeline-item{text-align:left;position:relative;border:0;border-top:1px solid #bbc2ac;background:none;color:var(--ink);padding:25px 22px 10px 0}.timeline-item:before{content:'';position:absolute;width:9px;height:9px;border-radius:50%;background:#81906b;top:-5px;left:0}.timeline-item strong{display:block;font:400 21px/1.4 'Playfair Display',Georgia,serif;margin:12px 0}.timeline-item>span:last-child{font-size:11px;color:var(--muted)}.timeline-item:hover strong{color:#8b603f}.map-layout{display:grid;grid-template-columns:1fr 1.7fr;gap:45px}.country-list{display:grid;gap:10px}.country{border:1px solid var(--line);border-radius:5px;background:transparent;padding:15px 18px;text-align:left;color:var(--ink)}.country strong{display:block;font-size:14px;font-weight:500}.country span{font-size:11px;color:var(--muted)}.country[aria-pressed=true]{background:#e9eddf;border-color:#9ba98a}.map-note,#place-description{font-size:11px;color:var(--muted);margin-top:20px}.map-frame{border:1px solid var(--line);border-radius:7px;overflow:hidden;background:#e6ebdf}.map-frame iframe{width:100%;height:330px;display:block;border:0}.map-frame>a{display:block;padding:8px 12px;font-size:11px;text-align:right}.closing{text-align:center;padding:65px 20px}.closing>span{font:36px Georgia;color:#899671}.closing h2{font-size:28px;margin-top:18px}.closing p{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;padding:25px 32px;font-size:10px;color:var(--muted)}.demo-banner{text-align:center;font-size:10px;color:var(--muted);margin:0;padding:8px 15px 20px}@media(max-width:700px){.site-header{padding:20px}.brand{font-size:24px}nav{gap:15px;font-size:10px}.hero{padding:60px 20px}.hero h1{letter-spacing:-1.5px}.hero-flower{right:5%;top:14%;font-size:30px}.hero>p:not(.eyebrow){font-size:13px}.desktop{display:none}.eyebrow{font-size:9px;letter-spacing:1.6px}section:not(.hero){padding:36px 22px}.section-heading{margin-bottom:28px}.small-note{display:none}.memory-layout{grid-template-columns:1fr;gap:32px;padding:8px 10px}.polaroid{max-width:400px;width:100%;margin:auto}.memory-note h3{font-size:30px}.memory-note .button{width:100%}.timeline{grid-template-columns:1fr;padding-left:8px}.timeline-item{border-top:0;border-left:1px solid #bbc2ac;padding:0 0 30px 25px}.timeline-item:before{top:8px;left:-5px}.timeline-item:last-child{padding-bottom:0}.timeline-item strong{margin:5px 0}.map-layout{grid-template-columns:1fr;gap:15px}.map-frame iframe{height:300px}.closing{padding:45px 22px}.closing h2{font-size:25px}footer{padding:22px;gap:20px}.counter{text-align:center}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* The landing letter: one count per scroll, followed by the chapter choices. */
.header-note{font:italic 13px Georgia,serif;color:var(--muted)}
section.milestone{position:relative;min-height:88vh;min-height:88svh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:65px 24px 90px;border:0;overflow:hidden}
.tone-rose{--accent:#ac6572;background:#f6e8e4}
.tone-butter{--accent:#997333;background:#f5efd8}
.tone-sage{--accent:#62764f;background:#e9eddf}
.tone-lavender{--accent:#827091;background:#ede7f0}
.milestone:before,.milestone:after{position:absolute;pointer-events:none;color:var(--accent);opacity:.35;font:40px Georgia,serif}
.milestone:before{content:'✧';left:12%;top:26%;transform:rotate(-15deg)}
.milestone:after{content:'♡';right:12%;bottom:25%;transform:rotate(15deg)}
.milestone .eyebrow{color:var(--accent);margin:4px 0 14px;max-width:90%}
.milestone-doodle{color:var(--accent);font-size:42px;line-height:1.3;display:block;animation:doodle-float 3.5s ease-in-out infinite}
.milestone h1,.milestone h2{margin:5px 0 18px;font-family:'Playfair Display',Georgia,serif;font-weight:400;max-width:100%}
.milestone-number{display:block;font-size:clamp(76px,15vw,170px);font-variant-numeric:tabular-nums;line-height:1.12;letter-spacing:-.055em;color:var(--accent);overflow-wrap:anywhere}
.milestone-label{display:block;font-size:clamp(29px,4.5vw,48px);line-height:1.3;letter-spacing:-1px;margin-top:5px}
.milestone-note{max-width:350px;margin:0 0 15px;color:#68665f;font:italic 17px/1.7 Georgia,serif}
.scroll-prompt{position:absolute;bottom:28px;font-size:11px;letter-spacing:.5px;padding:12px;color:var(--accent)}
.scroll-prompt:hover{text-decoration:underline;text-underline-offset:5px}
.counted .milestone-doodle{animation:doodle-pop .5s ease-out,doodle-float 3.5s .5s ease-in-out infinite}
.explore-section{text-align:center;padding-top:70px!important;padding-bottom:70px!important}
.chapter-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:35px auto 0;max-width:720px}
.chapter-links a{border:1px solid var(--line);border-radius:65px 65px 12px 12px;padding:32px 15px;background:#fffaf2;transition:transform .2s,background .2s}
.chapter-links a:hover{transform:translateY(-5px);background:#e9eddf}
.chapter-links a>span:first-child{display:block;font:32px Georgia,serif;color:#9d795a;margin-bottom:20px}
.chapter-links strong{display:block;font:23px 'Playfair Display',Georgia,serif;margin-bottom:12px}
.chapter-links a>span:last-child{font-size:11px;color:var(--muted)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@keyframes doodle-float{0%,100%{transform:translateY(0) rotate(-7deg)}50%{transform:translateY(-7px) rotate(7deg)}}
@keyframes doodle-pop{0%{transform:scale(1)}50%{transform:scale(1.25) rotate(10deg)}100%{transform:scale(1)}}
@media(max-width:700px){.header-note{font-size:11px;max-width:145px;text-align:right}section.milestone{min-height:calc(100svh - 75px);padding:45px 22px 85px}.milestone:before{left:7%;top:22%;font-size:27px}.milestone:after{right:7%;bottom:23%;font-size:27px}.milestone-note{max-width:270px;font-size:16px}.chapter-links{grid-template-columns:1fr;gap:12px}.chapter-links a{border-radius:12px;padding:22px}.chapter-links a>span:first-child{margin-bottom:12px}.chapter-links strong{font-size:24px}}
@media(prefers-reduced-motion:reduce){.milestone-doodle,.counted .milestone-doodle{animation:none}}
.memory-picker{display:flex;align-items:center;gap:14px;margin-bottom:30px;font-size:12px}.memory-picker select{min-width:0;max-width:100%;flex:1;padding:12px;border:1px solid var(--line);border-radius:5px;background:#fffaf2;color:var(--ink);font:inherit}.memory-picker select:focus-visible{outline:3px solid #ac6b48;outline-offset:3px}@media(max-width:700px){.memory-picker{align-items:stretch;flex-direction:column;gap:6px}}
