@font-face{font-family:'Hadasim CLM';src:url('assets/HadasimCLM-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:'Hadasim CLM';src:url('assets/HadasimCLM-Bold.ttf') format('truetype');font-weight:700;font-display:swap}
:root{--paper:#f7f1e7;--ink:#263d63;--line:#263d6326;--header-height:90px}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:400 19px/1.8 'Hadasim CLM',serif}
button,a{-webkit-tap-highlight-color:transparent;color:var(--ink)}
button,.button{font:400 17px/1.5 'Hadasim CLM',serif;min-height:48px;padding:12px 28px;border:1px solid var(--ink);border-radius:50px;background:var(--paper);color:var(--ink);cursor:pointer;transition:box-shadow .2s,transform .2s}
button:hover:not(:disabled),.button:hover{box-shadow:0 3px 15px #263d6315;transform:translateY(-1px)}
button:disabled{opacity:.4;cursor:default}
button.plain{border-color:transparent;background:var(--paper);padding:8px 12px;font-size:16px}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:4px}
[hidden]{display:none!important}
.button{display:inline-block;text-decoration:none;text-align:center}
.site-header{min-height:var(--header-height);padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:10;background:var(--paper);border-bottom:1px solid var(--line)}
#brand{display:block;position:relative;width:185px;height:84px;overflow:hidden;flex-shrink:0}
#brand img{position:absolute;width:185px;height:185px;max-width:none;top:-51px;left:0}
.site-nav{display:flex;align-items:center;gap:10px}
.site-nav button{white-space:nowrap}
main{min-height:calc(100svh - var(--header-height))}
h1,h2{font-family:Akitza,'Hadasim CLM',serif;font-weight:400;line-height:1.25}
h1{font-size:clamp(34px,4vw,48px);margin:0 0 28px}
h1:focus{outline:none}
h2{font-size:26px;margin:0 0 16px}
p{margin:0 0 20px}
strong{font-weight:700}
.eyebrow{font-size:15px;margin:0 0 12px}
.reading{max-width:690px;margin:40px auto 75px;padding:0 28px}
.reading h1,.reading .eyebrow{text-align:center}
.copy,.task{white-space:pre-line;font-size:20px;line-height:1.9;overflow-wrap:anywhere}
.task{margin-top:26px}
.pager{margin-top:34px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap}
.prepare-evening{margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.prepare-evening p{font-size:18px;margin-bottom:15px}
.sensory{text-align:center;max-width:690px;margin-top:28px}
.sense-illustration{display:block;margin:0 -28px 22px}
.sense-illustration img{display:block;width:100%;height:auto;max-height:420px;object-fit:contain;mask-image:linear-gradient(to bottom,transparent 0,#000 7%,#000 90%,transparent 100%)}
.timer{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:28px}
.clock{font-size:38px;font-variant-numeric:tabular-nums;letter-spacing:.05em;direction:ltr}
.timer-control{font-size:16px;padding:10px 25px}
.sound-control{border-color:transparent;font-size:14px;min-height:36px;padding:5px 12px}
.timer p{font-size:16px;margin:0}
.audio-pending{font-size:14px;text-align:center;margin:26px 0 0}
audio,video{width:100%;margin-top:24px}
.story-art{width:180px;height:135px;display:block;margin:0 auto 26px}
.map-scene{width:100%;aspect-ratio:948/1659;overflow:hidden;position:relative}
.map-scene svg{width:100%;height:100%;display:block}
.couple{transition:transform 1.7s cubic-bezier(.35,.1,.3,1);transform-origin:0 0}
.journey{position:relative;margin:0 auto}
.opening{min-height:calc(100svh - var(--header-height));max-width:560px;display:flex;flex-direction:column;justify-content:space-between;isolation:isolate;overflow:hidden}
.opening>.map-scene{position:absolute;inset:0;aspect-ratio:auto;z-index:-1}
.map-heading{text-align:center;padding:28px 24px 0;position:relative;z-index:1}
.map-heading h1{margin-bottom:14px;font-size:clamp(36px,4.8vw,51px)}
.opening-line{font-size:20px;line-height:1.5;max-width:460px;margin:0 auto}
.map-action{text-align:center;position:relative;padding:24px 20px 30px}
.map-action button{box-shadow:0 4px 24px #263d6324}
.date-map{max-width:1080px;padding:30px 28px 60px;margin:auto}
.date-map>h1{text-align:center;margin-bottom:28px;font-size:38px}
.map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:44px;align-items:start}
.journey-panel{min-width:0}
.journey-panel .map-scene{border-radius:8px;max-width:430px;margin:auto}
.journey-panel .map-action{padding-top:20px}
.map-itinerary{padding-top:6px;min-width:0}
.opening-link{display:block;margin-bottom:12px}
.phase{border-top:1px solid var(--line)}
.phase:last-child{border-bottom:1px solid var(--line)}
.phase summary{display:flex;align-items:center;gap:12px;min-height:68px;cursor:pointer;list-style:none;padding:16px 0;font-size:23px;line-height:1.5}
.phase summary::-webkit-details-marker{display:none}
.phase summary::after{content:'+';margin-inline-start:auto;font-size:23px;flex-shrink:0}
.phase[open] summary::after{content:'−'}
.phase-number{font-size:17px;min-width:26px;text-align:center;border:1px solid var(--line);border-radius:50%;line-height:26px}
.phase.current-phase .phase-number{border-color:var(--ink);font-weight:700}
.phase-stations{display:flex;flex-direction:column;padding:0 0 12px;gap:2px}
.station-link{width:100%;text-align:start;display:flex;align-items:center;gap:10px;border:0;border-radius:8px;background:var(--paper);padding:10px 12px;font-size:18px}
.station-link[aria-current=step]{font-weight:700;box-shadow:inset 0 0 0 1px var(--line)}
.station-link[aria-current=step]::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--ink);flex-shrink:0}
.celebrate{max-width:760px;margin:0 auto 65px}
.arrival-scene{height:290px;overflow:hidden;max-width:500px;margin:auto}
.arrival-scene .map-scene{height:100%;aspect-ratio:auto}
.closing{text-align:center;max-width:630px;margin:30px auto 0;padding:0 26px}
.closing h1{font-size:43px}
.closing p{font-size:19px;line-height:1.9}
.continue{margin:34px 0;padding-top:26px;border-top:1px solid var(--line)}
.continue h2{font-size:26px}
.fade{animation:appear .3s ease}
@keyframes appear{from{opacity:.45}to{opacity:1}}
@media(max-width:700px){
 :root{--header-height:78px}
 .site-header{padding:0 14px;gap:5px}
 #brand{width:150px;height:69px}#brand img{width:150px;height:150px;top:-42px}
 .site-nav{gap:0}.site-nav button{font-size:15px;padding:7px 9px;min-height:40px}
 .reading{margin:28px auto 60px;padding:0 24px}
 .reading h1{font-size:34px;margin-bottom:22px}.copy,.task{font-size:19px;line-height:1.9}
 .sensory{margin-top:24px}.sense-illustration{margin:0 -24px 18px}
 .sense-illustration img{max-height:none}
 .map-heading{padding:26px 20px 0}.map-heading h1{font-size:37px}.opening-line{font-size:19px;max-width:370px}
 .opening{max-width:560px;min-height:max(620px,calc(100svh - var(--header-height)))}
 .date-map{padding:25px 20px 50px}.date-map>h1{font-size:34px;margin-bottom:22px}
 .map-layout{display:flex;flex-direction:column;gap:18px}.journey-panel{width:100%}
 .journey-panel .map-scene{max-width:none}.journey-panel .map-action{padding:20px 0 6px}
 .map-itinerary{width:100%;padding-top:0}
 .phase summary{font-size:22px}.station-link{font-size:18px}
 .closing h1{font-size:37px}.closing p{font-size:18px}
 .arrival-scene{height:255px}
 .pager{margin-top:30px}.story-art{width:150px;height:113px}
}
@media(max-width:380px){#brand{width:138px;height:64px}#brand img{width:138px;height:138px;top:-38px}.site-nav{flex-direction:column}.site-nav button{padding:2px 10px;min-height:32px}.map-heading h1{font-size:34px}.opening-line{font-size:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Progression stays separate from the optional itinerary. */
.progression{max-width:560px}
.progression-action{text-align:center;padding:22px 24px 32px}
.journey-check-in{max-width:510px;margin:0 auto 22px;font-size:20px;line-height:1.7}
.chuppah-sign text{font-family:'Hadasim CLM',serif}
.sensory-task{margin:0 0 22px}
.sensory .sense-illustration{margin-top:0}

.chaser-name text{font-family:'Hadasim CLM',serif}

.story-video{display:block;width:min(100%,420px);height:auto;max-height:76svh;aspect-ratio:9/16;object-fit:contain;margin:20px auto 0;background:#f7f1e7;border-radius:8px}

/* Clear game-board path and the three-step introduction. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.map-scene{aspect-ratio:720/1280}
.intro-screen{max-width:1000px;margin:0 auto;padding:22px 24px 45px}
.intro-heading{text-align:center}.intro-heading>p{margin:0 0 8px}.intro-heading h1{font-size:32px;margin:10px 0}.intro-subtitle{font-size:21px}
.intro-layout{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px}
.intro-board{position:relative;max-width:400px;width:100%;margin:auto}
.intro-content .copy{font-size:21px;line-height:1.8}
.intro-content .pager{margin-top:25px}
.chaser-voices{position:absolute;bottom:12%;left:0;right:0;display:flex;flex-wrap:wrap;justify-content:center;gap:8px;pointer-events:none}
.chaser-voices span{background:#f7f1e7ed;border:1px solid #7894b2;border-radius:18px;padding:4px 12px;font-size:16px;animation:appear .9s both}
.chaser-voices span:nth-child(2){animation-delay:.35s}.chaser-voices span:nth-child(3){animation-delay:.7s}
.intro-1 .chaser{animation:appear 1s both}
.board-step.active-step{filter:drop-shadow(0 0 7px #759cbd66)}
.pager{direction:rtl;justify-content:space-between;max-width:500px;margin-inline:auto}.pager>button:last-child{margin-inline-start:auto}
.transition-caption{text-align:center;margin:0;font-size:20px}
.progression{max-width:440px;padding:8px 20px 20px}.progression .map-scene{max-height:calc(100svh - var(--header-height) - 115px);aspect-ratio:720/1280}.progression .pager{margin-top:8px}
.love-quote{margin:32px 0 18px;padding:0 24px 0 0;border-right:2px solid #7894b2}
.quote-credit{font-size:14px;line-height:1.7}
@media(max-width:700px){.intro-screen{padding:16px 22px 35px}.intro-layout{display:flex;flex-direction:column;gap:10px}.intro-board{max-width:330px}.intro-board .map-scene{height:42svh;min-height:285px;max-height:410px;aspect-ratio:auto}.intro-heading>p{font-size:17px}.intro-subtitle{font-size:19px!important}.intro-content .copy{font-size:19px}.chaser-voices{bottom:9%;gap:4px}.chaser-voices span{font-size:13px;padding:3px 7px}.intro-content .pager{margin-top:20px}.progression .map-scene{width:100%}}

/* Watercolor desert restoration. */
.spirit-introduction{display:block;width:100%;max-height:620px;object-fit:contain;mix-blend-mode:multiply}
.intro-board{max-width:430px}.intro-heading h1{font-size:34px}.intro-1 .intro-board{max-width:390px}
@media(max-width:700px){.intro-board{max-width:430px}.intro-board .map-scene{height:auto;min-height:0;max-height:none;aspect-ratio:720/1280}.intro-heading h1{font-size:28px}.spirit-introduction{max-height:58svh}.intro-layout{gap:20px}}

/* Blend watercolor paper seamlessly into the site cream. */
html,body,#app,.site-header,.intro-screen,.intro-board,.reading,.date-map{background-color:#f7f1e7}
.map-scene{border-radius:0!important}
.map-scene svg,.spirit-introduction,.sense-illustration img{mix-blend-mode:multiply;mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 94%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 94%,transparent);-webkit-mask-composite:source-in}
.sense-illustration img{height:auto}.anniversary-illustration{max-width:470px;margin:24px auto}.contents-only{max-width:680px;margin:0 auto;padding:28px 22px}.map-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin:24px 0 32px}.contents-only .map-itinerary{width:100%;max-width:none}

/* Remove warm paper pixels at render time; retain translucent blue pigment. */
.watercolor-filter-defs{position:absolute;pointer-events:none}
.map-scene svg,.spirit-introduction,.sense-illustration img,.celebration-art img{filter:url(#watercolor-paper);mix-blend-mode:normal}
.celebration-art{max-width:460px;margin:0 auto 20px}.celebration-art img{display:block;width:100%;height:auto}
.reading.sensory .copy{white-space:pre-line}
@media(prefers-reduced-motion:no-preference){.celebration-art{animation:appear 1.1s both}}

/* Brief transitions, quiet prompts, and distinct task layouts. */
.couple{transition-duration:.8s}.couple-gesture{transform-origin:50% 85%;animation:hand-in-hand .85s ease-in-out both}
@keyframes hand-in-hand{0%{transform:rotate(0)}35%{transform:rotate(-2deg) translateY(-3px)}70%{transform:rotate(1deg)}100%{transform:rotate(0)}}
.chaser-whisper{text-align:center;margin:6px auto 0;font-size:18px;line-height:1.5;max-width:95%}.progression .transition-caption{margin-top:9px}
.next-options{margin-top:48px}.contact-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.contact-link{display:inline-flex;align-items:center;gap:10px}.whatsapp-icon{width:23px;height:23px;flex:none}
.kind-conversation .task{font-size:25px;line-height:1.7;border-block-start:1px solid var(--line);padding-block-start:22px}.kind-media{max-width:680px}.kind-letter .copy{text-align:right}.kind-letter .sense-illustration{max-width:420px;margin-inline:auto}.kind-sense .eyebrow{display:none}
@media(prefers-reduced-motion:reduce){.couple-gesture{animation:none}}
