:root {
  --void: #020617;
  --surface: #0f172a;
  --raised: #111827;
  --deep: #0b1120;
  --line: #1e293b;
  --line-soft: #334155;
  --text: #f8fafc;
  --body: #cbd5e1;
  --muted: #94a3b8;
  --orange: #f97316;
  --warm: #fb923c;
  --blue: #7cb7c7;
  --max: 1248px;
  --font-body: "Hanken Grotesk", sans-serif;
  --font-display: "Zilla Slab", Georgia, serif;
  color-scheme: dark;
  scrollbar-color: var(--line-soft) var(--void);
}
* {
  box-sizing: border-box;
}
html {
  background: var(--void);
  scroll-padding-top: 150px;
  -webkit-text-size-adjust: 100%;
}
body {
  margin: 0;
  color: var(--body);
  background: var(--void);
  font: 400 17px/1.65 var(--font-body);
  -webkit-font-smoothing: antialiased;
}
::selection {
  color: var(--void);
  background: var(--blue);
}
p,
h1,
h2,
h3,
h4,
figure {
  margin: 0;
}
h1,
h2,
h3,
h4 {
  color: var(--text);
}
h1,
h2 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.08;
  text-wrap: balance;
}
h1 {
  font-size: 64px;
}
h2 {
  font-size: 44px;
}
h3,
h4 {
  font-family: var(--font-body);
  line-height: 1.3;
}
strong,
b {
  color: var(--text);
  font-weight: 700;
}
a {
  color: inherit;
  text-underline-offset: 0.25em;
  text-decoration-thickness: 1px;
}
a:hover {
  color: var(--warm);
}
a:focus-visible,
button:focus-visible,
[tabindex]:focus-visible {
  outline: 3px solid var(--blue);
  outline-offset: 5px;
}
button {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
svg {
  display: block;
}
a svg {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}
.wrap {
  width: min(calc(100% - 96px), var(--max));
  margin-inline: auto;
}
.label,
.mini-label,
.room-ref,
.document-line,
.brand-sub {
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
}
.label,
.room-ref {
  color: var(--blue);
}
.label.warm {
  color: var(--warm);
}
.skip-link {
  position: fixed;
  z-index: 100;
  top: 12px;
  left: 12px;
  transform: translateY(-180%);
  background: var(--text);
  color: var(--void);
  padding: 12px 20px;
}
.skip-link:focus {
  transform: none;
}
.skip-link:hover {
  color: var(--void);
}
.package-header {
  position: sticky;
  top: 0;
  z-index: 30;
  background: rgba(2, 6, 23, 0.95);
  border-bottom: 1px solid var(--line-soft);
  backdrop-filter: blur(20px);
}
.header-inner {
  display: flex;
  min-height: 88px;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.swp-brand {
  display: flex;
  align-items: center;
  gap: 14px;
  text-decoration: none;
  font: 600 24px/1.1 var(--font-display);
  color: var(--text);
}
.swp-brand img {
  width: 44px;
  height: 44px;
  object-fit: contain;
}
.brand-sub {
  display: block;
  font-family: var(--font-body);
  color: var(--muted);
  margin-top: 7px;
  font-size: 12px;
}
.header-inner nav {
  display: flex;
  gap: 30px;
  align-items: center;
  font-size: 14px;
}
.header-inner nav > a:not(.button) {
  min-height: 44px;
  display: flex;
  align-items: center;
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.header-inner nav > a[aria-current] {
  color: var(--text);
  border-color: var(--orange);
}
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  min-height: 48px;
  padding: 12px 20px;
  background: var(--orange);
  color: var(--void);
  font-weight: 800;
  font-size: 15px;
  line-height: 1.4;
  text-decoration: none;
  border: 1px solid transparent;
  border-radius: 4px;
}
.button:hover {
  background: var(--warm);
  color: var(--void);
}
.button.secondary {
  background: transparent;
  color: var(--text);
  border-color: var(--line-soft);
}
.button.secondary:hover {
  border-color: var(--blue);
}
.button.compact {
  min-height: 44px;
  padding: 10px 16px;
}
.button-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 28px;
}
.text-link {
  display: inline-flex;
  gap: 12px;
  align-items: center;
  padding-block: 12px;
  font-size: 15px;
}
.journey-nav {
  position: sticky;
  top: 89px;
  z-index: 25;
  background: rgba(11, 17, 32, 0.96);
  border-bottom: 1px solid var(--line);
}
.journey-nav .wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 48px;
}
.journey-nav a {
  font-size: 12px;
  text-decoration: none;
  color: var(--muted);
  min-height: 48px;
  display: flex;
  align-items: center;
}
.journey-nav a[aria-current] {
  color: var(--warm);
}
.journey-progress {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: 100%;
  background: var(--orange);
  transform: scaleX(var(--journey, 0));
  transform-origin: left;
}
.hero {
  padding: 32px 0 72px;
  position: relative;
}
.hero-grid {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  column-gap: 64px;
  align-items: center;
}
.document-line {
  grid-column: 1/-1;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 0 0 38px;
  color: var(--muted);
}
.hero-writing {
  padding-block: 32px;
}
.hero h1 {
  max-width: 690px;
}
.hero h1 span {
  color: var(--blue);
}
.hero-copy {
  margin-top: 28px;
  max-width: 57ch;
  font-size: 18px;
  line-height: 1.7;
}
.threshold-art {
  position: relative;
  align-self: stretch;
  padding-bottom: 44px;
}
.threshold-drawing {
  width: 100%;
  height: 490px;
}
.threshold-art > p {
  position: absolute;
  bottom: 0;
  right: 0;
  left: 14%;
  color: var(--blue);
  font-size: 11px;
  letter-spacing: 0.1em;
}
.threshold-art > p span {
  display: block;
  color: var(--muted);
  letter-spacing: 0;
  font-size: 14px;
  margin-top: 5px;
}
.door-leaf {
  transform-origin: 255px 309px;
  transform: translateX(calc(var(--door-open, 0) * -18px));
}
.threshold-path {
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--door-open, 1));
}
.opening-terms {
  grid-column: 1/-1;
  margin-top: 48px;
}
.hero-proof {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
.proof-tile {
  padding: 24px 32px;
  border-right: 1px solid var(--line);
}
.proof-tile:first-child {
  padding-left: 0;
}
.proof-tile:last-child {
  border-right: 0;
}
.proof-tile b {
  font: 600 34px/1.15 var(--font-display);
  display: block;
  margin: 8px 0;
}
.proof-tile .mini-label {
  color: var(--muted);
}
.proof-tile > span {
  font-size: 14px;
  color: var(--muted);
}
.section {
  padding-block: 80px;
  border-top: 1px solid var(--line);
}
.section-grid {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 36px 64px;
}
.section-index {
  padding-top: 8px;
}
.section-index .label {
  color: var(--blue);
  display: block;
  padding-top: 15px;
  border-top: 1px solid var(--blue);
}
.section-index p {
  color: var(--muted);
  margin-top: 18px;
  max-width: 28ch;
  font-size: 15px;
  line-height: 1.65;
}
.section-title {
  max-width: 31ch;
  margin-bottom: 32px;
}
.section-grid > div > p {
  margin-top: 24px;
}
#situation {
  background: var(--deep);
}
.diagnosis {
  display: grid;
  gap: 0;
}
.diagnosis-row {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr);
  gap: 12px 24px;
  padding: 28px 0;
  border-top: 1px solid var(--line-soft);
}
.diagnosis-row h3 {
  font-size: 18px;
}
.diagnosis-row p {
  color: var(--body);
  font-size: 16px;
}
.impact {
  grid-column: 2;
  color: var(--warm);
  font-size: 13px;
}
.scope-addendum-callout {
  padding: 24px 0 0;
  border-top: 1px solid var(--line-soft);
  margin-top: 32px;
}
.scope-addendum-callout p {
  max-width: 72ch;
  font-size: 16px;
}
.scope-addendum-callout strong {
  color: var(--blue);
}
.floorplan {
  display: grid;
  grid-template-columns: 1fr;
}
.proposal-page .floorplan .room {
  padding-block: 24px;
  border-top: 1px solid var(--line-soft);
}
.floorplan .room h3 {
  margin: 0 0 12px;
  font-size: 21px;
}
.floorplan .room p {
  max-width: 70ch;
}
.room-stack {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.room-stack .room p {
  font-size: 15px;
}
.room-stack .room h3 {
  font-size: 19px;
}
#systems .architecture {
  grid-column: 1/-1;
  margin-bottom: 52px;
}
.architecture {
  margin: 0;
}
.drawing-title {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 24px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line-soft);
}
.drawing-title h3 {
  font: 600 28px/1.25 var(--font-display);
}
.drawing-title > span {
  font-size: 12px;
  color: var(--muted);
}
.section-model {
  position: relative;
  height: 650px;
}
.section-drawing {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.market {
  position: absolute;
  left: 0;
  top: 112px;
  width: 13%;
  font-size: 14px;
  color: var(--blue);
}
.market strong {
  display: block;
  font: 600 31px/1.2 var(--font-display);
  margin-top: 20px;
  color: var(--blue);
}
.market p {
  margin-top: 8px;
  white-space: pre-line;
}
.market > a {
  display: inline-block;
  font-size: 13px;
  margin-top: 12px;
}
.market-stream {
  height: 190px;
  position: relative;
  width: 70px;
  margin: 20px 0;
}
.market-stream i {
  position: absolute;
  height: 100%;
  top: 0;
  width: 1px;
  background: var(--blue);
  opacity: 0.28;
  transform: skewY(-25deg);
}
.market-stream i:nth-child(1) {
  left: 15px;
}
.market-stream i:nth-child(2) {
  left: 35px;
}
.market-stream i:nth-child(3) {
  left: 55px;
}
.market-stream i::before,
.market-stream i::after {
  content: "";
  width: 6px;
  height: 22px;
  position: absolute;
  left: -3px;
  top: 20%;
  background: var(--blue);
}
.market-stream i::after {
  top: 65%;
}
.market-stream b {
  position: absolute;
  top: 24%;
  left: 31px;
  width: 8px;
  height: 8px;
  background: var(--blue);
  transform: rotate(45deg);
}
.map-rooms {
  position: absolute;
  inset: 114px 10% 85px 17.5%;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  grid-template-rows: 150px 140px 90px;
  gap: 32px 24px;
}
.map-room {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 10px 12px;
  text-decoration: none;
  background: rgba(15, 23, 42, 0.64);
  min-width: 0;
}
.map-room h4 {
  font-size: 20px;
  margin-top: 0;
}
.map-room p {
  font-size: 14px;
  line-height: 1.4;
  max-width: 41ch;
  margin-top: 6px;
}
.map-room:hover {
  color: var(--body);
  background: var(--surface);
}
.map-room:hover h4 {
  color: var(--blue);
}
.map-room .room-ref {
  margin-top: 6px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
}
.status-light {
  width: 6px;
  height: 6px;
  background: var(--blue);
  flex-shrink: 0;
}
.room-status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-size: 12px;
  margin-top: auto;
  padding-top: 4px;
  color: var(--blue);
}
.room-status svg {
  width: 16px;
  height: 16px;
}
.map-room.capture {
  grid-column: 1;
  grid-row: 2;
}
.map-room.hallway {
  grid-column: 2/4;
  grid-row: 2;
}
.map-room.foundation {
  grid-column: 1/-1;
  grid-row: 3;
  display: grid;
  grid-template-columns: 155px 1fr;
  align-items: center;
  gap: 0 24px;
  padding-block: 8px;
}
.map-room.foundation .room-ref {
  grid-column: 1;
  grid-row: 2;
  margin-top: 0;
  font-size: 11px;
}
.map-room.foundation h4 {
  grid-column: 1;
  grid-row: 1;
  margin-top: 0;
}
.map-room.foundation p {
  grid-column: 2;
  grid-row: 1/3;
  max-width: 50ch;
  margin: 0;
}
.map-room.foundation .room-status {
  grid-column: 2;
  grid-row: 3;
  padding: 0;
  margin: 0;
}
.map-room.crit .room-ref,
.map-room.crit .room-status {
  color: var(--orange);
}
.map-room.crit .status-light {
  background: var(--orange);
}
.map-room.warn .status-light {
  background: transparent;
  border: 1px solid var(--blue);
}
.map-room.ok {
  background: rgba(251, 146, 60, 0.07);
}
.map-room.ok .room-ref,
.map-room.ok .room-status {
  color: var(--warm);
}
.map-room.ok .status-light {
  background: var(--warm);
}
.drawing-foot {
  border-top: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
  padding: 20px 0;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  font-size: 13px;
  color: var(--muted);
}
.drawing-foot p {
  max-width: 58ch;
}
.drawing-foot p span {
  color: var(--blue);
}
.system-path {
  stroke-dasharray: 1;
  stroke-dashoffset: calc(1 - var(--plan-progress, 1));
}
.proposed .map-room {
  box-shadow: inset 0 1px rgba(251, 146, 60, var(--lit, 0.16));
}
.proposed .status-light {
  opacity: var(--room-opacity, 1);
  background: var(--warm);
}
.comparison {
  border-top: 1px solid var(--line-soft);
}
table {
  border-collapse: collapse;
  width: 100%;
  font-size: 16px;
}
th {
  text-align: left;
  background: var(--surface);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--blue);
  font-weight: 700;
  padding: 18px 20px;
  line-height: 1.4;
}
td {
  text-align: left;
  vertical-align: top;
  padding: 22px 20px;
  border-bottom: 1px solid var(--line-soft);
}
td:first-child {
  color: var(--text);
  font-weight: 600;
}
#heard td {
  width: 50%;
}
#compare td:first-child {
  width: 25%;
}
#fees td:nth-child(2) {
  min-width: 155px;
}
#packages {
  background: var(--deep);
}
.recommendation {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 36px;
  padding-block: 24px 36px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--line-soft);
}
.recommendation .label {
  grid-column: 1;
  grid-row: 2;
  margin: 14px 0 0;
}
.recommendation h2 {
  font-size: 30px;
  grid-column: 1;
  grid-row: 1;
}
.recommendation p {
  margin-top: 16px;
  grid-column: 1;
  font-size: 15px;
}
.decision-price {
  grid-column: 2;
  grid-row: 1/4;
  padding: 0 20px;
  border-left: 1px solid var(--line-soft);
}
.recommendation .button-row {
  grid-column: 1/-1;
}
.price-line {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
}
.price-line strong {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.decision-price .price-line {
  flex-direction: column;
  gap: 0;
}
.decision-price strong {
  font: 600 40px/1.25 var(--font-display);
}
.option-grid {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 40px;
  margin-top: 36px;
}
.option-card {
  border-top: 1px solid var(--line-soft);
  padding-top: 20px;
}
.option-card.recommended {
  border-color: var(--orange);
}
.option-head .label {
  color: var(--muted);
  margin-top: 12px;
}
.recommended .option-head .label {
  color: var(--warm);
}
.option-head h3 {
  font: 600 29px/1.16 var(--font-display);
  margin-top: 12px;
}
.option-head p {
  font-size: 15px;
  margin-top: 12px;
  color: var(--muted);
}
.price-block {
  margin-top: 20px;
}
.scope-list {
  padding: 0;
  list-style: none;
  margin: 20px 0 0;
}
.scope-list li {
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
}
#future .option-card {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 16px 44px;
}
#future .scope-list {
  grid-column: 1/-1;
  margin-top: 0;
}
.process {
  position: relative;
}
.process-step {
  padding: 24px 0;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 24px;
  border-top: 1px solid var(--line-soft);
}
.stepnum {
  font: 600 28px/1.3 var(--font-display);
  color: var(--blue);
}
.process-step h3 {
  font-size: 20px;
}
.process-step p {
  margin-top: 12px;
  font-size: 16px;
}
.closing {
  padding: 90px 0;
  background: var(--surface);
  border-top: 1px solid var(--line-soft);
}
.closing-card {
  position: relative;
  display: grid;
  grid-template-columns: 95px 1fr;
  column-gap: 48px;
}
.closing-card h2 {
  font-size: 54px;
  max-width: 25ch;
}
.closing-card p {
  margin-top: 24px;
  max-width: 72ch;
}
.closing-card .button-row {
  grid-column: 2;
}
.approval-door {
  grid-row: 1/3;
  width: 88px;
  height: 150px;
  border: 1px solid var(--blue);
  border-bottom: 3px solid var(--orange);
  margin-top: 8px;
  padding: 8px;
}
.approval-door i {
  display: block;
  width: 100%;
  height: 100%;
  border: 1px solid var(--line-soft);
  transform: skewY(-8deg);
  transform-origin: left;
  background: rgba(251, 146, 60, 0.07);
}
.package-footer {
  padding: 36px 0 48px;
  border-top: 1px solid var(--line-soft);
  background: var(--deep);
  font-size: 13px;
  color: var(--muted);
}
.footer-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 28px;
}
.footer-brand {
  font: 600 25px/1.2 var(--font-display);
  color: var(--text);
}
.footer-top p span {
  color: var(--orange);
  padding-inline: 8px;
}
.footer-top nav {
  display: flex;
  gap: 24px;
}
/* Inspection: the same structure, an evidence-led reading surface. */
.audit-main {
  padding-top: 42px;
  padding-bottom: 0;
}
.mast {
  padding-bottom: 36px;
}
.mast-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
}
.client-name {
  color: var(--text);
  font-size: 16px;
}
.mast-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  color: var(--muted);
  font-size: 12px;
}
.mast-meta .dot {
  display: none;
}
.mast h1 {
  font-size: 72px;
  margin-bottom: 28px;
}
.mast h1 span {
  color: var(--blue);
}
.mast {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 80px;
}
.mast-top {
  grid-column: 1/-1;
}
.mast .lede {
  align-self: center;
  font-size: 18px;
  line-height: 1.75;
}
.audit-index {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 0;
  border-block: 1px solid var(--line-soft);
  font-size: 14px;
}
.audit-index a {
  padding-block: 6px;
  text-decoration: none;
  color: var(--blue);
}
.verdict {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 56px;
  margin-top: 48px;
  padding: 32px 0;
}
.gauge {
  border-right: 1px solid var(--line-soft);
  padding-right: 36px;
}
.gauge .n {
  font: 600 100px/1.1 var(--font-display);
  color: var(--orange);
  margin-block: 16px;
}
.gauge .of {
  color: var(--muted);
  font-size: 14px;
  margin-top: 12px;
}
.gauge-bar {
  width: 100%;
  height: 5px;
  background: var(--line-soft);
}
.gauge-bar i {
  display: block;
  height: 100%;
  background: var(--orange);
}
.verdict-body > h2 {
  font-size: 38px;
  max-width: 30ch;
  margin: 14px 0 24px;
}
.verdict-body p {
  max-width: 75ch;
  margin-top: 16px;
  font-size: 16px;
}
.severity-summary {
  display: flex;
  padding: 16px 0;
  border-top: 1px solid var(--line-soft);
  gap: 48px;
}
.severity-summary span {
  font-size: 14px;
  color: var(--muted);
}
.severity-summary b {
  font-size: 24px;
  padding-right: 6px;
}
.severity-summary span:first-child b {
  color: var(--orange);
}
.severity-summary span:last-child b {
  color: var(--warm);
}
.readouts {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  border-block: 1px solid var(--line-soft);
}
.readout {
  padding: 24px;
  border-right: 1px solid var(--line);
}
.readout:first-child {
  padding-left: 0;
}
.readout:last-child {
  border: 0;
}
.readout .v {
  display: block;
  font: 600 34px/1.3 var(--font-display);
  color: var(--text);
  margin-bottom: 10px;
}
.readout.alarm .v {
  color: var(--warm);
}
.readout .k {
  display: block;
  font-size: 13px;
  line-height: 1.5;
  color: var(--muted);
}
.audit-main > section {
  margin-top: 96px;
}
.sec-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--line-soft);
  margin-bottom: 28px;
}
.sec-head h2 {
  font-size: 42px;
}
.sec-note {
  max-width: 78ch;
  font-size: 16px;
  margin-bottom: 30px;
  color: var(--muted);
}
.legend {
  display: flex;
  align-items: center;
  gap: 24px;
  white-space: nowrap;
}
.legend span {
  display: flex;
  align-items: center;
  gap: 8px;
}
.legend i {
  display: block;
  width: 7px;
  height: 7px;
}
.legend .crit {
  background: var(--orange);
}
.legend .warn {
  border: 1px solid var(--blue);
}
.legend .ok {
  background: var(--warm);
}
.flow {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 24px 72px;
}
.flow > .label {
  grid-column: 1/-1;
}
.bars {
  display: grid;
  gap: 24px;
}
.bar {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 20px;
  align-items: center;
}
.bar .track {
  display: flex;
  align-items: center;
  gap: 15px;
}
.bar .fill {
  height: 8px;
  background: var(--blue);
  min-width: 3px;
  max-width: calc(100% - 65px);
}
.bar .val {
  font-size: 14px;
  font-variant-numeric: tabular-nums;
}
.bar .who {
  font-size: 15px;
}
.bar.self .who {
  color: var(--warm);
}
.bar.self .fill {
  background: var(--orange);
}
.flow > p {
  font-size: 16px !important;
  margin-top: 0 !important;
  align-self: center;
}
em {
  font-style: normal;
  color: var(--blue);
}
.tw {
  border-top: 1px solid var(--line-soft);
}
.audit-page table {
  font-size: 15px;
}
td.n,
th.n {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
td.gone {
  color: var(--warm);
}
.audit-page .room {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 56px;
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--line-soft);
}
.room-head h3 {
  font: 600 30px/1.15 var(--font-display);
}
.room-head .count {
  display: block;
  margin-top: 14px;
  color: var(--muted);
  font-size: 13px;
}
.finds {
  display: grid;
  gap: 36px;
}
.find {
  scroll-margin-top: 160px;
}
.find .rail,
.room-head .rule {
  display: none;
}
.find-in {
  border-top: 1px solid var(--line-soft);
  padding-top: 20px;
}
.find-head {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 10px 14px;
  margin-bottom: 16px;
}
.fid {
  color: var(--blue);
  font-size: 12px;
  font-weight: 800;
  min-width: 32px;
}
.find.crit .fid {
  color: var(--orange);
}
.find.ok .fid {
  color: var(--warm);
}
.find h4 {
  font: 600 23px/1.28 var(--font-display);
  flex: 1;
  min-width: 200px;
}
.sev {
  color: var(--blue);
  font-size: 11px;
  text-transform: uppercase;
  font-weight: 700;
  letter-spacing: 0.07em;
}
.find.crit .sev {
  color: var(--orange);
}
.find.ok .sev {
  color: var(--warm);
}
.find p {
  font-size: 16px;
  margin-block: 14px;
  max-width: 75ch;
}
.readback {
  font:
    13px/1.75 ui-monospace,
    SFMono-Regular,
    monospace;
  color: var(--blue);
  background: var(--surface);
  border-block: 1px solid var(--line-soft);
  padding: 20px;
  margin-block: 22px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.path {
  display: grid;
  grid-template-columns: 1fr 1fr;
  column-gap: 64px;
}
.step {
  border-top: 1px solid var(--line-soft);
  padding: 28px 0;
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 20px;
}
.step .no {
  font-size: 12px;
  color: var(--blue);
  padding-top: 4px;
}
.step h3 {
  font-size: 20px;
  margin-bottom: 14px;
}
.step p {
  font-size: 15px;
}
.step .rooms {
  font-size: 12px;
  color: var(--muted);
  margin-top: 16px;
}
.method {
  border-top: 1px solid var(--line-soft);
  padding: 36px 0 48px;
  margin-top: 64px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 56px;
}
.method .label {
  grid-column: 1/-1;
}
.method p {
  font-size: 14px;
}
.method p:last-child {
  grid-column: 1/-1;
}
.inspection-close {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  padding: 52px 0;
  border-top: 1px solid var(--line-soft);
}
.inspection-close h2 {
  font-size: 34px;
}
@media (min-width: 1600px) {
  .hero-grid {
    gap: 80px;
  }
}
@media (max-width: 1100px) {
  .wrap {
    width: calc(100% - 64px);
  }
  .hero-grid {
    gap: 24px;
    grid-template-columns: 1.2fr 1fr;
  }
  h1 {
    font-size: 52px;
  }
  .threshold-drawing {
    height: 440px;
  }
  .section-grid {
    grid-template-columns: 180px minmax(0, 1fr);
    gap: 32px;
  }
  .room-stack {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .map-room h4 {
    font-size: 17px;
  }
  .map-room p {
    font-size: 13px;
  }
  .map-rooms {
    gap-inline: 16px;
  }
  .map-room {
    padding-inline: 8px;
  }
  .audit-page .room,
  .verdict {
    grid-template-columns: 190px 1fr;
    gap: 32px;
  }
  .mast {
    gap: 0 40px;
  }
  .mast h1 {
    font-size: 60px;
  }
  .option-grid {
    gap: 24px;
  }
  .price-line {
    flex-wrap: wrap;
    gap: 0 16px;
  }
}
@media (max-width: 800px) {
  html {
    scroll-padding-top: 24px;
  }
  .wrap {
    width: calc(100% - 40px);
  }
  .package-header {
    position: relative;
  }
  .header-inner {
    flex-wrap: wrap;
    min-height: 0;
    padding-block: 20px 12px;
    gap: 16px;
  }
  .swp-brand {
    font-size: 23px;
  }
  .header-inner nav {
    width: 100%;
    gap: 28px;
    justify-content: flex-start;
  }
  .header-inner nav .button {
    margin-left: auto;
  }
  .journey-nav {
    position: relative;
    top: auto;
  }
  .journey-nav .wrap {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 0 24px;
    padding-block: 4px;
  }
  .journey-nav a {
    font-size: 12px;
    min-height: 38px;
  }
  .hero {
    padding-top: 24px;
    padding-bottom: 48px;
  }
  .hero-grid {
    grid-template-columns: 1fr;
  }
  .document-line {
    font-size: 12px;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 6px;
  }
  .hero-writing {
    padding: 16px 0 0;
  }
  h1 {
    font-size: 44px;
  }
  .hero-copy {
    font-size: 17px;
    line-height: 1.7;
    margin-top: 24px;
  }
  .threshold-art {
    margin-top: 20px;
    padding-bottom: 44px;
  }
  .threshold-drawing {
    height: 340px;
    width: 100%;
  }
  .threshold-art > p {
    left: 0;
  }
  .opening-terms {
    margin-top: 32px;
  }
  .hero-proof {
    grid-template-columns: 1fr;
  }
  .proof-tile,
  .proof-tile:first-child {
    padding: 20px 0;
    border: 0;
    border-bottom: 1px solid var(--line);
  }
  .proof-tile {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 4px 16px;
  }
  .proof-tile b {
    font-size: 29px;
    grid-column: 2;
    grid-row: 1/3;
    margin: 0;
  }
  .proof-tile > span {
    font-size: 13px;
  }
  .proof-tile:last-child {
    border-bottom: 0;
  }
  .mini-label {
    font-size: 11px;
  }
  .section {
    padding-block: 48px;
  }
  .section-grid {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .section-index {
    padding: 0;
  }
  .section-index p {
    max-width: 65ch;
    margin-top: 10px;
    font-size: 14px;
  }
  .section-index .label {
    border: 0;
    padding-top: 0;
  }
  h2,
  .section-title {
    font-size: 34px;
  }
  .section-title {
    margin-bottom: 24px;
  }
  .diagnosis-row {
    grid-template-columns: 1fr;
    gap: 10px;
  }
  .impact {
    grid-column: 1;
  }
  .scope-addendum-callout {
    margin-top: 24px;
    padding-top: 20px;
  }
  .drawing-title {
    display: block;
    padding-block: 16px;
  }
  .drawing-title h3 {
    font-size: 28px;
    margin-bottom: 8px;
  }
  .drawing-title > span {
    font-size: 11px;
  }
  .section-model {
    height: auto;
    padding: 0 0 28px;
  }
  .section-drawing {
    display: none;
  }
  .market {
    position: relative;
    top: auto;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    padding: 24px 0;
    margin-bottom: 8px;
    border-bottom: 1px solid var(--blue);
  }
  .market .label {
    grid-column: 1/-1;
  }
  .market strong {
    font-size: 31px;
    margin: 8px 0 4px;
  }
  .market p {
    margin: 0;
    font-size: 14px;
  }
  .market > a,
  .market > span:last-child {
    grid-column: 1/-1;
    font-size: 13px;
  }
  .market-stream {
    position: absolute;
    right: 0;
    top: 16px;
    height: 105px;
    width: 45px;
    overflow: hidden;
    opacity: 0.35;
    margin: 0;
  }
  .market-stream i {
    transform: none;
  }
  .map-rooms {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: 22px;
    border-left: 1px solid var(--blue);
    margin: 32px 0 0 4px;
  }
  .map-room {
    padding: 22px 20px;
    border: 1px solid var(--line-soft);
    border-bottom: 0;
    border-radius: 0;
  }
  .map-room::before {
    content: "";
    position: absolute;
    top: 28px;
    left: -24px;
    width: 23px;
    border-top: 1px solid var(--blue);
  }
  .map-room:last-child {
    border-bottom: 8px solid var(--line-soft);
  }
  .map-room .room-ref {
    font-size: 11px;
  }
  .map-room h4 {
    font-size: 23px;
  }
  .map-room p {
    font-size: 15px;
    line-height: 1.55;
  }
  .map-room .room-status {
    margin-top: 10px;
    font-size: 12px;
  }
  .map-room.foundation {
    display: flex;
    padding: 22px 20px;
    align-items: stretch;
  }
  .map-room.foundation h4 {
    margin-top: 0;
  }
  .map-room.foundation p {
    margin-top: 8px;
  }
  .map-room.foundation .room-status {
    padding-top: 8px;
    margin-top: 10px;
  }
  .map-room.foundation .room-ref {
    margin-top: 6px;
  }
  .drawing-foot {
    flex-direction: column;
    gap: 16px;
  }
  .drawing-foot p {
    font-size: 13px;
  }
  .legend {
    gap: 18px;
    font-size: 12px;
    white-space: normal;
    flex-wrap: wrap;
  }
  #systems .architecture {
    margin-bottom: 20px;
  }
  .room-stack {
    grid-template-columns: 1fr;
  }
  .floorplan .room p {
    font-size: 16px;
  }
  table,
  tbody,
  tr,
  td {
    display: block;
    width: 100%;
  }
  thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  tr {
    border-bottom: 1px solid var(--line-soft);
    padding: 14px 0;
  }
  td {
    padding: 10px 0;
    border: 0;
    font-size: 16px;
  }
  td::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 6px;
    color: var(--blue);
    font-size: 11px;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 700;
  }
  #heard td,
  #compare td:first-child {
    width: 100%;
  }
  td.n,
  th.n {
    text-align: left;
  }
  .recommendation {
    grid-template-columns: 1fr;
    padding-top: 8px;
  }
  .recommendation h2 {
    font-size: 28px;
  }
  .decision-price {
    grid-column: 1;
    grid-row: auto;
    padding: 12px 0;
    margin-top: 20px;
    border-left: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
  }
  .decision-price strong {
    font-size: 36px;
  }
  .option-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }
  .option-head h3 {
    font-size: 30px;
  }
  .price-line {
    font-size: 15px;
  }
  #future .option-card {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .process-step {
    grid-template-columns: 28px 1fr;
    gap: 18px;
  }
  .stepnum {
    font-size: 24px;
  }
  .closing {
    padding-block: 48px;
  }
  .closing-card {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .closing-card .button-row {
    grid-column: 1;
  }
  .closing-card h2 {
    font-size: 39px;
  }
  .approval-door {
    grid-row: auto;
    width: 45px;
    height: 74px;
    padding: 5px;
  }
  .footer-top {
    align-items: flex-start;
    flex-direction: column;
    gap: 20px;
  }
  .package-footer {
    padding-block: 32px;
  }
  .audit-main {
    padding-top: 28px;
  }
  .mast {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .mast-top {
    display: block;
    margin-bottom: 24px;
  }
  .mast-meta {
    gap: 4px 16px;
    margin-top: 14px;
  }
  .mast h1 {
    font-size: 48px;
    margin-bottom: 24px;
  }
  .mast .lede {
    font-size: 17px;
  }
  .audit-index {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 8px 24px;
    font-size: 13px;
  }
  .audit-index a {
    min-height: 32px;
  }
  .verdict {
    grid-template-columns: 1fr;
    gap: 28px;
    margin-top: 0;
  }
  .gauge {
    border-right: 0;
    padding-right: 0;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
  }
  .gauge .n {
    grid-column: 2;
    grid-row: 1/4;
    font-size: 88px;
    margin: 0;
  }
  .gauge-bar {
    width: 120px;
  }
  .gauge .of {
    margin: 0;
  }
  .verdict-body > h2 {
    font-size: 32px;
  }
  .verdict-body p {
    font-size: 16px;
  }
  .severity-summary {
    gap: 20px;
    justify-content: space-between;
  }
  .severity-summary span {
    font-size: 12px;
  }
  .severity-summary b {
    display: block;
    padding: 0;
  }
  .readouts {
    grid-template-columns: 1fr 1fr;
  }
  .readout,
  .readout:first-child {
    padding: 20px 16px;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
  .readout:nth-child(odd) {
    padding-left: 0;
  }
  .readout:last-child {
    grid-column: 1/-1;
    display: flex;
    gap: 24px;
    align-items: center;
  }
  .readout:last-child .v {
    margin-bottom: 0;
  }
  .readout .v {
    font-size: 30px;
  }
  .audit-main > section {
    margin-top: 56px;
  }
  .sec-head {
    display: block;
    padding-bottom: 18px;
  }
  .sec-head h2 {
    font-size: 34px;
    margin-bottom: 12px;
  }
  .sec-head .label {
    font-size: 11px;
  }
  .flow {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .bar {
    grid-template-columns: 72px 1fr;
    gap: 16px;
  }
  .bar .val {
    font-size: 12px;
  }
  .bar .who {
    font-size: 14px;
  }
  .audit-page .room {
    grid-template-columns: 1fr;
    gap: 24px;
    margin-top: 32px;
    padding-top: 24px;
  }
  .room-head h3 {
    font-size: 29px;
  }
  .room-head .count {
    margin-top: 8px;
  }
  .find-head {
    gap: 8px 12px;
  }
  .find h4 {
    min-width: 0;
    flex: auto;
    width: calc(100% - 48px);
    font-size: 23px;
  }
  .find .sev {
    margin-left: 44px;
  }
  .find p {
    font-size: 16px;
  }
  .readback {
    padding: 16px 12px;
    font-size: 12px;
    white-space: pre-wrap;
  }
  .path {
    grid-template-columns: 1fr;
  }
  .step {
    grid-template-columns: 28px 1fr;
    gap: 16px;
  }
  .method {
    grid-template-columns: 1fr;
    gap: 20px;
    margin-top: 36px;
  }
  .method p {
    font-size: 14px;
  }
  .inspection-close {
    align-items: flex-start;
    flex-direction: column;
    padding-block: 36px;
  }
  .inspection-close h2 {
    font-size: 32px;
  }
}
@media (max-width: 360px) {
  .wrap {
    width: calc(100% - 32px);
  }
  h1 {
    font-size: 39px;
  }
  .swp-brand {
    font-size: 21px;
    gap: 10px;
  }
  .header-inner nav {
    gap: 20px;
    font-size: 13px;
  }
  .header-inner .button.compact {
    padding-inline: 12px;
    font-size: 13px;
  }
  .header-inner .button svg {
    display: none;
  }
  .journey-nav .wrap {
    gap: 0 20px;
  }
  .proof-tile b {
    font-size: 25px;
  }
  .proof-tile .mini-label {
    max-width: 15ch;
  }
  .proof-tile > span {
    max-width: 17ch;
  }
  .map-room,
  .map-room.foundation {
    padding-inline: 16px;
  }
  .button {
    font-size: 14px;
    padding-inline: 16px;
  }
  .legend {
    gap: 12px;
  }
  .mast h1 {
    font-size: 44px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .door-leaf {
    transform: none !important;
  }
  .system-path,
  .threshold-path {
    stroke-dashoffset: 0 !important;
  }
  .route-signal {
    display: none;
  }
  .proposed .status-light {
    opacity: 1 !important;
  }
}
@media print {
  .package-header,
  .journey-nav {
    position: static;
  }
  .button-row,
  .journey-nav,
  .audit-index {
    display: none;
  }
  .wrap {
    width: 100%;
  }
  .section,
  .audit-main > section {
    padding-top: 32px;
    margin-top: 32px;
  }
  .find,
  .option-card,
  .process-step {
    break-inside: avoid;
  }
}
.section-lede{max-width:760px;margin:-24px 0 32px;color:var(--muted);font-size:18px;line-height:1.65}.direction-list{border-top:1px solid var(--line)}.direction-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:20px;align-items:center;min-height:112px;padding:22px 0;border-bottom:1px solid var(--line);color:var(--text);text-decoration:none}.direction-number,.operation-ref{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--warm)}.direction-row strong{display:block;font-family:"Zilla Slab",Georgia,serif;font-size:25px}.direction-row small{display:block;margin-top:4px;color:var(--muted);font-size:15px}.direction-action{display:flex;align-items:center;gap:10px;font-weight:800;color:var(--warm)}.direction-action svg{width:19px;fill:none;stroke:currentColor;stroke-width:1.8}.direction-row:hover,.direction-row:focus-visible{background:rgba(124,183,199,.07)}.direction-row.selected{padding-inline:18px;border-left:1px solid var(--orange);background:rgba(249,115,22,.08)}.preview-note{margin:24px 0 0;color:var(--muted);font-size:14px}.operations-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.operations-grid article{padding:28px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.operations-grid h3{margin:18px 0 16px;font-family:"Zilla Slab",Georgia,serif;font-size:25px}.operations-grid ul{margin:0;padding-left:18px;color:var(--muted)}.operations-grid li+li{margin-top:10px}
.route-badge{display:inline-block;margin-left:10px;padding:5px 8px;border:1px solid var(--orange);color:var(--warm);font-family:"Hanken Grotesk",sans-serif;font-size:11px;font-style:normal;font-weight:800;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}.direction-row.baseline .direction-number{color:var(--muted)}
@media(max-width:900px){.operations-grid{grid-template-columns:1fr}.direction-row{grid-template-columns:42px minmax(0,1fr)}.direction-action{grid-column:2}.section-lede{margin-top:-12px}}
@media(max-width:600px){.direction-row{gap:10px;min-height:0;padding:20px 0}.direction-row.selected{padding-inline:12px}.direction-row strong{font-size:22px}.operations-grid article{padding:22px}.section-lede{font-size:16px}}
.section-model{isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 62% 46%,rgba(124,183,199,.12),transparent 48%),linear-gradient(180deg,#07101f,#020617)}.section-drawing{filter:drop-shadow(0 28px 28px rgba(2,6,23,.72));transform-origin:50% 70%;transition:filter .3s cubic-bezier(.16,1,.3,1)}.house-envelope{opacity:var(--shell-opacity,1);transform:translateY(var(--shell-y,0));transform-origin:center}.house-details{opacity:var(--detail-opacity,1)}.proposed .utility-core{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--plan-progress,0));opacity:var(--detail-opacity,.25)}.diagnostic .utility-core{opacity:.7}.diagnostic-readout{position:absolute;right:24px;bottom:22px;z-index:5;width:min(330px,34%);padding:16px 18px;border:1px solid var(--line-soft);background:rgba(2,6,23,.9);backdrop-filter:blur(12px)}.diagnostic-readout>span{display:block;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.diagnostic-readout strong{display:block;margin-top:7px;font-family:"Zilla Slab",Georgia,serif;font-size:20px}.diagnostic-readout p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.diagnostic[data-inspecting="true"] .map-room:not([data-active]){opacity:.22;filter:saturate(.4)}.diagnostic .map-room{transition:opacity .22s cubic-bezier(.16,1,.3,1),background-color .22s cubic-bezier(.16,1,.3,1),transform .22s cubic-bezier(.16,1,.3,1),filter .22s cubic-bezier(.16,1,.3,1)}.diagnostic .map-room[data-active]{z-index:6;transform:translateY(-4px);background:rgba(15,23,42,.96);outline:1px solid var(--warm)}.diagnostic .map-room[data-active] h4{color:var(--warm)}
@media(max-width:800px){.diagnostic-readout{position:relative;right:auto;bottom:auto;width:auto;margin:18px}.section-drawing{filter:none}.house-envelope,.house-details,.utility-core{opacity:1!important;transform:none!important}}
@media(prefers-reduced-motion:reduce){.house-envelope,.house-details,.utility-core{opacity:1!important;transform:none!important}.diagnostic .map-room{transition:none}.diagnostic .map-room[data-active]{transform:none}}

/* Shared spatial Digital Home: architecture is the focal artifact. */
.hero-house { align-self:center; min-width:0; position:relative; margin-inline:-60px -75px; }
.hero-house img { display:block; width:100%; height:auto; }
.hero-house figcaption { display:flex; justify-content:space-between; gap:16px; margin:0 45px; padding-top:12px; border-top:1px solid var(--line-soft); font-size:13px; }
.hero-house figcaption a { color:var(--blue); }
.hero > .document-line { width:min(1248px,calc(100% - 96px)); margin:0 auto; }
.hero > .spatial-journey { margin-bottom:0; }
.hero .journey-scene { grid-template-columns:minmax(330px,.82fr) minmax(0,1.7fr); }
.hero .journey-story { order:-1; border-left:0; border-right:1px solid var(--line); }
.hero .journey-intro { padding:30px 0; }
.hero .journey-intro h1 { font-size:clamp(44px,4vw,64px); }
.hero .journey-intro .hero-copy { font-size:17px; }
.hero .hero-summary { display:block; }
.hero .hero-summary .opening-terms { width:min(1248px,calc(100% - 96px)); margin:48px auto 0; }
#systems > .hero-house { width:min(1248px,calc(100% - 96px)); margin:0 auto 72px; }
#systems > .hero-house img { max-height:680px; object-fit:contain; }
#systems > .hero-house figcaption { margin-inline:0; }
#systems { padding-top:0; }
.systems-house-reference { width:min(1248px,calc(100% - 96px)); margin:0 auto 72px; border-bottom:1px solid var(--line-soft); }
.systems-house-reference img { display:block; width:100%; max-height:620px; object-fit:contain; }
.systems-house-reference figcaption { display:flex; justify-content:space-between; gap:16px; padding:12px 0; color:var(--muted); font-size:12px; }
.spatial-journey { position:relative; margin-bottom:80px; border-block:1px solid var(--line-soft); }
.journey-stage { max-width:1600px; margin:auto; background:var(--void); }
.house-heading { display:flex; justify-content:space-between; gap:24px; align-items:center; padding:28px 48px; border-bottom:1px solid var(--line); }
.house-heading h2 { font-size:30px; }
.house-heading p,.house-heading>a { font-size:14px; }
.house-viewport { position:relative; min-width:0; width:100%; height:560px; --house-height:560px; isolation:isolate; }
.house-viewport canvas,.house-poster { position:absolute; width:100%; height:100%; inset:0; object-fit:contain; display:block; }
.house-poster { z-index:0; }
.house-viewport canvas { z-index:1; }
.house-ready .house-poster { visibility:hidden; }
.model-caption { position:absolute; bottom:12px; inset-inline:24px; display:flex; justify-content:space-between; gap:12px; font-size:12px; letter-spacing:0; color:var(--body); z-index:3; background:var(--void); padding:4px 8px; pointer-events:none; }
.house-markers { position:absolute; inset:0; z-index:2; pointer-events:none; }
.house-markers a { pointer-events:auto; position:absolute; display:flex; align-items:center; min-height:32px; min-width:32px; text-decoration:none; transform:translate(-50%,-50%); color:var(--text); background:var(--deep); border:1px solid var(--line-soft); white-space:nowrap; font-size:11px; }
.house-markers a span { display:grid; place-items:center; width:30px; height:30px; color:var(--blue); font-size:12px; font-weight:700; }
.house-markers a b { padding-right:10px; font-weight:600; }
.house-markers a.is-selected { border-color:var(--warm); }
.house-markers a.is-selected span { color:var(--void); background:var(--warm); }
.house-markers a:hover,.house-markers a:focus-visible { border-color:var(--blue); z-index:4; }
.journey-scene { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(310px,1fr); }
.journey-story { padding:20px 40px; border-left:1px solid var(--line); }
.journey-room { padding:30px 0; }
.room-sequence { display:flex; justify-content:space-between; gap:12px; color:var(--blue); font-size:12px; letter-spacing:.06em; margin-bottom:32px; }
.journey-room h2 { font-family:var(--font-display); font-size:42px; line-height:1.1; max-width:10ch; margin-bottom:24px; }
.journey-room .room-name { font-family:var(--font-body); font-size:18px; line-height:1.3; max-width:none; margin-bottom:10px; }
.journey-room p { max-width:34ch; font-size:17px; }
.room-purpose { margin-block:28px 24px; border-top:1px solid var(--line-soft); padding-top:16px; color:var(--warm); font-size:13px; }
.journey-room .text-link { font-size:14px; }
.room-navigation { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:0 48px; border-top:1px solid var(--line-soft); }
.room-navigation a { display:flex; align-items:center; gap:10px; padding:20px 12px; text-decoration:none; line-height:1.35; font-size:13px; min-height:66px; border-bottom:2px solid transparent; }
.room-navigation a span { color:var(--muted); font-variant-numeric:tabular-nums; font-size:12px; }
.room-navigation a[aria-current],.room-navigation a.is-selected { border-bottom-color:var(--warm); color:var(--text); background:var(--surface); }
.room-navigation a[aria-current] span { color:var(--warm); }
.house-bottom { display:flex; justify-content:space-between; gap:16px; padding:12px 48px; font-size:12px; color:var(--muted); border-top:1px solid var(--line); }
.house-bottom span:last-child { display:none; }
.house-qualification { grid-column:1/-1; display:flex; justify-content:space-between; gap:32px; padding:24px 0; font-size:13px; color:var(--muted); }
.house-qualification p { max-width:60ch; }
.diagnostic-house { margin:0; background:var(--void); border-block:1px solid var(--line-soft); }
.diagnostic-house .house-heading { padding-inline:0; }
.diagnostic-scene { display:grid; grid-template-columns:minmax(0,1.9fr) minmax(290px,1fr); }
.diagnostic-story { border-left:1px solid var(--line-soft); padding:26px 0 26px 28px; }
.demand-readout { border-bottom:1px solid var(--line-soft); padding-bottom:24px; margin-bottom:28px; }
.demand-readout>span { color:var(--blue); font-size:12px; }
.demand-readout strong { display:block; font-family:var(--font-display); font-size:38px; line-height:1.2; margin-top:8px; }
.demand-readout p { color:var(--muted); font-size:13px; margin-top:8px; }
.demand-readout p b { font-weight:600; }
.diagnostic-room { padding-bottom:26px; }
.diagnostic-room[hidden] { display:none; }
.diagnostic-condition { font-size:13px; color:var(--blue); margin-bottom:12px; display:flex; align-items:center; gap:8px; }
.diagnostic-condition:before { content:''; width:7px; height:7px; background:currentColor; }
.diagnostic-room.crit .diagnostic-condition,.diagnostic-room.mixed .diagnostic-condition { color:var(--orange); }
.diagnostic-room.ok .diagnostic-condition { color:var(--warm); }
.diagnostic-room h3 { font-family:var(--font-display); font-size:32px; margin-bottom:12px; }
.diagnostic-room p { font-size:16px; }
.finding-links { display:flex; flex-wrap:wrap; gap:8px 18px; margin-top:20px; }
.finding-links a { color:var(--blue); font-size:14px; min-height:36px; display:flex; align-items:center; gap:10px; }
.diagnostic-room .condition-note { font-size:12px; color:var(--muted); margin-top:16px; }
.diagnostic-navigation { padding-inline:0; }
.diagnostic-navigation a { display:grid; grid-template-columns:22px 1fr; gap:5px 6px; align-content:center; }
.diagnostic-navigation a b { font-size:12px; font-weight:600; }
.diagnostic-navigation a small { grid-column:2; font-size:11px; color:var(--blue); }
.diagnostic-navigation a.crit small,.diagnostic-navigation a.mixed small { color:var(--orange); }
.diagnostic-navigation a.ok small { color:var(--warm); }
.diagnostic-house .house-qualification { border-top:1px solid var(--line); }
.diagnostic-house .house-qualification p { font-size:12px; }
@media(min-width:1000px) and (min-height:680px) {
 .is-pinned { height:650vh; }
 .is-pinned .journey-stage { position:sticky; top:132px; height:calc(100svh - 132px); min-height:548px; display:flex; flex-direction:column; }
 .is-pinned .house-heading { flex:0 0 auto; padding-block:18px; }
 .is-pinned .journey-scene { flex:1; min-height:0; }
 .is-pinned .house-viewport { height:100%; }
 .is-pinned .journey-story { position:relative; display:grid; align-items:center; overflow:hidden; }
 .is-pinned .journey-intro { grid-area:1/1; opacity:0; pointer-events:none; padding-block:14px; }
 .is-pinned .journey-intro.is-current { opacity:1; pointer-events:auto; }
 .is-pinned .journey-room { grid-area:1/1; opacity:0; pointer-events:none; padding-block:14px; }
 .is-pinned .journey-room.is-current { opacity:1; pointer-events:auto; }
 .is-pinned .house-markers a:not(.is-selected) { visibility:hidden; }
 .is-pinned .house-markers a b { display:none; }
 .is-pinned .house-bottom span:last-child { display:inline; }
}
@media(max-height:850px) and (min-width:1000px) {
 .is-pinned .journey-room h2 { font-size:34px; margin-bottom:18px; }
 .is-pinned .room-sequence { margin-bottom:18px; }
 .is-pinned .room-purpose { margin-block:18px 12px; padding-top:10px; }
 .is-pinned .journey-room p { font-size:15px; }
 .is-pinned .room-navigation a { min-height:56px; padding-block:12px; }
}
@media(max-width:1100px) {
 .house-heading { padding-inline:28px; }
 .journey-story { padding-inline:24px; }
 .room-navigation { padding-inline:20px; }
 .house-markers a b { display:none; }
 .hero-house { margin-inline:-30px; }
}
@media(max-width:999px),(prefers-reduced-motion:reduce) {
 .hero .journey-scene { display:flex; flex-direction:column; }
 .hero .house-viewport { order:-1; }
 .hero .journey-story { order:0; border-right:0; }
 .hero .journey-intro { grid-column:1/-1; border-top:1px solid var(--line-soft); }
 .journey-scene { display:block; }
 .journey-story { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 28px; border-left:0; gap:0 36px; }
 .journey-room { border-top:1px solid var(--line-soft); }
 .journey-room h2 { font-size:34px; max-width:15ch; }
 .journey-room p { max-width:40ch; }
 .room-sequence { margin-bottom:20px; }
 .journey-room .room-purpose { margin-block:18px 12px; }
 .house-bottom { padding-inline:28px; }
}
@media(max-width:850px) {
 .systems-house-reference { width:calc(100% - 40px); margin-bottom:48px; }
 .hero > .document-line,.hero .hero-summary .opening-terms,#systems > .hero-house { width:calc(100% - 40px); }
 .hero-house { margin:12px -16px 0; }
 .hero-house figcaption { margin-inline:16px; }
 .house-viewport { height:480px; --house-height:480px; }
 .diagnostic-scene { display:block; }
 .diagnostic-story { border-left:0; border-top:1px solid var(--line-soft); display:grid; grid-template-columns:1fr 1.5fr; gap:24px; padding:24px 0 12px; }
 .demand-readout { border-bottom:0; padding:0; margin:0; }
 .diagnostic-details { min-height:250px; }
 .diagnostic-navigation { grid-template-columns:repeat(3,minmax(0,1fr)); padding:0; }
 .room-navigation:not(.diagnostic-navigation) { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .house-qualification { display:block; }
 .house-qualification p+p { margin-top:12px; }
}
@media(max-width:550px) {
 .systems-house-reference { width:calc(100% - 32px); }
 .systems-house-reference figcaption { display:block; }
 .systems-house-reference figcaption span { display:block; }
 .hero > .document-line,.hero .hero-summary .opening-terms,#systems > .hero-house { width:calc(100% - 32px); }
 .hero-house figcaption { font-size:12px; }
 .house-heading { display:block; padding:24px; }
 .house-heading h2 { font-size:30px; }
 .house-heading>a,.house-heading>p { display:block; margin-top:12px; }
 .house-viewport { height:350px; --house-height:350px; }
 .house-markers a { min-width:36px; min-height:36px; }
 .house-markers a span { width:34px; height:34px; }
 .model-caption { inset-inline:14px; font-size:12px; bottom:5px; }
 .model-caption span:last-child { display:none; }
 .journey-story { grid-template-columns:1fr; padding:0 24px; gap:0; }
 .journey-room { padding:30px 0; }
 .journey-room h2 { font-size:36px; }
 .room-navigation:not(.diagnostic-navigation) { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 12px; }
 .house-bottom { padding-inline:24px; }
 .spatial-journey { margin-bottom:40px; }
 .diagnostic-story { display:block; }
 .demand-readout { display:grid; grid-template-columns:1fr 1.2fr; column-gap:16px; padding-bottom:20px; border-bottom:1px solid var(--line-soft); margin-bottom:24px; }
 .demand-readout>span { grid-column:1; }
 .demand-readout>strong { grid-column:1; }
 .demand-readout>p { grid-column:2; grid-row:1/3; align-self:center; }
 .diagnostic-details { min-height:250px; }
 .diagnostic-room h3 { font-size:30px; }
 .diagnostic-navigation { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .diagnostic-navigation a { padding:14px 8px; min-height:76px; }
 .diagnostic-navigation a b { font-size:13px; }
 .diagnostic-navigation a small { font-size:12px; }
 .diagnostic-house .house-qualification .legend { flex-wrap:wrap; gap:12px; margin-bottom:12px; }
}

/* Keep diagnostic selectors stationary while their evidence changes. */
.diagnostic-details { min-height:270px; }
@media(max-width:850px) {
 .diagnostic-house { display:flex; flex-direction:column; }
 .diagnostic-house .house-heading { order:0; }
 .diagnostic-scene { display:contents; }
 .diagnostic-house .house-viewport { order:1; }
 .diagnostic-navigation { order:2; }
 .diagnostic-story { order:3; }
 .diagnostic-house .house-qualification { order:4; }
}

.house-viewport:not(.house-ready) .house-markers { width:min(100%,calc(var(--house-height) * 4 / 3)); height:auto; aspect-ratio:4/3; inset:auto; left:50%; top:50%; transform:translate(-50%,-50%); }

/* Room taxonomy follows the room heading. Mobile leaders separate projected targets. */
.journey-room .room-sequence { margin-block:16px 20px; }
.diagnostic-room .diagnostic-condition { margin-block:0 14px; }
.hero-house figcaption a { display:inline-flex; align-items:center; gap:8px; }
@media(max-width:550px) {
 .house-markers a[data-house-room="1"] { margin-left:-38px; }
 .house-markers a[data-house-room="5"] { margin-top:20px; }
 .house-markers a[data-house-room="1"]::before,
 .house-markers a[data-house-room="5"]::before { content:""; position:absolute; background:var(--blue); pointer-events:none; z-index:-1; }
 .house-markers a[data-house-room="1"]::before { left:50%; top:50%; width:38px; height:1px; }
 .house-markers a[data-house-room="5"]::before { left:50%; top:calc(50% - 20px); width:1px; height:20px; }
}

.house-viewport { overflow:hidden; }

/* The hero owns the single journey. All rules are scoped to the proposal hero. */
.hero-journey { padding:0 0 64px; }
.hero-journey .spatial-journey { border-top:0; margin:0; }
.hero-journey .journey-stage { max-width:1440px; }
.hero-journey .journey-stage>.document-line { margin:0; padding:18px 48px; min-height:52px; width:auto; }
.hero-journey .journey-scene { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1.35fr); }
.hero-journey .journey-story { display:contents; }
.hero-journey .journey-intro { grid-column:1; grid-row:1; padding:32px 32px 32px 48px; }
.hero-journey .journey-intro h1 { font-size:52px; }
.hero-journey .journey-intro .hero-copy { font-size:17px; margin-top:24px; }
.hero-journey .house-viewport { grid-column:2; grid-row:1; height:560px; align-self:center; }
.hero-journey .journey-rooms { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 48px; padding-inline:48px; }
.hero-journey .journey-room { border-top:1px solid var(--line-soft); }
.hero-journey .opening-terms { margin:0 48px; }
.hero-journey .proof-tile { padding:14px 24px; }
.hero-journey .proof-tile:first-child { padding-left:0; }
.hero-journey .proof-tile b { font-size:26px; }
.hero-journey .proof-tile>span { font-size:12px; }
.hero-journey .house-bottom .text-link { display:inline-flex; font-size:12px; }
.hero-journey .room-navigation { border-top:0; }
@media(min-width:1000px) and (min-height:800px) {
 .hero-journey .is-pinned .journey-scene { flex:1; min-height:0; }
 .hero-journey .is-pinned .journey-story { display:grid; grid-column:1; grid-row:1; order:0; padding:20px 32px 20px 48px; border:0; }
 .hero-journey .is-pinned .journey-intro { grid-area:1/1; padding:0; }
 .hero-journey .is-pinned .journey-rooms { display:contents; }
 .hero-journey .is-pinned .journey-room { border:0; padding:0; }
 .hero-journey .is-pinned .house-viewport { height:100%; }
 .hero-journey .is-pinned .journey-intro h1 { font-size:clamp(38px,3.5vw,50px); }
 .hero-journey .is-pinned .journey-intro .hero-copy { font-size:16px; line-height:1.6; margin-top:20px; }
 .hero-journey .is-pinned .journey-intro .button-row { margin-top:24px; }
 .hero-journey .is-pinned .journey-room h2 { max-width:15ch; }
}
@media(min-width:1000px) and (max-height:900px) {
 .hero-journey .is-pinned .journey-intro h1 { font-size:36px; }
 .hero-journey .is-pinned .journey-intro .hero-copy { font-size:14px; line-height:1.5; margin-top:14px; }
 .hero-journey .is-pinned .journey-intro .button-row { margin-top:16px; gap:12px; }
 .hero-journey .is-pinned .journey-intro .button { padding:10px 14px; font-size:13px; }
 .hero-journey .is-pinned .journey-intro .text-link { font-size:13px; }
}
@media(max-width:999px),(prefers-reduced-motion:reduce) {
 .hero-journey .journey-scene { display:grid; grid-template-columns:1fr; }
 .hero-journey .journey-intro { grid-column:1; grid-row:1; border:0; padding:28px; }
 .hero-journey .house-viewport { grid-column:1; grid-row:2; order:0; height:480px; }
 .hero-journey .journey-rooms { grid-column:1; grid-row:3; padding-inline:28px; gap:0 32px; }
 .hero-journey .journey-stage>.document-line { padding-inline:28px; }
 .hero-journey .opening-terms { margin-inline:28px; }
}
@media(max-width:550px) {
 .hero-journey .journey-intro { padding:24px 20px; }
 .hero-journey .journey-intro h1 { font-size:40px; }
 .hero-journey .journey-intro .hero-copy { font-size:16px; }
 .hero-journey .journey-stage>.document-line { padding:18px 20px 0; }
 .hero-journey .house-viewport { height:350px; }
 .hero-journey .journey-rooms { grid-template-columns:1fr; padding-inline:20px; }
 .hero-journey .opening-terms { margin-inline:20px; }
 .hero-journey .proof-tile { padding:16px 0; }
 .hero-journey .house-bottom { flex-wrap:wrap; }
}
@media(max-width:360px) {
 .hero-journey .journey-intro h1 { font-size:36px; }
 .hero-journey .journey-intro { padding-inline:16px; }
 .hero-journey .journey-stage>.document-line { padding-inline:16px; }
}

/* Proposal-only cinematic replacement. The inspection keeps its diagnostic model. */
.proposal-page .cinematic-house { overflow:hidden; }
.proposal-page .house-film { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; opacity:0; pointer-events:none; }
.proposal-page .film-visible .house-film { opacity:1; }
.proposal-page .cinematic-house .model-caption { bottom:12px; }
.proposal-page .hero-journey .is-pinned .journey-stage { top:var(--pin-top,132px); height:calc(100svh - var(--pin-top,132px)); }
.proposal-page .hero-journey .is-pinned { height:calc(100svh + 5400px); }
.proposal-page .hero-journey .is-pinned .journey-room { opacity:0; }
.proposal-page .hero-journey .is-pinned .journey-room.is-current { opacity:1; }
.proposal-page .hero-journey .is-pinned .journey-intro .hero-copy { font-size:16px; }
@media(max-width:999px),(prefers-reduced-motion:reduce) {
  .proposal-page .hero-journey .cinematic-house { height:auto; aspect-ratio:16/10; }
  .proposal-page .cinematic-house .model-caption { inset-inline:16px; font-size:12px; bottom:0; flex-wrap:wrap; }
}
@media print {
  .proposal-page .hero-journey .is-pinned { height:auto; }
  .proposal-page .hero-journey .is-pinned .journey-stage { position:static; height:auto; }
  .proposal-page .hero-journey .is-pinned .journey-story { display:contents; }
  .proposal-page .hero-journey .is-pinned .journey-rooms { display:block; }
  .proposal-page .hero-journey .is-pinned .journey-room,
  .proposal-page .hero-journey .is-pinned .journey-intro { opacity:1; position:static; }
  .proposal-page .house-film { display:none; }
}


/* The immersive tour stays available on laptop-height Chrome windows. */
.proposal-page .hero-journey > .opening-terms { margin-top:32px; }
@media(min-width:760px) {
 .proposal-page .hero-journey .is-pinned .journey-stage { position:sticky; top:var(--pin-top); height:calc(100svh - var(--pin-top)); min-height:0; max-width:none; display:flex; flex-direction:column; }
 .proposal-page .hero-journey .is-pinned .journey-scene { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr); flex:1; min-height:0; }
 .proposal-page .hero-journey .is-pinned .journey-scene::after { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(2,6,23,.94) 0%,rgba(2,6,23,.88) 37%,rgba(2,6,23,.52) 50%,rgba(2,6,23,.08) 67%,rgba(2,6,23,.02) 100%); }
 .proposal-page .hero-journey .is-pinned .journey-story { position:relative; z-index:2; width:42%; max-width:600px; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr); grid-column:1; grid-row:1; align-items:center; overflow:hidden; padding:24px 32px 24px 48px; border:0; gap:0; }
 .proposal-page .hero-journey .is-pinned .journey-intro,
 .proposal-page .hero-journey .is-pinned .journey-room { grid-area:1/1; padding:0; border:0; opacity:0; pointer-events:none; }
 .proposal-page .hero-journey .is-pinned .journey-intro.is-current,
 .proposal-page .hero-journey .is-pinned .journey-room.is-current { opacity:1; pointer-events:auto; }
 .proposal-page .hero-journey .is-pinned .journey-rooms { display:contents; }
 .proposal-page .hero-journey .is-pinned .house-viewport { grid-column:1; grid-row:1; height:100%; min-height:0; aspect-ratio:auto; order:0; }
 .proposal-page .hero-journey .is-pinned .house-poster,
 .proposal-page .hero-journey .is-pinned .house-film { object-fit:cover; object-position:center; }
 .proposal-page .hero-journey .is-pinned .model-caption { left:auto; right:24px; bottom:16px; gap:16px; }
 .proposal-page .hero-journey .is-pinned .model-caption span:last-child { display:none; }
 .proposal-page .hero-journey .is-pinned .journey-intro h1 { font-size:clamp(32px,3.4vw,48px); }
 .proposal-page .hero-journey .is-pinned .journey-intro .hero-copy { font-size:16px; line-height:1.6; margin-top:20px; }
 .proposal-page .hero-journey .is-pinned .room-navigation { grid-template-columns:repeat(6,minmax(0,1fr)); }
 .proposal-page .hero-journey .is-pinned .room-navigation a { padding:12px 10px; min-height:54px; }
 .proposal-page .hero-journey .is-pinned .journey-room h2 { max-width:15ch; }
}
@media(min-width:760px) and (max-height:799px) {
 .proposal-page .package-header,.proposal-page .journey-nav { position:relative; top:auto; }
 .proposal-page .hero-journey .is-pinned .journey-stage>.document-line { padding-block:10px; min-height:36px; }
 .proposal-page .hero-journey .is-pinned .journey-intro h1 { font-size:clamp(30px,3.1vw,42px); }
 .proposal-page .hero-journey .is-pinned .journey-intro .hero-copy { font-size:15px; line-height:1.5; margin-top:16px; }
 .proposal-page .hero-journey .is-pinned .journey-story { padding-block:16px; }
 .proposal-page .hero-journey .is-pinned .room-sequence { margin-bottom:20px; }
 .proposal-page .hero-journey .is-pinned .room-purpose { margin-block:18px; }
}
@media(min-width:760px) and (max-width:1100px) {
 .proposal-page .hero-journey .is-pinned .journey-story { width:46%; padding-inline:24px; }
 .proposal-page .hero-journey .is-pinned .journey-room h2 { font-size:34px; }
 .proposal-page .hero-journey .is-pinned .room-navigation { padding-inline:16px; }
 .proposal-page .hero-journey .is-pinned .room-navigation a { font-size:12px; gap:6px; }
 .proposal-page .hero-journey .is-pinned .model-caption { left:auto; right:12px; }
}

/* Reusable Blueprint Journey: content count and static overlay, not client defaults. */
.hero-proof { grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr)); }
.option-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr)); }
.room-navigation:empty,.journey-rooms:empty { display:none!important; }
.proposal-page .hero-journey .is-pinned { height:calc(100svh + var(--tour-distance,0px)); }
@media(min-width:760px) {
 .proposal-page .hero-journey .is-pinned .room-navigation { grid-template-columns:repeat(var(--room-count,1),minmax(0,1fr)); }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-stage { max-width:none; }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-scene { position:relative; isolation:isolate; display:grid; grid-template-columns:1fr; }
 .hero-journey .spatial-journey:not(.is-pinned) .house-viewport { grid-area:1/1; height:100%; min-height:560px; align-self:stretch; }
 .hero-journey .spatial-journey:not(.is-pinned) .house-poster { object-fit:cover; }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-scene::after { content:""; grid-area:1/1; align-self:stretch; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(2,6,23,.94),rgba(2,6,23,.88) 37%,rgba(2,6,23,.52) 50%,rgba(2,6,23,.08) 67%,rgba(2,6,23,.02)); }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-intro { position:relative; z-index:2; grid-area:1/1; width:46%; max-width:650px; align-self:center; padding:48px; }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-intro h1 { font-size:clamp(32px,3.4vw,48px); }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-rooms { grid-column:1; grid-row:2; margin-top:24px; }
 .hero-journey .spatial-journey:not(.is-pinned) .model-caption { left:auto; right:24px; }
 .hero-journey .spatial-journey:not(.is-pinned) .model-caption span:last-child { display:none; }
}
@media print {
 .hero-journey .spatial-journey:not(.is-pinned) .journey-scene { display:block; }
 .hero-journey .spatial-journey:not(.is-pinned) .house-viewport { display:none; }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-intro { width:100%; max-width:none; padding:24px 48px; }
 .hero-journey .spatial-journey:not(.is-pinned) .journey-rooms { display:block; }
 .room-navigation,.house-bottom { display:none; }
 .option-card,.process-step,tr { break-inside:avoid; }
}
.hero-journey .spatial-journey.text-only .journey-intro { width:100%; max-width:950px; padding-block:72px; }
.hero-journey .spatial-journey.text-only .journey-scene::after { display:none; }
.hero-journey .spatial-journey.text-only .journey-intro .hero-copy { max-width:65ch; }
@media(max-width:759px) { .hero-journey .spatial-journey.text-only .journey-intro { padding-block:36px; } }

/* Proposal review preference: keep direction links free of outbound-arrow marks. */
.proposal-page .direction-action::after { content:none!important; display:none!important; }
.proposal-page .direction-action svg { display:none!important; }

/* Door illustration was removed; let the closing copy use the full text column. */
.proposal-page .closing-card { grid-template-columns:minmax(0,1fr) auto; align-items:center; column-gap:32px; }
.proposal-page .closing-card .button-row { grid-column:2; }
@media(max-width:800px) {
  .proposal-page .closing-card { grid-template-columns:minmax(0,1fr); row-gap:24px; }
  .proposal-page .closing-card .button-row { grid-column:1; }
}

/* Keep the actual house tour active in the narrow in-app proposal preview. */
@media (min-width:320px) and (max-width:759px) and (prefers-reduced-motion:no-preference) {
  .proposal-page .hero-journey .is-pinned .journey-stage {
    position:sticky; top:0; height:100svh; min-height:480px; max-width:none;
    display:flex; flex-direction:column;
  }
  .proposal-page .hero-journey .is-pinned .journey-stage>.document-line {
    flex:0 0 34px; min-height:34px; padding:6px 16px; font-size:9px;
  }
  .proposal-page .hero-journey .is-pinned .journey-scene {
    position:relative; isolation:isolate; display:grid; grid-template-columns:1fr;
    flex:1; min-height:0; overflow:hidden;
  }
  .proposal-page .hero-journey .is-pinned .journey-scene::after {
    content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
    background:linear-gradient(180deg,rgba(2,6,23,.06) 25%,rgba(2,6,23,.18) 43%,rgba(2,6,23,.96) 100%);
  }
  .proposal-page .hero-journey .is-pinned .house-viewport {
    grid-column:1; grid-row:1; width:100%; height:100%; min-height:0;
    aspect-ratio:auto; align-self:stretch; order:0;
  }
  .proposal-page .hero-journey .is-pinned .house-poster,
  .proposal-page .hero-journey .is-pinned .house-film { object-fit:cover; object-position:center; }
  .proposal-page .hero-journey .is-pinned .journey-story {
    position:absolute; z-index:2; inset:0; width:100%; max-width:none; height:100%;
    display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:minmax(0,1fr);
    align-items:end; overflow:hidden; padding:18px 20px 20px; border:0; gap:0;
  }
  .proposal-page .hero-journey .is-pinned .journey-rooms { display:contents; }
  .proposal-page .hero-journey .is-pinned .journey-intro,
  .proposal-page .hero-journey .is-pinned .journey-room {
    grid-area:1/1; align-self:end; padding:0; border:0; opacity:0; pointer-events:none;
  }
  .proposal-page .hero-journey .is-pinned .journey-intro.is-current,
  .proposal-page .hero-journey .is-pinned .journey-room.is-current { opacity:1; pointer-events:auto; }
  .proposal-page .hero-journey .is-pinned .journey-intro h1 {
    max-width:18ch; font-size:clamp(28px,7vw,36px); line-height:1.02;
  }
  .proposal-page .hero-journey .is-pinned .journey-intro .hero-copy {
    max-width:44ch; font-size:13px; line-height:1.4; margin-top:10px;
  }
  .proposal-page .hero-journey .is-pinned .journey-intro .button-row { margin-top:12px; }
  .proposal-page .hero-journey .is-pinned .journey-intro .button-row .text-link { display:none; }
  .proposal-page .hero-journey .is-pinned .journey-intro .button { padding:9px 13px; font-size:12px; }
  .proposal-page .hero-journey .is-pinned .journey-room h2 {
    max-width:22ch; margin:0 0 5px; font-size:clamp(23px,6vw,29px); line-height:1.06;
  }
  .proposal-page .hero-journey .is-pinned .journey-room .room-name {
    margin:0; font-size:13px; line-height:1.3;
  }
  .proposal-page .hero-journey .is-pinned .journey-room .room-sequence,
  .proposal-page .hero-journey .is-pinned .journey-room .text-link { display:none; }
  .proposal-page .hero-journey .is-pinned .journey-room p {
    max-width:48ch; margin:7px 0 0; font-size:13px; line-height:1.4;
  }
  .proposal-page .hero-journey .is-pinned .model-caption {
    top:8px; right:12px; bottom:auto; left:12px; gap:8px; font-size:10px;
  }
  .proposal-page .hero-journey .is-pinned .model-caption span:last-child { display:none; }
  .proposal-page .hero-journey .is-pinned .room-navigation {
    flex:0 0 auto; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 8px;
    border-top:1px solid var(--line-soft);
  }
  .proposal-page .hero-journey .is-pinned .room-navigation a {
    min-height:42px; padding:5px 4px; gap:4px; font-size:10px; line-height:1.15;
  }
  .proposal-page .hero-journey .is-pinned .room-navigation a span { font-size:9px; }
  .proposal-page .hero-journey .is-pinned .house-bottom { flex:0 0 auto; padding:6px 12px; font-size:9px; }
}
