:root {
  color-scheme: light;
  --paper: #f2f0ea;
  --ink: #171a18;
  --muted: #666862;
  --line: #d2d0c9;
  --white: #fff;
  --accent: #e9582d;
  --serif: "Iowan Old Style", "Baskerville", "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --max: 1440px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); }
img { display: block; max-width: 100%; }
a { color: inherit; }
::selection { background: var(--ink); color: var(--paper); }
.shell { width: min(calc(100% - 64px), var(--max)); margin: 0 auto; }
.skip { position: fixed; z-index: 100; top: -60px; left: 16px; padding: 12px 16px; background: var(--ink); color: white; }
.skip:focus { top: 16px; }

.site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid rgba(23, 26, 24, .12); background: rgba(242, 240, 234, .94); backdrop-filter: blur(18px); }
.header-inner { min-height: 72px; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.wordmark { font-size: 14px; font-weight: 700; letter-spacing: -.015em; text-decoration: none; }
nav { display: flex; gap: 28px; }
nav a { color: var(--muted); font-size: 13px; font-weight: 600; text-decoration: none; }
nav a:hover { color: var(--ink); }

.eyebrow, .index { margin: 0; color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.hero { min-height: calc(100vh - 72px); padding-top: clamp(96px, 14vh, 170px); padding-bottom: 54px; display: flex; flex-direction: column; align-items: flex-start; }
.hero h1 { max-width: 1200px; margin: 34px 0 34px; font-family: var(--serif); font-size: clamp(64px, 10vw, 148px); font-weight: 500; letter-spacing: -.065em; line-height: .88; }
.hero-copy { max-width: 720px; margin: 0; color: #3f423e; font-size: clamp(20px, 2vw, 28px); letter-spacing: -.025em; line-height: 1.42; }
.text-link { margin-top: auto; padding-top: 72px; font-size: 13px; font-weight: 700; text-decoration: none; }
.text-link span { margin-left: 10px; }

.work { padding: 104px 0 140px; border-top: 1px solid var(--line); }
.section-title { margin-bottom: 44px; display: grid; grid-template-columns: 220px 1fr; gap: 48px; }
.section-title > p:last-child { max-width: 630px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.feature { display: grid; grid-template-columns: minmax(260px, .34fr) minmax(0, 1fr); gap: 24px; padding: 24px; border: 1px solid #bebcb5; background: #e7e5df; text-decoration: none; transition: transform .3s ease, box-shadow .3s ease; }
.feature:hover { transform: translateY(-3px); box-shadow: 0 24px 70px rgba(26, 28, 26, .10); }
.feature-copy { min-height: 570px; padding: clamp(24px, 3vw, 46px); display: flex; flex-direction: column; align-items: flex-start; }
.feature-copy h2 { margin: 42px 0 22px; font-family: var(--serif); font-size: clamp(48px, 5vw, 78px); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.feature-copy > p:not(.index) { max-width: 370px; margin: 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.feature-copy span { margin-top: auto; font-size: 13px; font-weight: 700; }
.feature-copy b { margin-left: 8px; }
.product-frame { min-width: 0; margin: 0; overflow: hidden; border: 1px solid #b9b7b0; background: white; }
.product-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 39% center; }
.feature + .feature { margin-top: 28px; }
.feature-management { background: #e9e7e1; }
.feature-management .feature-copy h2 { font-size: clamp(42px, 4.2vw, 66px); }
.management-preview { min-width: 0; margin: 0; padding: clamp(18px, 2vw, 34px); border: 1px solid #b9b7b0; background: #f7f5ef; overflow: hidden; }
.preview-bar { height: 54px; padding: 0 16px; display: flex; align-items: center; gap: 7px; border-bottom: 1px solid #d3d0c8; background: #fff; }
.preview-bar i { width: 7px; height: 7px; border-radius: 50%; background: #cac7be; }
.preview-bar span { margin-left: auto; color: #79818d; font-size: 10px; letter-spacing: .09em; text-transform: uppercase; }
.preview-metrics { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 18px; }
.preview-metrics b { min-height: 72px; padding: 13px; border: 1px solid #d9d6ce; background: #fff; color: #1d3347; font-size: 11px; font-weight: 650; }
.preview-layout { display: grid; grid-template-columns: 1.1fr .9fr; gap: 10px; margin-top: 10px; }
.preview-chart, .preview-bars, .preview-table { border: 1px solid #d9d6ce; background: #fff; }
.preview-chart { min-height: 230px; background: linear-gradient(165deg, transparent 49%, #ea5a32 50%, #ea5a32 50.5%, transparent 51%), repeating-linear-gradient(to bottom, #fff 0 42px, #e7ebef 43px); }
.preview-bars { min-height: 230px; padding: 36px 24px 22px; display: flex; align-items: flex-end; justify-content: space-between; gap: 9px; }
.preview-bars i { width: 8%; background: #163d59; }
.preview-bars i:nth-child(1) { height: 28%; }.preview-bars i:nth-child(2) { height: 42%; }.preview-bars i:nth-child(3) { height: 36%; }.preview-bars i:nth-child(4) { height: 66%; }.preview-bars i:nth-child(5) { height: 54%; }.preview-bars i:nth-child(6) { height: 81%; }.preview-bars i:nth-child(7) { height: 64%; }.preview-bars i:nth-child(8) { height: 92%; }
.preview-table { margin-top: 10px; padding: 16px; display: grid; gap: 11px; }
.preview-table i { display: block; height: 10px; background: linear-gradient(to right, #17364d 0 23%, #dfe3e5 23% 51%, #dfe3e5 53% 73%, #dfe3e5 75%); }

.about { padding: 132px 0 152px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 220px 1fr; gap: 48px; }
.about > div { max-width: 930px; }
.about h2 { margin: 0 0 46px; font-family: var(--serif); font-size: clamp(48px, 6vw, 86px); font-weight: 500; letter-spacing: -.055em; line-height: .96; }
.about p { max-width: 760px; margin: 0 0 24px; color: var(--muted); font-size: 18px; line-height: 1.7; }
.about .ai-note { margin-top: 46px; padding-top: 26px; border-top: 1px solid var(--line); color: var(--ink); }
footer { border-top: 1px solid var(--line); }
.footer-inner { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 28px; color: var(--muted); font-size: 11px; line-height: 1.5; }

@media (max-width: 860px) {
  .shell { width: min(calc(100% - 32px), var(--max)); }
  .hero { min-height: 760px; }
  .section-title, .about { grid-template-columns: 1fr; gap: 20px; }
  .feature { grid-template-columns: 1fr; }
  .feature-copy { min-height: 400px; }
  .product-frame { aspect-ratio: 16 / 10; }
  .management-preview { min-height: 520px; }
}

@media (max-width: 560px) {
  .header-inner { min-height: 62px; }
  .hero { min-height: calc(100svh - 62px); padding-top: 78px; }
  .hero h1 { font-size: clamp(56px, 17vw, 86px); }
  .feature { padding: 10px; }
  .feature-copy { min-height: 360px; padding: 25px 20px; }
  .feature-copy h2 { margin-top: 34px; }
  .preview-metrics { grid-template-columns: 1fr 1fr; }
  .preview-layout { grid-template-columns: 1fr; }
  .preview-chart, .preview-bars { min-height: 160px; }
  .footer-inner { padding: 24px 0; display: grid; }
}

/* Investment management systems */
.compact-hero { padding-bottom: 96px; }
.compact-hero .back-link { margin-bottom: 72px; }
.compact-hero .product-heading h1 { font-size: clamp(68px, 9vw, 132px); }
.system-section { padding: 130px 0 150px; scroll-margin-top: 125px; }
.system-section + .system-section { border-top: 1px solid var(--line); }
.system-heading { margin-bottom: 46px; display: grid; grid-template-columns: 180px minmax(0, 820px); gap: 48px; }
.system-heading > span { padding-top: 9px; color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.system-heading h2 { margin: 0 0 16px; font-family: var(--serif); font-size: clamp(50px, 6vw, 84px); font-weight: 500; letter-spacing: -.055em; line-height: .95; }
.system-heading p { max-width: 720px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.6; }
.dashboard-frame { margin: 0; overflow: hidden; border: 1px solid #c4c1b9; background: #f7f5ef; box-shadow: 0 30px 90px rgba(23, 26, 24, .10); }
.dashboard-frame figcaption { padding: 12px 15px; border-top: 1px solid var(--line); color: var(--muted); font-size: 9px; letter-spacing: .1em; text-transform: uppercase; }
.dashboard-canvas { min-width: 1160px; background: #f5f1ea; color: #102942; font-family: var(--sans); }
.db-header { min-height: 94px; padding: 22px 30px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid #d8d9db; background: #faf8f3; }
.db-header div { display: grid; gap: 7px; }
.db-header small { color: #f05b35; font-size: 9px; font-weight: 800; letter-spacing: .16em; }
.db-header strong { font-size: 25px; letter-spacing: -.035em; }
.db-header > span { padding: 8px 13px; border: 1px solid #cad8cb; border-radius: 999px; color: #247851; font-size: 10px; }
.db-tabs { min-height: 46px; padding: 0 30px; display: flex; align-items: center; gap: 40px; border-bottom: 1px solid #ddd; background: white; color: #617185; font-size: 10px; }
.db-tabs b { height: 46px; display: flex; align-items: center; border-bottom: 2px solid #f05b35; color: #102942; }
.db-pad { padding: 26px 30px 32px; }
.db-metrics { display: grid; gap: 12px; }
.db-metrics.six { grid-template-columns: repeat(6, 1fr); }
.db-metrics.five { grid-template-columns: repeat(5, 1fr); }
.db-metrics.four { grid-template-columns: repeat(4, 1fr); }
.db-metrics > div { min-height: 102px; padding: 18px 17px; border: 1px solid #dfe2e5; border-left: 3px solid #153954; border-radius: 9px; background: white; box-shadow: 0 6px 18px rgba(23, 42, 58, .04); }
.db-metrics > div.orange { border-left-color: #f05b35; }.db-metrics > div.green { border-left-color: #248153; }
.db-metrics small { display: block; min-height: 24px; color: #748397; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.db-metrics strong { display: block; margin-top: 4px; font-size: 26px; letter-spacing: -.04em; }
.db-metrics em { display: block; margin-top: 5px; color: #8a98aa; font-size: 9px; font-style: normal; }
.db-grid { display: grid; gap: 16px; margin-top: 18px; }
.db-grid.two { grid-template-columns: 1fr 1fr; }
.db-card { padding: 20px; border: 1px solid #dde1e4; border-radius: 10px; background: #fff; overflow: hidden; }
.db-card h3, .db-section-title { margin: 0 0 18px; color: #173953; font-size: 10px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.line-chart { display: block; width: 100%; height: 235px; }
.grid-lines path, .return-grid { fill: none; stroke: #e2e7eb; stroke-width: 1; }
.line { fill: none; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.line.budget { stroke: #153d5a; }.line.actual { stroke: #ed5c32; }
.axis-labels { fill: #8090a2; font-size: 11px; }
.legend { margin-top: 8px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #66788a; font-size: 9px; }
.legend i { width: 9px; height: 9px; display: inline-block; }.legend .navy { background: #153d5a; }.legend .orange-dot { background: #ed5c32; }.legend .green-dot { background: #65ae42; }
.bar-chart { height: 224px; min-height: 224px; padding: 28px 12px 0; display: flex; align-items: flex-end; justify-content: space-around; gap: 7px; border-bottom: 1px solid #cfdae2; background: repeating-linear-gradient(to bottom, transparent 0 43px, #e5eaee 44px);
}
.bar-chart.grouped i { position: relative; width: 26px; height: var(--a); background: #153d5a; }
.bar-chart.grouped i::after { content: ""; position: absolute; right: -9px; bottom: 0; width: 8px; height: var(--b); background: #ed5c32; }
.month-row { margin-top: 8px; display: flex; justify-content: space-around; color: #8997a7; font-size: 8px; }
.table-card { margin-top: 18px; padding: 20px 20px 16px; overflow-x: auto; }
.table-card table { width: 100%; min-width: 920px; border-collapse: collapse; font-size: 9px; }
.table-card th { padding: 11px 10px; background: #eee8de; color: #8291a1; font-size: 7px; letter-spacing: .09em; text-align: right; text-transform: uppercase; white-space: nowrap; }
.table-card th:first-child, .table-card td:first-child { text-align: left; }
.table-card td { padding: 11px 10px; border-bottom: 1px solid #e1e4e7; text-align: right; white-space: nowrap; }
.table-card .total td { background: #e7edf9; color: #102942; font-weight: 800; }
.table-card .warn { background: #fff6bd; color: #a66615; font-weight: 700; }.table-card .good { background: #c8f0d7; color: #24704a; font-weight: 700; }.table-card .bad { background: #ffd5d5; color: #c3372a; font-weight: 700; }.bad-text { color: #c3372a; }
.sales-grid { grid-template-columns: .8fr 1.2fr; }
.sales-charts { display: grid; gap: 16px; }
.inventory-card { grid-row: span 2; }
.unit-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.unit-grid b { min-height: 47px; padding: 8px; display: grid; place-items: center; border-radius: 4px; background: #245985; color: white; font-size: 9px; }.unit-grid .available { background: #69ad44; }.unit-grid .contract { background: #ec6c2b; }
.bar-chart.single { height: 125px; min-height: 125px; padding-top: 20px; }
.bar-chart.single i { width: 18px; height: var(--a); background: #174764; }
.bar-chart.volume i { background: #2c6081; }
.development-table { margin-top: 18px; }
.development-table table { font-size: 10px; }
.debt-dashboard { background: #f8f5ef; }
.db-section-title { margin: 28px 0 12px; padding-bottom: 10px; border-bottom: 1px solid #ccd0d2; font-size: 15px; }
.facility-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.facility-grid > div { padding: 17px; border: 1px solid #dce0e2; border-top: 3px solid #1f7952; border-radius: 8px; background: white; }
.facility-grid b, .facility-grid strong, .facility-grid small { display: block; }.facility-grid b { min-height: 32px; font-size: 11px; }.facility-grid strong { margin-top: 12px; font-size: 25px; letter-spacing: -.04em; }.facility-grid small { margin-top: 4px; color: #738397; font-size: 8px; }
.facility-grid > div > i { display: block; height: 5px; margin: 11px 0 14px; border-radius: 8px; background: linear-gradient(to right, #ed5c32 0 var(--use), #ede7de var(--use)); }
.facility-grid dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; }.facility-grid dt { color: #8695a6; font-size: 7px; letter-spacing: .08em; text-transform: uppercase; }.facility-grid dd { margin: 3px 0 0; font-size: 10px; font-weight: 700; }
.returns-layout { display: grid; grid-template-columns: 230px 1fr; }
.returns-layout aside { padding: 26px 18px; border-right: 1px solid #d5d1c8; background: #eee9df; }
.returns-layout aside > small { color: #f05b35; font-size: 8px; font-weight: 800; letter-spacing: .15em; }
.returns-layout aside h3 { margin: 8px 0 26px; font-size: 22px; letter-spacing: -.035em; }
.returns-layout aside dl { margin: 0 0 28px; }.returns-layout aside dt { padding-top: 12px; border-top: 1px solid #d2cdc3; color: #78889a; font-size: 7px; letter-spacing: .1em; text-transform: uppercase; }.returns-layout aside dd { margin: 4px 0 12px; font-size: 17px; font-weight: 750; }
.returns-layout aside ul { margin: 12px 0 0; padding: 0; list-style: none; }.returns-layout aside li { padding: 12px 10px; display: flex; justify-content: space-between; gap: 10px; color: #354d62; font-size: 9px; }.returns-layout aside li.active { border-radius: 6px; background: white; }.returns-layout aside li span { color: #ed5c32; font-weight: 750; }
.returns-main { min-width: 0; }.returns-main .db-header { background: #f7f4ed; }
.returns-line { display: block; width: 100%; height: 220px; }.return-area { fill: #f9d3c8; opacity: .8; }.return-line { fill: none; stroke: #f05b35; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.bar-chart.cashflow { height: 220px; min-height: 220px; }.bar-chart.cashflow i { width: 34px; height: var(--a); background: #f05b35; }

@media (max-width: 860px) {
  .system-heading { grid-template-columns: 1fr; gap: 16px; }
  .dashboard-frame { overflow-x: auto; }
  .dashboard-canvas { min-width: 1100px; }
}

@media (max-width: 560px) {
  .compact-hero { padding-bottom: 70px; }
  .system-section { padding: 86px 0 100px; }
  .dashboard-frame { margin-right: -16px; }
}

/* FORMA */
.forma-page { background: #101513; color: #f2f0ea; }
.forma-detail-hero { padding: 48px 0 104px; }
.forma-detail-hero .back-link { color: #909a96; }
.forma-title-row { display: grid; grid-template-columns: 180px minmax(0, 980px); gap: 56px; align-items: start; }
.forma-title-row > img { width: 150px; height: 150px; border-radius: 34px; box-shadow: 0 26px 70px rgba(0,0,0,.35); }
.forma-title-row .eyebrow, .forma-detail-hero small { color: #929b97; }
.forma-title-row h1 { margin: 20px 0 26px; font-family: var(--serif); font-size: clamp(92px, 13vw, 178px); font-weight: 500; letter-spacing: -.075em; line-height: .78; }
.forma-title-row p:not(.eyebrow) { max-width: 780px; margin: 0; color: #d2d6d3; font-size: clamp(22px, 2.5vw, 34px); letter-spacing: -.03em; line-height: 1.3; }
.forma-title-row small { display: block; margin-top: 26px; font-size: 11px; }
.forma-index { border-color: #343b38; background: rgba(16, 21, 19, .96); }
.forma-index a { border-color: #343b38; color: #9fa7a3; }.forma-index a:hover { background: #f2f0ea; color: #101513; }
.forma-view { padding: 132px 0 148px; scroll-margin-top: 126px; }
.forma-view + .forma-view { border-top: 1px solid #343b38; }
.forma-view-title { margin-bottom: 42px; display: grid; grid-template-columns: 180px minmax(0, 900px); gap: 48px; align-items: end; }
.forma-view-title span { color: #89938f; font-size: 10px; font-weight: 800; letter-spacing: .14em; }
.forma-view-title h2 { margin: 0; font-family: var(--serif); font-size: clamp(52px, 6vw, 88px); font-weight: 500; letter-spacing: -.06em; line-height: .92; }
.forma-view .media-button { border-color: #3a423e; background: #161d1a; box-shadow: 0 28px 90px rgba(0,0,0,.28); }
.forma-role { padding: 130px 0 140px; border-top: 1px solid #343b38; background: #171e1b; color:var(--paper); }
.forma-role .eyebrow { color: #8d9692; }.forma-role .role-grid p:not(.eyebrow) { color: #b9c0bc; }
.forma-page .next-work { color: #f2f0ea; }.forma-page .next-work span { color: #929b97; }

@media (max-width: 860px) {
  .forma-title-row, .forma-view-title { grid-template-columns: 1fr; gap: 30px; }
  .forma-title-row > img { width: 112px; height: 112px; border-radius: 26px; }
}

@media (max-width: 560px) {
  .forma-detail-hero { padding-top: 34px; padding-bottom: 76px; }
  .forma-title-row h1 { font-size: 27vw; }
  .forma-view { padding: 84px 0 96px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .feature { transition: none; }
}

/* Flagship application */
.product-hero { padding: 62px 0 42px; }
.back-link { display: inline-block; margin-bottom: 92px; color: var(--muted); font-size: 12px; font-weight: 650; text-decoration: none; }
.product-heading { max-width: 1120px; }
.product-heading h1 { margin: 24px 0 24px; font-family: var(--serif); font-size: clamp(72px, 10vw, 150px); font-weight: 500; letter-spacing: -.068em; line-height: .87; }
.product-heading > p:not(.eyebrow) { max-width: 860px; margin: 0; color: #3f423e; font-size: clamp(22px, 2.6vw, 38px); letter-spacing: -.035em; line-height: 1.25; }
.product-heading small { display: block; margin-top: 30px; color: var(--muted); font-size: 11px; letter-spacing: .025em; }
.demo-frame { margin: 82px 0 0; border: 1px solid #bdbbb4; background: #111; box-shadow: 0 26px 80px rgba(23, 26, 24, .14); }
.demo-frame video { display: block; width: 100%; aspect-ratio: 16 / 8.9; background: #111; object-fit: contain; }
.demo-frame figcaption { padding: 12px 15px; background: var(--paper); color: var(--muted); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.walkthrough-links { display:flex; flex-wrap:wrap; gap:20px 40px; margin:38px 0 10px; padding:20px 0; border-block:1px solid var(--line); }
.walkthrough-links a { font-size:14px; text-decoration:none; border-bottom:1px solid var(--muted); padding-bottom:6px; }
.walkthrough-links span { color:var(--muted); margin-left:16px; }
.walkthrough-video { margin-top:48px; scroll-margin-top:100px; }
.walkthrough-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; }
.walkthrough-heading h2 { font:400 clamp(28px,4vw,44px)/1.15 Georgia,serif; margin:8px 0 0; }
.walkthrough-heading>span { color:var(--muted); font-size:14px; }
.walkthrough-video>p { color:var(--muted); max-width:950px; line-height:1.6; font-size:16px; margin:15px 0 22px; }
.walkthrough-video .demo-frame { margin-top:0; box-shadow:none; }
.walkthrough-video figcaption { font-size:13px; text-transform:none; letter-spacing:0; }
.video-loader { position:relative; }
.load-walkthrough { position:absolute; inset:auto auto 28px 28px; padding:15px 22px; border:1px solid #fff9; background:#142d3f; color:white; font:600 14px/1.4 Arial,sans-serif; cursor:pointer; box-shadow:0 4px 20px #0003; }
.load-walkthrough span { margin-left:20px; }
.load-walkthrough:focus-visible { outline:3px solid #ed8856; outline-offset:4px; }
.load-walkthrough:disabled { cursor:wait; }
@media(max-width:600px){.load-walkthrough{left:12px;bottom:12px;padding:10px 14px;font-size:13px}}
.product-index { position: sticky; z-index: 10; top: 72px; padding: 0; display: flex; overflow-x: auto; border: 1px solid var(--line); background: rgba(242, 240, 234, .96); backdrop-filter: blur(18px); scrollbar-width: none; }
.product-index::-webkit-scrollbar { display: none; }
.product-index a { min-width: max-content; padding: 17px 19px; border-right: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 680; text-decoration: none; }
.product-index a:hover { background: var(--ink); color: var(--paper); }
.product-step { padding: 148px 0; scroll-margin-top: 126px; }
.product-step + .product-step { border-top: 1px solid var(--line); }
.step-copy { margin-bottom: 50px; display: grid; grid-template-columns: 220px minmax(0, 820px); gap: 48px; }
.step-number { margin: 10px 0 0; color: var(--accent); font-size: 11px; font-weight: 800; letter-spacing: .14em; }
.step-copy h2 { margin: 0 0 20px; font-family: var(--serif); font-size: clamp(52px, 6vw, 90px); font-weight: 500; letter-spacing: -.06em; line-height: .93; }
.step-copy div > p { max-width: 720px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.media-button { width: 100%; padding: 0; overflow: hidden; border: 1px solid #bdbbb4; background: white; cursor: zoom-in; }
.media-button img { width: 100%; height: auto; transition: transform .5s ease; }
.media-button:hover img { transform: scale(1.008); }
.wide-shot { box-shadow: 0 26px 80px rgba(23, 26, 24, .10); }
.metric-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 18px; border: 1px solid var(--line); background: var(--line); }
.metric-strip div { min-height: 116px; padding: 23px; background: #f8f7f3; }
.metric-strip span { color: var(--muted); font-size: 9px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.metric-strip strong { display: block; margin-top: 20px; font-family: var(--serif); font-size: clamp(25px, 2.4vw, 40px); font-weight: 500; letter-spacing: -.04em; }
.report-step { width: 100%; max-width: none; padding-bottom: 170px; overflow: hidden; }
.report-step .step-copy { width: min(calc(100% - 64px), var(--max)); margin-right: auto; margin-left: auto; }
.report-gallery { display: flex; gap: 24px; padding: 12px max(32px, calc((100vw - var(--max)) / 2)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.report-page { flex: 0 0 min(74vw, 660px); padding: 0; border: 1px solid var(--line); background: #fff; cursor: zoom-in; scroll-snap-align: center; box-shadow: 0 20px 60px rgba(23, 26, 24, .09); }
.report-page img { width: 100%; height: auto; }
.output-step { padding-top: 152px; }
.output-grid { display: grid; grid-template-columns: minmax(320px, .72fr) minmax(0, 1fr); gap: clamp(38px, 7vw, 112px); align-items: center; }
.report-cover { max-width: 620px; box-shadow: 0 24px 70px rgba(23, 26, 24, .12); }
.output-copy { max-width: 660px; }
.output-copy h3 { margin: 28px 0 24px; font-family: var(--serif); font-size: clamp(44px, 5vw, 72px); font-weight: 500; letter-spacing: -.055em; line-height: .98; }
.output-copy > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.report-link { display: inline-block; margin-top: 42px; padding-bottom: 8px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 720; text-decoration: none; }
.report-link span { margin-left: 8px; }
.capabilities { padding: 86px 0 126px; border-top: 1px solid var(--line); }
.capabilities ul { margin: 36px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 9px; list-style: none; }
.capabilities li { padding: 11px 14px; border: 1px solid #c4c2bb; border-radius: 999px; color: #4d504b; font-size: 12px; }
.role-band { padding: 130px 0 140px; background: var(--ink); color: var(--paper); }
.role-band .eyebrow { color: #9a9d97; }
.role-grid { display: grid; grid-template-columns: 220px minmax(0, 900px); gap: 48px; }
.role-grid h2 { margin: 0 0 32px; font-family: var(--serif); font-size: clamp(54px, 7vw, 96px); font-weight: 500; letter-spacing: -.06em; line-height: .92; }
.role-grid p:not(.eyebrow) { max-width: 790px; margin: 0; color: #b7b9b4; font-size: 19px; line-height: 1.7; }
.next-work { min-height: 190px; display: flex; align-items: center; justify-content: space-between; gap: 28px; text-decoration: none; }
.next-work span { color: var(--muted); font-size: 11px; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.next-work strong { font-family: var(--serif); font-size: clamp(42px, 5vw, 72px); font-weight: 500; letter-spacing: -.045em; }
.lightbox { width: min(96vw, 1760px); max-width: none; max-height: 94vh; padding: 0; border: 0; background: #0f1110; color: white; box-shadow: 0 32px 120px rgba(0,0,0,.45); }
.lightbox::backdrop { background: rgba(10, 11, 10, .82); backdrop-filter: blur(8px); }
.lightbox-bar { min-height: 52px; padding: 0 16px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: #c1c4bf; font-size: 11px; }
.lightbox-bar button { padding: 8px 11px; border: 1px solid #555955; background: transparent; color: white; cursor: pointer; }
.lightbox > img { width: 100%; max-height: calc(94vh - 52px); object-fit: contain; background: #0f1110; }

@media (max-width: 860px) {
  .product-heading h1 { font-size: clamp(70px, 18vw, 110px); }
  .back-link { margin-bottom: 70px; }
  .product-index { top: 62px; width: 100%; border-right: 0; border-left: 0; }
  .product-step { padding: 104px 0; }
  .step-copy, .role-grid { grid-template-columns: 1fr; gap: 20px; }
  .metric-strip { grid-template-columns: 1fr 1fr; }
  .output-grid { grid-template-columns: 1fr; }
  .report-cover { max-width: 560px; }
}

@media (max-width: 560px) {
  .product-hero { padding-top: 36px; }
  .product-heading h1 { font-size: 19vw; }
  .product-heading > p:not(.eyebrow) { font-size: 21px; }
  .demo-frame { margin-top: 54px; }
  .product-step { padding: 82px 0; }
  .report-step .step-copy { width: calc(100% - 32px); }
  .report-gallery { padding-right: 16px; padding-left: 16px; }
  .report-page { flex-basis: 88vw; }
  .metric-strip { grid-template-columns: 1fr; }
}

/* Additional products */
.additional-work { border-top: 1px solid var(--line); }
.additional-heading { padding: 126px 0 92px; display: grid; grid-template-columns: 220px minmax(0, 920px); gap: 48px; }
.additional-heading h2 { margin: 0 0 28px; font-family: var(--serif); font-size: clamp(52px, 6vw, 90px); font-weight: 500; letter-spacing: -.06em; line-height: .94; }
.additional-heading div > p { max-width: 720px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.personal-product { padding: 78px 0 86px; overflow: hidden; }
.personal-heading { margin-bottom: 42px; display: grid; grid-template-columns: 160px minmax(0, 820px); gap: 38px; }
.product-identity { display: flex; flex-direction: column; align-items: flex-start; gap: 26px; }
.app-icon { width: 84px; height: 84px; border-radius: 20px; box-shadow: 0 16px 36px rgba(0,0,0,.20); }
.personal-heading h2 { margin: 0 0 18px; font-family: var(--serif); font-size: clamp(40px, 3.8vw, 52px); font-weight: 500; letter-spacing: -.055em; line-height: .92; }
.personal-heading div > p:not(.index) { max-width: 720px; margin: 0; font-size: clamp(18px, 1.65vw, 23px); letter-spacing: -.025em; line-height: 1.4; }
.personal-heading small { display: block; max-width: 720px; margin-top: 25px; font-size: 13px; line-height: 1.6; }
.product-page-link { display: inline-block; margin-top: 24px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font-size: 12px; font-weight: 700; text-decoration: none; }
.forma-product { background: #101513; color: #f2f0ea; }
.forma-product .index, .forma-product .personal-heading small { color: #919a96; }
.app-gallery { display: flex; gap: 22px; padding: 12px max(32px, calc((100vw - var(--max)) / 2)); overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: #4c5551 transparent; }
.app-shot { flex: 0 0 min(78vw, 1080px); padding: 0; border: 1px solid #414945; background: #181e1b; color: #c4cac7; cursor: zoom-in; scroll-snap-align: center; }
.app-shot img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.app-shot span { display: block; padding: 15px 17px; text-align: left; font-size: 10px; font-weight: 750; letter-spacing: .11em; text-transform: uppercase; }
.piano-product { background: #e5e2da; color: var(--ink); }
.piano-mark > span { width: 84px; height: 84px; display: grid; place-items: center; border-radius: 20px; background: #1b2430; color: #fff; font-family: var(--serif); font-size: 44px; box-shadow: 0 16px 36px rgba(23, 26, 24, .16); }
.piano-visual { padding-bottom: 12px; }
.piano-visual .media-button { box-shadow: 0 28px 90px rgba(23, 26, 24, .16); }
.piano-visual img { width: 100%; height: auto; }
.capability-grid { margin-top: 54px; border-top: 1px solid var(--line); }
.capability-grid > div { padding: 21px 0; display: grid; grid-template-columns: 180px 1fr; gap: 28px; border-bottom: 1px solid var(--line); }
.capability-grid span { color: var(--muted); font-size: 10px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
.capability-grid strong { font-size: 14px; font-weight: 620; line-height: 1.55; }

@media (max-width: 860px) {
  .additional-heading, .personal-heading { grid-template-columns: 1fr; gap: 32px; }
  .product-identity { flex-direction: row; align-items: center; }
  .app-icon, .piano-mark > span { width: 74px; height: 74px; border-radius: 18px; }
  .app-shot { flex-basis: 88vw; }
}

@media (max-width: 560px) {
  .additional-heading { padding: 92px 0 70px; }
  .personal-product { padding: 62px 0 70px; }
  .personal-heading { margin-bottom: 34px; }
  .personal-heading h2 { font-size: 36px; }
  .app-gallery { padding-right: 16px; padding-left: 16px; }
  .capability-grid > div { grid-template-columns: 1fr; gap: 8px; }
}

/* Refined homepage previews */
.preview-title { padding: 22px 4px 2px; display: grid; grid-template-columns: 1fr auto; gap: 6px 24px; align-items: end; }
.preview-title small { grid-column: 1 / -1; color: var(--accent); font-size: 8px; font-weight: 800; letter-spacing: .14em; }
.preview-title strong { color: #17364d; font-size: clamp(18px, 1.6vw, 25px); letter-spacing: -.035em; }
.preview-title > span { color: #7c8995; font-size: 9px; }
.preview-metrics b { display: grid; align-content: space-between; color: #17364d; font-size: 15px; letter-spacing: -.02em; }
.preview-metrics b small { display: block; color: #8794a0; font-size: 7px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.preview-layout-clean { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10px; margin-top: 10px; }
.preview-unit-map, .preview-data-table { min-height: 244px; padding: 17px; border: 1px solid #d9d6ce; background: #fff; }
.preview-unit-map > span, .preview-data-table > span { color: #17364d; font-size: 8px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.preview-unit-map > div { margin-top: 18px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; }
.preview-unit-map i { aspect-ratio: 1.4; border-radius: 3px; background: #245985; }
.preview-unit-map i.open { background: #6cac45; }.preview-unit-map i.pending { background: #ec6c2b; }
.preview-data-table { display: grid; align-content: start; }
.preview-data-table > div { min-height: 37px; display: grid; grid-template-columns: 95px 1fr 58px; align-items: center; gap: 8px; border-bottom: 1px solid #e3e5e6; }
.preview-data-table b { color: #43586a; font-size: 8px; }.preview-data-table i { height: 5px; border-radius: 999px; background: linear-gradient(to right, #ed5c32 0 41%, #e6e1d8 41%); }.preview-data-table em { color: #17364d; font-size: 8px; font-style: normal; font-weight: 750; text-align: right; }
.forma-product .app-shot img { aspect-ratio: 16 / 9; object-fit: contain; background: #0b0f0d; }
.about-link { display: inline-block; margin-top: 34px; padding-bottom: 7px; border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 720; text-decoration: none; }

/* GIS market analysis */
.market-step { width: 100%; max-width: none; overflow: hidden; }
.market-step > .step-copy { width: min(calc(100% - 64px), var(--max)); margin-right: auto; margin-left: auto; }
.market-screen-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.market-screen-grid button { min-width: 0; padding: 0; border: 1px solid #c4c1b9; background: #f8f7f3; color: var(--ink); cursor: zoom-in; box-shadow: 0 22px 60px rgba(23, 26, 24, .08); font: inherit; }
.market-screen-grid img { width: 100%; aspect-ratio: 1; object-fit: cover; object-position: 68% center; border-bottom: 1px solid var(--line); background: #f7f5ef; }
.market-screen-grid span { min-height: 98px; padding: 19px 20px; display: grid; gap: 8px; text-align: left; }
.market-screen-grid b { font-size: 14px; letter-spacing: -.01em; }.market-screen-grid small { color: var(--muted); font-size: 12px; line-height: 1.5; }

/* Investment management — decision views, not decorative charts */
.compact-table-card { overflow-x: auto; }
.compact-table-card table { width: 100%; border-collapse: collapse; font-size: 9px; }
.compact-table-card th { padding: 10px 8px; background: #eee8de; color: #8291a1; font-size: 7px; letter-spacing: .08em; text-align: right; text-transform: uppercase; white-space: nowrap; }
.compact-table-card th:first-child, .compact-table-card td:first-child { text-align: left; }
.compact-table-card td { padding: 11px 8px; border-bottom: 1px solid #e1e4e7; text-align: right; white-space: nowrap; }
.compact-table-card .total td { background: #e7edf9; font-weight: 800; }
.decision-grid { align-items: stretch; }
.operating-detail { padding-bottom: 12px; }
.decision-list { margin: 0; }
.decision-list > div { padding: 13px 0; display: grid; grid-template-columns: 130px 1fr; gap: 18px; border-top: 1px solid #e1e4e7; }
.decision-list dt { color: #8291a1; font-size: 7px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.decision-list dd { margin: 0; color: #17364d; font-size: 10px; font-weight: 650; line-height: 1.4; }
.card-title-row { min-height: 28px; display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.card-title-row > span { color: #7c8995; font-size: 8px; }
.card-title-row .legend { margin: 0; }
.unit-status-card { margin-top: 18px; }
.phase-map { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.phase-map section { padding: 14px; border: 1px solid #d8dfe5; border-radius: 8px; background: #f9fbfc; }
.phase-map section > b { display: block; margin-bottom: 12px; color: #17364d; font-size: 10px; }
.unit-grid-five { grid-template-columns: repeat(5, 1fr); }
.phase-map .unit-grid i { min-height: 35px; display: grid; place-items: center; border-radius: 3px; background: #e7edf1; color: #526274; font-size: 7px; font-style: normal; font-weight: 750; }
.phase-map .unit-grid i.occupied { background: #3ca369; color: white; }.phase-map .unit-grid i.leased { background: #e95d00; color: white; }.phase-map .unit-grid i.model { background: #0b405c; color: white; }.phase-map .unit-grid i.notice { background: #b95726; color: white; }
.sales-grid-clean { grid-template-columns: 1.18fr .82fr; align-items: start; }
.unit-grid-six { grid-template-columns: repeat(6, 1fr); }
.unit-grid-six b { min-height: 50px; }
.good-text { color: #247851; font-weight: 750; }
.phase-detail { margin-top: 18px; }
.phase-detail .group-row td { border-top: 2px solid #d8d2c8; background: #eee8de; color: #17364d; font-weight: 800; }
.returns-table { margin-top: 18px; }
.subtle-total td { background: #efe9df; color: #17364d; font-weight: 750; }

/* FORMA finished-product presentation */
.forma-page-light { background: var(--paper); color: var(--ink); }
.forma-page-light .forma-detail-hero .back-link, .forma-page-light .forma-title-row .eyebrow, .forma-page-light .forma-detail-hero small { color: var(--muted); }
.forma-page-light .forma-title-row p:not(.eyebrow) { color: #3f423e; }
.forma-showcase { padding: 132px 0 148px; scroll-margin-top: 126px; }
.forma-showcase + .forma-showcase { border-top: 1px solid var(--line); }
.forma-view-title { align-items: start; }
.forma-view-title > div > p { max-width: 680px; margin: 17px 0 0; color: var(--muted); font-size: 16px; line-height: 1.6; }
.forma-deck-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.forma-deck-card, .forma-feature-grid button, .forma-editorial-grid button { min-width: 0; padding: 0; border: 1px solid #c7c4bc; background: #e8e5dd; color: var(--ink); cursor: zoom-in; font: inherit; }
.forma-deck-card-wide { grid-column: 1 / -1; }
.forma-deck-card img { width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #f4f2ec; }
.forma-deck-card span, .forma-feature-grid span, .forma-editorial-grid span { display: block; padding: 14px 16px; border-top: 1px solid #c7c4bc; color: #4f534e; font-size: 9px; font-weight: 800; letter-spacing: .11em; text-align: left; text-transform: uppercase; }
.forma-feature-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; align-items: start; }
.forma-feature-grid img { width: 100%; height: auto; background: #e7e4dc; }
.forma-feature-grid-four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.forma-editorial-grid { display: grid; grid-template-columns: minmax(280px, .72fr) minmax(0, 1.28fr); gap: 22px; align-items: start; }
.forma-editorial-grid img { width: 100%; height: auto; background: #e7e4dc; }
.forma-integration-shot { box-shadow: 0 26px 80px rgba(23, 26, 24, .10); }
.forma-page-light .next-work { color: var(--ink); }.forma-page-light .next-work span { color: var(--muted); }

/* About */
.about-hero { padding: 62px 0 142px; }
.about-hero .back-link { margin-bottom: 100px; }
.about-hero h1 { max-width: 1200px; margin: 34px 0 40px; font-family: var(--serif); font-size: clamp(70px, 10vw, 146px); font-weight: 500; letter-spacing: -.068em; line-height: .87; }
.about-intro { max-width: 800px; margin: 0; color: #3f423e; font-size: clamp(22px, 2.6vw, 38px); letter-spacing: -.035em; line-height: 1.28; }
.profile-body, .experience-map, .resume-section { padding: 126px 0 142px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 220px minmax(0, 920px); gap: 48px; }
.profile-copy p { margin: 0 0 26px; color: #484b46; font-size: 19px; line-height: 1.75; }
.experience-map h2 { margin: 0 0 48px; font-family: var(--serif); font-size: clamp(48px, 6vw, 86px); font-weight: 500; letter-spacing: -.055em; line-height: .96; }
.profile-rows { border-top: 1px solid var(--line); }
.profile-rows article { padding: 24px 0; display: grid; grid-template-columns: 160px 1fr; gap: 26px; border-bottom: 1px solid var(--line); }
.profile-rows span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }.profile-rows p { margin: 0; font-size: 15px; line-height: 1.65; }
.resume-slot { min-height: 260px; padding: clamp(28px, 4vw, 58px); display: flex; align-items: flex-end; justify-content: space-between; gap: 30px; border: 1px solid #bdbab2; background: #e8e5de; }
.resume-slot h2 { margin: 0 0 14px; font-family: var(--serif); font-size: clamp(52px, 6vw, 84px); font-weight: 500; letter-spacing: -.055em; }.resume-slot p { margin: 0; color: var(--muted); font-size: 14px; }.resume-slot > span { color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.profile-contact { padding: 126px 0 142px; border-top: 1px solid var(--line); display: grid; grid-template-columns: 220px minmax(0, 920px); gap: 48px; scroll-margin-top: 110px; }
.profile-contact-card { padding-top: 24px; border-top: 1px solid var(--ink); }
.profile-contact-card h2 { margin: 0 0 42px; font-family: var(--serif); font-size: clamp(52px, 6vw, 84px); font-weight: 500; letter-spacing: -.055em; line-height: .98; }
.profile-contact-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; }
.profile-contact-links a { min-width: 0; padding: 22px 0 14px; border-top: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.profile-contact-links a:hover strong { color: #555a54; }
.profile-contact-links span { display: block; margin-bottom: 11px; color: var(--muted); font-size: 9px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.profile-contact-links strong { display: block; overflow-wrap: anywhere; font-size: 15px; font-weight: 500; transition: color .2s; }
.profile-contact-links b { font-weight: 400; }

@media (max-width: 860px) {
  .preview-layout-clean, .market-screen-grid, .forma-deck-grid, .forma-editorial-grid { grid-template-columns: 1fr; }
  .market-step > .step-copy { width: min(calc(100% - 32px), var(--max)); }
  .market-screen-grid img { aspect-ratio: 16 / 10; object-position: 70% center; }
  .phase-map { grid-template-columns: 1fr; }
  .forma-deck-card-wide { grid-column: auto; }
  .forma-feature-grid, .forma-feature-grid-four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile-body, .experience-map, .resume-section, .profile-contact { grid-template-columns: 1fr; gap: 30px; }
}

@media (max-width: 560px) {
  .market-screen-grid { gap: 16px; }
  .forma-showcase { padding: 86px 0 98px; }
  .forma-feature-grid, .forma-feature-grid-four { grid-template-columns: 1fr; }
  .about-hero { padding-top: 36px; padding-bottom: 94px; }
  .about-hero h1 { font-size: 18vw; }
  .profile-body, .experience-map, .resume-section, .profile-contact { padding: 86px 0 98px; }
  .profile-rows article { grid-template-columns: 1fr; gap: 9px; }
  .resume-slot { align-items: flex-start; flex-direction: column; }
  .profile-contact-links { grid-template-columns: 1fr; gap: 8px; }
}

/* Portrait */
.hero.hero-profile { display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:64px; align-items:center; }
.hero-profile-copy .text-link { display:inline-block; margin-top:0; }
.hero-profile-copy h1 { font-size:clamp(60px,7vw,100px); }
.profile-headshot { display:block; width:100%; height:auto; border:1px solid var(--line); }
.about-profile-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:72px; align-items:center; }
.about-profile-layout h1 { font-size:clamp(60px,7vw,100px); }
@media(max-width:860px) {
 .hero.hero-profile,.about-profile-layout { grid-template-columns:minmax(0,1fr) 190px; gap:30px; }
 .hero-profile-copy h1,.about-profile-layout h1 { font-size:clamp(48px,7vw,70px); }
}
@media(max-width:600px) {
 .hero.hero-profile,.about-profile-layout { grid-template-columns:1fr; gap:32px; }
 .profile-headshot { width:190px; }
 .hero-profile-copy h1,.about-profile-layout h1 { font-size:52px; line-height:1; }
}

.investment-headline { max-width:1200px; font-size:clamp(17px,1.5vw,21px); line-height:1.65; font-weight:400; }
.investment-headline span { color:#aaa99f; padding:0 4px; }
.descriptor-break { display:block; }
.project-brief { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:32px; margin-top:0; margin-bottom:34px; padding-top:24px; border-top:1px solid var(--line); }
.project-brief dt { margin:0 0 10px; color:var(--ink); font-size:13px; font-weight:650; }
.project-brief dd { margin:0; color:#62655e; font-size:15px; line-height:1.65; }
.personal-product .project-brief { padding-bottom:24px; }
.piano-product .project-brief dt { color:inherit; }
@media(max-width:700px) {
 .project-brief { grid-template-columns:1fr; gap:20px; }
 .investment-headline { max-width:490px; }
 .descriptor-break { display:none; }
}

/* Product hierarchy */
.product-lead { margin-bottom:54px; }
.personal-product { border-top:1px solid var(--line); background:var(--paper); color:var(--ink); }
.personal-product .personal-heading { margin-bottom:36px; }
.suite-views { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:30px 0 54px; }
.suite-view { min-width:0; text-decoration:none; color:#17384b; }
.suite-label { display:flex; align-items:center; justify-content:space-between; padding:16px 0; border-top:1px solid var(--line); color:var(--ink); font-size:16px; }
.suite-label b { font-weight:400; }
.suite-surface { height:calc(100% - 55px); background:#f7f5ef; border:1px solid #cbd0d1; padding:22px; }
.suite-project { font-size:11px; letter-spacing:.08em; color:#a7583e; margin:0 0 22px; }
.suite-kpis { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.suite-kpis span { display:block; font-size:12px; color:#667d88; }
.suite-kpis strong { display:block; margin-top:9px; font-size:29px; letter-spacing:-.04em; }
.suite-surface h4 { font-size:13px; font-weight:500; margin-bottom:8px; }
.suite-surface svg { display:block; width:100%; }
.suite-surface svg text { font:12px var(--sans); fill:#647b88; }
.suite-surface .report-table { margin-bottom:0; }
.suite-surface td,.suite-surface th { padding:12px 8px; font-size:12px; }
.piano-hero { margin-top:44px; width:100%; }
.piano-details { display:grid; grid-template-columns:1fr 1fr; gap:36px; padding-top:40px; padding-bottom:80px; }
.piano-details h2 { font:normal 34px var(--serif); margin-bottom:12px; }
.piano-details p { color:var(--muted); font-size:16px; line-height:1.6; }
.piano-detail-crop { margin:24px 0 0; height:270px; overflow:hidden; border:1px solid var(--line); background:white; }
.piano-detail-crop img { width:100%; height:100%; object-fit:cover; }
.piano-detail-crop.notation img { object-position:center 20%; }
.piano-detail-crop.keyboard img { object-position:center bottom; }
.hybrid-week { display:grid; grid-template-columns:160px minmax(0,1fr); border:1px solid #d1d1c5; background:#f7f6f0; color:#30352b; border-radius:12px; overflow:hidden; }
.hybrid-sidebar { display:flex; flex-direction:column; gap:24px; padding:32px 20px; border-right:1px solid #ddded3; font-size:14px; }
.hybrid-sidebar strong { margin-bottom:28px; font-weight:500; letter-spacing:.06em; }
.hybrid-sidebar b { padding:12px; margin-left:-12px; border-radius:7px; background:#e2e5d4; color:#555f35; }
.hybrid-main { padding:34px; min-width:0; }
.hybrid-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:28px; }
.hybrid-heading p { margin:0 0 10px; font-size:12px; color:#777e61; letter-spacing:.12em; }
.hybrid-heading h3 { margin:0; font-size:42px; font-weight:500; letter-spacing:-.04em; }
.hybrid-heading > span { font-size:14px; color:#777b6c; }
.hybrid-summary { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #ddded3; border-radius:9px; background:#fbfaf7; margin-bottom:28px; }
.hybrid-summary > div { padding:20px 24px; border-right:1px solid #ddded3; }
.hybrid-summary > div:last-child { border:0; }
.hybrid-summary span { font-size:13px; color:#727864; }
.hybrid-summary strong { display:block; margin:10px 0; font-size:30px; font-weight:500; letter-spacing:-.035em; }
.hybrid-summary strong small { font-size:14px; color:#777c6c; letter-spacing:0; }
.hybrid-summary p { margin:0; color:#777c6c; font-size:12px; }
.hybrid-body { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:24px; align-items:start; }
.hybrid-sessions { display:grid; gap:12px; }
.hybrid-session { display:grid; grid-template-columns:42px minmax(0,1fr); gap:18px; padding:20px; border:1px solid #ddded3; border-radius:9px; background:#fbfaf7; }
.hybrid-session.is-next { border:1px solid #899764; box-shadow:0 0 0 2px #e5e9d8; }
.hybrid-day { display:flex; flex-direction:column; align-items:center; gap:8px; }
.hybrid-day span { font-size:10px; color:#858b78; letter-spacing:.07em; }
.hybrid-day b { font-size:23px; font-weight:500; }
.hybrid-session-copy > div:first-child { display:flex; align-items:start; justify-content:space-between; gap:14px; }
.hybrid-session-copy h4 { margin:0; font-size:16px; line-height:1.35; font-weight:550; }
.hybrid-session-copy p { margin:10px 0 12px; font-size:12px; line-height:1.6; color:#7a806f; }
.hybrid-status { flex-shrink:0; padding:4px 7px; border-radius:4px; background:#f0f0e9; color:#858b79; font-size:10px; }
.is-complete .hybrid-status { background:#e9eddd; color:#657747; }
.is-next .hybrid-status { background:#69784d; color:#fff; }
.hybrid-meta { display:flex; gap:10px; color:#687253; font-size:12px; }
.hybrid-meta span + span { border-left:1px solid #d2d7c2; padding-left:10px; }
.hybrid-context { background:#eeeFE4; border:1px solid #d5d9c5; border-radius:9px; padding:24px; }
.hybrid-context h4 { font-size:25px; margin:18px 0 10px; font-weight:500; }
.hybrid-context p { color:#727a60; font-size:13px; line-height:1.65; }
.hybrid-intensity { display:flex; gap:5px; margin:22px 0; font-size:10px; }
.hybrid-intensity span { padding:7px 8px; border-radius:4px; background:#e3e7d6; }
.hybrid-intensity .active { background:#718052; color:white; }
.hybrid-context hr { border:0; border-top:1px solid #d3d8c2; margin:24px 0; }
.hybrid-context-label { display:block; font-size:11px; color:#777f65; margin-bottom:12px; }
.hybrid-context > strong { font-size:15px; font-weight:500; line-height:1.5; display:block; }
.hybrid-context-footer { margin-top:24px; padding-top:18px; border-top:1px solid #d3d8c2; font-size:11px; color:#737c60; }
@media(max-width:1100px) {
 .suite-views { grid-template-columns:1fr 1fr; }
 .suite-view:last-child { grid-column:1/-1; }
 .hybrid-sidebar { display:none; }
 .hybrid-week { grid-template-columns:1fr; }
 .hybrid-main { padding:24px; }
 .hybrid-body { grid-template-columns:minmax(0,1fr) 210px; }
}
@media(max-width:700px) {
 .suite-views,.piano-details { grid-template-columns:1fr; }
 .hybrid-body { grid-template-columns:1fr; }
 .hybrid-summary > div { padding:14px 10px; }
 .hybrid-summary strong { font-size:24px; }
 .hybrid-summary strong small { display:block; margin-top:5px; font-size:12px; }
 .hybrid-heading { align-items:flex-start; flex-direction:column; gap:12px; }
 .hybrid-main { padding:18px; }
 .hybrid-session { padding:16px 12px; gap:12px; grid-template-columns:32px minmax(0,1fr); }
 .hybrid-session-copy > div:first-child { flex-direction:column; gap:8px; }
 .hybrid-session-copy h4 { font-size:15px; }
}

/* Portfolio presentation */
.hero { min-height: auto; padding-top: 100px; padding-bottom: 100px; }
.hero h1 { font-size: clamp(64px, 8vw, 116px); line-height: 1.02; margin: 0 0 26px; }
.discipline { font-size: clamp(19px,2.5vw,29px); margin: 0 0 24px; }
.hero-copy { font-size: 18px; max-width: 640px; }
.text-link { padding-top: 32px; }
.work { padding-top: 54px; padding-bottom: 84px; }
.feature { display: block; padding: 0; border: 0; background: transparent; }
.feature-copy { min-height: 0; padding: 24px 0 30px; display: grid; grid-template-columns: 40px 1fr 1fr; gap: 22px; align-items: start; }
.feature-copy h2, .feature-management .feature-copy h2 { margin: 0; font-size: clamp(35px,4vw,56px); line-height: 1.08; }
.feature-copy > p:not(.index) { max-width: 440px; }
.feature-copy > span { grid-column: 3; margin: 0; }
.feature + .feature { margin-top: 90px; }
.product-frame img { height: auto; object-fit: contain; }
.feature:hover { transform: none; box-shadow: none; }
.feature .report-app { transition: border-color .2s; }
.feature:hover .report-app { border-color: #8397a4; }
.report-app { background: #f6f4ef; color: #15354b; border: 1px solid #cbd0d1; overflow: hidden; }
.report-top { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 25px 30px; border-bottom: 1px solid #ddd; }
.report-top small { font-size: 12px; letter-spacing: .1em; color: #b35435; }
.report-top h3 { margin: 9px 0 0; font-size: clamp(22px,3vw,34px); letter-spacing: -.03em; }
.report-top > span { font-size: 13px; }
.report-tabs { display:flex; gap:32px; padding:17px 30px; background:white; border-bottom:1px solid #ddd; font-size:13px; }
.report-tabs b { color:#ad482e; }
.report-content { padding: 26px; }
.report-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 14px; margin-bottom: 22px; }
.report-metrics > div { border:1px solid #dce0e2; border-top:3px solid #214358; border-radius:7px; background:white; padding:20px; min-width:0; }
.report-metrics span { display:block; font-size:12px; color:#576c7b; }
.report-metrics strong { display:block; margin-top:12px; font-size:clamp(20px,2.2vw,32px); font-variant-numeric: tabular-nums; letter-spacing:-.04em; }
.report-metrics small { display:block; margin-top:8px; font-size:12px; color:#576c7b; }
.report-two { display:grid; grid-template-columns:1fr 1fr; gap:20px; margin-bottom:22px; }
.report-chart { border:1px solid #dce0e2; border-radius:7px; background:white; padding:22px; min-width:0; }
.report-chart h3 { font-size:14px; margin:0 0 14px; font-weight:650; }
.report-chart svg { width:100%; display:block; height:auto; }
.report-chart svg text { font-family:var(--sans); font-size:12px; fill:#5e7383; }
.report-key { display:flex; flex-wrap:wrap; gap:16px; justify-content:center; padding:10px 0; font-size:12px; color:#5e7383; }
.report-key i { display:inline-block; width:10px; height:10px; margin-right:6px; }
.report-table { overflow:auto; margin:18px 0; background:white; border:1px solid #dce0e2; }
.report-table table { border-collapse:collapse; width:100%; font-size:13px; font-variant-numeric:tabular-nums; }
.report-table th { background:#ece8df; color:#576c7b; font-weight:600; }
.report-table th,.report-table td { padding:13px 15px; border-bottom:1px solid #e3e6e8; text-align:right; white-space:nowrap; }
.report-table th:first-child,.report-table td:first-child { text-align:left; }
.report-total { font-weight:650; background:#edf2f5; }
.report-note { font-size:13px; line-height:1.6; color:#5e7383; }
.report-detail { margin-top:24px; border-top:1px solid #ccd2d4; }
.report-detail summary { padding:22px 0; font-size:16px; font-weight:600; cursor:pointer; }
.report-units { display:grid; grid-template-columns:repeat(12,1fr); gap:6px; }
.report-units span { padding:12px 4px; background:#e8eef1; text-align:center; font-size:12px; border-radius:3px; }
.report-units .occupied { background:#3b9769; color:white; }
.report-units .leased { background:#c76332; color:white; }
.report-units .closed { background:#245373; color:white; }
.sales-units { grid-template-columns:repeat(6,1fr); }
.report-facilities { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.report-facilities section { background:white; padding:20px; border:1px solid #dce0e2; border-top:3px solid #428266; border-radius:6px; }
.report-facilities h4 { min-height:40px; font-size:14px; margin:0 0 20px; }
.report-facilities strong { font-size:23px; }
.report-facilities p,.report-facilities dl { font-size:12px; }
.report-facilities meter { width:100%; }
.report-facilities dl { display:grid; grid-template-columns:1fr 1fr; row-gap:14px; }
.report-facilities dd { margin:0; text-align:right; font-weight:600; }
.report-facilities dt { color:#607584; }
.system-section { padding-top:65px; padding-bottom:55px; }
.compact-hero { padding-bottom:50px; }
.market-screen-grid { grid-template-columns:1fr; max-width:1200px; }
.market-screen-grid button { box-shadow:none; }
.market-screen-grid img { aspect-ratio:auto; object-fit:contain; max-height:none; }
.market-screen-grid span { min-height:0; padding:18px 24px; grid-template-columns:220px 1fr; align-items:center; }
.market-screen-grid small { font-size:14px; }
.forma-product { background:#eeede6; color:#25291f; }
.forma-product .personal-heading p,.forma-product small,.forma-product .index { color:#646952; }
.app-gallery { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; max-width:1200px; margin:auto; padding:0 32px 36px; }
.app-shot { width:100%; min-width:0; background:#f5f3ed; color:#30372c; border:1px solid #cfcec3; }
.pc-home-proof { display:block; width:calc(100% - 64px); max-width:860px; margin-inline:auto; }
.product-screen { width:100%; aspect-ratio:4/3; overflow:hidden; background:#f5f3ed; }
.product-screen img, .forma-product .app-shot .product-screen img, .forma-deck-card .product-screen img { display:block; max-width:none; width:133.333333%; height:100%; margin-left:-33.333333%; object-fit:fill; aspect-ratio:auto; }
.forma-showcase { padding:64px 0 74px; }
.forma-view-title { margin-bottom:30px; }
.forma-view-title p:empty { display:none; }
.forma-deck-grid { gap:32px; }
.forma-deck-card-wide { max-width:1100px; width:100%; margin:auto; }
.forma-deck-card span,.forma-feature-grid span,.forma-editorial-grid span { font-size:13px; text-transform:none; letter-spacing:0; }
.forma-feature-grid,.forma-feature-grid-four { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px; max-width:1100px; margin:32px auto 0; }
.forma-feature-grid img { max-height:700px; object-fit:contain; background:#eeede5; }
.forma-editorial-grid { grid-template-columns:1fr 1fr; }
.forma-integration-shot { max-width:1100px; margin:auto; box-shadow:none; }
.forma-plan-presentation { display:grid; grid-template-columns:170px 1fr; background:#f7f6f0; border:1px solid #cacbbd; overflow:auto; }
.forma-app-sidebar { padding:30px 20px; display:flex; flex-direction:column; gap:25px; border-right:1px solid #d6d7c9; color:#5c624a; }
.forma-app-sidebar strong { font-weight:500; margin-bottom:26px; }
.forma-app-sidebar b { padding:12px; background:#e1e4d4; border-radius:7px; }
.forma-plan-main { padding:30px; min-width:700px; }
.forma-plan-main h3 { font-size:32px; margin:14px 0; font-weight:500; }
.training-calendar { display:grid; grid-template-columns:40px repeat(4,1fr); gap:1px; background:#dce0d1; border:1px solid #dce0d1; font-size:12px; }
.training-calendar > * { padding:12px 8px; background:#f7f6f0; }
.training-calendar > div:not(.week-label) { background:#eef0e5; }
.training-calendar b,.training-calendar span { display:block; }
.training-calendar span { font-size:11px; margin-top:8px; color:#61694e; }
.forma-run-presentation { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding:40px; margin:32px 0; background:#f7f6f0; border:1px solid #cacbbd; }
.forma-run-presentation h3 { font-size:30px; font-weight:500; }
.run-pace { font-size:76px; margin:36px 0 10px; letter-spacing:-.05em; }
.run-pace small { font-size:22px; }
.run-stats { display:flex; justify-content:space-between; margin-top:40px; font-size:12px; color:#61694e; gap:14px; }
.run-stats b { display:block; font-size:21px; margin-bottom:8px; color:#30372c; }
.run-splits > div { display:flex; justify-content:space-between; gap:20px; padding:16px 12px; border-bottom:1px solid #d8dcca; font-size:13px; }
.run-splits b { font-weight:500; color:#687047; }
.run-splits .current { background:#e1e7cb; border-radius:6px; }
.lightbox { width:min(96vw,1760px); height:92vh; height:92dvh; max-height:92dvh; overflow:hidden; }
.lightbox-bar { min-height:58px; font-size:14px; }
.lightbox-bar button,.lightbox-controls button { min-height:44px; padding:8px 12px; border:1px solid #666e68; color:#fff; background:transparent; font:inherit; cursor:pointer; }
.lightbox-controls { min-height:66px; padding:8px 16px; display:flex; align-items:center; gap:16px; border-top:1px solid #3e4640; border-bottom:1px solid #3e4640; font-size:14px; }
.lightbox-controls>div { display:flex; gap:6px; }
.lightbox-controls small { margin-left:auto; font-size:13px; color:#c1c4bf; }
.lightbox-controls button:disabled { opacity:.4; cursor:default; }
.lightbox-controls button:focus-visible,.lightbox-viewport:focus-visible { outline:2px solid #dce8da; outline-offset:-3px; }
.lightbox-viewport { height:calc(100% - 124px); overflow:auto; overscroll-behavior:contain; touch-action:pan-x pan-y pinch-zoom; }
.lightbox .lightbox-media,.lightbox.product-only .lightbox-media { margin:0 auto; max-width:none; overflow:hidden; aspect-ratio:auto; }
.lightbox #lightbox-image { display:block; width:100%; height:100%; max-height:none; max-width:none; object-fit:contain; }
.lightbox.product-only #lightbox-image { width:133.333333%; max-width:none; height:100%; max-height:none; margin-left:-33.333333%; object-fit:fill; }
@media(max-width:620px) {
 .lightbox { width:100vw; height:96vh; height:96dvh; max-height:96dvh; }
 .lightbox-bar { padding:8px 12px; gap:10px; }
 .lightbox-controls { padding:8px 12px; gap:10px; flex-wrap:wrap; }
 .lightbox-controls small { display:none; }
 .lightbox-controls button { padding:8px 10px; }
 .lightbox-viewport { height:calc(100% - 132px); }
}
@media(max-width:600px){.site-header .header-inner{gap:12px}.site-header nav{gap:14px}}
@media(max-width:900px) {
.feature-copy { grid-template-columns:30px 1fr; }
.feature-copy > p:not(.index),.feature-copy > span { grid-column:2; }
.report-two,.report-facilities { grid-template-columns:1fr 1fr; }
.report-metrics { grid-template-columns:repeat(2,1fr); }
.report-top { padding:20px; }
.report-tabs { gap:16px; padding:16px; flex-wrap:wrap; }
.report-content { padding:16px; }
.forma-run-presentation { grid-template-columns:1fr; }
.forma-app-sidebar { display:none; }
.forma-plan-presentation { grid-template-columns:1fr; }
.app-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:620px) {
.hero { padding-top:65px; padding-bottom:65px; }
.hero h1 { font-size:62px; }
.report-two,.report-facilities,.app-gallery,.forma-editorial-grid { grid-template-columns:1fr; }
.report-top { align-items:flex-start; }
.report-top > span { max-width:85px; }
.report-metrics > div { padding:14px; }
.report-units { grid-template-columns:repeat(6,1fr); }
.forma-product .app-gallery { display:flex; gap:12px; padding:0 16px 32px; overflow-x:auto; scroll-snap-type:x mandatory; }
.forma-product .app-shot { flex:0 0 76vw; scroll-snap-align:start; }
.pc-home-proof { width:calc(100% - 32px); }
.market-screen-grid span { grid-template-columns:1fr; }
.forma-run-presentation { padding:24px; }
.forma-feature-grid,.forma-feature-grid-four { grid-template-columns:1fr; }
}
