@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Newsreader:opsz,wght@6..72,400&display=swap');

/* Image-only controls may be the native long-press target on mobile. */
img, [data-photo-control] {
  -webkit-touch-callout: none;
  -webkit-user-drag: none;
}

/* Leave touch scrolling, zooming and surrounding text selection native. */
img {
  -webkit-user-select: none;
  user-select: none;
}

/* Preserve native panning/zooming; photo controls remain on existing containers. */
@media (any-pointer: coarse) {
  img { pointer-events: none; }
}

:root {
  --paper: #f7f6f2;
  --ink: #171717;
  --bg-work: #f2f0eb;
  --bg-theoria: #d2cec3;
  --bg-chamber: #071312;
  --bg-edaduas: #6b5a34;
  --bg-letranger: #25282c;
  --bg-graveyard-thoughts: #241b23;
  --ink-graveyard-thoughts: #e8e2d8;
  --bg-unnamed-darkness: #000;
  --ink-unnamed-darkness: #e5e5e2;
  --bg-noonday: #fff;
  --atmosphere-theoria:
    radial-gradient(ellipse 96% 64% at 9% 14%, rgba(191, 197, 195, .2), transparent 77%),
    radial-gradient(ellipse 76% 91% at 91% 34%, rgba(200, 188, 167, .17), transparent 79%),
    radial-gradient(ellipse 108% 61% at 37% 73%, rgba(203, 200, 191, .19), transparent 81%),
    radial-gradient(ellipse 69% 84% at 72% 96%, rgba(198, 178, 164, .13), transparent 78%);
  --atmosphere-theoria-size: 1900px 1450px, 1750px 1850px, 2200px 1350px, 1650px 1900px;
  --atmosphere-chamber:
    radial-gradient(ellipse 58% 44% at 16% 19%, rgba(13, 36, 34, .14), transparent 77%),
    radial-gradient(ellipse 82% 68% at 86% 72%, rgba(3, 13, 13, .4), transparent 80%),
    radial-gradient(ellipse 62% 52% at 47% 48%, rgba(10, 30, 28, .12), transparent 78%);
  --atmosphere-chamber-size: 1500px 1100px, 1700px 1300px, 1300px 1000px;
  --atmosphere-edaduas:
    radial-gradient(ellipse 94% 68% at 12% 17%, rgba(105, 86, 47, .1), transparent 80%),
    radial-gradient(ellipse 80% 92% at 88% 42%, rgba(73, 57, 31, .12), transparent 82%),
    radial-gradient(ellipse 108% 62% at 39% 79%, rgba(119, 96, 53, .07), transparent 82%);
  --atmosphere-edaduas-size: 1950px 1450px, 1750px 1900px, 2200px 1400px;
  --atmosphere-letranger:
    radial-gradient(ellipse 92% 66% at 12% 18%, rgba(48, 54, 58, .14), transparent 80%),
    radial-gradient(ellipse 78% 90% at 88% 42%, rgba(29, 32, 35, .35), transparent 82%),
    radial-gradient(ellipse 106% 60% at 40% 82%, rgba(37, 40, 44, .16), transparent 82%);
  --atmosphere-letranger-size: 1950px 1500px, 1800px 1900px, 2200px 1400px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: "Inter", sans-serif;
  font-size: 12px;
  font-weight: 400;
  letter-spacing: .015em;
  line-height: 1.4;
}

.work-page { background-color: var(--bg-work); }
.project-page { background: #f4f1ea; }
.about-page { background: #f5f2ec; }
.books-page,
.publication-page { background: #f7f5f0; }

.work-page,
.about-page,
.books-page,
.publication-page,
.project-page {
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 .018 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    radial-gradient(ellipse 70% 48% at 18% 24%, rgba(255, 255, 255, .018), transparent 72%),
    radial-gradient(ellipse 65% 55% at 82% 76%, rgba(60, 54, 45, .012), transparent 75%);
  background-size: 320px 320px, 1200px 900px, 1400px 1000px;
}

a { color: inherit; text-decoration: none; }
a:focus-visible { outline: 1px solid currentColor; outline-offset: 5px; }

.site-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  padding: 28px 34px;
}

.site-name { font-family: "Newsreader", Georgia, serif; font-size: 22px; font-weight: 400; letter-spacing: .005em; }
.site-nav, .footer-links { display: flex; gap: 30px; }
.site-nav { font-size: 11px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; }
.footer-links, .site-footer > p { font-size: 10px; letter-spacing: .025em; text-transform: uppercase; }
.site-nav a, .footer-links a, .project h2 a { transition: opacity 160ms ease; }
.site-nav a:hover, .footer-links a:hover, .project h2 a:hover { opacity: .48; }

.projects { padding: 15vh 4.5vw 27vh; }
.project { width: var(--width); margin-left: var(--left); }
.project + .project { margin-top: var(--space); }
.project--theoria { --width: 57vw; --left: 7vw; }
.project--one-life { --width: 31vw; --left: 61vw; --space: 28vh; }
.project--etranger { --width: 43vw; --left: 19vw; --space: 35vh; }
.project--darkness { --width: 36vw; --left: 54vw; --space: 31vh; }

.project-image, .placeholder, .project-photo { display: block; width: 100%; }
.project-photo { height: auto; }
.placeholder--one-life { aspect-ratio: .78 / 1; background: #aaa9a5; }
.placeholder--etranger { aspect-ratio: 1.22 / 1; background: #d1d0cb; }
.placeholder--darkness { aspect-ratio: .88 / 1; background: #b8b7b2; }

.project h2 { margin: 11px 0 0; font-family: "Newsreader", Georgia, serif; font-size: 11px; font-weight: 400; letter-spacing: .005em; text-transform: none; }
.project h2 a { display: flex; justify-content: space-between; width: 100%; }

.about-page { overflow-x: hidden; background-color: #cac8c0; color: #292925; }
.about-main { padding: 0; }
.about-intro {
  padding: 14vh 7vw 18vh 10vw;
  background-color: #cac8c0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 .014 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.about-main h1 { margin: 0 0 7vh; font-family: "Newsreader", Georgia, serif; font-size: clamp(42px, 4vw, 56px); font-weight: 400; letter-spacing: 0; }
.artist-statement {
  max-width: 680px;
  font-family: "Newsreader", Georgia, serif;
  font-size: clamp(15px, 1.15vw, 17px);
  font-weight: 400;
  letter-spacing: 0;
  line-height: 1.62;
  text-transform: none;
}
.artist-statement p:first-child::first-line { color: #111; }
.artist-statement p { margin: 0; }
.artist-statement p + p { margin-top: 1.7em; }
.cv {
  width: 100%;
  margin: 0;
  padding: 18vh 7vw 28vh 10vw;
  background-color: #ecebe6;
  background-image:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 .014 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"),
    linear-gradient(to bottom, #cac8c0 0, #d8d6d0 48px, #e5e4df 86px, #ecebe6 110px);
  background-repeat: repeat, no-repeat;
  background-size: 320px 320px, 100% 110px;
  font-size: 12px;
  font-weight: 400;
  text-transform: none;
}
.cv-section { display: grid; grid-template-columns: minmax(145px, 18vw) minmax(0, 1fr); column-gap: 5vw; align-items: start; }
.cv-section + .cv-section { margin-top: 8vh; }
.cv-section h2 { margin: 1px 0 0; font: inherit; font-weight: 500; letter-spacing: .015em; }
.cv-entries { min-width: 0; }
.cv-entry { display: grid; grid-template-columns: minmax(0, 1fr) 48px; column-gap: 28px; margin: 0 0 7px; color: #3d3d3b; letter-spacing: 0; line-height: 1.5; }
.cv-year { text-align: right; font-variant-numeric: tabular-nums; }
.about-page .site-footer { background-color: #ecebe6; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='320' viewBox='0 0 320 320'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 .014 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }

.site-footer {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  padding: 26px 34px 30px;
}

.site-footer p { margin: 0; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

@media (max-width: 700px) {
  .site-header { padding: 22px 18px; }
  .site-nav { gap: 16px; }
  .projects { padding: 17vh 18px 22vh; }
  .project { width: var(--mobile-width); margin-left: var(--mobile-left); }
  .project--theoria { --mobile-width: 88%; --mobile-left: 0; }
  .project--one-life { --mobile-width: 66%; --mobile-left: 34%; --space: 21vh; }
  .project--etranger { --mobile-width: 81%; --mobile-left: 4%; --space: 24vh; }
  .project--darkness { --mobile-width: 72%; --mobile-left: 28%; --space: 23vh; }
  .site-footer { padding: 22px 18px 24px; }
  .footer-links { gap: 17px; }
  .about-main { padding: 0; }
  .about-intro { padding: 14vh 18px 16vh; }
  .about-main h1 { margin-bottom: 6vh; }
  .artist-statement { max-width: 92%; font-size: 15px; line-height: 1.6; }
  .cv { width: 100%; margin: 0; padding: 15vh 18px 22vh; }
  .cv-section { display: block; }
  .cv-section + .cv-section { margin-top: 8vh; }
  .cv-section h2 { margin-bottom: 24px; }
  .cv-entry { grid-template-columns: minmax(0, 1fr) 42px; column-gap: 18px; margin-bottom: 11px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Cinematic homepage */
.site-header--entrance {
  position: absolute;
  z-index: 2;
  inset: 0 0 auto;
  color: #f5f4ef;
  opacity: 0;
  animation: interface-reveal 1.3s ease-in-out 2s forwards;
}
.home-page .site-header--entrance .site-name {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.home-title { white-space: nowrap; animation: home-title-spacing 4s ease-out 3.3s forwards; }
.home-title-letter { display: inline-block; }
.home-title-space { display: inline-block; width: .25em; }
@keyframes home-title-spacing {
  from { letter-spacing: .005em; }
  to { letter-spacing: .22em; }
}
.home-page .site-header--entrance .site-nav {
  position: fixed;
  top: 28px;
  left: 50%;
  transform: translateX(-50%);
}
.entrance { position: relative; width: 100%; height: 100vh; height: 100svh; overflow: hidden; background: #111; }
.entrance-video { display: block; width: 100%; height: 100%; object-fit: cover; }
.entrance-video.is-missing { display: none; }
.entrance-image {
  --cursor-x: 0px;
  --cursor-y: 0px;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  filter: brightness(.92) contrast(.96);
  animation: entrance-breathe 26s ease-in-out infinite alternate,
             image-reveal 2.8s ease-in-out .5s forwards;
  transform-origin: center;
}
@keyframes entrance-breathe {
  from { transform: scale(1) translate3d(calc(-.15% + var(--cursor-x)), calc(-.08% + var(--cursor-y)), 0); }
  to { transform: scale(1.02) translate3d(calc(.15% + var(--cursor-x)), calc(.1% + var(--cursor-y)), 0); }
}
@keyframes image-reveal { to { opacity: .94; } }
@keyframes interface-reveal { to { opacity: 1; } }
.home-works { padding: 34vh 0 31vh; overflow: hidden; }
.home-work { position: relative; }
.home-work + .home-work { margin-top: var(--home-gap); }
.home-work-image, .home-work-image img, .image-field { display: block; width: 100%; }
.home-work-image img { height: auto; }
.home-work h2 { margin: 11px 0 0; font-family: "Newsreader", Georgia, serif; font-size: 11px; font-weight: 400; letter-spacing: .005em; text-transform: none; }
.home-work--theoria { width: 64vw; margin-left: 9vw; }
.home-work--etranger { width: 25vw; margin-left: 62vw; --home-gap: 42vh; }
.home-work--darkness { width: 72vw; margin-left: 3vw; --home-gap: 49vh; }
.home-work--etranger h2 { text-align: right; }
.home-work--darkness h2 { position: absolute; left: calc(100% + 18px); bottom: 0; white-space: nowrap; }
.image-field--etranger { aspect-ratio: .76 / 1; background: #aaa9a5; }
.image-field--darkness { aspect-ratio: 1.72 / 1; background: #bebdb8; }

/* Typographic work index */
.work-page { position: relative; isolation: isolate; }
.work-page { transition: color 1.3s ease; }
.work-page[data-work-atmosphere="chamber"] { color: #d8d2c6; }
.work-page[data-work-atmosphere="letranger"] { color: #d4d6d3; }
.work-page[data-work-atmosphere="graveyard"] { color: var(--ink-graveyard-thoughts); }
.work-page[data-work-atmosphere="unnamed-darkness"] { color: var(--ink-unnamed-darkness); }
.work-page::before,
.work-page::after { content: ""; position: fixed; z-index: 0; inset: 0; opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page::before {
  background-color: var(--bg-theoria);
  background-image: var(--atmosphere-theoria);
  background-size: var(--atmosphere-theoria-size);
  background-repeat: no-repeat;
  background-attachment: fixed;
}
.work-page::after {
  background-color: var(--bg-chamber);
  background-image: var(--atmosphere-chamber);
  background-size: var(--atmosphere-chamber-size);
}
.work-page[data-work-atmosphere="theoria"]::before,
.work-page[data-work-atmosphere="chamber"]::after { opacity: 1; }
.work-atmosphere-edaduas { position: fixed; z-index: 0; inset: 0; background-color: var(--bg-edaduas); background-image: var(--atmosphere-edaduas); background-size: var(--atmosphere-edaduas-size); background-repeat: no-repeat; opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page[data-work-atmosphere="edaduas"] .work-atmosphere-edaduas { opacity: 1; }
.work-atmosphere-letranger { position: fixed; z-index: 0; inset: 0; background-color: var(--bg-letranger); background-image: var(--atmosphere-letranger); background-size: var(--atmosphere-letranger-size); background-repeat: no-repeat; opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page[data-work-atmosphere="letranger"] .work-atmosphere-letranger { opacity: 1; }
.work-atmosphere-graveyard { position: fixed; z-index: 0; inset: 0; background-color: var(--bg-graveyard-thoughts); opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page[data-work-atmosphere="graveyard"] .work-atmosphere-graveyard { opacity: 1; }
.work-atmosphere-unnamed-darkness { position: fixed; z-index: 0; inset: 0; background-color: var(--bg-unnamed-darkness); opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page[data-work-atmosphere="unnamed-darkness"] .work-atmosphere-unnamed-darkness { opacity: 1; }
.work-atmosphere-noonday { position: fixed; z-index: 0; inset: 0; background-color: var(--bg-noonday); opacity: 0; pointer-events: none; transition: opacity 1.3s ease; }
.work-page[data-work-atmosphere="noonday"] .work-atmosphere-noonday { opacity: 1; }
.work-page > .site-header,
.work-page > .work-index,
.work-page > .site-footer { position: relative; z-index: 1; }
.work-index { min-height: calc(100vh - 70px); display: flex; align-items: center; padding: 10vh 0 14vh 17vw; }
.work-list { width: min(540px, 58vw); }
.work-row { position: static; display: block; width: fit-content; padding: 9px 0; opacity: .68; font-family: "Newsreader", Georgia, serif; font-size: clamp(17px, 1.4vw, 20px); font-weight: 400; letter-spacing: 0; line-height: 1.25; text-transform: none; transition: opacity 520ms ease, transform 520ms ease; }
.work-list:has(.work-row:hover) .work-row:not(:hover),
.work-list:has(.work-row:focus-visible) .work-row:not(:focus-visible) { opacity: .28; }
.work-row:hover,
.work-row:focus-visible { opacity: 1; }
.work-preview { position: fixed; z-index: 1; right: 10vw; top: var(--preview-top, 50%); width: 26vw; opacity: 0; transform: translateY(-50%); pointer-events: none; transition: opacity 720ms ease; }
.work-row:hover .work-preview,
.work-row:focus-visible .work-preview { opacity: 1; }
.work-preview--photo img { display: block; width: 100%; height: auto; opacity: .86; filter: contrast(.975); transform: scale(.995); transform-origin: center; -webkit-mask-image: linear-gradient(to right, rgba(0, 0, 0, .78), #000 1.5%, #000 98.5%, rgba(0, 0, 0, .78)); mask-image: linear-gradient(to right, rgba(0, 0, 0, .78), #000 1.5%, #000 98.5%, rgba(0, 0, 0, .78)); }
.work-row:hover .work-preview--photo img,
.work-row:focus-visible .work-preview--photo img { animation: preview-breathe 10s ease-in-out infinite alternate, preview-clarify 10s ease-out forwards; }
.preview-portrait { aspect-ratio: .76 / 1; }
.preview-tall { aspect-ratio: .64 / 1; }
.preview-landscape { aspect-ratio: 1.35 / 1; }
.preview-wide { aspect-ratio: 1.75 / 1; }
@keyframes preview-breathe {
  from { transform: scale(.995); }
  to { transform: scale(1.005); }
}
@keyframes preview-clarify {
  from { opacity: .86; filter: contrast(.975); }
  to { opacity: 1; filter: contrast(1); }
}
.preview-stone { background: #b8b7b2; }
.preview-pale { background: #cccbc6; }
.work-active-line { position: fixed; z-index: 0; top: var(--line-top, 50%); left: var(--line-left, 40%); width: var(--line-width, 0); height: 1px; background: rgba(23, 23, 23, .15); opacity: 0; transform: scaleY(.5); transform-origin: center; pointer-events: none; transition: top 620ms cubic-bezier(.22, .6, .3, 1), left 620ms cubic-bezier(.22, .6, .3, 1), width 620ms cubic-bezier(.22, .6, .3, 1), opacity 520ms ease; }
.work-active-line.is-visible { opacity: 1; }
.work-page[data-work-atmosphere="chamber"] .work-active-line { background: rgba(216, 210, 198, .16); }
.work-page[data-work-atmosphere="letranger"] .work-active-line { background: rgba(212, 214, 211, .15); }
.work-page[data-work-atmosphere="graveyard"] .work-active-line { background: rgba(232, 226, 216, .16); }
.work-page[data-work-atmosphere="unnamed-darkness"] .work-active-line { background: rgba(229, 229, 226, .16); }

.contact-overlay {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: flex;
  align-items: center;
  padding: 10vw;
  background: rgba(8, 8, 8, .82);
  color: #f3f2ed;
  opacity: 0;
  visibility: hidden;
  transition: opacity 900ms ease, visibility 0s linear 900ms;
}
.contact-overlay.is-open { opacity: 1; visibility: visible; transition-delay: 0s; }
.contact-content h2 { margin: 0 0 9vh; font-family: "Newsreader", Georgia, serif; font-size: 22px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.contact-content p { margin: 0 0 18px; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.contact-email, .contact-instagram { display: block; width: fit-content; font-family: "Inter", sans-serif; font-size: 12px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.contact-instagram { margin-top: 13px; }
.contact-close { position: absolute; top: 25px; right: 34px; font-family: "Inter", sans-serif; font-size: 14px; font-weight: 400; line-height: 1; }
.contact-email, .contact-instagram, .contact-close { transition: opacity 160ms ease; }
.contact-email:hover, .contact-instagram:hover, .contact-close:hover { opacity: .5; }
body.overlay-open { overflow: hidden; }

/* Publication archive */
.books-main { padding: 15vh 7vw 28vh; }
.books-main > h1 { margin: 0 0 20vh; font-family: "Inter", sans-serif; font-size: 11px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; }
.book-entry { width: 62vw; margin-left: 9vw; }
.book-image, .book-placeholder { display: block; width: 100%; }
.book-image img { display: block; width: 100%; height: auto; }
.book-image { transition: transform 1.2s ease; transform-origin: center; }
.book-image:hover { transform: scale(1.01); }
.book-placeholder { aspect-ratio: 1.32 / 1; background: #b9b8b3; }
.book-caption { margin-top: 18px; }
.book-caption h2 { margin: 0 0 11px; font-family: "Newsreader", Georgia, serif; font-size: 15px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.book-caption p { margin: 0 0 4px; font-family: "Inter", sans-serif; font-size: 11px; font-weight: 400; letter-spacing: 0; text-transform: none; }

/* L'ETRANGER book */
.letranger-book-overview {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, .85fr);
  gap: clamp(58px, 8vw, 132px);
  align-items: center;
  width: min(82vw, 1320px);
  margin: 0 auto;
}
.letranger-book-cover { margin: 0; }
.letranger-book-cover img { display: block; width: 100%; height: auto; }
.letranger-book-information { align-self: center; }
.letranger-book-information h2 {
  margin: 0 0 54px;
  font-family: "Newsreader", Georgia, serif;
  font-size: clamp(22px, 2vw, 29px);
  font-weight: 400;
  letter-spacing: 0;
}
.letranger-book-colophon { margin: 0; font-size: 10px; line-height: 1.55; }
.letranger-book-colophon > div {
  display: grid;
  grid-template-columns: minmax(98px, .7fr) minmax(0, 1.3fr);
  column-gap: 28px;
  margin: 0 0 7px;
}
.letranger-book-colophon dt { color: rgba(23, 23, 23, .58); }
.letranger-book-colophon dd { margin: 0; }
.letranger-book-colophon .letranger-book-price { margin-bottom: 7px; }
.letranger-book-colophon .letranger-book-status { margin-bottom: 32px; }
.letranger-book-colophon .letranger-book-status dd { font-weight: 500; letter-spacing: .025em; }
.letranger-book-colophon .letranger-book-credit-start { margin-top: 32px; }
.letranger-book-spreads { margin-top: 36vh; }
.letranger-book-spreads > h2 {
  width: min(80vw, 1400px);
  margin: 0 auto 20vh;
  font-family: "Inter", sans-serif;
  font-size: 10px;
  font-weight: 400;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.letranger-book-spreads figure {
  width: min(80vw, 1400px);
  margin: 0 auto;
}
.letranger-book-spreads figure + figure { margin-top: 30vh; }
.letranger-book-spreads img { display: block; width: 100%; height: auto; }

.publication-main { padding: 18vh 8vw 30vh; }
.publication-heading { margin-left: 5vw; }
.publication-heading h1 { margin: 0 0 24px; font-family: "Newsreader", Georgia, serif; font-size: 28px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.publication-meta { font-size: 11px; text-transform: none; }
.publication-meta p { margin: 0 0 5px; }
.publication-images { margin-top: 24vh; }
.publication-placeholder { display: block; background: #b9b8b3; }
.publication-placeholder--cover { width: 58vw; margin-left: 16vw; aspect-ratio: 1.28 / 1; }
.publication-placeholder--spread { width: 72vw; margin-top: 32vh; aspect-ratio: 1.65 / 1; }

/* Project viewing */
.theoria-page {
  background-color: var(--bg-theoria);
  background-image: var(--atmosphere-theoria);
  background-size: var(--atmosphere-theoria-size);
  background-repeat: no-repeat;
  background-attachment: fixed;
}
.edaduas-page {
  background-color: var(--bg-edaduas);
  background-image: var(--atmosphere-edaduas);
  background-size: var(--atmosphere-edaduas-size);
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: #211d15;
}
.edaduas-intro { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; }
.edaduas-intro .project-title-group h1 { margin-bottom: 28px; }
.edaduas-text-trigger { margin: 36px 0 0; padding: 0; border: 0; background: transparent; color: inherit; font-family: "Inter", sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; cursor: pointer; opacity: .58; transition: opacity 180ms ease; }
.edaduas-text-trigger:hover { opacity: 1; }
.edaduas-sequence { padding: 1vh 0 28vh; }
.edaduas-moment { display: flex; align-items: center; justify-content: center; min-height: 84vh; min-height: 84svh; margin: 0; padding: 9vh 6vw; }
.edaduas-moment img { display: block; width: auto; max-width: 68vw; height: auto; max-height: 78vh; object-fit: contain; }
.edaduas-reading-heading { margin-bottom: 9vh; }
.edaduas-reading-heading h2 { margin-bottom: 22px; }
.edaduas-language { display: flex; align-items: center; gap: 7px; font-family: "Inter", sans-serif; font-size: 9px; letter-spacing: .025em; }
.edaduas-language button { padding: 0; border: 0; background: transparent; color: inherit; font: inherit; cursor: pointer; opacity: .38; transition: opacity 180ms ease; }
.edaduas-language button[aria-pressed="true"], .edaduas-language button:hover { opacity: 1; }
.edaduas-reading-credit { margin-top: 8vh; }
.edaduas-reading-credit span { display: block; }
.letranger-page {
  background-color: var(--bg-letranger);
  background-image: var(--atmosphere-letranger);
  background-size: var(--atmosphere-letranger-size);
  background-repeat: no-repeat;
  background-attachment: fixed;
  color: #d4d6d3;
}
.graveyard-page {
  min-height: 100vh;
  background-color: var(--bg-graveyard-thoughts);
  color: var(--ink-graveyard-thoughts);
}
.graveyard-intro { min-height: calc(100vh - 82px); min-height: calc(100svh - 82px); display: flex; align-items: center; justify-content: center; padding: 8vh 6vw 12vh; }
.graveyard-intro .project-title-group h1 { margin-bottom: 28px; }
.graveyard-text-trigger { margin: 36px 0 0; padding: 0; border: 0; background: transparent; color: inherit; font-family: "Inter", sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; cursor: pointer; opacity: .5; transition: opacity 180ms ease; }
.graveyard-text-trigger:hover { opacity: 1; }
.graveyard-sequence { width: min(74vw, 1220px); margin: 0 auto; padding: 4vh 0 30vh; }
.graveyard-cluster { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: end; column-gap: 1vw; }
.graveyard-cluster + .graveyard-cluster { margin-top: 40vh; }
.graveyard-presence { margin: 0; align-self: end; }
.graveyard-presence img { display: block; width: 100%; height: auto; }
.graveyard-cluster--one .graveyard-presence:nth-child(1) { grid-column: 2 / span 4; }
.graveyard-cluster--one .graveyard-presence:nth-child(2) { grid-column: 6 / span 5; }
.graveyard-cluster--two { align-items: end; }
.graveyard-cluster--two .graveyard-presence:nth-child(1) { grid-column: 2 / span 3; }
.graveyard-cluster--two .graveyard-presence:nth-child(2) { grid-column: 5 / span 3; }
.graveyard-cluster--two .graveyard-presence:nth-child(3) { grid-column: 8 / span 3; }
.graveyard-cluster--three .graveyard-presence:nth-child(1) { grid-column: 3 / span 4; }
.graveyard-cluster--three .graveyard-presence:nth-child(2) { grid-column: 7 / span 4; }
.graveyard-cluster--four .graveyard-presence:nth-child(1) { grid-column: 2 / span 3; }
.graveyard-cluster--four .graveyard-presence:nth-child(2) { grid-column: 5 / span 3; }
.graveyard-cluster--four .graveyard-presence:nth-child(3) { grid-column: 8 / span 3; }
.graveyard-reading-panel { background-color: rgba(48, 36, 46, .92); color: var(--ink-graveyard-thoughts); }
.unnamed-darkness-page { background-color: var(--bg-unnamed-darkness); background-image: none; color: var(--ink-unnamed-darkness); }
.unnamed-darkness-intro { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding: 8vh 6vw 12vh; }
.unnamed-darkness-intro .project-title-group h1 { margin-bottom: 28px; }
.unnamed-darkness-intro .project-line span { display: block; }
.unnamed-darkness-text-trigger { display: block; margin: 36px auto 0; padding: 0; border: 0; background: transparent; color: inherit; font-family: "Inter", sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; opacity: .48; }
.unnamed-darkness-sequence { padding: 0 0 26vh; }
.unnamed-darkness-moment { display: flex; align-items: center; justify-content: center; min-height: 84vh; min-height: 84svh; margin: 0; padding: 9vh 6vw; }
.unnamed-darkness-moment img { display: block; width: auto; max-width: 62vw; height: auto; max-height: 74vh; object-fit: contain; }
.unnamed-darkness-moment img:not([src$="unnmaed1.jpg"]):not([src$="unnmaed16.jpg"]):not([src$="unnmaed17.jpg"]) { max-width: 53vw; }
.noonday-page { background-color: var(--bg-noonday); background-image: none; color: var(--ink); }
.noonday-intro { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding: 8vh 6vw 12vh; }
.noonday-intro .project-title-group h1 { margin-bottom: 28px; }
.noonday-intro .project-line { max-width: 700px; }
.noonday-intro .project-line span { display: block; }
.noonday-text-trigger { display: block; margin: 36px auto 0; padding: 0; border: 0; background: transparent; color: inherit; font-family: "Inter", sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; opacity: .48; }
.noonday-sequence { --noonday-portrait-width: 57%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; width: min(72vw, 1160px); margin: 0 auto; padding: 22vh 0 38vh; gap: 3px; }
.noonday-upper-plane { display: contents; }
/* Each landscape fills one equal column; portraits share a narrower width. */
.noonday-moment { width: 100%; min-width: 0; margin: 0; align-self: end; }
.noonday-moment img { display: block; width: 100%; height: auto; }
.noonday-moment--portrait { width: var(--noonday-portrait-width); justify-self: end; }
.noonday-sequence > .noonday-moment { align-self: start; }
.noonday-sequence > .noonday-moment:last-child { grid-column: 2; }
.letranger-intro {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.letranger-intro-image-frame {
  position: absolute;
  z-index: 0;
  inset: 0;
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, .76) 62%, transparent 71%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 55%, rgba(0, 0, 0, .76) 62%, transparent 71%);
  pointer-events: none;
}
.letranger-intro-image {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 108%;
  object-fit: cover;
  object-position: center;
  transform: translateY(-31%);
  opacity: .8;
  filter: brightness(.82) saturate(.64) contrast(.92);
}
.letranger-intro h1 { margin: 0 0 26px; font-family: "Newsreader", Georgia, serif; font-size: 30px; font-weight: 400; letter-spacing: 0; }
.letranger-text-trigger {
  margin: 34px 0 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: "Inter", sans-serif;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .025em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: .68;
  transition: opacity 240ms ease;
}
.letranger-text-trigger:hover { opacity: 1; }
.letranger-reading-layer {
  position: fixed;
  z-index: 70;
  inset: 0;
  visibility: hidden;
  background: rgba(15, 18, 20, 0);
  transition: visibility 0s linear 720ms, background-color 720ms ease;
}
.letranger-reading-layer.is-open {
  visibility: visible;
  background: rgba(15, 18, 20, .16);
  transition-delay: 0s;
}
.letranger-reading-panel {
  position: absolute;
  isolation: isolate;
  top: 0;
  right: 0;
  width: 43vw;
  height: 100%;
  overflow-y: auto;
  background-color: rgba(35, 39, 42, .9);
  color: #d7d3c9;
  -webkit-backdrop-filter: blur(18px) saturate(.45) contrast(.8) brightness(.88);
  backdrop-filter: blur(18px) saturate(.45) contrast(.8) brightness(.88);
  transform: translateX(100%);
  transition: transform 720ms cubic-bezier(.33, 1, .68, 1);
}
.letranger-reading-panel::before {
  content: "";
  position: absolute;
  z-index: 0;
  inset: 0;
  pointer-events: none;
  opacity: .3;
  background-image:
    radial-gradient(ellipse 86% 64% at 14% 9%, rgba(126, 132, 132, .11) 0%, rgba(126, 132, 132, 0) 72%),
    radial-gradient(ellipse 112% 78% at 91% 43%, rgba(8, 14, 17, .15) 0%, rgba(8, 14, 17, 0) 68%),
    radial-gradient(ellipse 98% 72% at 31% 88%, rgba(106, 111, 110, .08) 0%, rgba(106, 111, 110, 0) 74%);
}
.letranger-reading-panel::after {
  content: "";
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 0;
  left: 0;
  width: 1px;
  pointer-events: none;
  background: rgba(190, 193, 188, .12);
}
.letranger-reading-layer.is-open .letranger-reading-panel { transform: translateX(0); }
.letranger-reading-inner { position: relative; z-index: 1; width: min(30vw, 520px); margin: 0 auto; padding: 14vh 0 18vh; }
.letranger-reading-inner h2 { margin: 0 0 9vh; font-family: "Newsreader", Georgia, serif; font-size: 23px; font-weight: 400; letter-spacing: 0; }
.letranger-reading-copy { font-family: "Newsreader", Georgia, serif; font-size: 15px; font-weight: 400; line-height: 1.68; }
.letranger-reading-copy > p { margin: 0 0 2em; }
.letranger-reading-final { margin-top: 10vh; }
.letranger-reading-final p { margin: 0 0 2em; }
.letranger-reading-final span { display: block; }
.letranger-reading-close {
  position: absolute;
  z-index: 3;
  top: 27px;
  right: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-family: "Inter", sans-serif;
  font-size: 9px;
  font-weight: 400;
  letter-spacing: .025em;
  text-transform: uppercase;
  cursor: pointer;
  opacity: .62;
}
body.letranger-reading-open { overflow: hidden; }
.letranger-sequence {
  width: min(84vw, 1440px);
  margin-right: auto;
  margin-left: auto;
  margin-top: calc(-50vh + 205px);
  margin-top: calc(-50svh + 205px);
  padding: 0 0 24vh;
}
.letranger-exhibition { width: 100%; }
.letranger-wall { column-count: 4; column-gap: 18px; }
.letranger-frame {
  display: inline-block;
  width: 100%;
  margin: 0 0 18px;
  break-inside: avoid;
  vertical-align: top;
  cursor: zoom-in;
}
.letranger-frame + .letranger-frame { margin-top: 0; }
.letranger-frame img { display: block; width: 100%; height: auto; }
.letranger-lightbox {
  position: fixed;
  z-index: 60;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  visibility: hidden;
  opacity: 0;
  background-color: var(--bg-letranger);
  background-image: var(--atmosphere-letranger);
  background-size: var(--atmosphere-letranger-size);
  transition: opacity 300ms ease, visibility 0s linear 300ms;
}
.letranger-lightbox.is-open { visibility: visible; opacity: 1; transition-delay: 0s; }
.letranger-lightbox img { display: block; width: auto; max-width: 88vw; height: auto; max-height: 86vh; object-fit: contain; }
.letranger-lightbox-close {
  position: absolute;
  top: 25px;
  right: 34px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #d4d6d3;
  font-family: "Inter", sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  opacity: .62;
}
body.letranger-lightbox-open { overflow: hidden; }
.project-page .project-header { position: fixed; z-index: 20; inset: 0 0 auto; transition: opacity 900ms ease; }
.project-page .project-header.is-idle { opacity: .24; }
.project-intro { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.project-intro-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; opacity: .46; filter: brightness(1.12) contrast(.78); -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 74%, transparent 100%); mask-image: linear-gradient(to bottom, #000 0%, #000 74%, transparent 100%); }
.project-title-group { position: relative; z-index: 1; text-align: center; }
.project-title-group h1 { margin: 0 0 26px; font-family: "Newsreader", Georgia, serif; font-size: 30px; font-weight: 400; letter-spacing: .01em; }
.project-title-group p { margin: 0 0 6px; font-family: "Inter", sans-serif; font-size: 10px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; }
.project-title-group .project-line { max-width: 520px; margin: 34px auto 0; font-family: "Newsreader", Georgia, serif; font-size: 16px; letter-spacing: 0; line-height: 1.6; text-transform: none; }
.project-sequence { padding: 24vh 0 12vh; overflow: hidden; }
.photo-moment { position: relative; }
.photo-moment + .photo-moment { margin-top: var(--moment-gap); }
.project-placeholder { display: block; background: #b9b8b3; }
.moment-large { width: 78vw; margin-left: 11vw; }
.horizontal-large { width: 100%; aspect-ratio: 1.55 / 1; }
.moment-pair { display: flex; align-items: center; }
.moment-pair--first { width: 76vw; margin-left: 7vw; gap: 11vw; --moment-gap: 38vh; }
.pair-vertical { width: 25vw; aspect-ratio: .72 / 1; background: #aaa9a5; }
.pair-horizontal { width: 40vw; aspect-ratio: 1.42 / 1; background: #cac9c4; }
.moment-small { width: 23vw; margin-left: 58vw; --moment-gap: 49vh; }
.vertical-small { width: 100%; aspect-ratio: .68 / 1; background: #aeadA8; }
.moment-wide { width: 66vw; margin-left: 4vw; --moment-gap: 55vh; }
.horizontal-wide { width: 100%; aspect-ratio: 2.05 / 1; background: #c4c3be; }
.moment-pair--second { width: 73vw; margin-left: 18vw; gap: 14vw; align-items: flex-end; --moment-gap: 46vh; }
.pair-square { width: 27vw; aspect-ratio: 1 / 1; background: #b3b2ad; }
.pair-tall { width: 19vw; aspect-ratio: .62 / 1; background: #cccbc6; }
.moment-final { width: 84vw; margin-left: 8vw; --moment-gap: 57vh; }
.horizontal-final { width: 100%; aspect-ratio: 1.48 / 1; background: #adaca7; }
.project-text-toggle { display: inline-block; margin-top: 24px; font-family: "Inter", sans-serif; font-size: 9px; letter-spacing: .025em; text-transform: uppercase; transition: opacity 180ms ease; }
.project-text-toggle:hover { opacity: .5; }
.project-page .project-title-group .project-reading-trigger {
  position: relative;
  font-weight: 500;
  letter-spacing: .08em;
  opacity: .85;
}
.project-page .project-title-group .project-reading-trigger:hover,
.project-page .project-title-group .project-reading-trigger:focus-visible { opacity: 1; }
.project-page:not(.letranger-page) .project-reading-trigger::after,
.project-intro-guide::after {
  content: "";
  position: absolute;
  top: calc(100% + 18px);
  left: 50%;
  width: 1px;
  height: clamp(64px, 8vh, 88px);
  background: currentColor;
  opacity: .32;
  pointer-events: none;
}
.project-reading-trigger[aria-expanded="true"]::after { visibility: hidden; }
@media (max-width: 700px) {
  .project-page:not(.letranger-page) .project-reading-trigger::after,
  .project-intro-guide::after { top: calc(100% + 16px); height: clamp(32px, 6svh, 52px); }
}
.project-text { width: min(600px, 76vw); max-height: 0; margin-inline: auto; overflow: hidden; opacity: 0; transform: translateY(-5px); text-align: left; font-family: "Newsreader", Georgia, serif; font-size: 16px; line-height: 1.62; text-transform: none; transition: max-height 620ms ease, opacity 560ms ease, transform 620ms ease; }
.project-text.is-open { max-height: 260px; opacity: 1; transform: translateY(0); }
.project-text p { margin: 0; }
.project-text p { padding-top: 7vh; }
.project-text-section { width: min(600px, 76vw); margin: 28vh 0 26vh 14vw; text-align: left; }
.project-text-section .project-text-toggle { margin-top: 0; }
.project-text-section .project-text { width: 100%; margin-inline: 0; }
.project-pagination { display: flex; justify-content: space-between; padding: 0 34px 34px; font-family: "Inter", sans-serif; font-size: 10px; letter-spacing: .025em; text-transform: uppercase; }

/* CHAMBER */
.chamber-page {
  background-color: var(--bg-chamber);
  background-image: var(--atmosphere-chamber);
  background-size: var(--atmosphere-chamber-size);
  color: #d8d2c6;
}
.chamber-intro { min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; padding-top: 9vh; }
.chamber-intro .project-title-group h1 { margin-bottom: 28px; }
.chamber-text-trigger { margin: 36px 0 0; padding: 0; border: 0; background: transparent; color: inherit; font-family: "Inter", sans-serif; font-size: 9px; font-weight: 400; letter-spacing: .025em; text-transform: uppercase; opacity: .38; }
.chamber-sequence { display: block; padding: 23vh 0 28vh; overflow: hidden; }
.chamber-moment { width: 41vw; margin: 0 auto; }
.chamber-moment + .chamber-moment { margin-top: 33vh; }
.chamber-moment:nth-child(2) { width: 27vw; margin-right: 19vw; margin-left: auto; }
.chamber-moment:nth-child(3) { width: 37.5vw; margin-left: 18vw; }
.chamber-moment:nth-child(4) { width: 28vw; }
.chamber-moment:nth-child(5) { width: 43vw; margin-right: 18vw; margin-left: auto; }
.chamber-moment:nth-child(6) { width: 24.5vw; margin-left: 22vw; }
.chamber-moment:nth-child(7) { width: 46.5vw; }
.chamber-moment:nth-child(8) { width: 27vw; margin-right: 22vw; margin-left: auto; }
.chamber-moment:nth-child(9) { width: 23.5vw; }
.chamber-moment:nth-child(10) { width: 29vw; margin-left: 20vw; }
.chamber-moment:nth-child(11) { width: 49vw; }
.chamber-moment:nth-child(4), .chamber-moment:nth-child(8) { margin-top: 41vh; }
.chamber-moment:nth-child(6), .chamber-moment:nth-child(11) { margin-top: 27vh; }
.chamber-image-area { position: relative; isolation: isolate; display: block; min-height: 0; }
.chamber-image-area::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: -52%;
  right: -36%;
  bottom: -42%;
  left: -36%;
  pointer-events: none;
  background: radial-gradient(ellipse at 50% 34%, rgba(24, 70, 65, .38) 0%, rgba(14, 45, 42, .2) 39%, rgba(7, 19, 18, 0) 78%);
  opacity: .025;
  transform: scale(.92);
  transition: opacity 1.6s cubic-bezier(.22, .61, .36, 1), transform 1.6s cubic-bezier(.22, .61, .36, 1);
}
.chamber-photo {
  display: block;
  width: 100%;
  max-width: none;
  height: auto;
  max-height: none;
  cursor: zoom-in;
  opacity: 1;
  filter: brightness(.44) contrast(1);
  transition: filter 1.6s cubic-bezier(.22, .61, .36, 1);
}
.chamber-image-area:hover .chamber-photo {
  filter: brightness(1) contrast(1);
}
.chamber-image-area:hover::before {
  opacity: .34;
  transform: scale(1);
}
.chamber-lightbox { position: fixed; z-index: 60; inset: 0; display: flex; align-items: center; justify-content: center; visibility: hidden; opacity: 0; background-color: var(--bg-chamber); background-image: var(--atmosphere-chamber); background-size: var(--atmosphere-chamber-size); transition: opacity 300ms ease, visibility 0s linear 300ms; }
.chamber-lightbox.is-open { visibility: visible; opacity: 1; transition-delay: 0s; }
.chamber-lightbox img { display: block; width: auto; max-width: 88vw; height: auto; max-height: 86vh; object-fit: contain; }
.chamber-lightbox-close { position: absolute; top: 25px; right: 34px; padding: 0; border: 0; background: transparent; color: #d7d3c9; font-family: "Inter", sans-serif; font-size: 14px; cursor: pointer; opacity: .62; }
body.chamber-lightbox-open { overflow: hidden; }

@media (max-width: 700px) {
  :root { --mobile-photo-gap: 48px; --mobile-tableau-gap: 24px; --mobile-episode-photo-gap: 24px; --mobile-grid-gap: 14px; }
  .home-page .site-header--entrance .site-nav { top: 22px; }
  .home-works { padding: 28vh 0 24vh; }
  .home-work--theoria { width: 91vw; margin-left: 0; }
  .home-work--etranger { width: 58vw; margin-left: 36vw; --home-gap: 27vh; }
  .home-work--darkness { width: 86vw; margin-left: 6vw; --home-gap: 32vh; }
  .home-work--darkness h2 { position: static; margin-top: 11px; }
  .work-index { min-height: calc(100vh - 64px); padding: 18vh 18px 22vh; }
  .work-list { position: static; width: 100%; height: auto; }
  .work-row { position: static; display: block; width: 100%; padding: 15px 0; opacity: 1; font-size: 17px; }
  .work-row:hover, .work-row:focus-visible { transform: none; }
  .work-preview { display: none; }
  .work-active-line { display: none; }
  .contact-overlay { padding: 18px; }
  .contact-close { top: 21px; right: 18px; }
  .books-main { padding: 13vh 18px 22vh; }
  .books-main > h1 { margin-bottom: 16vh; }
  .book-entry { width: 92vw; margin-left: 0; }
  .book-image:hover { transform: none; }
  .letranger-book-overview {
    display: block;
    width: 100%;
  }
  .letranger-book-cover { width: 100%; }
  .letranger-book-information { width: 100%; margin-top: 64px; }
  .letranger-book-information h2 { margin-bottom: 40px; font-size: 23px; }
  .letranger-book-colophon > div { grid-template-columns: 104px minmax(0, 1fr); column-gap: 18px; }
  .letranger-book-spreads { margin-top: 22vh; }
  .letranger-book-spreads > h2 { width: 100%; margin-bottom: 14vh; }
  .letranger-book-spreads figure { width: 100%; }
  .letranger-book-spreads figure + figure { margin-top: 18vh; }
  .publication-main { padding: 14vh 18px 24vh; }
  .publication-heading { margin-left: 0; }
  .publication-heading h1 { font-size: 24px; }
  .publication-images { margin-top: 18vh; }
  .publication-placeholder--cover { width: 88vw; margin-left: 0; }
  .publication-placeholder--spread { width: 94vw; margin-top: 23vh; }
  .project-page .project-header { position: absolute; }
  .project-page .project-header.is-idle { opacity: 1; }
  .project-title-group h1 { font-size: 27px; }
  .project-sequence { padding-top: 18vh; }
  .moment-large { width: 94vw; margin-left: 3vw; }
  .moment-pair { display: block; }
  .moment-pair--first { width: auto; margin-left: 0; --moment-gap: 27vh; }
  .pair-vertical { width: 62vw; margin-left: 8vw; }
  .pair-horizontal { width: 86vw; margin: 18vh 0 0 14vw; }
  .moment-small { width: 53vw; margin-left: 38vw; --moment-gap: 30vh; }
  .moment-wide { width: 92vw; margin-left: 0; --moment-gap: 34vh; }
  .moment-pair--second { width: auto; margin-left: 0; --moment-gap: 31vh; }
  .pair-square { width: 72vw; margin-left: 3vw; }
  .pair-tall { width: 48vw; margin: 19vh 0 0 47vw; }
  .moment-final { width: 96vw; margin-left: 4vw; --moment-gap: 35vh; }
  .project-text { width: 82vw; font-size: 15px; }
  .project-text p { padding-top: 5vh; }
  .project-text-section { width: 82vw; margin: 22vh 18px 21vh; }
  .project-pagination { padding: 0 18px 24px; }
  .chamber-intro { padding-top: 6vh; }
  .chamber-sequence { padding: 18vh 0 23vh; }
  .chamber-moment,
  .chamber-moment:nth-child(3),
  .chamber-moment:nth-child(5),
  .chamber-moment:nth-child(7),
  .chamber-moment:nth-child(11) { width: 92vw; margin-right: auto; margin-left: auto; }
  .chamber-moment:nth-child(2),
  .chamber-moment:nth-child(4),
  .chamber-moment:nth-child(6),
  .chamber-moment:nth-child(8),
  .chamber-moment:nth-child(9),
  .chamber-moment:nth-child(10) { width: 65vw; margin-right: auto; margin-left: auto; }
  .chamber-moment:nth-child(3), .chamber-moment:nth-child(10) { margin-left: 8vw; }
  .chamber-moment:nth-child(2), .chamber-moment:nth-child(8) { margin-right: 8vw; margin-left: auto; }
  .chamber-moment + .chamber-moment,
  .chamber-moment:nth-child(4),
  .chamber-moment:nth-child(6),
  .chamber-moment:nth-child(8),
  .chamber-moment:nth-child(11) { margin-top: var(--mobile-photo-gap); }
  .chamber-lightbox img { max-width: 90vw; max-height: 82vh; }
  .chamber-lightbox-close { top: 21px; right: 18px; }
  .edaduas-sequence { padding: 2vh 0 20vh; }
  .edaduas-moment { min-height: 0; padding: 0 18px; }
  .edaduas-moment + .edaduas-moment { margin-top: var(--mobile-photo-gap); }
  .edaduas-moment img { max-width: 94vw; max-height: 72vh; }
  .graveyard-sequence { width: calc(100vw - 36px); padding: 3vh 0 22vh; }
  .graveyard-cluster { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 10px; row-gap: 10px; align-items: end; }
  .graveyard-cluster + .graveyard-cluster { margin-top: 24vh; }
  .graveyard-cluster .graveyard-presence:nth-child(n) { grid-column: auto; width: 100%; justify-self: auto; align-self: end; }
  .unnamed-darkness-sequence { padding: 1vh 0 18vh; }
  .unnamed-darkness-moment { min-height: 0; padding: 0 18px; }
  .unnamed-darkness-moment + .unnamed-darkness-moment { margin-top: var(--mobile-photo-gap); }
  .unnamed-darkness-moment img { max-width: 92vw; max-height: 70vh; }
  .unnamed-darkness-moment img:not([src$="unnmaed1.jpg"]):not([src$="unnmaed16.jpg"]):not([src$="unnmaed17.jpg"]) { max-width: 80vw; }
  .noonday-sequence { width: calc(100vw - 36px); padding: 14vh 0 24vh; gap: 2px; }
  .letranger-sequence { width: 90vw; margin-top: calc(-50vh + 176px); margin-top: calc(-50svh + 176px); padding: 0 0 20vh; }
  .letranger-wall { column-count: 2; column-gap: var(--mobile-grid-gap); }
  .letranger-frame,
  .letranger-frame:nth-child(n),
  .letranger-frame.letranger-frame--portrait { display: block; width: 100%; margin: 0 0 var(--mobile-grid-gap); }
  .letranger-lightbox img { max-width: 90vw; max-height: 82vh; }
  .letranger-lightbox-close { top: 21px; right: 18px; }
  .letranger-reading-panel { width: min(92vw, 620px); }
  .letranger-reading-inner { width: auto; margin: 0; padding: 14vh 9vw 16vh; }
  .letranger-reading-inner h2 { margin-bottom: 8vh; font-size: 22px; }
  .letranger-reading-copy { font-size: 15px; line-height: 1.65; }
  .letranger-reading-close { top: 21px; right: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .entrance-image { animation: none; opacity: .94; }
  .site-header--entrance { animation: none; opacity: 1; }
  .contact-overlay { transition-duration: 0s; }
  .home-title, .home-title-letter { animation: none; }
  .work-page::before, .work-page::after { transition-duration: 0s; }
  .work-page { transition-duration: 0s; }
  .work-atmosphere-edaduas { transition-duration: 0s; }
  .work-atmosphere-letranger { transition-duration: 0s; }
  .work-atmosphere-graveyard { transition-duration: 0s; }
  .work-atmosphere-unnamed-darkness { transition-duration: 0s; }
  .work-atmosphere-noonday { transition-duration: 0s; }
}

@media (max-width: 480px) {
  :root { --mobile-photo-gap: 80px; --mobile-episode-photo-gap: 48px; }
  .letranger-wall { column-count: 1; }
  .letranger-wall .letranger-frame:nth-child(n) { margin-bottom: var(--mobile-photo-gap); }
}
