:root{--bg:#faf7f2;--surface:#ffffff;--text:#2c2a27;--muted:#7a756e;--accent:#6b7f4e;--accent-strong:#55663e;--accent-contrast:#ffffff;--btn:#5a3416;--btn-hover:#3d200a;--terminal:#e85d8a;--terminal-strong:#c9366a;--cream:#f7f1e3;--border:#e7e1d8;--bg-rgb:250,247,242;--map-fade:0.65;--radius:12px;--max-width:760px;--nav-h:70px;--font-serif:var(--font-cormorant),Georgia,"Times New Roman",serif;--font-body:var(--font-eb-garamond),Georgia,"Times New Roman",serif;--font-transit:"Helvetica Neue",Helvetica,Arial,sans-serif;--font-ko:var(--font-body),"Apple SD Gothic Neo","Noto Sans KR","Malgun Gothic",sans-serif;--font-zh:var(--font-body),"PingFang SC","Noto Sans SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;overflow-x:hidden}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--bg);color:var(--text);font-family:var(--font-body);line-height:1.6;display:flex;flex-direction:column;min-height:100vh;min-height:100svh}h1,h2,h3{font-family:var(--font-serif);font-weight:600;line-height:1.2}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:2.5rem 1.25rem;flex:1 1}.nav{position:relative;display:flex;align-items:center;justify-content:space-between;height:var(--nav-h);padding:1rem 1.25rem;border-bottom:1px solid var(--border);background:var(--surface)}.nav-brand{font-family:var(--font-serif);font-size:1.4rem;letter-spacing:.08em;color:var(--text)}.nav-links{display:flex;gap:.25rem}.nav-links a{font-family:var(--font-transit);text-transform:uppercase;letter-spacing:.18em;text-indent:.18em;font-size:.72rem;padding:.5rem .8rem;border-radius:6px;color:var(--text);transition:background-color .18s ease,color .18s ease}.nav-links a:hover{text-decoration:none;background:color-mix(in srgb,var(--btn) 8%,transparent);color:var(--btn)}.nav-links a[aria-current=page]{background:color-mix(in srgb,var(--btn) 14%,transparent);color:var(--btn);font-weight:500}.nav-actions{display:flex;align-items:center;gap:.5rem}.nav-rsvp{background:var(--btn);color:var(--accent-contrast);font-family:var(--font-transit);font-weight:500;text-transform:uppercase;font-size:.72rem;letter-spacing:.18em;text-indent:.18em;line-height:1;padding:.62rem 1rem;border-radius:6px;white-space:nowrap;transition:background-color .22s ease}.nav-rsvp:hover,.nav-rsvp[aria-current=page]{background:var(--btn-hover);text-decoration:none}.nav-rsvp:focus-visible{outline:2px solid var(--btn);outline-offset:3px}.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;background:transparent;border:none;cursor:pointer}.nav-toggle-bar{display:block;width:22px;height:2px;margin:0 auto;background:var(--text);border-radius:2px}@media (max-width:600px){:root{--nav-h:74px}.nav-toggle{display:flex}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;z-index:10;flex-direction:column;gap:0;background:var(--surface);border-bottom:1px solid var(--border);box-shadow:0 6px 12px rgba(0,0,0,.05)}.nav-links.is-open{display:flex}.nav-links a{padding:.9rem 1.25rem;border-top:1px solid var(--border);border-radius:0}}.footer{text-align:center;padding:2rem 1rem;border-top:1px solid var(--border);color:var(--muted);font-size:.9rem}.footer-muted{margin-top:.25rem}.reveal--armed{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}.reveal--in{opacity:1;transform:none}.full-bleed{position:relative;left:50%;width:100vw;margin-left:-50vw;margin-top:-2.5rem;margin-bottom:-2.5rem}section[id]{scroll-margin-top:1rem}.hero{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;min-height:calc(100vh - var(--nav-h));min-height:calc(100svh - var(--nav-h));padding:2rem 1.25rem 2.25rem;background:var(--bg);--hero-w:min(84vw,582px,calc(73svh - 153px))}.hero-figure{position:relative;margin:0;width:var(--hero-w);border-radius:16px;overflow:hidden}.hero-carousel{position:relative;isolation:isolate}.hero-photo{position:relative;display:block;width:100%;aspect-ratio:4/5;background:#e9e4da;--hero-fade:1100ms;--hero-settle:1.035}.hero-slide{position:absolute;inset:0;opacity:0;transform:scale(var(--hero-settle));z-index:0;transition:opacity 0s linear var(--hero-fade),transform 0s linear var(--hero-fade)}.hero-slide.is-on{opacity:1;transform:none;z-index:1;transition:opacity var(--hero-fade) ease,transform calc(var(--hero-fade) * 1.6) cubic-bezier(.22,.61,.36,1)}.hero-slide__img{object-fit:cover}@media (prefers-reduced-motion:reduce){.hero-photo{--hero-fade:0ms;--hero-settle:1}}.hero-ticks{position:absolute;left:50%;bottom:.7rem;transform:translateX(-50%);z-index:2;display:flex;gap:3px;filter:drop-shadow(0 1px 2px rgba(0,0,0,.55))}.hero-tick{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;padding:0;background:none;width:26px;height:30px;display:grid;place-items:center;cursor:pointer}.hero-tick:before,.hero-tick__fill{grid-area:1/1;width:16px;height:2px;border-radius:1px}.hero-tick:before{content:"";background:color-mix(in srgb,var(--cream) 34%,transparent);transition:background-color .3s ease}.hero-tick:hover:before{background:color-mix(in srgb,var(--cream) 62%,transparent)}.hero-tick__fill{background:var(--cream);transform:scaleX(0);transform-origin:left center}.hero-tick.is-done .hero-tick__fill{transform:scaleX(1)}.hero-tick.is-now .hero-tick__fill{animation:hero-tick-fill var(--hero-dwell,4s) linear forwards}.hero-ticks.is-paused .hero-tick.is-now .hero-tick__fill{animation-play-state:paused}@keyframes hero-tick-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.hero-tick.is-now .hero-tick__fill{animation:none;transform:scaleX(1)}}.hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:44px;height:44px;display:grid;place-items:center;border:0;padding:0;background:none;color:var(--cream);cursor:pointer;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6));opacity:0;pointer-events:none;transition:opacity .25s ease}.hero-arrow svg{width:26px;height:26px}.hero-arrow--prev{left:.35rem}.hero-arrow--prev svg{transform:scaleX(-1)}.hero-arrow--next{right:.35rem}@media (hover:hover) and (pointer:fine){.hero-carousel:hover .hero-arrow{opacity:.85;pointer-events:auto}.hero-carousel:hover .hero-arrow:hover{opacity:1}}.hero-arrow:focus-visible{opacity:1;pointer-events:auto}.hero-arrow:focus-visible,.hero-tick:focus-visible{outline:2px solid var(--cream);outline-offset:2px;border-radius:3px}.hero-caption{position:absolute;top:0;left:0;right:0;padding:1.4rem 1.25rem 4rem;text-align:center;color:var(--cream);pointer-events:none;background:linear-gradient(180deg,rgba(0,0,0,.68) 0,rgba(0,0,0,.6) 30%,rgba(0,0,0,.5) 58%,rgba(0,0,0,.42) 74%,rgba(0,0,0,.24) 86%,rgba(0,0,0,.08) 94%,transparent)}.hero-caption .eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:.72rem;margin:0;color:color-mix(in srgb,var(--cream) 88%,transparent)}.hero-caption h1{font-family:var(--font-title,var(--font-serif));font-weight:500;font-size:clamp(2.6rem,8vw,4.4rem);line-height:1.05;margin:.25rem 0 0;color:var(--cream)}.hero-caption .hero-when{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;font-family:var(--font-serif);font-size:clamp(1.15rem,2.05rem - 2.2vw,1.3rem);font-weight:400;letter-spacing:.06em;color:var(--cream);margin:.6rem 0 0;text-shadow:0 1px 2px rgba(0,0,0,.55),0 2px 10px rgba(0,0,0,.35)}.hero-when>.hero-flourish:first-child{margin-right:.48em}.hero-when>.hero-flourish:last-child{margin-left:.48em}.hero-when__venue:before{content:"·";margin:0 .31em}.hero-caption .hero-when__date{font-weight:700}.hero-flourish{position:relative;top:-.07em}@media (max-width:600px){.hero-caption .hero-when{line-height:1.3}.hero-when__venue{order:1;flex-basis:100%}.hero-when__venue:before{content:none}}.train-strip{--train-ink:var(--accent-strong);display:block;width:var(--hero-w);height:auto;color:var(--train-ink)}.train-strip__wall{fill:currentColor;fill-opacity:.05;stroke:none}.train-strip__body{fill:var(--bg);stroke-opacity:.8}.train-strip__glass,.train-strip__leafpane{fill:currentColor;fill-opacity:.14;stroke:none}.train-strip__aperture{fill:currentColor;fill-opacity:.38;stroke:none}.train-strip__jamb{stroke-opacity:.2}.train-strip__seam{stroke-opacity:.28}.train-strip__leafpanel{fill:var(--bg);stroke:none}.train-strip__platform{fill:color-mix(in srgb,var(--train-ink) 10%,var(--bg));stroke:none}.train-strip__tactile{fill:currentColor;fill-opacity:.13;stroke:none}.train-strip__edge{stroke-opacity:.5}.train-strip__hanger{stroke-opacity:.3}.train-strip__sign{fill:currentColor;fill-opacity:.82;stroke:none}.train-strip__signtext{font-family:var(--font-transit);font-size:4.2px;font-weight:500;letter-spacing:.4px;fill:var(--bg);stroke:none}.train-strip__badge{fill:#54963a;stroke:none}.train-strip__badgetext{font-family:var(--font-transit);font-size:3.2px;font-weight:700;fill:var(--bg);stroke:none}.train-strip__figure,.train-strip__leg{fill:currentColor;fill-opacity:.75;stroke:none}.train-strip__arm{stroke-opacity:.75;stroke-width:.5;stroke-linecap:round}.train-strip__leg{transform-box:fill-box;transform-origin:50% 0}.train-strip__cars,.train-strip__leaf,.train-strip__leg,.train-strip__people{animation-duration:15.8s;animation-timing-function:linear;animation-iteration-count:infinite}.train-strip__cars{animation-name:train-service}.train-strip__leaf--l{animation-name:door-left}.train-strip__leaf--r{animation-name:door-right}.train-strip__people{animation-name:platform-couple}.train-strip__leg--fore{animation-name:gait-fore}.train-strip__leg--aft{animation-name:gait-aft}.train-strip__leg{animation-timing-function:ease-in-out}@keyframes train-service{0%{transform:translateX(270px);animation-timing-function:linear}11.392%{transform:translateX(270px);animation-timing-function:cubic-bezier(.15,.72,.24,1)}25%{transform:translateX(510px);animation-timing-function:linear}54.747%{transform:translateX(510px);animation-timing-function:cubic-bezier(.45,0,.82,.42)}70.570%{transform:translateX(740px);animation-timing-function:linear}to{transform:translateX(780px)}}@keyframes door-left{0%{transform:translateX(2.5px);animation-timing-function:linear}25%{transform:translateX(2.5px);animation-timing-function:cubic-bezier(.3,0,.2,1)}30.696%{transform:translateX(0);animation-timing-function:linear}42.089%{transform:translateX(0);animation-timing-function:cubic-bezier(.4,0,.25,1)}47.785%{transform:translateX(2.5px)}to{transform:translateX(2.5px)}}@keyframes door-right{0%{transform:translateX(-2.5px);animation-timing-function:linear}25%{transform:translateX(-2.5px);animation-timing-function:cubic-bezier(.3,0,.2,1)}30.696%{transform:translateX(0);animation-timing-function:linear}42.089%{transform:translateX(0);animation-timing-function:cubic-bezier(.4,0,.25,1)}47.785%{transform:translateX(-2.5px)}to{transform:translateX(-2.5px)}}@keyframes platform-couple{0%{transform:translateX(0);opacity:1}30.696%{transform:translateX(0);opacity:1}42.089%{transform:translateX(14px);opacity:1;animation-timing-function:step-end}80.696%{transform:translateX(-22px);opacity:0}85.127%{transform:translateX(-16.5px);opacity:1}98.418%{transform:translateX(0);opacity:1}to{transform:translateX(0);opacity:1}}@keyframes gait-fore{0%{transform:rotate(0deg)}30.696%{transform:rotate(0deg)}32.12%{transform:rotate(18deg)}34.968%{transform:rotate(-18deg)}37.816%{transform:rotate(18deg)}40.665%{transform:rotate(-18deg)}42.089%{transform:rotate(0deg)}80.696%{transform:rotate(0deg)}82.173%{transform:rotate(18deg)}85.127%{transform:rotate(-18deg)}88.08%{transform:rotate(18deg)}91.033%{transform:rotate(-18deg)}93.987%{transform:rotate(18deg)}96.941%{transform:rotate(-18deg)}98.418%{transform:rotate(0deg)}to{transform:rotate(0deg)}}@keyframes gait-aft{0%{transform:rotate(0deg)}30.696%{transform:rotate(0deg)}32.12%{transform:rotate(-18deg)}34.968%{transform:rotate(18deg)}37.816%{transform:rotate(-18deg)}40.665%{transform:rotate(18deg)}42.089%{transform:rotate(0deg)}80.696%{transform:rotate(0deg)}82.173%{transform:rotate(-18deg)}85.127%{transform:rotate(18deg)}88.08%{transform:rotate(-18deg)}91.033%{transform:rotate(18deg)}93.987%{transform:rotate(-18deg)}96.941%{transform:rotate(18deg)}98.418%{transform:rotate(0deg)}to{transform:rotate(0deg)}}@media (prefers-reduced-motion:reduce){.train-strip__cars,.train-strip__leaf,.train-strip__leg,.train-strip__people{animation:none}}.stopmap{--card-gap:1rem;--card-w:max(18rem,min(26rem,var(--panel-w,26rem),calc(100vw - var(--panel-w, 0px) - 4.5rem - var(--card-gap))));--map-dur-open:0.55s;--map-dur-close:0.5s;--map-curve-open:cubic-bezier(0.22,0.61,0.36,1);--map-curve-close:cubic-bezier(0.4,0,0.2,1);--aside-dur-out:0.15s;--aside-dur-in:0.28s;--aside-delay-in:0.22s;position:relative;height:calc(100vh - var(--nav-h));height:calc(100svh - var(--nav-h));padding:2.25rem;overflow:hidden;background:var(--bg)}.stopmap,.stopmap__area{display:flex;align-items:center;justify-content:center}.stopmap__area{flex:1 1;align-self:stretch;min-width:0;min-height:0}.stopmap__stage{position:relative;transition:transform var(--map-dur-close) var(--map-curve-close)}.stopmap[data-open=true] .stopmap__stage{transition:transform var(--map-dur-open) var(--map-curve-open)}.stopmap:not([data-measured=true]) .stopmap__stage{width:100%;height:100%}.stopmap:not([data-measured=true]) .stopmap__svg{width:100%;height:100%;box-shadow:none}.stopmap__svg{display:block;position:relative;z-index:2;background:var(--bg);box-shadow:0 12px 30px rgba(44,42,39,.13),0 2px 8px rgba(44,42,39,.06)}.stopmap__base{opacity:var(--map-fade)}.stopmap__svg.is-exploring{cursor:-webkit-grab;cursor:grab;touch-action:none}.stopmap__svg.is-exploring:active{cursor:-webkit-grabbing;cursor:grabbing}.mapaside{position:absolute;z-index:4;top:2.25rem;left:2.25rem;right:calc(50% + var(--panel-w) / 2 + 1.5rem);max-width:13rem;margin-left:auto;pointer-events:none}.mapintro{transition:opacity var(--aside-dur-in) ease var(--aside-delay-in),transform var(--aside-dur-in) var(--map-curve-close) var(--aside-delay-in)}.mapintro__title{margin:0;font-family:var(--font-serif);font-weight:500;font-size:1.7rem;line-height:1.15}.mapintro__hint{margin:.45rem 0 0;font-family:var(--font-transit);text-transform:uppercase;letter-spacing:.18em;font-size:.62rem;color:var(--muted)}.mapindex{margin:1.15rem 0 0;padding:0;list-style:none;pointer-events:auto;border-left:1px solid var(--border);transition:opacity var(--aside-dur-in) ease var(--aside-delay-in),transform var(--aside-dur-in) var(--map-curve-close) var(--aside-delay-in),visibility 0s linear var(--aside-delay-in)}.mapindex__stop{position:relative;display:block;width:100%;padding:.42rem 0 .42rem 1.15rem;border:0;background:none;font-family:var(--font-transit);font-size:.8rem;letter-spacing:.015em;line-height:1.35;text-align:left;color:var(--muted);cursor:pointer;transition:color .16s ease}.mapindex__stop:before{content:"";box-sizing:border-box;position:absolute;left:-4px;top:.68rem;width:7px;height:7px;border-radius:50%;background:var(--bg);border:1.5px solid var(--stop-line,#ea4335);transition:background .16s ease,transform .16s ease}.mapindex__stop.is-active,.mapindex__stop:hover{color:var(--text)}.mapindex__stop.is-active{font-weight:500}.mapindex__stop.is-active:before,.mapindex__stop:hover:before{background:var(--stop-line,#ea4335);transform:scale(1.25)}.mapindex__stop:focus-visible{outline:2px solid var(--btn);outline-offset:1px;border-radius:4px}.stopmap[data-open=true] .mapindex,.stopmap[data-open=true] .mapintro{opacity:0;transform:translateX(-8px);transition:opacity var(--aside-dur-out) ease-out,transform var(--aside-dur-out) ease-out}.stopmap[data-open=true] .mapindex{visibility:hidden;pointer-events:none;transition:opacity var(--aside-dur-out) ease-out,transform var(--aside-dur-out) ease-out,visibility 0s linear var(--aside-dur-out)}@media (max-width:959px) and (max-aspect-ratio:1/1){.stopmap{flex-direction:column;align-items:stretch;padding:1.1rem 1rem 1.25rem;gap:.9rem}.mapaside{display:contents}.mapintro{order:0;pointer-events:none}.stopmap__area{order:1}.mapindex{order:2;display:flex;gap:.5rem;margin:0;border-left:0;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;scroll-padding-inline:.25rem}.mapindex::-webkit-scrollbar{display:none}.mapindex>li{flex:none;scroll-snap-align:start}.mapindex__stop{display:inline-flex;align-items:center;gap:.5rem;width:auto;padding:.55rem .85rem .55rem .7rem;border:1px solid var(--border);border-radius:8px;background:none;white-space:nowrap;font-weight:500}.mapindex__stop:before{position:static;flex:none}.mapindex__stop.is-active{border-color:color-mix(in srgb,var(--text) 26%,var(--border));background:var(--surface)}.stopmap[data-open=true] .mapindex,.stopmap[data-open=true] .mapintro{opacity:1;transform:none;visibility:visible;pointer-events:auto}.stopmap[data-open=true] .mapintro{pointer-events:none}}@media (max-width:959px) and (max-aspect-ratio:1/1) and (max-height:700px){.stopmap{padding:.8rem 1rem .9rem;gap:.6rem}.mapintro__title{font-size:1.25rem}.mapintro__hint{display:none}}@media (prefers-reduced-motion:no-preference){.stopmap__svg{animation:map-arrive .6s var(--map-curve-open) backwards}.mapintro{animation:intro-arrive .7s ease .18s backwards}}@keyframes map-arrive{0%{opacity:0;transform:translateY(16px) scale(.985)}}@keyframes intro-arrive{0%{opacity:0;transform:translateX(-10px)}}.mapstop{cursor:pointer}.mapstop__hit{fill:transparent}.mapstop__pin{fill:#ea4335;stroke:#fff;stroke-width:1.6;vector-effect:non-scaling-stroke;transition:fill .18s ease}.mapstop__pin-dot{fill:#fff;pointer-events:none}.mapstop.is-active .mapstop__pin,.mapstop:hover .mapstop__pin{fill:#b31412}.mapstop__disc{fill:var(--terminal);stroke:#fff;stroke-width:2;vector-effect:non-scaling-stroke;transition:fill .18s ease}.mapstop__heart{fill:#fff;pointer-events:none}.mapstop--terminal.is-active .mapstop__disc,.mapstop--terminal:hover .mapstop__disc{fill:var(--terminal-strong)}.mapstop:focus{outline:none}.mapstop:focus-visible .mapstop__disc,.mapstop:focus-visible .mapstop__pin{stroke:var(--text);stroke-width:3}.stoplabel{font-family:var(--font-transit);font-weight:700;fill:var(--text);stroke:#fff;stroke-width:3;stroke-linejoin:round;paint-order:stroke fill;vector-effect:non-scaling-stroke;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:opacity .22s ease}.stopmap[data-zooming=true] .stoplabel{opacity:0;pointer-events:none;transition:opacity .12s ease}.mapstop.is-active .stoplabel,.mapstop:hover .stoplabel{fill:#b31412}.mapstop--terminal.is-active .stoplabel,.mapstop--terminal:hover .stoplabel{fill:var(--terminal-strong)}.stopcard-wrap{position:absolute;z-index:3;left:1rem;right:1rem;bottom:1rem;pointer-events:none}.stopcard{pointer-events:auto;position:relative;max-height:42svh;overflow-y:auto;padding:1.1rem 1.5rem 1.35rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 14px 32px rgba(44,42,39,.18);transform:translateY(calc(100% + 1rem));opacity:0;transition:transform var(--map-dur-close) var(--map-curve-close),opacity .15s ease .32s}.stopmap[data-open=true] .stopcard{transform:translateY(0);opacity:1;transition:transform var(--map-dur-open) var(--map-curve-open),opacity .28s ease .16s}.stopmap[data-open=false] .stopcard{pointer-events:none}.stopcard__close{position:absolute;top:.35rem;right:.5rem;width:2rem;height:2rem;padding:0;font-size:1.4rem;line-height:1;color:var(--muted);background:none;border:none;border-radius:999px;cursor:pointer}.stopcard__close:hover{color:var(--text)}.stopcard__label{font-family:var(--font-transit);text-transform:uppercase;letter-spacing:.15em;font-size:.68rem;color:var(--muted);margin:0;padding-right:1.2rem}.stopcard__name{font-size:1.5rem;margin:.15rem 0 0;padding-right:1.2rem}.langswitch{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.6rem}.langswitch__btn{position:relative;font-family:var(--font-transit);font-size:.68rem;letter-spacing:.06em;line-height:1;color:var(--muted);padding:.4rem .6rem;border:1px solid var(--border);border-radius:6px;background:none;cursor:pointer}.langswitch__btn:after{content:"";position:absolute;inset:-8px -4px}.langswitch__btn:hover{color:var(--text)}.langswitch__btn.is-active{color:var(--text);font-weight:600;border-color:color-mix(in srgb,var(--text) 26%,var(--border));background:var(--bg)}.langswitch__btn:focus-visible{outline:2px solid var(--btn);outline-offset:1px}.stopcard__blurb{margin:.5rem 0 0}.stopcard__blurb:lang(ko),.stopcard__label:lang(ko){font-family:var(--font-ko)}.stopcard__blurb:lang(zh),.stopcard__label:lang(zh){font-family:var(--font-zh)}.stopcard__blurb:lang(ko),.stopcard__blurb:lang(zh){font-size:.94em;line-height:1.85}.stopcard__label:lang(ko),.stopcard__label:lang(zh){letter-spacing:.02em}.stopcard__blurb+.stopcard__blurb{margin-top:.75rem}.stopcard__photos{--gutter:0;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;align-items:start;grid-gap:.7rem;gap:.7rem;margin-top:1.15rem}.stopcard__photos--three{grid-auto-flow:row;grid-template-columns:1fr 1fr}.stopcard__photos--three>.print:first-child{grid-column:1/-1}.mapline{position:absolute;z-index:4;left:1rem;bottom:1rem;width:max-content;min-width:17rem;max-width:calc(100% - 2rem);padding:.55rem .85rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 6px 18px rgba(44,42,39,.12),0 1px 3px rgba(44,42,39,.06);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--aside-dur-out) ease-out,transform var(--aside-dur-out) ease-out,visibility 0s linear var(--aside-dur-out)}.stopmap[data-open=true] .mapline{opacity:1;visibility:visible;transform:none;transition:opacity var(--aside-dur-in) ease var(--aside-delay-in),transform var(--aside-dur-in) var(--map-curve-close) var(--aside-delay-in),visibility 0s linear var(--aside-delay-in)}.stopline{--rail-inset:0.55rem;--rail-dot:7px;--rail-top:0.92rem;margin:1.25rem 0 0;padding:.8rem 0 0;list-style:none;border-top:1px solid var(--border)}.stopline--bare{margin:0;padding:0;border-top:0}.stopline__row{position:relative}.stopline__row:not(:last-child):before{content:"";position:absolute;left:calc(var(--rail-inset) + var(--rail-dot) / 2 - .5px);top:var(--rail-top);width:1px;height:100%;background:var(--border)}.stopline__stop{position:relative;display:grid;grid-template-columns:1fr auto;align-items:baseline;grid-gap:1.25rem;gap:1.25rem;width:100%;padding:.3rem var(--rail-inset) .3rem calc(var(--rail-inset) + var(--rail-dot) + .6rem);border:0;border-radius:8px;background:none;font-family:var(--font-transit);font-size:.92rem;line-height:1.35;text-align:left;text-decoration:none;color:var(--muted);transition:background-color .16s ease,color .16s ease}.stopline__stop:before{content:"";box-sizing:border-box;position:absolute;left:var(--rail-inset);top:calc(var(--rail-top) - var(--rail-dot) / 2);width:var(--rail-dot);height:var(--rail-dot);border-radius:50%;background:var(--surface);border:1.5px solid var(--stop-line,#ea4335);transition:background .16s ease,box-shadow .16s ease,transform .16s ease}.stopline__tag{font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap;position:relative;top:-1.5px}.stopline__stop--here{color:var(--text);font-weight:500}.stopline__stop--here:before{background:var(--stop-line,#ea4335);transform:scale(1.25)}.stopline__stop--go{cursor:pointer}.stopline__stop--go:hover{background:color-mix(in srgb,var(--btn) 6%,transparent);color:var(--text)}.stopline__stop--go:hover:before{box-shadow:0 0 0 3px color-mix(in srgb,var(--stop-line,#ea4335) 22%,transparent)}.stopline__stop--cta{color:var(--text);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:500}.stopline__tag--arrow{font-size:1rem;letter-spacing:0;color:inherit;opacity:.55;top:0;transition:opacity .16s ease,transform .16s ease}.stopline__stop--cta:hover .stopline__tag--arrow{opacity:1;transform:translateX(3px)}.stopline__stop:has(>.stopline__mark):before{content:none}.stopline__mark{--rail-mark:11px;position:absolute;left:calc(var(--rail-inset) + var(--rail-dot) / 2 - var(--rail-mark) / 2);top:calc(var(--rail-top) - var(--rail-mark) / 2);width:var(--rail-mark);height:var(--rail-mark);fill:var(--terminal);transition:fill .16s ease}.stopline__row:has(+.stopline__row--cta):before{height:calc(100% - var(--rail-dot) / 2 - 1px)}.stopline__stop--cta:hover{background:color-mix(in srgb,var(--btn) 10%,transparent);text-decoration:none}.stopline__stop--cta:hover .stopline__mark{fill:var(--terminal-strong)}.stopline__mark--pin{--rail-mark:13px;fill:var(--terminal)}.stopline__mark-hole{fill:var(--surface)}.stopline__stop--go:hover .stopline__mark--pin{fill:var(--terminal-strong)}.stopline__stop--cta:focus-visible,.stopline__stop--go:focus-visible{outline:2px solid var(--btn);outline-offset:1px}@media (min-width:960px){.stopmap[data-open=true] .stopmap__stage{transform:translateX(calc((var(--card-w) + var(--card-gap)) / -2))}.stopcard-wrap{z-index:1;left:100%;right:auto;top:50%;bottom:auto;width:var(--card-w);transform:translateY(-50%)}.stopcard{max-height:calc(100svh - var(--nav-h) - 4.5rem);transform:translateX(-100%)}.stopmap[data-open=true] .stopcard{transform:translateX(var(--card-gap))}}@media (prefers-reduced-motion:reduce){.mapintro,.mapline,.stopcard,.stopmap__stage{transition:opacity .2s ease;transform:none!important}}.gallery{--sheet-w:1180px;--gutter:0.875rem;padding:2.5rem 1.25rem 3.5rem}.gallery__sheet{max-width:var(--sheet-w);margin:0 auto}.gallery__head{text-align:center;margin-bottom:1.75rem}.gallery__head h1{margin:0 0 .3rem}.scrapbook{column-count:3;column-gap:var(--gutter)}.print{position:relative;page-break-inside:avoid;break-inside:avoid;margin:0 0 var(--gutter);padding:8px;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 14px rgba(44,42,39,.1),0 1px 3px rgba(44,42,39,.06);--tilt-scale:1;transform:rotate(calc(var(--tilt, 0) * var(--tilt-scale) * 1deg));transition:transform .28s cubic-bezier(.22,.61,.36,1),box-shadow .28s ease}.print:hover{z-index:2;transform:rotate(0deg) translateY(-3px);box-shadow:0 12px 26px rgba(44,42,39,.16),0 2px 6px rgba(44,42,39,.07)}.print__frame{position:relative;overflow:hidden;border-radius:8px;aspect-ratio:var(--ar,4/5);background:color-mix(in srgb,var(--text) 4%,var(--bg))}.print__img{object-fit:cover}.print__slot{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;background-image:repeating-linear-gradient(135deg,transparent 0 11px,color-mix(in srgb,var(--text) 4%,transparent) 11px 12px)}.print__slot-n{font-family:var(--font-serif);font-size:1.6rem;line-height:1;color:color-mix(in srgb,var(--text) 30%,transparent)}.print__slot-shape{font-family:var(--font-transit);text-transform:uppercase;letter-spacing:.18em;text-indent:.18em;font-size:.56rem;color:var(--muted)}.print__caption{margin:.55rem .3rem .15rem;font-family:var(--font-body);font-size:.86rem;line-height:1.4;text-align:center;color:color-mix(in srgb,var(--text) 78%,var(--bg))}.gallery__actions{margin:2.25rem auto 0}@media (max-width:900px){.scrapbook{column-count:2}}@media (max-width:600px){.scrapbook{column-count:1}.print{--tilt-scale:0.5}.gallery{padding:2rem 1.25rem 3rem}}@media (hover:none){.print:hover{transform:rotate(calc(var(--tilt, 0) * var(--tilt-scale) * 1deg));box-shadow:0 4px 14px rgba(44,42,39,.1),0 1px 3px rgba(44,42,39,.06)}}@media (prefers-reduced-motion:reduce){.print{transition:none}.print:hover{transform:rotate(calc(var(--tilt, 0) * var(--tilt-scale) * 1deg))}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;text-align:center;font-family:var(--font-transit);--btn-track:0.14em;font-size:.82rem;font-weight:500;line-height:1;text-transform:uppercase;letter-spacing:var(--btn-track);padding:.55rem 1.4rem;padding-left:calc(1.4rem + var(--btn-track));position:relative;background:var(--btn);border:1px solid var(--btn);border-radius:6px;cursor:pointer;transition:background-color .22s ease,border-color .22s ease,color .22s ease}.btn,.btn:hover{color:var(--accent-contrast);text-decoration:none}.btn:hover{background:var(--btn-hover);border-color:var(--btn-hover)}.btn:focus-visible{outline:2px solid var(--btn);outline-offset:3px}.btn:disabled{background:var(--muted);border-color:var(--muted);color:rgba(255,255,255,.8);cursor:not-allowed}.btn:active:not(:disabled){transform:translateY(1px)}.btn:after{content:"";position:absolute;inset:-6px 0}.btn-icon{width:1.15em;height:1.15em;flex:none}.btn:has(.btn-icon){padding-left:calc(1.15rem + var(--btn-track))}.btn-secondary{background:none;color:var(--btn);border-color:var(--btn);border-width:1.5px}.btn-secondary:hover{background:color-mix(in srgb,var(--btn) 10%,transparent);color:var(--btn);text-decoration:none}.btn.btn-icon-only{padding:.55rem;gap:0}.btn-row{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem .5rem;width:-moz-fit-content;width:fit-content}@media (max-width:600px){.btn{--btn-track:0.08em;font-size:.82rem;padding:.55rem .8rem;padding-left:calc(.8rem + var(--btn-track));gap:.4rem}.btn:has(.btn-icon){padding-left:calc(.65rem + var(--btn-track))}.btn.btn-icon-only{padding:.55rem}.btn:after{inset:-6px 0}.btn-row{gap:.8rem .4rem;justify-content:center}}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.form-wrap{max-width:520px;margin:0 auto}.form{gap:1.1rem;margin-top:1.5rem}.form,.form label{display:flex;flex-direction:column}.form label{gap:.35rem;font-weight:500}.form input,.form select,.form textarea{font:inherit;padding:.6rem .7rem;border:1px solid var(--border);border-radius:8px;background:var(--surface)}.form fieldset{border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem}.form legend{font-weight:500;padding:0 .4rem}.radio{flex-direction:row!important;align-items:center;gap:.5rem!important;font-weight:400!important}.error{color:#b3261e}.success{color:var(--accent-strong)}.rsvp-soon{max-width:32rem;margin:0 auto;padding:2.5rem 0 1rem;text-align:center}.rsvp-soon__title{margin:0;font-size:clamp(2.6rem,9vw,3.6rem);line-height:1.05;letter-spacing:.01em}.rsvp-soon__rule{display:flex;align-items:center;gap:.85rem;width:min(15rem,70%);margin:1.5rem auto 1.6rem;color:color-mix(in srgb,var(--accent) 60%,transparent)}.rsvp-soon__rule:after,.rsvp-soon__rule:before{content:"";flex:1 1;height:1px;background:linear-gradient(90deg,transparent,currentColor)}.rsvp-soon__rule:after{background:linear-gradient(270deg,transparent,currentColor)}.rsvp-soon__mark{width:5px;height:5px;flex:none;background:var(--accent);transform:rotate(45deg)}.rsvp-soon__lede{margin:0 0 .9rem;font-family:var(--font-serif);font-size:1.45rem;line-height:1.3;color:var(--text)}.rsvp-soon__body{margin:0 auto;max-width:30rem;font-size:1rem;line-height:1.65;color:var(--muted)}.rsvp-soon__actions{margin:2.25rem auto 0}@media (max-width:600px){.rsvp-soon{padding-top:1.5rem}.rsvp-soon__lede{font-size:1.25rem}}.prose h1{margin-bottom:.25rem}.eyebrow{font-family:var(--font-transit);text-transform:uppercase;letter-spacing:.22em;font-size:.68rem;color:var(--muted);margin:0 0 .35rem}.lede{font-family:var(--font-serif);font-size:1.25rem;color:var(--text);margin:0 0 1.75rem}.detail-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem 1.5rem;margin:1rem 0}.detail-card h2{margin:0 0 .4rem;font-size:1.25rem}.detail-card p{margin:.35rem 0 0}.detail-tbc{color:var(--muted);font-size:.92rem;font-style:italic}.detail-actions{margin-top:2rem}.mapdev{position:absolute;z-index:4;top:.75rem;right:.75rem;width:15rem;max-height:calc(100% - 1.5rem);overflow-y:auto;display:flex;flex-direction:column;gap:.4rem;padding:.7rem .8rem;font-family:var(--font-transit);font-size:.75rem;line-height:1.35;color:#eee;background:rgba(24,23,21,.92);border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.3)}.mapdev__title{font-size:.62rem;text-transform:uppercase;letter-spacing:.14em;color:#b9b3a8}.mapdev label{display:flex;align-items:center;gap:.45rem;cursor:pointer}.mapdev__note{margin:0;color:#b9b3a8;font-size:.68rem}.mapdev__row{display:flex;gap:.3rem;flex-wrap:wrap}.mapdev button{flex:1 1 auto;padding:.3rem .4rem;font:inherit;font-size:.68rem;color:#eee;background:#3a3733;border:1px solid #55504a;border-radius:4px;cursor:pointer}.mapdev button:hover{background:#4a463f}.mapdev__warn{margin:0;padding:.4rem .5rem;font-size:.68rem;color:#ffd9d0;background:#6d2418;border-radius:4px}.mapdev__label{margin:.2rem 0 0;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;color:#b9b3a8}.mapdev__code{display:block;padding:.4rem .5rem;font-size:.66rem;color:#d8e4c6;background:#14130f;border-radius:4px;overflow-x:auto;-webkit-user-select:all;-moz-user-select:all;user-select:all}.mapdev__code--block{white-space:pre;max-height:9rem;overflow-y:auto}.mappick circle{fill:#d92b2b;opacity:.9}.mappick text{fill:#fff;font-family:var(--font-transit);font-weight:700}.palette-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:1.25rem;gap:1.25rem;margin-top:1.5rem}@media (max-width:600px){.palette-grid{grid-template-columns:1fr}}.palette-sample{border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.palette-name{text-transform:uppercase;letter-spacing:.15em;font-size:.75rem;margin:0 0 .75rem}.swatches{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:1.25rem}.swatch{display:flex;align-items:center;gap:.35rem}.swatch-chip{display:inline-block;width:22px;height:22px;border-radius:5px;border:1px solid}.swatch-label{font-size:.6rem;line-height:1.1}.palette-mock{text-align:center;padding:.5rem 0}.mock-eyebrow{text-transform:uppercase;letter-spacing:.2em;font-size:.65rem;margin:0}.palette-mock h2{font-size:1.8rem;margin:.35rem 0}.mock-cta{display:flex;gap:.5rem;justify-content:center;flex-wrap:wrap;margin:.85rem 0}.mock-btn{display:inline-block;padding:.5rem 1rem;border-radius:var(--radius);font-size:.85rem}.mock-card{border:1px solid;border-radius:var(--radius);padding:.75rem 1rem;margin-top:.85rem;font-size:.85rem;text-align:left}