:root {
  --paper: #efe6d4;
  --paper-pale: #f8f3e8;
  --ink: #1e2422;
  --muted: #66675f;
  --brick: #a6422f;
  --brick-dark: #713025;
  --green: #496c5a;
  --graphite: #171b1a;
  --line: rgba(30, 36, 34, .22);
  --serif: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color-scheme: light;
  font-family: var(--sans);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-size: 16px; line-height: 1.6; }
img { display: block; max-width: 100%; height: auto; }
a { color: inherit; text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover { text-decoration-color: var(--brick); }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #e9a65f; outline-offset: 4px; }
.skip-link { position: fixed; z-index: 100; top: .8rem; left: .8rem; padding: .7rem 1rem; background: #fff; color: #111; transform: translateY(-180%); }
.skip-link:focus { transform: none; }

.site-head { min-height: 88px; display: grid; grid-template-columns: minmax(210px, 1fr) auto minmax(190px, 1fr); align-items: center; gap: 2rem; padding: 1rem clamp(1rem, 4vw, 4.5rem); border-bottom: 1px solid var(--line); background: rgba(239, 230, 212, .94); backdrop-filter: blur(12px); position: relative; z-index: 10; }
.brand { display: inline-flex; align-items: center; gap: .75rem; width: max-content; text-decoration: none; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid currentColor; font-weight: 900; font-size: .7rem; letter-spacing: .08em; transform: rotate(-3deg); }
.brand strong, .brand small { display: block; }
.brand strong { font-size: .82rem; letter-spacing: .12em; text-transform: uppercase; }
.brand small { color: var(--muted); font-family: var(--serif); font-style: italic; }
.room-nav { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 2rem); }
.room-nav a { position: relative; text-decoration: none; font-size: .76rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.room-nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.5rem; height: 2px; background: var(--brick); transition: right .2s ease; }
.room-nav a:hover::after, .room-nav a[aria-current="page"]::after { right: 0; }
.trace { justify-self: end; margin: 0; color: var(--muted); font-family: var(--serif); font-size: .85rem; font-style: italic; }

.home-hero { min-height: min(820px, calc(100vh - 88px)); display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); position: relative; overflow: hidden; border-bottom: 1px solid var(--line); }
.home-hero::before { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(30,36,34,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(30,36,34,.055) 1px, transparent 1px); background-size: 44px 44px; mask-image: linear-gradient(to right, #000, transparent 70%); }
.hero-copy { align-self: center; padding: clamp(4rem, 9vw, 9rem) clamp(1.2rem, 7vw, 8rem); position: relative; z-index: 2; }
.overline, .room-code, .work-kind { margin: 0 0 1.2rem; font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.hero-copy h1 { max-width: 960px; margin: 0; font-family: var(--serif); font-size: clamp(3.5rem, 8vw, 8.6rem); line-height: .84; letter-spacing: -.065em; font-weight: 400; }
.hero-copy h1::first-letter { color: var(--brick); }
.hero-lead { max-width: 690px; margin: 2.4rem 0; font-size: clamp(1rem, 1.5vw, 1.28rem); }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.5rem; }
.button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: .8rem 1.25rem; border: 1px solid currentColor; text-decoration: none; font-size: .76rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.button-hot { background: var(--brick); color: #fff8ee; border-color: var(--brick); box-shadow: 7px 7px 0 var(--ink); }
.button-hot:hover { background: var(--brick-dark); transform: translate(2px, 2px); box-shadow: 5px 5px 0 var(--ink); }
.text-link { font-weight: 780; }
.hero-bench { position: relative; min-height: 600px; align-self: stretch; background: var(--graphite); overflow: hidden; }
.hero-bench img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 14%; filter: saturate(.78) contrast(1.04); }
.hero-bench::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, rgba(15,17,16,.62)); pointer-events: none; }
.bench-label { position: absolute; z-index: 2; padding: .4rem .6rem; background: var(--paper-pale); color: var(--ink); font-size: .61rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.label-a { top: 7%; left: -3rem; transform: rotate(-90deg); }
.label-b { right: 1.2rem; bottom: 1.2rem; }
.bench-cut { position: absolute; z-index: 3; top: 22%; left: -22px; width: 44px; height: 44px; border-radius: 50%; background: var(--paper); }
.margin-note { position: absolute; z-index: 3; right: clamp(1rem, 4vw, 4rem); bottom: 4.25rem; max-width: calc(100% - 2rem); margin: 0; color: #fff; font-family: var(--serif); font-style: italic; font-size: .82rem; text-align: right; }

/* Sur les écrans larges mais peu hauts, garder l’introduction entière dans le premier regard. */
@media (min-width: 781px) and (max-height: 1050px) {
  .hero-copy { padding-top: clamp(2.5rem, 6vh, 4rem); padding-bottom: clamp(2.5rem, 6vh, 4rem); }
  .hero-copy h1 { font-size: clamp(3.5rem, min(7.2vw, 13.5vh), 7.8rem); }
  .hero-lead { margin-top: 1.5rem; margin-bottom: 1.5rem; }
}

.table-section, .doors { padding: clamp(4rem, 9vw, 9rem) clamp(1rem, 5vw, 5rem); }
.section-intro { display: grid; grid-template-columns: 70px 1fr; gap: 1.2rem; max-width: 1350px; margin: 0 auto 3rem; }
.section-intro h2 { max-width: 800px; margin: 0; font-family: var(--serif); font-size: clamp(2.4rem, 5vw, 5rem); line-height: .95; letter-spacing: -.04em; font-weight: 400; }
.index-number { margin: .2rem 0 0; font: 700 1rem/1 var(--sans); color: var(--brick); }
.table-grid { display: grid; grid-template-columns: 1.25fr .85fr .7fr; max-width: 1350px; margin: auto; border: 1px solid var(--ink); box-shadow: 14px 14px 0 rgba(30,36,34,.13); }
.feature { min-height: 490px; display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 3rem); border-right: 1px solid var(--ink); }
.feature:last-child { border-right: 0; }
.feature-meta { display: flex; justify-content: space-between; gap: 1rem; padding-bottom: .75rem; border-bottom: 1px solid currentColor; font-size: .62rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.feature h3 { margin: auto 0 1rem; font: 400 clamp(2.3rem, 4vw, 4.6rem)/.92 var(--serif); letter-spacing: -.04em; }
.feature p { max-width: 36rem; }
.feature a { margin-top: 1.4rem; font-weight: 800; }
.feature-machine { background: #d9d4bf; }
.feature-compromise { background: var(--graphite); color: #ece6d8; }
.feature-portrait { background: var(--brick); color: #fff5e7; }
.feature-side { background: #486d79; color: #fff8eb; }
.feature-constraint { background: #f0b64b; color: #171a19; }
.feature-radio { background: #28352f; color: #f2eadb; }
.feature-matter { background: #c8d7c8; color: #17201c; }
.feature-rhythm { background: #e7b94b; color: #171b1a; }
.feature-bridge { background: #d9d5ca; color: #17201c; }
.feature-essay { background: var(--brick); color: #fff7ea; }
.feature-stereo { background: #17201e; color: #f5efe3; }
.feature-time { background: #dfaa45; color: #17201c; }
.feature-object { background: #d8d2c6; color: #17201c; }
.stereo-thumb { height: 150px; margin: 1.25rem 0; overflow: hidden; border: 1px solid rgba(255,255,255,.45); }
.stereo-thumb img { width: 100%; height: 100%; object-fit: cover; }
.time-thumb { height: 150px; margin: 1.25rem 0; overflow: hidden; border: 1px solid currentColor; background: #ece5d8; }
.time-thumb img { width: 100%; height: 100%; object-fit: cover; }
.feature-image { height: 150px; margin: 1.25rem 0; overflow: hidden; border: 1px solid currentColor; }
.feature-image img { width: 100%; height: 100%; object-fit: cover; object-position: center 47%; }
.essay-lines { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: auto; padding-top: 2rem; }
.essay-lines i { padding: .65rem .3rem; border: 1px solid currentColor; border-right: 0; font-size: .58rem; font-style: normal; font-weight: 850; text-align: center; text-transform: uppercase; }
.essay-lines i:last-child { border-right: 1px solid currentColor; }
.signal-strip { display: flex; align-items: center; gap: .35rem; height: 62px; margin-top: auto; padding-top: 1.2rem; }
.signal-strip i { display: block; width: 7px; height: 18px; background: #d8c55e; }
.signal-strip i:nth-child(2), .signal-strip i:nth-child(8) { height: 30px; }
.signal-strip i:nth-child(3), .signal-strip i:nth-child(7) { height: 45px; }
.signal-strip i:nth-child(4), .signal-strip i:nth-child(6) { height: 25px; }
.signal-strip i:nth-child(5) { height: 54px; background: #e76244; }
.bridge-strip { display: grid; grid-template-columns: repeat(7, 1fr); margin-top: auto; padding-top: 2rem; }
.bridge-strip i { height: 45px; border-top: 9px solid #273432; border-right: 2px solid #405d66; }
.bridge-strip i:first-child { border-left: 2px solid #405d66; }
.machine-diagram { display: flex; align-items: center; gap: .65rem; height: 60px; margin-top: 1.2rem; }
.machine-diagram i, .machine-diagram strong { width: 25px; height: 25px; border: 2px solid currentColor; display: block; }
.machine-diagram i:nth-child(2) { border-radius: 50%; }
.machine-diagram strong { width: 42px; height: 42px; }
.lever-row { display: flex; align-items: end; gap: 1rem; height: 80px; margin-top: 1rem; }
.lever-row i { width: 18px; height: var(--h); background: #d99b52; border: 1px solid #fff; }
.beat-strip { display: grid; grid-template-columns: repeat(8, 1fr); gap: .35rem; height: 54px; align-items: end; margin-top: 1rem; }
.beat-strip i { display: block; height: 22px; border: 1px solid currentColor; background: transparent; }
.beat-strip i:nth-child(1), .beat-strip i:nth-child(3), .beat-strip i:nth-child(5), .beat-strip i:nth-child(8) { height: 46px; background: #e2553f; }

.doors { background: #d8d2c6; }
.door-grid { max-width: 1350px; margin: auto; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--ink); border: 1px solid var(--ink); }
.door { min-height: 410px; display: flex; flex-direction: column; padding: 2rem; background: var(--paper-pale); text-decoration: none; transition: transform .18s ease, background .18s ease; }
.door:hover { position: relative; transform: translateY(-9px); }
.door span { font-size: .62rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.door h3 { margin: auto 0 1rem; font: 400 clamp(2.2rem, 4vw, 4.2rem)/.9 var(--serif); }
.door b { margin-top: 1.5rem; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; }
.door-works:hover { background: #efe1c8; }
.door-lab { background: var(--graphite); color: #f0e9db; }
.door-lab:hover { background: #25302d; }
.door-portraits:hover { background: #dedbd5; }
.door-eve { background: var(--brick); color: #fff4e7; }
.door-eve:hover { background: var(--brick-dark); }
.wall-note { max-width: 900px; margin: clamp(4rem, 9vw, 9rem) auto; padding: 2rem 2.5rem; background: #f8f0cf; border: 1px solid #aca47b; transform: rotate(-1deg); box-shadow: 8px 10px 20px rgba(35,36,30,.12); }
.wall-note > p { margin: 0; font-size: .65rem; font-weight: 850; text-transform: uppercase; letter-spacing: .14em; }
.wall-note blockquote { margin: 1rem 0 0; font: italic clamp(1.5rem, 3vw, 2.6rem)/1.2 var(--serif); }

.site-foot { display: flex; justify-content: space-between; align-items: center; gap: 2rem; padding: 2rem clamp(1rem, 5vw, 5rem); border-top: 1px solid var(--line); font-size: .76rem; }
.site-foot nav { display: flex; flex-wrap: wrap; gap: 1.5rem; }

.room-hero { display: grid; grid-template-columns: 1.35fr .65fr; gap: clamp(2rem, 8vw, 9rem); padding: clamp(5rem, 10vw, 10rem) clamp(1rem, 6vw, 7rem); border-bottom: 1px solid var(--line); }
.room-hero h1 { max-width: 900px; margin: 0; font: 400 clamp(3.4rem, 7vw, 7.4rem)/.88 var(--serif); letter-spacing: -.055em; }
.room-hero > p { align-self: end; max-width: 520px; margin: 0; font-size: 1.08rem; }
.room-code { color: var(--brick); }

.work-ledger { max-width: 1400px; margin: 0 auto; padding: clamp(3rem, 7vw, 8rem) clamp(1rem, 4vw, 3rem); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--ink); }
.ledger-card { min-height: 390px; display: flex; flex-direction: column; padding: clamp(1.5rem, 3vw, 2.8rem); background: var(--paper-pale); }
.ledger-card h2 { margin: auto 0 1rem; font: 400 clamp(2rem, 3.4vw, 3.6rem)/.96 var(--serif); letter-spacing: -.035em; }
.ledger-card a { margin-top: 1rem; font-weight: 800; }
.ledger-main { grid-column: span 2; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.ledger-main h2 { margin-top: 4rem; }
.ledger-image { overflow: hidden; margin: -1.2rem; }
.ledger-image img { width: 100%; height: 100%; object-fit: cover; }
.ledger-image.small { height: 180px; margin-bottom: 1.5rem; }
.ledger-card.accent { background: var(--brick); color: #fff4e6; }
.ledger-card.dark { background: #182338; color: #f2eade; }
.ledger-card.blue { background: #315d78; color: #f0f5f5; }
.ledger-card.constraint { background: #f0b64b; color: #171a19; }
.ledger-card.radio { background: #28352f; color: #f2eadb; }
.ledger-card.matter { background: #c8d7c8; color: #17201c; }
.ledger-card.rhythm { background: #e7b94b; color: #171b1a; }
.ledger-card.bridge { background: #d9d5ca; color: #17201c; }
.ledger-card.essay { background: var(--brick); color: #fff7ea; }
.ledger-card.stereo { background: #17201e; color: #f5efe3; }
.ledger-card.time { background: #dfaa45; color: #17201c; }
.catalog-link { text-align: center; margin: 0 0 clamp(4rem, 9vw, 9rem); }

.room-lab { background: var(--graphite); color: #eee7da; color-scheme: dark; }
.room-lab .site-head { background: rgba(23,27,26,.95); border-color: rgba(255,255,255,.18); }
.room-lab .brand small, .room-lab .trace { color: #b9b4aa; }
.room-lab .room-code { color: #d7965d; }
.lab-hero { border-color: rgba(255,255,255,.18); background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 40px 40px; }
.lab-console { max-width: 1400px; margin: clamp(4rem, 8vw, 8rem) auto; border: 1px solid rgba(255,255,255,.34); }
.console-head { display: flex; justify-content: space-between; padding: .8rem 1rem; background: #d99b52; color: #171b1a; font-size: .65rem; font-weight: 850; letter-spacing: .1em; }
.lab-console > h2 { max-width: 800px; margin: 0; padding: clamp(2rem, 5vw, 5rem); font: 400 clamp(2.5rem, 5vw, 5.5rem)/.95 var(--serif); }
.console-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(255,255,255,.34); }
.console-grid article { min-height: 330px; display: flex; flex-direction: column; padding: 2rem; border-right: 1px solid rgba(255,255,255,.34); }
.console-grid article:last-child { border-right: 0; }
.console-grid span { color: #d99b52; font-weight: 850; }
.console-grid h3 { margin: auto 0 1rem; font: 400 2.8rem/1 var(--serif); }
.console-grid a { margin-top: 1rem; color: #f0b77b; font-weight: 800; }
.threshold-seuil { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 7vw, 8rem); padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 6vw, 7rem); background: #e7dfd0; color: var(--ink); }
.seuil-copy h2 { margin: 0 0 2rem; font: 400 clamp(2.8rem, 5vw, 5.4rem)/.92 var(--serif); }
.button-light { background: #f3eadb; color: #171b1a; box-shadow: 6px 6px 0 #d7965d; }
.seuil-map { display: grid; border: 1px solid var(--ink); }
.seuil-map a { display: grid; grid-template-columns: 45px 1fr; gap: .2rem 1rem; padding: 1.3rem; border-bottom: 1px solid var(--ink); text-decoration: none; }
.seuil-map a:last-child { border-bottom: 0; }
.seuil-map a:hover { background: #d5cbb9; }
.seuil-map span { grid-row: span 2; color: var(--brick); font-weight: 900; }
.seuil-map b { font-family: var(--serif); font-size: 1.35rem; }
.seuil-map small { color: var(--muted); }
.lab-rule { max-width: 1100px; margin: clamp(4rem, 9vw, 9rem) auto; display: grid; grid-template-columns: 90px 1fr; gap: 2rem; padding: 0 1rem; }
.lab-rule .index-number { font-size: 4rem; color: #d99b52; }
.lab-rule h2 { margin: 0; font: 400 clamp(2.5rem, 5vw, 5rem)/.95 var(--serif); }

.room-portraits { background: #dedbd5; }
.portrait-stage { max-width: 1200px; display: grid; grid-template-columns: minmax(300px, .8fr) 1fr; gap: clamp(2rem, 8vw, 8rem); align-items: center; margin: clamp(4rem, 9vw, 9rem) auto; padding: 0 1rem; }
.portrait-frame { position: relative; background: #232725; padding: 1rem; box-shadow: 16px 16px 0 #a6422f; }
.portrait-frame img { width: 100%; max-height: 760px; object-fit: cover; object-position: center 12%; }
.portrait-frame span { position: absolute; left: -1rem; bottom: 2rem; padding: .45rem .7rem; background: #f3ede1; font-size: .65rem; font-weight: 850; letter-spacing: .12em; }
.portrait-stage h2 { margin: 0 0 2rem; font: 400 clamp(3rem, 6vw, 6rem)/.9 var(--serif); }
.portrait-stage blockquote { margin: 2rem 0 0; padding-left: 1.4rem; border-left: 4px solid var(--brick); font: italic 1.3rem/1.4 var(--serif); }
.portrait-future { max-width: 1000px; display: grid; grid-template-columns: 220px 1fr; gap: 3rem; align-items: center; margin: 0 auto clamp(5rem, 10vw, 10rem); padding: 2rem; border-top: 1px solid var(--ink); }
.empty-frame { display: block; aspect-ratio: 3/4; border: 1px dashed var(--ink); background: repeating-linear-gradient(-45deg, transparent 0 12px, rgba(30,36,34,.05) 12px 13px); }
.portrait-future h2 { margin: 0; font: 400 clamp(2rem, 4vw, 4rem)/1 var(--serif); }

.room-eve { background: #f0e8da; }
.eve-opening { padding: clamp(5rem, 11vw, 11rem) clamp(1rem, 7vw, 8rem); }
.eve-opening h1 { max-width: 1300px; margin: 0; font: 400 clamp(3.4rem, 7.2vw, 8rem)/.9 var(--serif); letter-spacing: -.055em; }
.eve-opening h1 em { color: var(--brick); font-weight: 400; }
.eve-opening-copy { max-width: 680px; margin: 4rem 0 0 auto; font-size: 1.16rem; }
.eve-principles { display: grid; grid-template-columns: repeat(2, 1fr); max-width: 1350px; margin: 0 auto clamp(4rem, 9vw, 9rem); border: 1px solid var(--ink); }
.eve-principles article { min-height: 350px; padding: clamp(1.5rem, 4vw, 4rem); border-right: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.eve-principles article:nth-child(2n) { border-right: 0; }
.eve-principles article:nth-last-child(-n+2) { border-bottom: 0; }
.eve-principles span { color: var(--brick); font-weight: 900; }
.eve-principles h2 { margin: 4rem 0 1rem; font: 400 clamp(2.2rem, 4vw, 4.2rem)/.95 var(--serif); }
.complice { display: grid; grid-template-columns: .7fr 1fr; gap: 4rem; padding: clamp(4rem, 8vw, 8rem) clamp(1rem, 7vw, 8rem); background: var(--graphite); color: #eee6d8; }
.complice h2 { margin: 0; font: 400 clamp(3rem, 6vw, 6rem)/.9 var(--serif); }
.eve-signature { margin: clamp(4rem, 9vw, 9rem) clamp(1rem, 7vw, 8rem); font: italic clamp(4rem, 10vw, 11rem)/.8 var(--serif); color: var(--brick); }
.eve-signature span { display: block; margin-top: 1rem; color: var(--ink); font: 700 .8rem/1.4 var(--sans); letter-spacing: .1em; text-transform: uppercase; }

.room-index { background: #e9e4da; }
.index-hero { padding: clamp(5rem, 10vw, 10rem) clamp(1rem, 7vw, 8rem); }
.index-hero h1 { max-width: 1100px; margin: 0; font: 400 clamp(3.4rem, 7vw, 7.5rem)/.9 var(--serif); }
.index-hero > p:last-child { max-width: 620px; margin: 2rem 0 0 auto; font-size: 1.1rem; }
.index-block { display: grid; grid-template-columns: minmax(220px, .45fr) 1fr; gap: 3rem; padding: clamp(3rem, 6vw, 6rem) clamp(1rem, 7vw, 8rem); border-top: 1px solid var(--ink); }
.index-block-title { display: flex; gap: 1rem; }
.index-block-title span { color: var(--brick); font-weight: 900; }
.index-block-title h2 { margin: 0; font: 400 clamp(2.2rem, 4vw, 4rem)/.95 var(--serif); }
.index-list { display: grid; }
.index-list a { display: grid; grid-template-columns: 1fr auto; gap: 1rem; padding: 1.2rem 0; border-bottom: 1px solid rgba(30,36,34,.23); text-decoration: none; }
.index-list a:hover b { color: var(--brick); }
.index-list span { color: var(--muted); text-align: right; }
.index-explain { max-width: 600px; grid-column: 2; }
.moved .index-list { grid-column: 2; }

.transition-page { min-height: 100vh; display: grid; place-items: center; }
.transition { width: min(900px, calc(100% - 2rem)); padding: clamp(2rem, 7vw, 6rem); border: 1px solid rgba(255,255,255,.36); background: #202624; box-shadow: 14px 14px 0 #a6422f; }
.transition h1 { max-width: 760px; margin: 0 0 2rem; font: 400 clamp(3rem, 7vw, 6.5rem)/.9 var(--serif); }
.transition > p { max-width: 650px; }
.transition-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.5rem; margin: 2.5rem 0; }
.text-link.light { color: #f0b77b; }
.transition-home { margin-top: 4rem; font-size: .8rem; }

@media (max-width: 1020px) {
  .site-head { grid-template-columns: 1fr auto; }
  .trace { display: none; }
  .home-hero { grid-template-columns: 1fr .55fr; }
  .hero-copy { padding-left: 2rem; padding-right: 2rem; }
  .hero-copy h1 { font-size: clamp(3.4rem, 8vw, 6rem); }
  .table-grid { grid-template-columns: 1fr 1fr; }
  .feature:last-child { grid-column: span 2; min-height: 340px; border-top: 1px solid var(--ink); }
  .door-grid { grid-template-columns: 1fr 1fr; }
  .work-ledger { grid-template-columns: 1fr 1fr; }
  .ledger-main { grid-column: span 2; }
  .threshold-seuil { grid-template-columns: 1fr; }
}

@media (max-width: 740px) {
  .site-head { position: static; display: block; padding: .9rem 1rem; }
  .brand { margin-bottom: 1rem; }
  .room-nav { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; padding-top: .8rem; border-top: 1px solid var(--line); }
  .room-nav a { padding: .35rem 0; }
  .room-nav a::after { bottom: 0; }
  body { overflow-x: hidden; }
  .home-hero { min-height: 0; display: flex; flex-direction: column; }
  .hero-copy { order: 2; padding: 3.2rem 1rem 4rem; }
  .hero-copy h1 { font-size: clamp(3.1rem, 15vw, 5rem); }
  .hero-bench { order: 1; height: 430px; min-height: 0; }
  .bench-cut { display: none; }
  .margin-note { display: none; }
  .table-section, .doors { padding: 4rem 1rem; }
  .section-intro { grid-template-columns: 38px 1fr; }
  .table-grid, .door-grid, .work-ledger, .console-grid, .eve-principles { display: block; }
  .feature, .door, .ledger-card, .console-grid article, .eve-principles article { min-height: 330px; border-right: 0; border-bottom: 1px solid currentColor; }
  .feature:last-child, .door:last-child, .ledger-card:last-child, .console-grid article:last-child, .eve-principles article:last-child { border-bottom: 0; }
  .essay-lines { grid-template-columns: 1fr 1fr; }
  .essay-lines i:nth-child(2) { border-right: 1px solid currentColor; }
  .essay-lines i:nth-child(-n+2) { border-bottom: 0; }
  .door:hover { transform: none; }
  .wall-note { margin: 4rem 1rem; }
  .site-foot { display: block; }
  .site-foot nav { margin-top: 1rem; }
  .room-hero { display: block; padding: 4rem 1rem; }
  .room-hero h1 { max-width: 100%; font-size: clamp(2.7rem, 12vw, 4.6rem); overflow-wrap: anywhere; hyphens: auto; }
  .room-hero > p { margin-top: 2rem; }
  .work-ledger { padding: 0; margin: 3rem 1rem 5rem; border: 1px solid var(--ink); }
  .ledger-main { display: block; }
  .ledger-main .ledger-image { height: 250px; margin-bottom: 1.5rem; }
  .ledger-main h2 { margin-top: 2rem; }
  .lab-console { margin: 3rem 1rem; }
  .console-head { flex-wrap: wrap; gap: .35rem 1rem; }
  .threshold-seuil { padding: 4rem 1rem; }
  .lab-rule { grid-template-columns: 45px 1fr; margin: 4rem 1rem; }
  .portrait-stage, .portrait-future, .complice, .index-block { display: block; }
  .portrait-stage { margin: 4rem 1rem; }
  .portrait-stage article { margin-top: 3rem; }
  .portrait-future { margin: 4rem 1rem; }
  .empty-frame { width: 140px; margin-bottom: 2rem; }
  .eve-opening { padding: 4rem 1rem; }
  .eve-opening h1 { max-width: 100%; font-size: clamp(2.65rem, 11.5vw, 4.4rem); overflow-wrap: anywhere; hyphens: auto; }
  .eve-principles { margin: 0 1rem 4rem; }
  .complice { padding: 4rem 1rem; }
  .complice > div + div { margin-top: 2rem; }
  .eve-signature { margin: 4rem 1rem; }
  .index-hero { padding: 4rem 1rem; }
  .index-hero h1 { max-width: 100%; font-size: clamp(2.7rem, 12vw, 4.5rem); overflow-wrap: anywhere; hyphens: auto; }
  .index-block { padding: 3rem 1rem; }
  .index-list { margin-top: 2rem; }
  .index-list a { display: block; }
  .index-list span { display: block; margin-top: .35rem; text-align: left; }
  .index-explain, .moved .index-list { grid-column: auto; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
