@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=Jost:ital,wght@0,400;0,500;0,600;1,400&display=swap');
:root{
--wine-900:#4a1428;--wine-700:#7a1f42;--wine-600:#96284f;--wine-500:#b03060;--wine-400:#c1567e;--wine-300:#d68ba0;--wine-100:#f3dee5;
--gold-600:#a97a2c;--gold-500:#c8973f;--gold-300:#e3c98c;
--ink-900:#241a1d;--ink-700:#4a3c3a;--ink-500:#7a6b67;--ink-300:#b3a49d;
--cream-100:#f7f1e8;--cream-050:#fbf8f2;--white:#fffdfa;
--accent-primary:var(--wine-500);--accent-primary-hover:var(--wine-600);--accent-primary-active:var(--wine-700);
--accent-secondary:var(--gold-500);--accent-secondary-hover:var(--gold-600);
--surface-page:var(--cream-050);--surface-card:var(--white);--surface-raised:var(--white);--surface-sunken:var(--cream-100);--surface-inverse:var(--ink-900);
--text-primary:var(--ink-900);--text-secondary:var(--ink-500);--text-muted:var(--ink-300);--text-inverse:var(--cream-050);--text-accent:var(--wine-600);
--border-subtle:#e8ddd0;--border-strong:#d8c9b6;--border-accent:var(--wine-300);
--font-display:'Cormorant Garamond',ui-serif,Georgia,serif;
--font-body:'Jost',ui-sans-serif,system-ui,sans-serif;
--size-body:1.0625rem;--size-small:0.9375rem;--size-caption:0.8125rem;--size-label:0.75rem;
--lh-display:1.08;--lh-body:1.6;
--tracking-wide:0.06em;--tracking-label:0.14em;
--container-max:1180px;--container-narrow:720px;
--radius-sm:2px;--radius-md:4px;--radius-lg:8px;--radius-pill:999px;
--shadow-sm:0 1px 2px rgba(36,26,29,0.06);
--shadow-md:0 6px 20px -6px rgba(36,26,29,0.16);
--shadow-lg:0 20px 48px -12px rgba(36,26,29,0.22);
--ease-standard:cubic-bezier(.4,0,.2,1);--ease-out:cubic-bezier(0,0,.2,1);
--duration-fast:120ms;--duration-normal:220ms;
}
html[data-palette="berry-noir"]{
--wine-100:#e7c9c9;--ink-900:#1c1418;--ink-700:#3c3033;--ink-500:#6f5f61;--ink-300:#a89b9b;
--cream-100:#efe6e1;--cream-050:#f8f3ef;--white:#fffcfa;
--surface-page:#1c1418;--surface-card:#241a1e;--surface-raised:#2c2023;--surface-sunken:#150f12;--surface-inverse:#f8f3ef;
--text-primary:#f8f3ef;--text-secondary:#a89b9b;--text-muted:#7d6d70;--text-inverse:#1c1418;--text-accent:var(--wine-300);
--border-subtle:#3a2c2f;--border-strong:#4d3b3f;--border-accent:var(--wine-700);
}
*{box-sizing:border-box}
body{margin:0;background:var(--surface-page);color:var(--text-primary);font-family:var(--font-body);font-size:var(--size-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-wrap:pretty}
a{color:var(--text-accent);text-decoration:none}
a:hover{color:var(--accent-primary-hover)}
img{max-width:100%}
.btn-primary:hover{background:var(--accent-primary-hover)!important;color:var(--text-inverse)}
.btn-secondary:hover{background:var(--wine-100)!important}
#social-toggle:hover{background:var(--wine-100)}
.cap-note{margin:10px 0 0;font-size:15px;font-style:italic;color:var(--wine-600);opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}
.cap-head:hover ~ div .cap-note,div:hover > .cap-note{opacity:1}
@media (max-width:719px){.nav-link{display:none}#logo{font-size:18px}.social-label{font-size:13px;white-space:nowrap}}
@media (max-width:389px){#logo{font-size:16px}.social-label{font-size:12px}}
@keyframes wordIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes letterIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes caret{50%{opacity:0}}
@keyframes ballRoll{0%{transform:translateX(-260px) rotate(0)}70%{transform:translateX(-30px) rotate(480deg)}84%{transform:translateX(6px) rotate(560deg)}92%{transform:translateX(-8px) rotate(540deg)}100%{transform:translateX(0) rotate(552deg)}}
@keyframes bottleTip{0%{transform:rotate(0)}55%{transform:rotate(-6deg)}100%{transform:rotate(-74deg)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes racketSwing{0%{transform:translateX(-70px) rotate(-62deg)}55%{transform:translateX(0) rotate(-30deg)}72%{transform:translateX(10px) rotate(16deg)}100%{transform:translateX(4px) rotate(6deg)}}
@keyframes racketOut{to{opacity:0;transform:translateX(-40px) rotate(-24deg)}}
@keyframes laptopZoom{0%{transform:translateX(-120vw) rotate(-2deg)}62%{transform:translateX(6vw) rotate(1.5deg)}78%{transform:translateX(-2vw) rotate(-1deg)}100%{transform:translateX(0) rotate(0)}}
@keyframes screenOn{from{background:var(--ink-700)}to{background:var(--gold-300)}}
@keyframes pourIn{from{opacity:0;transform:translateY(-8px) scale(.9)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* inline display must not defeat the hidden attribute */
[hidden]{display:none!important}
