

:root {
  --ink: #11131c;
  --ink-soft: #1a1d28;
  --paper: #f4f0e8;
  --paper-bright: #fbf8f2;
  --muted: #686a70;
  --line: rgba(17, 19, 28, 0.15);
  --signal: #e2252b;
  --signal-deep: #be171e;
  --electric: #18b8ec;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif;
}
a { color: inherit; text-decoration: none; }
button, a, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--signal); outline-offset: 4px; }
.skip-link {
  background: var(--paper-bright);
  color: var(--ink);
  font-weight: 750;
  left: 20px;
  padding: 12px 16px;
  position: fixed;
  top: 12px;
  transform: translateY(-180%);
  transition: transform 160ms ease;
  z-index: 40;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgba(244, 240, 232, 0.94);
  border-bottom: 1px solid var(--line);
  display: flex;
  height: 84px;
  justify-content: space-between;
  padding: 0 clamp(24px, 5vw, 76px);
  position: sticky;
  top: 0;
  z-index: 20;
}
.brand, .brand-link { align-items: center; display: inline-flex; }
.brand { gap: 13px; }
.brand-mark {
  color: var(--ink);
  display: grid;
  font-size: 25px;
  font-weight: 850;
  height: 42px;
  letter-spacing: -0.16em;
  line-height: 1;
  place-items: center;
  position: relative;
  width: 43px;
}
.brand-mark::before {
  background: var(--signal);
  content: "";
  height: 42px;
  position: absolute;
  right: 0;
  transform: skew(-16deg);
  width: 17px;
  z-index: -1;
}
.brand-mark span:first-child { transform: translateX(-7px); }
.brand-mark span:last-child {
  color: var(--paper-bright);
  position: absolute;
  right: 5px;
}
.brand-name {
  font-size: 15px;
  letter-spacing: -0.03em;
  line-height: 1.1;
  text-transform: uppercase;
}
.brand-name strong { display: block; font-weight: 850; }
.desktop-nav {
  align-items: center;
  display: flex;
  font-size: 14px;
  font-weight: 650;
  gap: clamp(20px, 2.5vw, 38px);
}
.desktop-nav > a:not(.nav-cta) { border-bottom: 1px solid transparent; padding: 10px 0; }
.desktop-nav > a:not(.nav-cta):hover { border-color: var(--signal); }
.nav-cta { background: var(--ink); color: var(--paper-bright); padding: 14px 20px; }
.nav-cta:hover { background: var(--signal); }
.mobile-menu { display: none; position: relative; }
.mobile-menu summary { cursor: pointer; font-size: 14px; font-weight: 750; list-style: none; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.mobile-menu nav {
  background: var(--paper-bright);
  border: 1px solid var(--line);
  box-shadow: 0 18px 45px rgba(17, 19, 28, 0.15);
  display: grid;
  min-width: 220px;
  padding: 12px;
  position: absolute;
  right: 0;
  top: 34px;
}
.mobile-menu nav a { border-bottom: 1px solid var(--line); padding: 14px 12px; }
.mobile-menu nav a:last-child { border-bottom: 0; color: var(--signal-deep); font-weight: 750; }

.eyebrow {
  align-items: center;
  color: rgba(255, 255, 255, 0.72);
  display: flex;
  font-size: 12px;
  font-weight: 750;
  gap: 10px;
  letter-spacing: 0.12em;
  margin: 0 0 25px;
  text-transform: uppercase;
}
.eyebrow::before { background: var(--signal); content: ""; height: 8px; width: 8px; }
.eyebrow-dark { color: var(--muted); }

.hero {
  background: var(--ink);
  color: white;
  min-height: min(790px, calc(100vh - 84px));
  overflow: hidden;
  position: relative;
}
.hero-art, .hero-shade { inset: 0; position: absolute; }
.hero-art {
  background-image: url("/gables-hero.png");
  background-position: center right;
  background-repeat: no-repeat;
  background-size: cover;
}
.hero-shade {
  background:
    linear-gradient(90deg, rgba(9,12,20,.96) 0%, rgba(9,12,20,.84) 27%, rgba(9,12,20,.34) 52%, rgba(9,12,20,.01) 78%),
    linear-gradient(0deg, rgba(9,12,20,.23), transparent 48%);
}
.hero-content {
  padding: clamp(98px, 13vh, 142px) clamp(24px, 6.5vw, 104px) 110px;
  position: relative;
  width: min(780px, 64vw);
  z-index: 2;
}
.hero h1, .service-hero h1, .about-hero h1 {
  font-size: clamp(52px, 6.4vw, 96px);
  font-weight: 620;
  letter-spacing: -0.07em;
  line-height: 0.94;
  margin: 0;
  text-wrap: balance;
}
.accent-word { color: #ff4b4f; }
.hero-copy {
  color: rgba(255,255,255,.76);
  font-size: clamp(17px, 1.5vw, 21px);
  line-height: 1.6;
  margin: 34px 0 0;
  max-width: 680px;
}
.hero-actions { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 38px; }
.button {
  align-items: center;
  display: inline-flex;
  font-size: 14px;
  font-weight: 750;
  gap: 22px;
  justify-content: space-between;
  min-height: 54px;
  padding: 15px 21px;
  transition: background-color 160ms ease, color 160ms ease, transform 160ms ease;
}
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--signal); color: white; min-width: 205px; }
.button-primary:hover { background: #ff3439; }
.button-quiet { border: 1px solid rgba(255,255,255,.28); color: white; }
.button-quiet:hover { background: rgba(255,255,255,.08); }
.hero-note { bottom: 35px; display: grid; gap: 4px; position: absolute; right: clamp(24px,5vw,76px); z-index: 3; }
.hero-note span { color: rgba(255,255,255,.55); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.hero-note strong { font-size: 15px; }

.proof-strip {
  background: var(--signal);
  color: white;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  padding: 0 clamp(24px, 5vw, 76px);
}
.proof-strip div { border-right: 1px solid rgba(255,255,255,.25); display: grid; gap: 6px; padding: 25px 28px; }
.proof-strip div:first-child { border-left: 1px solid rgba(255,255,255,.25); }
.proof-strip strong { font-size: 14px; }
.proof-strip span { color: rgba(255,255,255,.72); font-size: 12px; line-height: 1.4; }

.section { padding: clamp(90px, 11vw, 165px) clamp(24px, 6.5vw, 104px); }
.services-section { background: var(--paper); }
.section-heading {
  align-items: end;
  display: grid;
  gap: 60px;
  grid-template-columns: minmax(0, 1.7fr) minmax(330px, .75fr);
  margin-bottom: 70px;
}
.section-heading h2, .approach-intro h2, .about-copy h2, .contact-section h2,
.purchase-section h2, .about-closing h2 {
  font-size: clamp(42px, 5vw, 76px);
  font-weight: 620;
  letter-spacing: -0.065em;
  line-height: .98;
  margin: 0;
  text-wrap: balance;
}
.section-heading > p {
  color: var(--muted);
  font-size: clamp(19px, 1.75vw, 27px);
  line-height: 1.55;
  margin: 0;
}
.pathways-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2, 1fr); }
.pathway-card {
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: grid;
  min-height: 420px;
  padding: 36px;
  position: relative;
  transition: background-color 180ms ease, color 180ms ease;
}
.pathway-card:hover { background: var(--ink); color: white; }
.service-number { color: var(--signal); font-family: var(--font-geist-mono), monospace; font-size: 12px; }
.pathway-card > div { align-self: end; margin-bottom: 56px; }
.pathway-card h3 { font-size: clamp(30px, 3.2vw, 50px); font-weight: 620; letter-spacing: -.055em; line-height: 1; margin: 0 0 20px; max-width: 620px; }
.pathway-card p { color: var(--muted); font-size: 16px; line-height: 1.65; margin: 0; max-width: 560px; }
.pathway-card:hover p { color: rgba(255,255,255,.66); }
.card-link { align-items: center; border-top: 1px solid var(--line); display: flex; font-size: 13px; font-weight: 750; justify-content: space-between; padding-top: 20px; }
.pathway-card:hover .card-link { border-color: rgba(255,255,255,.18); }
.card-link b { color: var(--signal); font-size: 18px; }
.capabilities-line { color: var(--muted); font-size: 13px; line-height: 2; margin: 28px 0 0; text-align: center; }
.capabilities-line span { color: var(--signal); margin: 0 8px; }

.approach-section {
  background: var(--ink);
  color: white;
  display: grid;
  gap: clamp(65px, 9vw, 140px);
  grid-template-columns: minmax(0,.95fr) minmax(420px,1.05fr);
  padding: clamp(90px,11vw,165px) clamp(24px,6.5vw,104px);
}
.approach-intro { align-self: start; position: sticky; top: 130px; }
.approach-intro > p:last-child { color: rgba(255,255,255,.62); font-size: 17px; line-height: 1.65; margin: 34px 0 0; max-width: 560px; }
.steps { border-top: 1px solid rgba(255,255,255,.17); }
.step { border-bottom: 1px solid rgba(255,255,255,.17); display: grid; gap: 30px; grid-template-columns: 60px 1fr; padding: 45px 0 48px; }
.step > span { color: var(--signal); font-family: var(--font-geist-mono), monospace; font-size: 12px; padding-top: 6px; }
.step h3 { font-size: clamp(27px,2.5vw,38px); font-weight: 600; letter-spacing: -.045em; margin: 0 0 16px; }
.step p { color: rgba(255,255,255,.6); font-size: 16px; line-height: 1.65; margin: 0; }

.purchase-section {
  background: var(--signal);
  color: white;
  display: grid;
  gap: clamp(55px,8vw,130px);
  grid-template-columns: 1.3fr .7fr;
  padding: clamp(85px,9vw,135px) clamp(24px,6.5vw,104px);
}
.purchase-section .eyebrow { color: rgba(255,255,255,.76); }
.purchase-section .eyebrow::before { background: white; }
.purchase-copy { border-top: 1px solid rgba(255,255,255,.4); padding-top: 24px; }
.purchase-copy p { font-size: 17px; line-height: 1.65; margin: 0 0 20px; }

.experience-section { background: var(--paper-bright); }
.compact-heading { grid-template-columns: minmax(0, 1fr); max-width: 950px; }
.proof-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); }
.proof-card { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); display: flex; flex-direction: column; min-height: 390px; padding: 34px; transition: background-color 180ms ease, color 180ms ease; }
.proof-card > span { color: var(--signal-deep); font-family: var(--font-geist-mono), monospace; font-size: 11px; text-transform: uppercase; }
.proof-grid h3 { font-size: clamp(25px,2.4vw,36px); font-weight: 620; letter-spacing: -.045em; line-height: 1.08; margin: 88px 0 20px; }
.proof-grid p { color: var(--muted); font-size: 15px; line-height: 1.65; margin: 0; }
.proof-card > b { color: var(--signal-deep); font-size: 13px; margin-top: auto; padding-top: 35px; }
.proof-card > b i { font-style: normal; margin-left: 10px; }
.proof-card:hover { background: var(--ink); color: white; }
.proof-card:hover p { color: rgba(255,255,255,.62); }
.proof-card:hover > span, .proof-card:hover > b { color: #ff4b4f; }
.section-link-row { display: flex; justify-content: flex-end; }

.about-section { align-items: start; display: grid; gap: clamp(55px,9vw,150px); grid-template-columns: minmax(250px,.65fr) minmax(0,1.35fr); }
.about-kicker { align-items: center; border-top: 1px solid var(--line); display: flex; gap: 14px; padding-top: 20px; }
.about-kicker p { font-size: 13px; font-weight: 750; letter-spacing: .08em; margin: 0; text-transform: uppercase; }
.signal-dot { background: var(--signal); height: 10px; width: 10px; }
.about-copy > p { color: var(--muted); font-size: clamp(17px,1.5vw,20px); line-height: 1.68; margin: 28px 0 0; max-width: 830px; }
.about-copy .eyebrow { margin-top: 0; }
.text-link { border-bottom: 1px solid var(--ink); display: inline-flex; font-size: 14px; font-weight: 750; gap: 30px; margin-top: 32px; padding-bottom: 8px; }
.text-link:hover { color: var(--signal-deep); }
.inverse-link { border-color: rgba(255,255,255,.45); color: white; }
.inverse-link:hover { color: #ff4b4f; }

.contact-section { background: var(--signal); color: white; padding: clamp(90px,10vw,145px) clamp(24px,6.5vw,104px); }
.contact-section .eyebrow { color: rgba(255,255,255,.75); }
.contact-section .eyebrow::before { background: white; }
.contact-section h2 { max-width: 1100px; }
.contact-section > p:nth-of-type(2) { font-size: 18px; line-height: 1.65; margin: 35px 0 0; max-width: 680px; }
.contact-actions { align-items: start; border-top: 1px solid rgba(255,255,255,.35); display: flex; justify-content: space-between; margin-top: 62px; padding-top: 26px; }
.button-light { background: white; color: var(--ink); min-width: 225px; }
.button-light:hover { background: var(--ink); color: white; }
.button-outline-light { border: 1px solid rgba(255,255,255,.55); color: white; min-width: 225px; }
.button-outline-light:hover { background: white; color: var(--ink); }
.contact-buttons { display: flex; flex-wrap: wrap; gap: 12px; }
.contact-details { display: grid; gap: 8px; justify-items: end; text-align: right; }
.contact-details a { font-size: 14px; font-weight: 700; }
.contact-details a:hover { text-decoration: underline; }
.contact-details address { color: rgba(255,255,255,.76); font-size: 13px; font-style: normal; line-height: 1.5; margin-top: 8px; }

footer {
  align-items: start;
  background: #090b12;
  color: white;
  display: grid;
  gap: 40px;
  grid-template-columns: 1fr 1.3fr .6fr 1fr;
  padding: 68px clamp(24px,6.5vw,104px) 42px;
}
footer .brand-mark { color: white; }
footer .brand-mark span:last-child { color: white; }
footer > p { color: rgba(255,255,255,.56); font-size: 14px; line-height: 1.6; margin: 0; max-width: 390px; }
.footer-links { display: grid; font-size: 14px; gap: 12px; justify-self: end; }
.footer-links a:hover, .footer-contact a:hover { color: #ff4b4f; }
.footer-contact { color: rgba(255,255,255,.56); display: grid; font-size: 13px; gap: 9px; justify-items: end; line-height: 1.45; text-align: right; }
.footer-contact a:first-child { color: white; font-weight: 700; }
footer small { border-top: 1px solid rgba(255,255,255,.12); color: rgba(255,255,255,.42); font-size: 12px; grid-column: 1/-1; padding-top: 25px; }

/* Service pages */
.overview-hero {
  background:
    radial-gradient(circle at 80% 30%, rgba(24,184,236,.16), transparent 30%),
    linear-gradient(135deg, var(--ink), #090b12);
  color: white;
  min-height: 600px;
  overflow: hidden;
  padding: clamp(105px,12vw,175px) clamp(24px,6.5vw,104px);
  position: relative;
}
.overview-hero::after {
  border: 1px solid rgba(226,37,43,.38);
  border-radius: 50%;
  content: "";
  height: 560px;
  position: absolute;
  right: -170px;
  top: 20px;
  width: 560px;
}
.overview-hero h1 {
  font-size: clamp(54px,6.7vw,100px);
  font-weight: 620;
  letter-spacing: -.07em;
  line-height: .94;
  margin: 0;
  max-width: 1100px;
  position: relative;
  text-wrap: balance;
  z-index: 2;
}
.overview-hero > p:last-of-type {
  color: rgba(255,255,255,.66);
  font-size: clamp(17px,1.45vw,21px);
  line-height: 1.65;
  margin: 38px 0 0;
  max-width: 780px;
  position: relative;
  z-index: 2;
}
.overview-hero-approach { background-color: var(--ink); }
.overview-hero-experience { background-color: #0b0d14; }
.collection-overview { background: var(--paper); }
.principle-overview { background: var(--paper-bright); padding-top: 0; }
.editorial-grid {
  border-left: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(3,1fr);
}
.experience-grid { grid-template-columns: repeat(2,1fr); }
.editorial-card {
  border-bottom: 1px solid var(--line);
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  min-height: 390px;
  padding: 34px;
  transition: background-color 180ms ease, color 180ms ease;
}
.editorial-card > span {
  color: var(--signal-deep);
  font-family: var(--font-geist-mono), monospace;
  font-size: 12px;
}
.editorial-card h3 {
  font-size: clamp(30px,3vw,48px);
  font-weight: 620;
  letter-spacing: -.055em;
  line-height: 1;
  margin: 80px 0 20px;
}
.editorial-card p { color: var(--muted); font-size: 15px; line-height: 1.65; margin: 0; max-width: 560px; }
.editorial-card > b { color: var(--signal-deep); font-size: 13px; margin-top: auto; padding-top: 35px; }
.editorial-card > b i { font-style: normal; margin-left: 10px; }
.editorial-card:hover { background: var(--ink); color: white; }
.editorial-card:hover p { color: rgba(255,255,255,.62); }
.editorial-card:hover > span, .editorial-card:hover > b { color: #ff4b4f; }
.section-back-link {
  align-items: center;
  color: var(--paper);
  display: inline-flex;
  font-size: 12px;
  font-weight: 700;
  gap: 10px;
  letter-spacing: .04em;
  margin: 0;
  text-transform: uppercase;
}
.section-back-link span { color: #ff4b4f; font-size: 16px; transition: transform 180ms ease; }
.section-back-link:hover span { transform: translateX(-4px); }
.hero-context { margin-bottom: clamp(58px,6vw,78px); }
.hero-context .eyebrow { margin-bottom: 5px; }
.collection-hero .service-hero-copy > .eyebrow { margin-bottom: 28px; }
.service-hero {
  background: var(--ink);
  color: white;
  display: grid;
  gap: clamp(50px,6vw,100px);
  grid-template-columns: minmax(0,1.15fr) minmax(420px,.85fr);
  min-height: 670px;
  overflow: hidden;
  padding: clamp(90px,10vw,145px) clamp(24px,6.5vw,104px);
}
.service-hero-copy { align-self: center; max-width: 820px; position: relative; z-index: 2; }
.service-hero h1 { font-size: clamp(52px,6vw,88px); }
.service-hero-copy > p:last-child { color: rgba(255,255,255,.66); font-size: clamp(17px,1.45vw,21px); line-height: 1.65; margin: 35px 0 0; max-width: 700px; }
.service-visual {
  align-self: center;
  aspect-ratio: 1;
  background: radial-gradient(circle at center, rgba(24,184,236,.17), transparent 55%);
  max-width: 560px;
  position: relative;
  width: 100%;
}
.visual-orbit { border: 1px solid rgba(255,255,255,.16); border-radius: 50%; inset: 14%; position: absolute; }
.orbit-two { border-color: rgba(226,37,43,.38); inset: 29%; }
.visual-core {
  align-items: center;
  background: rgba(9,12,20,.8);
  border: 1px solid rgba(24,184,236,.7);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  height: 32%;
  inset: 34%;
  justify-content: center;
  padding: 20px;
  position: absolute;
  text-align: center;
}
.visual-core b { color: var(--electric); font-family: var(--font-geist-mono), monospace; font-size: 22px; }
.visual-core small { color: rgba(255,255,255,.6); font-size: 10px; line-height: 1.3; margin-top: 7px; text-transform: uppercase; }
.visual-node {
  background: var(--paper-bright);
  border-left: 4px solid var(--signal);
  color: var(--ink);
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px;
  padding: 12px 15px;
  position: absolute;
}
.node-1 { left: 1%; top: 19%; }
.node-2 { right: 0; top: 25%; }
.node-3 { bottom: 19%; left: 7%; }
.node-4 { bottom: 14%; right: 3%; }

/* Distinct overview motifs: a working path for Approach, an archive of stories for Experience. */
.collection-visual { isolation: isolate; }
.collection-grid {
  background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px);
  background-size: 44px 44px;
  inset: 6%;
  mask-image: linear-gradient(135deg, transparent 0, #000 22%, #000 78%, transparent 100%);
  opacity: .55;
  position: absolute;
  z-index: -1;
}
.collection-path { display: none; position: absolute; z-index: 0; }
.collection-visual-process { background: radial-gradient(circle at 52% 47%, rgba(24,184,236,.22), transparent 57%); }
.collection-visual-process .collection-path {
  background: linear-gradient(90deg, transparent, rgba(24,184,236,.8) 18%, rgba(24,184,236,.8) 82%, transparent);
  display: block;
  height: 1px;
  transform-origin: left center;
}
.collection-visual-process .path-one { left: 11%; top: 32%; transform: rotate(15deg); width: 39%; }
.collection-visual-process .path-two { left: 47%; top: 42%; transform: rotate(-24deg); width: 32%; }
.collection-visual-process .path-three { left: 25%; top: 68%; transform: rotate(-12deg); width: 49%; }
.collection-visual-process .visual-node { box-shadow: 0 8px 28px rgba(0,0,0,.28); }
.collection-visual-stories { background: radial-gradient(circle at 50% 50%, rgba(226,37,43,.13), transparent 37%), radial-gradient(circle at 52% 47%, rgba(24,184,236,.18), transparent 65%); }
.collection-visual-stories .collection-grid { background-size: 34px 34px; opacity: .42; transform: rotate(-5deg) scale(1.08); }
.collection-visual-stories .visual-orbit { border-radius: 18%; transform: rotate(45deg); }
.collection-visual-stories .orbit-two { border-color: rgba(24,184,236,.36); }
.collection-visual-stories .visual-core { box-shadow: 0 0 0 10px rgba(226,37,43,.05), 0 16px 42px rgba(0,0,0,.32); }
.collection-visual-stories .visual-node { border-left-color: var(--electric); box-shadow: 0 8px 28px rgba(0,0,0,.28); }
.collection-visual-stories .node-1, .collection-visual-stories .node-4 { border-left-color: var(--signal); }

.service-illustration {
  background: #0b0e17;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 28px 75px rgba(0,0,0,.36);
  isolation: isolate;
  overflow: hidden;
}
.service-illustration::before,
.service-montage::before {
  border: 1px solid rgba(255,255,255,.18);
  content: "";
  inset: 14px;
  pointer-events: none;
  position: absolute;
  z-index: 4;
}
.service-illustration-image,
.service-illustration-wash {
  inset: 0;
  position: absolute;
}
.service-illustration-image {
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  transform: scale(1.015);
}
.visual-personal-technology-support .service-illustration-image {
  background-image: url("/service-personal.webp");
}
.visual-small-business-technology .service-illustration-image {
  background-image: url("/service-business.webp");
}
.visual-connected-home-integration .service-illustration-image {
  background-image: url("/service-connected-home.webp");
}
.visual-custom-computers .service-illustration-image {
  background-image: url("/service-custom-systems.webp");
}
.service-illustration-wash {
  background:
    linear-gradient(180deg, rgba(7,9,15,.08) 35%, rgba(7,9,15,.94) 100%),
    linear-gradient(90deg, rgba(7,9,15,.45), transparent 48%);
  z-index: 1;
}
.service-illustration-meta {
  align-items: center;
  display: flex;
  gap: 12px;
  left: 34px;
  position: absolute;
  top: 32px;
  z-index: 3;
}
.service-illustration-meta b {
  color: #ff4b4f;
  font-family: var(--font-geist-mono), monospace;
  font-size: 12px;
}
.service-illustration-meta small {
  color: white;
  font-size: 11px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.service-illustration-status {
  align-items: center;
  bottom: 35px;
  color: rgba(255,255,255,.76);
  display: flex;
  font-size: 11px;
  font-weight: 700;
  gap: 9px;
  left: 34px;
  letter-spacing: .08em;
  position: absolute;
  text-transform: uppercase;
  z-index: 3;
}
.service-illustration-status i {
  background: var(--electric);
  border-radius: 50%;
  box-shadow: 0 0 14px rgba(24,184,236,.78);
  height: 7px;
  width: 7px;
}

.service-montage {
  align-self: center;
  aspect-ratio: 1;
  background: #0b0e17;
  border: 1px solid rgba(255,255,255,.16);
  box-shadow: 0 28px 75px rgba(0,0,0,.36);
  display: grid;
  gap: 4px;
  grid-template-columns: repeat(2,1fr);
  max-width: 560px;
  overflow: hidden;
  padding: 4px;
  position: relative;
  width: 100%;
}
.montage-panel {
  background-position: center;
  background-size: cover;
  min-width: 0;
  overflow: hidden;
  position: relative;
}
.montage-panel::after {
  background: linear-gradient(180deg, transparent 32%, rgba(7,9,15,.91));
  content: "";
  inset: 0;
  position: absolute;
}
.montage-panel i {
  background: rgba(7,9,15,.14);
  inset: 0;
  position: absolute;
}
.montage-panel b,
.montage-panel small {
  bottom: 18px;
  position: absolute;
  z-index: 2;
}
.montage-panel b {
  color: #ff4b4f;
  font-family: var(--font-geist-mono), monospace;
  font-size: 10px;
  left: 18px;
}
.montage-panel small {
  color: white;
  font-size: 10px;
  font-weight: 750;
  left: 47px;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.montage-personal { background-image: url("/service-personal.webp"); }
.montage-business { background-image: url("/service-business.webp"); }
.montage-home { background-image: url("/service-connected-home.webp"); }
.montage-systems { background-image: url("/service-custom-systems.webp"); }
.collection-montage { background: #0b0e17; }
.collection-montage-approach {
  grid-template-columns: .96fr 1.04fr;
  grid-template-rows: repeat(2, 1fr);
}
.collection-montage-approach .montage-panel:first-child {
  background-position: 72% center;
  grid-row: 1 / 3;
}
.collection-montage-approach .montage-center { box-shadow: 0 10px 28px rgba(0,0,0,.28); }
.collection-montage-experience .montage-center { box-shadow: 0 10px 28px rgba(0,0,0,.28); }
.montage-center {
  background: var(--paper-bright);
  color: var(--ink);
  font-size: 10px;
  font-weight: 800;
  left: 50%;
  letter-spacing: .08em;
  padding: 10px 13px;
  position: absolute;
  text-transform: uppercase;
  top: 50%;
  transform: translate(-50%,-50%);
  white-space: nowrap;
  z-index: 5;
}
.service-capabilities {
  background: var(--signal);
  color: white;
  display: grid;
  grid-template-columns: repeat(6,1fr);
  padding: 0 clamp(24px,5vw,76px);
}
.service-capabilities span { border-right: 1px solid rgba(255,255,255,.25); font-size: 12px; font-weight: 700; padding: 24px 15px; text-align: center; }
.service-capabilities span:first-child { border-left: 1px solid rgba(255,255,255,.25); }
.service-body { overflow: hidden; padding: 20px clamp(24px,6.5vw,104px) 80px; }
.content-section {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: clamp(35px,7vw,110px);
  grid-template-columns: minmax(100px,.35fr) minmax(0,1.65fr);
  isolation: isolate;
  padding: clamp(75px,8vw,120px) 0;
  position: relative;
}
.content-section::before {
  background:
    linear-gradient(90deg, rgba(24,184,236,.075), transparent 40%),
    linear-gradient(135deg, transparent 70%, rgba(226,37,43,.05)),
    repeating-linear-gradient(90deg, transparent 0 47px, rgba(17,19,28,.028) 48px);
  content: "";
  inset: 18px -32px;
  opacity: .75;
  position: absolute;
  z-index: -1;
}
.content-section:nth-child(even)::before {
  background:
    linear-gradient(270deg, rgba(24,184,236,.075), transparent 42%),
    linear-gradient(45deg, transparent 72%, rgba(226,37,43,.055)),
    repeating-linear-gradient(0deg, transparent 0 47px, rgba(17,19,28,.028) 48px);
  opacity: 1;
}
.content-index {
  color: var(--signal);
  font-family: var(--font-geist-mono), monospace;
  padding: 18px 0 0 18px;
  position: relative;
}
.content-index::before {
  background: var(--ink);
  content: "";
  height: 3px;
  left: 0;
  position: absolute;
  top: 0;
  width: 42px;
}
.content-index span {
  display: block;
  font-size: clamp(32px,3vw,48px);
  font-weight: 620;
  letter-spacing: -.08em;
  line-height: 1;
}
.content-index i,
.story-index i {
  border-right: 1px solid rgba(17,19,28,.2);
  border-top: 1px solid rgba(17,19,28,.2);
  display: block;
  height: 64px;
  margin-top: 20px;
  max-width: 155px;
  position: relative;
  width: 85%;
}
.content-index i::before,
.content-index i::after,
.story-index i::before,
.story-index i::after {
  background: var(--paper);
  border: 2px solid var(--electric);
  border-radius: 50%;
  content: "";
  height: 9px;
  position: absolute;
  width: 9px;
}
.content-index i::before,
.story-index i::before { left: -4px; top: -5px; }
.content-index i::after,
.story-index i::after { bottom: -4px; right: -5px; }
.content-section-2 .content-index i {
  border-left: 1px solid rgba(17,19,28,.2);
  border-right: 0;
}
.content-section-2 .content-index i::after { left: -5px; right: auto; }
.content-section-3 .content-index i { border-color: rgba(226,37,43,.28); width: 58%; }
.content-section-2 .content-index::before { background: var(--electric); }
.content-section-3 .content-index::before { background: var(--signal); width: 68px; }
.content-section h2, .case-study h2, .about-story h2 {
  font-size: clamp(38px,4.5vw,68px);
  font-weight: 620;
  letter-spacing: -.06em;
  line-height: 1;
  margin: 0 0 34px;
  max-width: 950px;
  text-wrap: balance;
}
.content-section p, .case-study p, .about-story p {
  color: var(--muted);
  font-size: 17px;
  line-height: 1.75;
  margin: 0 0 18px;
  max-width: 850px;
}
.service-list { display: grid; grid-template-columns: repeat(2,1fr); list-style: none; margin: 42px 0 0; padding: 0; }
.service-list li { border-top: 1px solid var(--line); font-size: 15px; line-height: 1.45; padding: 19px 34px 19px 0; position: relative; }
.service-list li::before { color: var(--signal); content: "↗"; margin-right: 12px; }
.service-list li:nth-child(odd) { margin-right: 32px; }
.principles-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(2,1fr); margin-top: 44px; }
.principles-grid article { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 200px; padding: 28px; }
.principles-grid h3 { font-size: 21px; letter-spacing: -.03em; margin: 0 0 15px; }
.principles-grid p { font-size: 14px; line-height: 1.65; margin: 0; }
.case-study {
  background: var(--ink);
  color: white;
  display: grid;
  gap: clamp(45px,8vw,130px);
  grid-template-columns: minmax(230px,.55fr) minmax(0,1.45fr);
  padding: clamp(90px,10vw,145px) clamp(24px,6.5vw,104px);
}
.case-study + .case-study { border-top: 1px solid rgba(255,255,255,.15); }
.case-label > span { color: rgba(255,255,255,.45); font-size: 12px; }
.case-study h2 { color: white; }
.case-study p { color: rgba(255,255,255,.62); }
.case-study-link {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.22);
  color: var(--paper-bright);
  display: inline-flex;
  font-size: 13px;
  font-weight: 750;
  gap: 12px;
  margin-top: 22px;
  padding-bottom: 8px;
}
.case-study-link span { color: #ff4b4f; font-size: 17px; transition: transform 180ms ease; }
.case-study-link:hover { border-color: #ff4b4f; }
.case-study-link:hover span { transform: translateX(5px); }
.related-section {
  background: var(--ink-soft);
  color: var(--paper-bright);
  padding: clamp(70px,7vw,105px) clamp(24px,6.5vw,104px);
}
.related-section .eyebrow-dark { color: rgba(255,255,255,.58); }
.related-heading {
  align-items: end;
  display: grid;
  gap: 30px;
  grid-template-columns: minmax(180px,.45fr) minmax(0,1.55fr);
  margin-bottom: 38px;
}
.related-heading .eyebrow { margin-bottom: 4px; }
.related-heading h2 {
  font-size: clamp(34px,3.8vw,56px);
  font-weight: 620;
  letter-spacing: -.06em;
  line-height: 1;
  margin: 0;
  text-wrap: balance;
}
.related-list {
  border-top: 1px solid rgba(255,255,255,.14);
}
.related-row {
  align-items: center;
  border-bottom: 1px solid rgba(255,255,255,.14);
  display: grid;
  gap: clamp(18px,3vw,48px);
  grid-template-columns: 58px minmax(180px,.7fr) minmax(260px,1.3fr) 28px;
  min-height: 102px;
  padding: 22px 18px;
  position: relative;
  transition: background-color 180ms ease, box-shadow 180ms ease;
}
.related-number { color: #ff4b4f; font-family: var(--font-geist-mono), monospace; font-size: 12px; }
.related-row h3 { font-size: clamp(21px,1.8vw,29px); letter-spacing: -.04em; line-height: 1.05; margin: 0; }
.related-row p { color: rgba(255,255,255,.54); font-size: 13px; line-height: 1.55; margin: 0; }
.related-row > b { color: #ff4b4f; font-size: 18px; justify-self: end; transition: transform 180ms ease; }
.related-row:hover { background: #242834; box-shadow: inset 4px 0 0 var(--signal); }
.related-row:hover p { color: rgba(255,255,255,.72); }
.related-row:hover > b { transform: translateX(4px); }

/* About */
.about-hero {
  background: var(--ink);
  color: white;
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(380px,.7fr);
  min-height: 650px;
  overflow: hidden;
  padding: clamp(100px,12vw,175px) clamp(24px,6.5vw,104px);
  position: relative;
}
.about-hero::after {
  border: 1px solid rgba(24,184,236,.28);
  border-radius: 50%;
  content: "";
  height: 620px;
  position: absolute;
  right: -160px;
  top: 30px;
  width: 620px;
}
.about-hero-copy { align-self: center; max-width: 790px; position: relative; z-index: 3; }
.about-hero h1 { max-width: 790px; position: relative; z-index: 2; }
.about-portrait {
  background-image: url("/gables-hero.png");
  background-position: 58% center;
  background-repeat: no-repeat;
  background-size: cover;
  bottom: 0;
  filter: saturate(1.05) contrast(1.02);
  mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.78) 25%, #000 52%);
  position: absolute;
  right: 0;
  top: 0;
  width: min(54vw,780px);
  z-index: 1;
}
.about-portrait::after {
  background: linear-gradient(0deg, rgba(17,19,28,.35), transparent 45%);
  content: "";
  inset: 0;
  position: absolute;
}
.about-signature { border-left: 3px solid var(--signal); display: grid; gap: 5px; margin-top: 55px; padding-left: 16px; position: relative; z-index: 2; }
.about-signature span { font-size: 17px; font-weight: 700; }
.about-signature small { color: rgba(255,255,255,.52); font-size: 11px; text-transform: uppercase; }
.about-story { padding: 20px clamp(24px,6.5vw,104px) 80px; }
.about-story > section {
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: clamp(35px,7vw,110px);
  grid-template-columns: minmax(140px,.38fr) minmax(0,1.62fr);
  isolation: isolate;
  padding: clamp(80px,9vw,135px) 0;
  position: relative;
}
.about-story > section::before {
  background: linear-gradient(110deg, rgba(24,184,236,.05), transparent 42%);
  content: "";
  inset: 18px -32px;
  opacity: .6;
  position: absolute;
  z-index: -1;
}
.about-story > section:nth-child(even)::before {
  background: linear-gradient(250deg, rgba(226,37,43,.045), transparent 42%);
}
.story-index {
  color: var(--signal-deep);
  font-family: var(--font-geist-mono), monospace;
  padding-top: 8px;
}
.story-index span {
  display: block;
  font-size: clamp(32px,3vw,48px);
  font-weight: 620;
  letter-spacing: -.08em;
  line-height: 1;
}
.story-kicker {
  color: var(--signal-deep) !important;
  font-family: var(--font-geist-mono), monospace;
  font-size: 11px !important;
  font-weight: 700;
  letter-spacing: .08em;
  margin-bottom: 20px !important;
  text-transform: uppercase;
}
.pull-quote { border-left: 4px solid var(--signal); color: var(--ink) !important; font-size: clamp(24px,2.8vw,40px) !important; font-weight: 600; letter-spacing: -.04em; line-height: 1.2 !important; margin-top: 40px !important; padding-left: 28px; }
.relationship-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3,1fr); margin-top: 40px; }
.relationship-grid article { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); padding: 26px; }
.relationship-grid h3 { font-size: 20px; letter-spacing: -.03em; margin: 0 0 14px; }
.relationship-grid p { font-size: 14px; margin: 0; }
.about-closing { background: var(--paper-bright); padding: clamp(90px,10vw,145px) clamp(24px,6.5vw,104px); }
.about-closing h2 { max-width: 1100px; }
.about-closing > p:last-child { color: var(--muted); font-size: 18px; line-height: 1.7; margin: 35px 0 0; max-width: 780px; }

@media (min-width: 1001px) {
  .service-hero {
    gap: clamp(44px,4vw,72px);
    grid-template-columns: minmax(0,1.04fr) minmax(480px,.96fr);
  }
  .service-visual,
  .service-montage {
    max-width: 660px;
  }
  .about-hero {
    grid-template-columns: minmax(0,.94fr) minmax(520px,1.06fr);
    min-height: 630px;
  }
  .about-hero-copy {
    max-width: min(760px,51vw);
  }
  .about-portrait {
    background-position: 53% center;
    width: min(67vw,980px);
    mask-image: linear-gradient(90deg, transparent 0, rgba(0,0,0,.82) 15%, #000 41%);
  }
  .about-hero::after {
    right: -105px;
  }
  .content-section::before {
    background:
      linear-gradient(90deg, rgba(24,184,236,.105), transparent 44%),
      linear-gradient(135deg, transparent 67%, rgba(226,37,43,.065)),
      repeating-linear-gradient(90deg, transparent 0 47px, rgba(17,19,28,.038) 48px);
    inset: 10px -44px;
    opacity: .92;
  }
  .content-section:nth-child(even)::before {
    background:
      linear-gradient(270deg, rgba(24,184,236,.095), transparent 46%),
      linear-gradient(45deg, transparent 69%, rgba(226,37,43,.07)),
      repeating-linear-gradient(0deg, transparent 0 47px, rgba(17,19,28,.036) 48px);
    opacity: 1;
  }
  .content-index i,
  .story-index i {
    border-color: rgba(17,19,28,.28);
    height: 76px;
    max-width: 175px;
  }
  .content-index i::before,
  .content-index i::after,
  .story-index i::before,
  .story-index i::after {
    box-shadow: 0 0 0 5px rgba(24,184,236,.055);
    height: 11px;
    width: 11px;
  }
  .content-index i::before,
  .story-index i::before {
    left: -5px;
    top: -6px;
  }
  .content-index i::after,
  .story-index i::after {
    bottom: -5px;
    right: -6px;
  }
  .content-section-2 .content-index i::after {
    left: -6px;
  }
  .content-section-3 .content-index i {
    border-color: rgba(226,37,43,.38);
  }
}

@media (max-width: 1000px) {
  .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .hero { min-height: 780px; }
  .hero-art { background-position: 63% center; }
  .hero-shade { background: linear-gradient(90deg,rgba(9,12,20,.95) 0%,rgba(9,12,20,.8) 45%,rgba(9,12,20,.18) 90%), linear-gradient(0deg,rgba(9,12,20,.55),transparent 60%); }
  .hero-content { padding-top: 105px; width: 78vw; }
  .proof-strip { grid-template-columns: repeat(2,1fr); }
  .section-heading { grid-template-columns: 1fr; }
  .approach-section { gap: 70px; grid-template-columns: 1fr; }
  .approach-intro { position: static; }
  .purchase-section { grid-template-columns: 1fr; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-card { min-height: 310px; }
  .editorial-grid, .experience-grid { grid-template-columns: 1fr; }
  .related-row {
    grid-template-columns: 50px minmax(180px,.75fr) minmax(220px,1.25fr) 26px;
  }
  .about-section { grid-template-columns: 1fr; }
  footer { grid-template-columns: 1fr 1fr; }
  footer small { grid-column: 1/-1; }
  .service-hero { grid-template-columns: 1fr; }
  .service-visual, .service-montage { justify-self: center; max-width: 470px; }
  .service-capabilities { grid-template-columns: repeat(3,1fr); }
  .case-study { grid-template-columns: 1fr; }
  .about-hero { grid-template-columns: 1fr; min-height: 720px; }
  .about-hero-copy { max-width: 72%; }
  .about-portrait { width: 72%; }
}

@media (max-width: 720px) {
  .site-header { height: 72px; }
  .brand-name { font-size: 13px; }
  .brand-mark { height: 36px; width: 39px; }
  .brand-mark::before { height: 36px; }
  .hero { min-height: 800px; }
  .hero-art { background-position: 67% center; }
  .hero-shade {
    background:
      linear-gradient(180deg,rgba(9,12,20,.08) 0%,rgba(9,12,20,.37) 44%,rgba(9,12,20,.98) 79%),
      linear-gradient(90deg,rgba(9,12,20,.45),rgba(9,12,20,.02));
  }
  .hero-content { padding-bottom: 55px; padding-top: 360px; width: 100%; }
  .hero h1 { font-size: clamp(47px,13.6vw,66px); }
  .hero-copy { font-size: 16px; line-height: 1.55; }
  .hero-note { display: none; }
  .hero-actions, .contact-buttons { align-items: stretch; flex-direction: column; }
  .button { width: 100%; }
  .proof-strip { grid-template-columns: 1fr; }
  .proof-strip div, .proof-strip div:first-child { border-left: 0; border-right: 0; border-top: 1px solid rgba(255,255,255,.22); }
  .pathways-grid { grid-template-columns: 1fr; }
  .pathway-card { min-height: 360px; padding: 28px; }
  .capabilities-line { text-align: left; }
  .approach-section { grid-template-columns: 1fr; }
  .step { grid-template-columns: 38px 1fr; }
  .proof-grid { grid-template-columns: 1fr; }
  .proof-grid h3 { margin-top: 55px; }
  .contact-actions { align-items: stretch; flex-direction: column; gap: 22px; }
  .contact-details { justify-items: start; text-align: left; }
  footer { grid-template-columns: 1fr; }
  .footer-links { justify-self: start; }
  .footer-contact { justify-items: start; text-align: left; }
  footer small { grid-column: 1; }
  .service-hero { min-height: 0; padding-top: 88px; }
  .service-hero h1, .about-hero h1, .overview-hero h1 { font-size: clamp(46px,13vw,66px); }
  .service-visual, .service-montage { margin: -15px 0; }
  .service-illustration-meta { left: 26px; top: 25px; }
  .service-illustration-status { bottom: 28px; left: 26px; }
  .montage-panel b { left: 13px; }
  .montage-panel small { left: 38px; }
  .visual-node { font-size: 9px; padding: 9px 10px; }
  .service-capabilities { grid-template-columns: repeat(2,1fr); }
  .content-section, .about-story > section { grid-template-columns: 1fr; }
  .content-section, .about-story > section { gap: 24px; }
  .content-index, .story-index { align-items: center; display: flex; gap: 20px; }
  .content-index i, .story-index i {
    border-right: 0;
    height: 1px;
    margin: 0;
    max-width: 130px;
    width: 34vw;
  }
  .content-section-2 .content-index i { border-left: 0; }
  .content-section-2 .content-index i::after { left: auto; right: -5px; }
  .service-list, .principles-grid { grid-template-columns: 1fr; }
  .service-list li:nth-child(odd) { margin-right: 0; }
  .case-study { grid-template-columns: 1fr; }
  .overview-hero { min-height: 600px; padding-top: 95px; }
  .editorial-card { min-height: 340px; padding: 28px; }
  .editorial-card h3 { margin-top: 58px; }
  .related-heading { align-items: start; grid-template-columns: 1fr; }
  .related-row {
    gap: 14px;
    grid-template-columns: 42px minmax(0,1fr) 24px;
    padding: 22px 4px;
  }
  .related-row h3 { grid-column: 2; }
  .related-row p { grid-column: 2/4; }
  .related-row > b { grid-column: 3; grid-row: 1; }
  .relationship-grid { grid-template-columns: 1fr; }
  .about-hero { min-height: 850px; padding-bottom: 380px; }
  .about-hero-copy { align-self: start; max-width: none; }
  .about-portrait {
    background-position: center 38%;
    height: 58%;
    mask-image: linear-gradient(180deg, transparent 0, rgba(0,0,0,.85) 24%, #000 58%);
    top: auto;
    width: 100%;
  }
}

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