@font-face {
  font-family: "STIX Two Text";
  src: url("assets/STIXTwoText.ttf") format("truetype");
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
}

:root { --background:#edf0e8; --paper:#f8f7f1; --ink:#17392f; --muted:#476157; --accent:#792f3d; --accent-text:#fff; --line:#b7c2b6; --inverse-muted:#c7d2cc; --field:#24483d; --field-line:#789087; --danger:#ffd0d0; --focus-on-dark:#f6d98b; --serif:"STIX Two Text",Georgia,serif; --sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--background); color:var(--ink); font-family:var(--sans); font-size:1rem; line-height:1.6; }
html.palette-motion-ready body,
html.palette-motion-ready .fiction-strip,
html.palette-motion-ready .customizer,
html.palette-motion-ready .customizer__panel,
html.palette-motion-ready .customizer input,
html.palette-motion-ready .palette-button,
html.palette-motion-ready .hero__image,
html.palette-motion-ready .services,
html.palette-motion-ready .section-heading,
html.palette-motion-ready .service,
html.palette-motion-ready .process__steps,
html.palette-motion-ready .process__steps li,
html.palette-motion-ready .inquiry,
html.palette-motion-ready input,
html.palette-motion-ready select,
html.palette-motion-ready textarea,
html.palette-motion-ready .preview,
html.palette-motion-ready footer {
  transition-property:background-color,color,border-color,caret-color;
  transition-duration:250ms;
  transition-timing-function:ease;
}
::selection { background:var(--accent); color:var(--accent-text); }
* { scrollbar-color:var(--accent) var(--background); }
a { color:inherit; text-underline-offset:.3em; }
button,input,select,textarea { font:inherit; color:inherit; }
button,a,input,select,textarea,summary { outline-offset:4px; }
:focus-visible { outline:3px solid var(--accent); }
.fiction-strip { padding:.35rem 4vw; background:var(--ink); color:var(--paper); text-align:center; font-size:.78rem; letter-spacing:.035em; }
.customizer { border-bottom:1px solid var(--line); background:var(--paper); }
.customizer summary { display:flex; align-items:center; width:max-content; min-height:2.75rem; margin-left:auto; padding:.65rem 4vw; cursor:pointer; font-size:.85rem; font-weight:700; }
.customizer__panel { display:grid; grid-template-columns:minmax(180px,1.4fr) repeat(2,minmax(150px,1fr)) auto auto; gap:1rem; align-items:end; padding:1rem 4vw 1.4rem; border-top:1px solid var(--line); }
.customizer__panel > * { min-width:0; }
.customizer__intro p { margin:0; max-width:44ch; }.customizer__title { font-weight:800; }
.customizer label,.customizer legend,form label { font-size:.82rem; font-weight:750; letter-spacing:.015em; }
.customizer input { margin-top:.3rem; padding:.55rem .7rem; width:100%; background:var(--background); color:var(--ink); border:1px solid var(--line); border-radius:4px; caret-color:var(--ink); }
fieldset { margin:0; padding:0; border:0; }.palette-options { display:flex; gap:.4rem; margin-top:.3rem; }
.palette-button { min-height:2.75rem; padding:.35rem .7rem; border:1px solid var(--line); border-radius:999px; background:var(--background); cursor:pointer; font-size:.8rem; font-weight:700; }
.palette-button[aria-pressed="true"] { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.text-button { padding:.55rem .3rem; background:none; border:0; text-decoration:underline; text-underline-offset:.3em; cursor:pointer; font-weight:700; }
.palette-button:active,.text-button:active { filter:brightness(.9); }
.site-header { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:1.4rem 4vw; }
.wordmark { min-width:0; font-family:var(--serif); font-size:1.25rem; text-decoration:none; overflow-wrap:anywhere; }
nav { display:flex; gap:clamp(1rem,3vw,2.5rem); font-size:.88rem; font-weight:700; } nav a { position:relative; text-decoration:none; }
nav a::after { content:""; position:absolute; right:0; bottom:-.18rem; left:0; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform 180ms cubic-bezier(.16,1,.3,1); }
nav a:hover::after,nav a:focus-visible::after { transform:scaleX(1); transform-origin:left; }
main { overflow:hidden; }
.hero { min-height:calc(100vh - 150px); display:grid; grid-template-columns:minmax(300px,.78fr) minmax(520px,1.22fr); align-items:center; gap:clamp(2rem,5vw,6rem); padding:2rem 0 5rem 4vw; }
.hero__copy { padding-block:3rem; max-width:650px; }
h1,h2,h3 { font-family:var(--serif); font-weight:400; line-height:.98; letter-spacing:-.03em; text-wrap:balance; overflow-wrap:anywhere; }
h1 { margin:0 0 2rem; font-size:clamp(4rem,7vw,6rem); }
.hero__intro { max-width:29ch; margin:0 0 2rem; font-size:clamp(1.12rem,1.6vw,1.45rem); line-height:1.45; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:3rem; padding:.72rem 1.15rem; border:1px solid var(--accent); border-radius:3px; background:var(--accent); color:var(--accent-text); font-weight:780; text-decoration:none; cursor:pointer; transition:background-color 250ms ease,color 250ms ease,border-color 250ms ease,transform 240ms cubic-bezier(.16,1,.3,1),filter 120ms ease; }
.button:hover { transform:translateY(-2px); filter:brightness(1.08); }.button:active { transform:translateY(0); filter:brightness(.94); transition-duration:100ms; }.button:disabled { cursor:not-allowed; opacity:.5; transform:none; }
.areas { margin:2rem 0 0; color:var(--muted); font-size:.82rem; letter-spacing:.03em; }
.hero__image { margin:0; align-self:stretch; display:grid; grid-template-rows:1fr auto; min-height:600px; overflow:hidden; background:var(--paper); }
.hero__image img { width:100%; height:100%; min-height:0; object-fit:cover; object-position:center; }
.hero__image.plate-entering img { animation:place-image-plate 650ms cubic-bezier(.16,1,.3,1) both; will-change:clip-path,transform; }
@keyframes place-image-plate { from { clip-path:inset(3% 0); transform:scale(1.025); } to { clip-path:inset(0); transform:scale(1); } }
figcaption { padding:.65rem 1rem; font-size:.72rem; color:var(--muted); }
.services { padding:clamp(5rem,10vw,9rem) 4vw; background:var(--paper); }
.section-heading { display:grid; grid-template-columns:1.35fr .65fr; gap:8vw; align-items:end; padding-bottom:4rem; border-bottom:1px solid var(--line); }
h2 { margin:0 0 1.5rem; max-width:14ch; font-size:clamp(3rem,5.8vw,5.5rem); }.section-heading p,.process__heading p,.inquiry__copy p { max-width:44ch; margin:0; color:var(--muted); }
.service-list { display:grid; grid-template-columns:repeat(12,1fr); }
.service { grid-column:span 4; padding:2.3rem clamp(1rem,3vw,2.5rem) 2.3rem 0; border-bottom:1px solid var(--line); }
.service + .service { padding-left:clamp(1rem,3vw,2.5rem); border-left:1px solid var(--line); }
.service h3 { margin:0 0 1rem; font-size:clamp(1.7rem,2.5vw,2.5rem); }.service p { max-width:35ch; margin:0; color:var(--muted); }
.process { display:grid; grid-template-columns:.85fr 1.15fr; gap:10vw; padding:clamp(5rem,10vw,9rem) 4vw; }
.process__steps { margin:0; padding:0; list-style:none; counter-reset:step; border-top:1px solid var(--line); }
.process__steps li { counter-increment:step; display:grid; grid-template-columns:2rem minmax(140px,.65fr) 1fr; gap:1.2rem; padding:1.7rem 0; border-bottom:1px solid var(--line); }
.process__steps li::before { content:counter(step); font-variant-numeric:tabular-nums; color:var(--accent); font-weight:800; }
.process__steps strong { line-height:1.4; }.process__steps span { color:var(--muted); }
.inquiry { display:grid; grid-template-columns:.72fr 1.28fr; gap:9vw; padding:clamp(5rem,10vw,9rem) 4vw; background:var(--ink); color:var(--paper); }
.inquiry h2 { max-width:11ch; }.inquiry__copy p { color:var(--inverse-muted); }
.inquiry :focus-visible { outline-color:var(--focus-on-dark); }
form { max-width:760px; } .form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
form label { display:block; margin-bottom:1rem; } input,select,textarea { display:block; width:100%; margin-top:.35rem; padding:.8rem .9rem; border:1px solid var(--field-line); border-radius:4px; background:var(--field); color:var(--accent-text); caret-color:var(--accent-text); }
textarea { resize:vertical; min-height:8rem; } input::placeholder,textarea::placeholder { color:var(--inverse-muted); opacity:1; } input:user-invalid,select:user-invalid,textarea:user-invalid { border-color:var(--danger); }
.form-error { margin:.5rem 0 1rem; color:var(--danger); font-weight:700; }.preview { grid-column:2; margin-top:-4rem; padding:1.3rem 1.5rem; background:var(--paper); color:var(--ink); border-radius:4px; }
.preview.preview--emphasis { animation:preview-emphasis 420ms cubic-bezier(.16,1,.3,1); }
@keyframes preview-emphasis { from { transform:translateY(.4rem); background:var(--background); } to { transform:translateY(0); background:var(--paper); } }
.preview:focus-visible { outline-color:var(--focus-on-dark); }.preview h3 { margin:0 0 .6rem; font-size:1.5rem; }.preview p { margin:0; overflow-wrap:anywhere; }.noscript-note { color:var(--danger); }
footer { display:flex; justify-content:space-between; gap:2rem; padding:2rem 4vw; background:var(--ink); color:var(--inverse-muted); border-top:1px solid var(--muted); font-size:.78rem; }

@media (max-width:900px) {
  .customizer__panel { grid-template-columns:1fr 1fr; }.customizer__intro { grid-column:1/-1; }
  input,select,textarea { font-size:1rem; }
  .hero { min-height:auto; grid-template-columns:1fr; padding:2rem 4vw 4rem; }.hero__copy { padding-block:1.5rem; }.hero__image { min-height:auto; aspect-ratio:4/3; }.hero__image figcaption { background:var(--paper); }
  .section-heading,.process,.inquiry { grid-template-columns:1fr; }.section-heading { align-items:start; }.service-list { display:block; }.service { padding:2rem 0; border-left:0!important; }.service + .service { padding-left:0; }
  .process { gap:3rem; }.inquiry { gap:3rem; }.preview { grid-column:1; margin-top:0; }
}
@media (max-width:560px) {
  .site-header { flex-direction:column; align-items:stretch; gap:.65rem; }.site-header nav { width:100%; justify-content:space-between; gap:.5rem; align-items:stretch; }.site-header nav a { display:flex; align-items:center; min-height:2.75rem; padding-block:.45rem; }
  h1 { font-size:clamp(3.4rem,16vw,4.4rem); }.hero__image { aspect-ratio:1/1; }
  .customizer__panel,.form-grid { grid-template-columns:1fr; }.process__steps li { grid-template-columns:1.5rem 1fr; }.process__steps span { grid-column:2; }
  footer { flex-direction:column; gap:.25rem; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms!important; animation-duration:.01ms!important; } .hero__image.plate-entering img,.preview.preview--emphasis { animation:none; transform:none; clip-path:none; } }

.agency-return { display: flex; align-items: center; min-height: 44px; padding: 10px 4%; background: #f5f2e9; color: #183f35; font: 600 14px/1.4 Arial, sans-serif; text-underline-offset: 4px; }
.agency-return:focus-visible { outline: 3px solid #183f35; outline-offset: -4px; }

.embed-preview .agency-return,
.embed-preview .customizer { display:none; }
.embed-preview .hero { grid-template-rows:620px auto; }

/* Showcase hero: the photograph and editorial panel form one architectural composition. */
.customizer__panel { grid-template-columns:minmax(180px,1.4fr) repeat(2,minmax(150px,1fr)) auto; }
.hero {
  position:relative;
  min-height:0;
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(470px,62vh) auto;
  gap:0;
  padding:0 4vw 0;
  overflow:visible;
}
.hero__image {
  grid-area:1/1;
  min-height:470px;
  margin:0;
  display:block;
  overflow:hidden;
  background:var(--paper);
}
.hero__image img {
  width:100%;
  height:100%;
  min-height:0;
  object-fit:cover;
  object-position:58% 53%;
}
.hero__copy {
  grid-area:1/1;
  z-index:1;
  align-self:end;
  width:min(46rem,58%);
  max-width:none;
  margin:0 0 0 clamp(1.5rem,3vw,3rem);
  padding:clamp(2rem,3.3vw,3.5rem);
  background:var(--paper);
  border-radius:0;
}
.hero h1 {
  max-width:10ch;
  margin:0 0 1.2rem;
  font-size:clamp(3.4rem,5vw,5rem);
}
.hero__intro { margin-bottom:1.35rem; }
.areas { margin-top:1.35rem; }
.hero__palette {
  grid-area:2/1;
  margin:0;
  padding:.75rem clamp(1.5rem,3vw,3rem);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1.25rem;
  border:1px solid var(--line);
  border-top:0;
  background:var(--paper);
}
.hero__palette legend {
  float:left;
  padding:0;
  font-size:.82rem;
  font-weight:750;
  letter-spacing:.015em;
}
.hero__palette .palette-options { margin:0; }
.hero__palette .palette-button {
  display:inline-flex;
  align-items:center;
  gap:.4rem;
}
.palette-swatches {
  width:1.7rem;
  height:.72rem;
  display:flex;
  overflow:hidden;
  border:1px solid currentColor;
  border-radius:999px;
}
.palette-swatches i { flex:1; }
.services { padding-top:clamp(4rem,6vw,6rem); }

@media (max-width:900px) {
  .hero {
    grid-template-rows:auto auto auto;
    padding:0 4vw;
  }
  .hero__image {
    grid-area:1/1;
    min-height:0;
    aspect-ratio:16/10;
  }
  .hero__copy {
    grid-area:2/1;
    width:calc(100% - clamp(1rem,5vw,2rem));
    margin:clamp(-5rem,-10vw,-3rem) 0 0;
    padding:clamp(1.75rem,6vw,3rem);
  }
  .hero__palette { grid-area:3/1; }
}

@media (max-width:560px) {
  .customizer__panel { grid-template-columns:1fr; }
  .hero { padding:0; }
  .hero__image { aspect-ratio:16/11; }
  .hero__image img { object-position:62% 50%; }
  .hero__copy {
    width:calc(100% - 1.25rem);
    margin:-3rem 0 0;
    padding:1.6rem 1.25rem 1.8rem;
  }
  .hero h1 { max-width:9ch; font-size:clamp(3rem,14vw,4rem); }
  .hero__palette {
    align-items:flex-start;
    flex-direction:column;
    padding:1rem 1.25rem 1.2rem;
  }
  .hero__palette .palette-options { width:100%; }
  .hero__palette .palette-button { flex:1; justify-content:center; }
  .services { padding-top:4rem; }
}

@media (max-width:900px) {
  .embed-preview .hero { grid-template-rows:auto auto auto; }
}

.embed-preview .hero__palette { display: none; }
