@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:300;src:url(/fonts/cormorant-garamond-latin-ext-300-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:300;src:url(/fonts/cormorant-garamond-latin-300-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/cormorant-garamond-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/cormorant-garamond-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/cormorant-garamond-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:300;src:url(/fonts/cormorant-garamond-latin-ext-300-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:300;src:url(/fonts/cormorant-garamond-latin-300-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/cormorant-garamond-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/cormorant-garamond-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant SC';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/cormorant-sc-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant SC';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/cormorant-sc-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Cormorant SC';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/cormorant-sc-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant SC';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/cormorant-sc-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/eb-garamond-latin-ext-400-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:400;src:url(/fonts/eb-garamond-latin-400-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/eb-garamond-latin-ext-500-normal.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:normal;font-display:swap;font-weight:500;src:url(/fonts/eb-garamond-latin-500-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'EB Garamond';font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/eb-garamond-latin-ext-400-italic.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'EB Garamond';font-style:italic;font-display:swap;font-weight:400;src:url(/fonts/eb-garamond-latin-400-italic.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}

/* =====================================================================
   Atelier BWK
   Light moves through the site the way it moves through the work:
   ether blue, night indigo, magenta, then dusk.
   ===================================================================== */
@property --bg     { syntax: '<color>'; inherits: true; initial-value: #14121B; }
@property --fg     { syntax: '<color>'; inherits: true; initial-value: #EAE3D6; }
@property --muted  { syntax: '<color>'; inherits: true; initial-value: #565B7C; }
@property --line   { syntax: '<color>'; inherits: true; initial-value: rgba(29,33,66,.18); }
@property --accent { syntax: '<color>'; inherits: true; initial-value: #4A5DA8; }
@property --glow   { syntax: '<color>'; inherits: true; initial-value: rgba(255,255,255,.95); }

:root, :root[data-scene="seuil"] { --bg:#14121B; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(232,190,120,.16); }
:root[data-scene="abun"] { --bg:#19141F; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(232,190,120,.18); }
:root[data-scene="status"] { --bg:#111626; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(150,175,230,.13); }
:root[data-scene="via"] { --bg:#0D1027; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(140,160,255,.12); }
:root[data-scene="creatio"] { --bg:#1F0E19; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(230,120,170,.14); }
:root[data-scene="echos"] { --bg:#1A1419; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(232,180,170,.14); }
:root[data-scene="galerie"] { --bg:#0E0D14; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(232,190,120,.12); }
:root[data-scene="soir"] { --bg:#16131C; --fg:#EAE3D6; --muted:#A79E91; --line:rgba(201,169,110,.18); --accent:#C9A96E; --glow:rgba(232,190,120,.16); }

html {
  transition: --bg 1.4s ease, --fg 1.4s ease, --muted 1.4s ease, --line 1.4s ease, --accent 1.4s ease, --glow 1.4s ease;
  -webkit-text-size-adjust: 100%;
}
*, *::before, *::after { box-sizing: border-box; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font-family: 'EB Garamond', Garamond, Georgia, serif; font-weight: 300; font-size: 1.125rem; line-height: 1.72;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
::selection { background: var(--accent); color: var(--bg); }
:focus-visible { outline: 2px solid var(--fg); outline-offset: 4px; border-radius: 2px; }
h1, h2, h3, .display { font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-weight: 400; }
h1, h2, h3, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
.sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.muted { color: var(--muted); }

/* plaster grain */
.grain { position: fixed; inset: 0; pointer-events: none; z-index: 95; opacity: .5; mix-blend-mode: soft-light;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 .5 0 0 0 0 .5 0 0 0 0 .5 0 0 0 .55 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>"); }
#dust { position: fixed; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
main, .site-foot { position: relative; z-index: 1; }

.wrap { width: min(100% - 2rem, 1240px); margin-inline: auto; }
@media (min-width: 720px) { .wrap { width: min(100% - 5rem, 1240px); } }
.section { padding-block: clamp(5rem, 12vw, 9.5rem); }
.lede { font-size: clamp(1.15rem, 1.6vw, 1.3rem); max-width: 36ch; }
.h1 { font-size: clamp(3rem, 10vw, 8.4rem); line-height: .98; letter-spacing: -.01em; }
.h2 { font-size: clamp(2.4rem, 6.4vw, 4.6rem); line-height: 1.04; letter-spacing: -.005em; margin-bottom: .55em; }
.page-head { padding-top: clamp(8rem, 18vw, 13rem); padding-bottom: clamp(3rem, 7vw, 5rem); }
.page-head .lede { margin-top: 1.6rem; }
.page-head-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 2rem 4rem; align-items: end; }
@media (max-width: 860px) { .page-head-grid { grid-template-columns: 1fr; } }
figcaption { font-size: .88rem; font-style: italic; color: var(--muted); margin-top: .7rem; line-height: 1.45; }

/* ---------- Pages ---------- */

/* ---------- Buttons and links ---------- */
.actions { display: flex; flex-wrap: wrap; gap: .9rem 1.6rem; align-items: center; }
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 50px;
  padding: .7rem 1.6rem; border-radius: 999px; text-decoration: none; font-size: 1rem; font-weight: 400;
  background: var(--fg); color: var(--bg); border: 1px solid var(--fg); cursor: pointer;
  position: relative; overflow: hidden; isolation: isolate;
  transition: color .45s ease, border-color .45s ease, translate .5s cubic-bezier(.2,.8,.2,1);
}
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--bg); border-radius: inherit;
  clip-path: circle(0% at 50% 100%); transition: clip-path .6s cubic-bezier(.7,0,.2,1); }
.btn:hover { color: var(--fg); }
.btn:hover::before { clip-path: circle(140% at 50% 100%); }
.btn--ghost { background: transparent; color: var(--fg); border-color: var(--line); }
.btn--ghost::before { background: var(--fg); }
.btn--ghost:hover { color: var(--bg); border-color: var(--fg); }
.link { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 100% 1px no-repeat; padding-bottom: 2px; transition: background-size .5s cubic-bezier(.7,0,.2,1); }
.link:hover { background-size: 0 1px; background-position: 100% 100%; }

/* ---------- Navigation ---------- */
.nav { position: fixed; inset: 0 0 auto 0; z-index: 60; transition: background-color .4s ease, translate .5s ease; }
.nav::before { content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s ease;
  background: color-mix(in srgb, var(--bg) 80%, transparent); backdrop-filter: blur(14px) saturate(1.1); -webkit-backdrop-filter: blur(14px) saturate(1.1);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }
.nav.is-solid::before { opacity: 1; }
.nav.is-hidden { translate: 0 -100%; }
.nav-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 68px; }
.wordmark { text-decoration: none; display: flex; align-items: baseline; gap: .7rem; justify-self: start; }
.wordmark b { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: 1.2rem; letter-spacing: .08em; white-space: nowrap; }
.nav-page { font-style: italic; color: var(--muted); font-size: .98rem; overflow: hidden; height: 1.6em; position: relative; min-width: 8rem; text-align: center; }
.nav-page span { display: block; transition: translate .6s cubic-bezier(.7,0,.2,1), opacity .6s; }
.nav-page span.out { translate: 0 -110%; opacity: 0; }
.nav-right { justify-self: end; display: flex; align-items: center; gap: 1.6rem; }
.nav-cta { font-size: .98rem; text-decoration: none; }
.menu-btn { display: inline-flex; align-items: center; gap: .75rem; background: none; border: 1px solid var(--line); border-radius: 999px; padding: .45rem 1.1rem .45rem 1rem; cursor: pointer; font-size: .98rem; transition: border-color .3s; }
.menu-btn:hover { border-color: var(--fg); }
.burger { width: 18px; height: 8px; position: relative; }
.burger::before, .burger::after { content: ""; position: absolute; left: 0; width: 100%; height: 1px; background: currentColor; transition: transform .5s cubic-bezier(.7,0,.2,1), top .5s cubic-bezier(.7,0,.2,1); }
.burger::before { top: 0; } .burger::after { top: 7px; }
.menu-open .burger::before { top: 4px; transform: rotate(45deg); }
.menu-open .burger::after { top: 4px; transform: rotate(-45deg); }
.progress { position: absolute; left: 0; right: 0; bottom: -1px; height: 1px; transform-origin: 0 50%; transform: scaleX(var(--p, 0)); background: linear-gradient(90deg, transparent, var(--accent)); }
@media (max-width: 720px) { .nav-page, .nav-cta { display: none; } .nav-inner { grid-template-columns: 1fr auto; } }

/* ---------- Menu overlay ---------- */
.menu { position: fixed; inset: 0; z-index: 55; background: var(--bg); visibility: hidden; clip-path: circle(0% at 100% 0%); overflow-y: auto; }
.menu.is-open { visibility: visible; }
.menu-grid { min-height: 100%; display: grid; grid-template-columns: 1.3fr 1fr; gap: 3rem; align-items: center; padding: 7rem 0 3rem; }
.menu ol { list-style: none; padding: 0; display: grid; gap: .2rem; }
.menu-link { display: flex; align-items: baseline; gap: 1.2rem; text-decoration: none; padding: .15rem 0; }
.menu-link .ml { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.1rem, 5.4vw, 4.4rem); line-height: 1.12; display: inline-block; overflow: hidden; }
.menu-link .ml span { display: inline-block; transition: translate .5s cubic-bezier(.2,.8,.2,1), color .3s; }
.menu-link .ms { font-style: italic; color: var(--muted); font-size: .98rem; opacity: 0; translate: -10px 0; transition: opacity .4s, translate .4s; }
.menu-link:hover .ml span, .menu-link:focus-visible .ml span { translate: .35em 0; color: var(--accent); }
.menu-link:hover .ms, .menu-link:focus-visible .ms, .menu-link[aria-current="page"] .ms { opacity: 1; translate: 0 0; }
.menu-link[aria-current="page"] .ml span::before { content: ""; display: inline-block; width: .22em; height: .22em; border-radius: 50%; background: var(--accent); margin-right: .35em; vertical-align: middle; box-shadow: 0 0 18px var(--accent); }
.menu-preview { justify-self: center; width: min(100%, 380px); }
.menu-preview .arch img { position: absolute; inset: 0; opacity: 0; transition: opacity .7s ease, scale 1.4s ease; scale: 1.08; }
.menu-preview .arch img.on { opacity: 1; scale: 1; }
.menu-foot { display: flex; flex-wrap: wrap; gap: .6rem 2rem; margin-top: 2.6rem; color: var(--muted); font-size: .98rem; }
.menu-foot a { color: var(--fg); }
@media (max-width: 860px) { .menu-grid { grid-template-columns: 1fr; align-items: start; padding-top: 6.5rem; } .menu-preview { display: none; } .menu-link .ms { display: none; } }

/* ---------- Arch motif ---------- */
.arch-wrap { position: relative; isolation: isolate; }
.arch-wrap::before { content: ""; position: absolute; inset: -14px -14px 0 -14px; border: 1px solid var(--line); border-bottom: 0; border-radius: 999px 999px 0 0; pointer-events: none; transition: inset .8s cubic-bezier(.2,.8,.2,1), border-color .6s; }
.arch-wrap::after { content: ""; position: absolute; inset: -18% -22% -10%; z-index: -1; background: radial-gradient(closest-side, var(--glow), transparent 72%); transition: opacity .8s; }
.arch { position: relative; aspect-ratio: 3 / 4; overflow: hidden; border-radius: 999px 999px 0 0; background: radial-gradient(ellipse at 50% 40%, #fff, color-mix(in srgb, var(--bg) 70%, #fff)); }
.arch img { width: 100%; height: 100%; object-fit: cover; }

/* ---------- Reveal system ---------- */
.js [data-split] .w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.js [data-split] .w > span { display: inline-block; translate: 0 108%; transition: translate 1.15s cubic-bezier(.2,.8,.15,1); transition-delay: calc(var(--i) * 45ms + var(--d, 0ms)); }
.js [data-split].in .w > span { translate: 0 0; }
.js [data-reveal="up"] { opacity: 0; translate: 0 26px; transition: opacity 1.1s ease, translate 1.1s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0ms); }
.js [data-reveal="up"].in { opacity: 1; translate: 0 0; }
.js [data-reveal="img"] { clip-path: inset(100% 0 0 0); transition: clip-path 1.5s cubic-bezier(.7,0,.15,1); transition-delay: var(--d, 0ms); }
.js [data-reveal="img"].in { clip-path: inset(0 0 0 0); }
.js [data-reveal="img"] img { scale: 1.25; transition: scale 2s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0ms); }
.js [data-reveal="img"].in img { scale: 1; }
[data-speed] { will-change: transform; }
.js [data-reveal="img"].in img[data-speed], img[data-speed] { scale: 1.14; }
.js [data-reveal="line"] { transform: scaleX(0); transform-origin: 0 50%; transition: transform 1.4s cubic-bezier(.7,0,.2,1); transition-delay: var(--d, 0ms); }
.js [data-reveal="line"].in { transform: scaleX(1); }

/* =====================================================================
   ACCUEIL
   ===================================================================== */
.hero { min-height: 100svh; display: grid; align-items: center; padding: 7rem 0 5rem; overflow-x: clip; position: relative; }
.hero-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.hero-kicker { font-style: italic; color: var(--muted); font-size: 1.05rem; }
.hero h1 { font-size: clamp(2.6rem, 6.8vw, 5.8rem); line-height: 1.03; margin: .35em 0 .55em; max-width: 13ch; }
.hero .lede { margin-bottom: 2.4rem; }
.hero .arch-wrap { width: min(100%, 460px); justify-self: end; }
.hero-caption { margin-top: 1.1rem; font-size: .9rem; font-style: italic; color: var(--muted); }
.js .hero .arch img { clip-path: inset(0 50% 0 50%); }
.js .hero .arch::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, transparent 30%, rgba(255,255,255,.95) 50%, transparent 70%); opacity: 0; }
.hero.is-ready .arch img { animation: open-door 2.3s cubic-bezier(.7,0,.1,1) .15s forwards; }
.hero.is-ready .arch::after { animation: flare 2.5s ease forwards; }
@keyframes open-door { to { clip-path: inset(0 0 0 0); } }
@keyframes flare { 0% { opacity: 0; } 25% { opacity: 1; } 100% { opacity: 0; } }
.scroll-cue { position: absolute; left: 50%; bottom: 1.6rem; translate: -50% 0; display: grid; justify-items: center; gap: .6rem; font-size: .85rem; font-style: italic; color: var(--muted); text-decoration: none; }
.scroll-cue i { width: 1px; height: 46px; background: var(--line); position: relative; overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; left: -1px; width: 3px; height: 14px; border-radius: 3px; background: var(--accent); box-shadow: 0 0 10px var(--accent); animation: drip 2.4s cubic-bezier(.6,0,.3,1) infinite; }
@keyframes drip { from { top: -14px; } to { top: 46px; } }
@media (max-width: 860px) {
  .hero { min-height: auto; padding-top: 6.5rem; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero .arch-wrap { width: min(74vw, 360px); justify-self: center; margin-top: 1rem; }
  .scroll-cue { display: none; }
}

.marquee { overflow: hidden; padding-block: clamp(2rem, 5vw, 3.5rem); border-block: 1px solid var(--line); user-select: none; }
.marquee-track { display: flex; width: max-content; will-change: transform; }
.marquee-track span { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.4rem, 7vw, 6rem); line-height: 1; letter-spacing: .04em; padding-inline: .45em; white-space: nowrap; display: inline-flex; align-items: center; }
.marquee-track span:nth-child(even) { color: transparent; -webkit-text-stroke: 1px var(--fg); }
.marquee-track span::after { content: ""; width: .16em; height: .16em; margin-left: .9em; border-radius: 50%; background: var(--accent); box-shadow: 0 0 20px 4px var(--glow); -webkit-text-stroke: 0; }

.portals { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1.4rem, 3vw, 2.6rem); margin-top: clamp(3rem, 6vw, 4.5rem); }
.portal { text-decoration: none; display: block; }
.portal .arch-wrap { margin-inline: 14px; }
.portal .arch img { transition: scale 1.4s cubic-bezier(.2,.8,.2,1), filter 1s; }
.portal:hover .arch img { scale: 1.08; }
.portal:hover .arch-wrap::before { inset: -24px -24px 0 -24px; border-color: var(--accent); }
.portal .arch-wrap::after { opacity: 0; }
.portal:hover .arch-wrap::after { opacity: 1; }
.portal .pn { font-family: 'Cormorant Garamond', Garamond, serif; color: var(--muted); letter-spacing: .1em; margin-top: 1.4rem; font-size: .98rem; }
.portal .pt { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(1.25rem, 1.9vw, 1.6rem); letter-spacing: .05em; line-height: 1.2; }
.portal .pv { font-style: italic; color: var(--muted); }
@media (max-width: 860px) {
  .portals { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; margin-inline: -1rem; padding: 1.4rem 1rem 1rem; scrollbar-width: none; }
  .portals::-webkit-scrollbar { display: none; }
  .portal { flex: 0 0 66vw; scroll-snap-align: start; }
}

.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.frame { overflow: hidden; position: relative; background: color-mix(in srgb, var(--fg) 7%, var(--bg)); }
.frame img { width: 100%; height: 100%; object-fit: cover; }
.frame--tall { aspect-ratio: 4 / 5; }
.frame--wide { aspect-ratio: 16 / 9; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }

.strip-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; flex-wrap: wrap; }
.strip { display: flex; gap: clamp(1rem, 2vw, 1.6rem); overflow-x: auto; scrollbar-width: none; margin-top: 3rem; padding-inline: max(1rem, calc((100vw - 1240px) / 2)); cursor: grab; scroll-behavior: auto; }
@media (min-width: 720px) { .strip { padding-inline: max(2.5rem, calc((100vw - 1240px) / 2)); } }
.strip::-webkit-scrollbar { display: none; }
.strip.dragging { cursor: grabbing; }
.strip.dragging a { pointer-events: none; }
.strip a { flex: 0 0 clamp(220px, 24vw, 330px); text-decoration: none; }
.strip .frame { aspect-ratio: 4 / 5; }
.strip img { transition: scale 1.2s cubic-bezier(.2,.8,.2,1); -webkit-user-drag: none; }
.strip a:hover img { scale: 1.06; }
.strip figcaption { font-style: italic; }

.lit { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.5rem, 7.4vw, 6.6rem); line-height: 1.05; max-width: 15ch; }
.lit .lw { opacity: .14; transition: opacity .2s linear; }
.lit-by { margin-top: 2rem; font-style: italic; color: var(--muted); }

.creds { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; margin-top: 3rem; }
.creds > div { border-top: 1px solid var(--line); padding-top: 1.3rem; }
.creds b { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: 1.35rem; display: block; line-height: 1.25; margin-bottom: .4rem; }
.creds span { color: var(--muted); font-size: 1rem; }
@media (max-width: 720px) { .creds { grid-template-columns: 1fr; gap: 0; } .creds > div { padding-bottom: 1.3rem; } }

/* next page */
.next { display: block; text-decoration: none; padding-block: clamp(4rem, 10vw, 7rem); border-top: 1px solid var(--line); position: relative; overflow: hidden; isolation: isolate; }
.next::before { content: ""; position: absolute; left: 50%; bottom: -60%; width: 70vw; aspect-ratio: 3/4; translate: -50% 0; border-radius: 999px 999px 0 0; z-index: -1;
  background: radial-gradient(closest-side, var(--glow), transparent 75%); opacity: 0; scale: .6; transition: opacity 1s ease, scale 1.2s cubic-bezier(.2,.8,.2,1); }
.next:hover::before { opacity: 1; scale: 1; }
.next small { display: block; font-size: 1rem; font-style: italic; color: var(--muted); margin-bottom: .4rem; }
.next strong { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: clamp(3rem, 11vw, 9rem); line-height: 1; display: inline-block; transition: letter-spacing .9s cubic-bezier(.2,.8,.2,1); }
.next:hover strong { letter-spacing: .03em; }

/* =====================================================================
   ATELIER
   ===================================================================== */
.band { height: clamp(320px, 62vh, 640px); }
.collage { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1rem, 2.2vw, 1.75rem); }
.collage figure:first-child { grid-row: span 2; }
.collage figure:nth-child(2) { margin-top: clamp(3rem, 9vw, 8rem); }
.collage .frame { aspect-ratio: 3 / 4; }
.collage figure:first-child .frame { aspect-ratio: auto; height: calc(100% - 2.4rem); min-height: 320px; }
.story { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.story-text { position: sticky; top: 7rem; }
.story-text p + p { margin-top: 1.2em; }
.verse { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(1.45rem, 2.4vw, 1.9rem); line-height: 1.32; margin: 2.2rem 0; padding-left: 1.4rem; border-left: 1px solid var(--line); max-width: 22ch; }
.big-verse { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.2rem, 5.6vw, 4.6rem); line-height: 1.12; max-width: 20ch; margin-inline: auto; text-align: center; }
.trio { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2.2vw, 1.75rem); margin-top: clamp(3rem, 7vw, 5rem); }
.trio .frame { aspect-ratio: 3 / 4; }
.trio figure:nth-child(2) { margin-top: clamp(2rem, 6vw, 5rem); }
@media (max-width: 860px) {
  .story { grid-template-columns: 1fr; } .story-text { position: static; }
  .collage figure:first-child { grid-row: auto; grid-column: span 2; }
  .collage figure:first-child .frame { aspect-ratio: 4 / 5; height: auto; min-height: 0; }
  .collage figure:nth-child(2) { margin-top: 0; }
  .trio { grid-template-columns: 1fr 1fr; } .trio figure:nth-child(3) { display: none; } .trio figure:nth-child(2) { margin-top: 2.5rem; }
}

/* =====================================================================
   ŒUVRES
   ===================================================================== */
.path { list-style: none; padding: 0; margin-top: clamp(3rem, 7vw, 5rem); display: grid; grid-template-columns: repeat(4, 1fr); position: relative; }
.path::before { content: ""; position: absolute; left: 0; right: 0; top: calc(2.1rem + 5px); height: 1px; background: var(--line); }
.path a { display: grid; gap: .25rem; text-decoration: none; padding-right: .75rem; position: relative; }
.path .n { order: -1; font-family: 'Cormorant Garamond', Garamond, serif; font-size: .95rem; color: var(--muted); letter-spacing: .08em; height: 1.6rem; }
.path a::after { content: ""; width: 11px; height: 11px; border-radius: 50%; border: 1px solid var(--fg); background: var(--bg); margin: .25rem 0 .7rem; transition: background .4s, box-shadow .4s; }
.path .t, .path .v { order: 1; }
.path .t { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(1.05rem, 2vw, 1.5rem); letter-spacing: .05em; line-height: 1.15; transition: color .3s; }
.path .v { font-style: italic; color: var(--muted); font-size: .95rem; }
.path a:hover .t { color: var(--accent); }
.path a:hover::after { background: var(--accent); box-shadow: 0 0 14px var(--accent); }
@media (max-width: 720px) { .path .t { font-size: .98rem; letter-spacing: .02em; } .path .v { font-size: .85rem; } }

.rail { position: fixed; left: clamp(1rem, 2vw, 2rem); top: 50%; translate: -20px -50%; z-index: 40; list-style: none; padding: 0; margin: 0; display: grid; gap: 1.1rem; opacity: 0; pointer-events: none; transition: opacity .6s, translate .6s; }
.rail.is-on { opacity: 1; translate: 0 -50%; pointer-events: auto; }
.rail a { display: flex; align-items: center; gap: .8rem; text-decoration: none; font-size: .8rem; font-family: 'Cormorant Garamond', Garamond, serif; letter-spacing: .08em; color: var(--muted); }
.rail a::before { content: ""; width: 9px; height: 9px; border-radius: 50%; border: 1px solid currentColor; transition: background .4s, box-shadow .4s, scale .4s; }
.rail a span { opacity: 0; translate: -6px 0; transition: opacity .3s, translate .3s; }
.rail a:hover span, .rail a.on span { opacity: 1; translate: 0 0; }
.rail a.on { color: var(--fg); }
.rail a.on::before { background: var(--accent); border-color: var(--accent); box-shadow: 0 0 12px var(--accent); scale: 1.3; }
@media (max-width: 1180px) { .rail { display: none; } }

.cycle { padding-block: clamp(5rem, 12vw, 9.5rem); overflow-x: clip; }
.cycle-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 8vw, 8rem); align-items: center; }
.cycle--flip .cycle-art { order: 2; }
.cycle-art { position: relative; padding-bottom: clamp(3rem, 7vw, 5rem); }
.cycle-art .arch-wrap { width: min(100%, 430px); }
.cycle--flip .cycle-art .arch-wrap { margin-left: auto; }
.insitu { position: absolute; bottom: 0; right: 0; width: 46%; border: clamp(5px, .8vw, 9px) solid var(--bg); background: var(--bg); }
.cycle--flip .insitu { right: auto; left: 0; }
.insitu .frame { aspect-ratio: 4 / 5; }
.cycle-mark { font-family: 'Cormorant Garamond', Garamond, serif; font-size: 1.05rem; letter-spacing: .1em; color: var(--muted); }
.cycle-mark i { font-family: 'EB Garamond', Garamond, serif; font-style: italic; letter-spacing: 0; margin-left: .5em; }
.cycle h2 { font-size: clamp(2.7rem, 7.6vw, 6rem); line-height: .98; letter-spacing: .035em; margin: .3em 0 .2em; }
.cycle-sub { font-style: italic; font-size: 1.2rem; color: var(--muted); margin-bottom: 1.6rem; }
.cycle-body { max-width: 44ch; }
.cycle-body p + p { margin-top: 1em; }
@media (max-width: 860px) {
  .cycle-grid { grid-template-columns: 1fr; }
  .cycle--flip .cycle-art { order: 0; }
  .cycle-art .arch-wrap, .cycle--flip .cycle-art .arch-wrap { width: min(76vw, 380px); margin-left: .9rem; }
  .cycle--flip .insitu { left: auto; right: 0; }
}

.works { list-style: none; padding: 0; margin-top: 2.6rem; border-top: 1px solid var(--line); }
.works li > * { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "t p" "m m"; column-gap: 1.5rem; padding: 1rem .2rem .95rem; border-bottom: 1px solid var(--line); text-decoration: none; position: relative; overflow: hidden; isolation: isolate; }
.works li > a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 16%, transparent), transparent 70%); translate: -101% 0; transition: translate .7s cubic-bezier(.7,0,.2,1); }
.works li > a:hover::before, .works li > a:focus-visible::before { translate: 0 0; }
@media (min-width: 560px) { .works li > * { grid-template-columns: 1.15fr 1fr 7.5rem; grid-template-areas: "t m p"; align-items: baseline; } }
.works .t { grid-area: t; font-family: 'Cormorant Garamond', Garamond, serif; font-size: 1.18rem; letter-spacing: .06em; transition: color .3s, translate .5s cubic-bezier(.2,.8,.2,1); }
.works .m { grid-area: m; font-size: .9rem; font-style: italic; color: var(--muted); }
.works .p { grid-area: p; text-align: right; font-variant-numeric: tabular-nums lining-nums; font-size: 1rem; white-space: nowrap; }
.works a:hover .t, .works a:focus-visible .t { color: var(--accent); translate: .35rem 0; }
.works .collected .p { font-style: italic; color: var(--muted); }
.works-note { margin-top: 1.1rem; font-size: .9rem; color: var(--muted); font-style: italic; }

.etudes { list-style: none; padding: 0; margin-top: clamp(2.5rem, 6vw, 4rem); display: grid; grid-template-columns: repeat(5, 1fr); gap: clamp(.9rem, 2vw, 1.6rem); }
.etudes .frame { aspect-ratio: 1; }
.etudes figcaption { font-family: 'Cormorant Garamond', Garamond, serif; font-style: normal; color: var(--fg); font-size: 1rem; letter-spacing: .03em; }
.etudes button { all: unset; display: block; cursor: zoom-in; width: 100%; }
.etudes button:focus-visible { outline: 2px solid var(--fg); outline-offset: 4px; }
.etudes img { transition: scale 1.2s cubic-bezier(.2,.8,.2,1); }
.etudes button:hover img { scale: 1.07; }
@media (max-width: 860px) {
  .etudes { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1rem; padding-bottom: 1rem; margin-inline: -1rem; padding-inline: 1rem; scrollbar-width: none; }
  .etudes::-webkit-scrollbar { display: none; }
  .etudes li { flex: 0 0 64vw; scroll-snap-align: start; }
}
.intimes { margin-top: clamp(4rem, 9vw, 6.5rem); display: grid; grid-template-columns: 1fr 1.5fr; gap: 2rem 4rem; padding-top: 2.4rem; }
.intimes h2 { font-size: clamp(2rem, 4vw, 3rem); line-height: 1.1; margin-bottom: 1rem; }
.intimes p { max-width: 40ch; color: var(--muted); }
.intimes .works { margin-top: 0; }
@media (max-width: 860px) { .intimes { grid-template-columns: 1fr; } }

/* =====================================================================
   GALERIE
   ===================================================================== */
.chips { position: relative; display: inline-flex; flex-wrap: wrap; gap: .35rem; padding: .35rem; border: 1px solid var(--line); border-radius: 999px; margin-top: 2.4rem; }
.chip { position: relative; z-index: 1; background: none; border: 0; border-radius: 999px; padding: .5rem 1.05rem; cursor: pointer; font-size: .98rem; color: var(--muted); transition: color .45s ease; white-space: nowrap; }
.chip sup { font-size: .7em; margin-left: .25em; font-variant-numeric: lining-nums; }
.chip[aria-pressed="true"] { color: var(--bg); }
.chip:not([aria-pressed="true"]):hover { color: var(--fg); }
.chip-pill { position: absolute; z-index: 0; top: 0; left: 0; border-radius: 999px; background: var(--fg); box-shadow: 0 0 30px -6px var(--accent); transition: translate .6s cubic-bezier(.7,0,.2,1), width .6s cubic-bezier(.7,0,.2,1), height .6s; }
@media (max-width: 720px) { .chips { display: flex; flex-wrap: nowrap; overflow-x: auto; max-width: 100%; scrollbar-width: none; } .chips::-webkit-scrollbar { display: none; } .chip { padding: .45rem .85rem; font-size: .92rem; } }

.masonry { position: relative; margin-top: clamp(2.5rem, 5vw, 4rem); transition: height .8s cubic-bezier(.7,0,.2,1); }
.g-item { position: absolute; top: 0; left: 0; padding: 0; border: 0; background: none; cursor: zoom-in; display: block; text-align: left;
  transition: transform .9s cubic-bezier(.7,0,.15,1), opacity .6s ease; perspective: 900px; }
.g-item.is-hidden { opacity: 0; pointer-events: none; }
.js .g-item.pre { opacity: 0; }
.g-tilt { position: relative; overflow: hidden; border-radius: 2px; transform-style: preserve-3d; transition: transform .6s cubic-bezier(.2,.8,.2,1); background: color-mix(in srgb, var(--fg) 7%, var(--bg)); }
.g-tilt img { width: 100%; height: auto; transition: scale 1.2s cubic-bezier(.2,.8,.2,1), opacity .8s; }
.g-tilt img:not(.loaded) { opacity: 0; }
.g-tilt::after { content: ""; position: absolute; inset: 0; pointer-events: none; opacity: 0; transition: opacity .5s;
  background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(255,240,210,.35), transparent 45%); mix-blend-mode: soft-light; }
.g-item:hover .g-tilt::after { opacity: 1; }
.g-item:hover .g-tilt img { scale: 1.05; }
.g-cap { position: absolute; inset: auto 0 0 0; padding: 2.4rem 1rem .9rem; background: linear-gradient(transparent, rgba(8,10,34,.82)); color: #F2F2FA; translate: 0 100%; transition: translate .6s cubic-bezier(.2,.8,.2,1); }
.g-item:hover .g-cap, .g-item:focus-visible .g-cap { translate: 0 0; }
.g-cap b { display: block; font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; letter-spacing: .04em; font-size: 1.05rem; line-height: 1.25; }
.g-cap span { font-size: .85rem; font-style: italic; opacity: .8; }
@media (hover: none) { .g-cap { display: none; } }

/* Lightbox */
.lb { position: fixed; inset: 0; z-index: 70; display: grid; grid-template-columns: 1fr minmax(260px, 340px); visibility: hidden; color: #EEF0FA; }
.lb.is-open { visibility: visible; }
.lb-bg { position: absolute; inset: 0; background: rgba(9,11,36,.95); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 0; }
.lb-stage { position: relative; display: grid; place-items: center; padding: 5rem clamp(1rem, 5vw, 5rem) 3rem; min-height: 0; }
.lb-img { max-width: 100%; max-height: calc(100vh - 9rem); width: auto; height: auto; object-fit: contain; box-shadow: 0 40px 120px -30px rgba(0,0,0,.7), 0 0 120px -40px rgba(255,228,170,.35); transform-origin: 0 0; }
.lb-info { position: relative; align-self: end; padding: 2rem 2rem 3rem 0; opacity: 0; }
.lb-info .lb-cat { font-style: italic; color: #AEB5DA; font-size: .95rem; }
.lb-info h2 { font-size: clamp(1.7rem, 2.6vw, 2.3rem); line-height: 1.12; letter-spacing: .03em; margin: .3rem 0 .6rem; }
.lb-info p { color: #C7CCE8; font-size: 1rem; line-height: 1.6; }
.lb-info .btn { margin-top: 1.6rem; background: #EEF0FA; color: #0F1236; border-color: #EEF0FA; }
.lb-info .btn::before { background: #0F1236; }
.lb-info .btn:hover { color: #EEF0FA; }
.lb-count { font-variant-numeric: tabular-nums; color: #AEB5DA; font-size: .9rem; margin-top: 1.4rem; }
.lb-btn { position: absolute; z-index: 2; width: 52px; height: 52px; border-radius: 50%; border: 1px solid rgba(238,240,250,.25); background: rgba(15,18,54,.4); color: #EEF0FA; cursor: pointer; display: grid; place-items: center; transition: border-color .3s, background .3s, scale .3s; opacity: 0; }
.lb-btn:hover { border-color: #EEF0FA; background: rgba(238,240,250,.08); scale: 1.06; }
.lb-btn svg { width: 18px; height: 18px; stroke: currentColor; fill: none; stroke-width: 1.2; }
.lb-close { top: 1.2rem; right: 1.2rem; }
.lb-prev { left: 1.2rem; top: 50%; translate: 0 -50%; }
.lb-next { right: calc(340px + 1.2rem); top: 50%; translate: 0 -50%; }
@media (max-width: 860px) {
  .lb { grid-template-columns: 1fr; grid-template-rows: 1fr auto; }
  .lb-stage { padding: 4.5rem 1rem 1rem; }
  .lb-img { max-height: calc(100svh - 15rem); }
  .lb-info { padding: 0 1.25rem 1.6rem; align-self: start; }
  .lb-info h2 { font-size: 1.5rem; } .lb-info .btn { margin-top: 1rem; min-height: 44px; }
  .lb-count { margin-top: .8rem; }
  .lb-prev, .lb-next { top: auto; bottom: 1.2rem; translate: none; width: 44px; height: 44px; }
  .lb-prev { left: auto; right: 4.4rem; } .lb-next { right: 1.2rem; }
}

/* =====================================================================
   INTÉRIEURS
   ===================================================================== */
.inter-quote { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.6rem, 7vw, 5.8rem); line-height: 1.04; max-width: 14ch; }
.salon { columns: 3 240px; column-gap: clamp(1rem, 2vw, 1.6rem); }
.salon figure { break-inside: avoid; margin-bottom: clamp(1.4rem, 2.6vw, 2.2rem); }
.salon .frame { min-height: 120px; }
.salon img { height: auto; }
@media (max-width: 720px) { .salon { columns: 2; column-gap: .8rem; } .salon figure { margin-bottom: 1rem; } }
.collectors { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 5rem; align-items: center; padding-top: 3rem; border-top: 1px solid var(--line); }
@media (max-width: 860px) { .collectors { grid-template-columns: 1fr; } }

/* =====================================================================
   L'ARTISTE
   ===================================================================== */
.artist-grid { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(3rem, 7vw, 7rem); align-items: center; overflow-x: clip; }
.artist-photos { position: relative; padding-bottom: 4rem; }
.artist-photos .main .frame { aspect-ratio: 765 / 479; }
.artist-photos .second { position: absolute; width: 38%; right: -2%; bottom: 0; border: 8px solid var(--bg); background: var(--bg); }
.artist-photos .second .frame { aspect-ratio: 4 / 5; }
.artist-role { font-style: italic; color: var(--muted); margin-bottom: 2rem; }
.artist-quote { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(1.8rem, 3.4vw, 2.7rem); line-height: 1.18; margin-bottom: 1.4rem; max-width: 18ch; }
.artist-text p { max-width: 46ch; }
.artist-text p + p { margin-top: 1em; }
.fourfold { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(.8rem, 1.8vw, 1.4rem); }
.fourfold .frame { aspect-ratio: 765 / 479; }
.fourfold figure:nth-child(even) { translate: 0 2.5rem; }
@media (max-width: 860px) { .artist-grid { grid-template-columns: 1fr; } .fourfold { grid-template-columns: 1fr 1fr; } }
.essay { max-width: 760px; margin-inline: auto; text-align: center; }
.essay .big { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(1.7rem, 3.6vw, 2.8rem); line-height: 1.25; margin: 1.2rem 0 1.6rem; }
.essay p.muted { font-size: .95rem; font-style: italic; }
.recog { display: grid; grid-template-columns: 1fr 1.6fr; gap: 2rem 5rem; }
.recog dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 3rem; }
.recog dl > div { padding: 1.4rem 0 1.5rem; border-top: 1px solid var(--line); }
.recog dt { font-family: 'Cormorant Garamond', Garamond, serif; font-size: 1.3rem; line-height: 1.25; margin-bottom: .35rem; }
.recog dd { color: var(--muted); font-size: 1rem; line-height: 1.55; }
.recog dd a { color: var(--fg); }
@media (max-width: 860px) { .recog { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .recog dl { grid-template-columns: 1fr; } }

/* =====================================================================
   ACQUÉRIR
   ===================================================================== */
.acq { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(3rem, 7vw, 7rem); align-items: start; }
.form { display: grid; gap: 1.6rem; padding: clamp(1.6rem, 3.5vw, 2.6rem); border: 1px solid var(--line); border-radius: 220px 220px 4px 4px / 160px 160px 4px 4px; padding-top: clamp(4rem, 9vw, 6rem); position: relative; }
.form h2 { font-size: clamp(1.8rem, 3vw, 2.4rem); text-align: center; margin-bottom: .2rem; }
.form > p { text-align: center; color: var(--muted); font-size: 1rem; margin-top: -1rem; }
.field { position: relative; }
.field input, .field textarea { width: 100%; font: inherit; font-size: 1.05rem; color: var(--fg); background: transparent; border: 0; border-bottom: 1px solid var(--line); padding: 1.35rem 0 .5rem; outline: none; border-radius: 0; transition: border-color .3s; }
.field textarea { min-height: 7.5rem; resize: vertical; line-height: 1.6; }
.field label { position: absolute; left: 0; top: 1.3rem; color: var(--muted); font-size: 1.05rem; pointer-events: none; transform-origin: 0 0; transition: translate .4s cubic-bezier(.2,.8,.2,1), scale .4s cubic-bezier(.2,.8,.2,1), color .3s; }
.field input:focus ~ label, .field input:not(:placeholder-shown) ~ label,
.field textarea:focus ~ label, .field textarea:not(:placeholder-shown) ~ label { translate: 0 -1.15rem; scale: .78; color: var(--accent); }
.field::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: 0 50%; transition: transform .6s cubic-bezier(.7,0,.2,1); }
.field:focus-within::after { transform: scaleX(1); }
.form-note { font-size: .92rem; color: var(--muted); font-style: italic; text-align: center; min-height: 1.5em; }
.form .btn { justify-self: center; }
.acq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2.4rem 3rem; margin-top: 3rem; }
.acq-grid h3 { font-size: 1.25rem; margin-bottom: .7rem; letter-spacing: .02em; }
.acq-grid p, .acq-grid li { font-size: 1rem; line-height: 1.6; color: var(--muted); }
.acq-grid ul { padding: 0; list-style: none; display: grid; gap: .45rem; }
.acq-grid li { padding-left: 1rem; position: relative; }
.acq-grid li::before { content: ""; position: absolute; left: 0; top: .72em; width: 5px; height: 5px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
.visit { display: grid; grid-template-columns: 1.4fr 1fr; gap: 2rem 4rem; padding-top: 2.6rem; border-top: 1px solid var(--line); }
.visit address { font-style: normal; font-size: 1.1rem; line-height: 1.7; }
.visit address strong { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: 1.5rem; display: block; margin-bottom: .4rem; }
.cercle h3 { font-size: 1.5rem; margin-bottom: .5rem; }
.cercle p { color: var(--muted); font-size: 1rem; margin-bottom: 1.1rem; }
@media (max-width: 960px) { .acq { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .acq-grid, .visit { grid-template-columns: 1fr; } }

/* ---------- Footer ---------- */
.site-foot { padding: 3rem 0 2.5rem; border-top: 1px solid var(--line); font-size: .9rem; color: var(--muted); }
.foot-row { display: flex; flex-wrap: wrap; gap: 1rem 2.5rem; justify-content: space-between; align-items: baseline; }
.foot-row ul { list-style: none; padding: 0; display: flex; gap: 1.5rem; flex-wrap: wrap; }
.foot-row a { color: var(--fg); }
details { margin-top: 2rem; max-width: 72ch; }
summary { cursor: pointer; color: var(--fg); }
details[open] summary { margin-bottom: 1rem; }
details p { font-size: .9rem; line-height: 1.6; }
details p + p { margin-top: .7em; }
.legal { margin-top: 2rem; }

/* ---------- Transitions: veil, preloader, cursor ---------- */
.veil { position: fixed; inset: 0; z-index: 80; pointer-events: none; visibility: hidden; display: grid; place-items: center; clip-path: circle(0% at 50% 50%); }
.veil.on { visibility: visible; pointer-events: auto; }
.veil-title { font-family: 'Cormorant Garamond', Garamond, serif; font-size: clamp(2.6rem, 9vw, 7rem); letter-spacing: .04em; opacity: 0; translate: 0 20px; filter: blur(8px); transition: opacity .5s ease, translate .6s cubic-bezier(.2,.8,.2,1), filter .5s; }
.veil.show-title .veil-title { opacity: 1; translate: 0 0; filter: blur(0); }
.veil::after { content: ""; position: absolute; left: 50%; top: 50%; width: 46vmin; aspect-ratio: 3/4; translate: -50% -50%; border-radius: 999px 999px 0 0; z-index: -1; background: radial-gradient(closest-side, rgba(255,255,255,.5), transparent 75%); opacity: .55; }

.preloader { position: fixed; inset: 0; z-index: 90; display: none; place-items: center; pointer-events: none; }
.js .preloader { display: grid; }
.js .preloader.gone { display: none; }
.leaf { position: absolute; top: 0; bottom: 0; width: 50.5%; background: #ECEEF2; transition: translate 1.5s cubic-bezier(.75,0,.15,1); }
.leaf--l { left: 0; } .leaf--r { right: 0; }
.leaf--l::after, .leaf--r::after { content: ""; position: absolute; top: 0; bottom: 0; width: 1px; background: linear-gradient(transparent, #fff 30%, #fff 70%, transparent); box-shadow: 0 0 40px 10px rgba(255,255,255,.9); opacity: 0; transition: opacity .6s; }
.leaf--l::after { right: 0; } .leaf--r::after { left: 0; }
.preloader.glow .leaf::after { opacity: 1; }
.preloader.open .leaf--l { translate: -101% 0; }
.preloader.open .leaf--r { translate: 101% 0; }
.pre-mark { position: relative; z-index: 1; text-align: center; color: #1D2142; transition: opacity .6s ease, filter .6s; }
.preloader.open .pre-mark { opacity: 0; filter: blur(6px); }
.pre-mark b { display: block; font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: clamp(1.8rem, 5vw, 2.8rem); letter-spacing: .3em; padding-left: .3em; }
.pre-mark b span { display: inline-block; opacity: 0; filter: blur(10px); translate: 0 .3em; animation: letter 1s cubic-bezier(.2,.8,.2,1) forwards; animation-delay: calc(var(--i) * 70ms + 150ms); }
.pre-mark i { display: block; margin-top: .8rem; font-size: 1rem; color: #565B7C; opacity: 0; animation: fadein 1s ease .9s forwards; }
.pre-line { width: 160px; height: 1px; margin: 1.4rem auto 0; background: rgba(29,33,66,.15); position: relative; overflow: hidden; }
.pre-line::after { content: ""; position: absolute; inset: 0; background: #4A5DA8; transform-origin: 0 50%; transform: scaleX(0); animation: grow 1.3s cubic-bezier(.7,0,.2,1) .5s forwards; }
@keyframes letter { to { opacity: 1; filter: blur(0); translate: 0 0; } }
@keyframes fadein { to { opacity: 1; } }
@keyframes grow { to { transform: scaleX(1); } }

.cursor { position: fixed; left: 0; top: 0; z-index: 100; pointer-events: none; width: 34px; height: 34px; margin: -17px 0 0 -17px; border-radius: 50%; border: 1px solid var(--fg); display: grid; place-items: center;
  transition: width .45s cubic-bezier(.2,.8,.2,1), height .45s cubic-bezier(.2,.8,.2,1), margin .45s cubic-bezier(.2,.8,.2,1), background-color .4s, border-color .4s, opacity .3s; opacity: 0; mix-blend-mode: normal; }
.cursor b { font-weight: 400; font-size: .72rem; letter-spacing: .06em; color: var(--bg); opacity: 0; transition: opacity .3s; white-space: nowrap; }
.cursor.on { opacity: .7; }
.cursor.is-link { width: 54px; height: 54px; margin: -27px 0 0 -27px; border-color: var(--accent); background: color-mix(in srgb, var(--accent) 12%, transparent); }
.cursor.is-view { width: 86px; height: 86px; margin: -43px 0 0 -43px; background: var(--fg); border-color: var(--fg); opacity: .92; }
.cursor.is-view b { opacity: 1; }
.cursor.is-down { scale: .85; }
@media (hover: none), (pointer: coarse) { .cursor { display: none; } }

@media (prefers-reduced-motion: reduce) {
  html { transition: none; }
  .js [data-split] .w > span, .js [data-reveal] { translate: none !important; opacity: 1 !important; clip-path: none !important; transform: none !important; transition: none !important; }
  .js [data-reveal="img"] img { scale: 1 !important; transition: none !important; }
  .js .hero .arch img, .hero.is-ready .arch img { clip-path: none; animation: none; }
  .hero.is-ready .arch::after, .scroll-cue i::after { animation: none; }
  .preloader { display: none; }
  .cursor { display: none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* =====================================================================
   VEILLÉE: candlelit skin. Dark warm rooms, gold hairlines,
   classical type, slow light. Everything below overrides the above.
   ===================================================================== */
body { font-family: 'EB Garamond', Garamond, Georgia, serif; font-weight: 400; font-size: 1.2rem; line-height: 1.78; letter-spacing: .004em; font-kerning: normal; font-variant-ligatures: common-ligatures discretionary-ligatures; }
h1, h2, h3, .display { font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-weight: 300; }
.h1 { font-weight: 300; letter-spacing: -.01em; font-size: clamp(3.2rem, 10vw, 8.6rem); }
.h2 { font-size: clamp(2.7rem, 6.6vw, 5rem); font-weight: 300; }
.lede { font-size: clamp(1.22rem, 1.7vw, 1.4rem); }
.hero h1 { font-style: italic; font-weight: 300; font-size: clamp(2.9rem, 7vw, 6.2rem); line-height: 1.02; }
.hero-kicker, .artist-role, figcaption, .cycle-sub, .lit-by, .works-note { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; letter-spacing: .01em; }
sup { font-size: .6em; }

/* atmosphere */
.vignette { position: fixed; inset: 0; z-index: 93; pointer-events: none; background: radial-gradient(ellipse 120% 90% at 50% 45%, transparent 50%, rgba(4,3,8,.55) 100%); }
.lantern { position: fixed; left: 0; top: 0; z-index: 92; pointer-events: none; width: 110vmax; height: 110vmax; margin: -55vmax 0 0 -55vmax; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,214,150,.12) 0%, rgba(255,200,130,.05) 22%, transparent 48%); mix-blend-mode: screen; }
.grain { opacity: .35; }

/* navigation */
.nav::before { background: color-mix(in srgb, var(--bg) 72%, transparent); border-bottom-color: var(--line); }
.nav-inner { height: 76px; }
.wordmark b { font-family: 'Cormorant SC', 'Cormorant Garamond', serif; font-weight: 500; letter-spacing: .34em; font-size: 1.08rem; }
.nav-page { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.nav-cta, .menu-btn { font-variant: all-small-caps; letter-spacing: .16em; font-size: 1.1rem; }
.menu-btn { border: 0; padding: .4rem 0 .4rem .6rem; }
.burger { width: 22px; }
.progress { background: linear-gradient(90deg, transparent, var(--accent)); opacity: .7; }

/* buttons: hairline gold frames, no pills */
.btn { background: transparent; color: var(--fg); border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent); border-radius: 0;
  font-variant: all-small-caps; letter-spacing: .18em; font-size: 1.1rem; font-weight: 400; padding: .8rem 2.2rem; min-height: 54px; }
.btn::before { background: radial-gradient(ellipse at 50% 130%, color-mix(in srgb, var(--accent) 38%, transparent), transparent 70%); clip-path: none; opacity: 0; transition: opacity 1s ease; }
.btn:hover, .btn--ghost:hover { color: var(--fg); border-color: var(--accent); }
.btn:hover::before { opacity: 1; clip-path: none; }
.btn--ghost { border-color: var(--line); }
.btn--ghost::before { background: radial-gradient(ellipse at 50% 130%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 70%); }
.link { background-image: linear-gradient(color-mix(in srgb, var(--accent) 70%, transparent), color-mix(in srgb, var(--accent) 70%, transparent)); transition: background-size .9s cubic-bezier(.7,0,.2,1), color .4s; }
.link:hover { color: var(--accent); }

/* arches: gold moulding, lit from within */
.arch-wrap::before { border-color: color-mix(in srgb, var(--accent) 38%, transparent); }
.arch { background: radial-gradient(ellipse at 50% 40%, #2C2533, #120F18); }
.js .hero .arch::after { background: linear-gradient(90deg, transparent 32%, rgba(255,214,150,.85) 50%, transparent 68%); }
.hero.is-ready .arch img { animation-duration: 3.2s; }
.hero.is-ready .arch::after { animation-duration: 3.4s; }

/* reveals: things emerge from the shadow rather than slide in */
.js [data-reveal="img"] { clip-path: none; opacity: 0; filter: brightness(.2) blur(12px); transition: opacity 2.2s ease, filter 2.8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
.js [data-reveal="img"].in { clip-path: none; opacity: 1; filter: none; }
.js [data-reveal="img"] img { scale: 1.08; transition: scale 3.4s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0ms); }
.js [data-split] .w { overflow: visible; }
.js [data-split] .w > span { translate: 0 .3em; opacity: 0; filter: blur(10px); transition: translate 2s cubic-bezier(.2,.8,.2,1), opacity 1.8s ease, filter 1.8s ease; transition-delay: calc(var(--i) * 75ms + var(--d, 0ms)); }
.js [data-split].in .w > span { translate: 0 0; opacity: 1; filter: none; }
.js [data-reveal="up"] { translate: 0 14px; transition: opacity 1.8s ease, translate 2s cubic-bezier(.2,.8,.2,1); transition-delay: var(--d, 0ms); }

/* home */
.marquee { border-block-color: var(--line); padding-block: clamp(1.6rem, 3.5vw, 2.6rem); }
.marquee-track span { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 300; font-size: clamp(1.8rem, 4.2vw, 3.2rem); letter-spacing: .02em; color: var(--muted); padding-inline: .7em; }
.marquee-track span:nth-child(even) { color: var(--muted); -webkit-text-stroke: 0; }
.marquee-track span::after { width: .2em; height: .2em; border-radius: 0; rotate: 45deg; margin-left: 1.4em; background: transparent; border: 1px solid var(--accent); box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 60%, transparent); }
.portal .pn, .cycle-mark, .path .n { font-family: 'Cormorant SC', serif; letter-spacing: .22em; color: var(--accent); }
.portal .pt { font-weight: 400; letter-spacing: .12em; font-size: clamp(1.15rem, 1.7vw, 1.45rem); }
.portal .pv, .path .v { font-family: 'Cormorant Garamond', serif; font-size: 1.1rem; }
.portal:hover .arch img { scale: 1.04; }
.lit { font-style: italic; font-weight: 300; font-size: clamp(2.6rem, 7vw, 6.2rem); line-height: 1.08; max-width: 16ch; }
.lit .lw { opacity: .1; transition: opacity .6s ease; }
.creds b { font-size: 1.55rem; font-weight: 400; }
.creds > div, .recog dl > div { border-top-color: var(--line); }
.next strong { font-style: italic; font-weight: 300; }
.next small, .strip figcaption { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.next::before { background: radial-gradient(closest-side, var(--glow), transparent 75%); }

/* rooms */
.verse, .big-verse, .inter-quote, .artist-quote, .essay .big { font-style: italic; font-weight: 300; }
.verse { border-left-color: color-mix(in srgb, var(--accent) 45%, transparent); font-size: clamp(1.6rem, 2.6vw, 2.1rem); }
.big-verse { font-size: clamp(2.4rem, 5.8vw, 4.8rem); }
.cycle h2 { font-weight: 300; letter-spacing: .1em; }
.cycle-sub { font-style: italic; color: var(--accent); }
.works .t, .path .t { font-family: 'Cormorant Garamond', serif; font-weight: 400; letter-spacing: .14em; font-size: 1.22rem; }
.works .m { font-family: 'Cormorant Garamond', serif; font-size: 1.05rem; }
.works .p { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; letter-spacing: .04em; }
.works li > a::before { background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%); }
.etudes figcaption { font-size: 1.15rem; letter-spacing: .04em; }
.intimes h2 { font-style: italic; }
.acq-grid h3, .cercle h3 { font-family: 'Cormorant SC', serif; letter-spacing: .14em; font-size: 1.15rem; color: var(--accent); }
.acq-grid li::before { border-radius: 0; rotate: 45deg; width: 5px; height: 5px; box-shadow: none; }
.visit address strong { font-family: 'Cormorant SC', serif; letter-spacing: .2em; font-size: 1.3rem; }
.recog dt { font-size: 1.45rem; font-weight: 400; }
.rail a { font-family: 'Cormorant Garamond', serif; font-size: 1rem; letter-spacing: .06em; }
.rail a::before { border-radius: 0; rotate: 45deg; width: 7px; height: 7px; }
.rail a.on::before { box-shadow: 0 0 10px var(--accent); }
.path a::after { border-radius: 0; rotate: 45deg; width: 9px; height: 9px; border-color: var(--accent); }

@media (max-width: 720px) { .path .t { font-size: .92rem; letter-spacing: .04em; overflow-wrap: anywhere; } .works .t { letter-spacing: .08em; font-size: 1.12rem; } .cycle h2 { letter-spacing: .05em; overflow-wrap: anywhere; } }
/* gallery */
.chips { border-color: var(--line); border-radius: 0; padding: .3rem; }
.chip { font-family: 'Cormorant Garamond', serif; font-size: 1.12rem; border-radius: 0; color: var(--muted); }
.chip[aria-pressed="true"] { color: var(--fg); }
.chip-pill { border-radius: 0; background: color-mix(in srgb, var(--accent) 13%, transparent); border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent); box-shadow: none; }
.g-cap { background: linear-gradient(transparent, rgba(8,6,12,.88)); color: #EAE3D6; }
.g-cap b { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; letter-spacing: .06em; font-weight: 400; }
.g-cap span { font-family: 'Cormorant Garamond', serif; font-size: 1rem; }
.g-tilt::after { background: radial-gradient(circle at var(--mx, 50%) var(--my, 50%), rgba(255,214,150,.3), transparent 45%); }
.lb-bg { background: rgba(8,7,12,.96); }
.lb-img { box-shadow: 0 40px 120px -30px rgba(0,0,0,.8), 0 0 140px -40px rgba(255,200,130,.28); }
.lb-info .lb-cat { font-family: 'Cormorant SC', serif; letter-spacing: .2em; color: #C9A96E; font-style: normal; font-size: 1rem; }
.lb-info h2 { font-weight: 300; letter-spacing: .06em; color: #EAE3D6; }
.lb-info p { color: #BDB4A6; font-size: 1.1rem; }
.lb-info .btn { background: transparent; color: #EAE3D6; border-color: rgba(201,169,110,.55); }
.lb-info .btn::before { background: radial-gradient(ellipse at 50% 130%, rgba(201,169,110,.35), transparent 70%); }
.lb-info .btn:hover { color: #EAE3D6; }
.lb-btn { border-color: rgba(201,169,110,.35); background: rgba(14,13,20,.5); color: #EAE3D6; }
.lb-btn:hover { border-color: #C9A96E; background: rgba(201,169,110,.08); }
.lb-count { font-family: 'Cormorant Garamond', serif; color: #A79E91; font-size: 1.05rem; }

/* form */
.form { border-color: color-mix(in srgb, var(--accent) 35%, transparent); }
.form h2 { font-style: italic; font-weight: 300; font-size: clamp(2rem, 3.2vw, 2.6rem); }
.field label { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; }
.field input, .field textarea { font-size: 1.15rem; }

/* menu */
.menu-link .ml { font-weight: 300; font-size: clamp(2.3rem, 5.6vw, 4.6rem); }
.menu-link:hover .ml span, .menu-link:focus-visible .ml span { translate: .25em 0; color: var(--accent); }
.menu-link .ml span { transition: translate .9s cubic-bezier(.2,.8,.2,1), color .5s; }
.menu-link .ms { font-family: 'Cormorant Garamond', serif; font-size: 1.15rem; }
.menu-link[aria-current="page"] .ml span::before { border-radius: 0; rotate: 45deg; width: .16em; height: .16em; box-shadow: 0 0 14px var(--accent); }
.menu-preview .arch img { transition: opacity 1.2s ease, scale 2s ease; }

.menu { clip-path: none; opacity: 0; }
/* veil + preloader + cursor */
.veil { clip-path: none; opacity: 0; }
.veil-title { font-style: italic; font-weight: 300; letter-spacing: .02em; transition: opacity .9s ease, translate 1.2s cubic-bezier(.2,.8,.2,1), filter .9s; }
.veil::after { background: radial-gradient(closest-side, rgba(255,200,130,.18), transparent 75%); }
.leaf { background: #0E0D14; transition-duration: 2s; }
.leaf--l::after, .leaf--r::after { background: linear-gradient(transparent, #F4D9A8 30%, #F4D9A8 70%, transparent); box-shadow: 0 0 50px 12px rgba(255,205,140,.55); }
.pre-mark { color: #EAE3D6; }
.pre-mark b { font-family: 'Cormorant SC', serif; font-weight: 400; letter-spacing: .42em; padding-left: .42em; }
.pre-mark b span { animation-duration: 1.6s; animation-delay: calc(var(--i) * 110ms + 200ms); }
.pre-mark i { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; color: #A79E91; animation-delay: 1.2s; animation-duration: 1.6s; }
.pre-line { background: rgba(201,169,110,.18); }
.pre-line::after { background: #C9A96E; animation-duration: 1.8s; }
.cursor { width: 26px; height: 26px; margin: -13px 0 0 -13px; border-color: color-mix(in srgb, var(--accent) 60%, transparent); }
.cursor.on { opacity: .8; }
.cursor.is-link { width: 46px; height: 46px; margin: -23px 0 0 -23px; background: color-mix(in srgb, var(--accent) 8%, transparent); }
.cursor.is-view { width: 84px; height: 84px; margin: -42px 0 0 -42px; background: color-mix(in srgb, var(--bg) 55%, transparent); border-color: var(--accent); backdrop-filter: blur(2px); }
.cursor b { color: var(--fg); font-variant: all-small-caps; letter-spacing: .16em; font-size: .9rem; font-family: 'EB Garamond', serif; }

@media (prefers-reduced-motion: reduce) {
  .js [data-reveal="img"], .js [data-split] .w > span { filter: none !important; opacity: 1 !important; }
  .lantern { display: none; }
}
/* ===== Collections and artwork pages ===== */
.crumb { display: inline-block; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.15rem; color: var(--muted); margin-bottom: 1.8rem; }
.col-head { text-align: center; padding-bottom: clamp(2rem, 5vw, 3.5rem); }
.col-title { font-size: clamp(3rem, 11vw, 9rem); line-height: 1; letter-spacing: .1em; font-weight: 300; margin: .25em 0 .2em; padding-left: .1em; }
.col-head .cycle-sub { font-size: 1.35rem; }
.col-intro { max-width: 44rem; text-align: center; }
.col-intro p { color: color-mix(in srgb, var(--fg) 86%, var(--muted)); }
.col-intro p + p { margin-top: 1.1em; }
.col-intro p:first-child { font-family: 'Cormorant Garamond', serif; font-style: italic; font-weight: 300; font-size: clamp(1.7rem, 3.2vw, 2.4rem); line-height: 1.3; color: var(--fg); margin-bottom: 1.6rem; }
.orn { display: flex; align-items: center; justify-content: center; gap: 1.1rem; margin: clamp(3.5rem, 8vw, 5.5rem) auto 0; }
.orn::before, .orn::after { content: ""; width: 72px; height: 1px; background: linear-gradient(90deg, transparent, var(--accent)); }
.orn::after { background: linear-gradient(90deg, var(--accent), transparent); }
.orn span { width: 7px; height: 7px; rotate: 45deg; border: 1px solid var(--accent); box-shadow: 0 0 12px color-mix(in srgb, var(--accent) 50%, transparent); }

.col-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3.5rem, 7vw, 7rem) clamp(2rem, 6vw, 6rem); padding-block: clamp(4rem, 9vw, 7rem); align-items: start; }
.col-grid .art-card:nth-child(even) { margin-top: clamp(4rem, 12vw, 11rem); }
.col-grid--3 { grid-template-columns: repeat(3, 1fr); }
.col-grid--3 .art-card:nth-child(even) { margin-top: 0; }
.col-grid--3 .art-card:nth-child(3n+2) { margin-top: clamp(3rem, 8vw, 7rem); }
.art-card { display: block; text-decoration: none; }
.art-card .frame { position: relative; box-shadow: 0 34px 90px -45px rgba(0,0,0,.9); }
.art-card .frame img { width: 100%; height: auto; transition: scale 2.4s cubic-bezier(.2,.8,.2,1); }
.art-card .frame::after { content: ""; position: absolute; inset: 0; border: 1px solid transparent; transition: inset 1.1s cubic-bezier(.2,.8,.2,1), border-color 1.1s ease; pointer-events: none; }
.art-card:hover .frame::after, .art-card:focus-visible .frame::after { inset: 14px; border-color: color-mix(in srgb, var(--accent) 55%, transparent); }
.art-card:hover .frame img { scale: 1.035; }
.ac-meta { display: grid; grid-template-columns: 1fr auto; column-gap: 1.2rem; padding-top: 1.4rem; }
.ac-n { grid-column: 1 / -1; font-family: 'Cormorant SC', serif; letter-spacing: .24em; color: var(--accent); font-size: .95rem; margin-bottom: .2rem; }
.ac-t { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(1.35rem, 2.1vw, 1.85rem); letter-spacing: .12em; line-height: 1.2; transition: color .5s; }
.art-card:hover .ac-t { color: var(--accent); }
.ac-p { font-family: 'Cormorant Garamond', serif; font-size: 1.2rem; white-space: nowrap; align-self: baseline; letter-spacing: .03em; }
.ac-s { grid-column: 1 / -1; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.15rem; color: var(--muted); }
.ac-d { grid-column: 1 / -1; font-size: .98rem; color: var(--muted); }
.col-others { text-align: center; padding-bottom: clamp(2rem, 5vw, 3rem); }
.col-others p { font-family: 'Cormorant SC', serif; letter-spacing: .2em; color: var(--muted); font-size: 1rem; margin-bottom: 1.2rem; }
.col-others ul { list-style: none; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: .8rem 3rem; }
.col-others a { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.4rem, 2.6vw, 2rem); letter-spacing: .1em; text-decoration: none; transition: color .5s; }
.col-others a:hover { color: var(--accent); }
@media (max-width: 720px) {
  .col-grid { grid-template-columns: 1fr; }
  .col-grid .art-card:nth-child(even) { margin-top: 0; }
  .col-grid--3 { grid-template-columns: 1fr 1fr; gap: 2.6rem 1rem; }
  .col-grid--3 .art-card:nth-child(3n+2) { margin-top: 0; }
  .col-grid--3 .art-card:nth-child(even) { margin-top: 3rem; }
  .col-grid--3 .ac-meta { grid-template-columns: 1fr; }
  .col-grid--3 .ac-t { font-size: 1.05rem; letter-spacing: .07em; }
  .col-grid--3 .ac-p { font-size: 1.02rem; }
  .col-grid--3 .ac-s, .col-grid--3 .ac-d { font-size: .92rem; }
  .col-title { letter-spacing: .05em; overflow-wrap: anywhere; }
}

.art-wrap { display: grid; grid-template-columns: 1.15fr 1fr; gap: clamp(3rem, 7vw, 7rem); align-items: start; padding-top: clamp(7.5rem, 13vw, 10rem); }
.art-media { position: sticky; top: 6.5rem; }
.art-main { all: unset; display: block; width: 100%; cursor: zoom-in; }
.art-main:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; }
.art-main .frame { background: transparent; display: grid; place-items: center; }
.art-main img { width: auto; max-width: 100%; height: auto; max-height: calc(100vh - 13rem); box-shadow: 0 40px 120px -45px rgba(0,0,0,.9), 0 0 140px -60px var(--glow); }
.art-thumbs { display: flex; gap: .7rem; margin-top: 1.3rem; overflow-x: auto; scrollbar-width: none; padding: 2px 2px 10px; justify-content: safe center; }
.art-thumbs::-webkit-scrollbar { display: none; }
.art-thumbs button { all: unset; flex: 0 0 64px; height: 64px; cursor: pointer; opacity: .42; transition: opacity .5s; position: relative; }
.art-thumbs button:hover, .art-thumbs button.on { opacity: 1; }
.art-thumbs button.on::after { content: ""; position: absolute; left: 20%; right: 20%; bottom: -8px; height: 1px; background: var(--accent); }
.art-thumbs button:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }
.art-thumbs img { width: 100%; height: 100%; object-fit: cover; }
.art-title { font-size: clamp(2.6rem, 6vw, 5rem); letter-spacing: .08em; line-height: 1.04; font-weight: 300; }
.art-sub { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.55rem; color: var(--accent); margin: .5rem 0 2rem; }
.art-meta { display: grid; grid-template-columns: auto 1fr; gap: .75rem 2.2rem; padding: 1.5rem 0; border-block: 1px solid var(--line); margin-bottom: 2rem; align-items: baseline; }
.art-meta dt { font-family: 'Cormorant SC', serif; letter-spacing: .18em; color: var(--muted); font-size: .98rem; }
.art-meta dd { font-family: 'Cormorant Garamond', serif; font-size: 1.25rem; }
.art-meta .art-price { font-size: 1.55rem; letter-spacing: .03em; }
.art-desc { font-size: 1.2rem; max-width: 40ch; margin-bottom: 2.4rem; }
.art-promise { list-style: none; padding: 0; margin-top: 2.6rem; display: grid; gap: .55rem; color: var(--muted); font-size: 1rem; }
.art-promise li { padding-left: 1.1rem; position: relative; }
.art-promise li::before { content: ""; position: absolute; left: 0; top: .7em; width: 5px; height: 5px; rotate: 45deg; background: var(--accent); }
.art-nav { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; margin-top: clamp(4rem, 8vw, 6rem); padding-top: clamp(2.4rem, 5vw, 3.5rem); border-top: 1px solid var(--line); }
.art-nav a { display: flex; align-items: center; gap: 1.2rem; text-decoration: none; }
.art-nav .an-next { flex-direction: row-reverse; text-align: right; }
.art-nav img { width: 72px; height: 90px; object-fit: cover; opacity: .75; transition: opacity .6s; }
.art-nav a:hover img { opacity: 1; }
.art-nav small { display: block; font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--muted); font-size: 1.05rem; }
.art-nav strong { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(1.15rem, 2vw, 1.6rem); letter-spacing: .1em; transition: color .5s; }
.art-nav a:hover strong { color: var(--accent); }
.mini-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 2.4rem 1.6rem; }
.mini .frame { aspect-ratio: 4 / 5; }
.mini .frame img { height: 100%; object-fit: cover; }
.mini .ac-meta { grid-template-columns: 1fr; padding-top: 1rem; }
.mini .ac-t { font-size: 1.15rem; }
.mini .ac-p { font-size: 1.05rem; color: var(--muted); }
@media (max-width: 860px) {
  .art-wrap { grid-template-columns: 1fr; padding-top: 6rem; }
  .art-media { position: static; }
  .art-main img { max-height: 70svh; }
  .art-nav img { width: 52px; height: 66px; }
  .mini-grid { grid-template-columns: 1fr 1fr; gap: 2rem 1rem; }
}
/* ===== Language selector ===== */
.lang { display: flex; align-items: center; gap: .1rem; }
.lang button { background: none; border: 0; cursor: pointer; padding: .35rem .42rem; font-family: 'Cormorant SC', 'Cormorant Garamond', serif; font-size: .98rem; letter-spacing: .14em; color: var(--muted); position: relative; transition: color .5s ease; }
.lang button:hover { color: var(--accent); }
.lang button[aria-pressed="true"] { color: var(--fg); }
.lang button[aria-pressed="true"]::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 4px; height: 4px; translate: -50% 0; rotate: 45deg; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
@media (max-width: 720px) { .nav-right { gap: .7rem; } .wordmark b { letter-spacing: .22em; font-size: 1rem; } .lang button { padding: .35rem .3rem; font-size: .92rem; } }
@media (max-width: 380px) { .menu-btn .menu-label { display: none; } }

/* ===== Multi-page additions ===== */
.skip { position: fixed; left: 1rem; top: -4rem; z-index: 200; background: var(--fg); color: var(--bg); padding: .6rem 1rem; transition: top .3s; }
.skip:focus { top: 1rem; }
main:focus { outline: none; }

/* language links (anchors on real pages) */
.lang { display: flex; align-items: center; gap: .1rem; }
.lang a { text-decoration: none; padding: .35rem .42rem; font-family: 'Cormorant SC', 'Cormorant Garamond', serif; font-size: .98rem; letter-spacing: .14em; color: var(--muted); position: relative; transition: color .5s ease; }
.lang a:hover { color: var(--accent); }
.lang a[aria-current] { color: var(--fg); }
.lang a[aria-current]::after { content: ""; position: absolute; left: 50%; bottom: 0; width: 4px; height: 4px; translate: -50% 0; rotate: 45deg; background: var(--accent); box-shadow: 0 0 8px var(--accent); }
@media (max-width: 720px) { .lang a { padding: .35rem .3rem; font-size: .92rem; } }

/* announcement */
.announce { position: relative; z-index: 61; text-align: center; padding: .55rem 1rem; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.05rem; background: color-mix(in srgb, var(--accent) 14%, var(--bg)); border-bottom: 1px solid var(--line); }
.announce a { text-decoration: none; }
.announce a:hover { color: var(--accent); }
.announce + .nav { top: 0; }
body:has(.announce) .nav { position: sticky; }
body:has(.announce) .page-head { padding-top: clamp(4rem, 9vw, 7rem); }
body:has(.announce) .hero { padding-top: 3rem; min-height: calc(100svh - 120px); }

/* gallery without JS: simple columns */
.masonry:not(.is-laid) { columns: 4 240px; column-gap: 1.2rem; }
.masonry:not(.is-laid) .g-item { position: relative; width: 100%; margin-bottom: 1.2rem; break-inside: avoid; }
.js .masonry:not(.is-laid) { opacity: 0; }

/* ===== Journal ===== */
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(3rem, 6vw, 5rem) clamp(1.6rem, 3vw, 2.8rem); align-items: start; }
.post-grid--home { margin-top: 3rem; }
.post-card { display: block; text-decoration: none; }
.post-card .frame { aspect-ratio: 4 / 3; margin-bottom: 1.3rem; box-shadow: 0 30px 80px -45px rgba(0,0,0,.9); }
.post-card .frame img { width: 100%; height: 100%; object-fit: cover; transition: scale 2.4s cubic-bezier(.2,.8,.2,1); }
.post-card:hover .frame img { scale: 1.04; }
.post-card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; }
.post-card--featured .frame { aspect-ratio: 16 / 10; margin: 0; }
.pc-date { font-family: 'Cormorant SC', serif; letter-spacing: .16em; color: var(--accent); font-size: .95rem; margin-bottom: .5rem; }
.pc-title { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(1.45rem, 2.2vw, 1.9rem); line-height: 1.18; transition: color .5s; }
.post-card--featured .pc-title { font-size: clamp(2rem, 3.6vw, 3rem); font-weight: 300; }
.post-card:hover .pc-title { color: var(--accent); }
.pc-excerpt { color: var(--muted); font-size: 1.05rem; margin-top: .8rem; line-height: 1.65; }
@media (max-width: 960px) { .post-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .post-grid { grid-template-columns: 1fr; } .post-card--featured { grid-template-columns: 1fr; gap: 1.3rem; } }

.post-head { padding-top: clamp(8rem, 16vw, 12rem); max-width: 56rem; text-align: center; }
.post-meta { font-family: 'Cormorant SC', serif; letter-spacing: .18em; color: var(--accent); font-size: 1rem; margin-bottom: 1.4rem; }
.post-title { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(2.4rem, 6vw, 4.8rem); line-height: 1.06; }
.post-lede { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(1.3rem, 2vw, 1.6rem); color: var(--muted); margin-top: 1.6rem; }
.post-cover { margin-top: clamp(3rem, 6vw, 4.5rem); }
.post-cover .frame { max-width: 1000px; margin-inline: auto; max-height: 78vh; display: grid; place-items: center; background: transparent; }
.post-cover img { max-height: 78vh; width: auto; max-width: 100%; box-shadow: 0 40px 120px -45px rgba(0,0,0,.9); }
.post-body { max-width: 40rem; margin: clamp(3rem, 7vw, 5rem) auto 0; }
.post-sign { max-width: 40rem; margin: 3rem auto 0; text-align: right; font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: 1.4rem; color: var(--accent); }
.post-nav img { width: 72px; height: 72px; }

.prose { font-size: 1.2rem; line-height: 1.85; }
.prose > * + * { margin-top: 1.25em; }
.prose h2 { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(1.8rem, 3vw, 2.4rem); line-height: 1.2; margin-top: 2.2em; }
.prose h3 { font-family: 'Cormorant SC', serif; font-weight: 500; letter-spacing: .12em; font-size: 1.15rem; color: var(--accent); margin-top: 2em; }
.prose blockquote { margin: 2em 0; padding: .2em 0 .2em 1.6rem; border-left: 1px solid color-mix(in srgb, var(--accent) 50%, transparent); font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(1.45rem, 2.4vw, 1.8rem); line-height: 1.4; }
.prose blockquote p + p { margin-top: .7em; }
.prose ul, .prose ol { padding-left: 1.3rem; }
.prose li + li { margin-top: .4em; }
.prose strong { font-weight: 500; }
.prose .md-fig { margin: 2.6em -4vw; }
.prose .md-fig img { width: 100%; height: auto; box-shadow: 0 30px 90px -45px rgba(0,0,0,.9); }
.prose .md-fig figcaption { text-align: center; }
.prose .orn { margin: 2.6em auto; }
@media (max-width: 760px) { .prose .md-fig { margin-inline: 0; } }
.legal-body { max-width: 44rem; }
.legal-body h2 { font-size: 1.6rem; }

/* 404 */
.nf-wrap { min-height: 70vh; display: grid; place-items: center; text-align: center; }
.nf .h1 { font-size: clamp(2.4rem, 7vw, 5.4rem); font-style: italic; max-width: 16ch; margin-inline: auto; }
.nf .lede { margin: 1.6rem auto 2.4rem; }

/* preview mode (admin) */
.is-preview .preloader { display: none !important; }

/* sub-collections (series) inside a collection */
.series-nav { display: flex; flex-wrap: wrap; justify-content: center; gap: .6rem 2.2rem; padding-top: 1rem; }
.series-nav a { font-family: 'Cormorant Garamond', serif; font-size: clamp(1.15rem, 2vw, 1.45rem); letter-spacing: .1em; text-decoration: none; transition: color .4s; }
.series-nav a span { font-family: 'Cormorant SC', serif; color: var(--accent); font-size: .85em; letter-spacing: .2em; margin-right: .6em; }
.series-nav a:hover { color: var(--accent); }
.series { scroll-margin-top: 6rem; }
.series-head { text-align: center; padding-top: clamp(3rem, 7vw, 6rem); max-width: 46rem; }
.series-title { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: clamp(2rem, 4.4vw, 3.4rem); letter-spacing: .12em; line-height: 1.1; margin: .4rem 0 1.4rem; }
.series-intro p { font-family: 'Cormorant Garamond', serif; font-style: italic; font-size: clamp(1.1rem, 1.6vw, 1.3rem); color: var(--muted); margin: .2rem 0; }
.series .col-grid { padding-block: clamp(2.5rem, 6vw, 4.5rem); }

/* legal links, form note, statistics opt-out */
.foot-legal { list-style: none; padding: 0; margin: 1.6rem 0 0; display: flex; flex-wrap: wrap; gap: .6rem 1.8rem; }
.foot-legal a { color: var(--muted); text-decoration: none; transition: color .3s; }
.foot-legal a:hover { color: var(--fg); }
.form-legal { margin-top: 1.2rem; font-size: .85rem; color: var(--muted); line-height: 1.6; }
.stats-optout { margin-top: 2.4rem; padding: 1.4rem 1.6rem; border: 1px solid var(--line); border-radius: 4px; }
.stats-optout .check { display: flex; gap: .7rem; align-items: center; cursor: pointer; }
.stats-optout input { width: 1.1rem; height: 1.1rem; accent-color: var(--accent); }
.legal-body h2 { margin-top: 2.6rem; }
.legal-body h3 { margin-top: 1.8rem; }
.legal-body blockquote { border-left: 1px solid var(--accent); padding-left: 1.2rem; margin-left: 0; }

/* separator variants in journal posts (--- dots, --- stars, …) */
.orn[class*="orn--"] span { rotate: none; border: 0; box-shadow: none; width: auto; height: auto; color: var(--accent); font-family: 'Cormorant Garamond', Georgia, serif; line-height: 1; }
.orn--line::before { width: min(340px, 70%); background: linear-gradient(90deg, transparent, var(--accent), transparent); }
.orn--line::after, .orn--line span, .orn--double::before, .orn--double::after, .orn--dots::before, .orn--dots::after, .orn--stars::before, .orn--stars::after, .orn--wave::before, .orn--wave::after, .orn--asterism::before, .orn--asterism::after, .orn--space::before, .orn--space::after, .orn--space span { display: none; }
.orn.orn--double span { width: 180px; height: 5px; border-top: 1px solid var(--accent); border-bottom: 1px solid var(--accent); opacity: .7; }
.orn--dots span::before { content: "•\2003•\2003•"; font-size: 1rem; }
.orn--stars span::before { content: "✦\2002\2002✦\2002\2002✦"; font-size: .8rem; }
.orn--fleuron span::before { content: "❦"; font-size: 1.6rem; }
.orn--asterism span::before { content: "⁂"; font-size: 1.7rem; }
.orn.orn--wave span { width: 150px; height: 12px; background: var(--accent); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 12'%3E%3Cpath d='M0 6 Q9.4 0 18.75 6 T37.5 6 T56.25 6 T75 6 T93.75 6 T112.5 6 T131.25 6 T150 6' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") center / 100% 100% no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 150 12'%3E%3Cpath d='M0 6 Q9.4 0 18.75 6 T37.5 6 T56.25 6 T75 6 T93.75 6 T112.5 6 T131.25 6 T150 6' fill='none' stroke='black' stroke-width='1.2'/%3E%3C/svg%3E") center / 100% 100% no-repeat; }
.prose .orn--space { margin: 1.5em auto; height: 1.5em; }

/* ---------- newsletter: Le Cercle de l'Atelier */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.site-foot:has(.nl) { padding-top: 0; }
.nl { position: relative; margin-bottom: 3rem; padding: clamp(3.5rem, 8vw, 6rem) 0; border-bottom: 1px solid var(--line); background: radial-gradient(60% 120% at 50% 0%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 70%); color: var(--fg); font-size: 1rem; }
.nl::before { content: ""; position: absolute; left: 50%; top: 0; width: 1px; height: clamp(2rem, 5vw, 3.2rem); background: linear-gradient(var(--accent), transparent); }
.nl-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.nl-kicker { font-family: 'Cormorant SC', serif; letter-spacing: .22em; font-size: .9rem; color: var(--accent); margin-bottom: .6rem; }
.nl-title { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-style: italic; font-size: clamp(2.2rem, 4.4vw, 3.4rem); line-height: 1.05; margin-bottom: 1rem; color: var(--fg); }
.nl-copy p:last-child { color: var(--muted); font-size: 1.15rem; line-height: 1.7; max-width: 30rem; }
.nl-form { display: grid; gap: 1.1rem; position: relative; }
.nl-fields { display: grid; grid-template-columns: 1fr 1.3fr; gap: 1.4rem; }
.nl-form .btn { justify-self: start; }
.nl-form .form-note { text-align: left; min-height: 1.4em; margin: 0; }
.nl-legal { font-size: .82rem; color: var(--muted); line-height: 1.6; }
.nl-form.is-sent .nl-fields, .nl-form.is-sent .btn { opacity: .35; pointer-events: none; }
.nl-form.is-sent .form-note { color: var(--accent); font-style: normal; font-size: 1.05rem; }
.cercle .nl-form { margin-top: .4rem; }
.cercle .nl-fields { grid-template-columns: 1fr; gap: .6rem; }
.form-check { display: flex; gap: .75rem; align-items: flex-start; cursor: pointer; font-size: 1rem; color: var(--muted); line-height: 1.55; }
.form-check input { flex: none; width: 1.1rem; height: 1.1rem; margin-top: .25rem; accent-color: var(--accent); }
#demande.is-sent .form-note { color: var(--accent); font-style: normal; font-size: 1.1rem; }
.menu-nl { color: var(--accent) !important; }
@media (max-width: 860px) { .nl-inner { grid-template-columns: 1fr; } .nl-fields { grid-template-columns: 1fr; } }
.form-check input { appearance: none; -webkit-appearance: none; border: 1px solid color-mix(in srgb, var(--accent) 70%, transparent); border-radius: 3px; background: transparent; display: grid; place-items: center; cursor: pointer; }
.form-check input::after { content: ""; width: .55rem; height: .3rem; border-left: 1.5px solid var(--accent); border-bottom: 1.5px solid var(--accent); rotate: -45deg; translate: 0 -1px; opacity: 0; transition: opacity .2s; }
.form-check input:checked::after { opacity: 1; }
.form-check input:focus-visible { outline: 1px solid var(--accent); outline-offset: 3px; }

/* texts written with the advanced editor, in the normal layout (they keep the font size of the place they sit in) */
.rt > * { margin-block: 0; }
.rt > * + * { margin-top: 1em; }
.rt h2 { font-family: 'Cormorant Garamond', serif; font-weight: 400; font-size: 1.6em; line-height: 1.2; margin-top: 1.4em; }
.rt h3 { font-family: 'Cormorant SC', serif; font-weight: 500; letter-spacing: .12em; font-size: .95em; color: var(--accent); margin-top: 1.3em; }
.rt blockquote { padding: .1em 0 .1em 1.2em; border-left: 1px solid color-mix(in srgb, var(--accent) 50%, transparent); font-style: italic; }
.rt blockquote p + p { margin-top: .6em; }
.rt ul, .rt ol { padding-left: 1.3em; text-align: left; }
.rt li + li { margin-top: .3em; }
.rt strong { font-weight: 500; }
.rt .md-fig { margin-block: 1.6em; }
.rt .md-fig img { width: 100%; height: auto; }
.rt .md-fig figcaption { text-align: center; font-size: .85em; opacity: .8; margin-top: .5em; }
.rt .orn { margin: 1.6em auto; }
.rt .orn--space { margin: 1em auto; height: 1em; }

/* =====================================================================
   NUAGE (2026): light, cool and quiet, after the artist's moodboard
   (Pantone 11-4201 "Cloud Dancer"). The pages are light; the paintings
   are shown on darker walls (.stage), like a white gallery with a dark
   viewing room. Loaded last: everything here overrides the dark skin
   ("Veillée") above, which stays in place underneath. Removing this file
   from build.mjs brings the dark site back.
   ===================================================================== */
@property --bg { syntax: '<color>'; inherits: true; initial-value: #F0EEE9; }
@property --fg { syntax: '<color>'; inherits: true; initial-value: #25282F; }

/* scenes: barely tinted whites, cooler or warmer with each collection */
:root, :root[data-scene="seuil"] { --bg:#F0EEE9; --fg:#25282F; --muted:#636873; --line:rgba(37,40,47,.14); --accent:#866E4A; --glow:rgba(150,170,200,.30); }
:root[data-scene="abun"]    { --bg:#F1EFEA; --fg:#25282F; --muted:#636873; --line:rgba(37,40,47,.14); --accent:#866E4A; --glow:rgba(205,190,155,.32); }
:root[data-scene="status"]  { --bg:#ECEEF1; --fg:#23272F; --muted:#606671; --line:rgba(35,39,47,.14); --accent:#866E4A; --glow:rgba(140,165,210,.28); }
:root[data-scene="via"]     { --bg:#EAECF1; --fg:#22262F; --muted:#5F6572; --line:rgba(34,38,47,.14); --accent:#866E4A; --glow:rgba(130,150,215,.28); }
:root[data-scene="creatio"] { --bg:#F2EDEE; --fg:#28252B; --muted:#67626B; --line:rgba(40,37,43,.14); --accent:#866E4A; --glow:rgba(210,150,175,.25); }
:root[data-scene="echos"]   { --bg:#F0EDEB; --fg:#26272D; --muted:#65676F; --line:rgba(38,39,45,.14); --accent:#866E4A; --glow:rgba(205,175,165,.26); }
:root[data-scene="galerie"] { --bg:#EEEDEA; --fg:#25282F; --muted:#636873; --line:rgba(37,40,47,.14); --accent:#866E4A; --glow:rgba(150,170,200,.28); }
:root[data-scene="soir"]    { --bg:#EFEDEA; --fg:#25282F; --muted:#636873; --line:rgba(37,40,47,.14); --accent:#866E4A; --glow:rgba(170,165,195,.28); }

/* the darker wall the paintings hang on: every component inside re-reads these colours */
.stage { --bg:#2B2E35; --fg:#ECEAE4; --muted:#A9ACB4; --line:rgba(236,234,228,.15); --accent:#C9A96E; --glow:rgba(201,169,110,.14);
  background: var(--bg); color: var(--fg); position: relative; }
.stage--band { padding-block: clamp(3.5rem, 8vw, 6.5rem); }
.stage--band .col-grid { padding-block: clamp(.5rem, 2vw, 1.5rem); }
.stage--band > .wrap > .h2 { margin-bottom: 2.4rem; }
.stage--gallery { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(4rem, 8vw, 6rem); margin-top: clamp(2rem, 4vw, 3rem); }
.stage--gallery .masonry { margin-top: 0; }
.stage .arch { background: radial-gradient(ellipse at 50% 40%, #3A3D45, #1E2026); }
.stage .art-card .frame { box-shadow: 0 34px 90px -45px rgba(0,0,0,.95); }

/* atmosphere: no candle any more; a soft daylight and a whisper of grain */
.lantern { display: none; }
.vignette { background: radial-gradient(ellipse 130% 100% at 50% 40%, transparent 62%, rgba(70,82,104,.07) 100%); }
.grain { opacity: .28; }
.arch { background: radial-gradient(ellipse at 50% 40%, #FBFAF7, #DCDDE0); }
.js .hero .arch::after { background: linear-gradient(90deg, transparent 32%, rgba(255,255,255,.9) 50%, transparent 68%); }
/* things emerge from a mist rather than from the shadow */
.js [data-reveal="img"] { filter: blur(14px) brightness(1.06) saturate(.7); }
.js [data-reveal="img"].in { filter: none; }

/* shadows sized for a light page */
.art-card .frame, .post-card .frame { box-shadow: 0 30px 70px -45px rgba(25,28,36,.55); }
.post-cover img { box-shadow: 0 40px 100px -50px rgba(25,28,36,.6); }
.art-main img { box-shadow: 0 40px 110px -45px rgba(0,0,0,.85); }
.marquee-track span::after, .menu-link[aria-current="page"] .ml span::before, .lang a[aria-current]::after { box-shadow: none; }

/* painting page: the painting on its wall */
.art-media.stage { padding: clamp(1.4rem, 3vw, 2.6rem); border-radius: 2px; }
.art-media.stage .art-thumbs { margin-top: 1.4rem; }
@media (min-width: 861px) { .art-media.stage { top: 5.5rem; } .art-main img { max-height: calc(100vh - 15rem); } }

/* page transition, preloader */
.veil::after { background: radial-gradient(closest-side, rgba(150,170,200,.28), transparent 75%); }
.leaf { background: #F0EEE9; }
.leaf--l::after, .leaf--r::after { background: linear-gradient(transparent, #fff 30%, #fff 70%, transparent); box-shadow: 0 0 50px 14px rgba(255,255,255,.9); }
.pre-mark { color: #25282F; }
.pre-mark i { color: #636873; }
.pre-line { background: rgba(37,40,47,.12); }
.pre-line::after { background: #866E4A; }

/* gallery captions and lightbox stay dark: the paintings are seen against a dark ground */
.lb-bg { background: rgba(28,30,36,.97); }

/* ===== Collections: three ways in, and the sub-collections of Échos ===== */
.hub { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 2.4vw, 2rem); padding-bottom: clamp(4rem, 9vw, 7rem); align-items: stretch; }
.hub--series { padding-top: clamp(2.5rem, 5vw, 4rem); }
.hub-card { display: flex; flex-direction: column; text-decoration: none; padding: clamp(1.8rem, 3vw, 2.6rem) clamp(1.4rem, 2.6vw, 2.2rem) clamp(1.8rem, 3vw, 2.4rem); border-radius: 2px;
  box-shadow: 0 30px 70px -45px rgba(20,24,34,.55); transition: translate .9s cubic-bezier(.2,.8,.2,1), box-shadow .9s ease; }
.hub-card:hover, .hub-card:focus-visible { translate: 0 -6px; box-shadow: 0 44px 90px -45px rgba(20,24,34,.7); }
.hub-art .arch-wrap { width: min(76%, 270px); margin: .9rem auto 2.2rem; }
.hub-card .arch img { transition: scale 1.8s cubic-bezier(.2,.8,.2,1); }
.hub-card:hover .arch img { scale: 1.05; }
.hub-card:hover .arch-wrap::before { inset: -22px -22px 0 -22px; border-color: var(--accent); }
.hub-card .arch-wrap::after { opacity: 0; }
.hub-card:hover .arch-wrap::after { opacity: 1; }
.hub-body { display: flex; flex-direction: column; align-items: flex-start; flex: 1; }
.hub-n { font-family: 'Cormorant SC', serif; letter-spacing: .3em; color: var(--accent); font-size: 1rem; }
.hub-title { font-family: 'Cormorant Garamond', serif; font-weight: 300; font-size: clamp(1.8rem, 2.6vw, 2.5rem); letter-spacing: .08em; line-height: 1.12; margin: .35rem 0 .45rem; transition: color .6s; overflow-wrap: anywhere; }
.hub-card:hover .hub-title { color: var(--accent); }
.hub-mark { font-family: 'Cormorant Garamond', serif; font-style: italic; color: var(--muted); font-size: 1.12rem; line-height: 1.4; margin-bottom: .9rem; }
.hub-text { color: color-mix(in srgb, var(--fg) 84%, var(--muted)); font-size: 1.06rem; line-height: 1.65; }
.hub-text.rt > * + * { margin-top: .8em; }
.hub-list { list-style: none; width: 100%; margin: 1.3rem 0 0; padding: 1rem 0 0; border-top: 1px solid var(--line); display: grid; gap: .3rem; }
.hub-list li { display: flex; align-items: baseline; gap: .75rem; font-family: 'Cormorant Garamond', serif; letter-spacing: .1em; font-size: 1.08rem; line-height: 1.35; }
.hub-list li::before { content: ""; flex: none; width: 5px; height: 5px; rotate: 45deg; border: 1px solid var(--accent); translate: 0 -.18em; }
.hub-btn { margin-top: auto; pointer-events: none; }
.hub-body > :nth-last-child(2) { margin-bottom: 2rem; }
@media (max-width: 1000px) { .hub { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) {
  .hub { grid-template-columns: 1fr; }
  .hub-art .arch-wrap { width: min(62%, 240px); margin-bottom: 1.8rem; }
}

/* a sub-collection's own page: its list of siblings, the current one marked */
.series-nav { padding-block: clamp(2.5rem, 5vw, 3.5rem) 0; }
.series-nav a[aria-current] { color: var(--accent); }

/* small fixes */
.menu-link .ml { flex: none; white-space: nowrap; }
.menu-link .ms { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.art-nav { margin-bottom: clamp(3rem, 6vw, 5rem); }
.orn + .stage { margin-top: clamp(2.5rem, 5vw, 4rem); }

/* menu: tab names 20% smaller (artist's request) */
.menu-link .ml { font-size: clamp(1.84rem, 4.48vw, 3.68rem); }

/* lightbox: once open, the dark ground, the text and the buttons are visible by CSS alone;
   the script's animations only add the fade. (They sometimes never ran on some phones,
   leaving only the photo.) */
.lb-bg, .lb-info, .lb-btn { transition: opacity .7s ease; }
.lb.is-open .lb-bg, .lb.is-open .lb-info, .lb.is-open .lb-btn { opacity: 1; }

/* Spotkanie: the photo above the text */
.acq-photo { width: min(76%, 430px); margin: clamp(2.4rem, 5vw, 3.4rem) 0 clamp(2.6rem, 5vw, 3.6rem) 14px; }
.acq-photo .arch img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }

/* Artiste, "Na rynku sztuki": quiet strip of the auction-house / directory marks (artist, 2026-11-04) */
.market-logos { display: flex; align-items: center; flex-wrap: wrap; gap: clamp(1.4rem, 4vw, 2.6rem); margin: .4rem 0 2rem; padding: 1.1rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.market-logos img { width: auto; height: 44px; opacity: .7; transition: opacity .6s ease; }
.market-logos .ml-drouot { height: 34px; }
.market-logos .ml-guid { height: 36px; }
.market-logos:hover img { opacity: .85; }
@media (max-width: 560px) { .market-logos { gap: 1.2rem 1.5rem; justify-content: space-between; } .market-logos img { height: 38px; } .market-logos .ml-drouot { height: 26px; } .market-logos .ml-guid { height: 29px; } }

/* Journal cards: at most 4 lines of text under the photo, the rest in the post (artist, 2026-11-04) */
.pc-excerpt { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }

/* Home on phones (artist, 2026-11-04): one call to action in the hero ("Odkryj dzieła"), one journal teaser */
@media (max-width: 760px) {
  .hero .hero-gallery { display: none; }
  .post-grid--home > .post-card:nth-child(n+2) { display: none; }
}

/* Painting page: a long row of thumbnails (Axis mundi 8, Ex Nihilo 6) pushed the grid column wider than the phone,
   so the whole page opened zoomed out (artist, 2026-11-04). Columns may shrink; on phones the thumbnails wrap. */
.art-media, .art-info { min-width: 0; }
.art-thumbs { max-width: 100%; }
@media (max-width: 860px) {
  .art-thumbs { flex-wrap: wrap; overflow: visible; justify-content: center; row-gap: 1.1rem; }
  .art-thumbs button { flex-basis: 56px; height: 56px; }
}
/* a one-word title (TRANSLANDACJA) must not pass the edge of a phone */
@media (max-width: 560px) { .art-title { font-size: clamp(1.9rem, 9.4vw, 2.6rem); } }

/* ---------- Gallery, 2026-11-04: intro · "In interiors" (featured) · the catalogue (second plane, first works only + "see more") */
.g-inside { margin-top: clamp(3.5rem, 8vw, 6.5rem); }
.g-inside-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: center;
  padding-block: clamp(3rem, 7vw, 5.5rem); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.g-inside-title { font-size: clamp(2.6rem, 5.2vw, 4.4rem); font-weight: 300; line-height: 1.04; letter-spacing: .01em; margin: 0 0 clamp(1.6rem, 3vw, 2.4rem); }
.g-inside-copy p { font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-size: clamp(1.18rem, 1.6vw, 1.38rem); line-height: 1.65; color: var(--muted); margin: 0 0 1.1rem; max-width: 30em; }
.g-inside-copy em { color: var(--fg); letter-spacing: .02em; }
.g-inside-link { display: inline-block; margin-top: 1.2rem; font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-size: 1.12rem; letter-spacing: .04em; }
.g-inside-photo { margin: 0; }
.g-inside-photo .frame { aspect-ratio: 4 / 5; max-height: 720px; overflow: hidden; border-radius: 2px; box-shadow: 0 34px 80px -50px rgba(25,28,36,.55); }
.g-inside-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 45%; }

.g-catalog { margin-top: clamp(4.5rem, 10vw, 8rem); }
.g-cat-title { font-family: 'Cormorant SC', 'Cormorant Garamond', Georgia, serif; font-weight: 400; font-size: clamp(1.05rem, 1.4vw, 1.25rem); letter-spacing: .22em; color: var(--muted); margin: 0; }
.g-catalog .chips { margin-top: 1.3rem; }
.g-catalog .stage--gallery { margin-top: clamp(1.6rem, 3vw, 2.4rem); }
.g-more-wrap { text-align: center; margin: clamp(2.2rem, 4vw, 3.2rem) 0 0; }
.g-more { all: unset; cursor: pointer; font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-size: 1.15rem; letter-spacing: .08em; color: var(--fg);
  padding: .55rem .2rem; border-bottom: 1px solid color-mix(in srgb, var(--accent) 70%, transparent); transition: border-color .5s, color .5s; }
.g-more:hover { border-color: var(--fg); }
.g-more:focus-visible { outline: 1px solid var(--accent); outline-offset: 6px; }
.g-more[hidden] { display: none; }
.g-more-n { color: var(--muted); font-size: .9em; margin-left: .2em; }
@media (max-width: 860px) {
  .g-inside-grid { grid-template-columns: 1fr; gap: 2.4rem; }
  .g-inside-photo .frame { aspect-ratio: 4 / 5; max-height: none; }
}

/* Painting page, "Dokąd dalej": the way out of a collection (artist, 2026-11-04) */
.art-way { padding-block: clamp(4rem, 9vw, 7rem) clamp(3rem, 6vw, 4.5rem); text-align: center; }
.art-way-kicker { font-family: 'Cormorant SC', 'Cormorant Garamond', Georgia, serif; letter-spacing: .24em; font-size: 1rem; color: var(--muted); margin: 0 0 2.2rem; }
.art-way-grid { display: grid; grid-template-columns: 1fr 1fr; max-width: 920px; margin: 0 auto; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.art-way-grid > a { display: flex; align-items: center; justify-content: center; gap: 1.4rem; padding: 2rem 1.5rem; color: var(--fg); text-decoration: none; text-align: left; transition: background .6s ease; }
.art-way-grid > a + a { border-left: 1px solid var(--line); }
.art-way-grid > a:hover { background: color-mix(in srgb, var(--accent) 6%, transparent); }
.art-way-grid small { display: block; font-family: 'Cormorant SC', 'Cormorant Garamond', Georgia, serif; letter-spacing: .18em; font-size: .85rem; color: var(--accent); margin-bottom: .35rem; }
.art-way-grid strong { display: block; font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-weight: 400; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.15; letter-spacing: .03em; }
.art-way-grid em { display: block; color: var(--muted); font-size: 1rem; margin-top: .3rem; }
.art-way-back strong::before { content: "←"; font-size: .7em; margin-right: .5em; color: var(--muted); }
.art-way-next .arch-wrap { display: block; flex: 0 0 74px; }
.art-way-next .arch { display: block; }
.art-way-next .arch-wrap::before { inset: -7px -7px 0 -7px; }
.art-way-next .arch-wrap::after { display: none; }
.art-way-links { margin: 2rem 0 0; display: flex; justify-content: center; flex-wrap: wrap; gap: .6rem 1rem; font-family: 'Cormorant Garamond', Garamond, Georgia, serif; font-size: 1.1rem; }
.art-way-links span { color: var(--muted); }
@media (max-width: 640px) {
  .art-way-grid { grid-template-columns: 1fr; }
  .art-way-grid > a { justify-content: flex-start; padding: 1.5rem .4rem; }
  .art-way-grid > a + a { border-left: 0; border-top: 1px solid var(--line); }
}

/* Lightbox (artist, 2026-11-04): on shorter phones the photo used a fixed height and slid under the text;
   now it takes only the room left above the text. A hidden button must not leave an empty frame. */
.lb-ask[hidden], .lb-cat:empty, .lb-desc:empty, .lb-count:empty { display: none; }
@media (max-width: 860px) {
  .lb { grid-template-rows: minmax(0, 1fr) auto; }
  .lb-stage { display: flex; align-items: center; justify-content: center; min-height: 0; overflow: hidden; padding: 4.6rem 1rem .8rem; }
  .lb-img { max-height: 100%; max-width: 100%; }
}

/* Home hero on phones (artist, 2026-11-05): calmer and clearer.
   Header: no crowding (burger without the word MENU, lighter wordmark, langs closer).
   Order: kicker, title, the painting in its arch as the invitation, then the short line and the button.
   Warmth only here: a soft morning light behind the hero; the rest of the site keeps its cool walls. */
@media (max-width: 560px) {
  .nav-inner { height: 64px; column-gap: .6rem; }
  .wordmark b { letter-spacing: .18em; font-size: .95rem; }
  .nav-right { gap: .35rem; }
  .lang button, .lang a { padding: .35rem .24rem; font-size: .88rem; letter-spacing: .1em; }
  .menu-btn .menu-label { display: none; }
}
@media (max-width: 760px) {
  body:has(.page[data-route="home"]) #dust { opacity: .35; }
  .hero { padding: 5.6rem 0 3rem; min-height: auto; isolation: isolate; }
  .hero::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background:
      radial-gradient(120% 60% at 78% 8%, rgba(250, 236, 210, .75), transparent 60%),
      radial-gradient(90% 50% at 10% 55%, rgba(244, 232, 214, .55), transparent 70%),
      linear-gradient(180deg, #F5F1EA 0%, #F2EDE5 55%, var(--bg) 100%); }
  .hero-grid { gap: 0; text-align: center; }
  .hero-text { display: contents; }
  .hero-kicker { order: 1; font-size: 1rem; letter-spacing: .02em; margin: 0; }
  .hero h1 { order: 2; font-size: clamp(2.3rem, 10.5vw, 3rem); line-height: 1.08; margin: .4em auto .6em; max-width: 14ch; }
  .hero .arch-wrap { order: 3; width: min(60vw, 260px); margin: 0 auto 1.4rem; }
  .hero-caption { font-size: .92rem; margin-top: .8rem; }
  .hero .lede { order: 4; margin: 0 auto 1.6rem; max-width: 30ch; }
  .hero .lede, .hero .lede * { line-height: 1.5 !important; }
  .hero .actions { order: 5; justify-content: center; }
  .hero .scroll-cue { display: none; }
}

/* Krąg Atelier (artist, 2026-11-05): a letter, not a form. The sealed letters photo in an arch,
   a small fleuron, warm paper light behind (like the home hero), centred on phones. */
.nl { position: relative; isolation: isolate; }
.nl::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(70% 55% at 50% 30%, rgba(246, 234, 214, .8), transparent 70%),
              linear-gradient(180deg, transparent, rgba(242, 235, 224, .7) 45%, transparent); }
.nl-inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1fr) minmax(0, 1.1fr); }
.nl-photo { width: 100%; max-width: 340px; margin: 0; }
.nl-orn { display: block; color: var(--accent); font-size: 1.3rem; opacity: .75; margin-bottom: .5rem; }
.nl-photo .arch img { filter: saturate(.88); }
@media (max-width: 1100px) { .nl-inner { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); } .nl-inner > .nl-form { grid-column: 1 / -1; } }
@media (max-width: 860px) {
  .nl-inner { grid-template-columns: 1fr; text-align: center; justify-items: center; gap: 1.6rem; }
  .nl-photo { width: min(62vw, 270px); }
  .nl-copy p:last-child { margin-inline: auto; max-width: 26ch; }
  .nl-form { width: 100%; max-width: 26rem; }
  .nl-form .btn { justify-self: center; }
  .nl-form .form-note, .nl-legal { text-align: center; }
}

/* Spotkanie, Krąg Atelier (artist, 2026-11-05): same letter as the footer band, the sealed letters in an arch, centred, warm paper light */
.cercle { position: relative; isolation: isolate; text-align: center; padding: 2.4rem 1.2rem 2rem; }
.cercle::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; border-radius: 2px;
  background: radial-gradient(80% 50% at 50% 22%, rgba(246, 234, 214, .85), transparent 72%), linear-gradient(180deg, rgba(243, 236, 225, .6), transparent 85%); }
.cercle .nl-photo { width: min(58vw, 260px); margin: 0 auto 1.2rem; }
.cercle h3 { font-size: 1.35rem; }
.cercle > p, .cercle > .rt p { margin-inline: auto; max-width: 28ch; font-size: 1.1rem; }
.cercle .nl-form .btn { justify-self: center; }
.cercle .form-note, .cercle .nl-legal { text-align: center; }

/* Gallery: a glimpse of three works in arches at the top, before the texts (artist, 2026-11-05) */
.g-trio { display: flex; overflow: hidden; padding-top: 1.4rem; padding-bottom: 1.2rem; justify-content: center; align-items: flex-end; gap: 0; margin: 2.2rem auto .6rem; text-decoration: none; }
.g-trio .arch-wrap { width: clamp(90px, 27vw, 200px); margin: 0 -2vw; transition: translate .8s cubic-bezier(.2,.7,.2,1); }
.g-trio .g-trio-0 { translate: 0 10%; rotate: -4deg; }
.g-trio .g-trio-1 { width: clamp(110px, 33vw, 240px); z-index: 1; }
.g-trio .g-trio-2 { translate: 0 10%; rotate: 4deg; }
.g-trio .arch-wrap, .g-trio .arch { display: block; }
.g-trio .arch img { display: block; }
.g-trio .arch { box-shadow: 0 14px 30px -18px rgba(37, 40, 47, .45); }
.g-trio:hover .g-trio-0 { translate: -4% 8%; } .g-trio:hover .g-trio-2 { translate: 4% 8%; }
@media (max-width: 860px) { .page[data-route="galerie"] .page-head { padding-top: 6rem; } .page[data-route="galerie"] .page-head h1 { margin-bottom: .2em; } }
.g-trio .g-trio-0::before, .g-trio .g-trio-2::before, .g-trio .arch-wrap::after { display: none; }

/* Header logo (artist, 2026-11-10): the double-arch mark + ATELIER BWK replaces the text wordmark.
   Sized by height; the arch stands a little taller than the letters, so the image is given most of the bar. */
.wordmark { align-items: center; line-height: 0; }
.wordmark .logo { display: block; height: 56px; width: auto; max-width: 100%; }
@media (max-width: 720px) { .wordmark .logo { height: 44px; } }
@media (max-width: 380px) { .wordmark .logo { height: 38px; } }

/* Home journal (artist, 2026-11-10): after the dark "We wnętrzach" band the title sat right on its edge.
   Same breathing room as the other sections, and a little more air between the title and the link. */
.home-journal { padding-top: clamp(4.5rem, 11vw, 8rem); }
.home-journal .strip-head { row-gap: 1.4rem; }

/* Księga ABUN, under the ABUN paintings (artist, 2026-11-10). Light wall, centred, the two forms side by side in arches. */
.book { padding-block: clamp(5rem, 12vw, 9rem) clamp(3.5rem, 8vw, 6rem); text-align: center; scroll-margin-top: 70px; overflow-x: clip; }
.book-head { display: grid; justify-items: center; gap: .4rem; }
.book-kicker { font-variant: all-small-caps; letter-spacing: .32em; color: var(--accent); font-size: 1.05rem; margin: 0; }
.book-title { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 300; font-size: clamp(3.4rem, 9vw, 6rem); letter-spacing: .2em; line-height: 1; margin: .2rem 0 0; padding-left: .2em; }
.book-sub { font-variant: all-small-caps; letter-spacing: .3em; font-size: clamp(1.05rem, 2.4vw, 1.3rem); margin: .6rem 0 0; }
.book-triad { font-style: italic; color: var(--muted); font-size: 1.1rem; margin: 1.1rem 0 0; padding-top: 1.1rem; position: relative; }
.book-triad::before { content: ""; position: absolute; top: 0; left: 50%; width: 3.2rem; height: 1px; translate: -50% 0; background: var(--accent); opacity: .7; }
.book-intro { max-width: 40rem; margin-top: clamp(2.6rem, 6vw, 4rem); }
.book-intro > p { font-size: clamp(1.12rem, 2.4vw, 1.25rem); line-height: 1.75; margin: 0 0 1.1em; text-wrap: pretty; }
.book-quote { margin: clamp(2.2rem, 5vw, 3.2rem) auto 0; }
.book-quote p { font-style: italic; font-size: clamp(1.3rem, 3vw, 1.6rem); line-height: 1.45; margin: 0; }
.book-quote cite { display: block; font-style: normal; font-variant: all-small-caps; letter-spacing: .2em; color: var(--muted); margin-top: .7rem; }
.book-forms { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(3rem, 7vw, 6rem); max-width: 920px; margin-top: clamp(3.6rem, 8vw, 6rem); align-items: stretch; }
.book-form { display: flex; flex-direction: column; align-items: center; }
.book-form .arch-wrap { width: min(100%, 320px); margin-bottom: 1.8rem; }
.book-form h3 { font-family: 'Cormorant Garamond', Garamond, serif; font-weight: 400; font-size: clamp(1.6rem, 3.4vw, 2rem); margin: 0; }
.book-lang { font-variant: all-small-caps; letter-spacing: .18em; line-height: 1.45; text-wrap: balance; color: var(--accent); margin: .5rem 0 0; }
.book-form .btn { line-height: 1.45; text-wrap: balance; max-width: 100%; }
.book-details { color: var(--muted); font-size: 1.02rem; line-height: 1.6; margin: .9rem 0 0; max-width: 22rem; text-wrap: balance; }
.book-note { font-style: italic; font-size: 1.02rem; line-height: 1.55; margin: .7rem 0 0; max-width: 22rem; }
.book-price { margin: auto 0 1.4rem; padding-top: 1.2rem; display: grid; gap: .15rem; }
.book-price span { font-size: 1.7rem; letter-spacing: .04em; }
.book-price small { color: var(--muted); font-size: .98rem; }
.book-pay { max-width: 34rem; margin-top: clamp(2.6rem, 6vw, 3.6rem); color: var(--muted); font-style: italic; font-size: 1.05rem; }
@media (max-width: 760px) {
  .book-forms { grid-template-columns: 1fr; gap: 4.2rem; }
  .book-form .arch-wrap { width: min(72vw, 300px); }
}

/* Artiste, under the market logos: one quiet link to an article about her (artist, 2026-11-10). Texts press.* in pages/artiste. */
.press-line { display: grid; gap: .3rem; margin: -.6rem 0 2.2rem; }
.press-line a { font-style: italic; font-size: clamp(1.15rem, 2.6vw, 1.3rem); color: var(--fg); text-decoration: none; justify-self: start;
  background: linear-gradient(var(--accent), var(--accent)) 0 100% / 100% 1px no-repeat; padding-bottom: .1rem; transition: background-size .6s ease; }
.press-line a:hover { background-size: 0 1px; background-position: 100% 100%; }
.press-note { color: var(--muted); font-size: .98rem; font-style: italic; }
.press-line small { font-variant: all-small-caps; letter-spacing: .16em; color: var(--muted); font-size: .98rem; }

/* Spotkanie (artist, 2026-11-10): the four notes (every work, payment, delivery, privacy) side by side under the
   title + form row, full width, so the desktop page has no empty column. 2 columns on tablets, 1 on phones. */
.acq-grid--row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2.4rem clamp(2rem, 3.4vw, 3.4rem); margin-top: clamp(4rem, 8vw, 6.5rem); padding-top: clamp(2.4rem, 4vw, 3.2rem); border-top: 1px solid var(--line); }
.acq-grid--row > div { min-width: 0; }
@media (max-width: 1100px) { .acq-grid--row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .acq-grid--row { grid-template-columns: 1fr; } }
/* the form travels beside her text while it is read (the text column is taller than the form). The form is about
   1040px tall: on shorter screens it pins once its bottom reaches the screen, so the send button always stays in view. */
@media (min-width: 961px) { .acq > .form { position: sticky; top: min(104px, calc(100vh - 1080px)); } }

/* Menu on short desktop screens (artist, 2026-11-10): the open menu could be taller than the window, so it scrolled
   and its first items slid through the logo, because the header stays transparent at the top of the page.
   1) while the menu is open the header has the menu's own solid ground, so nothing shows through the logo;
   2) the menu titles also scale with the window height, so on a laptop the whole menu fits without scrolling;
   3) the hover slide (.25em) no longer cuts the last letter ("Galeria dzie"). */
.menu-open .nav::before { opacity: 1; background: var(--bg); backdrop-filter: none; -webkit-backdrop-filter: none; border-bottom-color: transparent; }
.menu-open .nav.is-hidden { translate: 0 0; }
.menu-link .ml { padding-right: .3em; }
@media (min-width: 861px) {
  .menu-link .ml { font-size: clamp(1.84rem, min(4.48vw, 6.6vh), 3.68rem); }
  .menu-grid { padding: max(6.2rem, 13vh) 0 max(1.6rem, 4vh); }
  .menu-foot { margin-top: clamp(1.4rem, 4vh, 2.6rem); }
  .menu-preview { width: min(100%, 380px, (100vh - 11rem) * .75); }
}
