/* Client review, 5 November 2026. Keeps the approved typefaces and imagery. */
html { scroll-padding-top: calc(var(--header) + 20px); }
body { width: 100%; min-width: 0; }
main, #portfolio-page, .section, .wrap { min-width: 0; }
.wrap { max-width: 1510px; }
#header { box-sizing: border-box; padding-inline: clamp(22px,3vw,58px); gap: 24px; }
#header .brand { flex: 0 1 280px; min-width: 0; max-width: 280px; }
#header .logo-crop { width: 100%; }
#header .menu-toggle { flex-shrink: 0; }
#navigation .nav-contact { border-radius:999px; }
#navigation .nav-contact > span,
.button[href="#contact"] > span,
.service-cta > span,
#contact-form > button > span { display:none; }
#navigation { min-width: 0; }
#tour .hotel-bottom { justify-content:flex-end; }
@media (min-width:1281px) {
  #header .brand { width: clamp(215px,17vw,280px); flex: 0 0 clamp(215px,17vw,280px); }
  #navigation { gap: clamp(14px,1.2vw,26px); }
  #navigation a { font-size: clamp(11px,.9vw,14px); }
  #header .menu-toggle { display:none; }
  #navigation, #navigation.open { display:flex; position:static; width:auto; padding:0; background:transparent; color:inherit; border:0; box-shadow:none; max-height:none; overflow:visible; flex-direction:row; align-items:center; }
  #navigation a { padding:0; font-family:var(--label); font-weight:400; line-height:1.4; letter-spacing:.035em; }
  #navigation .nav-instagram { padding:0; min-height:0; }
  #navigation .instagram-label { display:none; }
  #navigation .nav-contact { margin:0; border:1px solid currentColor; padding:15px 16px; font-size:11px; gap:10px; }
}
#home { height:100svh; min-height:560px; max-height:none; }
#home .hero-copy { padding-block: calc(var(--header) + 24px) 122px; }
#home #hero-title { width:max-content; max-width:100%; font-size:clamp(44px,5.5vw,82px); font-weight:400; line-height:1.06; }
#hero-title .hero-title-line { display:block; width:max-content; max-width:100%; white-space:nowrap; font-weight:400; }
#hero-title .hero-title-em { font-style:italic; }
#home .hero-copy .eyebrow { margin-bottom:22px; }
#home .hero-tagline { max-width:760px; line-height:1.9; }
#home .hero-tagline span { display:inline-block; }
#about .about-story-link { margin-top:26px; font-family:var(--label); font-size:12px; font-weight:400; letter-spacing:.06em; line-height:1.6; }
#home .hero-sub { margin-top:22px; }
#home .button, .service-cta { border-radius:999px; padding:20px 34px; min-height:64px; }
#home .button { margin-top:28px; }
#services { padding-block:40px; }
#services .section-heading { margin-bottom:22px; }
#services .section-heading .eyebrow { margin:0; color:#ddd7c9; max-width:none; }
#services .services-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 42px; }
#services .service { grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); min-width:0; gap:24px; padding-top:24px; align-items:center; }
#services .service > div { min-width:0; }
#services .service-photo { display:block; height:clamp(240px,30svh,300px); min-height:0; max-height:320px; }
#services .service-photo img { object-fit:cover; height:100%; }
#services .service-photo[href="#service/renderings-and-virtual-tours"] img { object-fit:contain; }
#services .service:first-child .service-photo img { object-position:50% 38%; }
#services .service h3 { font-size:clamp(25px,1.95vw,34px); line-height:1.12; margin-bottom:12px; }
#services .service h3 a { color:inherit; text-decoration:none; }
#services .service h3 a:hover { text-decoration:underline; text-underline-offset:5px; }
#services .service .tagline { font-size:20px; line-height:1.35; margin-bottom:12px; }
#services .service .description { font-size:17px; line-height:1.65; }
#services .service .service-number { font-size:11px; margin-bottom:12px; }
#services .service .text-link { font-size:14px; margin-top:18px; }
#projects .projects-track { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; overflow:visible; scroll-snap-type:none; }
#projects .project-card { width:100%; min-width:0; aspect-ratio:1.5; }
#projects .project-card h3 { font-size:clamp(26px,2.45vw,42px); line-height:1.08; overflow-wrap:normal; }
#projects .project-card p { font-size:12px; }
#projects .project-caption { top:24px; left:24px; right:20px; }
#projects .projects-foot { margin-top:26px; }
#reviews .review-group { gap:22px; padding-right:22px; }
#reviews .review-card { padding:28px; border:1px solid rgba(60,65,62,.13); background:transparent; }
#reviews .review-card:nth-child(odd) { background:rgba(94,101,98,.14); }
#reviews .review-card blockquote { font-size:24px; line-height:1.48; }
#reviews .review-card footer { font-size:23px; }
#portfolio-page .client-review:nth-child(odd) { background:rgba(94,101,98,.14); }
#press { padding-block:44px; }
#press .section-heading { margin-bottom:30px; }
#press .section-heading h2 { font-size:clamp(40px,4.4vw,64px); }
#press #press-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.press-publication-row { display:flex; flex-direction:column; min-width:0; gap:22px; padding:20px; background:rgba(94,101,98,.075); border-top:1px solid var(--line); break-inside:avoid; }
.press-original { display:block; width:100%; aspect-ratio:1.9; background:white; }
.press-original img { display:block; width:100%; height:100%; object-fit:contain; }
.press-publication-copy { display:flex; flex-direction:column; flex:1; min-width:0; padding:0; }
.press-publication-copy .eyebrow { font-size:10px; margin:0; }
.press-original-logo { display:block; width:100%; max-width:210px; height:44px; object-fit:contain; object-position:left center; margin:18px 0; }
.press-original-logo[alt="VoyageLA"] { filter:brightness(0); }
.press-publication-copy h3 { font-size:clamp(24px,2.1vw,30px); line-height:1.18; margin-bottom:24px; }
.press-publication-copy .text-link { align-self:flex-start; margin-top:auto; font-size:13px; }
@media(min-width:761px) and (max-height:960px) {
  #press { padding-block:28px; }
  #press .section-heading { margin-bottom:22px; }
  #press .section-heading h2 { font-size:44px; }
  .press-publication-row { padding:16px; gap:16px; }
  .press-original { height:clamp(135px,22svh,180px); aspect-ratio:auto; }
  .press-original-logo { height:36px; margin-block:12px; }
  .press-publication-copy h3 { font-size:26px; margin-bottom:18px; }
  #press .press-footer { margin-top:20px; padding-top:16px; }
}

/* Let desktop scrolling settle at the beginning of each complete section. */
@media(min-width:1101px) and (min-height:600px) and (prefers-reduced-motion:no-preference) {
  html:has(body:not(.viewing-portfolio)) { scroll-snap-type:y proximity; }
  main > section:not(#studio-facts) { scroll-snap-align:start; scroll-snap-stop:normal; scroll-margin-top:0; }
}
.footer-bottom > div { display:flex; flex-wrap:wrap; gap:18px 26px; }
.footer-bottom a { margin:0; }
.press-footer { flex-wrap:wrap; gap:12px 24px; }
.press-footer > span { min-width:0; max-width:100%; white-space:normal; }
#portfolio-page { width:100%; overflow-wrap:break-word; }
#portfolio-page .wrap, #portfolio-page.weekly-library .weekly-library-wrap { width:calc(100% - 112px); max-width:1510px; padding-inline:0; margin-inline:auto; }
#portfolio-page .wrap .wrap { width:100%; }
#portfolio-page .original-project-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
#portfolio-page .original-project-grid .work-item { min-width:0; }
#portfolio-page .original-project-grid .work-caption { justify-content:flex-start; padding:24px; }
#portfolio-page .original-project-grid .work-caption h2 { font-size:clamp(25px,2.1vw,34px); }
#portfolio-page .project-head { padding-top:26px; }
#portfolio-page .project-head .breadcrumbs { margin-bottom:16px; font-size:14px; }
#portfolio-page .project-head .eyebrow { margin-bottom:10px; font-size:12px; }
#portfolio-page .project-head h1 { font-size:clamp(40px,4.1vw,64px); line-height:1.08; max-width:none; }
#portfolio-page .project-head-grid { padding-bottom:24px; }
#portfolio-page [data-section="project-detail"] { padding-block:24px 32px; }
#portfolio-page .project-intro { grid-template-columns:minmax(0,1fr) minmax(0,1.12fr); gap:clamp(28px,3.3vw,50px); align-items:start; }
#portfolio-page .project-intro > * { min-width:0; }
#portfolio-page .project-head-grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); }
#portfolio-page .project-head-grid > * { min-width:0; }
#portfolio-page.weekly-entry .work-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
#portfolio-page.weekly-entry .work-item, #portfolio-page.weekly-entry .edit-layout > * { min-width:0; }
@media(max-width:860px) {
  #portfolio-page .project-head-grid { grid-template-columns:minmax(0,1fr); }
}
#portfolio-page .project-text > p { font-size:18px; line-height:1.65; margin:0 0 22px; }
#portfolio-page .project-text .minor-h { font-size:25px; line-height:1.2; margin:22px 0 12px; }
#portfolio-page .project-text .detail-list { font-size:17px; line-height:1.5; }
#portfolio-page .project-text .detail-list li { padding-block:8px; }
#portfolio-page .role-box { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.08fr); gap:18px 24px; position:relative; isolation:isolate; overflow:hidden; background:#3e4441; color:#f8f5ee; border:1px solid #707974; padding:26px; }
#portfolio-page .role-box::before { content:''; position:absolute; inset:0; z-index:-1; background-image:linear-gradient(#dce5df0b 1px,transparent 1px),linear-gradient(90deg,#dce5df0b 1px,transparent 1px),url('house-sketch.png'); background-size:26px 26px,26px 26px,cover; background-position:center; opacity:.16; pointer-events:none; }
#portfolio-page .role-box h2 { grid-column:1 / -1; color:#fffaf0; font-size:28px; line-height:1.15; margin:0; }
#portfolio-page .role-services { list-style:none; padding:0; margin:0; display:grid; align-content:start; gap:0; }
#portfolio-page .role-services li { padding:8px 0; border-bottom:1px solid #ffffff30; font-size:16px; line-height:1.45; }
#portfolio-page .role-services li:first-child { padding-top:0; }
#portfolio-page .role-services a { color:#f8f5ee; text-decoration:none; }
#portfolio-page .role-services a:hover { text-decoration:underline; }
#portfolio-page .role-box dl { align-content:start; margin:0; padding-left:20px; border-left:1px solid #ffffff30; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:9px 14px; font-size:15px; line-height:1.5; }
#portfolio-page .role-box:not(:has(.role-services)) dl { grid-column:1 / -1; border-left:0; padding-left:0; }
#portfolio-page .role-box dt { color:#d3d8d3; }
#portfolio-page .role-box dd { color:#fffaf0; }
#portfolio-page .project-intro-facts-only { grid-template-columns:minmax(0,760px); justify-content:center; }
@media(max-width:1100px) {
  #portfolio-page .project-intro { grid-template-columns:minmax(0,1fr); gap:24px; }
}
@media(max-width:600px) {
  #portfolio-page .project-head { padding-top:22px; }
  #portfolio-page .role-box { grid-template-columns:minmax(0,1fr); padding:22px; }
  #portfolio-page .role-box dl { padding:18px 0 0; border-left:0; border-top:1px solid #ffffff30; }
}
#portfolio-page .service-page-intro { padding-block:36px 54px; }
#portfolio-page .service-intro-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(28px,5vw,80px); align-items:center; margin-top:36px; }
#portfolio-page .service-intro-grid h1 { font-size:clamp(38px,4.2vw,68px); line-height:1.05; margin-bottom:24px; }
#portfolio-page .service-intro-grid img { width:100%; height:480px; object-fit:cover; }
#portfolio-page .service-intro-grid .lede { margin-bottom:28px; }
#portfolio-page .service-cta { display:inline-flex; gap:36px; align-items:center; background:var(--ink); color:var(--paper); border:1px solid var(--ink); text-decoration:none; font:500 14px/1.4 var(--sans); text-transform:uppercase; letter-spacing:.08em; }
#portfolio-page .service-page-body > .section { padding-block:42px; border-top:1px solid var(--line); }
#portfolio-page .service-page-body h2 { font-size:clamp(30px,3vw,46px); }
#portfolio-page .service-page-body h3 { font-size:25px; }
#portfolio-page .service-page-body h2,
#detail-dialog .service-detail .section h2 {
  font-family:var(--label); font-size:clamp(22px,2.1vw,30px);
  font-weight:400; font-style:normal; line-height:1.4;
  letter-spacing:.035em; text-transform:uppercase;
}
#portfolio-page .service-page-body h3,
#portfolio-page .service-page-body .service-process-steps h3,
#detail-dialog .service-detail .section h3 {
  font-family:var(--label); font-size:clamp(17px,1.35vw,19px);
  font-weight:400; font-style:normal; line-height:1.5;
  letter-spacing:.025em; text-transform:uppercase;
}
#portfolio-page .service-page-body .service-section-label,
#detail-dialog .service-detail .service-section-label {
  font-family:var(--label); font-size:12px; font-weight:400;
  line-height:1.65; letter-spacing:.12em; text-transform:uppercase;
  color:var(--muted); margin:0 0 16px;
}
#portfolio-page .service-page-body ul, #portfolio-page .service-page-body ol { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px 50px; padding-left:24px; margin:28px 0; }
#portfolio-page .service-page-body li { font-size:18px; line-height:1.7; padding-left:6px; }
#portfolio-page .service-page-body li strong, #portfolio-page .service-page-body li span { display:block; }
#portfolio-page .service-page-body li strong { font-weight:600; margin-bottom:8px; }
#portfolio-page .service-page-body li p { margin:0; }
#portfolio-page .service-overview > p { max-width:1000px; font-size:20px; line-height:1.8; margin:24px 0 0; }
#portfolio-page .service-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px; }
#portfolio-page .service-gallery figure { margin:0; min-width:0; }
#portfolio-page .service-gallery a { display:block; }
#portfolio-page .service-gallery img { width:100%; aspect-ratio:1.4; object-fit:cover; display:block; }
#portfolio-page .service-gallery figcaption { font-size:15px; padding-top:16px; color:var(--muted); }
#portfolio-page .service-process-steps { list-style:none; padding:0; gap:0 50px; }
#portfolio-page .service-process-steps > li { padding:26px 0 32px; border-top:1px solid var(--line); }
#portfolio-page .service-step-number { display:block; font:400 13px var(--label); letter-spacing:.12em; color:var(--muted); margin-bottom:18px; }
#portfolio-page .service-process-steps h3 { font-size:30px; margin-bottom:14px; }
#portfolio-page .service-page-end { padding-block:54px; background:#ece8df; }
#portfolio-page .service-page-end .text-link { margin-left:28px; }
@media(max-width:1100px) {
  #services .service { grid-template-columns:minmax(0,1fr); align-content:start; }
  #services .service-photo { height:auto; aspect-ratio:1.5; min-height:0; max-height:none; }
  #services .service h3 { font-size:30px; }
  #services .service .description { max-width:none; }
  #projects .projects-track { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #portfolio-page .original-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}


@media(max-width:760px) {
  #header .brand { max-width:245px; }
  #home { height:100svh; min-height:620px; }
  #home .hero-copy { padding-top:110px; padding-bottom:150px; }
  #home #hero-title { font-size:clamp(36px,9vw,64px); }
  #home .hero-sub { font-size:18px; max-width:300px; }
  #home .button { padding:18px 28px; font-size:14px; }
  #services { padding-block:36px; }
  #services .services-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
  #services .service-photo { aspect-ratio:1.35; }
  #services .service .description { font-size:18px; }
  #projects .projects-track { grid-template-columns:minmax(0,1fr); gap:24px; }
  #projects .project-card { aspect-ratio:1.25; }
  #projects .project-card h3 { font-size:34px; }
  #projects .section-heading { margin-bottom:28px; }
  #press #press-grid { grid-template-columns:minmax(0,1fr); }
  .press-publication-row { padding:20px; gap:20px; }
  .press-publication-copy h3 { font-size:27px; }
  .footer-bottom > div { gap:14px 20px; }
  #portfolio-page .original-project-grid, #portfolio-page .project-intro, #portfolio-page .service-intro-grid { grid-template-columns:minmax(0,1fr); }
  #portfolio-page .project-head h1 { font-size:clamp(30px,8.7vw,44px); overflow-wrap:anywhere; }
  #portfolio-page.weekly-entry .work-grid, #portfolio-page.weekly-entry .edit-grid { grid-template-columns:minmax(0,1fr); }
  #portfolio-page .service-intro-grid img { height:auto; aspect-ratio:1.25; }
  #portfolio-page .service-page-body ul, #portfolio-page .service-page-body ol { grid-template-columns:minmax(0,1fr); }
  #portfolio-page .service-gallery { grid-template-columns:minmax(0,1fr); }
  #portfolio-page .service-page-end .text-link { display:block; width:max-content; margin:26px 0 0; }
  #portfolio-page .breadcrumbs ol { flex-wrap:wrap; }
}
@media(min-width:1101px) and (max-height:800px) {
  #home #hero-title { font-size:clamp(64px,6.1vw,96px); }
  #home .hero-copy { padding-top:105px; padding-bottom:110px; }
  #services { padding-block:28px; }
  #services .service-photo { min-height:242px; }
  #services .service h3 { font-size:27px; }
  #services .service .tagline { font-size:18px; }
  #services .service .tagline { display:none; }
  #services .service .description { font-size:16px; line-height:1.55; }
}


/* Restore the full-width service layout approved in the reference. */
#projects { padding-block:32px; }
#projects .section-heading { margin-bottom:26px; }
#projects .projects-kicker { font-size:24px; margin-bottom:8px; }
#projects .projects-kicker .section-number { font-size:10px; }
#projects #projects-title { font-size:clamp(40px,4.5vw,64px); font-weight:400; }
#projects .projects-track { gap:24px; }
#projects .project-card { aspect-ratio:1.5; }
#projects .project-card img { object-fit:cover; }
#projects .project-card h3 { font-size:clamp(26px,2.5vw,40px); }
#projects .project-card p { font-size:12px; margin-top:10px; }
#projects .project-caption { top:22px; left:22px; right:20px; }
#projects .project-arrow { bottom:16px; right:18px; font-size:22px; }
#projects .projects-foot { margin-top:18px; gap:30px; }
#projects .projects-foot p { font-size:16px; line-height:1.6; max-width:900px; }
#projects .projects-foot .text-link { font-size:14px; }
#sketch-to-reality { padding-block:28px; }
#sketch-to-reality .arch-compare-heading { margin-bottom:24px; gap:40px; align-items:center; }
#sketch-to-reality h2 { font-size:clamp(32px,3.5vw,46px); }
#sketch-to-reality .arch-compare-heading > p { font-size:16px; line-height:1.6; max-width:360px; }
#sketch-to-reality .arch-compare-kicker { margin-bottom:12px; font-size:10px; }
#sketch-to-reality .arch-compare-grid { gap:24px; }
#sketch-to-reality .arch-compare-visual img { object-fit:contain; }
#sketch-to-reality .arch-compare-stage { top:14px; left:14px; right:14px; gap:10px; }
#sketch-to-reality .arch-compare-stage span { font-size:9px; padding:8px 10px; }
#sketch-to-reality .arch-reveal-toggle { font-size:10px; min-height:40px; padding:11px 16px; bottom:14px; right:14px; }
#sketch-to-reality .arch-reveal-toggle span { font-size:10px; }
#sketch-to-reality .arch-compare-card:hover .arch-reveal-toggle [data-toggle-label]::after { font-size:10px; }
#sketch-to-reality .arch-compare-caption { padding-top:14px; gap:4px; }
#sketch-to-reality .arch-compare-caption h3 { font-size:24px; }
#sketch-to-reality .arch-compare-caption span { font-size:10px; }

/* Stable page margins, independent of window height. */
html { scroll-padding-top:var(--header); }
.wrap, #home .hero-copy { width:calc(100% - 112px); max-width:1510px; margin-inline:auto; }
#home #hero-title { font-size:clamp(64px,6vw,104px); font-weight:400; }
#home #hero-title .hero-title-line { font-weight:400; }
#home #hero-title .hero-title-em { font-weight:300; }
#home .hero-copy { padding-block:calc(var(--header) + 22px) 100px; }
#home .hero-sub { font-size:19px; }
#home .button { min-height:58px; padding:17px 30px; font-size:15px; margin-top:25px; }
#portfolio-page .service-intro-grid > img { height:clamp(320px,58svh,480px); object-fit:contain; }
#portfolio-page .service-intro-grid h1 { font-size:clamp(38px,3.8vw,56px); }
#portfolio-page .service-intro-grid .lede { font-size:19px; line-height:1.7; }
/* Continuous horizontal motion with native touch/trackpad scrolling. */
#reviews { overflow:visible; padding-block:36px; }
#reviews > .wrap { max-width:1510px; }
#reviews .section-heading { margin-bottom:26px; }
#reviews h2 { font-size:clamp(40px,4vw,60px); }
#reviews .reviews-controls { display:flex; gap:18px; align-items:center; }
#reviews .review-page-controls { display:flex; gap:10px; align-items:center; }
#reviews .review-page-controls button { width:40px; height:40px; padding:0; border:1px solid var(--line); border-radius:50%; background:transparent; font-size:20px; }
#reviews .review-page-controls button:hover { background:rgba(94,101,98,.12); }
#reviews #review-page-label { font:400 11px/1.4 var(--label); min-width:58px; text-align:center; }
#reviews #reviews-track { display:flex; gap:22px; width:100%; overflow-x:auto; overflow-y:hidden; mask-image:none; -webkit-mask-image:none; scroll-behavior:auto; scroll-snap-type:none; scrollbar-width:none; cursor:grab; }
#reviews #reviews-track::-webkit-scrollbar { display:none; }
#reviews #reviews-track.dragging { cursor:grabbing; user-select:none; }
#reviews #reviews-track:focus-visible { outline:1px solid currentColor; outline-offset:6px; }
#reviews .review-card { flex:0 0 calc((100% - (var(--review-columns,3) - 1) * 22px) / var(--review-columns,3)); width:auto; min-width:0; min-height:340px; padding:24px; margin:0; overflow:visible; }
#reviews .review-card blockquote { font-size:22px; line-height:1.45; margin-bottom:20px; }
#reviews .review-stars { font-size:11px; margin-bottom:18px; }
#reviews .review-card .read-review { font-size:13px; margin-bottom:20px; }
#reviews .review-card footer { font-size:19px; padding-top:10px; line-height:1.3; }
#reviews .review-card footer time { font-size:12px; }
#reviews .reviews-footer { padding-top:22px; }
#reviews #reviews-track { touch-action:pan-x pan-y; }
/* Keep each portrait inspiration film fully visible below its heading. */
@media(min-width:900px) {
  #weekly-edit .weekly-heading h2 { font-size:clamp(38px,3.8vw,52px); }
  #weekly-edit .weekly-heading > p { font-size:16px; }
  #weekly-edit .weekly-frame { aspect-ratio:9/16; }
  #weekly-edit .weekly-caption h3 { font-size:22px; line-height:1.2; }
  #weekly-edit .weekly-caption p { font-size:14px; line-height:1.6; }
}
/* Five complete portrait films, aligned to the shared page margins. */
#weekly-edit .weekly-track {
  max-width:none;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:22px;
  align-items:start;
}
@media(max-width:1099px) {
  #weekly-edit .weekly-track {
    grid-template-columns:none;
    grid-auto-flow:column;
    grid-auto-columns:calc((100% - 44px)/3);
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    overscroll-behavior-x:contain;
    scrollbar-width:thin;
    scrollbar-color:#85877d #302f29;
    padding-bottom:14px;
  }
  #weekly-edit .weekly-card { scroll-snap-align:start; }
}
@media(max-width:700px) {
  #weekly-edit .weekly-track { grid-auto-columns:100%; }
  #weekly-edit .weekly-frame { max-width:320px; margin-inline:auto; }
}
@media(min-width:1101px) and (max-height:800px) {
  #projects { padding-block:26px; }
  #projects .section-heading { margin-bottom:22px; }
  #projects .projects-kicker { font-size:23px; }
  #projects #projects-title { font-size:clamp(40px,4.2vw,58px); }
  #projects .projects-foot { margin-top:20px; }
  #reviews { padding-block:26px; }
  #reviews .review-card { min-height:300px; padding:22px; }
  #reviews .review-card blockquote { font-size:20px; line-height:1.4; }
  #reviews h2 { font-size:48px; }
}

/* Page-entry and scroll reveals share the home's restrained motion. */
#portfolio-page .page-reveal {
  opacity:0; transform:translate3d(0,26px,0);
  transition:opacity .8s ease var(--reveal-delay,0ms),transform 1s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms);
}
#portfolio-page .page-reveal.page-visible { opacity:1; transform:none; }
#services .service-photo[href="#service/project-management"] img { object-fit:contain; }
@media(prefers-reduced-motion:reduce) {
  #portfolio-page .page-reveal { opacity:1; transform:none; transition:none; }
}
@media(max-width:1100px) {
  .wrap, #home .hero-copy { width:calc(100% - 76px); }
  #portfolio-page .wrap, #portfolio-page.weekly-library .weekly-library-wrap { width:calc(100% - 76px); }
  #reviews .reviews-controls { gap:12px; }
}
@media(max-width:760px) {
  .wrap, #home .hero-copy { width:calc(100% - 44px); }
  #portfolio-page .wrap, #portfolio-page.weekly-library .weekly-library-wrap { width:calc(100% - 44px); }
  #home #hero-title { font-size:clamp(38px,10vw,64px); }
  #home .hero-copy { padding-block:108px 130px; }
  #home .hero-sub { font-size:17px; }
  #portfolio-page .service-intro-grid > img { height:auto; max-height:480px; aspect-ratio:auto; }
  #portfolio-page .service-intro-grid h1 { font-size:36px; }
  #reviews .section-heading { display:block; }
  #reviews .reviews-controls { justify-content:space-between; margin-top:24px; }
  #reviews .review-card { min-height:0; }
  #reviews .review-card blockquote { font-size:22px; }
  #sketch-to-reality .arch-compare-heading { display:block; }
  #sketch-to-reality .arch-compare-heading > p { margin-top:20px; }
  #sketch-to-reality .arch-compare-grid { gap:30px; }
}

/* About follows the same type, margins and restrained motion as the home page. */
#portfolio-page.about-page { background:var(--paper); }
#portfolio-page.about-page .studio-intro { padding-block:32px 64px; background:transparent; }
#portfolio-page.about-page .studio-intro-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); gap:clamp(36px,7vw,110px); align-items:center; margin-top:36px; }
#portfolio-page.about-page h1 { font-size:clamp(44px,5vw,72px); line-height:1.06; margin:0 0 28px; }
#portfolio-page.about-page .studio-lede { max-width:52ch; font-size:19px; line-height:1.8; }
#portfolio-page.about-page .studio-portrait { max-width:420px; width:fit-content; justify-self:center; }
#portfolio-page.about-page .studio-portrait img { width:auto; max-width:100%; height:auto; max-height:540px; object-fit:contain; }
#portfolio-page.about-page .studio-portrait figcaption { margin:0; padding-top:14px; font-size:15px; line-height:1.6; }
#portfolio-page.about-page .studio-portrait figcaption span { display:block; color:var(--muted); font-size:13px; }
#portfolio-page.about-page .studio-story, #portfolio-page.about-page .studio-value { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(32px,7vw,110px); border-top:1px solid var(--line); padding-block:46px; align-items:start; }
#portfolio-page.about-page h2 { font-size:clamp(32px,3.2vw,48px); line-height:1.12; }
#portfolio-page.about-page .studio-reading, #portfolio-page.about-page .studio-value > p { font-size:18px; line-height:1.8; max-width:68ch; }
#portfolio-page.about-page .studio-reading p + p { margin-top:20px; }
#portfolio-page.about-page .eyebrow { font-family:var(--label); font-size:11px; line-height:1.7; letter-spacing:.1em; margin-bottom:18px; }
#portfolio-page.about-page .studio-awards { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:clamp(32px,6vw,90px); align-items:center; border-top:1px solid var(--line); padding-block:50px 70px; }
#portfolio-page.about-page .studio-awards img { width:100%; height:auto; }
#portfolio-page.about-page .studio-awards ol { padding-left:20px; margin:26px 0; font-size:18px; line-height:1.8; }
#portfolio-page.about-page .studio-awards li + li { margin-top:12px; }
#portfolio-page.about-page .studio-awards .text-link { margin-top:10px; }
@media(max-width:760px) {
  #portfolio-page.about-page .studio-intro { padding-block:24px 36px; }
  #portfolio-page.about-page .studio-intro-grid, #portfolio-page.about-page .studio-story, #portfolio-page.about-page .studio-value, #portfolio-page.about-page .studio-awards { grid-template-columns:minmax(0,1fr); gap:28px; }
  #portfolio-page.about-page .studio-portrait { justify-self:start; }
  #portfolio-page.about-page .studio-lede, #portfolio-page.about-page .studio-reading, #portfolio-page.about-page .studio-value > p, #portfolio-page.about-page .studio-awards ol { font-size:17px; line-height:1.75; }
  #portfolio-page.about-page .studio-story, #portfolio-page.about-page .studio-value { padding-block:32px; }
  #portfolio-page.about-page .studio-awards { padding-block:36px 48px; }
}

/* Service guidance, questions and portfolio links, November 2026. */
#portfolio-page .service-local>p:not(.service-section-label){max-width:920px;font-size:19px;line-height:1.85;margin:24px 0;}
#portfolio-page .service-local h3{margin-top:30px;}
#portfolio-page .service-proof-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:28px;}
#portfolio-page .service-proof-grid a{color:inherit;text-underline-offset:.2em;}
#portfolio-page .service-proof-grid p{font-size:18px;line-height:1.8;margin-top:14px;}
#portfolio-page .service-questions details{border-bottom:1px solid var(--line);padding:22px 0;}
#portfolio-page .service-questions summary{cursor:pointer;font-size:19px;line-height:1.6;}
#portfolio-page .service-questions details p{max-width:900px;font-size:18px;line-height:1.8;margin:18px 0 4px;}
#portfolio-page .service-related .text-link{margin:12px 36px 12px 0;}
.standalone-section .services-overview-copy{max-width:960px;padding-bottom:24px;}
.standalone-section .services-overview-copy h1{font:400 clamp(36px,4.8vw,64px)/1.15 var(--serif);margin:20px 0;}
.standalone-section .services-overview-copy>p:not(.eyebrow){max-width:820px;font-size:19px;line-height:1.8;margin:20px 0 26px;}
@media(max-width:760px){#portfolio-page .service-proof-grid{grid-template-columns:minmax(0,1fr);}#portfolio-page .service-related .text-link{display:block;width:fit-content;margin:18px 0;}}
