:root{--paper:oklch(95.6% .014 75);--paper-2:oklch(91.5% .022 70);--paper-3:oklch(86% .028 65);--ink:oklch(18% .028 25);--ink-soft:oklch(36% .025 30);--ink-mute:oklch(54% .02 35);--rule:oklch(70% .022 35);--accent:oklch(37% .13 18);--accent-2:oklch(68% .07 35);--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Cormorant Garamond", Georgia, serif;--font-ui:"Josefin Sans", system-ui, sans-serif;--gutter:clamp(24px, 4.4vw, 72px);--max:1320px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink);background:var(--paper);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-feature-settings:"kern", "liga", "onum";font-size:21px;font-weight:400;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}img,svg{max-width:100%;display:block}body:before{content:"";pointer-events:none;z-index:0;opacity:.25;mix-blend-mode:multiply;background-image:radial-gradient(#503c1e0f 1px,#0000 1px),radial-gradient(#503c1e0a 1px,#0000 1px);background-position:0 0,1px 2px;background-size:3px 3px,7px 7px;position:fixed;inset:0}.topbar{z-index:50;padding:18px var(--gutter);font-family:var(--font-ui);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);pointer-events:none;border-bottom:1px solid #0000;justify-content:space-between;align-items:center;font-size:11px;transition:background .4s,backdrop-filter .4s,border-color .4s;display:flex;position:fixed;top:0;left:0;right:0}.topbar.is-scrolled{background:color-mix(in oklch, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px)saturate(120%);border-bottom-color:color-mix(in oklch, var(--ink) 10%, transparent)}.topbar>*{pointer-events:auto}.topbar .brand{font-family:var(--font-display);text-transform:none;letter-spacing:.01em;color:var(--ink);align-items:center;gap:10px;font-size:18px;font-style:italic;display:flex}.topbar .brand .amp{color:var(--accent);font-weight:500}.topbar .topnav{align-items:center;gap:24px;display:flex}.topbar .topnav a{color:var(--ink);transition:color .2s;position:relative}.topbar .topnav a:hover{color:var(--ink)}.topbar .topnav a:after{content:"";background:var(--accent);transform-origin:0;height:1px;transition:transform .25s;position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.topbar .topnav a:hover:after{transform:scaleX(1)}@media (width<=780px){.topbar .topnav{display:none}}.lang-switch{border:1px solid color-mix(in oklch, var(--ink) 15%, transparent);background:color-mix(in oklch, var(--paper) 60%, transparent);border-radius:999px;align-items:center;gap:2px;padding:4px;display:inline-flex}.lang-switch button{appearance:none;font:inherit;font-family:var(--font-display);letter-spacing:.14em;color:var(--ink-mute);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:11.5px;font-weight:700;transition:color .18s,background .18s}.lang-switch button:hover{color:var(--ink)}.lang-switch button.is-active{background:var(--ink);color:var(--paper)}section{z-index:1;padding-block:clamp(96px,12vw,180px);padding-inline:var(--gutter);position:relative}.wrap{max-width:var(--max);margin:0 auto}.label{font-family:var(--font-ui);letter-spacing:.26em;text-transform:uppercase;color:var(--accent);align-items:center;gap:14px;font-size:12px;font-weight:500;display:inline-flex}.label:before{content:"";opacity:.8;background:currentColor;width:28px;height:1px}.h-display{font-family:var(--font-display);letter-spacing:-.005em;margin:0;font-style:italic;font-weight:400;line-height:1.02}.h-section{font-family:var(--font-display);letter-spacing:-.015em;text-wrap:balance;margin:24px 0 0;font-size:clamp(56px,8.6vw,132px);font-style:italic;font-weight:400;line-height:1}.h-section .roman{font-style:normal}.lede{max-width:60ch;color:var(--ink-soft);text-wrap:pretty;margin:32px 0 0;font-size:clamp(22px,2.2vw,28px);line-height:1.45}.rule{background:linear-gradient(90deg, transparent, color-mix(in oklch, var(--ink) 22%, transparent), transparent);height:1px;max-width:var(--max);width:calc(100% - 2 * var(--gutter));margin:0 auto}.section-mark{justify-content:center;align-items:center;gap:14px;margin-bottom:40px;display:flex}.section-mark .line{background:color-mix(in oklch, currentColor 30%, transparent);flex:1 1 0;max-width:120px;height:1px}.section-mark .diamond{background:var(--accent);width:6px;height:6px;transform:rotate(45deg)}.section-mark--paper{color:var(--paper)}.section-mark--paper .diamond{background:var(--paper)}.reveal--delay-1{transition-delay:.1s}.reveal--delay-2{transition-delay:.2s}.reveal--delay-3{transition-delay:.3s}.hero{align-items:center;min-height:100svh;padding-block:clamp(80px,11vh,124px) clamp(60px,8vh,96px);display:flex;position:relative}.hero .wrap{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(40px,6vw,96px);display:grid}@media (width<=880px){.hero .wrap{grid-template-columns:1fr}.hero .meta{text-align:center;align-items:center}.hero .names{text-align:center;width:100%}.hero .ribbon{width:100%}.hero .greeting{display:none}.hero .meta .label:after{content:"";opacity:.8;background:currentColor;width:28px;height:1px}}@media (width>=881px){.hero .wrap{max-width:min(1480px, 100% - 2 * var(--gutter));gap:clamp(56px,7vw,120px)}.hero .meta{gap:24px}.hero .names{font-size:clamp(72px,12vw,212px)}.hero .ribbon{margin-top:12px;font-size:13px}.hero .greeting{font-size:clamp(26px,2.8vw,38px)}.hero-photo{max-height:min(84vh,840px)}}@media (width>=1200px){.hero .names{font-size:clamp(80px,13vw,228px)}.hero-photo{max-height:min(88vh,900px)}}.hero .meta{flex-direction:column;gap:18px;display:flex}.hero .names{font-family:var(--font-display);letter-spacing:-.025em;overflow-wrap:break-word;word-break:normal;hyphens:none;margin:0;font-size:clamp(60px,10.5vw,172px);font-style:italic;font-weight:400;line-height:.88}.hero .names .amp{color:var(--accent);margin:0 .12em 0 0;padding-left:clamp(.35em,7vw,1.05em);font-size:.55em;font-style:italic;display:inline}.hero .names .last{display:inline}.hero .ribbon{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--ink);grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;margin-top:8px;font-size:12px;font-weight:500;display:grid}.hero .ribbon .line{background:color-mix(in oklch, var(--ink) 35%, transparent);height:1px}.hero .ribbon .center{white-space:nowrap;color:var(--ink)}.hero .date-display{font-family:var(--font-display);color:var(--ink);margin-top:4px;font-size:clamp(28px,3vw,40px);font-style:italic}.hero .date-roman{align-items:baseline;gap:18px;font-style:normal;font-weight:400;display:inline-flex}.hero .date-roman .sep{color:var(--accent)}.hero .date-line{color:var(--ink-mute);max-width:36ch;margin-top:6px;font-size:clamp(18px,1.6vw,22px);font-style:italic}.hero .greeting{font-family:var(--font-display);color:var(--accent);margin-top:8px;font-size:clamp(24px,2.4vw,32px);font-style:italic;font-weight:500}.hero-photo{aspect-ratio:4/5;background:var(--paper-2);isolation:isolate;width:100%;max-height:min(76vh,720px);box-shadow:0 1px 0 color-mix(in oklch, var(--paper) 60%, white) inset, 0 40px 80px -20px color-mix(in oklch, var(--ink) 50%, transparent), 0 0 0 1px color-mix(in oklch, var(--accent-2) 30%, transparent);border-radius:2px;margin-left:auto;position:relative;overflow:hidden}.hero-photo img{object-fit:cover;object-position:55% 50%;width:100%;height:100%;transition:opacity .65s,transform 1.4s cubic-bezier(.2,.6,.1,1);display:block;transform:scale(1.02)}html.js.is-loaded .hero-photo img{opacity:1}.hero-photo:hover img{transform:scale(1.06)}.hero-photo:before{content:"";border:1px solid color-mix(in oklch, var(--accent-2) 60%, transparent);pointer-events:none;z-index:1;position:absolute;inset:14px}.hero-photo .frame-corner{border:1px solid color-mix(in oklch, var(--paper) 80%, transparent);z-index:2;width:22px;height:22px;position:absolute}.hero-photo .frame-corner.tl{border-bottom:0;border-right:0;top:22px;left:22px}.hero-photo .frame-corner.tr{border-bottom:0;border-left:0;top:22px;right:22px}.hero-photo .frame-corner.bl{border-top:0;border-right:0;bottom:22px;left:22px}.hero-photo .frame-corner.br{border-top:0;border-left:0;bottom:22px;right:22px}.hero-photo .caption{text-align:center;font-family:var(--font-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 2px #000000d9,0 4px 20px #000000a6;z-index:3;font-size:11px;font-weight:500;position:absolute;bottom:22px;left:0;right:0}.placeholder{background:repeating-linear-gradient(135deg, color-mix(in oklch, var(--paper-2) 100%, transparent) 0 8px, color-mix(in oklch, var(--paper-2) 80%, var(--ink) 6%) 8px 16px);width:100%;height:100%;color:color-mix(in oklch, var(--ink) 55%, transparent);flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:relative;inset:0}.placeholder .ptag{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;font-size:10px}.placeholder .pmain{font-family:var(--font-ui);letter-spacing:.04em;text-align:center;padding:0 20px;font-size:11px}.scroll-cue{font-family:var(--font-ui);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);z-index:2;flex-direction:column;align-items:center;gap:14px;font-size:11px;font-weight:500;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.scroll-cue .stroke{background:linear-gradient(180deg, transparent, color-mix(in oklch, var(--ink) 55%, transparent));width:1px;height:60px;position:relative;overflow:hidden}.scroll-cue .stroke:after{content:"";background:var(--accent);height:20px;animation:2.4s cubic-bezier(.6,.1,.2,1) infinite scrollDot;position:absolute;top:-20px;left:0;right:0}@keyframes scrollDot{0%{opacity:0;top:-20px}20%{opacity:1}80%{opacity:1}to{opacity:0;top:100%}}.invitation{background:var(--paper-2);position:relative;overflow:hidden}.invitation:before{content:"";pointer-events:none;background:radial-gradient(ellipse at top left, color-mix(in oklch, var(--accent-2) 14%, transparent) 0%, transparent 50%), radial-gradient(ellipse at bottom right, color-mix(in oklch, var(--accent) 8%, transparent) 0%, transparent 60%);position:absolute;inset:0}.invitation .wrap{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center;gap:clamp(40px,6vw,112px);display:grid;position:relative}@media (width<=880px){.invitation .wrap{grid-template-columns:1fr;gap:56px}.invitation .copy{max-width:none}}.carousel{outline:none;position:relative}.carousel-stage{aspect-ratio:5/4;touch-action:pan-y pinch-zoom;background:var(--ink);box-shadow:0 0 0 1px color-mix(in oklch, var(--accent-2) 30%, transparent), 0 50px 100px -30px color-mix(in oklch, var(--ink) 60%, transparent), 0 20px 40px -20px color-mix(in oklch, var(--ink) 50%, transparent);position:relative;overflow:hidden}.carousel-slide{opacity:0;pointer-events:none;transition:opacity 1s cubic-bezier(.4,0,.2,1),transform 1.8s cubic-bezier(.2,.6,.1,1);position:absolute;inset:0;transform:scale(1.05)}.carousel-slide.is-active{opacity:1;z-index:1;pointer-events:auto;transform:scale(1)}.carousel-slide img{object-fit:cover;object-position:50% 50%;width:100%;height:100%;display:block}.carousel-corner{border:1px solid color-mix(in oklch, var(--accent-2) 70%, transparent);z-index:3;pointer-events:none;width:18px;height:18px;position:absolute}.carousel-corner.tl{border-bottom:0;border-right:0;top:14px;left:14px}.carousel-corner.tr{border-bottom:0;border-left:0;top:14px;right:14px}.carousel-corner.bl{border-top:0;border-right:0;bottom:60px;left:14px}.carousel-corner.br{border-top:0;border-left:0;bottom:60px;right:14px}.carousel-caption{text-align:center;font-family:var(--font-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 2px #000000d9,0 4px 20px #000000a6;z-index:3;pointer-events:none;font-size:11px;font-weight:500;transition:opacity .5s;position:absolute;bottom:24px;left:0;right:0}.carousel-nav{z-index:4;appearance:none;background:color-mix(in oklch, var(--paper) 92%, transparent);width:52px;height:52px;color:var(--ink);cursor:pointer;box-shadow:0 12px 28px -10px color-mix(in oklch, var(--ink) 60%, transparent);-webkit-backdrop-filter:blur(8px);border:0;border-radius:999px;justify-content:center;align-items:center;transition:transform .25s,background .25s,box-shadow .25s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%)}.carousel-nav:hover{background:var(--ink);color:var(--paper);box-shadow:0 20px 40px -10px color-mix(in oklch, var(--ink) 70%, transparent);transform:translateY(-50%)scale(1.05)}.carousel-nav:active{transform:translateY(-50%)scale(.97)}.carousel-nav.prev{left:-22px}.carousel-nav.next{right:-22px}@media (width<=640px){.carousel-nav{width:44px;height:44px}.carousel-nav.prev{left:12px}.carousel-nav.next{right:12px}}.carousel-dots{justify-content:center;gap:12px;margin-top:22px;display:flex}.carousel-dot{appearance:none;background:color-mix(in oklch, var(--ink) 20%, transparent);cursor:pointer;border:0;width:28px;height:2px;padding:0;transition:background .35s,width .35s}.carousel-dot.is-active{background:var(--accent);width:44px}.carousel-dot:hover{background:color-mix(in oklch, var(--accent) 60%, transparent)}.carousel-counter{z-index:3;font-family:var(--font-ui);letter-spacing:.18em;color:color-mix(in oklch, var(--paper) 80%, transparent);text-shadow:0 2px 12px #00000080;font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:10.5px;display:inline-flex;position:absolute;top:22px;right:26px}.carousel-counter .cur{color:var(--paper)}.carousel-counter .sep{opacity:.6}.carousel-counter .tot{opacity:.8}.invitation.countdown-section:before{display:none}.invitation.countdown-section .wrap{text-align:center;justify-content:center;align-items:center;min-height:auto;display:flex}.countdown-block{width:min(100%,920px);margin:0 auto}.countdown-section .label{color:var(--ink-mute)}.countdown-title{font-family:var(--font-display);letter-spacing:-.012em;color:var(--ink);margin:clamp(18px,2.8vw,30px) 0 0;font-size:clamp(42px,6.2vw,76px);font-style:italic;font-weight:400;line-height:1.04}.countdown-meta{justify-content:center;align-items:center;gap:clamp(14px,2.8vw,26px);margin-top:clamp(22px,3.2vw,34px);display:flex}.countdown-meta__line{background:color-mix(in oklch, var(--ink) 20%, transparent);flex:1 1 0;max-width:84px;height:1px}.countdown-meta__text{font-family:var(--font-ui);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap;margin:0;font-size:10px;font-weight:500}.countdown-frame{margin-top:clamp(34px,5vw,56px)}.countdown-frame__rule{align-items:center;width:100%;display:flex}.countdown-frame__line{background:color-mix(in oklch, var(--ink) 16%, transparent);flex:1 1 0;height:1px}.countdown-frame__dot{background:var(--accent);border-radius:50%;flex-shrink:0;width:5px;height:5px}.countdown-grid{justify-content:center;align-items:stretch;padding:clamp(26px,4vw,42px) 0;display:flex}.countdown-part{flex-direction:column;flex:1 1 0;justify-content:flex-start;align-items:center;gap:clamp(10px,1.6vw,16px);min-width:0;padding:0 clamp(10px,2.2vw,32px);display:flex}.countdown-vsep{background:color-mix(in oklch, var(--ink) 14%, transparent);align-self:stretch;width:1px;margin-block:.2em .55em}.countdown-num{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--ink);font-size:clamp(52px,7.8vw,92px);font-style:normal;font-weight:300;line-height:1}.countdown-unit{font-family:var(--font-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--ink-mute);font-size:10px;font-style:normal;font-weight:500}.countdown-today{font-family:var(--font-display);color:var(--accent);margin:clamp(24px,4vw,36px) 0 0;font-size:clamp(32px,4vw,52px);font-style:italic}@media (width<=640px){.countdown-meta{gap:clamp(8px,2vw,14px)}.countdown-meta__text{letter-spacing:.1em;white-space:nowrap;flex-shrink:0;font-size:clamp(7px,2.15vw,9px)}.countdown-meta__line{max-width:24px}.countdown-part{padding-inline:clamp(6px,1.5vw,14px)}.countdown-unit{letter-spacing:.18em;font-size:9px}}@media (width<=380px){.countdown-meta__line{display:none}.countdown-meta__text{letter-spacing:.08em;font-size:8px}}@media (width<=480px){.countdown-num{font-size:clamp(34px,10vw,44px)}.countdown-grid{padding-block:20px}}.invitation .copy{max-width:48ch}.invitation .invitation-eyebrow{flex-wrap:wrap;row-gap:10px;max-width:100%}.invitation .invitation-eyebrow .label-sep{color:var(--ink-mute);opacity:.75;letter-spacing:0;text-transform:none;font-weight:400}.invitation .countdown{font-family:var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);margin:0;font-size:11px;font-weight:500}.invitation .countdown .countdown__n{color:var(--ink-soft);font-variant-numeric:tabular-nums}.invitation .copy .h-section{margin-top:22px;font-size:clamp(48px,6.8vw,96px)}.invitation .copy .body{font-family:var(--font-display);color:var(--ink);text-wrap:pretty;margin:32px 0 0;font-size:clamp(28px,3.2vw,44px);font-style:italic;line-height:1.22}.invitation .copy .body .drop{color:var(--accent);vertical-align:baseline;margin-right:.05em;font-size:1.4em;line-height:.8}.invitation .copy .sig{font-family:var(--font-display);color:var(--accent);margin-top:36px;font-size:clamp(22px,1.9vw,28px);font-style:italic}.agenda{background:var(--paper)}.agenda .head{grid-template-columns:1fr 1fr;align-items:end;gap:clamp(20px,4vw,64px);margin-bottom:clamp(48px,6vw,96px);display:grid}@media (width<=800px){.agenda .head{grid-template-columns:1fr}}.timeline{grid-template-columns:100px 1fr;gap:clamp(20px,4vw,48px);padding-left:12px;display:grid;position:relative}@media (width<=720px){.timeline{grid-template-columns:64px 1fr;gap:18px;padding-left:0}}.timeline .axis{background:color-mix(in oklch, var(--ink) 14%, transparent);align-self:stretch;width:1px;margin-left:auto;position:relative}.timeline .axis .fill{background:var(--accent);height:0%;transition:height .12s linear;position:absolute;top:0;left:0;right:0}.day-header{grid-column:1/-1;grid-template-columns:subgrid;border-top:2px solid color-mix(in oklch, var(--ink) 32%, transparent);align-items:end;row-gap:8px;margin-top:56px;padding-top:36px;display:grid}.day-header:first-child{border-top:0;margin-top:0;padding-top:0}.day-header .day-tag{font-family:var(--font-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);text-align:right;justify-content:flex-end;align-items:center;gap:10px;padding-top:22px;padding-right:24px;font-size:12px;font-weight:600;display:inline-flex;position:relative}.day-header .day-tag:after{content:"";background:var(--accent);width:8px;height:8px;margin-top:6px;margin-right:4px;display:inline-block;position:absolute;top:50%;right:-5px;transform:rotate(45deg)}.day-header .day-title{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;text-wrap:balance;margin:0;padding-bottom:22px;font-size:clamp(40px,5.6vw,72px);font-style:italic;line-height:1}@media (width<=720px){.day-header{margin-top:36px;padding-top:22px}.day-header .day-tag{padding-top:12px;padding-right:12px}.day-header .day-title{padding-bottom:14px}}.t-item{grid-column:1/-1;grid-template-columns:subgrid;align-items:start;padding:22px 0;display:grid;position:relative}.t-item+.t-item{border-top:1px dashed color-mix(in oklch, var(--ink) 12%, transparent)}.t-item .time-col{text-align:right;font-family:var(--font-ui);letter-spacing:.06em;color:var(--ink);font-variant-numeric:tabular-nums;padding-top:4px;padding-right:24px;font-size:14px;position:relative}.t-item .time-col:after{content:"";background:var(--paper);border:1px solid color-mix(in oklch, var(--ink) 35%, transparent);border-radius:999px;width:9px;height:9px;transition:background .35s,border-color .35s,transform .35s;position:absolute;top:14px;right:-5px}.t-item.is-passed .time-col:after{background:var(--accent);border-color:var(--accent);transform:scale(1.05)}.t-item .chapter{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:10.5px}.t-item .ttl{font-family:var(--font-display);color:var(--ink);text-wrap:pretty;margin:4px 0 0;font-size:clamp(20px,2.1vw,28px);font-style:italic;line-height:1.25}.t-item .desc{color:var(--ink-soft);text-wrap:pretty;max-width:60ch;margin:10px 0 0;font-size:clamp(20px,1.8vw,24px);line-height:1.55}.photos{background:var(--paper-2);color:var(--ink);overflow:hidden}.photos:before{content:"";pointer-events:none;background:radial-gradient(ellipse at 14% 18%, color-mix(in oklch, var(--accent-2) 20%, transparent) 0%, transparent 52%), radial-gradient(ellipse at 86% 78%, color-mix(in oklch, var(--accent) 9%, transparent) 0%, transparent 58%);position:absolute;inset:0}.photos .h-section{color:var(--ink)}.photos .caption{color:var(--ink-mute)}.phone-card{background:var(--paper);color:var(--ink);flex-direction:column;align-items:center;gap:18px;margin:0;padding:clamp(28px,3.5vw,44px) clamp(24px,3vw,40px) clamp(20px,2.4vw,28px);display:flex;position:relative;box-shadow:inset 0 1px oklch(100% 5.96046e-8 none/.8),0 30px 60px -20px oklch(0% none none/.6)}.phone-card:before{content:"";background:var(--accent);height:3px;position:absolute;top:0;left:0;right:0}.phone-card .phone-illustration{mix-blend-mode:multiply;width:100%;max-width:560px;height:auto}.phone-card .phone-cap{font-family:var(--font-display);color:var(--accent);text-align:center;text-wrap:balance;max-width:32ch;margin-top:6px;font-size:clamp(19px,1.7vw,24px);font-style:italic}.js .phone-card .phone-cap.reveal--write{transition-delay:1.05s}.photos .phone-card{box-shadow:0 1px 0 oklch(100% 5.96046e-8 none/.8) inset, 0 0 0 1px color-mix(in oklch, var(--ink) 8%, transparent), 0 28px 56px -24px color-mix(in oklch, var(--ink) 28%, transparent)}.photos .wrap{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(48px,7vw,120px);padding-inline:clamp(0px,2vw,32px);display:grid}@media (width<=880px){.photos .wrap{grid-template-columns:1fr;gap:48px;padding-inline:0}}.photos .h-section{max-width:14ch}.photos .body-stack{flex-direction:column;gap:1.15em;max-width:48ch;margin-top:28px;display:flex}.photos .body-stack .body{color:var(--ink-soft);text-wrap:pretty;margin:0;font-size:clamp(19px,1.6vw,22px);line-height:1.65}.photos .caption{font-family:var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-top:28px;font-size:11px}.photo-stack{grid-template-rows:auto auto;grid-template-columns:1fr 1fr;gap:16px;display:grid;position:relative}.photo-stack .ph{background:var(--paper-2);border-radius:2px;position:relative;overflow:hidden}.photo-stack .ph.tall{aspect-ratio:3/4.6;grid-row:1/3}.photo-stack .ph.short{aspect-ratio:4/3}.travel{background:var(--paper)}.travel .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);align-items:start;gap:clamp(40px,6vw,112px);display:grid}@media (width<=880px){.travel .wrap{grid-template-columns:1fr}.travel .wrap>*{min-width:0;max-width:100%}}.travel .body{color:var(--ink-soft);text-wrap:pretty;max-width:52ch;margin:32px 0 0;font-size:clamp(20px,1.7vw,23px);line-height:1.55}.travel .address-card{background:var(--paper);border:1px solid color-mix(in oklch, var(--accent) 22%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--paper) 92%, white 8%), 0 28px 56px -36px color-mix(in oklch, var(--ink) 58%, transparent);flex-direction:column;margin-top:44px;transition:border-color .35s,box-shadow .35s;display:flex;position:relative}.travel .address-card:before{content:"";border:1px solid color-mix(in oklch, var(--accent-2) 28%, transparent);pointer-events:none;transition:border-color .35s;position:absolute;inset:10px}.travel .address-card:hover{border-color:color-mix(in oklch, var(--accent) 38%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--paper) 92%, white 8%), 0 36px 64px -32px color-mix(in oklch, var(--ink) 65%, transparent)}.travel .address-card:hover:before{border-color:color-mix(in oklch, var(--accent) 32%, transparent)}.travel .address-card__inner{flex-direction:column;gap:clamp(14px,1.6vw,20px);padding:clamp(28px,3vw,40px) clamp(28px,3vw,40px) clamp(24px,2.6vw,32px);display:flex;position:relative}.travel .address-card__label{font-family:var(--font-ui);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);font-size:10px;font-weight:500;display:inline-block}.travel .address-card__addr{flex-direction:column;gap:4px;margin:0;font-style:normal;display:flex}.travel .address-card__venue{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:clamp(36px,3.4vw,48px);font-style:italic;line-height:1.08}.travel .address-card__line{font-family:var(--font-display);color:var(--ink-soft);font-size:clamp(20px,1.75vw,26px);font-style:italic;line-height:1.35}.travel .address-card__maps{border-top:1px solid color-mix(in oklch, var(--accent) 16%, transparent);background:color-mix(in oklch, var(--paper-2) 55%, transparent);width:100%;min-height:52px;color:var(--ink);font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;box-sizing:border-box;-webkit-tap-highlight-color:transparent;justify-content:center;align-items:center;gap:12px;padding:14px 20px;font-size:10px;font-weight:500;text-decoration:none;transition:background .25s,color .25s,gap .25s;display:none}.travel .address-card__maps-arrow{color:var(--accent);transition:transform .25s;display:inline-block}.travel .address-card__maps:hover,.travel .address-card__maps:focus-visible{background:var(--ink);color:var(--paper);outline:none}.travel .address-card__maps:hover .address-card__maps-arrow,.travel .address-card__maps:focus-visible .address-card__maps-arrow{color:var(--paper);transform:translate(4px)}.travel .routes{grid-column:1/-1;margin-top:56px}.travel .routes-label{font-family:var(--font-ui);letter-spacing:.26em;text-transform:uppercase;color:var(--ink-mute);align-items:center;gap:14px;margin-bottom:24px;font-size:11px;font-weight:500;display:inline-flex}.travel .routes-label:before{content:"";opacity:.7;background:currentColor;width:28px;height:1px;display:inline-block}.travel .routes-list{grid-template-columns:repeat(3,1fr);gap:clamp(16px,1.6vw,24px);margin:0;padding:0;list-style:none;display:grid}@media (width<=720px){.travel .routes-list{grid-template-columns:1fr}}.travel .routes-list li{min-height:0}.travel .route-card{background:var(--paper);min-height:clamp(168px,14vw,196px);color:var(--ink);border:1px solid color-mix(in oklch, var(--accent) 22%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--paper) 92%, white 8%), 0 24px 48px -32px color-mix(in oklch, var(--ink) 55%, transparent);flex-direction:column;justify-content:space-between;gap:clamp(28px,3vw,40px);padding:clamp(26px,2.6vw,34px) clamp(24px,2.4vw,32px) clamp(20px,2vw,26px);transition:border-color .35s,box-shadow .35s,transform .35s;display:flex;position:relative;overflow:hidden}.travel .route-card:before{content:"";border:1px solid color-mix(in oklch, var(--accent-2) 24%, transparent);pointer-events:none;transition:border-color .35s;position:absolute;inset:9px}.travel .route-card:hover{border-color:color-mix(in oklch, var(--accent) 38%, transparent);box-shadow:inset 0 0 0 1px color-mix(in oklch, var(--paper) 92%, white 8%), 0 32px 56px -28px color-mix(in oklch, var(--ink) 62%, transparent);transform:translateY(-2px)}.travel .route-card:hover:before{border-color:color-mix(in oklch, var(--accent) 30%, transparent)}.travel .route-card__from{z-index:1;font-family:var(--font-display);letter-spacing:-.015em;color:var(--ink);font-size:clamp(34px,3vw,44px);font-style:italic;line-height:1.05;transition:color .3s;position:relative}.travel .route-card:hover .route-card__from{color:var(--accent)}.travel .route-card__meta{z-index:1;border-top:1px solid color-mix(in oklch, var(--ink) 10%, transparent);justify-content:space-between;align-items:center;gap:16px;padding-top:clamp(16px,1.8vw,22px);display:flex;position:relative}.travel .route-card__distance{font-family:var(--font-ui);letter-spacing:.04em;color:var(--ink-soft);font-variant-numeric:tabular-nums;align-items:baseline;gap:4px;font-size:clamp(20px,1.7vw,24px);font-style:normal;font-weight:500;line-height:1;transition:color .3s;display:inline-flex}.travel .route-card:hover .route-card__distance{color:var(--ink)}.travel .route-card__approx{color:color-mix(in oklch, var(--accent) 65%, transparent);margin-right:1px;font-size:.72em;font-style:normal}.travel .route-card__unit{font-family:var(--font-ui);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in oklch, var(--accent) 60%, transparent);margin-left:2px;font-size:.46em;font-style:normal}.travel .route-card__cta{font-family:var(--font-ui);letter-spacing:.26em;text-transform:uppercase;color:color-mix(in oklch, var(--ink-mute) 90%, transparent);align-items:center;gap:8px;font-size:9.5px;font-weight:500;transition:gap .25s,color .25s;display:inline-flex}.travel .route-card__arrow{color:color-mix(in oklch, var(--accent) 55%, transparent);transition:transform .25s,color .25s;display:inline-block}.travel .route-card:hover .route-card__cta{color:var(--accent);gap:11px}.travel .route-card:hover .route-card__arrow{color:var(--accent);transform:translate(3px)}.travel .map{aspect-ratio:4/5;background:var(--paper);isolation:isolate;box-shadow:0 0 0 1px var(--ink), 0 0 0 8px var(--paper-2), 0 0 0 9px color-mix(in oklch, var(--accent-2) 70%, transparent), 0 60px 100px -30px color-mix(in oklch, var(--ink) 60%, transparent), 0 20px 40px -20px color-mix(in oklch, var(--ink) 50%, transparent);display:block;position:relative;overflow:hidden}.travel .map-embed{position:absolute;inset:0}.travel .map-facade{background:linear-gradient(145deg, color-mix(in oklch, var(--paper-2) 92%, var(--accent) 8%), var(--paper-3)), radial-gradient(circle at 58% 42%, color-mix(in oklch, var(--accent-2) 35%, transparent), transparent 55%);position:absolute;inset:0}.travel .map-embed iframe{filter:saturate(.78)contrast(1.06)brightness(1.02)sepia(.08);border:0;width:100%;height:100%;display:block;position:absolute;inset:0}.travel .map-embed:after{content:"";pointer-events:none;z-index:1;background:radial-gradient(ellipse at center, transparent 50%, color-mix(in oklch, var(--ink) 20%, transparent) 100%), linear-gradient(180deg, color-mix(in oklch, var(--accent) 8%, transparent), transparent 12%, transparent 88%, color-mix(in oklch, var(--accent) 6%, transparent));position:absolute;inset:0}.travel .map-pin-label{z-index:2;pointer-events:none;text-shadow:0 1px 2px #fff9;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.travel .map-pin-label .pin{background:var(--accent);width:14px;height:14px;box-shadow:0 0 0 4px color-mix(in oklch, var(--paper) 80%, transparent), 0 6px 14px -2px color-mix(in oklch, var(--ink) 70%, transparent);border-radius:999px;position:relative}.travel .map-pin-label .pin:after{content:"";border:1.5px solid var(--accent);opacity:.35;border-radius:999px;animation:2.4s ease-out infinite pulse;position:absolute;inset:-8px}.travel .map-pin-label .name{font-family:var(--font-display);color:var(--accent);background:color-mix(in oklch, var(--paper) 90%, transparent);box-shadow:0 4px 12px -4px color-mix(in oklch, var(--ink) 60%, transparent);border-radius:2px;padding:4px 14px;font-size:22px;font-style:italic}.travel .map-embed .map-link{z-index:3;background:var(--ink);color:var(--paper);font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;box-shadow:0 8px 20px -8px color-mix(in oklch, var(--ink) 70%, transparent);border-radius:999px;align-items:center;gap:8px;padding:10px 18px;font-size:10.5px;font-weight:500;transition:transform .2s,background .2s;display:inline-flex;position:absolute;bottom:16px;right:16px}.travel .map-embed .map-link:hover{background:var(--accent);transform:translateY(-2px)}@media (width<=880px){.travel .map{display:none}.travel .address-card__maps{display:flex}}.stay{background:var(--paper-3)}.stay .head{max-width:70ch;margin-bottom:clamp(40px,5vw,72px)}.stay .head .body{color:var(--ink-soft);text-wrap:pretty;margin:28px 0 0;font-size:26px}.estate-map{box-shadow:0 0 0 1px color-mix(in oklch, var(--accent) 25%, transparent), 0 0 0 9px var(--paper-3), 0 0 0 10px color-mix(in oklch, var(--accent-2) 55%, transparent), 0 60px 100px -40px color-mix(in oklch, var(--ink) 60%, transparent), 0 20px 40px -20px color-mix(in oklch, var(--ink) 40%, transparent);background:oklch(96% .012 80);margin:0 0 clamp(48px,6vw,88px);padding:8px;position:relative}.estate-map img{width:100%;height:auto;display:block}.estate-map-cap{background:var(--accent);color:var(--paper);font-family:var(--font-ui);letter-spacing:.26em;text-transform:uppercase;white-space:nowrap;box-shadow:0 10px 20px -8px color-mix(in oklch, var(--ink) 60%, transparent);padding:10px 22px;font-size:11px;font-weight:500;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.stay .grid{grid-template-columns:1fr 1.15fr;align-items:stretch;gap:clamp(18px,2vw,28px);display:grid}@media (width<=880px){.stay .grid{grid-template-columns:1fr}}.stay .cell{background:linear-gradient(165deg, color-mix(in oklch, var(--paper) 98%, white 2%), var(--paper));color:var(--ink);min-height:100%;box-shadow:0 1px 0 oklch(100% 5.96046e-8 none/.9) inset, 0 24px 48px -28px color-mix(in oklch, var(--ink) 55%, transparent);flex-direction:column;gap:0;padding:clamp(40px,4.5vw,60px) clamp(32px,3.5vw,48px);display:flex;position:relative}.stay .cell:before{content:"";background:linear-gradient(90deg, var(--accent), color-mix(in oklch, var(--accent-2) 70%, var(--accent) 30%) 55%, transparent);height:2px;position:absolute;top:0;left:clamp(32px,3.5vw,48px);right:clamp(32px,3.5vw,48px)}.stay .cell-corner{border:1px solid color-mix(in oklch, var(--accent-2) 55%, transparent);pointer-events:none;width:16px;height:16px;position:absolute}.stay .cell-corner.tl{border-bottom:0;border-right:0;top:18px;left:18px}.stay .cell-corner.br{border-top:0;border-left:0;bottom:18px;right:18px}.stay .cell-head{border-bottom:1px solid color-mix(in oklch, var(--ink) 12%, transparent);margin-bottom:clamp(24px,2.8vw,36px);padding-bottom:clamp(20px,2.2vw,28px)}.stay .cell .lbl{font-family:var(--font-display);color:#751424;letter-spacing:-.01em;text-wrap:balance;border:0;padding:0;font-size:clamp(36px,3.8vw,48px);font-style:italic;font-weight:400;line-height:1.05}.stay .cell-content{flex-direction:column;flex:1;justify-content:center;gap:clamp(12px,1.4vw,18px);display:flex}.stay .cell .ttl{font-family:var(--font-display);color:var(--ink);text-wrap:balance;margin:0;font-size:clamp(28px,3vw,40px);font-style:italic;line-height:1.12}.stay .cell .sub{color:var(--ink-soft);text-wrap:pretty;max-width:36ch;margin:0;font-size:clamp(17px,1.45vw,20px);line-height:1.6}.stay .cell:first-child .cell-content .sub{max-width:none}.stay .cell--dress .dress-grid{flex:1;grid-template-columns:1fr 1fr;align-items:start;gap:clamp(28px,3.5vw,44px);display:grid}@media (width<=880px){.stay .cell--dress .dress-grid{grid-template-columns:1fr;gap:clamp(28px,4vw,36px)}}.stay .cell--dress .dress-part{flex-direction:column;gap:clamp(8px,1vw,12px);display:flex;position:relative}.stay .cell--dress .dress-part+.dress-part:before{content:"";background:linear-gradient(180deg, transparent, color-mix(in oklch, var(--ink) 16%, transparent) 18%, color-mix(in oklch, var(--ink) 16%, transparent) 82%, transparent);width:1px;position:absolute;top:0;bottom:0;left:calc(clamp(28px,3.5vw,44px)/-2)}@media (width<=880px){.stay .cell--dress .dress-part+.dress-part{border-top:1px solid color-mix(in oklch, var(--ink) 10%, transparent);padding-top:clamp(28px,4vw,36px)}.stay .cell--dress .dress-part+.dress-part:before{display:none}}.stay .cell--dress .dress-occasion{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklch, var(--accent-2) 55%, var(--accent) 45%);margin:0;font-size:10.5px;font-weight:500}.stay .cell--dress .dress-part .ttl{font-size:clamp(24px,2.4vw,32px)}.gifts{background:var(--accent);color:var(--paper);position:relative;overflow:hidden}.gifts:before,.gifts:after{content:"";background:color-mix(in oklch, var(--paper) 8%, transparent);filter:blur(40px);pointer-events:none;border-radius:50%;width:240px;height:240px;position:absolute}.gifts:before{top:-80px;left:-80px}.gifts:after{bottom:-80px;right:-80px}.gifts .wrap{z-index:1;max-width:920px;position:relative}.gifts .card{background:var(--paper);color:var(--ink);padding:clamp(40px,5vw,72px) clamp(28px,4vw,64px);position:relative;box-shadow:inset 0 1px oklch(100% 5.96046e-8 none/.8),0 30px 60px -20px oklch(0% none none/.6)}.gifts .card:before,.gifts .card:after{content:"";background:color-mix(in oklch, var(--accent) 80%, white 0%);opacity:.55;border-radius:1px;width:38px;height:6px;position:absolute;top:14px;transform:rotate(-3deg)}.gifts .card:before{margin-left:-110px;left:50%}.gifts .card:after{margin-left:72px;left:50%;transform:rotate(2deg)}.gifts .card .label{color:var(--accent)}.gifts .card .h-section{color:var(--ink);text-align:center}.gifts .card .body{text-align:center;max-width:50ch;color:var(--ink-soft);text-wrap:pretty;margin:22px auto 0;font-size:clamp(18px,1.55vw,21px)}.gifts .top-eyebrow{text-align:center;margin-bottom:18px}.gifts .top-eyebrow .label:before{display:none}.gifts .top-eyebrow .label{justify-content:center}.gifts .top-eyebrow .label:after{content:"";opacity:.7;background:currentColor;width:24px;height:1px;margin-left:12px}.gifts .top-eyebrow .label:before{content:"";opacity:.7;background:currentColor;width:24px;height:1px;margin-right:12px;display:inline-block}.rebus-grid{flex-direction:column;align-items:center;gap:clamp(28px,4vw,52px);margin:40px 0 0;display:flex}.rebus-row{grid-template-columns:1fr 1fr;align-items:end;gap:clamp(20px,3vw,48px);width:100%;display:grid}@media (width<=720px){.rebus-row{grid-template-columns:1fr;gap:36px}}.rebus{text-align:center;flex-direction:column;align-items:center;display:flex}.rebus--bottom .ink-img{max-width:min(560px,92%)}.rebus .ink-img{mix-blend-mode:multiply;max-width:100%;height:auto}.contact{background:var(--ink);color:var(--paper)}.contact .wrap{grid-template-columns:1fr 1.1fr;align-items:center;gap:clamp(40px,6vw,96px);display:grid}@media (width<=880px){.contact .wrap{grid-template-columns:1fr}}.contact .contact-copy{flex-direction:column;display:flex}.contact .label{color:var(--accent-2)}.contact .h-section{color:var(--paper)}.contact .body{color:color-mix(in oklch, var(--paper) 80%, var(--ink-mute) 20%);text-wrap:pretty;max-width:50ch;margin-top:28px;font-size:clamp(20px,1.85vw,26px);line-height:1.6}.contact .helpers{border:1px solid color-mix(in oklch, var(--paper) 22%, transparent);border-radius:2px;margin-top:32px;padding:22px 24px}.contact .helpers .lbl{font-family:var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:color-mix(in oklch, var(--accent) 70%, white 30%);margin-bottom:6px;font-size:clamp(16px,1.5vw,20px)}.contact .helpers .text{font-family:var(--font-display);color:var(--paper);font-size:20px;font-style:italic}.contact .contact-photo{aspect-ratio:3/4;max-height:min(80vh,720px);margin-left:auto}.contact .contact-photo img{object-position:center 38%}@media (width<=880px){.contact .contact-photo{max-width:min(420px,100%);margin-inline:auto}}.footer{isolation:isolate;text-align:center;padding:clamp(72px, 10vw, 112px) var(--gutter) clamp(64px, 8vw, 96px);z-index:1;background:linear-gradient(180deg, color-mix(in oklch, var(--paper-2) 55%, transparent) 0%, var(--paper-2) 38%, color-mix(in oklch, var(--paper-2) 88%, var(--paper-3) 12%) 100%);border-top:1px solid color-mix(in oklch, var(--ink) 10%, transparent);position:relative}.footer .motes{opacity:.72}.footer-inner{z-index:1;flex-direction:column;align-items:center;gap:clamp(18px,3vw,28px);max-width:min(640px,100%);margin-inline:auto;display:flex;position:relative}.footer-mark{margin-bottom:0}.js .footer-mark .line--draw{transform-origin:50%;transition:transform 1s var(--ease-rise);transform:scaleX(0)}.footer-mark.is-visible .line--draw{transform:scaleX(1)}.footer-tag{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);margin:0;font-size:11px;font-weight:500}.footer-sig{font-family:var(--font-display);letter-spacing:-.02em;color:var(--accent);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 .14em;margin:0;font-size:clamp(36px,5vw,56px);font-style:italic;line-height:1;display:flex}.footer-sig .name{display:inline-block}.footer-sig .amp{color:var(--accent);transform-origin:50%;margin:0 .06em;font-size:.62em;display:inline-block}.footer-sig .amp.is-visible{animation:3s ease-in-out infinite footerAmp}@keyframes footerAmp{0%,to{opacity:1;transform:scale(1)}50%{opacity:.88;transform:scale(1.12)}}.footer-ribbon{width:min(100%,360px);font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;font-size:11px;font-weight:500;display:grid}.footer-ribbon .line{background:color-mix(in oklch, var(--ink) 28%, transparent);height:1px}.footer-ribbon .center{white-space:nowrap}.footer-top{font-family:var(--font-ui);letter-spacing:.24em;text-transform:uppercase;color:var(--ink-soft);flex-direction:column;align-items:center;gap:12px;margin-top:clamp(8px,2vw,16px);font-size:11px;font-weight:500;transition:color .25s;display:inline-flex}.footer-top:hover{color:var(--accent)}.footer-top .stroke{background:linear-gradient(0deg, transparent, color-mix(in oklch, var(--ink) 55%, transparent));width:1px;height:48px;position:relative;overflow:hidden}.footer-top .stroke:after{content:"";background:var(--accent);height:16px;animation:2.4s cubic-bezier(.6,.1,.2,1) infinite scrollDotUp;position:absolute;bottom:-16px;left:0;right:0}@keyframes scrollDotUp{0%{opacity:0;bottom:-16px}20%{opacity:1}80%{opacity:1}to{opacity:0;bottom:100%}}@media (width<=480px){.footer-sig{flex-direction:column;align-items:center;gap:.08em}.footer-sig .amp{margin:.1em 0}}.map .map-svg{width:100%;height:100%}.map .map-pin{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);flex-direction:column;align-items:center;gap:6px;font-size:10px;display:flex;position:absolute;top:38%;left:56%;transform:translate(-50%,-50%)}.map .map-pin .dot{background:var(--accent);border-radius:999px;width:10px;height:10px;position:relative}.map .map-pin .dot:before{content:"";border:1px solid var(--accent);opacity:.4;border-radius:999px;animation:2.2s ease-out infinite pulse;position:absolute;inset:-8px}@keyframes pulse{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(2.6)}}.map .map-attr{font-family:var(--font-ui);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);font-size:9px;position:absolute;bottom:10px;right:12px}.scroll-progress{background:var(--accent);z-index:60;width:0%;height:2px;transition:width .12s linear;position:fixed;top:0;left:0}:root{--ease-rise:cubic-bezier(.2, .6, .1, 1);--ease-img:cubic-bezier(.16, .7, .12, 1)}.reveal{transition:opacity .85s var(--ease-rise), transform .85s var(--ease-rise)}.js .reveal{opacity:0;transform:translateY(22px)}.js .reveal.reveal--right{transform:translate(28px)}.reveal.is-visible{opacity:1;transform:none}.js .reveal.reveal--fade{opacity:0;filter:blur(5px);transition:opacity 1.15s var(--ease-rise), transform 1.15s var(--ease-rise), filter 1.25s var(--ease-rise);transform:translateY(14px)}.reveal.reveal--fade.is-visible{opacity:1;filter:none;transform:none}.hero .names .first,.hero .names .line-second{display:block}.js .reveal.reveal--write{opacity:1;clip-path:inset(0 100% 0 0);transition:clip-path 1.05s cubic-bezier(.22,.55,.18,1);transform:none}.reveal.reveal--write.is-visible{clip-path:inset(0)}.js .reveal--photo img{clip-path:inset(0 0 100%);transition:clip-path 1.15s var(--ease-img), transform 1.5s var(--ease-img);transform:scale(1.12)}.reveal--photo.is-visible img{clip-path:inset(0);transform:none}.js .hero-photo.reveal--photo img{transform:scale(1.14)}.hero-photo.reveal--photo.is-visible img{transform:scale(1.02)}.js #miniMap:not(.is-visible) .mm__frame.reveal--photo img{clip-path:inset(0 0 100%);transform:scale(1.12)}#miniMap.is-visible .mm__frame.reveal--photo img{clip-path:inset(0);transform:none}.js .topbar{opacity:0;transition:opacity .8s var(--ease-rise), transform .8s var(--ease-rise), background .4s ease, backdrop-filter .4s ease, border-color .4s ease;transform:translateY(-14px)}.topbar.is-ready{opacity:1;transform:none}.timeline{position:relative}.timeline .axis{width:1px;margin-left:0;position:absolute;top:0;bottom:0;left:111px}@media (width<=720px){.timeline .axis{left:63px}}.contact{isolation:isolate}.contact>.wrap,.photos>.wrap{z-index:1;position:relative}.motes{z-index:0;pointer-events:none;position:absolute;inset:0;overflow:hidden}.mote{left:var(--x);top:var(--y);width:var(--size);height:var(--size);background:radial-gradient(circle, color-mix(in oklch, var(--accent-2) 90%, white) 0%, color-mix(in oklch, var(--accent-2) 45%, transparent) 45%, transparent 72%);opacity:0;filter:blur(.4px);will-change:transform, opacity;animation:moteDrift var(--dur) ease-in-out var(--delay) infinite;border-radius:50%;position:absolute}@keyframes moteDrift{0%{opacity:0;transform:translateY(16px)scale(.55)}18%{opacity:var(--peak)}82%{opacity:var(--peak)}to{opacity:0;transform:translate3d(var(--dx), -60px, 0) scale(.9)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.js .reveal,.js .reveal--fade,.js .reveal--write,.js .reveal--photo{opacity:1!important;clip-path:none!important;filter:none!important;transform:none!important}.js .reveal--photo img{clip-path:none!important;transform:none!important}.js .hero-photo.reveal--photo img{transform:scale(1.02)!important}.js .topbar{opacity:1!important;transform:none!important}.motes{display:none!important}}.mm{--mm-paper:var(--paper);--mm-card:color-mix(in oklch, var(--paper) 92%, var(--ink) 8%);--mm-line:color-mix(in oklch, var(--ink) 18%, var(--paper) 82%);--mm-pin:var(--accent);--mm-pin-fg:var(--paper);--mm-ring:color-mix(in oklch, var(--accent) 35%, transparent);--mm-shadow:0 18px 40px -22px color-mix(in oklch, var(--ink) 70%, transparent);--mm-cat-main:var(--accent);--mm-cat-stay:oklch(52% .12 40);--mm-cat-outdoors:oklch(50% .075 98);--mm-cat-horses:oklch(46% .07 55);--mm-cat-play:oklch(56% .105 76);--mm-cat-arrival:oklch(50% .035 62);color:var(--ink);margin:0 0 clamp(56px,7vw,96px);position:relative}.mm__head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:32px;margin:0 0 22px;padding:0 4px;display:flex}.mm__lbl{font-family:var(--font-ui);letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin:0 0 10px;font-size:11px;font-weight:500}.mm__h{font-family:var(--font-display);letter-spacing:-.005em;margin:0;font-size:clamp(28px,3vw,40px);font-weight:400;line-height:1.05}.mm__layout{grid-template-columns:minmax(0,1fr) 320px;align-items:stretch;gap:22px;display:grid}@media (width>=981px){.mm__layout{display:block;position:relative}.mm__stage{margin-right:342px}}@media (width<=980px){.mm__layout{grid-template-columns:1fr}}.mm__stage{position:relative}.mm__frame{aspect-ratio:1.475;box-shadow:0 0 0 1px color-mix(in oklch, var(--accent) 28%, transparent), 0 0 0 7px var(--paper-3), 0 0 0 8px color-mix(in oklch, var(--accent-2) 55%, transparent), var(--mm-shadow);background:oklch(96% .012 80);padding:6px;position:relative;overflow:hidden}.mm__img{object-fit:cover;object-position:100% 50%;user-select:none;-webkit-user-drag:none;width:100%;height:100%;display:block}.mm__veil{background:radial-gradient(120% 80% at 50% 50%, transparent 60%, color-mix(in oklch, var(--ink) 6%, transparent) 100%);pointer-events:none;position:absolute;inset:6px}.mm__river{writing-mode:vertical-rl;font-family:var(--font-display);letter-spacing:.4em;color:oklch(45% .04 230);opacity:0;pointer-events:none;font-size:14px;font-style:italic;position:absolute;top:50%;right:14px;transform:translateY(-50%)rotate(0)}.mm__expand{border:1px solid color-mix(in oklch, var(--ink) 20%, transparent);background:color-mix(in oklch, var(--paper) 92%, transparent);width:32px;height:32px;color:var(--ink);cursor:pointer;backdrop-filter:blur(2px);z-index:3;place-items:center;transition:background .18s,transform .18s;display:grid;position:absolute;top:14px;right:14px}.mm__expand:hover{background:var(--paper);transform:scale(1.05)}.mm__scale{font-family:var(--font-ui);letter-spacing:.2em;text-transform:uppercase;color:color-mix(in oklch, var(--ink) 65%, transparent);background:color-mix(in oklch, var(--paper) 80%, transparent);backdrop-filter:blur(2px);align-items:center;gap:10px;padding:6px 10px;font-size:10px;display:inline-flex;position:absolute;bottom:12px;left:14px}.mm__compass{border:1px solid var(--accent);width:18px;height:18px;font-family:var(--font-display);color:var(--accent);border-radius:999px;place-items:center;font-size:11px;font-style:italic;display:inline-grid}.mm__pins{pointer-events:none;position:absolute;inset:6px}.mm__pin{background:var(--mm-pin);width:clamp(28px,2.6vw,36px);height:clamp(28px,2.6vw,36px);color:var(--mm-pin-fg);border:1.5px solid color-mix(in oklch, var(--mm-pin) 70%, black 30%);font-family:var(--font-ui);letter-spacing:.02em;cursor:pointer;pointer-events:auto;box-shadow:0 0 0 3px color-mix(in oklch, var(--paper) 70%, transparent), 0 2px 0 oklch(0% none none/.3), 0 6px 14px -6px oklch(0% none none/.4);z-index:2;border-radius:999px;place-items:center;padding:0;font-size:clamp(11px,1vw,13px);font-weight:600;transition:transform .18s,box-shadow .18s,opacity .25s;display:grid;position:absolute;transform:translate(-50%,-50%)}.mm__pin-num{z-index:2;line-height:1;position:relative}.mm__pin-ring{border:1.5px solid var(--mm-pin);opacity:0;border-radius:999px;transition:opacity .25s,transform .25s;position:absolute;inset:-6px;transform:scale(.7)}.mm__pin:hover{z-index:5;transform:translate(-50%,-50%)scale(1.12)}.mm__pin.is-focus{z-index:5;transform:translate(-50%,-50%)scale(1.15)}.mm__pin.is-focus .mm__pin-ring{opacity:.55;animation:1.6s ease-out infinite mm-pulse;transform:scale(1)}.mm__pin.is-active{background:var(--ink);border-color:var(--ink);z-index:6;transform:translate(-50%,-50%)scale(1.22)}.mm__pin.is-active .mm__pin-ring{border-color:var(--accent);opacity:1;border-width:2px;animation:none;inset:-10px;transform:scale(1)}@keyframes mm-pulse{0%{box-shadow:0 0 0 0 color-mix(in oklch, var(--mm-pin) 45%, transparent)}to{box-shadow:0 0 0 18px color-mix(in oklch, var(--mm-pin) 0%, transparent)}}.mm__tip{pointer-events:none;z-index:7;background:var(--ink);color:var(--paper);font-family:var(--font-body);white-space:nowrap;align-items:center;gap:10px;padding:8px 14px 9px 10px;font-size:15px;animation:.18s ease-out both mm-tip-in;display:inline-flex;position:absolute;box-shadow:0 14px 30px -14px oklch(0% none none/.6)}.mm__tip:after{content:"";background:var(--ink);width:8px;height:8px;position:absolute;transform:rotate(45deg)}.mm__tip-num{background:var(--accent);width:22px;height:22px;color:var(--paper);font-family:var(--font-ui);border-radius:999px;flex:none;place-items:center;font-size:11px;font-weight:600;display:inline-grid}.mm__tip-name{font-family:var(--font-display);font-size:16px;line-height:1.1}.mm__tip-cat{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in oklch, var(--paper) 60%, transparent);margin-top:3px;font-size:9px}.mm__tip-text{flex-direction:column;display:flex}.mm__tip--right{transform:translate(28px,-50%)}.mm__tip--right:after{margin-top:-4px;top:50%;left:-3px}.mm__tip--left{transform:translate(calc(-100% - 28px),-50%)}.mm__tip--left:after{margin-top:-4px;top:50%;right:-3px}.mm__tip--above.mm__tip--right{transform:translate(28px,calc(4px - 100%))}.mm__tip--above.mm__tip--left{transform:translate(calc(-100% - 28px),calc(4px - 100%))}@keyframes mm-tip-in{0%{opacity:0;transform-origin:0}to{opacity:1}}.stay .mm__legend.cell{min-height:0}@media (width>=981px){.stay .mm__legend.cell{width:320px;height:100%;min-height:0;padding:clamp(20px,2vw,28px) clamp(18px,2vw,24px);position:absolute;top:0;right:0;overflow:hidden}}.mm__list{scrollbar-width:thin;scrollbar-color:var(--rule) transparent;flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.mm__list::-webkit-scrollbar{width:6px}.mm__list::-webkit-scrollbar-thumb{background:var(--rule)}.mm__item{border-bottom:1px dashed color-mix(in oklch, var(--ink) 12%, transparent);transition:opacity .25s;position:relative}.mm__item:last-child{border-bottom:0}.mm__item-btn{appearance:none;cursor:pointer;text-align:left;width:100%;color:inherit;font:inherit;background:0 0;border:0;grid-template-columns:28px 1fr auto;align-items:center;gap:12px;padding:12px 4px;transition:background .18s,padding-left .18s;display:grid}.mm__item-btn:hover{background:color-mix(in oklch, var(--ink) 4%, transparent);padding-left:10px}.mm__item.is-focus .mm__item-btn{background:color-mix(in oklch, var(--accent) 8%, transparent);padding-left:10px}.mm__item.is-active .mm__item-btn{background:color-mix(in oklch, var(--ink) 7%, transparent);padding-left:10px}.mm__item-num{background:var(--accent);width:26px;height:26px;color:var(--paper);font-family:var(--font-ui);border-radius:999px;flex:none;place-items:center;font-size:11px;font-weight:600;display:inline-grid}.mm__item.is-active .mm__item-num{background:var(--ink)}.mm__item-name{font-family:var(--font-display);color:var(--ink);font-size:18px;line-height:1.2}.mm__item-cat{font-family:var(--font-ui);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-mute);border:1px solid color-mix(in oklch, var(--ink) 14%, transparent);padding:3px 7px;font-size:9px}.mm__item-cat--main{color:var(--mm-cat-main);border-color:color-mix(in oklch, var(--mm-cat-main) 38%, transparent)}.mm__item-cat--stay{color:var(--mm-cat-stay);border-color:color-mix(in oklch, var(--mm-cat-stay) 38%, transparent)}.mm__item-cat--outdoors{color:var(--mm-cat-outdoors);border-color:color-mix(in oklch, var(--mm-cat-outdoors) 38%, transparent)}.mm__item-cat--horses{color:var(--mm-cat-horses);border-color:color-mix(in oklch, var(--mm-cat-horses) 38%, transparent)}.mm__item-cat--play{color:var(--mm-cat-play);border-color:color-mix(in oklch, var(--mm-cat-play) 38%, transparent)}.mm__item-cat--arrival{color:var(--mm-cat-arrival);border-color:color-mix(in oklch, var(--mm-cat-arrival) 38%, transparent)}.mm__item-body{font-family:var(--font-body);color:var(--ink-soft);padding:0 4px 16px 44px;font-size:15px;line-height:1.45;animation:.25s ease-out both mm-body-in}@keyframes mm-body-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}html.mm-open{overflow:hidden}.mm-lightbox{z-index:9999;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));place-items:center;display:grid;position:fixed;inset:0}.mm-lightbox[hidden]{display:none}.mm-lightbox__backdrop{appearance:none;background:color-mix(in oklch, var(--ink) 62%, transparent);cursor:zoom-out;border:0;margin:0;padding:0;position:absolute;inset:0}.mm-lightbox__figure{z-index:1;max-width:min(1280px,100%);max-height:100%;box-shadow:0 0 0 1px color-mix(in oklch, var(--accent) 28%, transparent), 0 0 0 7px var(--paper-3), 0 0 0 8px color-mix(in oklch, var(--accent-2) 55%, transparent), 0 40px 100px -40px oklch(0% none none/.8);margin:0;position:relative}.mm-lightbox__img{object-fit:contain;user-select:none;-webkit-user-drag:none;width:auto;max-width:100%;height:auto;max-height:calc(100vh - 32px);display:block}.mm-lightbox__close{border:1px solid color-mix(in oklch, var(--ink) 20%, transparent);background:color-mix(in oklch, var(--paper) 92%, transparent);width:36px;height:36px;color:var(--ink);cursor:pointer;backdrop-filter:blur(2px);place-items:center;transition:background .18s,transform .18s;display:grid;position:absolute;top:12px;right:12px}.mm-lightbox__close:hover{background:var(--paper);transform:scale(1.05)}@media (width<=980px){.stay .mm__legend.cell{display:none}}@media (width<=600px){.mm__pin{width:26px;height:26px;font-size:11px}.mm__head{gap:16px}}