/* Homepage restructuring. Scoped so the shared service and medical pages retain their layouts. */
.brand-carousel { margin-top:48px; }
.bc-stage { position:relative; }
.bc-stage.is-transitioning { overflow:hidden; }
.bc-stage.is-transitioning>.bc-rows,.bc-stage.is-transitioning>.bc-grid { position:absolute; top:0; left:0; right:0; }
.bc-rows { position:relative; overflow:hidden; border-top:1px solid var(--hair-d); }
.bc-rows::before,.bc-rows::after { content:''; position:absolute; top:0; bottom:0; width:clamp(32px,8vw,160px); z-index:1; pointer-events:none; }
.bc-rows::before { left:0; background:linear-gradient(to right,var(--ink),transparent); }
.bc-rows::after { right:0; background:linear-gradient(to left,var(--ink),transparent); }
.bc-viewport { overflow:hidden; border-bottom:1px solid var(--hair-d); }
.bc-track { display:flex; width:max-content; animation:brand-drift 100s linear infinite; animation-play-state:paused; }
.brand-carousel.is-visible .bc-track { animation-play-state:running; }
.bc-track--reverse { animation-direction:reverse; }
.bc-group { display:flex; flex-shrink:0; }
.bc-cell { width:210px; height:120px; display:flex; align-items:center; justify-content:center; border-right:1px solid var(--hair-d); }
.bc-logo { max-width:68%; max-height:46px; width:auto; height:auto; filter:brightness(0) invert(1); opacity:.85; }
.bc-logo--bw { filter:grayscale(1); }
.bc-grid { display:grid; width:calc(100% - var(--gutter) * 2); max-width:calc(var(--col-max) - var(--gutter) * 2); margin:0 auto; grid-template-columns:repeat(6,minmax(0,1fr)); border-top:1px solid var(--hair-d); border-left:1px solid var(--hair-d); }
.bc-grid .bc-cell { width:auto; border-bottom:1px solid var(--hair-d); }
.bc-controls { display:flex; justify-content:center; gap:12px; margin-top:30px; }
.bc-toggle,.bc-pause { background:transparent; border:1px solid var(--hair-d2); border-radius:99px; padding:13px 22px; font:500 14px var(--f-body); color:var(--bone); cursor:pointer; display:inline-flex; align-items:center; gap:16px; }
.bc-pause { width:48px; justify-content:center; padding:10px; }
.bc-toggle:hover,.bc-pause:hover { background:rgba(255,255,255,.08); border-color:var(--bone); }
.bc-toggle [data-bc-arrow] { transition:transform .45s cubic-bezier(.22,1,.36,1); }
.brand-carousel.is-expanded .bc-toggle [data-bc-arrow] { transform:rotate(180deg); }
.brand-carousel:hover .bc-track,.brand-carousel:focus-within .bc-track,.brand-carousel.is-paused .bc-track,.brand-carousel.is-expanded .bc-track { animation-play-state:paused; }
.brand-carousel [hidden] { display:none; }
@keyframes brand-drift { to { transform:translateX(-50%); } }
.service-accordion { display:grid; gap:12px; }
.sa-card { position:relative; isolation:isolate; overflow:hidden; border-radius:28px; background:#222321; color:var(--bone); }
.sa-background { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; filter:saturate(.5); transition:filter .4s; }
.sa-card::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(8,9,8,.72),rgba(8,9,8,.2)),linear-gradient(0deg,rgba(8,9,8,.95),rgba(8,9,8,.18)); }
.sa-card:not(.is-open) .sa-background { filter:grayscale(1) brightness(.55); }
.sa-heading { margin:0; }
.sa-trigger { width:100%; min-height:76px; padding:24px 32px; border:0; background:none; display:flex; align-items:center; gap:20px; text-align:left; font:500 clamp(18px,1.5vw,23px) var(--f-display); letter-spacing:-.025em; color:inherit; cursor:pointer; }
.sa-index { font:11px var(--f-mono); opacity:.55; letter-spacing:.06em; }
.sa-chevron { margin-left:auto; font-size:24px; transition:transform .35s; }
.sa-card.is-open .sa-chevron { transform:rotate(180deg); }
.sa-trigger:hover { background:rgba(255,255,255,.04); }
.sa-trigger:focus-visible,.bc-toggle:focus-visible,.bc-pause:focus-visible { outline:2px solid var(--accent); outline-offset:-5px; }
.sa-panel { display:grid; grid-template-rows:1fr; transition:grid-template-rows .55s cubic-bezier(.22,1,.36,1); }
.sa-ready .sa-card:not(.is-open) .sa-panel { grid-template-rows:0fr; }
.sa-panel-clip { overflow:hidden; min-height:0; }
.sa-content { min-height:395px; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; padding:75px 32px 32px; max-width:820px; }
.sa-headline { margin:0; font:500 clamp(30px,3.1vw,48px)/1.08 var(--f-display); letter-spacing:-.04em; }
.sa-description { font-size:15px; line-height:1.7; margin:22px 0 0; max-width:700px; color:rgba(245,242,235,.82); }
.sa-points { list-style:none; margin:22px 0 28px; padding:0; display:grid; gap:10px; font-size:13px; line-height:1.5; }
.sa-points li::before { content:'✓'; color:#e8a28c; margin-right:12px; }
.sa-content .btn { background:rgba(245,242,235,.05); border:1px solid rgba(245,242,235,.5); border-radius:99px; color:var(--bone); padding:14px 22px; gap:30px; font-size:13px; }
.sa-content .btn:hover { background:var(--bone); color:var(--ink); }
.home-medical { background:var(--bone); color:var(--ink); }
.hm-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:64px; }
.home-medical h2 { margin:28px 0; }
.home-medical .lede { max-width:520px; margin-bottom:32px; }
.medical-network { position:relative; aspect-ratio:5/4; border:1px solid rgba(10,10,10,.15); border-radius:28px; background:radial-gradient(ellipse at center,#f7e7df,transparent 65%),#eeebe4; overflow:hidden; color:var(--ink); }
.mn-caption,.mn-bottom { position:absolute; left:24px; right:24px; font:9px var(--f-mono); letter-spacing:.09em; display:flex; align-items:center; gap:10px; }
.mn-caption { top:26px; justify-content:space-between; }
.mn-bottom { bottom:24px; justify-content:center; }
.mn-lines { position:absolute; inset:0; width:100%; height:100%; }
.mn-lines path { fill:none; stroke:var(--accent); stroke-width:1.3; stroke-dasharray:6 7; }
.medical-network.is-visible .mn-lines path { animation:medical-flow 16s linear infinite; }
.mn-core { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:26%; aspect-ratio:1; border:1px solid rgba(10,10,10,.2); border-radius:50%; background:var(--ink); color:var(--bone); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; font:8px var(--f-mono); }
.mn-cross { color:#eca18e; font:300 clamp(34px,5vw,60px)/1 var(--f-display); }
.mn-node { position:absolute; width:37%; min-height:55px; display:flex; align-items:center; justify-content:center; gap:9px; text-align:center; padding:10px; border:1px solid rgba(10,10,10,.13); background:var(--bone); border-radius:12px; font:500 13px/1.3 var(--f-body); }
.mn-node-0 { top:21%; left:4%; }.mn-node-1 { top:21%; right:4%; }.mn-node-2 { bottom:21%; left:4%; }.mn-node-3 { bottom:21%; right:4%; }
.mn-dot { display:inline-block; width:5px; height:5px; flex-shrink:0; border-radius:50%; background:var(--accent); }
.medical-network.is-visible .mn-node .mn-dot { animation:medical-pulse 3.8s var(--node-delay) ease-in-out infinite; }
.mn-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }
.mn-glare { position:absolute; inset:0; z-index:3; pointer-events:none; border-radius:inherit; background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),transparent 62%); mix-blend-mode:soft-light; opacity:0; transition:opacity .5s; }
.medical-network.is-hover .mn-glare { opacity:1; }
.mn-readout { position:absolute; top:12.5%; left:24px; right:24px; text-align:center; font:9px var(--f-mono); letter-spacing:.14em; color:rgba(10,10,10,.5); white-space:nowrap; }
.mn-readout b { color:var(--accent); font-weight:400; }
.mn-ecg { width:44%; height:auto; overflow:visible; }
.mn-ecg path { fill:none; stroke-linecap:round; stroke-linejoin:round; }
.mn-ecg-base { stroke:rgba(236,161,142,.18); stroke-width:1.2; }
.mn-ecg-beam { stroke:#eca18e; stroke-width:1.6; stroke-dasharray:.28 .72; stroke-dashoffset:.28; opacity:0; }
.mn-js .mn-lines { display:none; }
.mn-js .mn-core { transform:translate(-50%,-50%) scale(0); will-change:transform; }
.mn-js .mn-node { opacity:0; translate:var(--in-x) var(--in-y); filter:blur(8px); will-change:transform; transition:opacity .7s, translate 1s cubic-bezier(.16,1,.3,1), filter .7s, border-color .45s, box-shadow .45s, background-color .45s; }
.mn-js .mn-node-0 { --in-x:44px; --in-y:34px; }.mn-js .mn-node-1 { --in-x:-44px; --in-y:34px; }.mn-js .mn-node-2 { --in-x:44px; --in-y:-34px; }.mn-js .mn-node-3 { --in-x:-44px; --in-y:-34px; }
.mn-js .mn-node.is-in { opacity:1; translate:0 0; filter:none; }
.mn-js .mn-caption,.mn-js .mn-bottom,.mn-js .mn-readout { opacity:0; transition:opacity .8s; }
.mn-js.is-live .mn-caption,.mn-js.is-live .mn-bottom,.mn-js.is-live .mn-readout { opacity:1; }
.mn-js.is-live .mn-ecg-beam { opacity:1; animation:medical-ecg var(--beat,1.8s) linear infinite; }
.mn-node.is-active { border-color:rgba(226,122,106,.55); background-color:#fbf8f3; box-shadow:0 14px 34px -14px rgba(226,122,106,.6),0 0 0 4px rgba(226,122,106,.07); }
.medical-network .mn-node.is-active .mn-dot { animation:none; box-shadow:0 0 0 4px rgba(226,122,106,.2),0 0 12px rgba(226,122,106,.7); }
@keyframes medical-ecg { from { stroke-dashoffset:.28; } to { stroke-dashoffset:-1; } }
@keyframes medical-flow { to { stroke-dashoffset:-130; } }
@keyframes medical-pulse { 40% { box-shadow:0 0 0 6px rgba(226,122,106,.15); } }
@media(max-width:1100px) { .bc-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.hm-layout{gap:32px} }
@media(max-width:900px) { .hm-layout{grid-template-columns:1fr}.medical-network{max-width:600px;width:100%;justify-self:center} }
@media(max-width:700px) {
  .bc-cell{width:150px;height:95px}.bc-logo{max-height:34px}.bc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .brand-carousel{margin-top:32px}.sa-card{border-radius:22px}.sa-trigger{min-height:68px;padding:20px;gap:14px}.sa-content{padding:56px 22px 26px;min-height:385px}.sa-headline{font-size:31px}.sa-description{font-size:14px}.sa-points{font-size:12px}.mn-node{font-size:11px;min-height:48px}.mn-caption,.mn-bottom,.mn-readout{font-size:8px;left:16px;right:16px}
}
@media(max-width:1100px) { .projects-section .project-row .info{order:0}.projects-section .project-row .project-cover{order:1} }
@media(prefers-reduced-motion:reduce) { .brand-carousel .bc-track,.medical-network.is-visible .mn-lines path,.medical-network.is-visible .mn-node .mn-dot{animation:none}.sa-panel,.sa-background,.sa-chevron,.bc-toggle [data-bc-arrow]{transition:none}.bc-pause{display:none} }
