/* PORTFOLIO OFFSET — styles modifiables. Variables ci-dessous = identité visuelle */
.drawing-layer { position:absolute; left:0; top:0; z-index:19; pointer-events:none; overflow:hidden; }
.drawing-toolbar { position:fixed; right:16px; bottom:16px; z-index:30; display:flex; align-items:center; gap:8px; padding:5px; background:var(--paper); color:var(--ink); border:1px solid var(--ink); box-shadow:3px 3px var(--accent); }
.drawing-toolbar button { display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px; border:0; background:transparent; color:inherit; cursor:pointer; font:700 10px var(--sans); }
.drawing-toolbar .drawing-toggle { width:44px; }
.drawing-toolbar .drawing-handle { justify-content:flex-start; gap:8px; border-bottom:1px solid var(--line); cursor:grab; touch-action:none; user-select:none; letter-spacing:.08em; }
.drawing-toolbar.is-moving .drawing-handle { cursor:grabbing; }
.drawing-toolbar button:hover,.drawing-toggle[aria-pressed="true"] { background:var(--accent); color:var(--accent-contrast); }
.drawing-toolbar button:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.drawing-toolbar button:disabled { opacity:.35; cursor:default; }
.drawing-actions { display:grid; gap:10px; width:210px; max-height:65vh; overflow-y:auto; padding:6px; font:10px var(--sans); }
.drawing-tools { display:flex; gap:6px; }
.drawing-tools button { flex:1; }
.drawing-tools button svg { flex-shrink:0; }
.drawing-tool-selector button { flex-direction:column; gap:6px; }
.drawing-toolbar [data-minimize] { gap:5px; }
.drawing-toolbar [data-tool][aria-pressed="true"] { background:var(--accent); color:var(--accent-contrast); }
.drawing-setting { display:grid; gap:5px; }
.drawing-setting[hidden] { display:none; }
.drawing-setting>span { display:flex; justify-content:space-between; align-items:center; }
.drawing-setting output { font-weight:700; }
.drawing-setting input { width:100%; min-height:28px; margin:0; accent-color:var(--accent); cursor:pointer; }
.drawing-eraser-cursor { position:fixed; z-index:31; pointer-events:none; border:1px solid #222; border-radius:50%; box-shadow:0 0 0 1px #fff; transform:translate(-50%,-50%); }
.drawing-eraser-cursor[hidden] { display:none; }
.drawing-actions[hidden] { display:none; }
.drawing-mode .site-wrap { touch-action:none; user-select:none; -webkit-user-select:none; cursor:crosshair; }
@media print { .drawing-layer,.drawing-toolbar,.drawing-eraser-cursor { display:none!important; } }
.brand .brand-accent { display:flex; flex-direction:column; gap:3px; color:var(--accent); font:700 11px/1.2 monospace; letter-spacing:.03em; white-space:nowrap; }
.brand-density { display:flex; flex:0 0 96px; height:16px; background:#fff; }
.brand-density i { flex:1; background:var(--accent); }
.brand-density i:nth-child(2) { opacity:.8; }
.brand-density i:nth-child(3) { opacity:.6; }
.brand-density i:nth-child(4) { opacity:.4; }
.brand-density i:nth-child(5) { opacity:.2; }
.brand-density i:nth-child(6) { opacity:0; }
.brand-accent a:hover { text-decoration:underline; text-underline-offset:3px; }
.brand-accent a:focus-visible,.brand-density:focus-visible { outline:2px solid var(--ink); outline-offset:4px; }
.drawing-section { padding:0 var(--pad) 65px; }
.drawing-section-heading { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:18px; margin-bottom:46px; }
.drawing-section-heading h2 { margin:0; font:700 12px var(--sans); letter-spacing:.06em; }
.drawing-section-heading h2 strong { font-weight:900; }
.drawing-section-heading p { margin:10px 0 0; font:14px var(--description-font,var(--sans)); }
#startDrawing { padding:12px 0; border:0; border-bottom:1px solid currentColor; background:none; color:var(--ink); font:700 11px var(--sans); cursor:pointer; }
#startDrawing:hover { color:var(--accent); }
.drawing-board { --board-height:clamp(280px,38vw,460px); position:relative; height:var(--board-height); margin:12px; background:radial-gradient(circle,var(--line) .65px,transparent .8px) 0 0 / 18px 18px; }
.drawing-board.is-expanded { height:calc(var(--board-height) * 2); }
.drawing-board .crop-mark.bl,.drawing-board .crop-mark.br { bottom:20px; }
.drawing-board .crop-mark.bl { left:20px; }
.drawing-board .crop-mark.br { right:20px; }
.drawing-section-heading h2 { display:flex; align-items:center; gap:12px; }
.drawing-board-actions { display:flex; flex-wrap:wrap; gap:12px; }
.drawing-board-actions button { padding:12px 0; border:0; border-bottom:1px solid currentColor; color:var(--ink); background:none; font:700 10px var(--sans); cursor:pointer; }
.drawing-board-actions button:hover { color:var(--accent); }
.drawing-board-actions button:disabled { opacity:.4; cursor:default; }
.drawing-export-status { font:12px/1.5 var(--sans); }
.drawing-mode #projectDialog { touch-action:none; user-select:none; cursor:crosshair; }
.drawing-board-label { position:absolute; right:12px; bottom:12px; padding:5px; background:var(--paper); color:var(--muted); font:9px var(--sans); letter-spacing:.08em; pointer-events:none; }
.drawing-board:focus-visible { outline:1px dashed var(--accent); outline-offset:6px; }
@media(max-width:600px) { .brand-density { flex-basis:66px; height:11px; } }
.hidden-duck { position:absolute; z-index:21; width:62px; height:62px; padding:0; border:0; background:none; cursor:grab; touch-action:none; user-select:none; -webkit-user-select:none; }
.hidden-duck img { display:block; width:100%; height:100%; object-fit:contain; pointer-events:none; }
.hidden-duck.is-dragging { cursor:grabbing; }
.hidden-duck:focus-visible { outline:2px dashed var(--ink); outline-offset:3px; border-radius:50%; }
@media(max-width:600px) { .hidden-duck { width:50px; height:50px; } }
.duck-quack { position:fixed; inset:0; z-index:22; display:grid; place-items:center; padding:20px; pointer-events:none; color:var(--accent); font-family:var(--title-font,var(--sans)); font-weight:800; font-style:italic; font-size:clamp(50px,17vw,260px); line-height:1; letter-spacing:-.06em; text-align:center; white-space:pre-line; text-shadow:7px 7px 0 #fff; }
@media print { .hidden-duck,.duck-quack { display:none!important; } }
:root { --paper:#f4f1e9; --ink:#1e211f; --muted:#5f635c; --line:#babbb0; --blue:#e05c56; --orange:#fb5935; --cyan:#00bec8; --magenta:#eb2e7a; --yellow:#ffdc35; --pad:clamp(20px,4vw,68px); --serif:Georgia,'Times New Roman',serif; --sans:Arial,Helvetica,sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); -webkit-font-smoothing:antialiased; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; z-index:20; opacity:.085; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 120 120' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.83' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.23'/%3E%3C/svg%3E"); }
::selection { background:var(--yellow); color:var(--ink); }
a { color:inherit; text-decoration:none; } button { font:inherit; } button, a { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
img { display:block; max-width:100%; }
.site-wrap { max-width:1920px; margin:auto; overflow:hidden; }
.skip-link { position:absolute; transform:translateY(-140%); z-index:100; background:white; padding:14px; }
.skip-link:focus { transform:none; }
.utility-line { padding:10px var(--pad); border-bottom:1px solid var(--ink); display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:10px; font-weight:700; letter-spacing:.1em; }
.muted-dot { color:var(--orange); padding:0 9px; }.micro-rule { display:inline-block; vertical-align:middle; width:16px; height:1px; background:var(--ink); margin:0 8px; }
.main-header { padding:27px var(--pad) 22px; display:flex; align-items:center; gap:30px; position:relative; }
.brand { display:flex; align-items:center; gap:12px; font-weight:900; font-size:15px; line-height:.96; letter-spacing:-.06em; }
.brand-icon { font-family:var(--serif); font-style:italic; display:block; position:relative; width:57px; height:52px; font-size:47px; letter-spacing:-.18em; line-height:1; }
.brand-icon span { color:var(--blue); }.brand-icon i { font-family:var(--sans); font-size:20px; color:var(--orange); font-style:normal; position:absolute; right:-1px; bottom:0; }
.brand-star { color:var(--orange); padding-left:2px; }
.main-nav { margin-left:auto; display:flex; align-items:center; gap:clamp(20px,3vw,55px); font-size:12px; font-weight:800; letter-spacing:.015em; }
.main-nav a { position:relative; }.main-nav a:hover::after { content:''; position:absolute; height:2px; background:var(--blue); left:0; right:0; bottom:-5px; }
.main-nav sup { color:var(--orange); font-size:9px; margin-left:4px; }.registration-logo { width:45px; height:45px; border-radius:50%; border:1px solid var(--ink); display:grid; place-items:center; margin-left:50px; position:relative; }
.registration-logo::before, .registration-logo::after { content:''; position:absolute; background:var(--ink); }.registration-logo::before { width:1px; height:58px; }.registration-logo::after { height:1px; width:58px; }.registration-logo span:first-child { width:23px; height:23px; border:1px solid var(--ink); border-radius:50%; }.registration-logo span:last-child { width:5px; height:5px; position:absolute; background:var(--ink); border-radius:50%; }.mobile-menu { display:none; }
.hero { display:grid; grid-template-columns:minmax(0,1.24fr) minmax(300px,.76fr); margin:26px var(--pad) 69px; min-height:570px; gap:clamp(22px,4vw,70px); }
.hero-copy { display:flex; flex-direction:column; justify-content:space-between; padding:26px 0 2px; min-width:0; }.eyebrow { font-size:10px; letter-spacing:.1em; font-weight:800; display:flex; align-items:center; gap:11px; white-space:nowrap; }.red-square { width:9px; height:9px; background:var(--orange); }.eyebrow .line { width:32px; height:1px; background:var(--ink); }
.hero h1 { font-size:clamp(76px,9.1vw,169px); font-weight:900; letter-spacing:-.095em; line-height:.85; margin:40px 0 60px; white-space:nowrap; }.hero h1 em { font-family:var(--serif); letter-spacing:-.11em; font-weight:400; font-style:italic; color:var(--blue); }.period { color:var(--orange); }.offset-word { display:inline-block; position:relative; }.offset-word::after { content:attr(data-text); color:var(--magenta); opacity:.8; position:absolute; top:2px; left:3px; mix-blend-mode:multiply; clip-path:inset(48% 0 0 0); pointer-events:none; }
.hero-bottom { display:flex; justify-content:space-between; align-items:end; gap:22px; }.hero-bottom p { max-width:330px; font-size:clamp(16px,1.5vw,20px); line-height:1.42; letter-spacing:-.025em; margin:0; }.round-link { flex:none; width:64px; height:64px; display:grid; place-items:center; border:1.5px solid var(--ink); border-radius:50%; font-size:34px; transition:transform .2s,color .2s,background .2s; }.round-link:hover { color:var(--paper); background:var(--ink); transform:rotate(45deg); }
.hero-poster { min-height:530px; background:#ebe4d3; border:1px solid var(--ink); position:relative; margin:10px 7px 10px 0; display:flex; flex-direction:column; padding:23px; isolation:isolate; }
.poster-top { display:flex; justify-content:space-between; gap:10px; font-size:10px; font-weight:800; letter-spacing:.05em; }.poster-art { flex:1; min-height:390px; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }.poster-art::before { content:''; position:absolute; inset:4% 2%; background-image:radial-gradient(#1e211f 1.1px, transparent 1.1px); background-size:6px 6px; mask-image:radial-gradient(ellipse at 50% 47%, #000 5%, transparent 70%); opacity:.62; }.shape { position:absolute; border-radius:50%; mix-blend-mode:multiply; opacity:.93; filter:contrast(1.3); }.shape-c { width:58%; aspect-ratio:1; background:var(--cyan); left:9%; top:15%; }.shape-m { width:57%; aspect-ratio:1; background:var(--magenta); right:7%; top:28%; }.shape-y { width:52%; aspect-ratio:1; background:var(--yellow); left:21%; top:43%; }.big-ring { width:56%; aspect-ratio:1; border:20px solid var(--ink); border-radius:50%; position:absolute; top:26%; left:26%; mix-blend-mode:overlay; transform:rotate(-15deg); }.tiny-register { position:absolute; font-size:45px; font-weight:100; line-height:1; z-index:2; }.register-a { top:8%; right:8%; }.register-b { bottom:5%; left:3%; }.screen-text { position:absolute; z-index:3; font-weight:900; letter-spacing:-.09em; font-size:clamp(60px,7.4vw,130px); line-height:.82; text-align:center; transform:rotate(-9deg); color:var(--ink); mix-blend-mode:color-burn; }
.poster-bottom { border-top:1px solid var(--ink); padding-top:13px; display:flex; gap:5px; font-size:11px; font-weight:900; }.poster-bottom>span:not(.poster-bottom-right) { width:23px; height:23px; text-align:center; line-height:23px; }.poster-bottom>span:nth-child(1) { background:var(--cyan); }.poster-bottom>span:nth-child(2) { background:var(--magenta); }.poster-bottom>span:nth-child(3) { background:var(--yellow); }.poster-bottom>span:nth-child(4) { background:var(--ink); color:white; }.poster-bottom-right { margin-left:auto; align-self:end; font-size:9px; letter-spacing:.08em; }/* Traits de coupe alignés aux bords, séparés du visuel par 10 px. */
.crop-mark { position:absolute; width:0; height:0; z-index:4; pointer-events:none; }
.crop-mark::before,.crop-mark::after { content:''; position:absolute; background:var(--ink); }
.crop-mark::before { width:16px; height:1px; top:0; }
.crop-mark::after { width:1px; height:16px; left:0; }
.crop-mark.tl { left:0; top:0; }
.crop-mark.tr { right:0; top:0; }
.crop-mark.bl { left:0; bottom:0; }
.crop-mark.br { right:0; bottom:0; }
.crop-mark.tl::before,.crop-mark.bl::before { right:10px; }
.crop-mark.tr::before,.crop-mark.br::before { left:10px; }
.crop-mark.tl::after,.crop-mark.tr::after { bottom:10px; }
.crop-mark.bl::after,.crop-mark.br::after { top:10px; }
.ticker { border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:13px 0 11px; overflow:hidden; white-space:nowrap; font-size:12px; font-weight:900; letter-spacing:.18em; }.ticker span { display:block; width:max-content; animation:ticker 34s linear infinite; }@keyframes ticker { to { transform:translateX(-45%); } }
.work-section { padding:100px var(--pad) 116px; scroll-margin-top:25px; }.section-head { display:flex; justify-content:space-between; align-items:end; border-bottom:1px solid var(--ink); padding-bottom:34px; gap:35px; }.section-pre { font-size:11px; letter-spacing:.08em; font-weight:800; }.section-head :is(h1,h2) { font-size:clamp(70px,11vw,164px); line-height:.94; letter-spacing:-.09em; margin:17px 0 0; font-weight:900; }.asterisk { color:var(--orange); font-size:.33em; vertical-align:top; display:inline-block; transform:translate(8px,8px); }.section-head p { max-width:270px; font-size:16px; line-height:1.45; margin:0 0 9px; }.nowrap { white-space:nowrap; }
.filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:20px 0 34px; }.filter { border:1px solid #92978e; border-radius:99px; background:transparent; padding:11px 16px 10px; cursor:pointer; font-size:11px; font-weight:800; letter-spacing:.045em; transition:background .2s,color .2s; }.filter:hover,.filter.active { background:var(--ink); color:var(--paper); border-color:var(--ink); }.filter span { color:var(--orange); padding-left:5px; }.filter-count { margin-left:auto; font-weight:800; font-size:11px; letter-spacing:.07em; }
.projects-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:58px 25px; align-items:start; }.project { min-width:0; display:block; }.project-wide,.project-narrow { grid-column:auto; }.project[hidden] { display:none; }.project-visual { position:relative; border:0; aspect-ratio:1.32; margin:16px 16px 30px; }.project-visual img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .5s; }.project:hover img { transform:scale(1.045); filter:saturate(1.12); }.project:hover .visual-arrow { background:var(--blue); color:white; transform:rotate(45deg); }.visual-arrow { display:grid; place-items:center; position:absolute; bottom:20px; right:20px; width:51px; height:51px; border-radius:50%; background:var(--paper); border:1px solid var(--ink); font-size:27px; transition:background .2s,color .2s,transform .2s; }.demo-tag { position:absolute; top:16px; left:16px; background:var(--paper); font-size:9px; letter-spacing:.11em; padding:9px 10px; font-weight:800; border:1px solid rgba(0,0,0,.15); }.project-information { flex-wrap:wrap; border-top:0; margin-top:0; padding-top:14px; display:flex; justify-content:space-between; gap:14px; }.project-index { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.07em; }.project h4 { font-weight:850; font-size:clamp(22px,2vw,30px); letter-spacing:-.055em; margin:8px 0 0; line-height:1; }.project h4 i { font-family:var(--serif); font-weight:400; }.works-footnote { font-size:11px; color:var(--muted); margin:42px 0 0; }
.statement { position:relative; padding:70px var(--pad) 105px; background:var(--blue); color:var(--paper); display:grid; grid-template-columns:21% 1fr; gap:20px; overflow:hidden; scroll-margin-top:20px; }.statement-side { display:flex; flex-direction:column; justify-content:space-between; min-height:440px; font-size:11px; line-height:1.6; letter-spacing:.04em; font-weight:800; }.mini-colorbar { display:flex; gap:4px; margin:auto 0 30px; }.mini-colorbar i { display:block; width:16px; height:16px; background:var(--cyan); }.mini-colorbar i:nth-child(2) { background:var(--magenta); }.mini-colorbar i:nth-child(3) { background:var(--yellow); }.mini-colorbar i:nth-child(4) { background:var(--ink); }.statement-main h2 { font-size:clamp(56px,8.6vw,145px); line-height:.94; font-weight:850; letter-spacing:-.078em; margin:0; position:relative; z-index:1; }.statement-main h2 em { font-family:var(--serif); font-weight:400; }.statement-main h2 span { color:var(--yellow); }.statement-text { margin-top:60px; display:grid; grid-template-columns:1fr 1fr; gap:40px; max-width:800px; }.statement-text p { font-size:17px; line-height:1.47; margin:0; }.text-link { grid-column:1 / -1; justify-self:start; padding:0 0 11px; border-bottom:1px solid var(--paper); font-size:12px; font-weight:800; letter-spacing:.08em; }.text-link span { margin-left:32px; }.statement-stamp { position:absolute; border:2px solid var(--yellow); color:var(--yellow); border-radius:50%; width:177px; height:177px; right:-36px; top:49px; display:flex; flex-direction:column; justify-content:center; align-items:center; font-size:16px; text-align:center; font-weight:900; line-height:1.05; letter-spacing:-.02em; transform:rotate(17deg); }.statement-stamp b { font-size:32px; }
.contact-section { padding:95px var(--pad) 87px; scroll-margin-top:10px; }.contact-top,.contact-bottom { display:flex; align-items:center; justify-content:space-between; gap:25px; }.contact-top { font-size:11px; font-weight:800; letter-spacing:.06em; }.contact-period { display:inline-block; color:var(--orange); font-size:.4em; margin-left:20px; vertical-align:top; transform:translateY(-10px); }.contact-bottom { flex-wrap:wrap; padding-top:25px; }.contact-bottom p { max-width:330px; font-size:18px; line-height:1.35; margin:0; }.contact-link { padding:19px 23px; background:var(--ink); color:var(--paper); font-size:12px; font-weight:800; letter-spacing:.055em; display:flex; align-items:center; gap:55px; }.contact-link span { font-size:23px; }.contact-link:hover { background:var(--blue); }.placeholder-note { font-size:11px; color:var(--muted); margin:24px 0 0; }.footer { border-top:1px solid var(--ink); padding:27px var(--pad); display:flex; justify-content:space-between; align-items:center; gap:15px; font-size:11px; font-weight:800; letter-spacing:.05em; }.back-to-top:hover { color:var(--blue); }.tiny-print-mark { font-size:21px; vertical-align:middle; margin-left:15px; }
.project-dialog { position:fixed; margin:0 0 0 auto; inset:0 0 0 auto; width:min(820px,100%); height:100%; max-height:100%; max-width:none; border:0; background:var(--paper); color:var(--ink); padding:0; overflow-y:auto; box-shadow:-15px 0 60px #0003; }.project-dialog::backdrop { background:#131614b5; backdrop-filter:blur(4px); }.dialog-inner { padding:clamp(22px,4vw,54px); }.dialog-close { display:flex; justify-content:space-between; width:100%; font-size:12px; letter-spacing:.08em; font-weight:800; padding:0 0 24px; background:none; border:0; border-bottom:1px solid var(--ink); cursor:pointer; }.dialog-close span { font-size:20px; }.detail-kicker { display:flex; justify-content:space-between; margin:34px 0 15px; font-size:11px; font-weight:800; letter-spacing:.07em; }.detail-title { font-size:clamp(54px,7vw,98px); letter-spacing:-.085em; line-height:.9; margin:0 0 35px; overflow-wrap:anywhere; }.detail-cover { position:relative; aspect-ratio:1.25; border:1px solid var(--ink); margin-bottom:29px; }.detail-cover img { width:100%; height:100%; object-fit:cover; }.detail-cover .demo-tag { top:15px; left:15px; }.detail-description { font-size:clamp(18px,2.4vw,24px); line-height:1.45; max-width:690px; margin:26px 0 30px; }.detail-meta { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:17px 0; gap:15px; }.detail-meta div { display:flex; flex-direction:column; gap:8px; font-size:14px; }.detail-meta b { font-size:10px; letter-spacing:.1em; }.detail-foot { margin:36px 0 0; font-size:12px; line-height:1.5; color:var(--muted); }
@media(max-width:1180px) { .hero { grid-template-columns:1fr .75fr; min-height:450px; gap:30px; }.hero h1 { font-size:clamp(74px,8.8vw,115px); }.hero-poster { min-height:470px; }.screen-text { font-size:clamp(58px,7.6vw,95px); }.registration-logo { margin-left:15px; }.statement-stamp { opacity:.35; } }
@media(max-width:850px) { .utility-center { display:none; }.hero { grid-template-columns:1fr; margin-top:15px; }.hero-copy { min-height:460px; }.hero h1 { font-size:clamp(82px,14vw,145px); }.hero-poster { margin:5px 12px; min-height:470px; }.screen-text { font-size:clamp(70px,14vw,115px); }.section-head p { font-size:14px; max-width:215px; }.project h4 { font-size:clamp(20px,2.8vw,24px); }.statement { grid-template-columns:1fr; gap:30px; }.statement-side { min-height:unset; flex-direction:row; align-items:center; }.mini-colorbar { margin:0; }.statement-main h2 { font-size:clamp(68px,11vw,120px); }.registration-logo { display:none; } }
@media(max-width:600px) { :root { --pad:20px; }.utility-line { font-size:9px; }.main-header { padding-top:19px; padding-bottom:14px; }.brand { font-size:13px; }.brand-icon { width:47px; font-size:42px; height:43px; }.mobile-menu { display:flex; margin-left:auto; width:44px; height:44px; align-items:center; justify-content:center; flex-direction:column; gap:7px; border:1px solid var(--ink); border-radius:50%; background:transparent; cursor:pointer; }.mobile-menu span { background:var(--ink); width:19px; height:2px; }.main-nav { display:none; position:absolute; z-index:11; background:var(--paper); border:1px solid var(--ink); left:var(--pad); right:var(--pad); top:90px; padding:24px; flex-direction:column; align-items:start; gap:24px; box-shadow:7px 7px var(--blue); }.main-nav.open { display:flex; }.hero { margin-bottom:55px; }.hero-copy { min-height:430px; }.hero h1 { font-size:clamp(65px,13.8vw,100px); margin:45px 0 45px; }.eyebrow { font-size:9px; gap:6px; }.eyebrow .line { width:17px; }.hero-bottom p { font-size:17px; }.round-link { width:55px; height:55px; }.hero-poster { min-height:390px; margin:0 10px; }.poster-art { min-height:300px; }.screen-text { font-size:clamp(65px,16vw,100px); }.ticker { font-size:10px; }.work-section { padding-top:75px; padding-bottom:80px; }.section-head { display:block; padding-bottom:25px; }.section-head :is(h1,h2) { font-size:clamp(77px,17vw,125px); }.section-head p { margin:20px 0 0; max-width:320px; }.filter-count { width:100%; margin:10px 0 0; }.projects-grid { grid-template-columns:1fr; gap:40px; }.project-visual,.project-narrow .project-visual { aspect-ratio:1.18; }.project h4 { font-size:clamp(22px,5.5vw,28px); }.statement { padding-top:50px; padding-bottom:75px; }.statement-side { font-size:9px; }.statement-side>span:last-child { display:none; }.statement-main h2 { font-size:clamp(55px,12.3vw,85px); }.statement-text { display:block; margin-top:40px; }.statement-text p + p { margin-top:17px; }.statement-text .text-link { display:inline-block; margin-top:35px; }.statement-stamp { width:120px; height:120px; font-size:12px; top:65px; right:-40px; }.contact-section { padding-top:70px; padding-bottom:75px; }.contact-top span:last-child { display:none; }.contact-period { margin-left:4px; }.contact-bottom { display:block; }.contact-bottom p { margin-bottom:26px; }.contact-link { justify-content:space-between; }.footer { flex-wrap:wrap; font-size:10px; }.footer-right { flex-basis:100%; }.detail-title { font-size:clamp(53px,13vw,75px); } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; } }

/* ====== ÉDITION 02 / PUBLICATIONS + PAGES / GALERIES ====== */
.publications-section { background:#e8e4d9; padding:85px var(--pad) 100px; border-top:1px solid var(--ink); position:relative; scroll-margin-top:0; }
.pub-topline,.pub-footer { display:flex; justify-content:space-between; gap:20px; align-items:center; font-weight:800; font-size:11px; letter-spacing:.075em; }
.pub-topline { border-bottom:1px solid var(--ink); padding-bottom:20px; }
.pub-intro { display:grid; grid-template-columns:minmax(0,1.5fr) minmax(250px,.55fr); gap:clamp(15px,3vw,60px); align-items:center; padding:40px 0 62px; }
.pub-intro h2 { font-weight:900; letter-spacing:-.092em; font-size:clamp(76px,9.1vw,155px); line-height:.79; margin:20px 0 43px; }
.pub-intro h2 span { display:block; color:var(--blue); font-family:var(--serif); font-style:italic; font-weight:400; margin-left:.45em; letter-spacing:-.096em; }
.pub-intro h2 i { color:var(--orange); font-size:.42em; font-style:normal; vertical-align:top; display:inline-block; transform:translate(12px,-10px); }
.pub-intro-note { max-width:470px; font-size:19px; line-height:1.38; letter-spacing:-.025em; margin:0; }
.pub-press { min-height:360px; position:relative; max-width:410px; align-self:stretch; display:flex; flex-direction:column; justify-content:space-between; font-size:9px; font-weight:900; letter-spacing:.08em; }
.pub-press-top,.pub-press-bottom { position:relative; z-index:2; }
.pub-press-bottom { align-self:end; }
.pub-sheet { width:min(67%,220px); aspect-ratio:.72; position:absolute; top:56px; left:50%; border:1px solid var(--ink); box-shadow:3px 3px 0 var(--ink); }
.pub-sheet-back { background:var(--cyan); transform:translate(-50%,10px) rotate(-13deg); }
.pub-sheet-mid { background:var(--orange); transform:translate(-40%,0) rotate(7deg); }
.pub-sheet-front { background:var(--paper); transform:translate(-49%,-1px) rotate(-3deg); display:flex; flex-direction:column; justify-content:space-between; padding:19px; }
.pub-sheet-front>span { font-family:var(--serif); font-style:italic; font-size:48px; line-height:.8; color:var(--blue); }
.pub-sheet-front b { font-size:clamp(30px,3.3vw,51px); letter-spacing:-.075em; line-height:.89; }
.pub-sheet-front small { font-size:9px; border-top:1px solid var(--ink); padding-top:8px; }
.pub-list { border-top:2px solid var(--ink); }
.pub-list.is-scrollable { overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:none; }
.pub-list.is-scrollable::-webkit-scrollbar { display:none; }
.publication-viewport.has-scroll { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:28px; }
.publication-rail { position:relative; min-height:0; display:flex; flex-direction:column; justify-content:space-between; align-items:center; padding:2px 0; color:var(--muted); font:9px var(--sans); letter-spacing:.08em; }
.publication-rail[hidden] { display:none; }
.publication-rail input { position:absolute; top:20px; left:0; width:44px; height:calc(100% - 40px); margin:0; padding:0; appearance:none; -webkit-appearance:none; writing-mode:vertical-lr; direction:ltr; background:transparent; color:inherit; cursor:ns-resize; touch-action:none; }
.publication-rail input::-webkit-slider-runnable-track { width:26px; height:100%; background:linear-gradient(var(--ink),var(--ink)) center / 1px 100% no-repeat,repeating-linear-gradient(to bottom,var(--muted) 0 1px,transparent 1px 10px) center / 12px 100% no-repeat; }
.publication-rail input::-moz-range-track { width:26px; height:100%; background:linear-gradient(var(--ink),var(--ink)) center / 1px 100% no-repeat,repeating-linear-gradient(to bottom,var(--muted) 0 1px,transparent 1px 10px) center / 12px 100% no-repeat; }
.publication-rail input::-webkit-slider-thumb { appearance:none; -webkit-appearance:none; width:26px; height:16px; border:0; border-radius:0; background:linear-gradient(var(--rail-mark,var(--accent-contrast)),var(--rail-mark,var(--accent-contrast))) center / 14px 1px no-repeat,linear-gradient(var(--rail-mark,var(--accent-contrast)),var(--rail-mark,var(--accent-contrast))) center / 1px 10px no-repeat,var(--rail-thumb,var(--accent)); box-shadow:none; }
.publication-rail input::-moz-range-thumb { width:26px; height:16px; border:0; border-radius:0; background:linear-gradient(var(--rail-mark,var(--accent-contrast)),var(--rail-mark,var(--accent-contrast))) center / 14px 1px no-repeat,linear-gradient(var(--rail-mark,var(--accent-contrast)),var(--rail-mark,var(--accent-contrast))) center / 1px 10px no-repeat,var(--rail-thumb,var(--accent)); box-shadow:none; }
.publication-rail input:focus-visible { outline:1px dashed var(--accent); outline-offset:2px; }
@media(max-width:600px) { .publication-viewport.has-scroll { gap:12px; } }
.pub-list:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
.pub-entry { border-bottom:1px solid var(--ink); }
.pub-entry summary { cursor:pointer; padding:27px 8px; list-style:none; display:grid; grid-template-columns:85px minmax(0,1fr) 180px 42px; align-items:center; gap:24px; transition:background .25s,color .25s,padding .25s; }
.pub-entry summary::-webkit-details-marker { display:none; }
.pub-entry summary:hover { background:var(--blue); color:var(--paper); padding-left:20px; }
.pub-num { align-self:start; font-size:12px; font-weight:800; }
.pub-name { display:flex; flex-direction:column; gap:10px; min-width:0; }
.pub-name strong { font-size:clamp(22px,2.3vw,34px); font-weight:800; line-height:1.15; letter-spacing:-.04em; }
.pub-name small { font:600 12px/1.5 var(--sans); letter-spacing:.015em; }
.pub-type { font-size:11px; letter-spacing:.05em; font-weight:800; }
.pub-expand { justify-self:end; border:1px solid currentColor; width:40px; height:40px; border-radius:50%; display:grid; place-items:center; font-size:25px; line-height:1; transition:transform .35s; }
.pub-entry[open] .pub-expand { transform:rotate(45deg); }
.pub-content { display:grid; grid-template-columns:180px minmax(0,1fr); gap:35px; margin:0 70px 35px 8%; padding:25px 0 0; border-top:1px dashed #97978a; animation:pubOpen .35s ease-out; }
.pub-summary-label { font-size:11px; font-weight:800; letter-spacing:.1em; }
.pub-content p { max-width:810px; font-size:18px; line-height:1.48; margin:0; }
.pub-content .pub-notice { color:var(--muted); font-size:12px; margin-top:14px; }
.pub-footer { padding-top:25px; }
.pub-footer b { padding-left:24px; }
.pub-cross { color:var(--orange); font-size:21px; vertical-align:middle; margin-right:15px; }
@keyframes pubOpen { from { opacity:0; transform:translateY(-12px); } to { opacity:1; transform:translateY(0); } }

/* Les dossiers individuels s'affichent comme de grandes feuilles d'archive. */
body:has(.project-dialog[open]) { overflow:hidden; }
.project-dialog { inset:0; width:100%; max-width:none; height:100%; max-height:none; overflow-y:auto; margin:0; box-shadow:none; border:0; background:var(--paper); }
.project-dialog::backdrop { background:var(--ink); }
/* Libérer la transformation après l'entrée pour garder les outils fixes à l'écran. */
.project-dialog[open] { animation:pageEnter .55s cubic-bezier(.18,.8,.16,1) backwards; }
.dialog-inner { width:100%; max-width:1850px; margin:0 auto; padding:0 var(--pad) 80px; }
.dialog-bar { position:sticky; top:0; z-index:6; background:var(--paper); display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid var(--ink); min-height:80px; }
.dialog-brand { font-size:12px; font-weight:900; letter-spacing:.07em; }
.dialog-brand span { color:var(--orange); }
.dialog-close { width:auto; display:flex; align-items:center; justify-content:space-between; gap:26px; padding:11px 0; border:0; border-bottom:0; color:var(--ink); }
.dialog-close:hover,.dialog-brand:hover { color:var(--blue); }
.detail-page { min-width:0; }
.detail-kicker { margin:34px 0 35px; font-size:11px; letter-spacing:.1em; }
.detail-sheet-number { color:var(--accent); }
.detail-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; border-bottom:2px solid var(--ink); padding-bottom:38px; }
.detail-category { font-size:11px; font-weight:800; letter-spacing:.09em; }
.detail-title { font-size:clamp(75px,10.5vw,175px); font-style:italic; line-height:.9; margin:24px 0 0; letter-spacing:-.089em; font-weight:900; overflow-wrap:anywhere; max-width:1450px; }
.detail-mark { flex:none; border:2px solid var(--blue); color:var(--blue); width:130px; height:130px; border-radius:50%; display:flex; flex-direction:column; justify-content:center; align-items:center; line-height:1; font-size:85px; transform:rotate(-12deg); }
.detail-mark small { font-size:9px; font-weight:800; letter-spacing:.05em; margin-top:-10px; }
.detail-intro { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(240px,.4fr); gap:90px; padding:44px 0 105px; }
.detail-intro p { font-size:clamp(17px,1.4vw,20px); line-height:1.65; letter-spacing:normal; margin:0; max-width:70ch; }
.detail-intro-meta { display:grid; grid-template-columns:minmax(90px,.8fr) minmax(0,1fr); gap:14px 15px; align-content:start; margin:0; padding-top:6px; }
.detail-intro-meta dt { font-size:10px; font-weight:800; letter-spacing:.07em; }
.detail-intro-meta dd { margin:0; font-size:12px; font-weight:700; line-height:1.5; overflow-wrap:anywhere; }
.detail-gallery { border-top:1px solid var(--ink); }
.gallery-heading { display:flex; align-items:end; justify-content:space-between; gap:20px; margin:23px 0 34px; }
.gallery-heading h3 { margin:0; font-size:clamp(36px,6vw,94px); line-height:1; letter-spacing:-.075em; }
.gallery-heading h3 em { font-family:var(--serif); font-weight:400; color:var(--blue); }
.gallery-heading>span { font-size:10px; font-weight:800; letter-spacing:.08em; text-align:right; }
.gallery-figure { margin:0; }
.gallery-stage { width:100%; padding:30px; display:flex; align-items:center; justify-content:center; }
.gallery-image { position:relative; max-width:100%; }
.gallery-image>img { width:auto; height:auto; max-width:100%; max-height:75vh; object-fit:contain; }
.gallery-image>img.photo-in { animation:photoIn .38s steps(10,end) both; }
.gallery-sticker { position:absolute; top:22px; left:22px; background:var(--paper); padding:12px 15px; font-size:11px; letter-spacing:.07em; font-weight:800; border:1px solid var(--ink); }
.gallery-zoom { position:absolute; right:22px; bottom:22px; background:var(--paper); padding:15px 18px; border:1px solid var(--ink); font-size:11px; font-weight:900; cursor:pointer; letter-spacing:.065em; display:flex; align-items:center; gap:30px; }
.gallery-zoom span { font-size:24px; }
.gallery-zoom:hover { color:white; background:var(--blue); }
.gallery-figcaption { border-bottom:1px solid var(--ink); min-height:85px; display:grid; grid-template-columns:100px 1fr auto; gap:22px; align-items:center; font-size:13px; }
.gallery-figcaption>span:first-child { font-weight:900; font-size:19px; letter-spacing:-.04em; }
.gallery-controls { display:flex; gap:8px; }
.gallery-controls button { border:1px solid var(--ink); background:transparent; font-size:24px; cursor:pointer; width:47px; height:47px; transition:background .25s,color .25s; }
.gallery-controls button:hover { background:var(--ink); color:var(--paper); }
.gallery-thumbnails { display:flex; flex-wrap:wrap; gap:18px; margin-top:30px; align-items:flex-start; }
.gallery-thumb { flex:0 0 auto; width:clamp(100px,18vw,180px); max-width:100%; padding:0; border:0; background:transparent; text-align:left; color:var(--ink); cursor:pointer; min-width:0; }
.gallery-thumb-image { display:block; position:relative; margin:12px; }
.gallery-thumb-image .crop-mark::before { width:6px; }
.gallery-thumb-image .crop-mark::after { height:6px; }
.gallery-thumb-image .tl::before,.gallery-thumb-image .bl::before { right:4px; }
.gallery-thumb-image .tr::before,.gallery-thumb-image .br::before { left:4px; }
.gallery-thumb-image .tl::after,.gallery-thumb-image .tr::after { bottom:4px; }
.gallery-thumb-image .bl::after,.gallery-thumb-image .br::after { top:4px; }
.gallery-thumb img { display:block; width:100%; height:auto; aspect-ratio:1.46; object-fit:cover; border:0; filter:saturate(.65); transition:filter .25s; }
.gallery-thumb-caption { display:block; border-top:3px solid transparent; font-size:11px; font-weight:700; padding:12px 3px 8px; line-height:1.45; }
.gallery-thumb.selected .gallery-thumb-caption { border-color:var(--orange); }
.gallery-thumb.selected img,.gallery-thumb:hover img { filter:saturate(1); }
.detail-foot { margin:35px 0 80px; max-width:740px; font-size:12px; }
.detail-foot code { font-size:12px; background:#ddd5c8; padding:2px 5px; }
.project-pager { display:grid; grid-template-columns:1fr 1fr; margin-top:clamp(48px,6vw,90px); border-top:2px solid var(--ink); border-bottom:2px solid var(--ink); }
.project-pager a { min-height:210px; display:flex; flex-direction:column; gap:25px; padding:34px 35px 30px 0; transition:padding .24s,background .24s; }
.project-pager a+ a { border-left:1px solid var(--ink); padding-left:35px; padding-right:0; text-align:right; align-items:end; }
.project-pager a:hover { color:var(--blue); padding-left:15px; }
.project-pager a+ a:hover { padding-left:35px; padding-right:15px; }
.project-pager small { font-size:11px; font-weight:800; letter-spacing:.1em; }
.project-pager strong { font-size:clamp(30px,4.5vw,70px); letter-spacing:-.065em; line-height:1; }
.detail-end { display:flex; justify-content:space-between; gap:12px; padding-top:25px; font-size:10px; font-weight:800; letter-spacing:.07em; }
@keyframes photoIn { from { opacity:.55; filter:contrast(1.8) saturate(.1); clip-path:inset(0 0 100% 0); } to { opacity:1; filter:none; clip-path:inset(0 0 0 0); } }
@keyframes pageEnter { from { opacity:.75; transform:translateY(38px); } to { opacity:1; transform:translateY(0); } }

/* Diaporama plein écran accessible depuis chaque galerie. */
.image-lightbox { position:fixed; inset:0; margin:0; width:100%; max-width:none; height:100%; max-height:none; padding:22px clamp(15px,3.5vw,55px); background:#151c1c; color:var(--paper); border:0; overflow:hidden; }
.image-lightbox::backdrop { background:#0b1111d9; }
.lightbox-header { display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid #899492; padding:0 0 18px; font-size:11px; font-weight:800; letter-spacing:.08em; gap:15px; }
.lightbox-close { border:0; background:transparent; color:var(--paper); font-size:12px; font-weight:800; cursor:pointer; padding:10px; }
.lightbox-body { height:calc(100% - 135px); display:grid; grid-template-columns:58px minmax(0,1fr) 58px; gap:14px; align-items:center; }
.lightbox-body img { width:100%; height:100%; object-fit:contain; min-height:0; }
.lightbox-arrow { border:1px solid #98a09b; border-radius:50%; background:transparent; color:var(--paper); width:52px; height:52px; font-size:25px; cursor:pointer; }
.lightbox-arrow:hover { background:var(--paper); color:var(--ink); }
.lightbox-caption { font-size:12px; color:#c6cbc7; border-top:1px solid #899492; padding-top:17px; margin:0; }

/* Transition entre sections et pages : une feuille traverse une presse en trois passes. */
.print-transition { position:fixed; z-index:500; inset:0; pointer-events:none; transform:translateY(110%); }
.print-transition::before { content:''; position:absolute; inset:0; background:var(--magenta); transform:translateY(12px); }
.print-transition::after { content:''; position:absolute; inset:0; background:var(--cyan); transform:translateY(-10px); mix-blend-mode:multiply; opacity:.45; }
.transition-sheet { position:absolute; z-index:1; inset:0; padding:clamp(25px,5vw,80px); background:var(--blue); color:var(--paper); display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.transition-sheet::before { content:''; position:absolute; border-radius:50%; width:70vw; height:70vw; max-width:1200px; max-height:1200px; right:-12vw; top:-24vw; background:radial-gradient(circle,var(--yellow) 1.7px,transparent 2.2px); background-size:12px 12px; opacity:.4; mix-blend-mode:screen; }
.transition-sheet>span { font-size:11px; font-weight:900; letter-spacing:.12em; position:relative; }
.transition-sheet>strong { font-size:clamp(70px,13.3vw,230px); letter-spacing:-.095em; line-height:.86; overflow-wrap:anywhere; position:relative; }
.transition-sheet>div { border-top:1px solid var(--paper); padding-top:20px; display:flex; justify-content:space-between; align-items:center; gap:20px; font-size:12px; font-weight:900; position:relative; }
.transition-register { font-size:48px; line-height:1; color:var(--yellow); }
.print-transition.running { animation:sheetPass .88s cubic-bezier(.75,0,.2,1) both; }
@keyframes sheetPass { 0% { transform:translateY(110%); } 43% { transform:translateY(0); } 57% { transform:translateY(0); } 100% { transform:translateY(-110%); } }

@media (max-width:1000px){
  .pub-intro { grid-template-columns:1fr 260px; }.pub-intro h2 { font-size:clamp(75px,9vw,120px); }
  .main-nav { gap:clamp(14px,2vw,25px); }.registration-logo { margin-left:8px; }
  .detail-mark { width:95px; height:95px; font-size:64px; }.detail-intro { gap:40px; }
}
/* Sous le format portable, les caractéristiques précèdent la description. */
@media screen and (max-width:1023px) {
  .detail-intro { grid-template-columns:minmax(0,1fr); gap:28px; }
  .detail-intro-meta { order:-1; }
}
@media (max-width:750px){
  .pub-intro { grid-template-columns:1fr; padding-bottom:55px; }
  .pub-intro h2 { font-size:clamp(70px,13vw,113px); }
  .pub-press { display:none; }
  .pub-entry summary { grid-template-columns:55px 1fr 35px; gap:12px; }
  .pub-type { display:none; }
  .pub-content { grid-template-columns:1fr; gap:10px; margin:0 20px 30px 65px; }
  .detail-heading { gap:20px; }.detail-mark { display:none; }
  .detail-intro { grid-template-columns:1fr; gap:28px; padding-bottom:60px; }
  .detail-intro-meta { grid-template-columns:80px 1fr; }
  .gallery-heading>span { display:none; }
  
}
@media(max-width:600px){
  .publications-section { padding:68px var(--pad) 70px; }
  .pub-topline { font-size:10px; }.pub-topline span:last-child { display:none; }
  .pub-intro { padding:28px 0 55px; }
  .pub-intro h2 { font-size:clamp(64px,13.6vw,95px); margin-bottom:35px; }
  .pub-intro-note { font-size:17px; }
  .pub-entry summary { padding:24px 4px; gap:8px; grid-template-columns:50px 1fr 34px; }
  .pub-name strong { font-size:clamp(20px,5vw,26px); }
  .pub-num { font-size:10px; }.pub-expand { width:32px; height:32px; font-size:19px; }
  .pub-content { margin:0 6px 32px 56px; }
  .pub-content p { font-size:16px; }
  .pub-footer { flex-wrap:wrap; font-size:9px; }
  .dialog-bar { min-height:70px; }.dialog-close { gap:12px; font-size:10px; }
  .detail-kicker { margin:22px 0 28px; font-size:9px; }
  .detail-heading { padding-bottom:24px; }.detail-title { font-size:clamp(61px,14vw,98px); margin-top:18px; }
  .detail-category { font-size:10px; }
  .detail-intro { padding:28px 0 50px; }.detail-intro p { font-size:17px; }
  .gallery-heading { margin:22px 0 23px; }.gallery-heading h3 { font-size:clamp(38px,10vw,63px); }
  .gallery-sticker { font-size:9px; top:10px; left:10px; padding:7px 8px; }
  .gallery-zoom { right:10px; bottom:10px; font-size:10px; padding:8px 10px; gap:12px; }
  .gallery-figcaption { grid-template-columns:60px 1fr; gap:10px; min-height:110px; font-size:11px; padding:12px 0; }
  .gallery-figcaption>span:first-child { font-size:14px; }.gallery-controls { grid-column:2; justify-content:flex-end; }
  .gallery-controls button { width:38px; height:38px; font-size:19px; }
  .gallery-thumbnails { gap:8px; margin-top:20px; }.gallery-thumb-caption { font-size:9px; padding-top:8px; }
  .detail-foot { margin-bottom:50px; }.project-pager a { min-height:165px; padding:26px 12px 26px 0; gap:20px; }
  .project-pager a+a { padding:26px 0 26px 12px; }.project-pager a+a:hover { padding-left:12px; }
  .project-pager strong { font-size:clamp(25px,7vw,40px); }.detail-end { font-size:9px; }
  .lightbox-body { grid-template-columns:42px minmax(0,1fr) 42px; gap:4px; }.lightbox-arrow { width:38px; height:38px; font-size:20px; }
  .transition-sheet>strong { font-size:clamp(70px,14vw,95px); }.transition-sheet>div { font-size:9px; }.transition-register { font-size:32px; }
}
@media(prefers-reduced-motion:reduce){
  .print-transition { display:none; }
  .project-dialog[open],.gallery-image>img.photo-in,.pub-content { animation:none!important; }
}
.contact-actions { display:flex; flex-wrap:wrap; gap:14px; }
.contact-actions .contact-link { border:1px solid var(--ink); }
.contact-actions .contact-link:hover { border-color:transparent; }
.contact-actions .instagram-link { background:transparent; color:var(--ink); }
.contact-actions .instagram-link:hover { background:var(--blue); color:var(--paper); border-color:var(--blue); }
@media (max-width:600px) {
  .contact-actions { flex-direction:column; }
}
.publications-heading { flex-wrap:wrap; border-bottom:0; padding-bottom:40px; }
@media (max-width:600px) {
  .publications-heading h2 { font-size:clamp(38px,10.5vw,63px); }
}
/* Traits de coupe communs aux vignettes de Travaux et Multiples. */
.project-image { width:100%; height:100%; overflow:hidden; }
.project-visual::before {
  content:'';
  position:absolute;
  inset:-16px;
  pointer-events:none;
  background:
    linear-gradient(var(--ink),var(--ink)) left top 16px / 10px 1px,
    linear-gradient(var(--ink),var(--ink)) right top 16px / 10px 1px,
    linear-gradient(var(--ink),var(--ink)) left bottom 16px / 10px 1px,
    linear-gradient(var(--ink),var(--ink)) right bottom 16px / 10px 1px,
    linear-gradient(var(--ink),var(--ink)) left 16px top / 1px 10px,
    linear-gradient(var(--ink),var(--ink)) right 16px top / 1px 10px,
    linear-gradient(var(--ink),var(--ink)) left 16px bottom / 1px 10px,
    linear-gradient(var(--ink),var(--ink)) right 16px bottom / 1px 10px;
  background-repeat:no-repeat;
}
/* Pied-de-mouche à la fin des paragraphes descriptifs. */
:is(.hero-bottom p,.section-head p,.pub-intro-note,.pub-content p:not(.pub-notice),.statement-text p,.contact-bottom p,.detail-intro p)::after {
  content:'\00a0¶';
  color:var(--blue);
  font-family:var(--serif);
  font-style:normal;
  font-weight:700;
}
/* Le fond papier garde le symbole visible sur le fond d'accent de Démarche. */
.statement-text p::after { content:'¶'; display:inline-block; margin-left:.35em; padding:0 .15em; background:var(--paper); line-height:1.1; }
/* Titres des projets dans l'index, les fiches et la navigation. */
.project h4,.detail-title,.project-pager strong,.lightbox-project-title { font-style:italic; }
/* Grille des projets : smartphone, portable, grand écran. */
@media (max-width:700px) {
  .projects-grid { grid-template-columns:minmax(0,1fr); gap:40px; }
}
@media (min-width:1600px) {
  .projects-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
/* Sous-sections de l'index des projets. */
.project-subnav { display:flex; flex-wrap:wrap; gap:16px 36px; padding:24px 0; font-size:12px; font-weight:800; }
.project-subnav a,.about-tabs button { display:flex; gap:24px; align-items:center; padding:8px 0; font:800 12px/normal var(--sans); border-bottom:1px solid currentColor; }
.project-subnav a:hover { color:var(--blue); border-color:var(--blue); }
.project-subsection { margin-top:36px; scroll-margin-top:25px; }
.project-subsection + .project-subsection { margin-top:80px; padding-top:35px; border-top:1px solid var(--ink); }
.project-subheading { display:flex; align-items:baseline; gap:20px; margin-bottom:24px; }
.project-subheading>span { font-size:12px; font-weight:800; color:var(--orange); }
.project-subheading h3 { margin:0; font-size:clamp(28px,3.5vw,44px); line-height:1; letter-spacing:-.065em; }
.multiples-empty { margin:0; padding:28px 0; font-family:var(--serif); font-style:italic; font-size:24px; color:var(--muted); }
/* Le point suit le mot, et non une ligne séparée. */
.pub-intro h2 span i { display:inline; color:var(--orange); font-family:var(--sans); font-style:normal; font-size:.5em; vertical-align:baseline; transform:none; margin-left:.045em; }
/* Garder la légende du faux livret visible sous la pile de feuilles. */
.pub-sheet { width:min(63%,195px); }

.detail-intro.detail-intro-no-meta { grid-template-columns:1fr; }

/* Édition : projets en ouverture, actualités et ressources éditoriales. */
:root { color-scheme:light; }
:root[data-theme="dark"] {
  color-scheme:dark;
  --paper:#202124; --ink:#f1ede5; --muted:#bcb8b2; --line:#55565a;
  --blue:#f18a63; --orange:#f18a63; --yellow:#f18a63;
}
.theme-toggle { flex:none; display:grid; place-items:center; width:44px; height:44px; padding:10px; border:1px solid var(--ink); border-radius:50%; background:transparent; color:var(--ink); cursor:pointer; }
.theme-icon { width:22px; height:22px; }
.theme-sun { display:none; }
html[data-theme="dark"] .theme-moon { display:none; }
html[data-theme="dark"] .theme-sun { display:block; }
.theme-toggle:hover { background:var(--blue); border-color:var(--blue); color:var(--paper); }
html[data-theme="dark"] .publications-section { background:#292a2e; border-color:var(--line); }
html[data-theme="dark"] .statement { background:var(--blue); color:var(--paper); }
html[data-theme="dark"] .statement-text .text-link { border-color:var(--paper); }
html[data-theme="dark"] .statement-text p::after { background:transparent; color:var(--paper); }
html[data-theme="dark"] .statement-main h2 span { color:var(--paper); }
html[data-theme="dark"] .statement-stamp { color:var(--paper); border-color:var(--paper); }
html[data-theme="dark"] .skip-link { background:var(--paper); color:var(--ink); }
html[data-theme="dark"] .image-lightbox { background:#17181a; color:var(--ink); }
html[data-theme="dark"] .lightbox-close,html[data-theme="dark"] .lightbox-arrow { color:var(--ink); }
html[data-theme="dark"] .lightbox-arrow:hover { background:var(--blue); color:var(--paper); }
html[data-theme="dark"] .contact-link { background:var(--blue); color:var(--paper); border-color:transparent; }
html[data-theme="dark"] .contact-actions .instagram-link { background:transparent; color:var(--ink); border-color:var(--line); }
html[data-theme="dark"] .contact-link:hover { background:#ffa27e; color:var(--paper); border-color:transparent; }
html[data-theme="dark"] .filter { border-color:var(--line); color:var(--ink); }
html[data-theme="dark"] .filter:hover,html[data-theme="dark"] .filter.active { background:var(--blue); color:var(--paper); border-color:var(--blue); }
html[data-theme="dark"] .filter.active span,html[data-theme="dark"] .filter:hover span { color:var(--paper); }
html[data-theme="dark"] .pub-content { border-color:var(--line); }
html[data-theme="dark"] .gallery-zoom:hover,html[data-theme="dark"] .project:hover .visual-arrow { color:var(--paper); }
@media(min-width:601px) and (max-width:1000px) {
  .main-header { flex-wrap:wrap; gap:20px; }
  .main-header .main-nav { order:4; width:100%; margin-left:0; justify-content:space-between; }
  .theme-toggle { margin-left:auto; }
}
@media(max-width:600px) {
  .main-header { gap:12px; }
  .theme-toggle { margin-left:auto; }
  .main-header .mobile-menu { margin-left:0; }
}
:root { --description-font:'new-zen',Arial,sans-serif; --title-font:'tt-commons-pro',Arial,sans-serif; }
.section-head :is(h1,h2),.statement-main h2,.project-subheading h3,.project h4,
.detail-title,.gallery-heading h3,.pub-name strong,.project-pager strong,.project-resources h3 {
  font-family:var(--title-font); font-weight:800;
}
.project h4 i { font-family:inherit; font-weight:inherit; }
.section-head p,.statement-text p,.pub-content p,.contact-bottom p,.detail-intro p,.project-resources p {
  font-family:var(--description-font); font-weight:100; line-height:1.6;
}
.section-head p em,.statement-text p em,.pub-content p em,.contact-bottom p em,.detail-intro p em,.project-resources p em { font-style:italic; }
.work-section { padding-top:40px; }
.project-information { margin-left:16px; margin-right:16px; }
.statement-side { min-height:240px; }
.statement-main h2 .asterisk { color:var(--yellow); }
.news-banner { display:flex; align-items:center; gap:18px; padding:12px var(--pad); border-bottom:1px solid var(--ink); background:var(--paper); }
.news-banner[hidden] { display:none; }
.news-label,.news-pause { flex:none; font-size:10px; font-weight:800; letter-spacing:.06em; }
.news-window { flex:1; min-width:0; overflow:hidden; }
.news-track { display:flex; width:max-content; min-width:200%; animation:newsScroll var(--news-duration,35s) linear infinite; }
.news-group { display:flex; flex:none; align-items:center; justify-content:space-around; min-width:50%; }
.news-item { white-space:nowrap; padding-right:48px; font-size:13px; }
.news-item::after { content:'✳︎'; color:var(--blue); margin-left:48px; }
.news-track.paused { animation-play-state:paused; }
.news-pause { background:none; border:1px solid var(--ink); padding:7px 10px; color:var(--ink); cursor:pointer; }
.news-pause:hover,.news-pause:focus-visible { background:var(--blue); border-color:var(--blue); color:var(--paper); }
@keyframes newsScroll { to { transform:translateX(var(--news-distance,-50%)); } }
.resource-link { display:inline-flex; gap:15px; margin-top:20px; padding:12px 16px; border:1px solid var(--ink); font:800 11px var(--sans); letter-spacing:.04em; }
.resource-link:hover { background:var(--blue); color:var(--paper); border-color:var(--blue); }
.project-resources { margin-top:clamp(48px,6vw,90px); padding-top:28px; border-top:1px solid var(--ink); }
.project-resources h3 { margin:0 0 28px; font-size:clamp(32px,4vw,60px); letter-spacing:-.04em; }
.project-resources ul { list-style:none; padding:0; margin:0; }
.project-resources li { padding:22px 0; border-bottom:1px solid var(--line); }
.project-resources li>strong { font-family:var(--title-font); font-size:24px; font-weight:800; }
.project-resources p { margin:10px 0 0; font-size:18px; max-width:70ch; }
.project-resources p::after { content:'\00a0¶'; color:var(--blue); }
@media(max-width:600px) {
  .news-banner { gap:10px; }
  .news-label { font-size:9px; }
  .news-pause { font-size:9px; padding:7px; }
}
@media(prefers-reduced-motion:reduce) {
  .news-track { animation:none; min-width:0; width:auto; }
  .news-group { display:block; min-width:0; }
  .news-item { display:block; white-space:normal; padding-right:0; }
  .news-item::after { margin-left:12px; }
  .news-group[aria-hidden],.news-pause { display:none; }
}

/* Intitulés compacts des quatre sections principales. */
.section-index,.section-head .section-index {
  margin:0;
  font-family:var(--sans);
  font-size:11px;
  font-weight:800;
  font-style:normal;
  line-height:1.5;
  letter-spacing:.08em;
}
.statement { display:block; }
.statement .statement-text { margin-top:32px; }
.pub-footer { justify-content:flex-end; }
.section-index,.section-head .section-index { display:flex; align-items:center; gap:18px; }
.section-register { position:relative; display:grid; place-items:center; flex:0 0 26px; width:26px; height:26px; margin:5px; border:1px solid currentColor; border-radius:50%; }
.section-register::before,.section-register::after { content:''; position:absolute; background:currentColor; }
.section-register::before { width:1px; height:36px; }
.section-register::after { width:36px; height:1px; }
.section-register>span { width:13px; height:13px; border:1px solid currentColor; border-radius:50%; }
.section-register>span::after { content:''; position:absolute; width:3px; height:3px; left:50%; top:50%; transform:translate(-50%,-50%); background:currentColor; border-radius:50%; }

/* Échelles de densité aux quatre coins de la biographie. */
.statement { display:block; padding-top:75px; padding-bottom:90px; }
.statement .statement-main { width:100%; max-width:680px; margin:45px auto 0; min-width:0; text-align:left; }
.statement .statement-text { display:block; margin:0; max-width:none; }
.statement .statement-text p+p { margin-top:22px; }
.statement .statement-text .text-link { display:inline-block; margin-top:32px; }
.bio-density { position:absolute; display:flex; width:96px; height:14px; border:1px solid currentColor; pointer-events:none; }
.bio-density i { flex:1; background:currentColor; }
.bio-density i:nth-child(1) { opacity:0; }
.bio-density i:nth-child(2) { opacity:.2; }
.bio-density i:nth-child(3) { opacity:.4; }
.bio-density i:nth-child(4) { opacity:.6; }
.bio-density i:nth-child(5) { opacity:.8; }
.bio-density-tl { top:22px; left:var(--pad); }
.bio-density-tr { top:22px; right:var(--pad); }
.bio-density-bl { bottom:22px; left:var(--pad); }
.bio-density-br { bottom:22px; right:var(--pad); }
.bio-density-tl,.bio-density-bl { flex-direction:row-reverse; color:#fff; }
:root { --accent:#e05c56; --accent-contrast:#000; }
.accent-palette { display:flex; flex-wrap:wrap; gap:4px; padding:8px; border:1px solid var(--line); }
.accent-swatch { width:28px; height:28px; padding:0; border:1px solid transparent; background:var(--swatch); cursor:pointer; }
.accent-swatch:hover { transform:translateY(-3px); }
.accent-swatch[aria-pressed="true"] { outline:2px solid var(--ink); outline-offset:2px; }
.accent-swatch:focus-visible { outline:3px solid var(--ink); outline-offset:3px; }
/* Contraste calculé pour chaque fond d'accent, indépendamment du thème. */
:root[data-theme] .statement { background:var(--accent); color:var(--accent-contrast); }
:root[data-theme] .statement-text .text-link { border-color:var(--accent-contrast); }
:root[data-theme] .statement-text p::after { background:transparent; color:var(--accent-contrast); }
:root[data-theme] .pub-entry summary:hover,
:root[data-theme] .theme-toggle:hover,
:root[data-theme] .news-pause:hover,
:root[data-theme] .news-pause:focus-visible,
:root[data-theme] .contact-actions .contact-link:hover,
:root[data-theme] .resource-link:hover,
:root[data-theme] .gallery-zoom:hover,
:root[data-theme] .project:hover .visual-arrow {
  background:var(--accent); color:var(--accent-contrast); border-color:transparent;
}
:root[data-theme="dark"] .contact-actions .contact-link:not(.instagram-link),
:root[data-theme="dark"] .filter:hover,
:root[data-theme="dark"] .filter.active,
:root[data-theme="dark"] .lightbox-arrow:hover {
  background:var(--accent); color:var(--accent-contrast);
}
:root[data-theme="dark"] .filter.active span,:root[data-theme="dark"] .filter:hover span { color:var(--accent-contrast); }
::selection { background:var(--accent); color:var(--accent-contrast); }
@media(max-width:600px) {
  .bio-density { width:66px; height:11px; }
  .statement .statement-main { margin-top:32px; }
}

/* Édition 03 : multiples, publications et repères d'impression. */
#projets>.section-head,#contact>.section-head { border-bottom:0; }
.publications-section,html[data-theme="dark"] .publications-section { border-top:0; }
#multiples .projects-grid { --collapsed-rows:2; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px 14px; }
#travaux .projects-grid { --collapsed-rows:3; }
.projects-expand { display:block; margin:32px auto 0; min-height:44px; padding:12px 20px; border:1px solid var(--ink); background:transparent; color:var(--ink); font:700 11px var(--sans); letter-spacing:.08em; cursor:pointer; }
.projects-expand[hidden] { display:none; }
.projects-expand:hover { background:var(--accent); border-color:var(--accent); color:var(--accent-contrast); }
.projects-expand:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
#multiples .project-visual { aspect-ratio:560 / 760; }
#multiples .project h4 { font-size:clamp(18px,1.6vw,23px); }
#multiples .visual-arrow { width:32px; height:32px; font-size:20px; bottom:10px; right:10px; }
.multiples-note { margin-top:28px; font-size:11px; color:var(--muted); }
@media(min-width:1000px) { #multiples .projects-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } }
@media(max-width:700px) { #multiples .projects-grid { --collapsed-rows:3; grid-template-columns:repeat(2,minmax(0,1fr)); } }
.pub-name strong { font-size:clamp(18px,1.7vw,25px); line-height:1.2; }
.pub-content p { font-size:15px; }
.pub-content .pub-notice { font-size:12px; }
.accent-palette { border:0; }
.project-pdf { flex:none; align-self:flex-start; padding:12px 16px; border:1px solid var(--ink); color:var(--ink); background:transparent; font:800 11px var(--sans); cursor:pointer; }
.project-pdf:hover { background:var(--accent); color:var(--accent-contrast); border-color:transparent; }
.project-pdf:disabled { cursor:wait; opacity:.6; }
.detail-heading { flex-wrap:wrap; }
.gallery-zoom { border:0; width:44px; height:44px; padding:10px; border-radius:50%; display:grid; place-items:center; }
.gallery-zoom svg { width:24px; height:24px; }
:root[data-theme="dark"] .contact-actions .contact-link:not(.instagram-link):hover { background:#fff; color:#202124; border-color:transparent; }
/* Cercles pleins et croix blanches à l'intérieur des cibles. */
.section-register::before,.section-register::after,.registration-logo::before,.registration-logo::after { z-index:1; }
.section-register>span,.registration-logo>span:first-child { position:relative; z-index:2; background:currentColor; border-color:currentColor; }
.section-register>span::after,.registration-logo>span:first-child::after {
  content:''; position:absolute; inset:0; width:100%; height:100%; transform:none; border-radius:50%;
  background:linear-gradient(#fff,#fff) center / 100% 1px no-repeat,linear-gradient(#fff,#fff) center / 1px 100% no-repeat;
}
.registration-logo>span:last-child { display:none; }
html[data-theme="dark"] .section-register>span,
html[data-theme="dark"] .registration-logo>span:first-child { background:currentColor; border-color:currentColor; }
html[data-theme="dark"] .section-register>span::after,
html[data-theme="dark"] .registration-logo>span:first-child::after {
  background:linear-gradient(#202124,#202124) center / 100% 1px no-repeat,linear-gradient(#202124,#202124) center / 1px 100% no-repeat;
}
:root[data-theme] .statement-text .text-link { padding:10px 14px; transition:background .2s,color .2s; }
:root[data-theme] .statement-text .text-link:hover,
:root[data-theme] .statement-text .text-link:focus-visible { background:var(--accent-contrast); color:var(--accent); border-color:transparent; }
.bio-hirondelle { position:absolute; right:var(--pad); width:54px; height:54px; pointer-events:none; }
.bio-hirondelle-top { top:20px; }
.bio-hirondelle-bottom { bottom:20px; transform:scaleY(-1); }
.bio-hirondelle::before,.bio-hirondelle::after { content:''; position:absolute; background:currentColor; }
.bio-hirondelle::before { left:28px; top:42px; width:26px; height:1px; }
.bio-hirondelle::after { left:12px; top:0; width:1px; height:26px; }
.bio-hirondelle .section-register { position:absolute; left:28px; top:0; bottom:auto; margin:0; }
.statement { padding-right:calc(var(--pad) + 70px); }
@media(max-width:600px) {
  .bio-hirondelle { right:15px; }
  .statement { padding-right:var(--pad); }
  .statement>.section-index { padding-right:42px; }
}
.print-sheet { display:none; }
@media print {
  @page { size:A4; margin:15mm; }
  html,body { background:white!important; color:black!important; overflow:visible!important; }
  body>* { display:none!important; }
  body::before,body::after { display:none!important; }
  body>#printSheet { display:block!important; color:black!important; font-family:Arial,sans-serif; }
  #printSheet * { color:black!important; animation:none!important; text-shadow:none!important; box-shadow:none!important; }
  #printSheet .detail-kicker { margin:0 0 8mm; font-size:9pt; }
  #printSheet .detail-heading { display:block; padding-bottom:5mm; border-color:black; }
  #printSheet .detail-title { font-family:Arial,sans-serif; font-size:32pt!important; line-height:1.1; letter-spacing:-.03em; margin:4mm 0 0; }
  #printSheet .detail-intro { display:block; padding:6mm 0; }
  #printSheet .detail-intro p,#printSheet .project-resources p { font:11pt/1.5 Arial,sans-serif; max-width:none; }
  #printSheet .detail-intro-meta { margin:0 0 6mm; grid-template-columns:40mm 1fr; break-inside:avoid; }
  #printSheet figure { width:70%; margin:5mm auto; break-inside:avoid; }
  #printSheet figure img { display:block; width:100%; height:auto; max-height:85mm; object-fit:contain; }
  #printSheet figcaption { margin-top:3mm; font-size:9pt; }
  #printSheet .project-resources { margin-top:8mm; padding-top:5mm; }
  #printSheet .project-resources h3 { font:700 18pt Arial,sans-serif; break-after:avoid; }
  #printSheet .project-resources li { break-inside:avoid; padding:4mm 0; }
  #printSheet .project-resources li>strong { font:700 12pt Arial,sans-serif; }
  #printSheet .resource-link { padding:0; border:0; font-size:9pt; }
  #printSheet .resource-link::after { content:' (' attr(href) ')'; overflow-wrap:anywhere; }
  #printSheet .detail-end { margin-top:8mm; font-size:8pt; }
}

/* Contact : même typographie que le texte introductif des projets. */
#projets>.section-head p,.contact-bottom p { font-size:16px; color:var(--ink); line-height:1.6; }
@media(max-width:850px) { #projets>.section-head p,.contact-bottom p { font-size:14px; } }
.email-dialog { width:min(520px,calc(100% - 32px)); max-height:85vh; overflow:auto; padding:28px; border:1px solid var(--ink); background:var(--paper); color:var(--ink); }
.email-dialog::backdrop { background:#0009; }
.email-dialog-close { display:block; margin-left:auto; padding:8px 0; border:0; background:none; color:inherit; cursor:pointer; font-size:11px; }
.email-dialog-close:hover,.email-dialog-close:focus-visible { color:var(--accent); }
.detail-description p+p { margin-top:1.2em; }
.reading-controls { display:flex; flex-wrap:wrap; align-items:center; gap:4px; width:fit-content; max-width:100%; margin-bottom:24px; padding:0 0 8px; border-bottom:1px solid currentColor; font:10px var(--sans); letter-spacing:.08em; }
.reading-label { margin-right:14px; opacity:.65; }
.reading-controls button { min-width:44px; min-height:44px; padding:6px; border:0; background:transparent; color:inherit; cursor:pointer; transition:color .2s; }
.reading-controls .reading-step { font:300 25px var(--sans); }
.reading-controls .reading-reset { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-width:85px; }
.reading-value { font:12px var(--sans); letter-spacing:.02em; }
.reading-ruler { display:flex; align-items:flex-end; gap:5px; height:17px; }
.reading-ruler i { display:block; width:3px; height:var(--tick-height); background:currentColor; opacity:.18; }
.reading-ruler i.active { opacity:1; }
.reading-controls button:hover:not(:disabled),.reading-controls button:focus-visible { color:var(--accent); }
.statement .reading-controls button:hover:not(:disabled),.statement .reading-controls button:focus-visible { color:var(--accent-contrast); background:color-mix(in srgb,currentColor 12%,transparent); }
.reading-controls button:focus-visible { outline:2px solid currentColor; outline-offset:3px; }
.reading-controls button:disabled { opacity:.35; cursor:default; }
.reading-status { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
@media screen {
  .detail-intro .detail-description p { font-size:calc(clamp(17px,1.4vw,20px) + var(--reading-adjustment,0px)); }
  .statement .statement-text p { font-size:calc(17px + var(--reading-adjustment,0px)); }
}
@media print { .reading-controls { display:none!important; } }
/* Les cibles sur fond d'accent suivent la couleur du texte, quel que soit le thème. */
html[data-theme] .statement .section-register>span { background:currentColor; border-color:currentColor; }
html[data-theme] .statement .section-register>span::after {
  background:linear-gradient(var(--accent-cross),var(--accent-cross)) center / 100% 1px no-repeat,linear-gradient(var(--accent-cross),var(--accent-cross)) center / 1px 100% no-repeat;
}
@media(max-width:700px) {
  #travaux .projects-grid { --collapsed-rows:5; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 12px; }
  #travaux .project h4 { font-size:18px; overflow-wrap:anywhere; }
  .footer .accent-palette { flex-basis:100%; justify-content:center; margin-inline:auto; }
}
.email-dialog h2 { font-family:var(--title-font); font-size:30px; font-weight:800; }
.email-dialog label { display:block; font-size:12px; margin-bottom:8px; }
.email-dialog input { width:100%; padding:12px; border:1px solid var(--line); background:var(--paper); color:var(--ink); font:16px var(--sans); }
.email-dialog-actions { display:flex; flex-wrap:wrap; gap:12px; }
.email-dialog-actions button { background:transparent; color:inherit; cursor:pointer; }
.email-dialog-actions button:hover { background:var(--accent); color:var(--accent-contrast); }
.email-dialog p { font-size:14px; line-height:1.5; }
.email-dialog input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
@media print {
  #printSheet .detail-end { break-after:avoid; }
  #printSheet .print-footer { margin-top:8mm; break-inside:avoid; text-align:center; }
  #printSheet .print-contact { font:9pt/1.5 Arial,sans-serif; margin:0 0 2mm; }
  #printSheet .print-rights { position:static; margin:0; text-align:center; font:8pt Arial,sans-serif; padding:2mm 0; break-inside:avoid; }
  #printSheet .print-artist { display:block; margin-bottom:4mm; font:bold 12pt Arial,sans-serif; break-after:avoid; }
}

/* Onglets de présentation et réglage de lecture compact. */
.about-tabs { display:flex; flex-wrap:wrap; gap:16px 36px; margin-bottom:28px; }
.about-tabs button { border-top:0; border-left:0; border-right:0; background:none; color:inherit; cursor:pointer; opacity:.6; }
.about-tabs button[aria-selected="true"],.about-tabs button:hover { opacity:1; }
.about-tabs button[aria-selected="true"] { box-shadow:inset 0 -2px currentColor; }
.about-tabs button:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.statement .statement-text[hidden] { display:none; }
.statement .reading-controls { gap:2px; font-size:9px; padding-bottom:4px; margin-bottom:32px; }
.statement .reading-controls .reading-step { font-size:21px; }
.statement .reading-value { font-size:10px; }
.statement .reading-controls .reading-reset { min-width:72px; gap:4px; }
.statement .reading-ruler { transform:scale(.85); transform-origin:center; }
.statement .reading-label { margin-right:8px; }
:is(.exhibition-viewport,.about-text-viewport).has-scroll { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:18px; }
:is(.exhibition-viewport,.about-text-viewport) .publication-rail { --ink:currentColor; --muted:currentColor; --rail-thumb:currentColor; --rail-mark:var(--accent); color:inherit; }
:is(.exhibition-viewport,.about-text-viewport) .publication-rail input:focus-visible { outline-color:currentColor; }
.about-text-scroll { min-width:0; overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:none; }
.about-text-scroll::-webkit-scrollbar { display:none; }
.about-text-scroll:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.about-text-content { display:flow-root; }
.about-text-measure { position:fixed; top:0; left:-10000px; visibility:hidden; pointer-events:none; }
.exhibition-selection { width:100%; min-width:0; max-height:min(440px,55vh); overflow-y:auto; overscroll-behavior-y:contain; scrollbar-width:none; }
.exhibition-selection::-webkit-scrollbar { display:none; }
.exhibition-selection:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
.exhibition-group + .exhibition-group { margin-top:24px; }
.exhibition-group h3 { margin:0 0 12px; font:800 12px/1.4 var(--sans); letter-spacing:.07em; text-transform:uppercase; }
.exhibition-selection-label { text-transform:none; }
.exhibition-list { list-style:none; padding:0; margin:0; }
.exhibition-list li { padding:12px 0; border-top:1px solid currentColor; font:calc(14px + var(--reading-adjustment,0px))/1.6 var(--description-font,var(--sans)); overflow-wrap:anywhere; }
.exhibition-dates { white-space:nowrap; font-variant-numeric:tabular-nums; }
.exhibition-list strong { font-weight:700; }
.pub-entry[hidden] { display:none; }
@media(max-width:750px) {
  .pub-entry summary { row-gap:8px; }
  .pub-type { display:block; grid-column:2; grid-row:2; font-size:9px; }
  .pub-expand { grid-column:3; grid-row:1 / span 2; }
}
.project-availability { margin:36px 0 54px; padding-top:28px; border-top:1px solid var(--line); }
.availability-description { max-width:720px; margin:0 0 20px; font:400 16px/1.6 var(--description-font,var(--sans)); }
.project-dialog .project-availability .contact-link { display:inline-flex; justify-content:space-between; align-items:center; gap:40px; width:auto; min-width:200px; max-width:100%; padding:18px 24px; background:var(--accent); color:var(--accent-contrast); border:1px solid var(--accent); font:800 20px/1.2 var(--sans); text-decoration:none; }
.project-dialog .project-availability .contact-link:hover { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.project-availability .contact-link:focus-visible { outline:2px solid var(--ink); outline-offset:5px; }
@media(max-width:600px) {
  :is(.exhibition-viewport,.about-text-viewport).has-scroll { gap:10px; }
  .project-dialog .project-availability .contact-link { min-width:180px; padding:16px 20px; }
}

.news-label { border:0; padding:0; background:none; color:inherit; cursor:pointer; }
.news-label:hover,.news-label:focus-visible { color:var(--accent); }
.email-dialog { --dialog-register-offset:41px; padding-left:calc(28px + var(--dialog-register-offset)); box-shadow:7px 7px var(--accent); }
.small-dialog-header { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; flex-shrink:0; margin-left:calc(-1 * var(--dialog-register-offset)); }
.small-dialog-header .dialog-hirondelle { position:relative; top:auto; right:auto; bottom:auto; flex:0 0 54px; transform:scaleX(-1); }
#newsDialog { height:min(460px,85vh); height:min(460px,85dvh); overflow:hidden; }
#newsDialog[open] { display:flex; flex-direction:column; }
#newsDialog h2 { flex-shrink:0; margin:14px 0; }
#newsDialog .news-title-row { display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-shrink:0; }
#newsDialog .news-title-row .filter-count { width:auto; margin:0; white-space:nowrap; }
@media(max-width:400px) { #newsDialog .news-title-row h2 { font-size:24px; } #newsDialog .news-title-row .filter-count { font-size:9px; } }
#newsDialog .news-viewport { display:grid; grid-template-columns:minmax(0,1fr) 44px; gap:12px; flex:1; min-height:0; }
#newsDialog .news-list { min-height:0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:none; padding:0; margin:0; }
#newsDialog .news-list::-webkit-scrollbar { display:none; }
#newsDialog .publication-rail input { width:44px; padding:0; border:0; background:transparent; color:inherit; }
#newsDialog .news-list:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
.news-list { list-style:none; padding:0; margin:22px 0 0; }
.news-list li { padding:18px 0; border-top:1px solid var(--line); font:16px/1.6 var(--description-font,var(--sans)); }
.utility-language-year { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.language-switch { display:inline-flex; align-items:center; gap:4px; }
.language-switch button { padding:3px 0; border:0; background:transparent; color:inherit; font:inherit; letter-spacing:inherit; cursor:pointer; }
.language-switch button[aria-pressed="true"] { text-decoration:underline; text-underline-offset:3px; }
.language-switch button:hover { color:var(--accent); }
.language-switch button:disabled { opacity:.45; cursor:default; }
.language-switch button:focus-visible { outline:1px solid var(--accent); outline-offset:3px; }
.news-external-link { display:inline-flex; align-items:center; justify-content:center; width:28px; height:28px; margin-left:8px; vertical-align:middle; color:inherit; }
.news-external-link:hover { color:var(--accent); }
.news-external-link:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.news-track:focus-within { animation-play-state:paused; }

/* Monochrome continu : ombres dans l'accent actif et lumières blanches. */
.visual-arrow { display:none; }
.project-image { position:relative; isolation:isolate; }
.project-image::after { content:''; position:absolute; inset:0; pointer-events:none; background:var(--accent); mix-blend-mode:screen; opacity:0; }
@media(hover:hover) {
  .project-image:hover > img { filter:grayscale(1); }
  .project-image:hover::after { opacity:1; }
}
.project:focus-visible .project-image > img { filter:grayscale(1); }
.project:focus-visible .project-image::after { opacity:1; }
