/* fonts.css */
/* Google Fonts substitutes — no brand font files supplied. Replace with licensed files when available. */
@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;1,400&family=Jost:wght@300;400;500&family=Mrs+Saint+Delafield&display=swap');

/* colors.css */
:root{
/* Base — sampled from Brand Images.png */
--linen-50:#F5F1EA;--linen-100:#ECE5DA;--sand-200:#DDD1C1;--sand-300:#D3C4B2;--sand-400:#C4B4A0;
--taupe-500:#918A71;--taupe-600:#6E6853;
--umber-600:#6B5136;--umber-700:#523D27;
--fern-700:#3B4228;--fern-800:#2E331E;--fern-900:#212515;
--ink-900:#1A1813;--ink-700:#3A362E;--ink-500:#5E584C;
--cream-100:#EFE7D8;--white:#FFFFFF;
--success-700:#4E5E34;--error-700:#8A3B2A;--warning-700:#8C6A2A;

/* Semantic */
--surface-page:var(--linen-50);--surface-warm:var(--sand-300);--surface-muted:var(--linen-100);
--surface-card:var(--linen-50);--surface-dark:var(--fern-800);--surface-deep:var(--fern-900);
--text-primary:var(--ink-900);--text-body:var(--ink-700);--text-muted:var(--ink-500);
--text-on-dark:var(--cream-100);--text-on-dark-muted:#C9C2B0;--text-accent:var(--fern-800);
--border-strong:var(--ink-900);--border-default:rgba(26,24,19,.28);--border-subtle:rgba(26,24,19,.12);
--border-on-dark:var(--cream-100);
--action-primary:var(--ink-900);--action-primary-hover:var(--fern-800);--action-on-primary:var(--cream-100);
--focus-ring:var(--fern-700);
--overlay-scrim:rgba(33,37,21,.55);
}

/* typography.css */
:root{
--font-display:'Cormorant Garamond','Cormorant',Georgia,serif;
--font-sans:'Jost','Futura','Century Gothic',sans-serif;
--font-script:'Mrs Saint Delafield','Brush Script MT',cursive;

--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;

--fs-display-xl:clamp(3.5rem,8vw,7rem);--fs-display-lg:clamp(2.75rem,6vw,5rem);--fs-display-md:clamp(2.25rem,4.5vw,3.5rem);
--fs-heading:clamp(1.75rem,3vw,2.25rem);--fs-subheading:1.375rem;
--fs-body-lg:1.125rem;--fs-body:1rem;--fs-small:.875rem;--fs-caps:.8125rem;--fs-caps-sm:.6875rem;
--fs-script:clamp(2.25rem,4vw,3.25rem);

--lh-display:.95;--lh-heading:1.1;--lh-body:1.65;--lh-caps:1.9;
--tracking-display:.01em;--tracking-wordmark:.02em;--tracking-caps:.28em;--tracking-caps-wide:.36em;--tracking-caps-tight:.18em;

/* Semantic */
--type-hero:var(--weight-regular) var(--fs-display-xl)/var(--lh-display) var(--font-display);
--type-h1:var(--weight-regular) var(--fs-display-lg)/var(--lh-display) var(--font-display);
--type-h2:var(--weight-regular) var(--fs-display-md)/1 var(--font-display);
--type-h3:var(--weight-medium) var(--fs-heading)/var(--lh-heading) var(--font-display);
--type-body:var(--weight-light) var(--fs-body)/var(--lh-body) var(--font-sans);
--type-caps:var(--weight-regular) var(--fs-caps)/var(--lh-caps) var(--font-sans);
}

/* spacing.css */
:root{
--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:64px;--space-9:96px;--space-10:128px;
--section-y:clamp(64px,10vw,128px);--gutter:clamp(20px,5vw,64px);--content-max:1200px;--measure:34rem;

--radius-none:0;--radius-xs:2px;--radius-pill:999px;--radius-arch:999px 999px 0 0;
--border-hair:1px;--rule-length:64px;

--shadow-none:none;--shadow-float:0 18px 48px -24px rgba(33,37,21,.35);

--ease-soft:cubic-bezier(.22,.61,.36,1);--dur-fast:180ms;--dur-base:320ms;--dur-slow:700ms;
--control-h:52px;--control-h-sm:40px;
}

/* base.css */
html{-webkit-font-smoothing:antialiased}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body)}
a{color:var(--text-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
a:hover{color:var(--fern-800)}
::selection{background:var(--sand-300);color:var(--ink-900)}

/* page */
body{margin:0;background:var(--surface-page)}
.f{position:relative;max-width:1280px;margin:0 auto;background:var(--surface-page);color:var(--ink-900);overflow:hidden}
.wm{display:inline-flex;flex-direction:column;align-items:center;text-decoration:none;color:inherit}
.wm i{font:400 clamp(38px,5vw,54px)/.9 var(--font-display);font-style:normal;letter-spacing:.02em}
.wm s{text-decoration:none;font:400 clamp(9px,1vw,10px)/1 var(--font-sans);letter-spacing:.36em;padding-left:.36em;margin-top:10px}
.nav{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:clamp(24px,4vw,40px) var(--px)}
.menu{font:400 12px/1 var(--font-sans);letter-spacing:.32em;margin-top:18px}
.caps{font:400 clamp(13px,1.4vw,15px)/2 var(--font-sans);letter-spacing:.32em;text-transform:uppercase;margin:0}
.caps-sm{font:400 11px/1.8 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;margin:0}
.disp{font-family:var(--font-display);font-weight:400;text-transform:uppercase;line-height:.95;margin:0;letter-spacing:.01em;overflow-wrap:break-word}
.rule{width:1px;height:64px;background:currentColor;flex:none}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 36px;border:1px solid currentColor;background:transparent;color:inherit;font:400 13px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;text-decoration:none;cursor:pointer;border-radius:0;transition:background .32s,color .32s;box-sizing:border-box}
.btn:hover{background:var(--ink-900);color:var(--cream-100);border-color:var(--ink-900)}
.btn.solid{background:var(--ink-900);color:var(--cream-100);border-color:var(--ink-900)}.btn.solid:hover{background:var(--fern-800);border-color:var(--fern-800)}
.btn.light:hover{background:var(--cream-100);color:var(--fern-900);border-color:var(--cream-100)}
.in{width:100%;height:52px;box-sizing:border-box;padding:0 16px;border:1px solid var(--border-default);background:transparent;font:300 16px var(--font-sans);color:inherit;border-radius:0;outline:none;min-width:0;-webkit-appearance:none}
.in:focus{border-color:currentColor}.in::placeholder{color:var(--ink-500)}
.dk .in{border-color:rgba(239,231,216,.45)}.dk .in::placeholder{color:#C9C2B0}
.lbl{display:block;font:400 11px/1 var(--font-sans);letter-spacing:.28em;text-transform:uppercase;margin-bottom:8px}
.chk{display:flex;gap:12px;align-items:center;font:300 14px/1.4 var(--font-sans)}
.chk input{width:16px;height:16px;accent-color:var(--fern-800);margin:0;flex:none}
.thanks{display:none;font:400 13px/1.9 var(--font-sans);letter-spacing:.28em;text-transform:uppercase}
form.done>*{display:none}form.done .thanks{display:block}
.script{font:400 clamp(40px,5vw,60px)/1 var(--font-script);transform:rotate(-6deg);transform-origin:left center;display:inline-block}
.ph{background:var(--sand-200);position:relative}.ph em{position:absolute;left:18px;top:16px;font:400 10px/1 var(--font-sans);font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:var(--ink-500)}
.photo{background-size:cover;background-position:center;filter:grayscale(1) sepia(.28) contrast(.95) brightness(1.04)}
.foot{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:28px var(--px);font:400 11px/1 var(--font-sans);letter-spacing:.28em}
.ig{width:22px;height:22px;border:1.25px solid currentColor;border-radius:6px;position:relative;box-sizing:border-box;flex:none}.ig::after{content:"";position:absolute;inset:5px;border:1.25px solid currentColor;border-radius:50%}
a{color:var(--ink-900)}a:hover{color:var(--fern-800)}
:root{--px:clamp(24px,5vw,56px)}
.stack{display:flex;flex-direction:column;align-items:flex-start;gap:clamp(24px,3vw,36px)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
/* A */
.a-hero{display:grid;grid-template-columns:1fr 1fr;min-height:860px;background:var(--sand-300)}
.a-copy{padding:60px var(--px) 80px clamp(24px,6vw,80px);flex:1;justify-content:center}
.a-h1{font-size:clamp(52px,7.5vw,96px)}
.a-notify{padding:clamp(64px,9vw,112px) clamp(24px,6vw,80px);display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,80px);align-items:start}
.a-h2{font-size:clamp(40px,5vw,60px)}
/* B */
.b-arch{width:min(640px,calc(100% - 2*var(--px)));box-sizing:border-box;background:var(--sand-300);color:var(--ink-900);border-radius:999px 999px 0 0;padding:clamp(96px,12vw,150px) clamp(24px,5vw,56px) clamp(64px,8vw,96px);display:flex;flex-direction:column;align-items:center;gap:clamp(24px,3vw,36px);text-align:center;margin:0 auto}
.b-h1{font-size:clamp(44px,6.6vw,84px)}
.b-form{max-width:640px;margin:0 auto;padding:clamp(48px,6vw,72px) var(--px) 0;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:24px;text-align:center}
/* C */
.c-h1{font-size:clamp(54px,11.7vw,150px);line-height:.9}
.c-meta{display:flex;justify-content:space-between;align-items:flex-end;margin-top:48px;gap:32px}
.c-strip{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:12px;padding:0 var(--px);height:520px}
.c-band{margin-top:clamp(56px,8vw,96px);background:var(--fern-800);color:var(--cream-100);padding:clamp(56px,8vw,96px) var(--px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,80px);align-items:center}
.c-row{display:flex}
@media (max-width:820px){
.a-hero{grid-template-columns:1fr;min-height:0}.a-hero .photo{aspect-ratio:4/5;order:2}
.a-notify,.c-band{grid-template-columns:1fr}
.c-meta{flex-direction:column;align-items:flex-start;gap:20px}.c-meta .caps:last-child{text-align:left!important}
.c-strip{grid-template-columns:1fr 1fr;height:auto}.c-strip>:first-child{grid-column:1/-1;aspect-ratio:4/3}.c-strip>.ph{aspect-ratio:3/4}
}
@media (max-width:520px){
.two{grid-template-columns:1fr}
.c-row{flex-direction:column;gap:12px}.c-row .in{border-right:1px solid rgba(239,231,216,.45)!important}.c-row .btn{width:100%}
.btn.full-sm{width:100%}
.b-script{display:none}
}
.dk .btn.solid{background:var(--cream-100);color:var(--fern-900);border-color:var(--cream-100)}.dk .btn.solid:hover{background:transparent;color:var(--cream-100);border-color:var(--cream-100)}
.dk .chk input{accent-color:var(--sand-300)}.dk a{color:var(--cream-100)}
.green{background:var(--fern-800);color:var(--cream-100)}
.plant{position:absolute;pointer-events:none;background-repeat:no-repeat;background-size:contain;background-position:right bottom;z-index:0}
.caps,.menu,.script,.wm,.btn,.rule,.disp{position:relative;z-index:1}
@media (max-width:820px){.plant{transform:scale(.7);transform-origin:bottom right}}
.script{font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(30px,3.4vw,40px);transform:none!important;letter-spacing:.01em}
.foot .script{font-size:28px}

.b-arch{width:min(720px,calc(100% - 2*var(--px)))}
.b-h1{font-size:clamp(40px,6vw,76px);overflow-wrap:normal;word-break:keep-all;hyphens:none;line-height:1}
.b-arch .rule{height:56px;margin:4px 0}
.plant{-webkit-mask-image:linear-gradient(to right,transparent 0,#000 45%),linear-gradient(to top,transparent 0,#000 12%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to right,transparent 0,#000 45%),linear-gradient(to top,transparent 0,#000 12%);mask-composite:intersect}
.v2-notify{max-width:640px;margin:0 auto;padding:clamp(72px,10vw,120px) var(--px);box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:28px;text-align:center}
.v2-notify form{width:100%;align-items:center}
.v2-notify .two{width:100%;text-align:left}
.v2-notify .chk{justify-content:center}
.v2-sep{width:min(720px,calc(100% - 2*var(--px)));margin:0 auto;height:1px;background:rgba(239,231,216,.25)}
.v2-foot{justify-content:center;flex-direction:column;gap:12px;text-align:center;padding:40px var(--px)}
.v2-foot a{text-decoration:none;letter-spacing:.28em}.v2-foot a:hover{color:var(--sand-300)}
@keyframes v2up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.v2-in{animation:v2up .9s cubic-bezier(.2,.7,.2,1) both}
.v2-d1{animation-delay:.15s}.v2-d2{animation-delay:.3s}.v2-d3{animation-delay:.45s}
@media (prefers-reduced-motion:reduce){.v2-in{animation:none}}
.v2-intro{max-width:640px;margin:0 auto;padding:clamp(48px,6vw,72px) var(--px);box-sizing:border-box;text-align:center}
.sg{padding:clamp(64px,9vw,112px) 0 clamp(72px,10vw,120px);display:flex;justify-content:center}
.sg-card{position:relative;width:min(720px,calc(100% - 2*var(--px)));box-sizing:border-box;background:var(--sand-300);color:var(--ink-900);padding:clamp(48px,7vw,88px) clamp(24px,7vw,96px);overflow:hidden}
.sg-card::before{content:"";position:absolute;inset:12px;border:1px solid var(--sand-400);pointer-events:none}
.sg-plant{position:absolute;right:12px;bottom:12px;width:120px;height:420px;background:url('assets/photos/plant-sprig.png') no-repeat right bottom/contain;opacity:.9;pointer-events:none;-webkit-mask-image:linear-gradient(to right,transparent,#000 45%);mask-image:linear-gradient(to right,transparent,#000 45%)}
.sg-head{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:20px;margin-bottom:clamp(36px,5vw,56px)}
.sg-title{margin:0;font:400 clamp(28px,3.6vw,44px)/1.15 var(--font-display);font-style:italic;letter-spacing:.005em;text-wrap:balance}
.sg-date{margin:0;display:inline-flex;align-items:center;gap:16px;font:500 13px/1 var(--font-sans);letter-spacing:.32em;text-transform:uppercase;color:var(--fern-800)}.sg-date::before,.sg-date::after{content:"";width:40px;height:1px;background:currentColor}
.sg-form{position:relative;display:flex;flex-direction:column;gap:28px;max-width:560px;margin:0 auto}
.sg-fields{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.sg-f{display:flex;flex-direction:column;gap:10px;text-align:left}
.sg-f span{font:400 10px/1 var(--font-sans);letter-spacing:.3em;text-transform:uppercase;color:var(--ink-700)}
.sg-f input{border:0;border-bottom:1px solid var(--ink-900);background:transparent;padding:6px 0 12px;font:400 22px/1.2 var(--font-display);color:var(--ink-900);outline:none;border-radius:0;min-width:0;transition:border-color .3s}
.sg-f input::placeholder{color:var(--ink-500);font-style:italic}
.sg-f input:focus{border-bottom-color:var(--fern-800);box-shadow:0 1px 0 var(--fern-800)}
.sg-f input:-webkit-autofill,.sg-f input:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--sand-300) inset;-webkit-text-fill-color:var(--ink-900);caret-color:var(--ink-900);transition:background-color 9999s ease-out 0s}
.sg-f input:-webkit-autofill:focus{-webkit-box-shadow:0 0 0 1000px var(--sand-300) inset,0 1px 0 var(--fern-800)}
.sg-chk{display:flex;align-items:center;justify-content:center;gap:12px;font:300 14px/1.4 var(--font-sans);cursor:pointer}
.sg-chk input{position:absolute;opacity:0;width:1px;height:1px}
.sg-chk i{width:16px;height:16px;border:1px solid var(--ink-900);display:grid;place-items:center;flex:none}
.sg-chk input:checked+i::after{content:"";width:8px;height:8px;background:var(--fern-800)}
.sg-chk input:focus-visible+i{outline:2px solid var(--fern-800);outline-offset:2px}
.sg-btn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:60px;background:var(--fern-800);color:var(--cream-100);font:400 13px/1 var(--font-sans);letter-spacing:.32em;text-transform:uppercase;transition:background .35s}
.sg-btn b{font-weight:300;letter-spacing:0;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.sg-btn:hover{background:var(--fern-900)}.sg-btn:hover b{transform:translateX(6px)}
.sg-btn:focus-visible{outline:2px solid var(--fern-800);outline-offset:3px}
.sg-thanks{text-align:center;color:var(--fern-800)}
@media (max-width:620px){.sg-fields{grid-template-columns:1fr}.sg-plant{width:80px;height:280px;opacity:.6}}
.v2-foot{gap:14px;line-height:1.6}.v2-foot a{color:var(--cream-100)}
.sg-err{display:none;margin:0;text-align:center;font:400 14px/1.5 var(--font-sans);color:#8A2E1F}.sg-err.on{display:block}
.sg-form.busy .sg-btn{opacity:.6;pointer-events:none}
