

:root {
  --bg:#0a0a0a; --fg:#f1eee8; --muted:#aaa7a1; --line:rgba(241,238,232,.24);
  --accent:#571d25; --paper:#f1eee8; --paper-2:#fafaf7; --graphite:#242424; --smoke:#8c8c88;
  --serif:'Instrument Serif',Georgia,serif; --sans:'Manrope',Arial,sans-serif;
  --pad:clamp(1.15rem,4vw,5rem); --ease:cubic-bezier(.2,.72,.2,1); --nav-h:80px;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--nav-h) + 24px); background:#0a0a0a; }
body { margin:0; background:var(--bg); color:var(--fg); font:400 16px/1.6 var(--sans); overflow-x:clip; transition:background-color .65s ease,color .65s ease; }
body[data-theme='light'] { --bg:#f1eee8; --fg:#171715; --muted:#68655f; --line:rgba(23,23,21,.23); }
body[data-theme='paper'] { --bg:#fafaf7; --fg:#171715; --muted:#68655f; --line:rgba(23,23,21,.21); }
body[data-theme='dark'] { --bg:#0a0a0a; --fg:#f1eee8; --muted:#aaa7a1; --line:rgba(241,238,232,.24); }
body[data-theme='wine'] { --bg:#241015; --fg:#f1eee8; --muted:#c5afb5; --line:rgba(241,238,232,.25); }
body.menu-open,body.viewer-open { overflow:hidden; }
::selection { background:var(--accent); color:#fff; }
a { color:inherit; text-decoration:none; }
button { font:inherit; color:inherit; cursor:pointer; }
img { display:block; width:100%; height:100%; object-fit:cover; }
picture { display:block; width:100%; height:100%; }
figure,h1,h2,h3,p { margin:0; }
p { text-wrap:pretty; }
svg { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.35; }
button,a { -webkit-tap-highlight-color:transparent; }
:focus-visible { outline:2px solid currentColor; outline-offset:6px; }
[hidden] { display:none!important; }
.skip-link { position:fixed; top:10px; left:var(--pad); z-index:10010; padding:12px 18px; color:#111; background:#fafaf7; transform:translateY(-150%); }
.skip-link:focus { transform:none; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Decoration stays out of the way, including when JS is unavailable. */
.preloader { display:none; position:fixed; inset:0; z-index:10000; place-items:center; background:#0a0a0a; color:#f1eee8; pointer-events:none; transition:transform .6s var(--ease),visibility .6s; }
.js:not(.boot-ready) .preloader { display:grid; }
.js.boot-ready .preloader { display:grid; transform:translateY(-102%); visibility:hidden; }
.preloader__mark { font:400 clamp(4rem,9vw,8rem)/1 var(--serif); letter-spacing:-.055em; }
.preloader__line { width:50%; height:1px; margin:20px auto 0; background:#555; overflow:hidden; }
.preloader__line:after { content:''; display:block; height:100%; background:#eee; transform:translateX(-100%); animation:loadline 1s var(--ease) forwards; }
@keyframes loadline { to { transform:none; } }
.site-header { position:fixed; inset:0 0 auto; height:var(--nav-h); z-index:150; padding:0 var(--pad); display:flex; align-items:center; justify-content:space-between; color:var(--fg); transition:background-color .65s,color .65s; }
.site-header.is-scrolled { background:var(--bg); border-bottom:1px solid var(--line); }
body[data-page='home']:not(.menu-open) .site-header:not(.is-scrolled) { color:#f1eee8; background:linear-gradient(#0006,transparent); }
.brand { font:400 2.1rem/1 var(--serif); letter-spacing:-.055em; position:relative; z-index:3; }
.nav { display:flex; gap:clamp(1.2rem,2.7vw,3rem); align-items:center; }
.nav a { font-size:.65rem; letter-spacing:.13em; font-weight:500; text-transform:uppercase; position:relative; padding:14px 0; }
.nav a:after { content:''; position:absolute; left:0; bottom:6px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .35s var(--ease); }
.nav a:hover:after,.nav a[aria-current='page']:after { transform:scaleX(1); transform-origin:left; }
.menu-toggle { display:none; border:0; background:none; min-width:44px; min-height:44px; padding:8px 0 8px 12px; align-items:center; gap:12px; position:relative; z-index:3; }
.menu-toggle__label { text-transform:uppercase; font-size:.63rem; letter-spacing:.1em; }
main { position:relative; }
main:focus { outline:none; }
.section { padding:clamp(5rem,11vw,11rem) var(--pad); }
.eyebrow { font-size:.62rem; line-height:1.6; font-weight:500; letter-spacing:.17em; text-transform:uppercase; color:var(--muted); }
.display { font:400 clamp(3.6rem,8.6vw,9.5rem)/.97 var(--serif); letter-spacing:-.045em; }
em { font-family:var(--serif); font-weight:400; }
.kicker { font-size:1rem; color:var(--muted); max-width:25rem; }
.rule { height:1px; background:var(--line); }
.link-arrow { display:inline-flex; gap:14px; align-items:center; min-height:44px; font-size:.63rem; font-weight:500; letter-spacing:.13em; text-transform:uppercase; }
.link-arrow svg { width:20px; height:20px; flex-shrink:0; transition:transform .35s var(--ease); }
.link-arrow:hover svg { transform:translate(4px,-2px); }
[data-reveal] { opacity:1; transform:none; }
.motion-ready [data-reveal]:not(.is-visible) { opacity:0; transform:translateY(24px); }
.motion-ready [data-reveal] { transition:opacity .85s var(--ease),transform .85s var(--ease); }
.text-mask { display:block; overflow:hidden; padding-bottom:.12em; margin-bottom:-.12em; }
.text-mask > span { display:block; transition:transform 1s var(--ease); }
.motion-ready [data-reveal]:not(.is-visible) .text-mask > span { transform:translateY(110%); }
.parallax { position:relative; overflow:hidden; }
.parallax img { transform:translate3d(0,var(--parallax-y,0px),0) scale(1.07); }
.site-footer { display:flex; align-items:center; justify-content:space-between; gap:24px; padding:35px var(--pad); border-top:1px solid var(--line); }
.site-footer__brand { font:400 2.25rem/1 var(--serif); letter-spacing:-.05em; }
.site-footer__meta { display:flex; gap:32px; font-size:.56rem; letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.cursor { display:none; position:fixed; z-index:9999; top:0; left:0; width:10px; height:10px; border:1px solid #fff; border-radius:50%; pointer-events:none; mix-blend-mode:difference; opacity:0; transition:width .2s,height .2s,opacity .2s; }
@media (hover:hover) and (pointer:fine) { .cursor { display:block; } }
.cursor.is-active { width:38px; height:38px; }
.cursor.has-position { opacity:1; }
.transition-layer { position:fixed; inset:0; z-index:9997; pointer-events:none; background:#0a0a0a; transform:translateY(100%); transition:transform .28s var(--ease); }
.transition-layer.is-leaving { transform:none; }
.error-page { min-height:100svh; display:grid; place-items:center; text-align:center; padding:60px var(--pad); }
.error-page h1 { margin:24px 0 32px!important; }
@media (prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*:before,*:after { animation:none!important; transition:none!important; }
 .preloader,.cursor,.transition-layer { display:none!important; }
 [data-reveal],.motion-ready [data-reveal]:not(.is-visible),.text-mask > span { opacity:1!important; transform:none!important; }
 .parallax img,[data-scroll-text] { transform:none!important; opacity:1!important; }
}
.eyebrow,.kicker,.rule,.site-footer { transition:color .65s,background-color .65s,border-color .65s; }
