/* Lyra v1.16 — portfolio authority system.
   Extends the existing cosmic/glass language; it does not replace it. */

.portfolio-page {
  --page-accent: 166 139 255;
  --portfolio-container: min(1240px, calc(100vw - 64px));
  --portfolio-line: rgba(255,255,255,.09);
  --portfolio-text: rgba(242,237,250,.7);
  --portfolio-muted: rgba(226,218,240,.46);
  background: #030207;
}

.portfolio-page .portfolio-cinematic {
  position: relative;
  min-height: 100svh;
  overflow: clip;
}

.portfolio-page .portfolio-cinematic > .v2-universe-canvas,
.portfolio-page .portfolio-cinematic > .v2-hybrid-stars-canvas,
.portfolio-page .portfolio-cinematic > .v2-cosmos-texture,
.portfolio-page .portfolio-cinematic > .v2-cinematic-overlay,
.portfolio-page .portfolio-cinematic > .v2-cinematic-noise,
.portfolio-page .portfolio-cinematic > .v2-cinematic-vignette {
  position: fixed;
  inset: 0;
}

.portfolio-page .portfolio-container {
  width: var(--portfolio-container);
  margin-inline: auto;
}

.portfolio-hero {
  position: relative;
  min-height: 92svh;
  padding: clamp(132px, 14vw, 190px) 0 clamp(88px, 9vw, 138px);
  display: grid;
  place-items: center;
  text-align: center;
  isolation: isolate;
}

.portfolio-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    radial-gradient(circle at 50% 38%, rgb(var(--page-accent) / .17), transparent 0 24%),
    radial-gradient(circle at 50% 76%, rgb(var(--scene-rgb-soft) / .08), transparent 0 34%),
    linear-gradient(180deg, rgba(3,2,7,.08), rgba(3,2,7,.42) 68%, rgba(3,2,7,.9));
}

.portfolio-hero-inner {
  position: relative;
  z-index: 2;
  width: min(1180px, calc(100vw - 36px));
  display: grid;
  justify-items: center;
}

.portfolio-breadcrumb {
  margin-bottom: 30px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 9px;
  color: rgba(235,228,247,.42);
  font-size: .68rem;
  font-weight: 620;
  letter-spacing: .03em;
}

.portfolio-breadcrumb a {
  color: rgb(var(--page-accent) / .9);
  text-decoration: none;
}

.portfolio-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 5px; }
.portfolio-breadcrumb i { color: rgba(255,255,255,.2); font-style: normal; }

.portfolio-hero-mark {
  width: clamp(76px, 7.8vw, 112px);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  border: 1px solid rgb(var(--page-accent) / .18);
  border-radius: 34%;
  background: linear-gradient(145deg, rgba(255,255,255,.07), rgba(255,255,255,.018));
  box-shadow: 0 0 0 12px rgba(255,255,255,.015), 0 0 80px rgb(var(--page-accent) / .16);
  transform: rotate(-4deg);
}

.portfolio-hero-mark img {
  width: 72%;
  height: 72%;
  object-fit: contain;
  border-radius: 29%;
  filter: drop-shadow(0 0 18px rgba(255,255,255,.22));
  transform: rotate(4deg);
}

.portfolio-kicker {
  margin: 28px 0 16px;
  color: rgb(var(--page-accent) / .92);
  font-size: .69rem;
  font-weight: 820;
  letter-spacing: .17em;
  text-transform: uppercase;
}

.portfolio-hero h1 {
  max-width: 1060px;
  margin: 0;
  color: #fff;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(3.2rem, 6vw, 6.7rem);
  font-weight: 520;
  line-height: .94;
  letter-spacing: -.066em;
  text-wrap: balance;
}

.project-hero h1 { font-size: clamp(4rem, 9.5vw, 10rem); }
.product-page .project-hero h1 { font-size: clamp(3.25rem, 6vw, 6.8rem); }

.portfolio-project-subtitle {
  max-width: 980px;
  margin: 22px 0 0;
  color: rgba(255,255,255,.88);
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(1.3rem, 2.1vw, 2.15rem);
  font-weight: 510;
  line-height: 1.22;
  letter-spacing: -.025em;
  text-wrap: balance;
}

.portfolio-lead {
  max-width: 790px;
  margin: 24px 0 0;
  color: rgba(238,233,247,.66);
  font-size: clamp(1rem, 1.28vw, 1.16rem);
  line-height: 1.76;
  text-wrap: pretty;
}

.portfolio-actions {
  margin-top: 31px;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 10px;
}

.portfolio-actions a { text-decoration: none; }

.portfolio-service-orbit {
  position: relative;
  width: min(640px, 76vw);
  aspect-ratio: 2.6 / 1;
  margin-top: 58px;
  pointer-events: none;
  opacity: .82;
}

.portfolio-service-orbit span {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 100%;
  height: 72%;
  border: 1px solid rgb(var(--page-accent) / .15);
  border-radius: 50%;
  transform: translate(-50%, -50%) rotate(-5deg);
}

.portfolio-service-orbit span:nth-child(2) { width: 72%; height: 94%; transform: translate(-50%,-50%) rotate(8deg); border-color: rgba(255,255,255,.08); }
.portfolio-service-orbit span:nth-child(3) { width: 44%; height: 116%; transform: translate(-50%,-50%) rotate(-12deg); border-style: dashed; }
.portfolio-service-orbit strong {
  position: absolute;
  inset: 50% auto auto 50%;
  color: transparent;
  -webkit-text-stroke: 1px rgb(var(--page-accent) / .55);
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(3.5rem, 7vw, 7rem);
  font-weight: 760;
  letter-spacing: -.08em;
  line-height: 1;
  transform: translate(-50%,-50%);
  text-shadow: 0 0 42px rgb(var(--page-accent) / .24);
}
.portfolio-service-orbit.is-hub strong { font-size: clamp(2.5rem,5vw,5rem); letter-spacing:.06em; }
.portfolio-service-orbit i {
  position: absolute;
  width: 7px;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 0 18px 4px rgb(var(--page-accent) / .48);
}
.portfolio-service-orbit i:nth-of-type(1) { left: 7%; top: 54%; }
.portfolio-service-orbit i:nth-of-type(2) { right: 17%; top: 28%; width: 4px; }
.portfolio-service-orbit i:nth-of-type(3) { left: 44%; bottom: 3%; width: 3px; }

.portfolio-section {
  position: relative;
  padding: clamp(88px, 10vw, 150px) 0;
}

.portfolio-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: radial-gradient(circle at 50% 8%, rgb(var(--page-accent) / .07), transparent 0 34%);
}

.portfolio-heading {
  margin-bottom: clamp(46px, 6vw, 82px);
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(310px, .58fr);
  gap: clamp(44px, 8vw, 120px);
  align-items: end;
}

.portfolio-heading--center {
  width: min(920px, 100%);
  margin-inline: auto;
  text-align: center;
  grid-template-columns: 1fr;
  justify-items: center;
}

.portfolio-heading h2,
.portfolio-fit-copy h2,
.portfolio-story aside h2,
.portfolio-contact-shell h2,
.portfolio-product-feature h2,
.portfolio-founder-grid h2,
.portfolio-product-intro h2,
.portfolio-capability-stage h2 {
  margin: 0;
  color: #fff;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(2.65rem, 4.7vw, 5.2rem);
  font-weight: 520;
  line-height: .98;
  letter-spacing: -.056em;
  text-wrap: balance;
}

.portfolio-heading > p:not(.v2-eyebrow),
.portfolio-fit-copy > p:not(.v2-eyebrow) {
  max-width: 560px;
  margin: 0;
  color: var(--portfolio-text);
  line-height: 1.75;
}

.portfolio-strata {
  border-top: 1px solid var(--portfolio-line);
}

.portfolio-strata article {
  min-height: 175px;
  padding: 28px 0;
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: clamp(24px, 5vw, 72px);
  align-items: center;
  border-bottom: 1px solid var(--portfolio-line);
}

.portfolio-strata article > span {
  color: transparent;
  -webkit-text-stroke: 1px rgb(var(--page-accent) / .6);
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(2.7rem, 5vw, 5rem);
  font-weight: 760;
  letter-spacing: -.07em;
}

.portfolio-strata h3 {
  margin: 0;
  color: #fff;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(1.5rem, 2.25vw, 2.35rem);
  font-weight: 560;
  letter-spacing: -.035em;
}

.portfolio-strata p {
  max-width: 800px;
  margin: 11px 0 0;
  color: var(--portfolio-text);
  line-height: 1.72;
}

.portfolio-project-list { display: grid; gap: 14px; }
.portfolio-project-list.is-hub-list { gap: 22px; }

.portfolio-project-row {
  --row-accent: 166 139 255;
  position: relative;
  min-height: 310px;
  padding: clamp(24px, 3vw, 42px);
  display: grid;
  grid-template-columns: 80px minmax(280px, .9fr) minmax(340px, 1.05fr) 34px;
  gap: clamp(22px, 4vw, 58px);
  align-items: center;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 30px;
  background:
    radial-gradient(circle at 80% 50%, rgb(var(--row-accent) / .12), transparent 0 34%),
    linear-gradient(145deg, rgba(20,17,31,.82), rgba(7,6,12,.76));
  box-shadow: 0 30px 90px rgba(0,0,0,.24), inset 0 1px 0 rgba(255,255,255,.04);
  transition: transform 420ms cubic-bezier(.2,.8,.2,1), border-color 300ms ease, box-shadow 420ms ease;
}

.portfolio-project-row::before {
  content: "";
  position: absolute;
  inset: -1px;
  padding: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(115deg, rgb(var(--row-accent) / .35), transparent 25%, transparent 75%, rgba(255,255,255,.08));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
}

.portfolio-project-row:hover {
  transform: translateY(-5px);
  border-color: rgb(var(--row-accent) / .26);
  box-shadow: 0 42px 110px rgba(0,0,0,.34), 0 0 55px rgb(var(--row-accent) / .06);
}

.portfolio-project-row.is-compact {
  min-height: 225px;
  grid-template-columns: 64px minmax(260px,.9fr) minmax(300px,.85fr) 30px;
}

.portfolio-row-index {
  color: transparent;
  -webkit-text-stroke: 1px rgb(var(--row-accent) / .58);
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(2.8rem, 5vw, 5rem);
  font-weight: 760;
  letter-spacing: -.08em;
}

.portfolio-row-copy { position: relative; z-index: 2; }
.portfolio-row-copy small {
  color: rgb(var(--row-accent) / .86);
  font-size: .65rem;
  font-weight: 790;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.portfolio-row-copy h3 {
  margin: 12px 0 0;
  color: #fff;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(2rem, 4vw, 4.8rem);
  font-weight: 530;
  line-height: .98;
  letter-spacing: -.055em;
}
.portfolio-row-copy p {
  max-width: 560px;
  margin: 16px 0 0;
  color: rgba(237,231,247,.64);
  font-size: .92rem;
  line-height: 1.68;
}

.portfolio-row-image {
  position: relative;
  z-index: 1;
  width: 100%;
  min-width: 0;
  aspect-ratio: 16 / 9;
  display: block;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 20px;
  background: #08070d;
  box-shadow: 0 22px 60px rgba(0,0,0,.34);
}
.portfolio-row-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform 700ms cubic-bezier(.2,.8,.2,1), filter 500ms ease; }
.portfolio-project-row:hover .portfolio-row-image img { transform: scale(1.035); filter: saturate(1.06) brightness(1.03); }
.portfolio-row-arrow { color: rgb(var(--row-accent) / .9); font-size: 1.4rem; }

.portfolio-fit-layout,
.portfolio-story-grid,
.portfolio-founder-grid,
.portfolio-product-intro,
.portfolio-capability-stage {
  display: grid;
  grid-template-columns: minmax(0,.78fr) minmax(0,1.22fr);
  gap: clamp(54px, 9vw, 140px);
  align-items: start;
}

.portfolio-fit-copy,
.portfolio-story aside { position: sticky; top: 126px; }

.portfolio-fit-copy > p:last-child { margin-top: 22px; }
.portfolio-fit-list { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--portfolio-line); }
.portfolio-fit-list li {
  position: relative;
  min-height: 112px;
  padding: 28px 10px 28px 56px;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--portfolio-line);
  color: rgba(244,240,251,.78);
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  line-height: 1.55;
}
.portfolio-fit-list li::before {
  content: "";
  position: absolute;
  left: 8px;
  width: 18px;
  aspect-ratio: 1;
  border: 1px solid rgb(var(--page-accent) / .56);
  border-radius: 50%;
  box-shadow: inset 0 0 0 5px rgba(3,2,7,1), 0 0 18px rgb(var(--page-accent) / .22);
  background: rgb(var(--page-accent));
}

.portfolio-faq-list { width: min(920px, 100%); margin: 0 auto; display: grid; gap: 10px; }
.portfolio-faq-list details {
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 21px;
  background: linear-gradient(145deg, rgba(255,255,255,.04), rgba(255,255,255,.014));
  overflow: hidden;
}
.portfolio-faq-list summary {
  position: relative;
  padding: 23px 62px 23px 25px;
  color: #fff;
  font-weight: 670;
  cursor: pointer;
  list-style: none;
}
.portfolio-faq-list summary::-webkit-details-marker { display:none; }
.portfolio-faq-list summary::after { content:"+"; position:absolute; right:25px; top:50%; transform:translateY(-50%); color:rgb(var(--page-accent)); font-size:1.45rem; font-weight:400; }
.portfolio-faq-list details[open] summary::after { content:"−"; }
.portfolio-faq-list details p { margin:0; padding:0 25px 25px; color:var(--portfolio-text); line-height:1.72; }

.portfolio-contact { padding-bottom: clamp(110px, 12vw, 180px); }
.portfolio-contact-shell {
  padding: clamp(42px, 7vw, 92px);
  text-align: center;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 38px;
  background:
    radial-gradient(circle at 50% 0%, rgb(var(--page-accent) / .18), transparent 0 46%),
    linear-gradient(150deg, rgba(19,16,31,.9), rgba(7,6,12,.88));
  box-shadow: 0 38px 120px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.05);
}
.portfolio-contact-shell h2 { max-width: 920px; margin-inline: auto; }
.portfolio-contact-shell > p:not(.v2-eyebrow) { max-width: 720px; margin: 22px auto 0; color: var(--portfolio-text); line-height:1.75; }
.portfolio-contact-meta { margin-top:34px; display:flex; flex-wrap:wrap; justify-content:center; gap:10px 24px; color:var(--portfolio-muted); font-size:.72rem; }
.portfolio-contact-meta span { position:relative; }
.portfolio-contact-meta span + span::before { content:"·"; position:absolute; left:-15px; color:rgb(var(--page-accent)); }

/* Project editorial system */
.portfolio-project-window {
  position: relative;
  width: min(1160px, 100%);
  margin-top: clamp(55px, 7vw, 88px);
  padding: 14px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.11);
  border-radius: 30px;
  background: linear-gradient(145deg, rgba(255,255,255,.065), rgba(255,255,255,.018));
  box-shadow: 0 50px 150px rgba(0,0,0,.42), 0 0 90px rgb(var(--page-accent) / .1);
}
.portfolio-project-window::after {
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 24%,transparent 76%,rgb(var(--page-accent)/.06));
}
.portfolio-project-main-image,
.portfolio-project-secondary-image {
  display: block;
  overflow: hidden;
  border-radius: 20px;
  background: #08070c;
}
.portfolio-project-main-image img { width:100%; height:auto; display:block; }
.portfolio-project-secondary-image { align-self:center; max-width:270px; margin:0 auto; border:1px solid rgba(255,255,255,.08); box-shadow:0 26px 90px rgba(0,0,0,.35); }
.portfolio-project-secondary-image img { width:100%; height:auto; display:block; }
.portfolio-dual-gallery { padding: clamp(18px,4vw,48px); display:grid; grid-template-columns:minmax(0,1fr) minmax(170px,.26fr); gap:clamp(24px,4vw,58px); align-items:center; background:radial-gradient(circle at 75% 50%,rgb(var(--page-accent)/.12),transparent 34%); }
.portfolio-window-caption {
  position: relative;
  z-index: 2;
  padding: 16px 8px 4px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 14px;
  align-items: center;
  text-align: left;
}
.portfolio-window-caption span { color:rgb(var(--page-accent)); font-size:.64rem; font-weight:820; letter-spacing:.14em; text-transform:uppercase; }
.portfolio-window-caption strong { color:#fff; font-size:.82rem; }
.portfolio-window-caption small { color:var(--portfolio-muted); font-size:.68rem; }

.portfolio-story-copy { border-top:1px solid var(--portfolio-line); }
.portfolio-story-copy article { padding: 36px 0 38px; display:grid; grid-template-columns:50px 130px 1fr; gap:20px; border-bottom:1px solid var(--portfolio-line); align-items:start; }
.portfolio-story-copy article > span { color:rgb(var(--page-accent)); font-size:.66rem; font-weight:830; letter-spacing:.12em; }
.portfolio-story-copy h3 { margin:0; color:#fff; font-size:.9rem; font-weight:720; }
.portfolio-story-copy p { margin:0; color:var(--portfolio-text); line-height:1.78; }
.portfolio-stack-ribbon { margin-top:30px; display:flex; flex-wrap:wrap; gap:8px; }
.portfolio-stack-ribbon span { padding:9px 12px; border:1px solid rgb(var(--page-accent)/.18); border-radius:999px; color:rgba(245,241,252,.7); background:rgb(var(--page-accent)/.055); font-size:.68rem; font-weight:620; }

.portfolio-capability-stage { align-items: end; }
.portfolio-capability-stage > ul,
.portfolio-product-intro > ul { margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); list-style:none; border-top:1px solid var(--portfolio-line); }
.portfolio-capability-stage li,
.portfolio-product-intro li { min-height:78px; padding:20px 14px 20px 0; display:flex; align-items:center; border-bottom:1px solid var(--portfolio-line); color:rgba(246,242,252,.76); }
.portfolio-capability-stage li:nth-child(odd),
.portfolio-product-intro li:nth-child(odd) { border-right:1px solid var(--portfolio-line); }
.portfolio-capability-stage li:nth-child(even),
.portfolio-product-intro li:nth-child(even) { padding-left:24px; }

.portfolio-related-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.portfolio-related-link {
  min-height: 122px;
  padding: 22px 24px;
  display: grid;
  grid-template-columns:44px 1fr 22px;
  gap:16px;
  align-items:center;
  color:inherit;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.075);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012));
  transition:transform 260ms ease,border-color 260ms ease,background 260ms ease;
}
.portfolio-related-link:hover { transform:translateY(-3px); border-color:rgb(var(--page-accent)/.24); background:rgb(var(--page-accent)/.055); }
.portfolio-related-link > span { color:rgb(var(--page-accent)); font-size:.66rem; font-weight:830; }
.portfolio-related-link strong { display:block; color:#fff; font-size:.92rem; }
.portfolio-related-link small { display:block; margin-top:7px; color:var(--portfolio-muted); font-size:.72rem; line-height:1.45; }
.portfolio-related-link i { color:rgb(var(--page-accent)); font-style:normal; }

/* Hubs */
.portfolio-service-index { border-top:1px solid var(--portfolio-line); }
.portfolio-service-row {
  --row-accent:166 139 255;
  min-height: 195px;
  padding: 28px 8px;
  display:grid;
  grid-template-columns:100px minmax(0,1fr) 42px;
  gap:clamp(22px,5vw,76px);
  align-items:center;
  color:inherit;
  text-decoration:none;
  border-bottom:1px solid var(--portfolio-line);
  transition:padding 300ms ease,background 300ms ease;
}
.portfolio-service-row:hover { padding-inline:24px; background:linear-gradient(90deg,rgb(var(--row-accent)/.08),transparent); }
.portfolio-service-row > span { color:transparent; -webkit-text-stroke:1px rgb(var(--row-accent)/.58); font-family:Manrope,Inter,sans-serif; font-size:clamp(2.8rem,5vw,5.4rem); font-weight:760; letter-spacing:-.08em; }
.portfolio-service-row small { color:rgb(var(--row-accent)/.84); font-size:.64rem; font-weight:820; letter-spacing:.13em; text-transform:uppercase; }
.portfolio-service-row h2 { margin:8px 0 0; color:#fff; font-family:Manrope,Inter,sans-serif; font-size:clamp(1.65rem,3.1vw,3.25rem); font-weight:540; letter-spacing:-.045em; }
.portfolio-service-row p { margin:10px 0 0; color:var(--portfolio-text); line-height:1.62; }
.portfolio-service-row i { color:rgb(var(--row-accent)); font-size:1.35rem; font-style:normal; }

.portfolio-product-feature {
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(350px,.8fr);
  gap:clamp(44px,8vw,110px);
  align-items:center;
}
.portfolio-product-image { padding:12px; display:block; border:1px solid rgba(255,255,255,.09); border-radius:28px; background:rgba(255,255,255,.025); box-shadow:0 36px 110px rgba(0,0,0,.34); }
.portfolio-product-image img { width:100%; height:auto; display:block; border-radius:19px; }
.portfolio-product-feature p:not(.v2-eyebrow) { margin:22px 0 0; color:var(--portfolio-text); line-height:1.75; }
.portfolio-product-feature .portfolio-actions { justify-content:flex-start; }

.portfolio-tech-ledger { border-top:1px solid var(--portfolio-line); }
.portfolio-tech-ledger article { min-height:220px; padding:32px 0; display:grid; grid-template-columns:110px minmax(0,1fr); gap:clamp(26px,6vw,90px); align-items:center; border-bottom:1px solid var(--portfolio-line); }
.portfolio-tech-ledger article > span { color:transparent; -webkit-text-stroke:1px rgb(var(--page-accent)/.54); font-family:Manrope,Inter,sans-serif; font-size:clamp(3rem,5vw,5.5rem); font-weight:760; }
.portfolio-tech-ledger h2 { margin:0; color:#fff; font-family:Manrope,Inter,sans-serif; font-size:clamp(1.8rem,3.2vw,3.4rem); font-weight:540; letter-spacing:-.048em; }
.portfolio-tech-ledger strong { margin-top:14px; display:block; color:rgb(var(--page-accent)/.9); font-size:.79rem; font-weight:690; line-height:1.65; }
.portfolio-tech-ledger p { max-width:780px; margin:13px 0 0; color:var(--portfolio-text); line-height:1.68; }

.portfolio-direct-contact { display:grid; gap:12px; }
.portfolio-direct-contact > a,
.portfolio-direct-contact > div {
  min-height:170px;
  padding:30px;
  display:grid;
  grid-template-columns:70px 1fr 30px;
  gap:26px;
  align-items:center;
  color:inherit;
  text-decoration:none;
  border:1px solid rgba(255,255,255,.08);
  border-radius:26px;
  background:linear-gradient(145deg,rgba(255,255,255,.04),rgba(255,255,255,.014));
}
.portfolio-direct-contact > a:hover { border-color:rgb(var(--page-accent)/.3); background:rgb(var(--page-accent)/.05); }
.portfolio-direct-contact > * > span { color:transparent; -webkit-text-stroke:1px rgb(var(--page-accent)/.58); font-family:Manrope,Inter,sans-serif; font-size:3rem; font-weight:760; }
.portfolio-direct-contact small { color:rgb(var(--page-accent)); font-size:.64rem; font-weight:820; letter-spacing:.13em; text-transform:uppercase; }
.portfolio-direct-contact strong { margin-top:9px; display:block; color:#fff; font-size:clamp(1.3rem,2.4vw,2.4rem); overflow-wrap:anywhere; }
.portfolio-direct-contact p { margin:10px 0 0; color:var(--portfolio-text); line-height:1.6; }
.portfolio-direct-contact i { color:rgb(var(--page-accent)); font-style:normal; font-size:1.3rem; }

.portfolio-contact-prompts { margin:0; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; list-style:none; }
.portfolio-contact-prompts li { min-height:230px; padding:28px 24px; display:flex; flex-direction:column; justify-content:space-between; border:1px solid rgba(255,255,255,.08); border-radius:24px; background:linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.012)); }
.portfolio-contact-prompts span { color:rgb(var(--page-accent)); font-size:.66rem; font-weight:830; letter-spacing:.12em; }
.portfolio-contact-prompts p { margin:0; color:rgba(246,242,252,.78); font-size:1rem; line-height:1.6; }

/* About */
.portfolio-about-visual {
  width:min(1120px,100%);
  margin-top:clamp(54px,7vw,86px);
  display:grid;
  grid-template-columns:minmax(0,1.6fr) minmax(220px,.55fr);
  gap:14px;
  align-items:stretch;
}
.portfolio-about-wide,
.portfolio-about-tall,
.portfolio-founder-image { display:block; overflow:hidden; border:1px solid rgba(255,255,255,.1); border-radius:26px; background:#08070d; box-shadow:0 35px 100px rgba(0,0,0,.34); }
.portfolio-about-wide img,.portfolio-about-tall img { width:100%; height:100%; display:block; object-fit:cover; }
.portfolio-about-wide { min-height:440px; }
.portfolio-about-tall { min-height:440px; }
.portfolio-founder-grid { align-items:center; }
.portfolio-founder-image { width:min(430px,100%); margin-inline:auto; aspect-ratio: .73; }
.portfolio-founder-image img { width:100%; height:100%; display:block; object-fit:cover; }
.portfolio-founder-grid h3 { margin:18px 0 0; color:rgb(var(--page-accent)/.92); font-size:.77rem; font-weight:790; letter-spacing:.11em; text-transform:uppercase; }
.portfolio-founder-grid p { max-width:670px; margin:22px 0 0; color:var(--portfolio-text); line-height:1.76; }

.portfolio-footer { position:relative; z-index:2; }

/* Home additions */
.v2-hero-positioning {
  max-width: 720px;
  margin: 28px auto 0;
  color: rgba(240,235,250,.7);
  font-size: clamp(.96rem,1.22vw,1.12rem);
  line-height:1.7;
  text-align:center;
  text-wrap:balance;
}
.project-world--anatomy { --world-accent: 184 222 44; --world-accent-2: 96 137 27; }
.project-world--anatomy .world-device-screen img { object-position:center; filter:contrast(1.03) saturate(.96) brightness(.92); }
.project-world--anatomy.is-active .world-device-screen img { filter:contrast(1.04) saturate(1.05) brightness(1.02); }

@media (max-width: 1100px) {
  .portfolio-project-row,
  .portfolio-project-row.is-compact { grid-template-columns:64px minmax(0,.9fr) minmax(280px,.8fr) 28px; }
  .portfolio-heading { grid-template-columns:1fr; gap:22px; }
  .portfolio-heading > p:not(.v2-eyebrow) { max-width:720px; }
  .portfolio-contact-prompts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media (max-width: 900px) {
  .portfolio-page { --portfolio-container: min(100% - 36px, 900px); }
  .portfolio-project-row,
  .portfolio-project-row.is-compact { min-height:0; grid-template-columns:52px minmax(0,1fr) 24px; gap:18px; }
  .portfolio-row-image { grid-column:1 / -1; grid-row:2; }
  .portfolio-row-copy { grid-column:2; }
  .portfolio-row-arrow { grid-column:3; }
  .portfolio-fit-layout,.portfolio-story-grid,.portfolio-founder-grid,.portfolio-product-intro,.portfolio-capability-stage,.portfolio-product-feature { grid-template-columns:1fr; }
  .portfolio-fit-copy,.portfolio-story aside { position:static; }
  .portfolio-related-list { grid-template-columns:1fr; }
  .portfolio-about-visual { grid-template-columns:1fr .5fr; }
}

@media (max-width: 700px) {
  .portfolio-page { --portfolio-container: calc(100vw - 28px); }
  .portfolio-hero { min-height:auto; padding:126px 0 82px; }
  .portfolio-hero h1 { font-size:clamp(2.75rem,13vw,4.5rem); }
  .project-hero h1 { font-size:clamp(3.8rem,18vw,6.8rem); }
  .product-page .project-hero h1 { font-size:clamp(2.7rem,12vw,4.4rem); }
  .portfolio-project-subtitle { font-size:clamp(1.18rem,5.5vw,1.55rem); }
  .portfolio-service-orbit { width:92vw; margin-top:42px; }
  .portfolio-section { padding:78px 0; }
  .portfolio-heading h2,.portfolio-fit-copy h2,.portfolio-story aside h2,.portfolio-contact-shell h2,.portfolio-product-feature h2,.portfolio-founder-grid h2,.portfolio-product-intro h2,.portfolio-capability-stage h2 { font-size:clamp(2.35rem,11vw,3.7rem); }
  .portfolio-strata article { min-height:0; padding:28px 0; grid-template-columns:62px 1fr; gap:18px; }
  .portfolio-strata article > span { font-size:2.8rem; }
  .portfolio-project-row,.portfolio-project-row.is-compact { padding:20px; border-radius:23px; }
  .portfolio-row-index { font-size:2.8rem; }
  .portfolio-row-copy h3 { font-size:clamp(2rem,11vw,3.6rem); }
  .portfolio-window-caption { grid-template-columns:1fr; gap:5px; }
  .portfolio-window-caption small { display:none; }
  .portfolio-dual-gallery { grid-template-columns:1fr; }
  .portfolio-project-secondary-image { max-width:210px; }
  .portfolio-story-copy article { grid-template-columns:40px 1fr; gap:10px 16px; }
  .portfolio-story-copy article p { grid-column:2; }
  .portfolio-capability-stage > ul,.portfolio-product-intro > ul { grid-template-columns:1fr; }
  .portfolio-capability-stage li:nth-child(odd),.portfolio-product-intro li:nth-child(odd) { border-right:0; }
  .portfolio-capability-stage li:nth-child(even),.portfolio-product-intro li:nth-child(even) { padding-left:0; }
  .portfolio-service-row { min-height:154px; grid-template-columns:62px 1fr 20px; gap:14px; }
  .portfolio-service-row > span { font-size:3rem; }
  .portfolio-service-row p { font-size:.85rem; }
  .portfolio-tech-ledger article { min-height:0; grid-template-columns:62px 1fr; gap:18px; }
  .portfolio-tech-ledger article > span { font-size:3rem; }
  .portfolio-direct-contact > a,.portfolio-direct-contact > div { min-height:0; padding:24px 20px; grid-template-columns:52px 1fr 20px; gap:14px; border-radius:22px; }
  .portfolio-direct-contact > * > span { font-size:2.7rem; }
  .portfolio-direct-contact strong { font-size:1.12rem; }
  .portfolio-contact-prompts { grid-template-columns:1fr; }
  .portfolio-contact-prompts li { min-height:160px; }
  .portfolio-contact-shell { padding:44px 22px; border-radius:28px; }
  .portfolio-contact-meta { display:grid; gap:7px; }
  .portfolio-contact-meta span + span::before { display:none; }
  .portfolio-about-visual { grid-template-columns:1fr; }
  .portfolio-about-wide,.portfolio-about-tall { min-height:260px; }
  .portfolio-about-tall { max-height:420px; }
}

@media (max-width: 820px), (pointer: coarse) {
  .portfolio-project-row,
  .portfolio-contact-shell,
  .portfolio-related-link,
  .portfolio-faq-list details,
  .portfolio-product-image,
  .portfolio-direct-contact > a,
  .portfolio-direct-contact > div,
  .portfolio-contact-prompts li {
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-project-row,
  .portfolio-row-image img,
  .portfolio-service-row,
  .portfolio-related-link { transition:none !important; }
}
