html{scroll-padding-top:env(safe-area-inset-top,0px);-webkit-text-size-adjust:100%}body{min-height:100vh;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);margin:0}img{max-width:100%;display:block}[hidden]{display:none!important}:root{--bg:#f8f8f5;--surface:#fff;--tint:#eef0ea;--ink:#1e2820;--muted:#5e6a60;--line:#d9ddd3;--sage:#8fa286;--blush:#ebcfcb;--rose:#a84d62;--rose-ink:#fff;--ph-a:#ebd3cf;--ph-b:#d6dfcf;--ph-c:#f4ece6;--ph-text:#4a554c;--off:#e4e6e0;--off-text:#9aa196;--display:"Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;--body:"Jost", "Futura", "Avenir Next", system-ui, sans-serif;--mono:"DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--wrap:1180px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131915;--surface:#1a211c;--tint:#202923;--ink:#ecebe5;--muted:#a5aea4;--line:#2f3a32;--sage:#8fa286;--blush:#5a3d40;--rose:#e08da0;--rose-ink:#1a1214;--ph-a:#3a2e30;--ph-b:#27332a;--ph-c:#222a24;--ph-text:#c4ccc2;--off:#242c26;--off-text:#5e6a60}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#131915;--surface:#1a211c;--tint:#202923;--ink:#ecebe5;--muted:#a5aea4;--line:#2f3a32;--sage:#8fa286;--blush:#5a3d40;--rose:#e08da0;--rose-ink:#1a1214;--ph-a:#3a2e30;--ph-b:#27332a;--ph-c:#222a24;--ph-text:#c4ccc2;--off:#242c26;--off-text:#5e6a60}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);font-family:var(--body);font-size:17px;font-weight:300;line-height:1.6}a{color:inherit}h1,h2,h3{font-family:var(--display);text-wrap:balance;margin:0;font-weight:400;line-height:1.08}p{margin:0}.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:12px}.lede{color:var(--muted);max-width:60ch;font-size:clamp(17px,1.6vw,19px)}:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.mock-bar{background:var(--ink);color:var(--bg);font-family:var(--mono);letter-spacing:.08em;text-align:center;padding:7px 16px;font-size:11.5px}header.site{top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky}.head-row{justify-content:space-between;align-items:center;gap:24px;height:72px;display:flex}.logo{font-family:var(--display);letter-spacing:-.01em;font-size:34px;font-style:italic;text-decoration:none}.logo span{color:var(--rose)}nav.main{gap:26px;display:flex}nav.main a{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid #0000;padding-block:6px;font-size:13px;text-decoration:none}nav.main a:hover,nav.main a[aria-current=page]{color:var(--ink);border-color:var(--ink)}.menu-btn{border:1px solid var(--line);color:var(--ink);font:inherit;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:999px;padding:8px 14px;font-size:13px;display:none}@media (width<=900px){.menu-btn{display:block}nav.main{background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px clamp(16px,4vw,40px) 16px;display:none;position:absolute;top:72px;left:0;right:0}nav.main.open{display:flex}nav.main a{border-bottom:1px solid var(--line);padding-block:12px}.head-cta{display:none}}.btn{text-align:center;font-family:var(--body);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--ink);background:var(--ink);color:var(--bg);cursor:pointer;border-radius:999px;align-items:center;gap:10px;padding:14px 26px;font-size:14px;font-weight:400;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.btn:hover{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.btn.ghost{color:var(--ink);background:0 0}.btn.ghost:hover{background:var(--ink);color:var(--bg);border-color:var(--ink)}.btn.small{padding:10px 18px;font-size:12.5px}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.ph{background:radial-gradient(60% 50% at 30% 35%,var(--ph-a),transparent 70%), radial-gradient(55% 60% at 75% 70%,var(--ph-b),transparent 70%), var(--ph-c);border-radius:2px;width:100%;max-width:100%;position:relative;overflow:hidden}.ph:before{content:"";border:1px dashed color-mix(in srgb,var(--ph-text) 30%,transparent);position:absolute;inset:12px}.ph:after{content:attr(data-label);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ph-text);font-size:11px;position:absolute;bottom:18px;left:20px;right:20px}section.block{padding-block:clamp(56px,8vw,112px)}section.block+section.block{border-top:1px solid var(--line)}.sec-head{gap:14px;margin-bottom:clamp(32px,4vw,56px);display:grid}.sec-head h2{font-size:clamp(34px,4.6vw,58px)}.sec-head h2 em{color:var(--rose)}.hero{padding-block:clamp(40px,6vw,80px) clamp(56px,8vw,100px)}.hero-grid{grid-template-columns:1.3fr .7fr;align-items:end;gap:clamp(28px,5vw,72px);display:grid}.hero h1{letter-spacing:-.015em;font-size:clamp(40px,5.4vw,74px)}.hero h1 em{color:var(--rose)}.hero .lede{margin-block:26px 34px}.hero-meta{border-top:1px solid var(--line);flex-wrap:wrap;gap:10px 28px;margin-top:40px;padding-top:22px;display:flex}.hero-meta div{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px}.hero-meta b{font-family:var(--display);letter-spacing:0;text-transform:none;color:var(--ink);font-size:22px;font-weight:400;display:block}@media (width<=820px){.hero-grid{grid-template-columns:1fr}}.gallery{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.gallery .tall{grid-row:span 2}@media (width<=820px){.gallery{grid-template-columns:repeat(2,1fr)}}.steps{counter-reset:s;grid-template-columns:repeat(4,1fr);gap:28px;display:grid}.step{border-top:1px solid var(--ink);align-content:start;gap:12px;padding-top:20px;display:grid}.step .n{font-family:var(--display);color:var(--rose);font-size:40px;font-style:italic;line-height:1}.step h3{font-family:var(--body);letter-spacing:.12em;text-transform:uppercase;font-size:14px;font-weight:500}.step p{color:var(--muted);font-size:15.5px}@media (width<=900px){.steps{grid-template-columns:repeat(2,1fr)}}@media (width<=520px){.steps{grid-template-columns:1fr}}.note{background:var(--tint);border-radius:2px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;margin-top:40px;padding:22px 26px;display:flex}.note p{max-width:62ch}.pkgs{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;display:grid}.pkg{background:var(--surface);border:1px solid var(--line);grid-template-rows:auto 1fr;grid-template-columns:minmax(0,1fr);display:grid}.pkg.featured{border-color:var(--ink)}.pkg-body{align-content:start;gap:14px;padding:26px 24px 28px;display:grid}.pkg-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.pkg h3{font-size:30px}.tag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:999px;padding:4px 8px;font-size:10.5px}.price{font-family:var(--mono);letter-spacing:.06em;color:var(--muted);font-size:13px}.price b{font-family:var(--display);color:var(--ink);letter-spacing:0;font-size:30px;font-weight:400}.pkg p.desc{color:var(--muted);font-size:15.5px}ul.incl{gap:8px;margin:4px 0 8px;padding:0;font-size:15px;list-style:none;display:grid}ul.incl li{grid-template-columns:18px 1fr;gap:8px;display:grid}ul.incl li:before{content:"✿";color:var(--sage);font-size:13px;line-height:1.7}ul.excl li:before{content:"–";color:var(--muted)}.pkg .btn-row{margin-top:auto}@media (width<=900px){.pkgs{grid-template-columns:minmax(0,1fr)}}.quotes{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.quote{background:var(--surface);border:1px solid var(--line);align-content:start;gap:16px;padding:28px 26px;display:grid}.quote blockquote{font-family:var(--display);margin:0;font-size:21px;font-style:italic;line-height:1.4}.quote .who{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11.5px}.stars{color:var(--rose);letter-spacing:.2em;font-size:13px}.ph-flag{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;background:var(--tint);color:var(--muted);border-radius:999px;justify-self:start;padding:3px 8px;font-size:10px}@media (width<=900px){.quotes{grid-template-columns:1fr}}.split{grid-template-columns:.8fr 1.2fr;align-items:center;gap:clamp(28px,5vw,72px);display:grid}.split .copy{gap:20px;display:grid}.split h2{font-size:clamp(32px,4.2vw,52px)}@media (width<=820px){.split{grid-template-columns:1fr}}.values{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.value{border-top:1px solid var(--ink);gap:10px;padding-top:18px;display:grid}.value h3{font-family:var(--body);letter-spacing:.12em;text-transform:uppercase;font-size:14px;font-weight:500}.value p{color:var(--muted);font-size:15.5px}@media (width<=820px){.values{grid-template-columns:1fr}}.band{background:var(--ink);color:var(--bg);padding-block:clamp(56px,8vw,96px)}.band .inner{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:28px;display:flex}.band h2{max-width:16ch;font-size:clamp(34px,5vw,64px)}.band h2 em{color:var(--blush)}.band .eyebrow{color:color-mix(in srgb,var(--bg) 65%,transparent)}.band .btn{background:var(--bg);color:var(--ink);border-color:var(--bg)}.band .btn:hover{background:var(--rose);border-color:var(--rose);color:var(--rose-ink)}.band .btn.ghost{color:var(--bg);background:0 0}.page-head{gap:16px;padding-block:clamp(48px,7vw,96px) clamp(28px,4vw,48px);display:grid}.page-head h1{letter-spacing:-.015em;font-size:clamp(44px,7vw,96px)}.page-head h1 em{color:var(--rose)}.crumbs{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:12px}.crumbs a{text-decoration:none}.crumbs a:hover{color:var(--ink)}.detail{grid-template-columns:1.1fr .9fr;align-items:start;gap:clamp(28px,5vw,64px);padding-bottom:clamp(56px,8vw,112px);display:grid}.detail-gal{grid-template-columns:1fr 1fr;gap:12px;display:grid}.detail-gal .ph:first-child{grid-column:span 2}.detail-info{gap:22px;display:grid;position:sticky;top:100px}.detail-info h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 4px;font-size:12px;font-weight:400}.detail-price{border-block:1px solid var(--line);align-items:baseline;gap:12px;padding-block:18px;display:flex}.detail-price b{font-family:var(--display);font-size:44px;font-weight:400}.other-pkgs{flex-wrap:wrap;gap:10px;display:flex}@media (width<=900px){.detail{grid-template-columns:1fr}.detail-info{position:static}}.form-grid{grid-template-columns:1fr 1fr;gap:18px 20px;display:grid}.field{gap:7px;display:grid}.field.full{grid-column:1/-1}label,.lbl{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:11.5px}input[type=text],input[type=email],input[type=tel],input[type=number],input[type=url],select,textarea{width:100%;font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:2px;padding:12px 14px;font-size:16px;font-weight:300}textarea{resize:vertical;min-height:120px}input:focus,select:focus,textarea:focus{border-color:var(--ink);outline:none}.checks{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;display:grid}.check{border:1px solid var(--line);background:var(--surface);font-family:var(--body);letter-spacing:0;text-transform:none;color:var(--ink);cursor:pointer;align-items:center;gap:10px;padding:12px 14px;font-size:15px;display:flex}.check input{accent-color:var(--rose);width:16px;height:16px}.check .q{align-items:center;gap:6px;margin-left:auto;display:flex}.check .q input{width:56px;padding:4px 6px;font-size:14px}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--surface);cursor:pointer;font-size:14px;font-family:var(--body);color:var(--ink);border-radius:999px;padding:8px 16px}.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.form-note{font-family:var(--mono);color:var(--muted);letter-spacing:.04em;font-size:12px}.toast{font-family:var(--mono);letter-spacing:.04em;background:var(--tint);border-left:2px solid var(--rose);padding:12px 16px;font-size:12.5px}.calc{grid-template-columns:1.3fr .7fr;align-items:start;gap:clamp(24px,4vw,48px);padding-bottom:clamp(56px,8vw,112px);display:grid}.calc-panel{gap:30px;display:grid}.calc-group{border-bottom:1px solid var(--line);gap:14px;padding-bottom:28px;display:grid}.calc-group h3{font-size:26px}.result{background:var(--ink);color:var(--bg);gap:18px;padding:30px 28px;display:grid;position:sticky;top:100px}.result .eyebrow{color:color-mix(in srgb,var(--bg) 60%,transparent)}.result .range{font-family:var(--display);font-size:clamp(34px,4vw,46px);line-height:1.1}.result dl{gap:8px;margin:0;font-size:14.5px;display:grid}.result dl div{border-bottom:1px solid color-mix(in srgb,var(--bg) 18%,transparent);font-variant-numeric:tabular-nums;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.result dt{color:color-mix(in srgb,var(--bg) 70%,transparent)}.result dd{font-family:var(--mono);margin:0;font-size:13px}.result p{color:color-mix(in srgb,var(--bg) 70%,transparent);font-size:13.5px}.result .btn{background:var(--bg);color:var(--ink);border-color:var(--bg);justify-content:center}@media (width<=900px){.calc{grid-template-columns:1fr}.result{position:static}}.book{grid-template-columns:.9fr 1.1fr;align-items:start;gap:clamp(24px,4vw,56px);padding-bottom:clamp(56px,8vw,112px);display:grid}.cal{background:var(--surface);border:1px solid var(--line);padding:24px}.cal-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.cal-head h3{font-size:28px}.cal-nav{gap:6px;display:flex}.cal-nav button{border:1px solid var(--line);width:36px;height:36px;color:var(--ink);cursor:pointer;background:0 0;border-radius:50%;font-size:16px}.cal-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-grid .dow{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);padding-block:6px;font-size:11px}.day{aspect-ratio:1;font-variant-numeric:tabular-nums;color:var(--ink);font-size:15px;font-family:var(--body);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;display:grid}.day:hover{border-color:var(--ink)}.day.off{color:var(--off-text);background:var(--off);cursor:default;text-decoration:line-through}.day.off:hover{border-color:#0000}.day.sel{background:var(--rose);color:var(--rose-ink)}.day.empty{visibility:hidden}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:18px;font-size:13px;display:flex}.legend span{align-items:center;gap:8px;display:flex}.legend i{border:1px solid var(--line);border-radius:50%;width:14px;height:14px;display:inline-block}.legend .l-off{background:var(--off)}.legend .l-sel{background:var(--rose);border-color:var(--rose)}.picked{background:var(--tint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:18px;padding:16px 18px;display:flex}.picked b{font-family:var(--display);font-size:22px;font-weight:400}@media (width<=900px){.book{grid-template-columns:1fr}}@media (width<=560px){.form-grid{grid-template-columns:1fr}}.review-sum{flex-wrap:wrap;align-items:end;gap:28px 56px;margin-bottom:40px;display:flex}.review-sum b{font-family:var(--display);font-size:64px;font-weight:400;line-height:1}.reviews-grid{columns:3 300px;column-gap:22px}.reviews-grid .quote{break-inside:avoid;margin-bottom:22px}.quote .ph{aspect-ratio:4/3}footer.site{border-top:1px solid var(--line);padding-block:56px 36px}.foot{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;display:grid}.foot h4{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 12px;font-size:11.5px;font-weight:400}.foot ul{gap:6px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.foot a{text-decoration:none}.foot a:hover{color:var(--rose)}.foot .logo{font-size:44px}.foot p{color:var(--muted);max-width:34ch;margin-top:8px;font-size:15px}.legal{border-top:1px solid var(--line);font-family:var(--mono);color:var(--muted);letter-spacing:.04em;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:48px;padding-top:20px;font-size:12px;display:flex}@media (width<=820px){.foot{grid-template-columns:1fr 1fr}}@media (width<=480px){.foot{grid-template-columns:1fr}}.page{animation:.35s both fade}@keyframes fade{0%{opacity:.4}to{opacity:1}}@media (prefers-reduced-motion:reduce){.page{animation:none}*{transition:none!important}}
