/* Shared design tokens, typography and accessible defaults. */
@font-face{font-family:Inter;src:url('../fonts/inter-var.woff2') format('woff2');font-style:normal;font-weight:300 800;font-display:swap}
@font-face{font-family:Inter;src:url('../fonts/inter-var-italic.woff2') format('woff2');font-style:italic;font-weight:300 800;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-var.woff2') format('woff2');font-style:normal;font-weight:400 800;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('../fonts/playfair-var-italic.woff2') format('woff2');font-style:italic;font-weight:400 800;font-display:swap}
:root{color-scheme:light;--paper:#f8e8c5;--paper-deep:#f2dfb6;--ink:#1e1b16;--muted:#5e5747;--red:#8e2f24;--red-deep:#6e2119;--forest:#37482f;--night:#14110e;--pale:#dfd0b1;--line:rgba(30,27,22,.24);--gutter:clamp(22px,4vw,64px);--display:'Playfair Display',Georgia,serif;--body:Inter,system-ui,sans-serif;--header-height:110px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-height) + 20px);-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
body:has(dialog[open]){overflow:hidden}
[hidden]{display:none!important}
a{color:inherit;text-underline-offset:.25em}
button,input{font:inherit}
button{cursor:pointer}
img,video{max-width:100%;height:auto}
button,a,input,summary{-webkit-tap-highlight-color:transparent}
:focus-visible{outline:3px solid var(--red);outline-offset:5px}
.dark :focus-visible{outline-color:var(--paper)}
main:focus{outline:none}
h1,h2,h3,p,figure,blockquote,dl{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.08}
h1{font-size:clamp(70px,11.8vw,174px);line-height:.88;letter-spacing:-.045em;text-transform:uppercase}
h1 em,h2 em{font-weight:400;text-transform:none}
h2{font-size:clamp(38px,5.2vw,76px);letter-spacing:-.035em;text-transform:uppercase}
h3{font-size:clamp(24px,2.2vw,32px);letter-spacing:-.02em}
p+p{margin-top:1em}
p{max-width:66ch}
.container{width:min(1320px,calc(100% - var(--gutter)*2));margin-inline:auto}
.section{padding-block:clamp(70px,8vw,124px);scroll-margin-top:130px;position:relative}
.reading{max-width:62ch}
.reading>p:not(.eyebrow){margin-top:24px}
.lead{font-size:clamp(19px,1.65vw,23px);line-height:1.65}
.eyebrow{font-family:var(--body);font-size:12px;font-weight:650;letter-spacing:.08em;color:var(--red);margin-bottom:24px}
.fine,.menu-note{font-size:13px;color:var(--muted);line-height:1.65}
.skip{position:fixed;top:12px;left:12px;z-index:100;background:var(--ink);color:var(--paper);padding:12px 20px;transform:translateY(-180%)}
.skip:focus{transform:none}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 24px;border:1px solid var(--red);border-radius:40px;background:transparent;color:var(--ink);font-size:14px;font-weight:600;line-height:1.35;text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.button.primary{background:var(--red);color:var(--paper)}
.button:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:30px}
.text-link{display:inline-block;padding-block:10px;font-weight:600;color:var(--red);text-decoration-thickness:1px}
.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:4px;color:var(--red);min-height:44px;padding:8px}
details{border-top:1px solid var(--line)}
details:last-child{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;position:relative;padding:22px 36px 22px 0;font-weight:600;line-height:1.5}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';position:absolute;right:4px;top:18px;font-family:var(--display);font-size:28px;font-weight:400}
details[open]>summary::after{content:'−'}
details>div{padding:0 0 26px}
details p{font-size:16px;line-height:1.8}
@media(max-width:600px){:root{--header-height:96px}h1{font-size:clamp(66px,15.5vw,95px)}body{font-size:15px}.section{padding-block:64px}.button{padding:12px 20px}.eyebrow{font-size:11px;letter-spacing:.04em}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
