:root{
  --bg:#090909;
  --bg-soft:#0d0d0d;
  --ink:#ece8df;
  --muted:#969187;
  --line:rgba(236,232,223,.12);
  --line-strong:rgba(236,232,223,.22);
  --accent:#ff6a3d;
  --accent-soft:rgba(255,106,61,.16);
  --serif:"Instrument Serif",Georgia,serif;
  --sans:"Manrope",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 78% 28%,rgba(255,106,61,.025),transparent 24rem),
    linear-gradient(180deg,#0a0a0a,#070707 74%);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:99;
  pointer-events:none;
  box-shadow:inset 0 0 120px rgba(0,0,0,.5);
}
a{color:inherit;text-decoration:none}
.grain{
  position:fixed;
  inset:0;
  z-index:90;
  pointer-events:none;
  opacity:.035;
  mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E");
}
.topbar{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:60;
  display:grid;
  grid-template-columns:auto minmax(90px,1fr) auto;
  align-items:center;
  gap:34px;
  height:86px;
  padding:0 clamp(24px,4vw,68px);
  background:linear-gradient(180deg,rgba(9,9,9,.94),rgba(9,9,9,.58),transparent);
  backdrop-filter:blur(8px);
}
.brand{
  font-size:.88rem;
  font-weight:600;
  letter-spacing:.42em;
}
.topbar-line{
  height:1px;
  background:linear-gradient(90deg,var(--line-strong),transparent);
}
.nav{
  display:flex;
  align-items:center;
  gap:30px;
  color:#bdb8ae;
  font-size:.74rem;
}
.nav a{position:relative;transition:color .25s ease}
.nav a::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-8px;
  height:1px;
  background:var(--accent);
  transition:right .35s cubic-bezier(.19,1,.22,1);
}
.nav a:hover{color:var(--ink)}
.nav a:hover::after{right:0}
.hero{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.04fr) minmax(460px,.96fr);
  min-height:100svh;
  padding:clamp(118px,11vw,164px) clamp(24px,4vw,68px) 62px;
  border-bottom:1px solid var(--line);
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:clamp(110px,13vw,210px) clamp(110px,13vw,210px);
  mask-image:linear-gradient(90deg,transparent 0,#000 44%,#000 100%);
  opacity:.22;
}
.hero-copy{
  position:relative;
  z-index:3;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  min-height:640px;
  padding-right:clamp(10px,3vw,56px);
}
.kicker,.statement-meta{
  display:flex;
  align-items:flex-start;
  gap:16px;
  color:var(--muted);
  font-size:.64rem;
  letter-spacing:.26em;
}
.kicker>span,.statement-meta>span{color:var(--accent)}
.kicker>i,.statement-meta>i{
  width:48px;
  height:1px;
  margin-top:.45em;
  background:var(--line-strong);
}
.kicker small,.statement-meta small{
  font-size:inherit;
  line-height:1.55;
  letter-spacing:.28em;
}
.hero h1,.statement h2,.about-hero h1{
  margin:52px 0 0;
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.04em;
  line-height:.91;
  text-wrap:balance;
}
.hero h1{
  font-size:clamp(4.3rem,6.8vw,8.3rem);
  max-width:850px;
}
.hero h1 span,.statement h2 span,.about-hero h1 span{color:var(--accent)}
.hero-services{
  margin:44px 0 0;
  color:#beb8ae;
  font-family:var(--serif);
  font-size:clamp(1.08rem,1.35vw,1.45rem);
  letter-spacing:.01em;
}
.hero-actions{
  display:flex;
  align-items:center;
  gap:42px;
  margin-top:38px;
}
.primary-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:54px;
  min-width:276px;
  padding:18px 20px;
  border:1px solid rgba(255,106,61,.68);
  background:linear-gradient(90deg,rgba(255,106,61,.025),rgba(255,106,61,.07));
  font-family:var(--serif);
  font-size:1.05rem;
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
.primary-cta b{font-family:var(--sans);font-weight:300}
.primary-cta:hover{
  background:var(--accent-soft);
  border-color:var(--accent);
  transform:translateY(-2px);
}
.text-link,.statement-link{
  display:inline-flex;
  align-items:center;
  gap:18px;
  color:#bdb8ae;
  font-family:var(--serif);
  font-size:1rem;
}
.text-link i{
  width:115px;
  height:1px;
  background:var(--line-strong);
  transition:width .35s ease,background .35s ease;
}
.text-link:hover i{width:145px;background:var(--accent)}
.hero-index{
  display:flex;
  align-items:center;
  gap:20px;
  width:min(335px,80%);
  margin-top:auto;
  padding-top:50px;
  color:#77736d;
  font-size:.61rem;
  letter-spacing:.18em;
}
.hero-index i{
  flex:1;
  height:1px;
  background:linear-gradient(90deg,var(--accent) 18%,var(--line-strong) 18%);
}
.system-wrap{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:640px;
  transform-style:preserve-3d;
}
.system-wrap::after{
  content:"";
  position:absolute;
  width:48%;
  aspect-ratio:1;
  border-radius:50%;
  background:rgba(255,106,61,.035);
  filter:blur(70px);
  pointer-events:none;
}
.system-svg{
  position:relative;
  z-index:2;
  width:min(100%,760px);
  height:auto;
  overflow:visible;
  filter:drop-shadow(0 0 26px rgba(255,106,61,.03));
}
.grid-lines path,.orbit-lines circle{
  fill:none;
  stroke:rgba(236,232,223,.07);
  stroke-width:1;
}
.orbit-lines circle{stroke:rgba(236,232,223,.09)}
.orbit-lines .dashed{stroke-dasharray:2 8}
.system-paths path{
  fill:none;
  stroke:#7d786f;
  stroke-width:1.25;
  opacity:.72;
  stroke-dasharray:1;
  stroke-dashoffset:1;
}
.system-paths .hot{
  stroke:var(--accent);
  stroke-width:1.6;
  filter:drop-shadow(0 0 7px rgba(255,106,61,.45));
}
.system-paths .faint{opacity:.55}
.node circle{
  fill:#0b0b0b;
  stroke:#b4afa5;
  stroke-width:1.4;
  transition:stroke .25s ease,filter .25s ease,transform .25s ease;
}
.node .node-core{fill:#ded8cd;stroke:none}
.node-growth .halo{
  fill:none;
  stroke:rgba(255,106,61,.22);
  stroke-width:1;
  animation:pulse 2.8s ease-in-out infinite;
}
.node-growth circle:not(.halo){stroke:var(--accent);filter:drop-shadow(0 0 6px rgba(255,106,61,.72))}
.node.is-active circle{stroke:var(--accent);filter:drop-shadow(0 0 8px rgba(255,106,61,.7))}
.labels text{
  fill:#b6b0a6;
  font-family:var(--serif);
  font-size:18px;
}
.traveller{fill:#ff845d}
.system-meta{
  position:absolute;
  top:7%;
  right:2%;
  display:grid;
  text-align:right;
  color:#77736d;
  font-size:.58rem;
  line-height:1.55;
  letter-spacing:.18em;
}
.system-words{
  position:absolute;
  right:0;
  bottom:6%;
  display:grid;
  gap:5px;
  color:#77736d;
  font-size:.58rem;
  letter-spacing:.23em;
}
.expertise{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  min-height:198px;
  border-bottom:1px solid var(--line);
}
.expertise a{
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:32px clamp(22px,3vw,48px);
  border-right:1px solid var(--line);
  overflow:hidden;
}
.expertise a:last-child{border-right:0}
.expertise a::before{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:0;
  background:linear-gradient(180deg,transparent,var(--accent-soft));
  transition:height .45s cubic-bezier(.19,1,.22,1);
}
.expertise a:hover::before{height:100%}
.expertise small{
  position:relative;
  z-index:1;
  color:var(--accent);
  font-size:.61rem;
  letter-spacing:.12em;
}
.expertise span{
  position:relative;
  z-index:1;
  margin-top:25px;
  font-family:var(--serif);
  font-size:clamp(1.25rem,1.65vw,1.65rem);
}
.expertise b{
  position:relative;
  z-index:1;
  margin-top:16px;
  color:#d0cbc1;
  font-weight:300;
  transition:transform .3s ease;
}
.expertise a:hover b{transform:translateX(8px)}
.statement{
  position:relative;
  min-height:86svh;
  padding:clamp(84px,9vw,140px) clamp(24px,4vw,68px) clamp(78px,8vw,126px);
  overflow:hidden;
}
.statement::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(var(--line) 1px,transparent 1px),
    linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:clamp(160px,18vw,290px) clamp(160px,18vw,290px);
  opacity:.08;
  mask-image:radial-gradient(circle at 70% 50%,#000,transparent 65%);
}
.statement-grid{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(360px,.9fr);
  align-items:center;
  min-height:500px;
}
.statement h2{
  position:relative;
  z-index:2;
  margin:80px 0 0;
  max-width:860px;
  font-size:clamp(4rem,6.4vw,7.8rem);
}
.statement-orbit{
  position:absolute;
  right:-12vw;
  bottom:-22vw;
  width:min(72vw,1080px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(236,232,223,.08);
  box-shadow:inset 0 0 100px rgba(255,106,61,.03);
}
.statement-orbit::after{
  content:"";
  position:absolute;
  inset:3%;
  border-radius:50%;
  border-top:1px solid rgba(255,132,93,.7);
  transform:rotate(-22deg);
  filter:drop-shadow(0 0 7px rgba(255,106,61,.35));
}
.statement-orbit i{
  position:absolute;
  inset:17%;
  border:1px dashed rgba(236,232,223,.11);
  border-radius:50%;
}
.statement-orbit .orbit-two{inset:34%}
.statement-orbit b{
  position:absolute;
  left:35%;
  top:12%;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 18px var(--accent);
}
.statement-link{
  position:relative;
  z-index:2;
  margin-top:24px;
}
.statement-link b{font-weight:300;font-family:var(--sans);font-size:1.25rem}
.footer{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  padding:28px clamp(24px,4vw,68px);
  border-top:1px solid var(--line);
  color:#7e7a73;
  font-size:.66rem;
  letter-spacing:.08em;
}
.footer span{color:#b9b4aa;letter-spacing:.34em}
.cursor-dot,.cursor-ring{
  position:fixed;
  left:0;
  top:0;
  z-index:120;
  pointer-events:none;
  border-radius:50%;
  opacity:0;
}
.cursor-dot{width:5px;height:5px;background:var(--accent)}
.cursor-ring{width:28px;height:28px;border:1px solid rgba(236,232,223,.35)}
@keyframes pulse{50%{transform:scale(1.22);opacity:.3}}
.reveal-title,.reveal-up,.reveal-system{opacity:0}
.reveal-on-scroll{opacity:0;transform:translateY(24px)}

.about-main{min-height:100svh}
.about-hero{
  min-height:100svh;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);
  align-items:center;
  gap:80px;
  padding:140px clamp(24px,4vw,68px) 70px;
  border-bottom:1px solid var(--line);
}
.about-hero h1{font-size:clamp(4.4rem,7.2vw,8.8rem)}
.about-side{
  align-self:end;
  padding-bottom:72px;
  color:#aaa59b;
  font-family:var(--serif);
  font-size:1.15rem;
  max-width:360px;
}
.people{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--line);
}
.person{
  min-height:42svh;
  padding:clamp(50px,6vw,90px) clamp(24px,4vw,68px);
  border-right:1px solid var(--line);
}
.person:last-child{border-right:0}
.person small{color:var(--accent);font-size:.62rem;letter-spacing:.2em}
.person h2{
  margin:32px 0 0;
  font-family:var(--serif);
  font-size:clamp(3rem,5vw,6rem);
  font-weight:400;
}
.person p{
  margin:20px 0 0;
  color:#97928a;
  font-size:.72rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.about-contact{
  min-height:46svh;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:40px;
  padding:70px clamp(24px,4vw,68px);
}
.about-contact h2{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(3.2rem,6vw,7rem);
  font-weight:400;
  line-height:.95;
}
@media (max-width:980px){
  .hero{grid-template-columns:1fr;min-height:auto;padding-top:120px}
  .hero-copy{min-height:650px}
  .system-wrap{min-height:560px;margin-top:-80px}
  .expertise{grid-template-columns:repeat(2,1fr)}
  .expertise a:nth-child(2n){border-right:0}
  .expertise a:last-child{grid-column:1/-1;border-top:1px solid var(--line)}
  .statement-grid{grid-template-columns:1fr}
  .statement-orbit{right:-30vw;bottom:-20vw}
  .about-hero{grid-template-columns:1fr;gap:20px}
  .about-side{align-self:auto;padding-bottom:0}
}
@media (max-width:680px){
  .topbar{height:76px;grid-template-columns:auto 1fr;gap:16px;padding:0 20px}
  .topbar-line{display:none}
  .brand{font-size:.74rem;letter-spacing:.32em}
  .nav{justify-content:flex-end;gap:16px;font-size:.65rem}
  .nav a:first-child{display:none}
  .hero{padding:110px 20px 40px}
  .hero::before{background-size:120px 120px;mask-image:linear-gradient(180deg,transparent,#000 30%,#000)}
  .hero-copy{min-height:auto;padding-right:0}
  .kicker{gap:11px}
  .kicker>i{width:30px}
  .hero h1{margin-top:46px;font-size:clamp(3.55rem,16vw,5.4rem);line-height:.88}
  .hero-services{margin-top:32px;font-size:1.05rem}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:24px;margin-top:30px}
  .primary-cta{width:100%;min-width:0}
  .text-link i{width:80px}
  .hero-index{display:none}
  .system-wrap{min-height:430px;margin:32px -52px -8px}
  .system-meta{right:58px;top:1%;font-size:.5rem}
  .system-words{right:58px;bottom:5%;font-size:.49rem}
  .expertise{grid-template-columns:1fr}
  .expertise a,.expertise a:nth-child(2n){
    min-height:112px;
    border-right:0;
    border-bottom:1px solid var(--line);
    padding:22px 20px;
  }
  .expertise a:last-child{grid-column:auto;border-top:0}
  .expertise span{margin-top:12px}
  .expertise b{position:absolute;right:22px;top:43px}
  .statement{min-height:74svh;padding:80px 20px}
  .statement-grid{min-height:390px}
  .statement h2{margin-top:62px;font-size:clamp(3.5rem,15vw,5.2rem)}
  .statement-orbit{width:130vw;right:-78vw;bottom:-35vw}
  .footer{align-items:flex-start;flex-direction:column;padding:24px 20px}
  .cursor-dot,.cursor-ring{display:none}
  .about-hero{min-height:auto;padding:130px 20px 80px}
  .about-hero h1{font-size:clamp(3.8rem,17vw,6rem)}
  .people{grid-template-columns:1fr}
  .person{min-height:36svh;padding:58px 20px;border-right:0;border-bottom:1px solid var(--line)}
  .about-contact{align-items:flex-start;flex-direction:column;padding:72px 20px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
  .reveal-title,.reveal-up,.reveal-system,.reveal-on-scroll{opacity:1!important;transform:none!important}
  .cursor-dot,.cursor-ring{display:none}
}

/* Alphorys cinematic polish — 2026-10-04 */
.topbar{
  transition:background .35s ease,border-color .35s ease;
}
.brand{font-size:.94rem}
.nav{font-size:.77rem}
.system-wrap::before{
  content:"";
  position:absolute;
  left:7%;
  right:5%;
  top:16%;
  z-index:3;
  height:1px;
  pointer-events:none;
  opacity:0;
  background:linear-gradient(90deg,transparent,rgba(255,106,61,.1),rgba(255,132,93,.65),rgba(255,106,61,.08),transparent);
  filter:drop-shadow(0 0 6px rgba(255,106,61,.32));
  animation:system-scan 9s cubic-bezier(.65,0,.35,1) infinite 2.2s;
}
.orbit-lines{
  transform-box:fill-box;
  transform-origin:center;
  animation:system-orbit 42s linear infinite;
}
.grid-lines{animation:grid-breathe 7s ease-in-out infinite}
.expertise a{transition:background .35s ease}
.expertise a:hover{background:rgba(255,255,255,.012)}
.expertise span{transition:transform .4s cubic-bezier(.19,1,.22,1)}
.expertise a:hover span{transform:translateX(4px)}
.statement{
  background:
    radial-gradient(circle at 73% 60%,rgba(255,106,61,.018),transparent 28rem),
    #080808;
}
.statement-orbit{transition:opacity .4s ease}
.statement:hover .statement-orbit{opacity:.9}
.page-wipe{
  position:fixed;
  inset:0;
  z-index:200;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  background:#0a0908;
  border-left:1px solid rgba(255,106,61,.55);
  box-shadow:-18px 0 50px rgba(255,106,61,.035);
  transform:none;
  will-change:transform;
}
.page-wipe::after{
  content:"";
  position:absolute;
  top:0;
  bottom:0;
  left:0;
  width:1px;
  background:var(--accent);
  box-shadow:0 0 20px rgba(255,106,61,.45);
}
@keyframes system-scan{
  0%,12%{opacity:0;transform:translateY(0)}
  18%{opacity:.75}
  52%{opacity:.3}
  72%{opacity:.7}
  86%,100%{opacity:0;transform:translateY(430px)}
}
@keyframes system-orbit{to{transform:rotate(360deg)}}
@keyframes grid-breathe{0%,100%{opacity:.7}50%{opacity:1}}
@media(min-width:981px){
  .system-svg{width:min(112%,820px);max-width:none}
  .statement{min-height:76svh}
  .statement-grid{min-height:430px}
}
@media(max-width:680px){
  .brand{font-size:.77rem}
  .nav{font-size:.66rem}
  .system-wrap::before{display:none}
  .statement{min-height:68svh}
  .statement-grid{min-height:350px}
  .statement h2{font-size:clamp(3.35rem,14.2vw,4.9rem)}
}
@media(prefers-reduced-motion:reduce){
  .system-wrap::before,.orbit-lines,.grid-lines{animation:none!important}
  .page-wipe{display:none}
}

/* Alphorys refinement pass — 2026-10-04 */
@media(min-width:981px){
  .hero{
    grid-template-columns:minmax(0,.94fr) minmax(520px,1.06fr);
  }
  .hero-copy{
    padding-right:clamp(0px,1.5vw,24px);
  }
  .system-wrap{
    min-height:680px;
    transform:translateX(-1.5%);
  }
  .system-svg{
    width:min(124%,930px);
  }
  .expertise{
    min-height:168px;
  }
  .expertise a{
    padding-top:24px;
    padding-bottom:24px;
  }
  .expertise span{
    font-size:clamp(1.3rem,1.5vw,1.7rem);
  }
  .statement{
    min-height:68svh;
    padding-top:84px;
    padding-bottom:88px;
  }
  .statement-grid{
    min-height:360px;
  }
  .statement h2{
    margin-top:42px;
    font-size:clamp(4.4rem,5.9vw,7rem);
  }
  .statement-orbit{
    width:min(64vw,960px);
    right:-10vw;
    bottom:-25vw;
  }

  .about-hero{
    position:relative;
    min-height:78svh;
    padding-top:120px;
    padding-bottom:52px;
    overflow:hidden;
  }
  .about-hero::before{
    content:"";
    position:absolute;
    inset:84px 0 0 44%;
    opacity:.11;
    background:
      linear-gradient(rgba(236,232,223,.08) 1px,transparent 1px),
      linear-gradient(90deg,rgba(236,232,223,.08) 1px,transparent 1px);
    background-size:130px 130px;
    mask-image:linear-gradient(90deg,transparent,#000 35%,#000 100%);
    pointer-events:none;
  }
  .about-hero::after{
    content:"";
    position:absolute;
    right:-14vw;
    bottom:-30vw;
    width:min(72vw,1080px);
    aspect-ratio:1;
    border-radius:50%;
    border:1px solid rgba(255,106,61,.28);
    box-shadow:0 0 70px rgba(255,106,61,.03), inset 0 0 90px rgba(255,106,61,.015);
    pointer-events:none;
  }
  .about-hero>*,.people,.about-contact{position:relative;z-index:1}
  .about-side{
    align-self:center;
    padding-bottom:0;
    transform:translateY(86px);
  }
  .people{
    position:relative;
  }
  .people::after{
    content:"";
    position:absolute;
    left:50%;
    top:0;
    bottom:0;
    width:1px;
    background:linear-gradient(180deg,transparent,rgba(255,106,61,.28),transparent);
    pointer-events:none;
  }
  .person{
    position:relative;
    min-height:34svh;
    overflow:hidden;
  }
  .person::after{
    position:absolute;
    right:5%;
    bottom:-16%;
    font-family:var(--serif);
    font-size:clamp(10rem,18vw,18rem);
    line-height:1;
    color:rgba(236,232,223,.018);
    pointer-events:none;
  }
  .person:first-child::after{content:"01"}
  .person:last-child::after{content:"02"}
  .person h2{
    font-size:clamp(4rem,5.2vw,6.8rem);
  }
  .about-contact{
    min-height:34svh;
  }
}

.statement::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:52%;
  height:1px;
  opacity:.22;
  background:linear-gradient(90deg,transparent 0,rgba(236,232,223,.11) 18%,rgba(255,106,61,.28) 62%,transparent 100%);
  pointer-events:none;
}
.expertise a::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:0;
  height:1px;
  background:var(--accent);
  box-shadow:0 0 14px rgba(255,106,61,.32);
  transition:width .5s cubic-bezier(.19,1,.22,1);
}
.expertise a:hover::after{width:100%}
.system-wrap{
  isolation:isolate;
}
.system-wrap::after{
  z-index:-1;
  opacity:.75;
}
.system-svg{
  transition:filter .5s ease;
}
.system-wrap:hover .system-svg{
  filter:drop-shadow(0 0 34px rgba(255,106,61,.07));
}

@media(max-width:680px){
  .hero{
    padding-bottom:28px;
  }
  .system-wrap{
    min-height:410px;
    margin:24px -12px -2px;
    transform:scale(.94);
    transform-origin:center top;
  }
  .system-svg{
    width:100%;
  }
  .system-meta{
    right:24px;
  }
  .system-words{
    right:24px;
  }
  .statement{
    min-height:64svh;
    padding-top:70px;
    padding-bottom:72px;
  }
  .statement-grid{
    min-height:330px;
  }
  .statement h2{
    margin-top:52px;
    font-size:clamp(3.15rem,13.2vw,4.6rem);
  }
  .statement-orbit{
    width:118vw;
    right:-66vw;
    bottom:-24vw;
  }

  .about-hero{
    position:relative;
    min-height:76svh;
    padding-top:116px;
    padding-bottom:64px;
    overflow:hidden;
  }
  .about-hero::before{
    content:"";
    position:absolute;
    inset:72px -30% 0 42%;
    opacity:.08;
    background:
      linear-gradient(rgba(236,232,223,.08) 1px,transparent 1px),
      linear-gradient(90deg,rgba(236,232,223,.08) 1px,transparent 1px);
    background-size:88px 88px;
    mask-image:linear-gradient(90deg,transparent,#000 42%,#000);
    pointer-events:none;
  }
  .about-hero::after{
    content:"";
    position:absolute;
    right:-90vw;
    bottom:-58vw;
    width:150vw;
    aspect-ratio:1;
    border:1px solid rgba(255,106,61,.2);
    border-radius:50%;
    pointer-events:none;
  }
  .about-hero>*{position:relative;z-index:1}
  .about-side{
    max-width:300px;
    font-size:1rem;
  }
  .person{
    position:relative;
    min-height:29svh;
    padding-top:48px;
    padding-bottom:48px;
    overflow:hidden;
  }
  .person::after{
    position:absolute;
    right:10px;
    bottom:-34px;
    font-family:var(--serif);
    font-size:9rem;
    line-height:1;
    color:rgba(236,232,223,.018);
  }
  .person:first-child::after{content:"01"}
  .person:last-child::after{content:"02"}
  .about-contact{
    min-height:38svh;
  }
}

@media(prefers-reduced-motion:reduce){
  .expertise a::after{transition:none}
}


/* Interaction refinement */
@media(min-width:981px){
  .expertise{
    display:flex;
  }
  .expertise a{
    flex:1 1 0;
    transition:flex .65s cubic-bezier(.19,1,.22,1),background .35s ease;
  }
  .expertise a:hover{
    flex:1.35 1 0;
  }
  .expertise:has(a:hover) a:not(:hover){
    opacity:.56;
  }
  .expertise a{
    transition:flex .65s cubic-bezier(.19,1,.22,1),background .35s ease,opacity .35s ease;
  }

  .person{
    transition:background .45s ease;
  }
  .person:hover{
    background:radial-gradient(circle at 78% 50%,rgba(255,106,61,.035),transparent 44%);
  }
  .person h2{
    transition:transform .55s cubic-bezier(.19,1,.22,1),color .3s ease;
  }
  .person p{
    transition:transform .55s cubic-bezier(.19,1,.22,1),color .3s ease;
  }
  .person:hover h2{transform:translateX(10px)}
  .person:hover p{transform:translateX(10px);color:#b7b1a7}
}
.primary-cta b,
.expertise b,
.statement-link b{
  transition:transform .35s cubic-bezier(.19,1,.22,1);
}
.primary-cta:hover b,
.statement-link:hover b{transform:translateX(6px)}
.footer{
  color:#8e8980;
}
.footer a{
  transition:color .25s ease;
}
.footer a:hover{color:var(--ink)}

@media(max-width:680px){
  .labels text:last-child{
    transform:translateX(-34px);
  }
  .system-words{
    right:34px;
  }
  .footer{
    font-size:.72rem;
    line-height:1.5;
  }
  .footer a{
    color:#918c83;
  }
}



/* Restraint pass */
.topbar{
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
.expertise a::before{
  background:linear-gradient(180deg,transparent,rgba(255,106,61,.055));
}
.cursor-ring{
  border-color:rgba(236,232,223,.24);
}
body:has(.about-main) .nav a[href="/qui-sommes-nous/"]{
  color:var(--ink);
}
body:has(.about-main) .nav a[href="/qui-sommes-nous/"]::after{
  right:0;
}
@media(min-width:981px){
  .person:hover::after{
    color:rgba(236,232,223,.035);
  }
  .people::after{
    background:linear-gradient(180deg,transparent,rgba(255,106,61,.18) 30%,rgba(255,106,61,.18) 70%,transparent);
  }
}
@media(max-width:680px){
  .labels text:last-child{
    transform:translateX(-48px);
  }
}


/* Detail pass */
body.is-scrolled .topbar{
  background:rgba(9,9,9,.965)!important;
  border-bottom:1px solid rgba(236,232,223,.075);
}
.statement-orbit{
  background:
    linear-gradient(90deg,transparent 49.93%,rgba(236,232,223,.055) 50%,transparent 50.07%),
    linear-gradient(0deg,transparent 49.93%,rgba(236,232,223,.055) 50%,transparent 50.07%);
}
.statement-orbit::before{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:11px;
  height:11px;
  border:1px solid rgba(236,232,223,.19);
  border-radius:50%;
  transform:translate(-50%,-50%);
  box-shadow:0 0 0 6px rgba(236,232,223,.012);
}
@media(min-width:981px){
  .people{
    min-height:48svh;
    border-bottom:1px solid var(--line);
  }
  .person{
    min-height:48svh;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:0;
  }
  .person:first-child{
    padding-top:40px;
    transform:translateY(-18px);
  }
  .person:last-child{
    padding-top:40px;
    transform:translateY(18px);
  }
  .person:hover{
    background:radial-gradient(circle at 70% 50%,rgba(255,106,61,.028),transparent 46%);
  }
  .people::after{
    top:13%;
    bottom:13%;
  }
  .about-contact{
    min-height:30svh;
  }
}
@media(max-width:680px){
  body.is-scrolled .topbar{
    background:rgba(9,9,9,.975)!important;
  }
  .statement-orbit::before{
    width:8px;
    height:8px;
  }
}

/* Final visual restraint */
body.is-scrolled .topbar{
  background:#090909!important;
}
@media(min-width:981px){
  .people::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    z-index:3;
    width:8px;
    height:8px;
    border:1px solid rgba(255,106,61,.5);
    border-radius:50%;
    background:#090909;
    transform:translate(-50%,-50%);
    box-shadow:0 0 0 7px rgba(255,106,61,.025);
    pointer-events:none;
  }
  .about-contact{
    position:relative;
  }
  .about-contact::before{
    content:"";
    position:absolute;
    left:34%;
    right:25%;
    top:50%;
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(236,232,223,.1),rgba(255,106,61,.22),transparent);
    pointer-events:none;
  }
  .about-contact>*{
    position:relative;
    z-index:1;
  }
}
/* Tablet and small-mobile correction */
@media(min-width:981px) and (max-width:1180px){
  .hero{
    grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);
    padding-left:40px;
    padding-right:40px;
  }
  .hero-copy{
    padding-right:10px;
  }
  .hero h1{
    font-size:clamp(4rem,6.3vw,5.1rem);
  }
  .system-wrap{
    transform:translateX(-2%);
  }
  .system-svg{
    width:min(116%,790px);
  }
  .hero-actions{
    gap:22px;
  }
  .primary-cta{
    min-width:248px;
    gap:34px;
  }
  .text-link{
    gap:12px;
    white-space:nowrap;
  }
  .text-link i{
    width:64px;
  }
}
@media(max-width:680px){
  .labels text:last-child{
    transform:translateX(-62px);
  }
}

@media(max-width:680px){.labels text:last-child{display:none}}


/* Contact dialog */
.contact-dialog{
  width:100vw;
  height:100svh;
  max-width:none;
  max-height:none;
  margin:0;
  padding:0;
  border:0;
  overflow:hidden;
  background:transparent;
  color:var(--ink);
}
.contact-dialog::backdrop{
  background:#050505;
}
.contact-dialog__shell{
  position:relative;
  width:100%;
  height:100%;
  background:
    radial-gradient(circle at 74% 58%,rgba(255,106,61,.028),transparent 25rem),
    #090909;
  opacity:0;
  transform:translateY(28px);
  transition:opacity .48s ease,transform .7s cubic-bezier(.19,1,.22,1);
  overflow:auto;
}
.contact-dialog.is-visible .contact-dialog__shell{
  opacity:1;
  transform:translateY(0);
}
.contact-dialog__shell::before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.09;
  pointer-events:none;
  background:
    linear-gradient(rgba(236,232,223,.08) 1px,transparent 1px),
    linear-gradient(90deg,rgba(236,232,223,.08) 1px,transparent 1px);
  background-size:clamp(110px,12vw,190px) clamp(110px,12vw,190px);
  mask-image:linear-gradient(90deg,transparent,#000 45%,#000);
}
.contact-dialog__shell::after{
  content:"";
  position:absolute;
  right:-24vw;
  bottom:-54vw;
  width:min(80vw,1180px);
  aspect-ratio:1;
  border-radius:50%;
  border:1px solid rgba(255,106,61,.23);
  pointer-events:none;
}
.contact-dialog__top{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:86px;
  padding:0 clamp(24px,4vw,68px);
  border-bottom:1px solid var(--line);
}
.contact-dialog__top>span{
  font-size:.88rem;
  font-weight:600;
  letter-spacing:.42em;
}
.contact-dialog__close{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px 0;
  border:0;
  background:none;
  color:#aaa59b;
  font:500 .72rem var(--sans);
}
.contact-dialog__close b{
  color:var(--accent);
  font-size:1.15rem;
  font-weight:300;
}
.contact-dialog__grid{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  gap:clamp(70px,9vw,150px);
  align-items:center;
  min-height:calc(100svh - 86px);
  padding:clamp(62px,8vw,120px) clamp(24px,4vw,68px);
}
.contact-dialog__intro h2{
  margin:52px 0 0;
  font-family:var(--serif);
  font-size:clamp(4.5rem,7.1vw,8.6rem);
  font-weight:400;
  line-height:.9;
  letter-spacing:-.04em;
}
.contact-dialog__intro h2 span{color:var(--accent)}
.contact-form{
  display:grid;
  gap:26px;
  width:100%;
  max-width:620px;
  justify-self:end;
}
.contact-form label{
  display:grid;
  gap:10px;
  color:#9a958c;
  font-size:.62rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.contact-form label span{
  display:flex;
  justify-content:space-between;
  gap:12px;
}
.contact-form label em{
  color:#5f5b55;
  font-style:normal;
}
.contact-form input,
.contact-form textarea{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(236,232,223,.19);
  border-radius:0;
  outline:0;
  padding:4px 0 15px;
  resize:none;
  background:transparent;
  color:var(--ink);
  font:400 clamp(1.35rem,2vw,2rem) var(--serif);
  transition:border-color .3s ease,box-shadow .3s ease;
}
.contact-form textarea{
  min-height:120px;
  line-height:1.25;
}
.contact-form input:focus,
.contact-form textarea:focus{
  border-color:rgba(255,106,61,.8);
  box-shadow:0 8px 18px -16px rgba(255,106,61,.7);
}
.contact-form__bottom{
  display:flex;
  align-items:center;
  gap:28px;
  margin-top:10px;
}
.contact-form__submit{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:64px;
  min-width:230px;
  padding:17px 19px;
  border:1px solid rgba(255,106,61,.62);
  background:rgba(255,106,61,.025);
  color:var(--ink);
  font:400 1rem var(--serif);
  transition:background .3s ease,border-color .3s ease;
}
.contact-form__submit:hover{
  background:rgba(255,106,61,.07);
  border-color:var(--accent);
}
.contact-form__submit:disabled{
  opacity:.45;
  cursor:wait;
}
.contact-form__submit b{
  font:300 1rem var(--sans);
}
.contact-form__status{
  min-height:1.4em;
  margin:0;
  color:#8f8a82;
  font-size:.72rem;
}
.contact-form__status.is-success{color:#c6c0b5}
.contact-form__status.is-error{color:#ff8a66}
body.contact-open{overflow:hidden}
@media(max-width:860px){
  .contact-dialog__top{
    height:76px;
    padding:0 20px;
  }
  .contact-dialog__top>span{
    font-size:.74rem;
    letter-spacing:.32em;
  }
  .contact-dialog__grid{
    grid-template-columns:1fr;
    gap:56px;
    align-items:start;
    min-height:calc(100svh - 76px);
    padding:66px 20px 50px;
  }
  .contact-dialog__intro h2{
    margin-top:42px;
    font-size:clamp(3.7rem,16vw,5.7rem);
  }
  .contact-form{
    max-width:none;
    justify-self:stretch;
    gap:22px;
  }
  .contact-form input,
  .contact-form textarea{
    font-size:1.45rem;
  }
  .contact-form__bottom{
    align-items:stretch;
    flex-direction:column;
    gap:14px;
  }
  .contact-form__submit{
    width:100%;
  }
  .contact-dialog__shell::after{
    right:-90vw;
    bottom:-58vw;
    width:150vw;
  }
}