/* Shared editorial threshold. No selector touches the approved mineral scene. */
:root {--tf-ivory:#f4f0e8;--tf-green:#073c31;--tf-orange:#f37021;--tf-ease:cubic-bezier(.2,.75,.2,1)}
.tf-reading .mobilier,.tf-reading .commandes {visibility:hidden;pointer-events:none}
.tf-reading .entete::before {content:'';position:absolute;inset:-30px -8vw;z-index:-1;background:linear-gradient(#000 25%,#000d 70%,transparent);pointer-events:none}
.tf-film {margin:80px auto 110px;width:calc(100% - 2 * var(--tc-gutter));max-width:1280px;background:#000;color:var(--tf-ivory)}
.tf-film video {width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border:1px solid #f4f0e81c}
.tf-film figcaption {display:flex;justify-content:space-between;gap:35px;padding:28px 0;border-bottom:1px solid #f4f0e826;align-items:end}
.tf-film-kicker {display:block;font:400 10px/1.7 var(--tc-sans);letter-spacing:.13em;text-transform:uppercase;color:var(--tf-orange);margin-bottom:10px}
.tf-film strong {display:block;font:300 clamp(30px,3.3vw,52px)/1.1 var(--tc-serif)}
.tf-film small {font:400 11px/1.7 var(--tc-sans);max-width:34ch;color:#c4ccc5}
@media(max-width:760px){.tf-film{margin-block:55px 75px}.tf-film figcaption{flex-direction:column;align-items:start;gap:18px}.tf-film small{max-width:40ch}}
body[data-terrae-type] .tf-foyer {position:relative;isolation:isolate;display:grid;grid-template-columns:1fr .9fr;gap:7vw;max-width:none;margin:0;padding:150px 7vw 170px;background:linear-gradient(160deg,#000 5%,#041c15 64%,#000);color:var(--tf-ivory)}
.tf-foyer .tf-foyer-copy {position:relative;z-index:2;max-width:600px}
body[data-terrae-type] .tf-foyer h2 {font:300 clamp(64px,6.8vw,110px)/.96 var(--tt-times);letter-spacing:-.045em;margin:38px 0;max-width:9ch}
body[data-terrae-type] .tf-foyer .chapo {font:300 clamp(23px,2vw,30px)/1.4 var(--tt-times);max-width:30ch}
.tf-foyer hr {margin:38px 0;border:0;border-top:1px solid #f4f0e830}
body[data-terrae-type] .tf-foyer .colonnes {display:block;max-width:48ch;font-size:15px;line-height:1.85;color:#d9ded4}
.tf-foyer .colonnes p+p {margin-top:22px}
.tf-link {display:flex;justify-content:space-between;align-items:center;gap:45px;width:fit-content;min-height:48px;margin-top:32px;border-bottom:1px solid #f37021;text-decoration:none;font-size:13px;letter-spacing:.08em}
.tf-link span:last-child {font-size:24px;transition:transform .6s var(--tf-ease)}
.tf-link:hover span:last-child {transform:translate(3px,-3px)}
.tf-archives {align-self:center;position:relative;margin:0;padding:9% 0 30%;perspective:1200px}
.tf-archive-main {padding:12px;background:#e9e0c9;border:1px solid #f4f0e838;transform:rotate(-4deg);box-shadow:0 40px 70px #0009}
.tf-archive-main img {width:100%;height:auto;display:block;aspect-ratio:1.08;object-fit:cover;object-position:49% 45%}
.tf-archive-detail {position:absolute;width:64%;right:-2%;bottom:10%;padding:9px;background:#e9e0c9;transform:rotate(5deg);box-shadow:0 24px 50px #000b}
.tf-archive-detail img {display:block;width:100%;height:auto;aspect-ratio:1.7;object-fit:cover;object-position:50% 91%}
.tf-archives figcaption {display:flex;justify-content:space-between;gap:15px;margin-top:34px;font-size:10px;letter-spacing:.13em;position:absolute;bottom:0;left:0;right:0;text-transform:uppercase;color:#d5dacf}
body[data-terrae-type] .tf-collection {max-width:none;margin:0;padding:120px 7vw 140px;background:#000;color:var(--tf-ivory);border-top:1px solid #f4f0e826}
.tf-collection .sur-titre {color:var(--tf-orange)}
body[data-terrae-type] .tf-collection h2 {font:300 clamp(48px,5.8vw,88px)/1.04 var(--tt-times);letter-spacing:-.035em;margin:26px 0}
.tf-collection .chapo {margin-bottom:70px}
.tf-collection .liste {counter-reset:chapter;display:grid;grid-template-columns:1fr 1fr;gap:0 7vw;padding:0}
.tf-collection .liste li {list-style:none;counter-increment:chapter;border-top:1px solid #f4f0e830;position:relative}
.tf-collection .liste a {display:grid;grid-template-columns:30px 1fr;column-gap:18px;row-gap:10px;padding:32px 0 36px;min-height:140px;text-decoration:none;background:none}
.tf-collection .liste a::before {content:counter(chapter,decimal-leading-zero);grid-column:1;grid-row:1/3;font:400 10px/1.5 var(--tt-flare);color:var(--tf-orange);padding-top:8px}
body[data-terrae-type] .tf-collection .liste span {grid-column:2;font:300 clamp(31px,3vw,49px)/1.1 var(--tt-times);transition:transform .7s var(--tf-ease)}
.tf-collection .liste em {grid-column:2;font:400 12px/1.6 var(--tt-flare);color:#c8cec8;font-style:normal}
.tf-collection .liste a:hover span {transform:translateX(6px)}
.tf-chapter {display:flex;align-items:center;gap:18px;position:relative;z-index:3;margin:0;padding:9px var(--tc-gutter);background:#000;color:#f4f0e8;border-bottom:1px solid #f4f0e81a;font:400 10px/1.5 var(--tc-sans);letter-spacing:.11em;text-transform:uppercase;min-height:46px}
.tf-chapter .tf-number {color:var(--tf-orange)}
.tf-chapter .tf-chapter-home {margin-left:auto;text-decoration:none;min-height:32px;display:flex;align-items:center;gap:8px}
.tf-chapter a:focus-visible {outline:1px solid var(--tf-orange);outline-offset:4px}
@media(max-width:760px){
 body[data-terrae-type] .tf-foyer {grid-template-columns:1fr;gap:55px;padding:95px 25px 85px}
 body[data-terrae-type] .tf-foyer h2 {font-size:70px}
 .tf-archives {margin:0 10px;padding-top:4%}
 .tf-archives figcaption {font-size:8px;letter-spacing:.08em}
 body[data-terrae-type] .tf-collection {padding:75px 25px 85px}
 .tf-collection .liste {grid-template-columns:1fr;gap:0}
 .tf-collection .liste a {min-height:114px;padding:26px 0}
 .tf-chapter {font-size:9px;gap:12px}
}
@media(prefers-reduced-motion:reduce),(prefers-contrast:more),(forced-colors:active){.tf-foyer *,.tf-collection *{animation:none!important;transition:none!important}.tf-collection .liste a:hover span,.tf-link:hover span:last-child{transform:none}}
@media(forced-colors:active){.tf-foyer,.tf-collection,.tf-chapter{background:Canvas!important;color:CanvasText!important}.tf-archives{display:none}}
/* Skip link: while the privacy proposal sits at the top (959 px and below), the #maison heading lands below it. */
@media(max-width:959px){html:has(.tc-privacy[data-entry-visible="true"]:not([hidden])) #maison{scroll-margin-top:140px}}
