@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Jost:ital,wght@0,300..700;1,300..600&family=Alex+Brush&display=swap");
:root{
/* Brand — champagne / rose gold */
--rose-50:#FBF5F0;--rose-100:#F3E7DC;--rose-200:#E7CFBC;--rose-300:#D9B79E;--rose-400:#CDA88F;
--rose-500:#C39A80;--rose-600:#B4886C;--rose-700:#9A7159;--rose-800:#7A5945;--rose-900:#5A4133;

/* Ink — warm near-black */
--ink-900:#0C0B0B;--ink-800:#141312;--ink-700:#1F1E1C;--ink-600:#2B2926;--ink-500:#3D3A36;
--ink-400:#5A554F;--ink-300:#6B6259;--ink-200:#8C837A;--ink-100:#B5ADA4;

/* Cream — page + surface neutrals */
--cream-50:#FFFFFF;--cream-100:#FDFBF9;--cream-200:#F9F6F3;--cream-300:#F5F1ED;--cream-400:#EDE6DF;
--cream-500:#E2D8CE;--cream-600:#D4C7BA;

/* Semantic — surfaces */
--surface-page:var(--cream-200);
--surface-card:var(--cream-50);
--surface-sunken:var(--cream-300);
--surface-dark:var(--ink-900);
--surface-dark-panel:var(--ink-700);
--surface-accent-soft:var(--rose-50);

/* Semantic — text */
--text-heading:var(--ink-800);
--text-body:var(--ink-500);
--text-muted:var(--ink-400);
--text-accent:var(--rose-800);
--text-on-dark:#FFFFFF;
--text-on-dark-muted:#E2D8CE;
--text-on-accent:#FFFFFF;

/* Semantic — lines */
--border-hairline:#D9D0C8;
--border-card:#DED5CD;
--border-strong:var(--ink-800);
--border-accent:var(--rose-300);
--border-on-dark:rgba(255,255,255,.14);

/* Semantic — interactive */
--action-primary:var(--rose-800);
--action-primary-hover:var(--rose-900);
--action-primary-press:var(--ink-700);
--action-dark:var(--ink-800);
--action-dark-hover:var(--ink-700);

/* Status — used sparingly (form validation only) */
--status-success:#5C7A5E;--status-error:#9B4A3F;--status-warning:#B4886C;

/* Overlays */
--scrim-photo:linear-gradient(180deg,rgba(12,11,11,0) 0%,rgba(12,11,11,.72) 100%);/* @kind color */
--scrim-hero:linear-gradient(90deg,rgba(12,11,11,.94) 0%,rgba(12,11,11,.72) 42%,rgba(12,11,11,0) 78%);/* @kind color */
--tint-gold:linear-gradient(135deg,var(--rose-300) 0%,var(--rose-500) 100%);/* @kind color */
}
:root{
--font-display:"Playfair Display",Georgia,"Times New Roman",serif;
--font-script:"Alex Brush","Playfair Display",cursive;
--font-ui:"Jost","Helvetica Neue",Arial,sans-serif;
--font-body:var(--font-ui);

--fw-light:300;/* @kind font */
--fw-regular:400;/* @kind font */
--fw-medium:500;/* @kind font */
--fw-semibold:600;/* @kind font */
--fw-bold:700;/* @kind font */

/* Sizes — 1440px reference */
--fs-display-1:64px;--fs-display-2:48px;--fs-script-1:60px;--fs-script-2:40px;
--fs-h1:40px;--fs-h2:32px;--fs-h3:24px;--fs-h4:18px;
--fs-body-lg:17px;--fs-body:15px;--fs-body-sm:13.5px;
--fs-label:12.5px;--fs-eyebrow:12px;--fs-micro:11px;

--lh-tight:1.08;/* @kind font */
--lh-display:1.12;/* @kind font */
--lh-heading:1.28;/* @kind font */
--lh-body:1.72;/* @kind font */
--lh-ui:1.4;/* @kind font */

/* Tracking — the brand leans on wide letterspaced caps */
--ls-eyebrow:.18em;/* @kind font */
--ls-nav:.09em;/* @kind font */
--ls-button:.13em;/* @kind font */
--ls-label:.11em;/* @kind font */
--ls-section:.05em;/* @kind font */
--ls-display:-.01em;/* @kind font */

/* Composed roles */
--type-display:var(--fw-bold) var(--fs-display-1)/var(--lh-display) var(--font-display);/* @kind font */
--type-script:var(--fw-regular) var(--fs-script-1)/1.0 var(--font-script);/* @kind font */
--type-section:var(--fw-bold) var(--fs-h2)/var(--lh-heading) var(--font-display);/* @kind font */
--type-card-title:var(--fw-medium) var(--fs-label)/1.3 var(--font-ui);/* @kind font */
--type-body:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-ui);/* @kind font */
--type-button:var(--fw-medium) var(--fs-label)/1 var(--font-ui);/* @kind font */
--type-eyebrow:var(--fw-medium) var(--fs-eyebrow)/1.3 var(--font-ui);/* @kind font */
}
:root{
--space-0:0;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;
--space-7:32px;--space-8:40px;--space-9:48px;--space-10:64px;--space-11:80px;--space-12:100px;--space-13:128px;

--section-y:100px;
--section-y-tight:64px;
--container-max:1240px;
--container-pad:32px;
--grid-gutter:24px;

--radius-none:0;--radius-xs:2px;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-xl:16px;--radius-pill:999px;--radius-circle:50%;

--control-h-sm:36px;--control-h-md:44px;--control-h-lg:52px;
--control-pad-x:26px;
--icon-sm:16px;--icon-md:20px;--icon-lg:28px;--icon-circle:54px;
--hairline:1px;
}
:root{
--shadow-none:none;
--shadow-hairline:0 0 0 1px var(--border-card);
--shadow-card:0 1px 2px rgba(26,22,19,.04),0 8px 24px rgba(26,22,19,.05);
--shadow-card-hover:0 2px 4px rgba(26,22,19,.05),0 18px 40px rgba(26,22,19,.10);
--shadow-raised:0 24px 60px rgba(26,22,19,.14);
--shadow-accent:0 10px 28px rgba(195,154,128,.28);
--shadow-inset-hairline:inset 0 0 0 1px var(--border-hairline);
--shadow-on-dark:0 20px 50px rgba(0,0,0,.45);
}
:root{
--ease-standard:cubic-bezier(.4,0,.2,1);/* @kind other */
--ease-out-soft:cubic-bezier(.22,.61,.36,1);/* @kind other */
--ease-in-out-slow:cubic-bezier(.65,0,.35,1);/* @kind other */
--dur-fast:140ms;/* @kind other */
--dur-base:240ms;/* @kind other */
--dur-slow:420ms;/* @kind other */
--dur-reveal:700ms;/* @kind other */
--transition-control:background-color var(--dur-base) var(--ease-standard),color var(--dur-base) var(--ease-standard),border-color var(--dur-base) var(--ease-standard);/* @kind other */
--transition-lift:transform var(--dur-slow) var(--ease-out-soft),box-shadow var(--dur-slow) var(--ease-out-soft);/* @kind other */
--lift-hover:translateY(-4px);/* @kind other */
--zoom-hover:scale(1.05);/* @kind other */
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-body);font:var(--type-body);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-heading);font-weight:var(--fw-bold);line-height:var(--lh-heading);margin:0}
p{margin:0}
a{color:var(--text-accent);text-decoration:none;transition:var(--transition-control)}
a:hover{color:var(--rose-700)}
img{display:block;max-width:100%}
button{font-family:var(--font-ui)}
::selection{background:var(--rose-200);color:var(--ink-900)}
