:root{
  --bg:#0b0d12;
  --bg-soft:#10131a;
  --panel:#141923;
  --panel-2:#191f2c;
  --ink:#f4f7fb;
  --text:#d7deea;
  --mid:#92a0b3;
  --muted:#647184;
  --purple:#7f70f2;
  --purple-light:#b2a8ff;
  --blue:#4c86d5;
  --steel:#9fb3c9;
  --line:rgba(255,255,255,.075);
  --line-strong:rgba(139,126,255,.28);
  --max:1240px;
  --header:72px;
  --shadow:0 30px 90px rgba(0,0,0,.42);
}

*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--bg)}
body{
  min-height:100vh;
  overflow-x:hidden;
  color:var(--text);
  background:
    radial-gradient(circle at 18% 10%,rgba(127,112,242,.08),transparent 32rem),
    radial-gradient(circle at 83% 17%,rgba(76,134,213,.06),transparent 28rem),
    var(--bg);
  font-family:"Manrope",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:400;
}
button,a{font:inherit}
a{color:inherit}
img,video{max-width:100%}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.ambient-grid{
  position:fixed;inset:0;pointer-events:none;z-index:-2;opacity:.54;
  background-image:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black 0,transparent 78%);
}

.site-header{
  position:fixed;left:0;right:0;top:0;z-index:1000;height:var(--header);
  border-bottom:1px solid var(--line-strong);
  background:rgba(10,12,17,.88);
  backdrop-filter:blur(18px) saturate(130%);
}
.header-inner{
  width:min(100%,1480px);height:100%;margin:0 auto;padding:0 clamp(1rem,3vw,2.5rem);
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;
}
.brand{display:inline-flex;align-items:center;gap:.8rem;text-decoration:none;width:max-content}
.brand-mark{
  display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line-strong);
  font-family:"Cinzel",serif;font-size:.68rem;letter-spacing:.12em;color:var(--purple-light);
  background:linear-gradient(145deg,rgba(127,112,242,.14),rgba(76,134,213,.05));
}
.brand-name{font-family:"Cinzel",serif;font-size:.79rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#fff;white-space:nowrap}
.site-nav{display:flex;align-items:center;justify-content:center;gap:.25rem}
.site-nav a{
  position:relative;padding:.65rem .9rem;text-decoration:none;text-transform:uppercase;
  font-size:.66rem;font-weight:600;letter-spacing:.16em;color:var(--muted);transition:.2s ease;
}
.site-nav a::after{content:"";position:absolute;left:.9rem;right:.9rem;bottom:.2rem;height:1px;background:var(--purple-light);transform:scaleX(0);transition:.2s ease}
.site-nav a:hover,.site-nav a.active{color:#fff}
.site-nav a.active::after{transform:scaleX(1)}
.header-side{display:flex;align-items:center;justify-content:flex-end;gap:1.1rem;min-width:0}
.language-line{font-size:.58rem;letter-spacing:.13em;text-transform:uppercase;color:var(--steel);white-space:nowrap}
.header-contact{
  border:1px solid var(--line-strong);padding:.62rem .85rem;text-decoration:none;text-transform:uppercase;
  font-size:.6rem;font-weight:700;letter-spacing:.16em;color:#fff;background:rgba(127,112,242,.06);transition:.2s ease;
}
.header-contact:hover{background:var(--purple);border-color:var(--purple);transform:translateY(-1px)}
.nav-toggle{display:none;border:0;background:none;width:40px;height:40px;position:relative;cursor:pointer}
.nav-toggle span:not(.sr-only){position:absolute;left:8px;right:8px;height:1px;background:#fff;transition:.2s ease}
.nav-toggle span:first-child{top:15px}.nav-toggle span:nth-child(2){top:24px}
.nav-toggle[aria-expanded="true"] span:first-child{transform:translateY(4.5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-4.5px) rotate(-45deg)}

.hero{
  min-height:100svh;padding:calc(var(--header) + 4rem) clamp(1rem,4vw,4rem) 5rem;
  display:grid;place-items:center;position:relative;overflow:hidden;
}
.hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(ellipse 46% 28% at 50% 42%,rgba(127,112,242,.16),transparent 72%),
    radial-gradient(ellipse 28% 28% at 20% 30%,rgba(76,134,213,.08),transparent 70%),
    linear-gradient(to bottom,transparent 0%,rgba(11,13,18,.22) 72%,var(--bg) 100%);
}
.hero-inner{width:min(1080px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;z-index:2}
.hero-kicker{font-size:clamp(.58rem,.8vw,.68rem);letter-spacing:.28em;text-transform:uppercase;color:var(--purple-light);font-weight:700}
.hero-title{
  position:relative;z-index:5;margin-top:1.6rem;max-width:1000px;
  font-family:"Cinzel",serif;font-size:clamp(3rem,7.7vw,7.2rem);font-weight:700;line-height:.92;
  letter-spacing:.035em;text-transform:uppercase;color:#fff;text-wrap:balance;
  text-shadow:0 12px 40px rgba(0,0,0,.6);
}
html[data-language="fr"] body[data-page="consulting"] .hero-title{
  width:100%;
  margin-left:auto;
  margin-right:auto;
  text-align:center;
  align-self:center;
}
.hero-media-wrap{width:min(620px,82vw);margin-top:2.65rem;position:relative;z-index:2}
.hero-media-wrap::before{
  content:"";position:absolute;inset:-14px;z-index:-1;
  background:radial-gradient(circle,rgba(127,112,242,.28),transparent 65%);filter:blur(24px);opacity:.7;
}
.hero-media{
  aspect-ratio:16/8.7;position:relative;overflow:hidden;border:1px solid rgba(177,168,255,.38);
  background:#0d1017;box-shadow:var(--shadow);
}
.hero-media::before,.hero-media::after{content:"";position:absolute;z-index:4;pointer-events:none}
.hero-media::before{inset:12px;border:1px solid rgba(255,255,255,.07)}
.hero-media::after{left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,transparent,var(--purple-light),var(--blue),transparent)}
.hero-media video{width:100%;height:100%;display:none;object-fit:cover;filter:saturate(.82) contrast(1.06) brightness(.86)}
.hero-media.has-media video{display:block}
.hero-media.has-media .media-fallback{display:none}
.hero-media-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,15,.06),rgba(8,10,15,.2) 55%,rgba(8,10,15,.56));pointer-events:none}
.media-fallback{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;
  background:
    radial-gradient(circle at 50% 50%,rgba(127,112,242,.16),transparent 33%),
    linear-gradient(135deg,#0b0e15,#151b27 55%,#0b0e15);
  color:var(--muted);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;overflow:hidden;
}
.media-fallback::before,.media-fallback::after{content:"";position:absolute;width:180px;height:180px;border:1px solid rgba(177,168,255,.14);transform:rotate(45deg);animation:floatDiamond 10s linear infinite}
.media-fallback::after{width:90px;height:90px;animation-duration:7s;animation-direction:reverse}
.fallback-core{width:18px;height:18px;border:1px solid var(--purple-light);transform:rotate(45deg);box-shadow:0 0 28px rgba(127,112,242,.65)}
.hero-statement{max-width:820px;margin-top:1.8rem;color:#aab5c4;font-size:clamp(.98rem,1.4vw,1.13rem);line-height:1.75;font-weight:300;text-wrap:balance}
.hero-actions{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap;margin-top:1.8rem}
.button{
  min-height:48px;padding:.9rem 1.25rem;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  border:1px solid var(--line-strong);text-transform:uppercase;font-size:.66rem;font-weight:700;letter-spacing:.18em;transition:.2s ease;
}
.button-primary{background:var(--purple);border-color:var(--purple);color:#fff}
.button-primary:hover{transform:translateY(-2px);filter:brightness(1.08)}
.button-ghost{background:rgba(14,17,24,.62);color:var(--text)}
.button-ghost:hover{transform:translateY(-2px);border-color:var(--purple-light);color:#fff}
.remote-line{margin-top:1.35rem;display:flex;align-items:center;gap:.6rem;color:var(--steel);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}
.status-dot{width:6px;height:6px;border-radius:50%;background:#7be0b2;box-shadow:0 0 15px rgba(123,224,178,.75)}
.hero-orbit{position:absolute;border:1px solid rgba(177,168,255,.1);border-radius:50%;pointer-events:none}
.hero-orbit-a{width:520px;height:520px;left:-250px;top:18%;animation:slowRotate 22s linear infinite}
.hero-orbit-b{width:390px;height:390px;right:-200px;bottom:5%;animation:slowRotate 18s linear infinite reverse}

.signal-strip{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(255,255,255,.015)}
.signal-track{width:max-content;display:flex;align-items:center;gap:2.5rem;padding:1.05rem 0;animation:marquee 28s linear infinite}
.signal-track span{font-family:"Cinzel",serif;font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.signal-track span::after{content:"◇";margin-left:2.5rem;color:var(--purple)}

.section{padding:clamp(5rem,8vw,8rem) clamp(1rem,4vw,4rem)}
.section-shell{width:min(var(--max),100%);margin:0 auto}
.section-dark{background:linear-gradient(180deg,rgba(18,22,31,.86),rgba(12,15,21,.88));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.section-label{font-size:.62rem;letter-spacing:.24em;text-transform:uppercase;color:var(--purple-light);font-weight:700}
.section h2,.folio-hero h1,.project-copy h2,.physical-project h2{
  font-family:"Cinzel",serif;text-transform:uppercase;color:#fff;letter-spacing:.025em;font-weight:650;
}
.section h2{font-size:clamp(2rem,4.6vw,4.4rem);line-height:1.05;margin-top:.8rem;text-wrap:balance}
.section-heading{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,.8fr);gap:3rem;align-items:end;margin-bottom:3.4rem}
.section-heading>p{color:var(--mid);font-size:.95rem;line-height:1.8;max-width:520px;justify-self:end}
.split-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:start}
.intro-copy{font-size:clamp(1rem,1.35vw,1.14rem);line-height:1.9;color:var(--mid)}
.intro-copy p+p{margin-top:1.2rem}

.mission-list{border-top:1px solid var(--line)}
.mission-row{
  display:grid;grid-template-columns:64px minmax(220px,.65fr) minmax(0,1.35fr);gap:2rem;
  padding:2rem 0;border-bottom:1px solid var(--line);transition:.22s ease;
}
.mission-row:hover{padding-left:0;background:none}
.mission-index{font-family:"Cinzel",serif;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.28);font-size:1.65rem}
.mission-name span{display:block;color:var(--purple-light);font-size:.57rem;text-transform:uppercase;letter-spacing:.2em;margin-bottom:.55rem}
.mission-name h3{font-family:"Cinzel",serif;color:#fff;text-transform:uppercase;font-size:1.02rem;line-height:1.35;letter-spacing:.055em;transition:color .22s ease,text-shadow .22s ease}
.mission-row:hover .mission-name h3{color:var(--purple-light);text-shadow:0 0 20px rgba(127,112,242,.42)}
.mission-body p{color:var(--mid);line-height:1.72;font-size:.91rem}
.mission-body .mission-example{margin-top:.72rem;color:var(--steel);font-size:.84rem}
.mission-example b{color:#d8d5ff;font-weight:600}

.domain-grid{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--line);gap:1px}
.domain-card{min-height:245px;padding:1.7rem;background:var(--panel);position:relative;overflow:hidden}
.domain-card::after{content:"";position:absolute;inset:auto -20% -70% 20%;height:150px;background:radial-gradient(circle,rgba(127,112,242,.12),transparent 70%)}
.domain-card span{font-family:"Cinzel",serif;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.25);font-size:2.6rem}
.domain-card h3{margin:1.5rem 0 .8rem;color:#fff;text-transform:uppercase;font-size:.78rem;letter-spacing:.13em;line-height:1.5}
.domain-card p{color:var(--mid);font-size:.86rem;line-height:1.7}

.case-grid{display:grid;grid-template-columns:1.35fr .825fr;gap:1rem}
.case-card{padding:clamp(1.7rem,3vw,2.5rem);border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(127,112,242,.03));min-height:280px;position:relative;overflow:hidden}
.case-card.featured{grid-row:span 2;min-height:576px;background:linear-gradient(150deg,rgba(127,112,242,.13),rgba(20,25,35,.82) 55%,rgba(76,134,213,.06))}
.case-card::before{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:linear-gradient(var(--purple),transparent)}
.case-meta{display:flex;justify-content:space-between;gap:1rem;color:var(--purple-light);font-size:.56rem;text-transform:uppercase;letter-spacing:.18em}
.case-card h3{font-family:"Cinzel",serif;text-transform:uppercase;color:#fff;font-size:clamp(1.35rem,2.5vw,2.5rem);line-height:1.15;margin:2rem 0 1.1rem}
.case-card:not(.featured) h3{font-size:1.28rem}
.case-card p{color:var(--mid);line-height:1.82;font-size:.9rem}
.case-path{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:3rem;color:#fff;text-transform:uppercase;font-size:.58rem;letter-spacing:.16em}
.case-path i{height:1px;flex:1;min-width:25px;background:linear-gradient(90deg,var(--purple),rgba(127,112,242,.05))}

.process-section{padding-top:3rem}
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.process-card{padding:1.6rem;border-top:1px solid var(--line-strong);background:rgba(255,255,255,.02);min-height:220px}
.process-card>span{font-family:"Cinzel",serif;font-size:1.8rem;color:var(--purple-light)}
.process-card h3{margin:1.6rem 0 .7rem;color:#fff;text-transform:uppercase;font-size:.75rem;letter-spacing:.14em}
.process-card p{color:var(--mid);font-size:.85rem;line-height:1.7}

.portfolio-section{padding-top:4rem}
.portfolio-links{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.portfolio-link{
  min-height:330px;padding:2rem;display:grid;grid-template-columns:auto 1fr auto;gap:1.5rem;align-items:end;
  text-decoration:none;border:1px solid var(--line);position:relative;overflow:hidden;background:var(--panel);transition:.25s ease;
}
.portfolio-link::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(127,112,242,.15),transparent 45%),linear-gradient(145deg,rgba(255,255,255,.02),transparent);transition:.3s ease}
.portfolio-link:nth-child(2)::before{background:radial-gradient(circle at 80% 20%,rgba(76,134,213,.14),transparent 45%),linear-gradient(145deg,rgba(255,255,255,.02),transparent)}
.portfolio-link>*{position:relative;z-index:2}
.portfolio-link:hover{transform:translateY(-4px);border-color:var(--line-strong)}
.portfolio-number{align-self:start;font-family:"Cinzel",serif;font-size:3rem;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.28)}
.portfolio-link p{font-size:.6rem;text-transform:uppercase;letter-spacing:.2em;color:var(--purple-light)}
.portfolio-link h3{font-family:"Cinzel",serif;color:#fff;text-transform:uppercase;font-size:clamp(1.55rem,3vw,2.5rem);margin:.55rem 0}
.portfolio-link div>span{color:var(--mid);font-size:.84rem}
.portfolio-link b{font-size:1.4rem;color:var(--purple-light);font-weight:400}

.contact-panel{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;align-items:center;padding:clamp(2rem,5vw,4.5rem);border:1px solid var(--line-strong);background:linear-gradient(135deg,rgba(127,112,242,.12),rgba(76,134,213,.035));position:relative;overflow:hidden}
.contact-panel::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:linear-gradient(var(--purple),var(--blue))}
.contact-panel p:not(.section-label){max-width:760px;color:var(--mid);line-height:1.8;margin-top:1rem}
.contact-actions{display:flex;flex-direction:column;align-items:flex-end;gap:1rem}
.contact-actions span{color:var(--muted);font-size:.72rem;letter-spacing:.1em}
.text-link{color:var(--steel);text-transform:uppercase;font-size:.62rem;letter-spacing:.16em;text-decoration:none}
.text-link:hover{color:#fff}

.site-footer{padding:2rem clamp(1rem,4vw,4rem);border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:1rem;color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}
.footer-brand .brand-name{font-size:.68rem}
.footer-brand .brand-mark{width:30px;height:30px}

.folio-hero{padding:calc(var(--header) + 6rem) clamp(1rem,4vw,4rem) 5rem;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.folio-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 70% 40%,rgba(127,112,242,.12),transparent 30rem);pointer-events:none}
.folio-hero-inner{width:min(var(--max),100%);margin:0 auto;position:relative}
.folio-hero h1{font-size:clamp(3rem,8vw,7.2rem);line-height:.95;margin-top:1rem;max-width:1000px}
.folio-hero p:last-child{max-width:760px;color:var(--mid);line-height:1.8;margin-top:1.5rem;font-size:1rem}
.folio-list-section,.physical-list-section{padding-top:5rem}
.video-project-list{display:grid;gap:6rem}
.video-project{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.video-project.reverse{grid-template-columns:minmax(280px,.55fr) minmax(0,1.45fr)}
.video-project.reverse .project-media{order:2}.video-project.reverse .project-copy{order:1}
.project-video{position:relative;aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line-strong);background:#0b0e15;box-shadow:var(--shadow)}
.project-video::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 12px rgba(255,255,255,.018);pointer-events:none}
.project-video video{width:100%;height:100%;display:none;object-fit:cover}
.project-video.has-media video{display:block}.project-video.has-media .media-fallback{display:none}
/* Native video player, kept deliberately browser-standard for reliable
   sound, pause, seeking, volume, fullscreen and mobile accessibility. */
.hero-media video,.project-video video{
  accent-color:var(--purple-light);
  background:#05070b;
}
.hero-media.has-player,.project-video.has-player{
  border-color:rgba(177,168,255,.5);
}
.hero-media.has-player:focus-within,.project-video.has-player:focus-within{
  border-color:var(--purple-light);
  box-shadow:0 0 0 1px rgba(177,168,255,.18),var(--shadow);
}
.project-video.has-player video{cursor:pointer}

.project-copy .project-number{font-family:"Cinzel",serif;font-size:4.5rem;line-height:.8;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.28)}
.project-copy h2{font-size:clamp(1.7rem,3.6vw,3.1rem);line-height:1.05;margin:.8rem 0 1rem}
.project-copy>p:not(.section-label){color:var(--mid);line-height:1.8;font-size:.92rem}
.project-copy ul{list-style:none;margin-top:1.4rem;display:grid;gap:.55rem}
.project-copy li{font-size:.62rem;text-transform:uppercase;letter-spacing:.16em;color:var(--steel)}
.project-copy li::before{content:"◇";color:var(--purple-light);margin-right:.6rem}

.project-media{min-width:0;display:grid;gap:.9rem}
.visual-research{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem;width:100%}
.research-image{
  appearance:none;position:relative;isolation:isolate;overflow:hidden;aspect-ratio:4/3;min-width:0;
  border:1px solid var(--line);background:
    linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px),
    linear-gradient(145deg,#111621,#0c1017);
  background-size:22px 22px,22px 22px,cover;background-position:center;color:var(--muted);cursor:pointer;
  transition:transform .22s ease,border-color .22s ease,background-size .35s ease;
}
.research-image::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 50% 42%,rgba(127,112,242,.14),transparent 48%)}
.research-image::after{content:"";position:absolute;inset:0;z-index:0;background:linear-gradient(180deg,transparent 45%,rgba(5,7,11,.82));pointer-events:none}
.research-image span{position:absolute;left:.85rem;right:.85rem;bottom:.75rem;z-index:1;text-align:left;font-size:.53rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--steel)}
.research-image:hover{transform:translateY(-2px);border-color:var(--line-strong)}
.research-image.has-image{background-size:cover;background-position:center}
.research-image.has-image::before{display:none}
.research-image.has-image span{opacity:0}

.physical-project-list{display:grid;gap:7rem}
.physical-project{border-top:1px solid var(--line-strong);padding-top:2rem}
.physical-project-head{display:grid;grid-template-columns:100px 1fr;gap:2rem;align-items:start;margin-bottom:2rem}
.physical-project-head .project-number{font-family:"Cinzel",serif;font-size:4rem;line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.28)}
.physical-project h2{font-size:clamp(1.8rem,4vw,3.6rem);margin:.55rem 0 .8rem}
.physical-project-head p:last-child{color:var(--mid);line-height:1.75}
.physical-media-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:1rem}
.physical-video{aspect-ratio:4/3}
.physical-gallery{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1rem;min-height:100%}
.gallery-item{border:1px solid var(--line);background:linear-gradient(145deg,#111621,#0d1017);position:relative;overflow:hidden;cursor:pointer;min-height:160px;background-size:cover;background-position:center;color:var(--muted)}
.gallery-item:first-child{grid-column:span 2}
.gallery-item::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(7,9,13,.72));transition:.25s ease}
.gallery-item:hover::before{background:linear-gradient(180deg,rgba(127,112,242,.04),rgba(7,9,13,.52))}
.gallery-item.has-image span{opacity:0}
.gallery-item span{position:absolute;left:1rem;bottom:1rem;z-index:2;font-size:.58rem;text-transform:uppercase;letter-spacing:.17em}
.physical-details{display:grid;grid-template-columns:1.2fr .8fr;gap:3rem;padding:2rem;background:var(--panel);border:1px solid var(--line);border-top:0}
.physical-details>div>p:last-child{color:var(--mid);line-height:1.8;margin-top:.8rem;font-size:.9rem}
.physical-details dl{display:grid}
.physical-details dl>div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--line)}
.physical-details dt{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.physical-details dd{font-size:.78rem;color:var(--text);text-align:right}
.lightbox{position:fixed;inset:0;z-index:2000;background:rgba(3,4,7,.94);display:none;place-items:center;padding:3rem}
.lightbox.open{display:grid}.lightbox img{max-width:min(1200px,92vw);max-height:88vh;box-shadow:var(--shadow)}
.lightbox-close{position:absolute;right:2rem;top:2rem;width:44px;height:44px;border:1px solid var(--line-strong);background:#11151d;color:#fff;font-size:1.5rem;cursor:pointer}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.visible{opacity:1;transform:none}

@keyframes slowRotate{to{transform:rotate(360deg)}}
@keyframes floatDiamond{0%{transform:translate(-20px,-12px) rotate(45deg)}50%{transform:translate(24px,18px) rotate(225deg)}100%{transform:translate(-20px,-12px) rotate(405deg)}}
@keyframes marquee{to{transform:translateX(-50%)}}

@media(max-width:1050px){
  .header-inner{grid-template-columns:1fr auto}.site-nav{grid-column:2}.header-side{display:none}
  .section-heading,.split-intro,.contact-panel{grid-template-columns:1fr}.section-heading>p{justify-self:start}
  .domain-grid{grid-template-columns:repeat(2,1fr)}
  .process-grid{grid-template-columns:repeat(2,1fr)}
  .contact-actions{align-items:flex-start}
  .video-project,.video-project.reverse{grid-template-columns:1fr}.video-project.reverse .project-media,.video-project.reverse .project-copy{order:initial}
  .physical-media-grid{grid-template-columns:1fr}.physical-gallery{min-height:520px}
}

@media(max-width:760px){
  :root{--header:62px}
  .site-header{height:var(--header)}
  .header-inner{display:flex;justify-content:space-between;padding:0 1rem}
  .brand-name{font-size:.68rem;letter-spacing:.12em}
  .brand-mark{width:31px;height:31px}
  .nav-toggle{display:block;z-index:3}
  .site-nav{
    position:fixed;left:0;right:0;top:var(--header);padding:1rem;background:rgba(10,12,17,.98);
    border-bottom:1px solid var(--line-strong);display:none;flex-direction:column;align-items:stretch;gap:.25rem;
  }
  .site-nav.open{display:flex}.site-nav a{text-align:center;padding:.9rem}.site-nav a::after{display:none}
  .hero{min-height:auto;padding:calc(var(--header) + 4rem) 1rem 4rem}
  .hero-title{font-size:clamp(2.75rem,14vw,4.8rem);line-height:.96}
  .hero-media-wrap{width:min(92vw,560px);margin-top:2rem}
  .hero-media{aspect-ratio:16/9}
  .hero-statement{font-size:.94rem;line-height:1.72}
  .remote-line{font-size:.54rem;letter-spacing:.1em}
  .hero-orbit{display:none}
  .section{padding:4.5rem 1rem}
  .section-heading{gap:1.4rem;margin-bottom:2.4rem}
  .section h2{font-size:clamp(1.85rem,9vw,3rem)}
  .mission-row{grid-template-columns:42px 1fr;gap:1rem;padding:1.6rem 0}
  .mission-body{grid-column:2}.mission-row:hover{padding-left:0;background:none}
  .domain-grid,.case-grid,.portfolio-links,.process-grid{grid-template-columns:1fr}
  .case-card.featured{grid-row:auto;min-height:0}
  .case-path i{display:none}
  .portfolio-link{min-height:270px;grid-template-columns:auto 1fr;padding:1.4rem}
  .portfolio-link b{display:none}
  .site-footer{flex-direction:column;align-items:flex-start}
  .folio-hero{padding:calc(var(--header) + 4rem) 1rem 3.5rem}
  .folio-hero h1{font-size:clamp(2.7rem,14vw,5rem)}
  .video-project-list{gap:4rem}
  .visual-research{gap:.65rem}
  .research-image span{font-size:.49rem;left:.65rem;right:.65rem;bottom:.6rem}
  .project-copy .project-number{font-size:3.5rem}
  .physical-project-head{grid-template-columns:60px 1fr;gap:1rem}
  .physical-project-head .project-number{font-size:3rem}
  .physical-gallery{min-height:380px}
  .physical-details{grid-template-columns:1fr;gap:1.5rem;padding:1.4rem}
}

@media(max-width:430px){
  .brand-name{display:none}
  .hero-kicker{letter-spacing:.18em;line-height:1.7}
  .hero-actions{width:100%}.hero-actions .button{width:100%}
  .signal-track{animation-duration:20s}
  .visual-research{grid-template-columns:1fr}
  .research-image{aspect-ratio:16/9}
  .physical-gallery{grid-template-columns:1fr;grid-template-rows:repeat(3,180px);min-height:auto}
  .gallery-item:first-child{grid-column:auto}
}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.signal-track,.hero-orbit,.media-fallback::before,.media-fallback::after{animation:none!important}
  *{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}

/* Direct bridge from the first AI film to its physical figurine */
.project-bridge{margin-top:1.35rem;width:max-content;max-width:100%}


/* Multilingual header and hidden artist profile */
.brand-home{width:max-content}
.header-side{gap:1.25rem}
.language-switcher{display:flex;align-items:center;gap:.42rem;white-space:nowrap}
.language-switcher button{appearance:none;border:0;background:transparent;color:var(--muted);padding:.3rem .12rem;cursor:pointer;font-size:.55rem;font-weight:600;letter-spacing:.08em;transition:color .2s ease,text-shadow .2s ease}
.language-switcher span{font-size:.5rem;color:rgba(159,179,201,.35)}
.language-switcher button:hover,.language-switcher button.active{color:#fff;text-shadow:0 0 14px rgba(177,168,255,.55)}
.artist-profile-link{display:inline-flex;align-items:center;justify-content:flex-end;gap:.55rem;font-family:"Cinzel",serif;font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;text-decoration:none;color:#fff;white-space:nowrap;transition:color .2s ease,text-shadow .2s ease}
.artist-profile-link::before{content:"→";display:inline-block;color:var(--purple-light);font-family:"Manrope",sans-serif;font-size:.92rem;font-weight:400;letter-spacing:0;filter:drop-shadow(0 0 8px rgba(177,168,255,.55));animation:profilePointer 1.8s ease-in-out infinite}
.artist-profile-link:hover{color:var(--purple-light);text-shadow:0 0 18px rgba(177,168,255,.5)}
.artist-profile-link:hover::before{color:#fff;animation-play-state:paused;transform:translateX(4px)}
.mobile-nav-meta{display:none}

.profile-hero{min-height:78svh;padding:calc(var(--header) + 6rem) clamp(1rem,4vw,4rem) 6rem;display:grid;place-items:center;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.profile-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 44%,rgba(127,112,242,.16),transparent 31rem),radial-gradient(circle at 20% 70%,rgba(76,134,213,.07),transparent 24rem);pointer-events:none}
.profile-hero-inner{width:min(1040px,100%);position:relative;text-align:center}
.profile-hero h1{font-family:"Cinzel",serif;font-size:clamp(3.2rem,9vw,8.3rem);line-height:.9;letter-spacing:.025em;text-transform:uppercase;color:#fff;margin:1.4rem auto 2rem;text-shadow:0 20px 55px rgba(0,0,0,.56)}
.profile-lead{max-width:800px;margin:0 auto;color:var(--mid);font-size:clamp(1rem,1.5vw,1.22rem);line-height:1.85;text-wrap:balance}
.profile-signals{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;margin-top:2.4rem}
.profile-signals span{border:1px solid var(--line-strong);padding:.58rem .8rem;color:var(--steel);font-size:.58rem;letter-spacing:.15em;text-transform:uppercase;background:rgba(127,112,242,.04)}
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.profile-card{min-height:360px;padding:clamp(1.7rem,3vw,2.7rem);border:1px solid var(--line);background:linear-gradient(145deg,rgba(255,255,255,.025),rgba(127,112,242,.035));position:relative;overflow:hidden}
.profile-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(var(--purple),transparent)}
.profile-index{display:block;font-family:"Cinzel",serif;font-size:3.2rem;color:transparent;-webkit-text-stroke:1px rgba(177,168,255,.25);margin-bottom:2.2rem}
.profile-card h2{font-size:clamp(1.5rem,2.7vw,2.5rem);margin:.75rem 0 1.1rem;line-height:1.15}
.profile-card>p:last-child{color:var(--mid);font-size:.92rem;line-height:1.85}
.profile-manifesto{text-align:center}
.profile-manifesto blockquote{max-width:1040px;margin:1.5rem auto 0;font-family:"Cinzel",serif;color:#fff;font-size:clamp(1.5rem,3.8vw,3.6rem);line-height:1.28;text-wrap:balance}

html[data-language="ja"] body{font-family:"Manrope","Noto Sans JP",system-ui,sans-serif}
html[data-language="ja"] .section h2,html[data-language="ja"] .folio-hero h1,html[data-language="ja"] .profile-hero h1,html[data-language="ja"] .project-copy h2,html[data-language="ja"] .physical-project h2,html[data-language="ja"] .profile-manifesto blockquote{letter-spacing:.02em;line-height:1.2}

@media(max-width:1180px){
  .language-switcher button{font-size:.51rem}.artist-profile-link{font-size:.59rem}.header-inner{gap:1rem}
}
@media(min-width:761px) and (max-width:1050px){
  .header-inner{grid-template-columns:auto 1fr auto;gap:.7rem}
  .site-nav{grid-column:auto}
  .header-side{display:flex;gap:.55rem}
  .language-switcher{gap:.25rem}
  .language-switcher button{font-size:.46rem;letter-spacing:.04em}
  .artist-profile-link{font-size:.5rem;letter-spacing:.08em}
}
@media(max-width:760px){
  .header-side{display:none}
  .mobile-nav-meta{display:grid;gap:1rem;margin-top:.6rem;padding-top:1rem;border-top:1px solid var(--line)}
  .mobile-artist-link{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;text-align:center;text-decoration:none;font-family:"Cinzel",serif;color:#fff;text-transform:uppercase;font-size:.68rem;letter-spacing:.14em;padding:.7rem}.mobile-artist-link::before{content:"→";color:var(--purple-light);font-family:"Manrope",sans-serif;font-size:.9rem;letter-spacing:0}
  .mobile-language-switcher{justify-content:center;padding:.4rem 0 .8rem}
  .mobile-language-switcher button{font-size:.61rem}
}
@media(max-width:760px){
  .profile-hero{min-height:auto;padding:calc(var(--header) + 5rem) 1rem 4.5rem}
  .profile-hero h1{font-size:clamp(2.75rem,15vw,5.5rem)}
  .profile-grid{grid-template-columns:1fr}
  .profile-card{min-height:0}
}

@keyframes profilePointer{0%,100%{transform:translateX(0);opacity:.65}50%{transform:translateX(4px);opacity:1}}



/* Artist profile link: permanently visible at top-left with a text-width motion cue */
.artist-home-link{
  position:relative;
  display:inline-block;
  width:max-content;
  max-width:100%;
  padding:.48rem 0 .58rem;
  font-family:"Cinzel",serif;
  font-size:.72rem;
  font-weight:700;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:none;
  color:#fff;
  white-space:nowrap;
  transition:color .22s ease,text-shadow .22s ease;
}
.artist-home-link::after{
  content:"";
  position:absolute;
  left:0;
  right:.14em;
  bottom:.18rem;
  height:1px;
  background:linear-gradient(90deg,transparent 0%,var(--purple-light) 22%,#fff 50%,var(--blue) 78%,transparent 100%);
  opacity:.55;
  transform:scaleX(.34);
  transform-origin:center;
  filter:drop-shadow(0 0 5px rgba(177,168,255,.7));
  animation:artistLinkSignal 2.8s cubic-bezier(.45,0,.55,1) infinite;
}
.artist-home-link:hover,
.artist-home-link:focus-visible{
  color:var(--purple-light);
  text-shadow:0 0 18px rgba(177,168,255,.52);
  outline:none;
}
.artist-home-link:hover::after,
.artist-home-link:focus-visible::after{
  opacity:1;
  transform:scaleX(1);
  animation-play-state:paused;
}

@keyframes artistLinkSignal{
  0%,100%{transform:scaleX(.28);opacity:.38}
  48%{transform:scaleX(1);opacity:.95}
  62%{transform:scaleX(.88);opacity:.72}
}

@media(max-width:760px){
  .site-header{
    background:rgba(248,250,255,.96);
    border-bottom:1px solid rgba(127,112,242,.48);
    box-shadow:0 8px 28px rgba(0,0,0,.2),0 1px 0 rgba(255,255,255,.9) inset;
    backdrop-filter:blur(18px) saturate(125%);
  }
  .artist-home-link{
    font-size:.62rem;
    letter-spacing:.1em;
    padding-right:.2rem;
    color:#10131a;
    text-shadow:none;
  }
  .artist-home-link::after{
    background:linear-gradient(90deg,transparent 0%,#6657dd 22%,#10131a 50%,#356fbf 78%,transparent 100%);
    filter:drop-shadow(0 0 4px rgba(102,87,221,.35));
  }
  .nav-toggle span:not(.sr-only){background:#10131a;height:2px}
  .mobile-nav-meta{margin-top:.35rem}
}
@media(max-width:430px){
  .artist-home-link{font-size:.53rem;letter-spacing:.065em}
}
@media(prefers-reduced-motion:reduce){
  .artist-home-link::after{animation:none;transform:scaleX(1);opacity:.62}
}

/* Main presentation film: silent visual loop, never an interactive player */
.hero-media:not(.has-player) video{pointer-events:none}


/* Compact social constellation in the header */
.social-links{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.34rem;
}
.social-link{
  position:relative;
  width:31px;
  height:31px;
  flex:0 0 31px;
  display:grid;
  place-items:center;
  border:1px solid rgba(159,179,201,.18);
  background:linear-gradient(145deg,rgba(255,255,255,.022),rgba(127,112,242,.055));
  color:var(--steel);
  text-decoration:none;
  overflow:hidden;
  transition:color .2s ease,border-color .2s ease,background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.social-link::before{
  content:"";
  position:absolute;
  inset:auto -35% -85% 20%;
  height:45px;
  background:radial-gradient(circle,rgba(127,112,242,.3),transparent 68%);
  opacity:0;
  transition:opacity .2s ease,transform .2s ease;
}
.social-link svg{
  position:relative;
  z-index:1;
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.social-link .social-icon-dot{fill:currentColor;stroke:none}
.social-link:hover,.social-link:focus-visible{
  color:#fff;
  border-color:rgba(177,168,255,.72);
  background:rgba(127,112,242,.13);
  box-shadow:0 0 22px rgba(127,112,242,.17);
  transform:translateY(-2px);
  outline:none;
}
.social-link:hover::before,.social-link:focus-visible::before{opacity:1;transform:translateY(-5px)}
.header-socials{padding-right:.78rem;border-right:1px solid var(--line)}
.mobile-socials{display:none}

@media(min-width:761px) and (max-width:1180px){
  .header-side{gap:.58rem}
  .header-socials{gap:.22rem;padding-right:.48rem}
  .header-socials .social-link{width:26px;height:26px;flex-basis:26px}
  .header-socials .social-link svg{width:13px;height:13px}
}

@media(max-width:760px){
  .mobile-socials{
    display:flex;
    margin:.1rem auto .45rem;
    padding:.25rem 0 .85rem;
    border-bottom:1px solid var(--line);
    width:min(280px,100%);
  }
  .mobile-socials .social-link{width:38px;height:38px;flex-basis:38px}
  .mobile-socials .social-link svg{width:18px;height:18px}

  /* On phones, context comes first: title and text above the moving image. */
  .video-project,.video-project.reverse{display:flex;flex-direction:column;gap:1.65rem}
  .video-project .project-copy,.video-project.reverse .project-copy{order:1;width:100%}
  .video-project .project-media,.video-project.reverse .project-media{order:2;width:100%}
}


/* v6: persistent, unmistakable social logos in the actual top banner */
.header-inner{
  grid-template-columns:minmax(170px,1fr) auto auto minmax(180px,1fr);
  gap:clamp(.65rem,1.5vw,1.4rem);
}
.header-socials{
  display:flex!important;
  padding:0;
  border:0;
  gap:.42rem;
  align-self:center;
  justify-self:center;
  --social-cut:#0b0d12;
}
.header-side{display:flex;justify-self:end}
.social-link{
  width:34px;
  height:34px;
  flex-basis:34px;
  border-color:rgba(177,168,255,.32);
  background:linear-gradient(145deg,rgba(177,168,255,.08),rgba(76,134,213,.035));
  color:#edf1f7;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
}
.social-link svg{width:17px;height:17px;display:block;fill:none;stroke:currentColor;stroke-width:1.8}
.social-link .social-solid{fill:currentColor;stroke:none}
.social-link .social-cut{fill:var(--social-cut);stroke:none}
.social-youtube:hover,.social-youtube:focus-visible{color:#ff5c6d;border-color:rgba(255,92,109,.75);box-shadow:0 0 22px rgba(255,92,109,.16)}
.social-x:hover,.social-x:focus-visible{color:#fff}
.social-instagram:hover,.social-instagram:focus-visible{color:#cf9cff;border-color:rgba(207,156,255,.75)}
.social-email:hover,.social-email:focus-visible{color:#8fbaff;border-color:rgba(143,186,255,.75)}

@media(min-width:761px) and (max-width:1100px){
  .header-inner{grid-template-columns:minmax(130px,.8fr) auto auto minmax(145px,.8fr);gap:.55rem;padding-inline:1rem}
  .artist-home-link{font-size:.57rem;letter-spacing:.075em}
  .site-nav a{font-size:.55rem;padding-inline:.58rem;letter-spacing:.1em}
  .header-socials{gap:.25rem}
  .header-socials .social-link{width:28px;height:28px;flex-basis:28px}
  .header-socials .social-link svg{width:14px;height:14px}
  .language-switcher{gap:.2rem}
  .language-switcher button{font-size:.45rem;letter-spacing:.03em}
}

@media(max-width:760px){
  :root{--header:106px}
  .site-header{height:var(--header)}
  .header-inner{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    grid-template-rows:58px 48px;
    align-items:center;
    gap:0 .45rem;
    padding:0 .8rem;
  }
  .artist-home-link{grid-column:1;grid-row:1;align-self:center}
  .nav-toggle{grid-column:2;grid-row:1;display:block;justify-self:end}
  .header-socials{
    grid-column:1 / -1;
    grid-row:2;
    display:flex!important;
    justify-self:center;
    align-self:start;
    gap:.55rem;
    --social-cut:#f8faff;
  }
  .header-socials .social-link{
    width:34px;
    height:34px;
    flex-basis:34px;
    color:#171b25;
    border-color:rgba(78,70,150,.3);
    background:rgba(255,255,255,.72);
    box-shadow:0 3px 13px rgba(20,25,40,.08);
  }
  .header-socials .social-link:hover,.header-socials .social-link:focus-visible{color:#5f50d7;background:#fff}
  .header-side{display:none!important}
  .site-nav{top:var(--header)}
  .mobile-nav-meta{display:grid;gap:.8rem;margin-top:.55rem;padding-top:.85rem;border-top:1px solid var(--line)}
  .mobile-language-switcher{justify-content:center;padding:.25rem 0 .55rem}
}

@media(max-width:390px){
  .header-inner{padding-inline:.55rem}
  .artist-home-link{font-size:.49rem;letter-spacing:.045em}
  .header-socials{gap:.38rem}
  .header-socials .social-link{width:31px;height:31px;flex-basis:31px}
  .header-socials .social-link svg{width:15px;height:15px}
}


/* v8: centred mobile identity, visible white menu trigger, reference carousels and navigable lightbox */
.reference-carousel{
  position:relative;
  width:100%;
}
.visual-research{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:calc((100% - 1.6rem)/3);
  grid-template-columns:none;
  gap:.8rem;
  width:100%;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scroll-behavior:smooth;
  scrollbar-width:none;
  overscroll-behavior-inline:contain;
}
.visual-research::-webkit-scrollbar{display:none}
.research-image{scroll-snap-align:start;min-width:0}
.reference-scroll{
  position:absolute;
  z-index:8;
  top:50%;
  width:40px;
  height:52px;
  margin-top:-26px;
  border:1px solid rgba(177,168,255,.55);
  background:rgba(8,10,15,.82);
  color:#fff;
  font-size:2rem;
  line-height:1;
  display:grid;
  place-items:center;
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  transform:scale(.94);
  transition:opacity .18s ease,transform .18s ease,background .18s ease;
  backdrop-filter:blur(10px);
}
.reference-scroll-prev{left:-11px}
.reference-scroll-next{right:-11px}
.reference-carousel.has-overflow:hover .reference-scroll:not(:disabled),
.reference-carousel.has-overflow:focus-within .reference-scroll:not(:disabled){opacity:1;pointer-events:auto;transform:scale(1)}
.reference-scroll:hover{background:rgba(127,112,242,.88)}
.reference-scroll:disabled{opacity:0!important;pointer-events:none!important}

body.lightbox-open{overflow:hidden}
.lightbox{
  grid-template-columns:minmax(52px,8vw) minmax(0,1fr) minmax(52px,8vw);
  grid-template-rows:1fr;
  gap:clamp(.5rem,2vw,2rem);
  padding:clamp(1rem,3vw,3rem);
}
.lightbox-figure{
  grid-column:2;
  display:grid;
  place-items:center;
  gap:1rem;
  max-width:min(1400px,100%);
  max-height:94vh;
  margin:0;
}
.lightbox-figure img{
  max-width:100%;
  max-height:82vh;
  object-fit:contain;
  box-shadow:0 34px 110px rgba(0,0,0,.7);
}
.lightbox-figure figcaption{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  color:#fff;
  font-family:"Cinzel",serif;
  font-size:clamp(.67rem,1vw,.82rem);
  letter-spacing:.12em;
  text-transform:uppercase;
}
.lightbox-counter{color:var(--purple-light);white-space:nowrap}
.lightbox-nav{
  align-self:center;
  width:clamp(48px,5vw,68px);
  height:clamp(64px,8vw,96px);
  border:1px solid rgba(177,168,255,.48);
  background:rgba(12,15,22,.74);
  color:#fff;
  font-size:clamp(2.2rem,5vw,4rem);
  line-height:1;
  cursor:pointer;
  transition:background .18s ease,border-color .18s ease,transform .18s ease;
}
.lightbox-prev{grid-column:1;justify-self:end}
.lightbox-next{grid-column:3;justify-self:start}
.lightbox-nav:hover,.lightbox-nav:focus-visible{background:rgba(127,112,242,.72);border-color:var(--purple-light);transform:scale(1.04);outline:none}
.lightbox-nav[hidden]{display:none}
.lightbox-close{z-index:3}

@media(max-width:760px){
  :root{--header:112px}
  .header-inner{
    position:relative;
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 48px;
    grid-template-rows:58px 54px;
    padding:0 .7rem;
    gap:0;
  }
  .artist-home-link{
    grid-column:2;
    grid-row:1;
    justify-self:center;
    align-self:center;
    text-align:center;
    font-size:clamp(.55rem,2.6vw,.67rem);
    letter-spacing:.09em;
    color:#10131a;
    padding-inline:.15rem;
  }
  .nav-toggle{
    grid-column:3;
    grid-row:1;
    justify-self:end;
    align-self:center;
    width:42px;
    height:42px;
    border:1px solid rgba(177,168,255,.78);
    border-radius:4px;
    background:linear-gradient(145deg,#161a24,#5144bf);
    box-shadow:0 5px 16px rgba(40,31,110,.3);
  }
  .nav-toggle span:not(.sr-only){
    left:9px;
    right:9px;
    height:2px;
    background:#fff!important;
    box-shadow:0 0 5px rgba(255,255,255,.38);
  }
  .header-socials{
    grid-column:1 / -1;
    grid-row:2;
    justify-self:center;
    align-self:start;
    padding-top:3px;
  }
  .site-nav{top:var(--header)}
  .folio-hero{padding-top:calc(var(--header) + 4rem)}

  .visual-research{
    grid-auto-columns:min(78vw,390px);
    gap:.7rem;
    padding-inline:1px;
  }
  .reference-scroll{
    opacity:1;
    pointer-events:auto;
    width:38px;
    height:48px;
    margin-top:-24px;
  }
  .reference-scroll-prev{left:5px}
  .reference-scroll-next{right:5px}
  .reference-scroll:disabled{opacity:.2!important}
  .lightbox{
    grid-template-columns:44px minmax(0,1fr) 44px;
    gap:.25rem;
    padding:4.5rem .5rem 1rem;
  }
  .lightbox-figure img{max-height:72vh}
  .lightbox-nav{width:42px;height:70px;font-size:2.5rem}
  .lightbox-close{right:.8rem;top:.8rem}
  .lightbox-figure figcaption{font-size:.58rem;letter-spacing:.08em;align-items:flex-start}
}

/* v9: AI Video page only — phone layout centred and fitted to the viewport */
@media(max-width:760px){
  body[data-page="ai-video"] main,
  body[data-page="ai-video"] .folio-list-section{
    width:100%;
    overflow-x:hidden;
  }

  body[data-page="ai-video"] .folio-hero{
    text-align:center;
    padding-left:1rem;
    padding-right:1rem;
  }
  body[data-page="ai-video"] .folio-hero-inner{
    width:min(100%,38rem);
    margin-inline:auto;
    display:flex;
    flex-direction:column;
    align-items:center;
  }
  body[data-page="ai-video"] .folio-hero h1{
    max-width:100%;
    margin-inline:auto;
    text-wrap:balance;
  }
  body[data-page="ai-video"] .folio-hero p:last-child{
    max-width:32rem;
    margin-inline:auto;
  }

  body[data-page="ai-video"] .folio-list-section{
    padding-left:1rem;
    padding-right:1rem;
  }
  body[data-page="ai-video"] .video-project-list{
    width:min(100%,42rem);
    margin-inline:auto;
    justify-items:center;
  }
  body[data-page="ai-video"] .video-project,
  body[data-page="ai-video"] .video-project.reverse{
    width:100%;
    max-width:40rem;
    margin-inline:auto;
    align-items:center;
  }

  body[data-page="ai-video"] .project-copy,
  body[data-page="ai-video"] .video-project.reverse .project-copy{
    width:100%;
    max-width:36rem;
    margin-inline:auto;
    padding-inline:.25rem;
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
  }
  body[data-page="ai-video"] .project-copy h2{
    width:100%;
    max-width:100%;
    font-size:clamp(1.55rem,8.3vw,2.35rem);
    line-height:1.12;
    overflow-wrap:anywhere;
    text-wrap:balance;
  }
  body[data-page="ai-video"] .project-copy>p:not(.section-label){
    max-width:32rem;
    margin-inline:auto;
  }
  body[data-page="ai-video"] .project-copy ul{
    width:100%;
    justify-items:center;
  }
  body[data-page="ai-video"] .project-copy li{
    text-align:center;
  }
  body[data-page="ai-video"] .project-bridge{
    width:min(100%,21rem);
    margin-inline:auto;
  }

  body[data-page="ai-video"] .project-media,
  body[data-page="ai-video"] .video-project.reverse .project-media{
    width:100%;
    max-width:40rem;
    margin-inline:auto;
  }
  body[data-page="ai-video"] .project-video,
  body[data-page="ai-video"] .reference-carousel{
    width:100%;
    max-width:100%;
    margin-inline:auto;
  }
  body[data-page="ai-video"] .reference-carousel{
    overflow:hidden;
  }
  body[data-page="ai-video"] .visual-research{
    grid-auto-columns:calc(100% - 2rem);
    padding-inline:1rem;
    scroll-padding-inline:1rem;
  }

  body[data-page="ai-video"] .contact-panel{
    text-align:center;
    justify-items:center;
  }
  body[data-page="ai-video"] .contact-panel>div,
  body[data-page="ai-video"] .contact-actions{
    width:100%;
    align-items:center;
  }
  body[data-page="ai-video"] .site-footer{
    align-items:center;
    text-align:center;
  }
}

/* v13: hard mobile centering across every page, with primary page titles reduced by 10% */
@media (max-width:760px){
  html,
  body{
    width:100%;
    max-width:100%;
    margin:0;
    overflow-x:hidden;
  }

  body main,
  body main > section,
  .hero,
  .folio-hero,
  .profile-hero,
  .section,
  .section-shell,
  .hero-inner,
  .folio-hero-inner,
  .profile-hero-inner,
  .video-project-list,
  .physical-project-list,
  .profile-grid,
  .mission-list,
  .domain-grid,
  .case-grid,
  .process-grid,
  .portfolio-links,
  .contact-panel,
  .site-footer{
    width:100%;
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }

  .hero,
  .folio-hero,
  .profile-hero,
  .section{
    padding-left:max(1rem,env(safe-area-inset-left));
    padding-right:max(1rem,env(safe-area-inset-right));
  }

  body main,
  .hero-inner,
  .folio-hero-inner,
  .profile-hero-inner,
  .section-shell,
  .section-heading,
  .split-intro,
  .intro-copy,
  .mission-row,
  .mission-name,
  .mission-body,
  .domain-card,
  .case-card,
  .process-step,
  .portfolio-link,
  .contact-panel,
  .contact-actions,
  .video-project,
  .project-copy,
  .project-media,
  .physical-project,
  .physical-project-head,
  .physical-details,
  .profile-card,
  .profile-manifesto,
  .site-footer{
    text-align:center;
  }

  .hero-inner,
  .folio-hero-inner,
  .profile-hero-inner,
  .section-heading,
  .split-intro,
  .intro-copy,
  .mission-row,
  .mission-name,
  .mission-body,
  .domain-card,
  .case-card,
  .process-step,
  .portfolio-link,
  .contact-panel,
  .contact-actions,
  .video-project,
  .project-copy,
  .project-media,
  .physical-project,
  .physical-project-head,
  .physical-details,
  .profile-card,
  .profile-manifesto,
  .site-footer{
    justify-items:center;
    align-items:center;
  }

  .section-heading > p,
  .contact-actions,
  .site-footer{
    justify-self:center;
    align-self:center;
  }

  .mission-row,
  .physical-project-head,
  .physical-details,
  .portfolio-link{
    grid-template-columns:minmax(0,1fr);
  }

  .mission-body{
    grid-column:1;
  }

  .portfolio-link{
    justify-content:center;
  }

  .portfolio-link > *,
  .physical-details > *,
  .project-copy > *,
  .profile-card > *{
    margin-left:auto;
    margin-right:auto;
  }

  .project-copy ul,
  .mission-body ul,
  .physical-details dl,
  .profile-card ul{
    width:100%;
    max-width:34rem;
    margin-left:auto;
    margin-right:auto;
    padding-left:0;
    list-style-position:inside;
  }

  .physical-details dl > div{
    justify-content:center;
    flex-wrap:wrap;
  }

  .physical-details dt,
  .physical-details dd{
    width:100%;
    text-align:center;
  }

  .hero-media-wrap,
  .project-video,
  .reference-carousel,
  .physical-media-grid,
  .physical-gallery,
  .profile-signals,
  .hero-actions,
  .remote-line{
    margin-left:auto;
    margin-right:auto;
  }

  .hero-actions,
  .profile-signals,
  .remote-line{
    justify-content:center;
  }

  .button,
  .project-bridge{
    margin-left:auto;
    margin-right:auto;
  }

  /* Ten percent smaller than the previous mobile primary-title scale. */
  .hero-title{
    font-size:clamp(2.475rem,12.6vw,4.32rem);
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
    text-wrap:balance;
  }

  .folio-hero h1{
    font-size:clamp(2.43rem,12.6vw,4.5rem);
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
    text-wrap:balance;
  }

  .profile-hero h1{
    font-size:clamp(2.475rem,13.5vw,4.95rem);
    max-width:100%;
    margin-left:auto;
    margin-right:auto;
    text-align:center;
    text-wrap:balance;
  }
}

/* v14: definitive mobile containment for the Consulting page.
   Grid/flex items must be allowed to shrink below their translated
   text's intrinsic width, otherwise long French headings push the
   whole hero off-centre. */
@media (max-width:760px){
  body[data-page="consulting"] main,
  body[data-page="consulting"] main > section,
  body[data-page="consulting"] .hero-inner,
  body[data-page="consulting"] .section-shell,
  body[data-page="consulting"] .split-intro,
  body[data-page="consulting"] .section-heading,
  body[data-page="consulting"] .mission-list,
  body[data-page="consulting"] .mission-row,
  body[data-page="consulting"] .domain-grid,
  body[data-page="consulting"] .case-grid,
  body[data-page="consulting"] .process-grid,
  body[data-page="consulting"] .portfolio-links,
  body[data-page="consulting"] .portfolio-link,
  body[data-page="consulting"] .contact-panel{
    min-width:0 !important;
    width:100% !important;
    max-width:100% !important;
    margin-inline:auto !important;
  }

  body[data-page="consulting"] .hero-inner > *,
  body[data-page="consulting"] .split-intro > *,
  body[data-page="consulting"] .section-heading > *,
  body[data-page="consulting"] .mission-row > *,
  body[data-page="consulting"] .domain-card > *,
  body[data-page="consulting"] .case-card > *,
  body[data-page="consulting"] .process-card > *,
  body[data-page="consulting"] .portfolio-link > *,
  body[data-page="consulting"] .contact-panel > *{
    min-width:0 !important;
    max-width:100% !important;
    margin-left:auto;
    margin-right:auto;
  }

  body[data-page="consulting"] .hero-title,
  body[data-page="consulting"] .hero-title span,
  body[data-page="consulting"] .hero-kicker,
  body[data-page="consulting"] .hero-statement,
  body[data-page="consulting"] .section h2,
  body[data-page="consulting"] .section h3,
  body[data-page="consulting"] .section p,
  body[data-page="consulting"] .section span,
  body[data-page="consulting"] .section a,
  body[data-page="consulting"] .site-footer{
    max-width:100% !important;
    overflow-wrap:anywhere;
    word-break:normal;
    hyphens:auto;
    text-align:center !important;
  }

  body[data-page="consulting"] .hero-title{
    width:100% !important;
    align-self:stretch !important;
  }

  body[data-page="consulting"] .hero-media-wrap{
    width:min(100%,560px) !important;
    max-width:100% !important;
  }

  body[data-page="consulting"] .hero-actions{
    width:100% !important;
    max-width:100% !important;
    display:flex;
    flex-direction:column;
    align-items:center;
  }

  body[data-page="consulting"] .hero-actions .button{
    width:min(100%,22rem) !important;
    max-width:100% !important;
    white-space:normal;
  }

  body[data-page="consulting"] .remote-line{
    width:min(100%,22rem) !important;
    max-width:100% !important;
    justify-content:center;
    flex-wrap:wrap;
    line-height:1.55;
  }

  body[data-page="consulting"] .split-intro,
  body[data-page="consulting"] .section-heading,
  body[data-page="consulting"] .mission-row,
  body[data-page="consulting"] .domain-grid,
  body[data-page="consulting"] .case-grid,
  body[data-page="consulting"] .process-grid,
  body[data-page="consulting"] .portfolio-links,
  body[data-page="consulting"] .portfolio-link,
  body[data-page="consulting"] .contact-panel{
    grid-template-columns:minmax(0,1fr) !important;
  }

  body[data-page="consulting"] .mission-name,
  body[data-page="consulting"] .mission-body,
  body[data-page="consulting"] .contact-actions{
    width:100% !important;
    max-width:100% !important;
    align-items:center !important;
  }

  body[data-page="consulting"] .case-meta,
  body[data-page="consulting"] .case-path{
    justify-content:center;
  }
}

/* v15: rebuild the Consulting hero on phones.
   This deliberately replaces the old grid sizing and viewport-scaled title
   that allowed the French copy to create a wider-than-screen layout. */
@media (max-width:760px){
  html,
  body[data-page="consulting"]{
    inline-size:100% !important;
    max-inline-size:100dvw !important;
    overflow-x:clip !important;
  }

  body[data-page="consulting"] main{
    display:block !important;
    inline-size:100% !important;
    max-inline-size:100dvw !important;
    min-inline-size:0 !important;
    margin:0 !important;
    padding:0 !important;
    overflow-x:clip !important;
  }

  body[data-page="consulting"] .hero{
    display:block !important;
    inline-size:100% !important;
    max-inline-size:100dvw !important;
    min-inline-size:0 !important;
    min-height:auto !important;
    margin:0 !important;
    padding-block:calc(var(--header) + 3rem) 4rem !important;
    padding-inline:clamp(16px,4.5vw,30px) !important;
    overflow:hidden !important;
  }

  body[data-page="consulting"] .hero-inner{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    inline-size:100% !important;
    max-inline-size:620px !important;
    min-inline-size:0 !important;
    margin-inline:auto !important;
    padding:0 !important;
    inset:auto !important;
    transform:none !important;
    text-align:center !important;
  }

  body[data-page="consulting"] .hero-inner > *{
    min-inline-size:0 !important;
    max-inline-size:100% !important;
    align-self:center !important;
    margin-inline:auto !important;
    box-sizing:border-box !important;
  }

  body[data-page="consulting"] .hero-title{
    display:block !important;
    inline-size:100% !important;
    max-inline-size:590px !important;
    margin-block:1.25rem 0 !important;
    padding-inline:2px !important;
    font-size:clamp(2rem,8vw,2.75rem) !important;
    line-height:1.04 !important;
    letter-spacing:.008em !important;
    text-align:center !important;
    text-wrap:balance !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
  }

  body[data-page="consulting"] .hero-media-wrap{
    display:block !important;
    inline-size:100% !important;
    max-inline-size:560px !important;
    min-inline-size:0 !important;
    margin-block:2rem 0 !important;
    margin-inline:auto !important;
    padding:0 !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
  }

  body[data-page="consulting"] .hero-media{
    inline-size:100% !important;
    max-inline-size:100% !important;
    min-inline-size:0 !important;
    margin-inline:auto !important;
  }

  body[data-page="consulting"] .hero-statement{
    display:block !important;
    inline-size:100% !important;
    max-inline-size:560px !important;
    min-inline-size:0 !important;
    margin-block:1.6rem 0 !important;
    margin-inline:auto !important;
    padding-inline:clamp(2px,1.5vw,10px) !important;
    font-size:clamp(.88rem,3.2vw,.98rem) !important;
    line-height:1.75 !important;
    text-align:center !important;
    text-wrap:pretty !important;
    overflow-wrap:break-word !important;
    word-break:normal !important;
  }

  body[data-page="consulting"] .hero-actions{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    inline-size:100% !important;
    max-inline-size:560px !important;
    min-inline-size:0 !important;
    margin-block:1.8rem 0 !important;
    margin-inline:auto !important;
    padding:0 !important;
  }

  body[data-page="consulting"] .hero-actions .button{
    inline-size:min(100%,360px) !important;
    max-inline-size:100% !important;
    margin-inline:auto !important;
    white-space:normal !important;
    text-align:center !important;
  }

  body[data-page="consulting"] .remote-line{
    inline-size:100% !important;
    max-inline-size:560px !important;
    min-inline-size:0 !important;
    margin-inline:auto !important;
    justify-content:center !important;
    text-align:center !important;
    flex-wrap:wrap !important;
  }
}

@media (max-width:430px){
  body[data-page="consulting"] .hero{
    padding-inline:16px !important;
  }

  body[data-page="consulting"] .hero-title{
    max-inline-size:350px !important;
    font-size:clamp(1.9rem,9vw,2.3rem) !important;
    line-height:1.06 !important;
  }

  body[data-page="consulting"] .hero-statement{
    max-inline-size:350px !important;
    padding-inline:0 !important;
  }
}
