/* The portfolio now presents two offers: the core website and an optional automation upgrade. */
.package-grid {
  grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 900px) {
  .package-grid {
    grid-template-columns: 1fr;
  }
}

.form-honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-privacy a {
  color: #aaa69e;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.contact-form button:disabled {
  cursor: wait;
  opacity: .72;
  transform: none;
}

/* Seven explicit project stages form a balanced 4 + 3 sequence on wide screens. */
.process-grid li:nth-child(4n) {
  border-right: 0;
}

.process-grid li:nth-child(n + 5) {
  border-top: 1px solid rgba(255, 255, 255, .16);
}

@media (max-width: 900px) {
  .process-grid li:nth-child(4n) {
    border-right: 1px solid rgba(255, 255, 255, .16);
  }

  .process-grid li:nth-child(even) {
    border-right: 0;
  }

  .process-grid li:nth-child(n + 3) {
    border-top: 0;
  }
}

@media (max-width: 560px) {
  .process-grid li,
  .process-grid li:nth-child(4n) {
    border-right: 0;
  }

  .process-grid li:nth-child(n + 2) {
    border-top: 0;
  }
}

/* Keep the hero proof row and closing detail in separate layout space at every width. */
.hero-footer {
  position: relative;
  right: auto;
  bottom: auto;
  left: auto;
  margin-top: 18px;
}

/* Quiet studio lighting behind the hero system—not a tech effect. */
.system-visual::before {
  content: "";
  position: absolute;
  inset: -22%;
  z-index: 0;
  opacity: .72;
  background: radial-gradient(ellipse at 30% 35%, rgba(218, 159, 102, .15), transparent 22%), radial-gradient(ellipse at 75% 62%, rgba(165, 187, 186, .10), transparent 32%);
  filter: blur(18px);
  animation: studio-light 16s ease-in-out infinite alternate;
  pointer-events: none;
}

.system-visual > * { z-index: 1; }

@keyframes studio-light {
  from { transform: translate3d(-2%, -1%, 0) scale(1); }
  to { transform: translate3d(3%, 2%, 0) scale(1.08); }
}

.hero-accent-reveal { display: inline-block; overflow: hidden; margin: -.13em 0 -.08em; padding: .13em 0 .08em; vertical-align: bottom; }
.hero-accent-reveal > span { display: inline-block; animation: accent-reveal 1.1s .35s cubic-bezier(.2,.75,.2,1) both; }

@keyframes accent-reveal {
  from { opacity: 0; transform: translateY(108%); filter: blur(4px); }
  to { opacity: 1; transform: translateY(0); filter: blur(0); }
}

/* A measured line of proof between the introduction and the service offer. */
.proof-line {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 0 clamp(20px, 6vw, 95px) 84px;
  color: #777269;
  font: 500 9px var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.proof-line i {
  flex: 1;
  min-width: 22px;
  height: 1px;
  overflow: hidden;
  background: rgba(21, 21, 19, .16);
}

.proof-line i::after {
  content: "";
  display: block;
  width: 34%;
  height: 100%;
  background: var(--accent);
  animation: proof-line-move 5.5s ease-in-out infinite;
}

@keyframes proof-line-move {
  0%, 100% { transform: translateX(-115%); }
  50% { transform: translateX(310%); }
}

.principles {
  display: grid;
  grid-template-columns: .78fr 1.22fr;
  gap: clamp(50px, 9vw, 150px);
  padding: 0 clamp(20px, 8vw, 130px) 72px;
  overflow: hidden;
}

.principles + .services {
  position: relative;
  padding-top: 82px;
}

.principles + .services::before {
  content: "";
  position: absolute;
  top: 34px;
  left: clamp(20px, 6vw, 95px);
  right: clamp(20px, 6vw, 95px);
  height: 1px;
  background: linear-gradient(90deg, var(--accent), rgba(21, 21, 19, .16) 24%, rgba(21, 21, 19, .16));
}

.principles-intro h2 {
  margin: 0;
  font: 400 clamp(42px, 4.7vw, 70px)/.96 var(--serif);
  letter-spacing: -.045em;
}

.principles-intro h2 em { color: var(--accent); font-weight: 400; }
.principles-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); }
.principle { min-height: 280px; padding: 25px 22px 0; border-right: 1px solid var(--line); }
.principle:last-child { border-right: 0; }
.principle > span { color: var(--accent); font: 9px var(--mono); letter-spacing: .1em; }
.principle h3 { margin: 62px 0 18px; font: 400 clamp(27px, 2.5vw, 38px)/1 var(--serif); letter-spacing: -.04em; }
.principle p { margin: 0; color: #67635c; font-size: 12px; line-height: 1.7; }

/* Editorial photography and captioning remain secondary to the project itself. */
.project-visual::before { transition: opacity .5s ease; }
.project-photo { transform-origin: 68% 58%; }
.project-editorial-caption {
  position: absolute;
  z-index: 4;
  right: 18px;
  bottom: 17px;
  padding: 7px 9px;
  color: rgba(255,255,255,.9);
  background: rgba(17, 17, 15, .72);
  border: 1px solid rgba(255,255,255,.2);
  font: 500 7px var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(7px);
  transition: opacity .3s ease, transform .4s cubic-bezier(.2,.75,.2,1);
}

.project-card[data-project-href]:hover .project-editorial-caption,
.project-card[data-project-href]:focus-within .project-editorial-caption { opacity: 1; transform: translateY(0); }

.demo-opening {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-content: center;
  gap: 8px;
  color: var(--ivory);
  background: rgba(14,14,13,.96);
  opacity: 0;
  pointer-events: none;
  transition: opacity .26s ease;
}

.demo-opening.visible { opacity: 1; }
.demo-opening span { color: var(--accent); font: 9px var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.demo-opening strong { font: 400 clamp(38px, 5vw, 68px)/.9 var(--serif); letter-spacing: -.04em; }
.demo-opening i { color: var(--accent); font-style: normal; font-size: 25px; }

.founder-note {
  display: flex;
  align-items: center;
  gap: 20px;
  width: fit-content;
  margin: 38px 0 5px;
  padding: 12px 0 12px 15px;
  border-left: 1px solid var(--accent);
}

.founder-signature { font: 400 31px/1 var(--serif); font-style: italic; letter-spacing: -.055em; }
.founder-note p { margin: 0 !important; color: #6e6961; font: 500 8px/1.55 var(--mono) !important; letter-spacing: .1em; text-transform: uppercase; }

.contact-guidance {
  min-height: 20px;
  margin: -5px 0 22px;
  padding-left: 13px;
  border-left: 1px solid var(--accent);
  color: #aaa69e;
  font: 400 14px/1.45 var(--serif);
  transition: opacity .25s ease;
}

/* Project images reveal slowly while headings remain reliably visible. */
.project-card.reveal .project-visual { clip-path: inset(0 0 100% 0); transition: clip-path .9s cubic-bezier(.2,.75,.2,1); }
.project-card.reveal.visible .project-visual { clip-path: inset(0 0 0 0); }
.project-card.reveal:nth-child(2) { transition-delay: .1s; }
.project-card.reveal:nth-child(3) { transition-delay: .2s; }
.principle.reveal:nth-child(2) { transition-delay: .1s; }
.principle.reveal:nth-child(3) { transition-delay: .2s; }

@media (max-width: 900px) {
  .proof-line { padding: 0 25px 68px; }
  .principles { grid-template-columns: 1fr; gap: 42px; padding: 0 25px 64px; }
  .principles + .services { padding-top: 72px; }
  .principles + .services::before { top: 28px; left: 25px; right: 25px; }
  .principles-grid { max-width: 680px; }
}

@media (max-width: 620px) {
  .proof-line { gap: 9px; padding-bottom: 58px; font-size: 7px; letter-spacing: .08em; }
  .proof-line i { min-width: 12px; }
  .principles-grid { grid-template-columns: 1fr; }
  .principle { min-height: 0; padding: 23px 0 28px; border-right: 0; border-bottom: 1px solid var(--line); }
  .principle:last-child { border-bottom: 0; }
  .principle h3 { margin: 32px 0 12px; }
  .founder-note { margin-top: 30px; }
  .project-editorial-caption { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .system-visual::before,
  .hero-accent-reveal > span,
  .proof-line i::after { animation: none; }
  .project-card.reveal .project-visual { clip-path: none; transition: none; }
}

.project-photo {
  object-fit: cover;
  object-position: center;
  transition: transform .7s cubic-bezier(.2,.75,.2,1), filter .45s ease;
}

/* Project previews should feel like polished, touchable demo windows. */
.project-visual::after {
  content: "";
  position: absolute;
  width: 74%;
  height: 18%;
  bottom: 6%;
  left: 13%;
  border-radius: 50%;
  background: rgba(0, 0, 0, .42);
  filter: blur(22px);
  transform: translateY(22px);
  z-index: 0;
  pointer-events: none;
}

.browser-mockup,
.phone-mockup {
  position: relative;
  z-index: 1;
  transition: transform .6s cubic-bezier(.2,.75,.2,1), box-shadow .45s ease;
}

.browser-mockup {
  outline: 1px solid rgba(255,255,255,.18);
  outline-offset: 3px;
}

.phone-mockup {
  outline: 1px solid rgba(255,255,255,.12);
  outline-offset: 3px;
}

.project-card[data-project-href] .project-visual {
  cursor: pointer;
}

.project-card[data-project-href]:hover .project-photo,
.project-card[data-project-href]:focus-within .project-photo {
  transform: scale(1.075);
}

.project-card[data-project-href]:hover .browser-mockup,
.project-card[data-project-href]:focus-within .browser-mockup {
  transform: rotate(-.5deg) translateY(-8px);
  box-shadow: 0 42px 76px rgba(0,0,0,.44);
}

.project-card[data-project-href]:hover .phone-mockup,
.project-card[data-project-href]:focus-within .phone-mockup {
  transform: rotate(5deg) translate(4px, -7px);
  box-shadow: 0 30px 45px rgba(0,0,0,.4);
}

.project-preview-cue {
  position: absolute;
  z-index: 4;
  top: 9%;
  right: 10%;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 9px 11px 9px 8px;
  color: #f5f1e9;
  background: rgba(21, 21, 19, .88);
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 24px rgba(0,0,0,.18);
  font: 500 8px var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
  opacity: 0;
  transform: translate(-10px, 8px);
  transition: opacity .3s ease, transform .4s cubic-bezier(.2,.75,.2,1);
  pointer-events: none;
}

.project-preview-cue i {
  display: grid;
  width: 20px;
  height: 20px;
  place-items: center;
  border: 1px solid rgba(255,255,255,.38);
  border-radius: 50%;
  color: var(--accent);
  font: normal 13px/1 var(--sans);
  animation: preview-cursor 2.6s ease-in-out infinite;
}

.project-card[data-project-href]:hover .project-preview-cue,
.project-card[data-project-href]:focus-within .project-preview-cue {
  opacity: 1;
  transform: translate(0, 0);
}

@keyframes preview-cursor {
  0%, 100% { transform: translate(0, 0); }
  50% { transform: translate(2px, -2px); }
}

@media (prefers-reduced-motion: reduce) {
  .project-photo,
  .browser-mockup,
  .phone-mockup,
  .project-preview-cue { transition: none; }
  .project-preview-cue i { animation: none; }
}

.project-workshop .project-visual {
  background: linear-gradient(135deg, #111d25, #314550 54%, #d39252);
}

.project-workshop .project-visual::before,
.project-restaurant .project-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: .32;
  background-image: repeating-linear-gradient(0deg, rgba(255,255,255,.06) 0 1px, transparent 1px 5px);
}

.project-workshop .browser-mockup {
  border-color: #0e171d;
  box-shadow: 0 35px 65px rgba(0, 0, 0, .48);
}

.project-workshop .demo-site {
  background: #17242d;
  color: #f4eee2;
}

.project-workshop .mock-button {
  background: #d88d4a;
}

.project-workshop .project-photo {
  filter: saturate(.88) contrast(1.08);
}

.project-restaurant .project-visual {
  background: linear-gradient(135deg, #301916, #783329 58%, #c38448);
}

.project-restaurant .browser-mockup {
  border-color: #2d1713;
}

.project-restaurant .demo-site {
  background: #271713;
  color: #f5e8d6;
}

.project-restaurant .mock-button {
  background: #c66b42;
}

.project-restaurant .project-photo {
  filter: saturate(1.06) contrast(1.04);
}

.project-nails .project-visual {
  background: linear-gradient(135deg, #e4d7d0, #c7a49c 52%, #79575c);
}

.project-nails .browser-mockup {
  border-color: #5a4247;
}

.project-nails .demo-site {
  background: #f6ede8;
  color: #4c3036;
}

.project-nails .mock-button {
  background: #9a5f6b;
}

.project-nails .mock-image {
  background: radial-gradient(circle at 35% 28%, #f6dfd5 0 12%, transparent 13%), radial-gradient(circle at 58% 40%, #ba7482 0 15%, transparent 16%), radial-gradient(circle at 75% 72%, #69484f 0 17%, transparent 18%), linear-gradient(135deg, #eacbc5, #91626b);
  border-radius: 52% 0 0 0;
}

.project-card-static .project-visual {
  cursor: default;
}

.project-copy .project-outcome {
  margin: -12px 0 28px;
  padding: 14px 0 0 16px;
  border-left: 1px solid var(--accent);
  color: #d9d5cd;
  font: 400 18px/1.35 var(--serif);
}

.project-outcome span {
  display: block;
  margin-bottom: 5px;
  color: var(--accent);
  font: 500 8px var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.project-coming-soon {
  cursor: default;
  opacity: .62;
}

/* A focused signal that the work is made for familiar local-business needs. */
.industries {
  padding: 0 clamp(20px, 6vw, 95px) 120px;
}

.industries-heading {
  display: grid;
  grid-template-columns: 1fr minmax(260px, 410px);
  gap: 40px 50px;
  align-items: end;
  margin-bottom: 48px;
}

.industries-heading .kicker {
  grid-column: 1 / -1;
  margin: 0 0 -12px;
}

.industries-heading h2 {
  margin: 0;
  font: 400 clamp(42px, 4.7vw, 68px) / .95 var(--serif);
  letter-spacing: -.045em;
}

.industries-heading h2 em { color: var(--accent); font-weight: 400; }

.industries-heading > p:last-child {
  max-width: 410px;
  margin: 0;
  color: #68655e;
  line-height: 1.7;
}

.industry-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
}

.industry-tile {
  position: relative;
  min-height: 265px;
  padding: 26px 28px;
  overflow: hidden;
  border-right: 1px solid var(--line);
  background: #e9e5dc;
  transition: color .3s ease, transform .3s ease;
  isolation: isolate;
}

.industry-tile:last-child { border-right: 0; }
.industry-tile > span { position: relative; z-index: 3; color: #8b5742; font: 10px var(--mono); letter-spacing: .1em; }
.industry-tile > i { position: absolute; z-index: 3; top: 25px; right: 27px; font-style: normal; font-size: 18px; transition: transform .3s ease; }
.industry-tile h3 { position: relative; z-index: 2; margin: 66px 0 17px; font: 400 clamp(31px, 3vw, 43px) / .86 var(--serif); letter-spacing: -.045em; }
.industry-tile p { position: relative; z-index: 2; max-width: 230px; margin: 0; color: #68655e; font-size: 12px; line-height: 1.65; transition: color .3s ease; }

.industry-tile::before {
  content: "";
  position: absolute;
  width: 230px;
  height: 210px;
  right: -45px;
  bottom: -65px;
  border-radius: 50%;
  opacity: .2;
  background: radial-gradient(circle, rgba(255,255,255,.85), rgba(255,255,255,0) 68%);
  transition: transform .55s cubic-bezier(.2,.75,.2,1);
  pointer-events: none;
}

.industry-auto { background: #dbe0df; }
.industry-plumbing { background: #d7e4e5; }
.industry-electric { background: #e7dfc8; }

.industry-art {
  position: absolute;
  z-index: 1;
  right: 14px;
  bottom: 10px;
  width: 190px;
  height: 160px;
  opacity: .16;
  transform: translate3d(18px, 14px, 0) rotate(2deg) scale(.94);
  transform-origin: 70% 75%;
  transition: opacity .38s ease, transform .6s cubic-bezier(.2,.75,.2,1);
  pointer-events: none;
}

.industry-art > span { position: absolute; display: block; }

/* Auto repair: a garage bay, open-ended wrench, and detailed wheel. */
.auto-garage {
  right: 4px;
  bottom: 8px;
  width: 156px;
  height: 108px;
  border: 1px solid rgba(228,235,233,.42);
  border-bottom: 0;
  background: repeating-linear-gradient(0deg, transparent 0 20px, rgba(228,235,233,.13) 21px 22px);
  clip-path: polygon(13% 0, 87% 0, 100% 16%, 100% 100%, 0 100%, 0 16%);
}

.auto-wrench {
  right: 86px;
  bottom: 40px;
  width: 92px;
  height: 12px;
  border-radius: 10px;
  background: #dfe5e2;
  transform: rotate(-38deg);
  box-shadow: 0 4px 12px rgba(9,18,21,.2);
}

.auto-wrench::before {
  content: "";
  position: absolute;
  left: -17px;
  top: -7px;
  width: 22px;
  height: 22px;
  border: 5px solid #dfe5e2;
  border-radius: 50%;
}

.auto-wrench::after {
  content: "";
  position: absolute;
  right: -17px;
  top: -9px;
  width: 25px;
  height: 28px;
  background: #dfe5e2;
  clip-path: polygon(0 30%, 42% 42%, 76% 0, 100% 14%, 82% 58%, 100% 89%, 77% 100%, 43% 68%, 0 78%);
}

.auto-tire {
  right: 6px;
  bottom: 0;
  width: 94px;
  height: 94px;
  border: 13px solid #17272d;
  border-radius: 50%;
  background: radial-gradient(circle, #d5ddd9 0 12%, #66777b 13% 25%, #263a41 26% 31%, #d5ddd9 32% 38%, #263a41 39%);
  box-shadow: inset 0 0 0 2px #7e8e91, 0 14px 24px rgba(9,18,21,.32);
  transform: rotate(7deg);
}

.auto-tire::before {
  content: "";
  position: absolute;
  inset: -10px;
  border: 3px dashed rgba(219,226,223,.45);
  border-radius: 50%;
}

/* Plumbing: a pipe run, faucet, and water drop. */
.plumbing-pipe { right: 4px; bottom: 10px; width: 145px; height: 95px; border: 14px solid #315866; border-top: 0; border-radius: 0 0 28px 28px; }
.plumbing-pipe::before { content: ""; position: absolute; left: 52px; top: -46px; width: 14px; height: 53px; background: #315866; }
.plumbing-faucet { right: 48px; bottom: 67px; width: 78px; height: 26px; border: 10px solid #e3f0ed; border-bottom: 0; border-radius: 30px 30px 0 0; transform: rotate(-5deg); box-shadow: 0 12px 18px rgba(23,58,68,.2); }
.plumbing-faucet::after { content: ""; position: absolute; right: -23px; top: 14px; width: 24px; height: 14px; border: 8px solid #e3f0ed; border-left: 0; border-radius: 0 14px 14px 0; }
.plumbing-drop { right: 23px; bottom: 25px; width: 25px; height: 34px; background: #55a6bf; border-radius: 60% 60% 65% 65% / 70% 70% 40% 40%; transform: rotate(45deg); box-shadow: 0 8px 14px rgba(25,88,109,.25); }

/* Electrical: a service panel, lightning bolt, and cable. */
.electric-panel { right: 24px; bottom: 8px; width: 116px; height: 122px; border: 7px solid #475248; background: repeating-linear-gradient(0deg, transparent 0 19px, rgba(71,82,72,.35) 20px 22px), #d9c98e; box-shadow: 10px 12px 0 rgba(75,66,29,.16); transform: rotate(3deg); }
.electric-panel::before { content: "SERVICE"; position: absolute; top: 13px; left: 12px; color: #475248; font: 700 8px var(--mono); letter-spacing: .11em; }
.electric-bolt { right: 72px; bottom: 34px; width: 41px; height: 77px; background: #f3bc42; clip-path: polygon(55% 0, 100% 0, 66% 39%, 100% 39%, 24% 100%, 43% 54%, 10% 54%); filter: drop-shadow(0 7px 6px rgba(107,76,10,.2)); transform: rotate(6deg); }
.electric-cable { right: 4px; bottom: 16px; width: 111px; height: 86px; border: 8px solid #32424a; border-left: 0; border-bottom: 0; border-radius: 0 90px 0 0; transform: rotate(23deg); }

.industry-tile:hover,
.industry-tile:focus-visible { color: var(--ivory); transform: translateY(-4px); }
.industry-auto:hover,.industry-auto:focus-visible { background: #263b43; }
.industry-plumbing:hover,.industry-plumbing:focus-visible { background: #305b69; }
.industry-electric:hover,.industry-electric:focus-visible { background: #665c32; }
.industry-tile:hover p,.industry-tile:focus-visible p { color: rgba(255,255,255,.76); }
.industry-tile:hover > span,.industry-tile:focus-visible > span { color: #e2a270; }
.industry-tile:hover > i,.industry-tile:focus-visible > i { transform: translate(4px,-4px); }
.industry-tile:hover::before,.industry-tile:focus-visible::before { transform: scale(1.18) translate(-12px,-9px); }
.industry-tile:hover .industry-art,.industry-tile:focus-visible .industry-art { opacity: .92; transform: translate3d(0,0,0) rotate(0) scale(1); }

@media (prefers-reduced-motion: reduce) {
  .industry-tile,
  .industry-tile > i,
  .industry-tile::before,
  .industry-art { transition: none; }
  .industry-tile:hover,
  .industry-tile:focus-visible { transform: none; }
  .industry-tile:hover::before,
  .industry-tile:focus-visible::before { transform: none; }
  .industry-art { transform: none; }
}

@media (max-width: 800px) {
  .industries { padding: 0 25px 90px; }
  .industries-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 35px; }
  .industries-heading .kicker { grid-column: auto; margin: 0; }
  .industry-grid { grid-template-columns: 1fr; }
  .industry-tile { min-height: 210px; border-right: 0; border-bottom: 1px solid var(--line); }
  .industry-tile:last-child { border-bottom: 0; }
  .industry-tile h3 { margin-top: 42px; }
  .industry-tile > i { display: none; }
  .diagonal-arrow { display: none !important; }
  .project-preview-cue,
  .project-demo-link > span,
  .phone-screen strong { display: none; }
}

/* Section atmospheres: quiet full-bleed texture gives each major moment its own place. */
.manifesto,
.work,
.automation,
.process,
.about,
.contact {
  position: relative;
  isolation: isolate;
  overflow: hidden;
}

.manifesto > *,
.work > *,
.automation > *,
.process > *,
.about > *,
.contact > * {
  position: relative;
  z-index: 1;
}

/* Warm paper, kept almost imperceptible behind the opening statement. */
.manifesto::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .48;
  background:
    repeating-linear-gradient(8deg, transparent 0 5px, rgba(73, 58, 42, .025) 5px 6px),
    radial-gradient(circle at 12% 18%, rgba(181, 137, 92, .16), transparent 27%),
    radial-gradient(circle at 84% 72%, rgba(80, 69, 54, .09), transparent 32%);
}

/* Blueprint geometry supports the "built around business needs" idea. */
.work::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .3;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(135deg, transparent 49.8%, rgba(201,118,80,.18) 50%, transparent 50.2%);
  background-size: 72px 72px, 72px 72px, 420px 420px;
  background-position: -20px -10px, -20px -10px, 82% 10%;
}

/* Faint contour lines make the systems section feel mapped rather than decorative. */
.automation::before {
  content: "";
  position: absolute;
  width: min(760px, 72vw);
  aspect-ratio: 1;
  right: -18%;
  top: 50%;
  transform: translateY(-50%) rotate(-12deg);
  border-radius: 43% 57% 48% 52% / 54% 39% 61% 46%;
  opacity: .34;
  background:
    repeating-radial-gradient(ellipse at 52% 48%, transparent 0 28px, rgba(101, 87, 66, .14) 29px 30px, transparent 31px 48px);
  pointer-events: none;
}

/* A precise technical grid sits very low in the process background. */
.process::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .42;
  background:
    linear-gradient(90deg, transparent 49.93%, rgba(255,255,255,.08) 50%, transparent 50.07%),
    repeating-linear-gradient(0deg, transparent 0 94px, rgba(255,255,255,.035) 95px 96px);
  background-size: 100% 100%, 100% 96px;
}

/* Soft architectural light lends the founder section depth without competing with the portrait. */
.about::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .56;
  background:
    linear-gradient(116deg, transparent 0 61%, rgba(184, 145, 101, .12) 61.2% 66%, transparent 66.2%),
    linear-gradient(116deg, transparent 0 69%, rgba(37, 35, 29, .06) 69.2% 74%, transparent 74.2%),
    radial-gradient(ellipse at 88% 22%, rgba(212, 172, 119, .16), transparent 34%);
}

/* The final section has a dim, blurred studio glow instead of a literal image. */
.contact::before {
  content: "";
  position: absolute;
  width: min(820px, 80vw);
  height: 540px;
  right: -20%;
  bottom: -42%;
  z-index: 0;
  opacity: .48;
  filter: blur(18px);
  background:
    radial-gradient(circle at 32% 36%, rgba(201,118,80,.48), transparent 18%),
    radial-gradient(circle at 59% 52%, rgba(216, 201, 159, .16), transparent 24%),
    radial-gradient(circle at 72% 45%, rgba(112, 82, 54, .34), transparent 38%);
  pointer-events: none;
}

@media (max-width: 700px) {
  .work::before { background-size: 52px 52px, 52px 52px, 280px 280px; }
  .automation::before { width: 130vw; right: -48%; opacity: .23; }
  .contact::before { right: -50%; width: 130vw; opacity: .35; }
}

/* Local portfolio refinement: clearer hierarchy, tighter proof, fewer full-height sections. */
html,
body { overflow-x: clip; }

.industries { padding-top: 120px; }

.service-principles {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: -22px 0 64px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.service-principles p {
  min-height: 112px;
  margin: 0;
  padding: 24px 28px 24px 0;
  border-right: 1px solid var(--line);
  color: #6b675f;
  font-size: 13px;
  line-height: 1.55;
}

.service-principles p + p { padding-left: 28px; }
.service-principles p:last-child { border-right: 0; }
.service-principles span,
.service-principles strong { display: block; }
.service-principles span { margin-bottom: 12px; color: var(--accent); font: 500 10px var(--mono); }
.service-principles strong { margin-bottom: 5px; color: var(--ink); font: 400 25px var(--serif); }

.project-visual-link { cursor: pointer; }
.project-visual-link:focus-visible { outline: 3px solid var(--accent); outline-offset: 6px; }
.project-visual-link:hover .project-photo,
.project-visual-link:focus-visible .project-photo { transform: scale(1.075); }
.project-visual-link:hover .browser-mockup,
.project-visual-link:focus-visible .browser-mockup { transform: rotate(-.5deg) translateY(-8px); box-shadow: 0 42px 76px rgba(0,0,0,.44); }
.project-visual-link:hover .phone-mockup,
.project-visual-link:focus-visible .phone-mockup { transform: rotate(5deg) translate(4px, -7px); box-shadow: 0 30px 45px rgba(0,0,0,.4); }
.project-visual-link:hover .project-preview-cue,
.project-visual-link:focus-visible .project-preview-cue,
.project-visual-link:hover .project-editorial-caption,
.project-visual-link:focus-visible .project-editorial-caption { opacity: 1; transform: translate(0, 0); }

.project-copy .project-outcome { margin-bottom: 24px; }
.project-case-study { margin: 0 0 22px; border-top: 1px solid rgba(255,255,255,.14); }
.project-case-study > div { padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.project-case-study dt { margin-bottom: 5px; color: var(--accent); font: 500 10px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.project-case-study dd { margin: 0; color: #b7b3aa; font-size: 12px; line-height: 1.55; }
.project-assurance { margin: 0 0 28px !important; padding-left: 14px; border-left: 2px solid #668a76; color: #aaa69d !important; font: 11px/1.55 var(--sans) !important; }

.automation-compact {
  grid-template-columns: minmax(0, .9fr) minmax(320px, 1.1fr);
  gap: clamp(60px, 9vw, 130px);
  padding-top: 100px;
  padding-bottom: 100px;
}
.automation-compact .automation-copy > p:not(.kicker) { margin: 28px 0 22px; }
.automation-options { position: relative; z-index: 1; list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.automation-options li { display: flex; align-items: center; min-height: 70px; padding: 14px 0; border-bottom: 1px solid var(--line); font: 400 clamp(19px, 2vw, 27px) var(--serif); }
.automation-options li span { margin-right: 20px; color: var(--accent); font: 400 16px var(--sans); }

.package-card { min-height: 550px; }
.price-label { display: grid; gap: 6px; }
.price-label strong { color: var(--ink); font: 400 25px/1.1 var(--serif); text-transform: none; letter-spacing: -.02em; }
.price-label span { color: #706c64; font: 500 9px/1.5 var(--mono); letter-spacing: .07em; }

.care-plan-heading { display: grid; grid-template-columns: 1fr minmax(260px, 410px); gap: 50px; align-items: end; margin: 100px 0 45px; }
.care-plan-heading h3 { margin: 0; font: 400 clamp(38px, 4.2vw, 61px)/.98 var(--serif); letter-spacing: -.04em; }
.care-plan-heading > p { max-width: 410px; margin: 0; color: #68655e; line-height: 1.7; }
.care-plan-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); }
.care-plan-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 42px; border-right: 1px solid var(--line); }
.care-plan-card:last-child { border-right: 0; }
.care-plan-card.recommended { background: #ded8cc; box-shadow: inset 0 4px 0 var(--accent); }
.recommended-badge { position: absolute; top: 22px; right: 22px; padding: 7px 9px; background: var(--accent); color: #fff; font: 500 9px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.care-plan-eyebrow { margin: 0 0 20px; color: #8b5742; font: 500 9px var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.care-plan-card h3 { max-width: 78%; margin: 0 0 18px; font: 400 clamp(30px, 3vw, 42px)/1 var(--serif); }
.care-plan-price { padding: 13px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); font: 400 27px/1.1 var(--serif); }
.care-plan-summary { min-height: 66px; margin: 24px 0; color: #68645d; font-size: 13px; line-height: 1.65; }
.care-plan-card ul { flex: 1; margin: 0 0 34px; padding: 0; list-style: none; }
.care-plan-card li { position: relative; padding: 11px 0 11px 18px; border-bottom: 1px solid var(--line); color: #4f4c46; font-size: 12px; line-height: 1.55; }
.care-plan-card li::before { content: "+"; position: absolute; left: 0; color: var(--accent); }
.care-plan-card .button { align-self: flex-start; }
.small-update-definition { display: grid; grid-template-columns: repeat(2, 1fr); border-bottom: 1px solid var(--line); }
.small-update-definition p { margin: 0; padding: 26px 28px 26px 0; color: #59564f; font: 400 16px/1.55 var(--serif); }
.small-update-definition p + p { padding-left: 28px; border-left: 1px solid var(--line); }
.small-update-definition span { display: block; margin-bottom: 9px; color: #8b5742; font: 500 9px var(--mono); letter-spacing: .09em; text-transform: uppercase; }

.support-strip { display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 54px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.support-strip p { min-height: 118px; margin: 0; padding: 25px 28px 25px 0; border-right: 1px solid var(--line); color: #4f4c46; font: 400 18px/1.45 var(--serif); }
.support-strip p + p { padding-left: 28px; }
.support-strip p:last-child { border-right: 0; }
.support-strip span { display: block; margin-bottom: 10px; color: #8b5742; font: 500 10px var(--mono); letter-spacing: .09em; text-transform: uppercase; }
.support-note { max-width: 760px; margin: 18px 0 0; color: #777269; font: 10px/1.6 var(--mono); letter-spacing: .06em; text-transform: uppercase; }

.studio-faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(60px, 8vw, 120px); padding: 105px clamp(20px,8vw,130px); border-top: 1px solid var(--line); }
.studio-faq h2 { margin: 0; font: 400 clamp(42px, 4.8vw, 70px)/.98 var(--serif); letter-spacing: -.045em; }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 23px 42px 23px 0; cursor: pointer; list-style: none; font: 400 20px/1.35 var(--serif); }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; right: 4px; color: var(--accent); font: 400 20px var(--sans); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list p { max-width: 620px; margin: -5px 44px 23px 0; color: #66625b; font-size: 13px; line-height: 1.7; }

/* Keep secondary information comfortably readable on real devices. */
.hero-footer,
.project-editorial-caption,
.project-preview-cue,
.demo-label,
.project-outcome span,
.contact-meta span,
.contact-meta small,
.form-footer p,
.footer-base { font-size: 10px; }

@media (max-width: 900px) {
  .industries { padding-top: 90px; }
  .service-principles { margin-top: 0; }
  .automation-compact,
  .studio-faq { grid-template-columns: 1fr; gap: 48px; }
  .care-plan-heading { grid-template-columns: 1fr; gap: 25px; margin-top: 78px; }
  .care-plan-grid { grid-template-columns: 1fr; }
  .care-plan-card { border-right: 0; border-bottom: 1px solid var(--line); }
  .care-plan-card:last-child { border-bottom: 0; }
  .small-update-definition { grid-template-columns: 1fr; }
  .small-update-definition p { padding: 24px 0; }
  .small-update-definition p + p { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .support-strip { grid-template-columns: 1fr; }
  .support-strip p { min-height: 0; padding: 22px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .support-strip p + p { padding-left: 0; }
  .support-strip p:last-child { border-bottom: 0; }
}

@media (max-width: 620px) {
  .service-principles { grid-template-columns: 1fr; margin-bottom: 48px; }
  .service-principles p,
  .service-principles p + p { min-height: 0; padding: 19px 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .service-principles p:last-child { border-bottom: 0; }
  .automation-compact { grid-template-columns: minmax(0, 1fr); padding-top: 78px; padding-bottom: 78px; }
  .care-plan-card { padding: 34px 24px; }
  .recommended-badge { top: 18px; right: 18px; }
  .project-case-study dd { font-size: 13px; }
  .project-assurance { font-size: 12px !important; }
  .studio-faq { padding-top: 80px; padding-bottom: 80px; }
}

/* Review revision: faster first paint and a shorter route to the inquiry form. */
.hero .reveal {
  opacity: 1;
  transform: none;
  transition: none;
}

.hero-accent-reveal > span {
  animation-duration: .6s;
  animation-delay: .08s;
}

.hero-founder-note {
  max-width: 520px;
  margin: -8px 0 28px;
  padding-left: 13px;
  border-left: 1px solid var(--accent);
  color: #b8b3aa;
  font: 400 14px/1.55 var(--serif);
}

.hero-founder-note strong { color: var(--ivory); font-weight: 500; }

/* Keep the Plumbing and Electrical cards as intentional visual peers to Auto Repair. */
.industry-plumbing .industry-art,
.industry-electric .industry-art { opacity: .52; }

.industry-plumbing .industry-art > span,
.industry-electric .industry-art > span { display: block !important; }

@media (max-width: 560px) {
  .hero-founder-note { margin-top: -4px; font-size: 13px; }
}

.industries {
  padding-top: 90px;
  padding-bottom: 90px;
}

.services,
.work,
.process,
.packages {
  padding-top: 92px;
  padding-bottom: 92px;
}

.automation-compact,
.about,
.contact {
  padding-top: 92px;
  padding-bottom: 92px;
}

.section-heading { margin-bottom: 58px; }
.care-plan-heading { margin-top: 70px; }
.care-plan-summary { min-height: 0; }
.support-strip { margin-top: 40px; }
.studio-faq { padding-top: 82px; padding-bottom: 82px; }
.process-grid li { min-height: 245px; }

@media (max-width: 900px) {
  .industries,
  .services,
  .work,
  .process,
  .packages,
  .automation-compact,
  .about,
  .contact,
  .studio-faq {
    padding-top: 72px;
    padding-bottom: 72px;
  }

  .process-grid li { min-height: 175px; }
  .care-plan-heading { margin-top: 54px; }
}


/* Desktop hero alignment and compact founder proof. */
@media (min-width: 1200px) {
  .hero-copy {
    transform: translateX(clamp(28px, 3vw, 52px));
  }
}

@media (min-width: 901px) {
  .about {
    grid-template-columns: minmax(220px, 280px) minmax(0, 620px);
    justify-content: center;
    gap: clamp(54px, 7vw, 108px);
  }

  .portrait {
    width: min(100%, 280px);
    height: 280px;
    justify-self: end;
  }
}

@media (max-width: 900px) {
  .portrait {
    width: min(100%, 260px);
    height: 260px;
    justify-self: start;
  }
}

@media (max-width: 560px) {
  .portrait {
    width: min(100%, 228px);
    height: 228px;
  }
}

/* Makes the outreach offer concrete before visitors assess the portfolio work. */
.walkthrough-brief {
  display: grid;
  grid-template-columns: minmax(250px, .62fr) minmax(0, 1.38fr);
  gap: clamp(38px, 7vw, 108px);
  align-items: start;
  padding: 66px clamp(25px, 8vw, 130px);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.walkthrough-brief .kicker { margin-bottom: 15px; }
.walkthrough-brief h2 {
  margin: 0;
  font: 400 clamp(33px, 3.8vw, 54px)/.98 var(--serif);
  letter-spacing: -.045em;
}
.walkthrough-brief h2 em { color: var(--accent); font-weight: 400; }
.walkthrough-brief-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}
.walkthrough-brief-list li {
  min-height: 178px;
  padding: 20px 22px 18px 0;
  border-bottom: 1px solid var(--line);
}
.walkthrough-brief-list li + li {
  padding-left: 22px;
  border-left: 1px solid var(--line);
}
.walkthrough-brief-list span {
  display: block;
  color: var(--accent);
  font: 10px var(--mono);
  letter-spacing: .1em;
}
.walkthrough-brief-list h3 {
  margin: 32px 0 10px;
  font: 400 24px/1 var(--serif);
  letter-spacing: -.03em;
}
.walkthrough-brief-list p {
  margin: 0;
  color: #68655e;
  font-size: 13px;
  line-height: 1.6;
}
.walkthrough-brief-note {
  margin: 18px 0 0;
  color: #6f6a62;
  font: 500 10px/1.6 var(--mono);
  letter-spacing: .04em;
  text-transform: uppercase;
}

@media (max-width: 900px) {
  .walkthrough-brief { grid-template-columns: 1fr; gap: 32px; padding: 58px 25px; }
}

@media (max-width: 620px) {
  .walkthrough-brief { padding-top: 52px; padding-bottom: 52px; }
  .walkthrough-brief-list { grid-template-columns: 1fr; }
  .walkthrough-brief-list li { min-height: 0; padding: 20px 0 24px; }
  .walkthrough-brief-list li + li { padding-left: 0; border-left: 0; }
  .walkthrough-brief-list h3 { margin-top: 20px; }
}
