/* ============================================================
   113 — version ÉDITORIALE (Studio / Impact / Tech)
   ============================================================ */
@font-face {
  font-family:"Brown";
  src:url("Brown-Bold.ttf") format("truetype");
  font-weight:600 900;
  font-style:normal;
  font-display:swap;
}
*, *::before, *::after { box-sizing: border-box; }
:root {
  --maxw: 1220px; --gutter: clamp(20px, 5vw, 64px); --section-pad: clamp(30px, 4vw, 58px);
  --paper:#f6f2ea; --paper-2:#efe9dd; --ink:#18140d; --muted:#6b6354; --line:rgba(24,20,13,.14);
  --accent:#c75b39; --accent-ink:#fff; --card:#fffdf8; --radius:4px; --radius-lg:6px;
  --display:"Brown", "Bricolage Grotesque", system-ui, sans-serif; --display-weight:700; --display-tracking:-0.02em; --display-line:0.98;
  --body:"Hanken Grotesk", system-ui, sans-serif; --mono:"Space Mono", ui-monospace, monospace; --eyebrow-transform:uppercase;
}
[data-theme="studio"] {
  --paper:#f6f2ea; --paper-2:#ece5d7; --ink:#18140d; --muted:#6f6757; --line:rgba(24,20,13,.14);
  --accent:#c75b39; --accent-ink:#fdf6f1; --card:#fffdf8; --radius:3px; --radius-lg:5px;
  --display:"Brown", "Bricolage Grotesque", system-ui, sans-serif; --display-weight:700; --display-tracking:-0.025em; --display-line:0.96;
  --body:"Hanken Grotesk", system-ui, sans-serif;
}
[data-theme="impact"] {
  --paper:#efe9da; --paper-2:#e5ddc9; --ink:#1c2a20; --muted:#5e6a5c; --line:rgba(28,42,32,.16);
  --accent:#1f5037; --accent-ink:#f4efe2; --card:#f7f2e6; --radius:14px; --radius-lg:22px;
  --display:"Instrument Serif", Georgia, serif; --display-weight:400; --display-tracking:-0.005em; --display-line:1.04;
  --body:"Hanken Grotesk", system-ui, sans-serif;
}
[data-theme="tech"] {
  --paper:#0e0f0c; --paper-2:#16180f; --ink:#ecebe1; --muted:#8e9384; --line:rgba(236,235,225,.14);
  --accent:#b6f24a; --accent-ink:#11140a; --card:#16170f; --radius:2px; --radius-lg:3px;
  --display:"Space Grotesk", system-ui, sans-serif; --display-weight:600; --display-tracking:-0.02em; --display-line:1.0;
  --body:"Space Grotesk", system-ui, sans-serif;
}
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); font-size:18px; line-height:1.55; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; transition:background .35s ease, color .35s ease; }
.wrap { max-width:var(--maxw); margin:0 auto; padding-inline:var(--gutter); }
h1,h2,h3,h4 { font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-tracking); line-height:var(--display-line); margin:0; text-wrap:balance; }
p { margin:0; text-wrap:pretty; }
a { color:inherit; text-decoration:none; }
.eyebrow { font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:var(--eyebrow-transform); color:var(--accent); display:inline-flex; align-items:center; gap:10px; font-weight:700; }
.eyebrow::before { content:""; width:26px; height:1px; background:var(--accent); display:inline-block; }
.accent { color:var(--accent); }
.btn { display:inline-flex; align-items:center; gap:9px; font-family:var(--body); font-weight:700; font-size:15px; letter-spacing:.01em; padding:13px 22px; border-radius:var(--radius); border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); cursor:pointer; transition:transform .15s ease, opacity .2s ease, background .2s ease, color .2s ease; }
.btn:hover { transform:translateY(-2px); }
.btn--ghost { background:transparent; color:var(--ink); border-color:var(--line); }
.btn--ghost:hover { border-color:var(--ink); }
.btn .arr { transition:transform .2s ease; }
.btn:hover .arr { transform:translateX(3px); }
.site-header { position:sticky; top:0; z-index:40; backdrop-filter:blur(12px); background:color-mix(in srgb, var(--paper) 82%, transparent); border-bottom:1px solid var(--line); }
.site-header__inner { display:flex; align-items:center; justify-content:space-between; height:68px; }
.brand { display:inline-flex; align-items:center; gap:13px; }
.brand__logo { height:34px; width:auto; display:block; }
.brand__mark { font-family:"Brown", "Bricolage Grotesque", system-ui, sans-serif; font-weight:700; font-size:26px; letter-spacing:-.04em; line-height:1; color:var(--ink); }
.brand__sub { font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.nav { display:flex; align-items:center; gap:28px; }
.nav__links { display:flex; gap:26px; }
.nav__links a { font-size:14.5px; color:var(--muted); font-weight:600; transition:color .2s ease; white-space:nowrap; }
.nav__links a:hover { color:var(--ink); }
@media (max-width:860px){ .nav__links{ display:none; } }
.hero { padding-top:clamp(48px, 8vw, 96px); padding-bottom:var(--section-pad); position:relative; overflow:hidden; }
.hero__grid { display:grid; grid-template-columns:1.32fr 1fr; gap:clamp(32px,5vw,72px); align-items:end; }
@media (max-width:940px){ .hero__grid{ grid-template-columns:1fr; gap:40px; } }
.hero h1 { font-size:clamp(46px, 8.4vw, 116px); margin-top:22px; }
[data-theme="impact"] .hero h1 { line-height:1.16; font-size:clamp(42px, 7.6vw, 104px); }
[data-theme="impact"] .problem__big { line-height:1.2; }
[data-theme="impact"] .section__title,
[data-theme="impact"] .cta h2,
[data-theme="impact"] .place__body h2 { line-height:1.1; }
.hero h1 .lede-num { color:var(--accent); }
.hero__sub { font-size:clamp(18px, 2.1vw, 23px); color:var(--muted); max-width:30ch; margin-top:26px; line-height:1.45; }
.hero__cta { display:flex; gap:14px; margin-top:34px; flex-wrap:wrap; }
.hero__side { padding-bottom:8px; }
.hero__statement { font-family:var(--display); font-weight:var(--display-weight); font-size:clamp(20px, 2.3vw, 26px); line-height:1.25; letter-spacing:var(--display-tracking); border-left:2px solid var(--accent); padding-left:20px; }
[data-theme="impact"] .hero__statement { font-size:clamp(22px,2.5vw,30px); line-height:1.2; }
.hero__meta { margin-top:26px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--muted); line-height:1.9; }
.hero__meta span { color:var(--ink); }
.strip { border-block:1px solid var(--line); background:var(--paper-2); }
.strip__row { display:grid; grid-template-columns:repeat(4, 1fr); }
@media (max-width:760px){ .strip__row{ grid-template-columns:repeat(2, 1fr); } }
.stat { padding:30px var(--gutter); border-left:1px solid var(--line); }
.stat:first-child { border-left:none; }
@media (max-width:760px){ .stat:nth-child(odd){border-left:none;} .stat{border-top:1px solid var(--line);} .stat:nth-child(-n+2){border-top:none;} }
.stat__n { font-family:var(--display); font-weight:var(--display-weight); font-size:clamp(30px, 4vw, 46px); line-height:1; letter-spacing:-.03em; }
[data-theme="tech"] .stat__n { color:var(--accent); }
.stat__l { font-size:13.5px; color:var(--muted); margin-top:10px; max-width:22ch; }
section[id] { scroll-margin-top:80px; }
.section { padding-block:var(--section-pad); border-top:1px solid var(--line); }
.section--plain { border-top:none; }
.section__head { display:grid; grid-template-columns:0.9fr 1.1fr; gap:clamp(24px,4vw,56px); align-items:start; margin-bottom:clamp(40px, 6vw, 72px); }
@media (max-width:860px){ .section__head{ grid-template-columns:1fr; gap:18px; } }
.section__title { font-size:clamp(30px, 4.4vw, 56px); }
.section__intro { color:var(--muted); font-size:clamp(16px,1.7vw,19px); max-width:46ch; }
.section__intro strong { color:var(--ink); font-weight:700; }
.problem { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,64px); align-items:center; }
@media (max-width:860px){ .problem{ grid-template-columns:1fr; } }
.problem__big { font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-tracking); line-height:1.04; font-size:clamp(30px, 4.6vw, 58px); }
.problem__big em { font-style:normal; color:var(--accent); }
.problem__src { font-family:var(--mono); font-size:11.5px; color:var(--muted); margin-top:22px; letter-spacing:.03em; }
.problem__body p + p { margin-top:18px; }
.problem__body { color:var(--muted); font-size:17px; }
.problem__body strong { color:var(--ink); font-weight:700; }
.pillars { display:grid; grid-template-columns:repeat(3, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
@media (max-width:820px){ .pillars{ grid-template-columns:1fr; } }
.pillar { background:var(--card); padding:clamp(28px,3vw,40px); display:flex; flex-direction:column; gap:16px; min-height:280px; transition:background .25s ease; }
.pillar:hover { background:color-mix(in srgb, var(--card) 88%, var(--accent)); }
.pillar__tag { font-family:var(--mono); font-size:12px; letter-spacing:.12em; color:var(--accent); font-weight:700; }
.pillar__stage { font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.06em; }
.pillar__name { font-size:clamp(26px,3vw,38px); }
.pillar__desc { color:var(--muted); font-size:15.5px; margin-top:auto; }
.method { display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,64px); align-items:start; }
@media (max-width:860px){ .method{ grid-template-columns:1fr; gap:44px; } }
.funnel { display:flex; flex-direction:column; gap:4px; }
.funnel__row { display:flex; align-items:center; gap:18px; }
.funnel__bar { height:56px; white-space:nowrap; border-radius:var(--radius); background:var(--accent); color:var(--accent-ink); display:flex; align-items:center; padding-inline:20px; font-family:var(--display); font-weight:var(--display-weight); font-size:clamp(15px,1.7vw,20px); letter-spacing:-.01em; }
.funnel__row:nth-child(1) .funnel__bar { width:100%; }
.funnel__row:nth-child(2) .funnel__bar { width:74%; opacity:.86; }
.funnel__row:nth-child(3) .funnel__bar { width:50%; opacity:.72; }
.funnel__row:nth-child(4) .funnel__bar { width:28%; opacity:.6; }
[data-theme="tech"] .funnel__bar { background:color-mix(in srgb, var(--accent) 88%, #000); }
.funnel__cap { font-family:var(--mono); font-size:12.5px; color:var(--muted); white-space:nowrap; }
.funnel__cap b { color:var(--ink); }
.principles { display:flex; flex-direction:column; gap:14px; }
.principle { border:1px solid var(--line); border-radius:var(--radius); padding:20px 22px; background:var(--card); }
.principle__k { font-family:var(--mono); font-size:11px; color:var(--accent); letter-spacing:.1em; font-weight:700; }
.principle__t { font-size:19px; font-family:var(--display); font-weight:var(--display-weight); margin-top:8px; letter-spacing:var(--display-tracking); }
.principle__d { color:var(--muted); font-size:14.5px; margin-top:6px; }
.profile-note { margin-top:26px; border-top:1px dashed var(--line); padding-top:22px; }
.profile-note__t { font-family:var(--mono); font-size:11px; letter-spacing:.12em; color:var(--muted); text-transform:uppercase; }
.chips { display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.chip { font-size:13px; font-weight:600; padding:7px 13px; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:var(--card); }
[data-theme="tech"] .chip { font-family:var(--mono); font-size:11.5px; }
.place { display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(28px,4vw,56px); align-items:center; }
@media (max-width:860px){ .place{ grid-template-columns:1fr; } }
.place__body h2 { font-size:clamp(28px,4vw,52px); }
.place__lead { color:var(--muted); margin-top:20px; font-size:17px; max-width:44ch; }
.place__list { list-style:none; padding:0; margin:28px 0 0; display:grid; gap:14px; }
.place__list li { display:flex; gap:14px; align-items:baseline; font-size:15.5px; }
.place__list li::before { content:"→"; color:var(--accent); font-weight:700; }
.place__badge { display:inline-flex; align-items:center; gap:9px; margin-top:30px; font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--ink); border:1px solid var(--accent); border-radius:999px; padding:9px 16px; }
.place__badge b { color:var(--accent); }
.spaces { margin-top:clamp(40px,5vw,68px); }
.spaces__head { max-width:52ch; }
.spaces__intro { color:var(--muted); margin-top:14px; font-size:16px; }
.spaces__grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,2.5vw,32px); margin-top:clamp(24px,3vw,40px); }
@media (max-width:720px){ .spaces__grid{ grid-template-columns:1fr; } }
.space { display:flex; flex-direction:column; text-decoration:none; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; background:var(--card); transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.space:hover { transform:translateY(-3px); border-color:var(--accent); box-shadow:0 14px 34px color-mix(in srgb, var(--ink) 12%, transparent); }
.space__media { display:block; aspect-ratio:3/2; overflow:hidden; }
.space__media img { width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s ease; }
.space__gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:auto auto; gap:4px; }
.space__gallery .space__media--lead { grid-column:1 / -1; aspect-ratio:16/9; }
.space:hover .space__media img { transform:scale(1.04); }
.space__row { display:flex; align-items:baseline; justify-content:space-between; gap:14px; padding:18px 20px 0; }
.space__name { font-family:var(--display); font-weight:var(--display-weight); font-size:22px; letter-spacing:-.01em; }
.space__cap { font-family:var(--mono); font-size:12px; letter-spacing:.04em; color:var(--accent); white-space:nowrap; }
.space__cta { font-family:var(--mono); font-size:12.5px; letter-spacing:.05em; color:var(--muted); padding:12px 20px 18px; display:inline-flex; align-items:center; gap:8px; }
.space:hover .space__cta { color:var(--ink); }
.space__cta .arr { color:var(--accent); transition:transform .2s ease; }
.space:hover .space__cta .arr { transform:translateX(4px); }
.ph { position:relative; border-radius:var(--radius-lg); overflow:hidden; background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--ink) 8%, transparent) 0 2px, transparent 2px 11px), var(--paper-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; }
.ph__label { font-family:var(--mono); font-size:11.5px; letter-spacing:.06em; color:var(--muted); text-align:center; padding:14px 18px; background:color-mix(in srgb, var(--paper) 78%, transparent); border-radius:999px; }
.ph--place { aspect-ratio:4/5; }
.ph--place img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ph__credit { position:absolute; left:0; right:0; bottom:0; font-family:var(--mono); font-size:10.5px; letter-spacing:.05em; color:var(--paper); padding:18px 14px 11px; background:linear-gradient(transparent, color-mix(in srgb, var(--ink) 72%, transparent)); }
.ph--wide { aspect-ratio:16/10; }
.folio { display:grid; grid-template-columns:repeat(2, 1fr); gap:1px; background:var(--line); border:1px solid var(--line); border-radius:var(--radius-lg); overflow:hidden; }
@media (max-width:720px){ .folio{ grid-template-columns:1fr; } }
.folio__item { background:var(--card); padding:clamp(26px,3vw,38px); display:flex; flex-direction:column; gap:16px; min-height:230px; transition:background .25s ease; }
.folio__item:hover { background:color-mix(in srgb, var(--card) 90%, var(--accent)); }
.folio__logo { font-family:var(--display); font-weight:var(--display-weight); font-size:24px; letter-spacing:-.02em; }
.folio__logo span { color:var(--accent); }
.folio__top { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.folio__mark { flex:none; background:#fff; border:1px solid var(--line); border-radius:var(--radius); height:54px; width:72px; display:flex; align-items:center; justify-content:center; padding:8px 10px; }
.folio__mark img { max-height:100%; max-width:100%; width:auto; object-fit:contain; display:block; }
.folio__cat { font-family:var(--mono); font-size:11px; letter-spacing:.08em; color:var(--accent); text-transform:uppercase; font-weight:700; }
.folio__desc { color:var(--muted); font-size:15px; margin-top:auto; }
.folio__link { font-family:var(--mono); font-size:12px; color:var(--ink); display:inline-flex; gap:7px; align-items:center; margin-top:8px; }
.folio__link .arr { color:var(--accent); transition:transform .2s ease; }
.folio__item:hover .folio__link .arr { transform:translateX(4px); }
.team { display:grid; grid-template-columns:repeat(4, 1fr); gap:clamp(18px,2vw,28px); }
@media (max-width:900px){ .team{ grid-template-columns:repeat(2, 1fr); } }
@media (max-width:520px){ .team{ grid-template-columns:1fr; } }
.member__photo { aspect-ratio:1/1; }
.member__photo img { width:100%; height:100%; object-fit:cover; display:block; }
.member__name { font-size:21px; margin-top:18px; font-family:var(--display); font-weight:var(--display-weight); letter-spacing:var(--display-tracking); }
.member__role { font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--accent); text-transform:uppercase; margin-top:6px; font-weight:700; }
.member__bio { color:var(--muted); font-size:14px; margin-top:12px; line-height:1.5; }
.cta { border-top:1px solid var(--line); background:var(--paper-2); padding-block:clamp(72px, 10vw, 140px); }
.cta__grid { display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(32px,5vw,64px); align-items:end; }
@media (max-width:860px){ .cta__grid{ grid-template-columns:1fr; gap:40px; } }
.cta h2 { font-size:clamp(34px, 6vw, 84px); }
.cta__sub { color:var(--muted); margin-top:20px; max-width:38ch; font-size:18px; }
.cta__card { display:flex; flex-direction:column; gap:14px; }
.cta__line { display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--line); font-size:15px; }
.cta__line span { color:var(--muted); font-family:var(--mono); font-size:12px; letter-spacing:.04em; }
.cta__line b { font-weight:700; }
.foot { padding-block:30px; border-top:1px solid var(--line); }
.foot__row { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.foot__row, .foot__row a { font-family:var(--mono); font-size:12px; color:var(--muted); letter-spacing:.03em; }
.foot__row a:hover { color:var(--ink); }
.reveal { opacity:1; transform:none; }
