/* Barlow Condensed ExtraBold, unmodified Latin WOFF2. License follows.
Copyright 2017 The Barlow Project Authors (https://github.com/jpt/barlow)

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL


-----------------------------------------------------------
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
-----------------------------------------------------------

PREAMBLE
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.

The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded, 
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.

DEFINITIONS
"Font Software" refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.

"Reserved Font Name" refers to any names specified as such after the
copyright statement(s).

"Original Version" refers to the collection of Font Software components as
distributed by the Copyright Holder(s).

"Modified Version" refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.

"Author" refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.

PERMISSION & CONDITIONS
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:

1) Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.

2) Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.

3) No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.

4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.

5) The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.

TERMINATION
This license becomes null and void if any of the above conditions are
not met.

DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

*/
@font-face { font-family:"Barlow Condensed"; font-style:normal; font-weight:800; font-display:swap; src:url("assets/fonts/barlow-condensed-extrabold-latin.woff2") format("woff2"); }
:root {
  --ink:#252c2d; --paper:#fafaf4; --signal:#b58e07; --number:#8a6a08;
  --line:#c7cfcd; --quiet:#4c5a59; --focus:#00665f;
  --display:"DIN Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Helvetica Neue",Arial,sans-serif; --mono:Menlo,Consolas,monospace;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:#e9ece9; color:var(--ink); font:18px/1.4 var(--body); }
[hidden] { display:none!important; }
h1,h2,h3,p,figure { margin:0; }
img { max-width:100%; display:block; }
a { color:inherit; text-underline-offset:4px; }
button,input,textarea,select { font:inherit; }
button { cursor:pointer; }
button,a,input,textarea,select,summary { -webkit-tap-highlight-color:transparent; }
:is(a,button,input,textarea,select,summary,[tabindex]):focus-visible { outline:3px solid var(--focus); outline-offset:5px; }
:is(h1,h2,h3,p,label,summary,button,a) { overflow-wrap:anywhere; }
.study { width:min(900px,100%); margin:0 auto; }
.page { background:var(--paper); padding:0 42px 30px; }
.skip-link { position:fixed; top:12px; left:16px; z-index:20; background:var(--paper); padding:12px 18px; transform:translateY(-180%); }
.skip-link:focus { transform:none; }
.preview-bar { padding:15px 32px; display:flex; justify-content:space-between; align-items:center; gap:20px; font:13px/1.4 var(--body); }
.preview-bar a { padding:9px 0; min-height:44px; display:flex; align-items:center; gap:8px; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:20px; border-bottom:3px solid var(--ink); padding:28px 0 23px; }
.wordmark { display:block; text-decoration:none; flex:none; }
.wordmark b { display:block; font:700 40px/.8 var(--display); letter-spacing:.6px; }
.wordmark small { display:block; font:11px/1.2 var(--mono); letter-spacing:1.4px; margin-top:10px; }
.owner { font:15px/1.35 var(--body); text-align:right; }
.page-nav { display:flex; flex-wrap:wrap; align-items:center; gap:7px 28px; padding:8px 0; border-bottom:1px solid var(--line); font-size:13px; }
.page-nav a { display:inline-flex; align-items:center; gap:10px; min-height:44px; padding:6px 0; text-decoration:none; }
.page-nav a:hover { text-decoration:underline; }
.opening { padding-top:27px; }
.eyebrow { font:12px/1.4 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
h1 { font:700 102px/.9 var(--display); letter-spacing:-.6px; text-transform:uppercase; margin-top:14px; max-width:730px; }
h1 span { display:block; margin-left:92px; }
.hero-lead { font-size:19px; line-height:1.5; margin:22px 0 21px; max-width:650px; }
.views { position:relative; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f0f2ed; padding-top:26px; }
.views img { width:100%; height:auto; }
.view-label { position:static; display:inline-block; vertical-align:top; margin:0 8px 8px; font:600 13px/1.2 var(--body); background:var(--paper); padding:6px 9px; border-left:4px solid var(--signal); max-width:calc(100% - 16px); }
.guide-ready .view-label { position:absolute; display:block; z-index:2; margin:0; max-width:38%; }
.whole { top:18px; left:16px; }
.break { top:18px; left:61%; }
.size { top:56%; left:61%; }
.art-note { font:12px/1.5 var(--mono); color:var(--quiet); margin:11px 0 0; max-width:670px; }
.media-failed { padding:26px; min-height:180px; display:flex; align-items:center; }
.media-failed .view-label { display:none; }
.media-status { font-size:17px; line-height:1.5; max-width:55ch; }
.action-row { display:flex; justify-content:space-between; align-items:center; gap:25px; margin:21px 0 28px; }
.button { padding:14px 20px; display:inline-flex; justify-content:space-between; align-items:center; gap:36px; border:0; border-top:4px solid var(--signal); background:var(--ink); color:var(--paper); font:600 20px/1.2 var(--body); min-height:58px; max-width:100%; text-align:left; text-decoration:none; border-radius:0; white-space:normal; }
.button:hover { background:#354141; text-decoration:none; }
.button span { font-weight:400; font-size:26px; flex:none; }
.button-outline { background:transparent; border:1px solid var(--ink); color:var(--ink); }
.button-outline:hover { background:#e9ece5; }
.action-row>p { font-size:13px; line-height:1.5; max-width:270px; color:var(--quiet); }
h2 { font:700 27px/1.08 var(--display); letter-spacing:.2px; text-transform:uppercase; }
.photo-guide { border-top:3px solid var(--ink); padding:23px 0 26px; display:grid; grid-template-columns:160px minmax(0,1fr); gap:36px; }
.photo-guide>div>h2 { margin-top:12px; }
.photo-guide>.views,.photo-guide>.art-note { grid-column:1/-1; }
.photo-guide>.art-note { margin-top:-24px; }
.section-heading { display:grid; grid-template-columns:160px minmax(0,1fr); gap:12px 36px; margin-bottom:20px; }
.section-heading>.eyebrow { grid-column:1/-1; }
.section-heading>h2 { font-size:32px; }
.section-heading>p:not(.eyebrow) { align-self:end; font-size:17px; max-width:44ch; }
.project+.project { border-top:1px solid var(--line); margin-top:28px; }
.project-heading { display:grid; grid-template-columns:160px minmax(0,1fr); gap:12px 36px; padding:22px 0; }
.project-heading>.eyebrow { grid-column:1; grid-row:1/3; }
.project-heading>h3 { font:700 37px/1.08 var(--display); text-transform:uppercase; }
.project-heading>p:not(.eyebrow) { grid-column:2; font-size:17px; line-height:1.5; max-width:55ch; }
.project-photo { border:1px solid var(--line); background:#e9ece9; }
.project-state { font:12px/1.5 var(--mono); text-transform:uppercase; padding:12px 16px; background:var(--paper); border-left:4px solid var(--signal); border-bottom:1px solid var(--line); }
.project-photo img { width:100%; height:auto; max-height:600px; object-fit:contain; }
.project-photo figcaption,.project-frames figcaption { font:12px/1.6 var(--mono); padding:12px 14px; background:var(--paper); }
.project-photo figcaption { border-top:1px solid var(--line); }
.project-frames { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.project-frames figure { min-width:0; border:1px solid var(--line); background:#e9ece9; }
.project-frames img { width:100%; height:auto; max-height:440px; object-fit:contain; }
.project-frames figcaption { border-top:1px solid var(--line); }
.project-note { margin-top:12px; font-size:14px; line-height:1.5; color:var(--quiet); }
.project-quote { border-top:3px solid var(--ink); }
.project-quote>h2 { font-size:32px; margin:12px 0 18px; }
.quote-copy { font-size:22px; line-height:1.5; max-width:58ch; }
.quote-limit { margin:18px 0 6px; padding-left:16px; border-left:4px solid var(--signal); font-size:14px; line-height:1.5; color:var(--quiet); max-width:68ch; }
.text-link { display:inline-flex; gap:18px; align-items:center; min-height:44px; padding:12px 0; font-size:16px; }
.guide-questions { margin:0; padding:0; list-style:none; counter-reset:question; }
.guide-questions li { counter-increment:question; display:grid; grid-template-columns:25px minmax(0,1fr); gap:20px; padding:0 0 16px; margin-bottom:16px; border-bottom:1px solid var(--line); }
.guide-questions li:last-child { padding:0; margin:0; border:0; }
.guide-questions li:before { content:counter(question); font:700 27px/1 var(--display); color:var(--number); }
.guide-questions h3 { font:600 20px/1.3 var(--body); margin-bottom:4px; }
.guide-questions p { font-size:17px; line-height:1.45; }
.scope-and-visit { border-top:1px solid var(--line); padding-top:23px; padding-bottom:28px; display:grid; grid-template-columns:1.25fr minmax(0,1fr); gap:40px; }
.scope h2,.visit h2 { font-size:26px; margin-bottom:12px; }
.scope p,.visit p { font-size:17px; line-height:1.5; }
.scope .scope-limit { font-size:14px; color:var(--quiet); margin-top:11px; }
.visit { border-left:4px solid var(--signal); padding-left:20px; }
.visit .hours { margin-top:13px; }
.section { border-top:1px solid var(--line); padding:28px 0; }
.brief-intro { margin-bottom:27px; display:grid; grid-template-columns:160px minmax(0,1fr); column-gap:36px; row-gap:14px; }
.brief-intro .eyebrow { grid-column:1; grid-row:1; font-size:12px; letter-spacing:0; }
.brief-intro h2 { grid-column:1; grid-row:2; font-size:29px; }
.brief-intro>p:not(.eyebrow) { grid-column:2; grid-row:1; font-size:17px; line-height:1.5; }
.draft-notice { grid-column:2; grid-row:2; padding:14px 16px; border-left:4px solid var(--signal); background:#f0f2ed; }
.draft-notice b { font:12px/1.4 var(--mono); }
.draft-notice p { font-size:14px; line-height:1.5; margin-top:7px; }
.brief-intro>p.availability-note { grid-row:3; font-size:14px; color:var(--quiet); }
.brief-workspace { min-width:0; }
.field { display:flex; flex-direction:column; margin-bottom:23px; min-width:0; }
.field label { font-size:16px; font-weight:600; margin-bottom:8px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 12px; }
.field label span { font-weight:400; font-size:12px; color:var(--quiet); align-self:center; }
.field input,.field textarea,.field select { width:100%; min-width:0; min-height:52px; color:var(--ink); background:var(--paper); border:1px solid #7a8c87; border-radius:0; padding:12px 13px; font-size:16px; }
.field textarea { resize:vertical; min-height:126px; }
.field input::placeholder,.field textarea::placeholder { color:#53615d; }
.field select { padding-right:30px; }
.field-pair { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:20px; }
.field-hint { font-size:13px; margin-top:7px; color:var(--quiet); }
.field-error { color:#952614; font-size:14px; margin-top:6px; font-weight:600; }
.field [aria-invalid=true] { border:2px solid #952614; }
.form-error-summary { padding:16px 18px; border:2px solid #952614; margin-bottom:24px; background:#fff0e7; font-size:16px; }
.form-error-summary ul { padding-left:20px; margin-bottom:0; }
.form-error-summary li { margin-top:8px; }
.form-error-summary a { text-decoration:underline; }
.photo-reminder { display:flex; gap:15px; padding:16px 0; margin:0 0 20px; border-top:1px solid var(--line); font-size:14px; color:var(--quiet); }
.photo-reminder>span { font-size:26px; line-height:1; color:var(--number); }
form>.button { width:100%; font-size:19px; }
.result-heading { border-top:4px solid var(--signal); padding-top:22px; }
.result-heading h3 { font:700 34px/1.15 var(--display); text-transform:uppercase; margin:12px 0; }
.result-heading>p:not(.eyebrow) { font-size:16px; line-height:1.5; }
.draft-result pre { white-space:pre-wrap; overflow-wrap:anywhere; background:#f0f2ed; border:1px solid var(--line); padding:22px; font:14px/1.65 var(--mono); margin:23px 0; }
.draft-actions { display:flex; gap:14px; align-items:center; flex-wrap:wrap; }
.draft-actions .button { font-size:16px; gap:20px; padding-inline:16px; }
.text-button { border:0; background:transparent; font-size:15px; text-decoration:underline; text-underline-offset:4px; padding:13px 5px; color:var(--ink); min-height:44px; max-width:100%; text-align:left; }
.clear-button { padding-left:0; }
.action-status { min-height:24px; font-size:14px; margin-top:16px; line-height:1.5; }
.noscript-note { border:1px solid var(--line); padding:24px; }
.noscript-note h3 { font-size:23px; font-weight:600; margin-bottom:14px; }
.questions-layout { display:grid; grid-template-columns:160px minmax(0,1fr); gap:36px; }
.questions h2 { margin-top:12px; }
.faq-list { border-top:1px solid var(--ink); min-width:0; }
.faq-list details { border-bottom:1px solid var(--line); }
.faq-list summary { list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:20px; min-height:68px; padding:18px 0; font-size:17px; font-weight:600; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary>span { font-size:25px; line-height:1; color:var(--number); font-weight:400; flex:none; }
.faq-list details[open] summary>span { transform:rotate(45deg); }
.faq-list details p { font-size:16px; color:var(--quiet); padding:0 28px 22px 0; line-height:1.5; }
.logo-review h2 { margin:12px 0 16px; }
.logo-review>p:not(.eyebrow) { max-width:70ch; font-size:16px; line-height:1.5; }
.logo-review figure { margin:22px 0; border:1px solid var(--line); background:#fff; }
.logo-review img { width:100%; height:auto; object-fit:contain; }
.logo-review figcaption { padding:12px 15px; border-top:1px solid var(--line); color:var(--quiet); font:12px/1.5 var(--mono); }
.logo-review .logo-review-note { padding:16px; border-left:4px solid var(--signal); background:#f0f2ed; }
.review-status { border-top:1px solid var(--line); padding:25px 0 28px; }
.review-status h2 { margin:12px 0 16px; }
.review-status p:not(.eyebrow) { font-size:14px; line-height:1.5; color:var(--quiet); max-width:70ch; }
.review-status p+p { margin-top:13px; }
.site-footer { display:flex; justify-content:space-between; gap:25px; border-top:1px solid var(--line); padding-top:20px; font:12px/1.5 var(--mono); color:var(--quiet); }
.site-footer p { max-width:420px; }
.site-footer a { min-height:44px; padding:6px 0; }
@media(max-width:600px) {
  body { font-size:16px; }
  .preview-bar { padding:10px 18px; font-size:12px; gap:12px; }
  .page { padding:0 22px 25px; }
  .site-header { padding:22px 0 21px; gap:16px; }
  .wordmark b { font-size:31px; }
  .wordmark small { font-size:10px; letter-spacing:.8px; margin-top:8px; }
  .owner { font-size:12px; max-width:180px; }
  .page-nav { font-size:12px; gap:6px 19px; }
  .opening { padding-top:21px; }
  .eyebrow { font-size:12px; letter-spacing:0; }
  h1 { font-size:clamp(42px,12vw,68px); line-height:.94; margin-top:14px; }
  h1 span { margin-left:0; }
  .hero-lead { font-size:17px; line-height:1.5; margin:16px 0 18px; }
  .views { padding-top:24px; margin-inline:-22px; }
  .view-label { font-size:12px; padding:5px 6px; border-left-width:3px; }
  .whole { left:12px; top:13px; }
  .break { top:13px; left:59%; }
  .size { top:56%; left:59%; }
  .art-note { font-size:12px; line-height:1.5; margin-top:10px; }
  .action-row { display:block; margin:17px 0 25px; }
  .button { font-size:17px; padding:12px 16px; min-height:55px; gap:23px; }
  .button span { font-size:24px; }
  .action-row>p { font-size:13px; max-width:100%; margin-top:10px; }
  .photo-guide { display:block; padding-block:23px; }
  .photo-guide>div>h2 { font-size:25px; margin:12px 0 21px; }
  .photo-guide>.views { margin-top:24px; }
  .photo-guide>.art-note { margin-top:10px; }
  .section-heading,.project-heading { display:block; }
  .section-heading>h2 { font-size:29px; margin:12px 0; }
  .section-heading>p:not(.eyebrow),.project-heading>p:not(.eyebrow) { font-size:16px; }
  .project-heading>h3 { font-size:32px; margin:12px 0; }
  .project-state { padding:12px; }
  .project-photo img { max-height:480px; }
  .project-frames { grid-template-columns:minmax(0,1fr); gap:20px; }
  .project-frames img { max-height:480px; }
  .project-quote>h2 { font-size:29px; }
  .quote-copy { font-size:19px; }
  .photo-guide>h2 { font-size:25px; margin-bottom:21px; }
  .guide-questions li { gap:13px; grid-template-columns:22px minmax(0,1fr); padding-bottom:15px; margin-bottom:15px; }
  .guide-questions h3 { font-size:18px; }
  .guide-questions p { font-size:16px; }
  .scope-and-visit { display:block; padding-top:24px; }
  .scope h2,.visit h2 { font-size:25px; }
  .scope p,.visit p { font-size:16px; }
  .scope .scope-limit { font-size:14px; }
  .visit { padding-left:16px; margin-top:24px; }
  .visit .hours { margin-top:10px; }
  .brief-intro { display:block; }
  .brief-intro h2 { font-size:29px; margin:13px 0 18px; }
  .brief-intro>p:not(.eyebrow) { font-size:16px; }
  .draft-notice { margin-top:20px; }
  .brief-intro>p.availability-note { margin-top:18px; font-size:14px; }
  .field-pair { grid-template-columns:minmax(0,1fr); gap:0; }
  form>.button { font-size:17px; }
  .draft-result pre { padding:16px; }
  .questions-layout { display:block; }
  .questions h2 { font-size:26px; margin:12px 0 22px; }
  .site-footer { display:block; }
  .site-footer a { display:inline-flex; align-items:center; gap:8px; margin-top:10px; }
}
@media(max-width:350px) {
  .page { padding-inline:18px; }
  .wordmark b { font-size:28px; }
  .owner { max-width:145px; }
  h1 { font-size:42px; }
  .hero-lead { font-size:16px; }
  .views { margin-inline:-18px; }
  .page-nav { gap:5px 13px; }
  .button { font-size:16px; gap:20px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
}
@media print {
  .preview-bar,.site-header,.page-nav,.site-footer,.draft-actions,.clear-button { display:none; }
  html { scroll-behavior:auto; }
  body,.page { background:white; color:black; }
  .study { width:100%; }
  .page { padding:0; }
  .section { padding-block:20px; }
  a { text-decoration:none; }
}

/* Workshop Stamp integration: original pixels, cropped only by layout. */
:root {
  --paper:#faf9f2; --ink:#232b2e; --blue:#064895; --signal:#ffc600;
  --number:#775d0b; --focus:#064895; --quiet:#4c585b; --line:#cbd0ca;
  --ease:cubic-bezier(.2,.7,.2,1); --quick:180ms; --entry:480ms;
}
body { background:#e7e9e3; line-height:1.55; }
.study { width:min(1160px,100%); }
.page { padding:0 56px 24px; }
.preview-bar { padding:10px 24px; font-size:12px; }
.site-header { padding:27px 0 24px; border-bottom:2px solid var(--ink); }
.wordmark { display:inline-flex; align-items:center; gap:15px; max-width:100%; color:var(--blue); }
.wordmark .brand-name { display:block; }
.wordmark b { font-size:44px; line-height:.9; letter-spacing:.5px; }
.wordmark small { font:600 10px/1.3 var(--body); letter-spacing:1.9px; margin-top:7px; white-space:nowrap; }
.spark-art { display:block; position:relative; overflow:hidden; aspect-ratio:1100/365; width:88px; flex:none; mix-blend-mode:darken; }
.spark-art img { position:absolute; width:139.636364%; max-width:none; height:auto; left:-25.272727%; top:-24.657534%; }
.owner { font-size:13px; line-height:1.6; }
.owner strong { font-weight:600; }
.page-nav { padding:6px 0; gap:12px 32px; border-bottom:1px solid var(--line); font-size:13px; }
.page-nav a { gap:10px; }
.page-nav a>span:first-child { color:var(--number); font:11px/1.4 var(--mono); }
.page-nav .nav-brief { margin-left:auto; color:var(--blue); font-weight:600; }
.page-nav .nav-brief>span { color:var(--blue); font:20px/1 var(--body); }
.opening { display:grid; grid-template-columns:minmax(0,1fr) 290px; align-items:center; gap:42px; padding:54px 0 50px; }
.hero-copy { min-width:0; }
.hero .eyebrow { color:var(--blue); font-size:11px; letter-spacing:.1em; }
h1 { font-size:clamp(76px,7.5vw,108px); line-height:.94; margin-top:18px; letter-spacing:0; }
h1 span { margin-left:0; }
.hero-lead { font-size:18px; line-height:1.6; margin:24px 0; max-width:45ch; }
.hero-actions { display:flex; align-items:center; gap:26px; flex-wrap:wrap; }
.button { background:var(--blue); border-top:3px solid var(--signal); font-size:17px; line-height:1.35; min-height:56px; padding:14px 20px; gap:25px; }
.button:hover { background:#053a77; }
.button-outline { background:transparent; color:var(--blue); border:1px solid var(--blue); }
.button-outline:hover { background:#e8edf0; }
.text-link { color:var(--blue); font-size:15px; gap:18px; text-decoration-thickness:1px; }
.hero-status { margin-top:13px; color:var(--quiet); font-size:12px; line-height:1.5; }
.hero-signature { position:relative; padding:28px 0; color:var(--blue); text-align:center; align-self:center; }
.hero-signature .spark-art { width:100%; margin-bottom:19px; }
.hero-signature .brand-name b { display:block; font:800 64px/.95 var(--body); letter-spacing:1px; }
.hero-signature .brand-name small { display:block; font:700 14px/1.4 var(--body); letter-spacing:4.5px; margin-top:13px; }
.hero-signature>p { font:11px/1.5 var(--mono); color:var(--quiet); margin-top:26px; }
.signature-rule { display:block; width:36px; height:3px; background:var(--signal); margin:19px auto 0; }
.section { padding:42px 0; }
h2 { font-size:34px; line-height:1.1; }
.section-heading { grid-template-columns:280px minmax(0,1fr); gap:18px 40px; margin-bottom:28px; }
.section-heading>.eyebrow { color:var(--blue); font-size:11px; }
.section-heading>h2 { font-size:40px; }
.section-heading>p:not(.eyebrow) { font-size:17px; line-height:1.6; max-width:46ch; }
.projects { border-top:3px solid var(--ink); }
.project-brackets { display:grid; grid-template-columns:280px minmax(0,1fr); gap:40px; align-items:start; }
.project-heading { display:block; padding:24px 0; }
.project-heading>.eyebrow { color:var(--quiet); font-size:11px; }
.project-heading>h3 { font-size:38px; line-height:1.05; margin:16px 0; }
.project-heading>p:not(.eyebrow) { font-size:16px; line-height:1.65; max-width:48ch; }
.project-state { font-size:11px; color:var(--ink); background:#f3ecd8; border-left-color:var(--signal); line-height:1.5; }
.project-photo { background:#e8eae5; }
.project-photo img { max-height:500px; }
.project-photo figcaption,.project-frames figcaption { font:11px/1.6 var(--mono); }
.project+.project { margin-top:38px; padding-top:14px; }
.project-trailer .project-heading { display:grid; grid-template-columns:280px minmax(0,1fr); column-gap:40px; row-gap:12px; }
.project-trailer .project-heading>.eyebrow { grid-column:1/-1; grid-row:auto; }
.project-trailer .project-heading>h3 { margin:0; }
.project-trailer .project-heading>p:not(.eyebrow) { grid-column:2; align-self:end; }
.project-frames { gap:18px; }
.project-frames img { max-height:460px; }
.project-note { font-size:12px; margin-top:14px; }
.photo-guide { padding:42px 0; grid-template-columns:280px minmax(0,1fr); gap:32px 40px; }
.photo-guide>div>h2 { font-size:38px; margin-top:15px; }
.photo-guide>div>.eyebrow { color:var(--blue); font-size:11px; }
.guide-questions h3 { font-size:19px; line-height:1.4; }
.guide-questions p { font-size:16px; line-height:1.6; }
.views { background:#f0f1e9; }
.scope-and-visit { padding:28px 0 42px; gap:40px; }
.scope h2,.visit h2 { font-size:28px; }
.scope p,.visit p { font-size:16px; line-height:1.65; }
.project-quote { padding:36px 32px; background:#ecefe9; border-top:3px solid var(--blue); }
.project-quote>.eyebrow { font-size:11px; color:var(--blue); }
.project-quote>h2 { font-size:38px; }
.quote-copy { font-size:20px; line-height:1.6; }
.quote-limit { max-width:76ch; }
.brief-section { border-top:0; padding-top:48px; }
.brief-layout { display:grid; grid-template-columns:280px minmax(0,1fr); gap:40px; align-items:start; }
.brief-intro { display:block; margin:0; }
.brief-intro .eyebrow { font-size:11px; color:var(--blue); }
.brief-intro h2 { font-size:38px; margin:16px 0 22px; }
.brief-intro>p:not(.eyebrow) { font-size:16px; line-height:1.65; }
.draft-notice { margin-top:24px; padding:16px; }
.draft-notice b { color:var(--blue); }
.brief-intro>p.availability-note { margin-top:25px; font-size:13px; }
.field { margin-bottom:22px; }
.field-pair { gap:18px; }
.field input,.field textarea,.field select { background:#fffef8; }
.field input:focus,.field textarea:focus,.field select:focus { border-color:var(--blue); }
form>.button { font-size:17px; }
.questions-layout { grid-template-columns:280px minmax(0,1fr); gap:40px; }
.questions h2 { font-size:34px; }
.faq-list summary { font-size:16px; }
.site-footer { align-items:center; gap:28px; border-top:2px solid var(--ink); padding-top:28px; }
.site-footer .wordmark { padding:0; }
.footer-wordmark .spark-art { width:64px; }
.footer-wordmark b { font-size:36px; }
.footer-wordmark small { font-size:8px; letter-spacing:1.5px; }
.site-footer>p { margin-left:auto; font:12px/1.7 var(--body); }
.site-footer>p>span { color:var(--quiet); }
.footer-top { display:flex; align-items:center; gap:12px; font:12px/1.4 var(--body); color:var(--blue); }
.private-review { border-top:1px solid var(--line); margin-top:28px; font-size:12px; }
.private-review>summary { display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:48px; cursor:pointer; list-style:none; }
.private-review>summary::-webkit-details-marker { display:none; }
.private-review>summary>span { font-size:22px; line-height:1; }
.private-review[open]>summary>span { transform:rotate(45deg); }
.private-review-body { border-top:1px solid var(--line); padding-top:16px; }
.logo-review { border:0; padding-top:15px; }
.logo-review h2,.review-status h2 { font-size:28px; }
.logo-review>p:not(.eyebrow) { font-size:14px; }
.logo-review figure { max-width:680px; }
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  .button,.text-link,.page-nav a,.footer-top { transition:background-color var(--quick) ease,color var(--quick) ease; }
  .button>span,.text-link>span,.nav-brief>span,.footer-top>span { transition:transform var(--quick) var(--ease); }
  .button:hover>span,.button:focus-visible>span,.nav-brief:hover>span { transform:translate(2px,-2px); }
  .text-link:hover>span { transform:translateY(3px); }
  .footer-top:hover>span { transform:translateY(-3px); }
  .button:active { transform:translateY(1px); }
}
@media(prefers-reduced-motion:no-preference) {
  .hero-copy { animation:page-entry var(--entry) var(--ease) both; }
  .hero-signature .spark-art { animation:mark-entry 520ms var(--ease) both; }
  .faq-list summary>span,.private-review>summary>span { transition:transform var(--quick) var(--ease); }
}
@keyframes page-entry { from { transform:translateY(7px); } to { transform:none; } }
@keyframes mark-entry { from { transform:translateX(-10px); opacity:.75; } to { transform:none; opacity:1; } }
@media(min-width:901px) { .brief-intro { position:sticky; top:28px; } }
@media(max-width:1050px) and (min-width:701px) {
  .page { padding-inline:38px; }
  .opening { grid-template-columns:minmax(0,1fr) 230px; gap:28px; }
  h1 { font-size:86px; }
  .hero-signature .brand-name b { font-size:52px; }
  .hero-signature .brand-name small { font-size:12px; letter-spacing:3px; }
  .section-heading,.project-brackets,.project-trailer .project-heading,.photo-guide,.brief-layout,.questions-layout { grid-template-columns:220px minmax(0,1fr); gap:28px; }
}
@media(max-width:700px) {
  .page { padding-inline:24px; }
  .site-header { padding:22px 0; gap:18px; }
  .wordmark { gap:12px; }
  .wordmark b { font-size:38px; }
  .wordmark small { font-size:9px; letter-spacing:1.5px; }
  .wordmark .spark-art { width:64px; }
  .owner { font-size:11px; }
  .page-nav { gap:8px 22px; font-size:12px; }
  .page-nav .nav-brief { margin-left:0; }
  .opening { grid-template-columns:minmax(0,1fr); gap:28px; padding:36px 0; }
  h1 { font-size:clamp(56px,12vw,84px); line-height:.95; margin-top:16px; }
  .hero-lead { font-size:17px; margin:20px 0; }
  .hero-actions { gap:12px 24px; }
  .hero-signature { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px 22px; border-top:1px solid var(--line); padding:25px 0 0; }
  .hero-signature .spark-art { width:132px; margin:0; }
  .hero-signature .brand-name b { font-size:32px; line-height:1; letter-spacing:.5px; }
  .hero-signature .brand-name small { font-size:8px; letter-spacing:1.4px; margin-top:6px; }
  .hero-signature>p,.signature-rule { display:none; }
  .section { padding:32px 0; }
  .section-heading,.project-brackets,.project-trailer .project-heading,.photo-guide,.brief-layout,.questions-layout { display:block; }
  .section-heading>h2 { font-size:34px; margin:14px 0; }
  .section-heading>p:not(.eyebrow) { font-size:16px; }
  .project-heading { padding:12px 0 22px; }
  .project-heading>h3 { font-size:34px; margin:14px 0; }
  .project-trailer .project-heading>h3 { margin:14px 0; }
  .project-photo img { max-height:440px; }
  .project+.project { margin-top:30px; padding-top:24px; }
  .project-frames { grid-template-columns:minmax(0,1fr); gap:16px; }
  .project-frames img { max-height:440px; }
  .photo-guide { padding:32px 0; }
  .photo-guide>div>h2 { font-size:34px; margin:14px 0 24px; }
  .views { margin-inline:0; }
  .photo-guide>.art-note { margin-top:12px; }
  .scope-and-visit { display:block; padding-bottom:32px; }
  .project-quote { padding:26px 20px; margin-inline:-4px; }
  .project-quote>h2 { font-size:32px; }
  .quote-copy { font-size:18px; }
  .brief-section { padding-top:36px; }
  .brief-intro { margin-bottom:28px; }
  .brief-intro h2 { font-size:34px; margin:14px 0 20px; }
  .brief-intro>p.availability-note { margin-top:20px; }
  .field-pair { grid-template-columns:minmax(0,1fr); gap:0; }
  .questions h2 { font-size:32px; }
  .site-footer { display:flex; flex-wrap:wrap; gap:22px; padding-top:26px; }
  .site-footer>p { margin:0; width:100%; }
  .site-footer .footer-top { margin:0; }
}
@media(max-width:450px) {
  .preview-bar { padding-inline:18px; gap:10px; font-size:11px; }
  .page { padding-inline:22px; }
  .site-header { flex-wrap:wrap; gap:14px; padding-block:22px 18px; }
  .owner { width:100%; max-width:none; text-align:left; font:11px/1.5 var(--mono); }
  .owner br { display:none; }
  .owner strong { margin-right:12px; }
  .page-nav { column-gap:24px; row-gap:0; }
  .page-nav .nav-brief { flex-basis:100%; justify-content:space-between; border-top:1px solid var(--line); }
  .opening { padding-top:30px; }
  h1 { font-size:clamp(56px,16vw,70px); }
  .hero-actions { gap:4px 20px; }
  .hero-actions .button { width:100%; }
  .hero-actions .text-link { margin-top:6px; }
  .hero-signature { justify-content:space-between; gap:12px; }
  .hero-signature .spark-art { width:116px; }
}
@media(max-width:350px) {
  .page { padding-inline:18px; }
  .preview-bar { padding-inline:18px; }
  .preview-bar a { max-width:85px; }
  .page-nav { column-gap:18px; }
  .page-nav a { gap:8px; }
  h1 { font-size:56px; }
  .hero-signature .spark-art { width:101px; }
  .hero-signature .brand-name b { font-size:29px; }
  .hero-signature .brand-name small { font-size:7px; letter-spacing:1.35px; }
  .hero-lead { font-size:16px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media print {
  .hero-signature,.private-review { display:none; }
  .opening,.brief-layout,.project-brackets { display:block; }
  .brief-intro { position:static; }
}
.brief-step { border:0; border-top:1px solid var(--line); padding:20px 0 0; margin:0; min-width:0; }
.brief-step legend { font:600 16px/1.5 var(--body); padding:0 18px 0 0; color:var(--ink); }
.brief-step legend>span { color:var(--blue); font:11px/1.5 var(--mono); margin-right:12px; }
.owner a { display:inline-flex; min-height:28px; align-items:center; color:var(--blue); text-decoration:none; }
.owner a:hover { text-decoration:underline; }
.contact-options { display:flex; flex-wrap:wrap; gap:4px 26px; margin-top:20px; }
.contact-options a { display:inline-flex; align-items:center; gap:12px; min-height:44px; color:var(--blue); font-size:14px; text-decoration-thickness:1px; }
.handoff-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:24px; }
.handoff-actions .button { font-size:16px; gap:18px; }
.handoff-note { font-size:13px; line-height:1.65; color:var(--quiet); margin:16px 0 24px; }
.footer-contact { margin-left:auto; font:12px/1.6 var(--body); }
.footer-contact a { display:block; min-height:36px; padding-block:8px; color:var(--blue); overflow-wrap:anywhere; }
@media(max-width:700px) { .footer-contact { width:100%; margin:0; } }
@media(max-width:450px) { .owner a { min-height:36px; } }
@media print { .handoff-actions,.handoff-note,.contact-options { display:none; } }
/* Native-scroll story: idea, preparation, actual work, then the visitor's brief. */
html { scroll-padding-top:88px; }
.page-nav { position:sticky; top:0; z-index:8; display:grid; grid-template-columns:1fr 1.3fr 1fr 1.2fr; gap:8px 20px; background:var(--paper); border-top:1px solid var(--line); border-bottom:2px solid var(--ink); }
.page-nav a { min-width:0; }
.page-nav .nav-brief { margin:0; justify-content:flex-end; }
.page-nav .nav-brief>span:first-child { color:var(--number); font:11px/1.4 var(--mono); }
.hero .eyebrow { letter-spacing:.07em; }
@media(prefers-reduced-motion:no-preference) {
  .story-entered .story-heading,.story-entered>.story-heading { animation:story-entry 460ms var(--ease) both; }
}
@keyframes story-entry { from { transform:translateY(12px); opacity:.78; } to { transform:none; opacity:1; } }
@media(max-width:700px) {
  html { scroll-padding-top:116px; }
  .page-nav { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 12px; font-size:11px; padding:5px 0; }
  .page-nav a { gap:8px; min-height:42px; }
  .page-nav .nav-brief { border:0; flex-basis:auto; justify-content:space-between; }
  .page-nav .nav-brief>span:last-child { margin-left:auto; }
}
@media print { .page-nav { display:none; } }
@media(min-width:901px) { .brief-intro { top:88px; } }
:root { --journey-clearance:128px; }
html { scroll-padding-top:var(--journey-clearance); }
.brief-intro { position:static; }
@media(max-width:700px) { :root { --journey-clearance:192px; } }
/* Cobalt workshop graphic: one cutout, one diagonal, actual work immediately below. */
:root { --cobalt:#073f88; --hero-paper:#fffcf0; }
body { background:#e3e6df; }
.study { width:min(1360px,100%); }
.page { padding-inline:64px; }
.preview-bar { padding-block:7px; }
.site-header { padding-block:22px; }
.page-nav { display:flex; gap:16px 38px; justify-content:flex-start; }
.page-nav a { font-size:13px; }
.page-nav .nav-brief { margin-left:auto; }
.hero-scene { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) 560px; align-items:center; gap:20px; padding:42px 64px 55px; margin-inline:-64px; background:linear-gradient(105deg,#092f66 0%,#073f88 62%,#0852a3 100%); color:var(--hero-paper); overflow:visible; }
.hero-scene::before { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background-image:linear-gradient(90deg,transparent 50%,#ffffff08 50%,#ffffff08 calc(50% + 1px),transparent calc(50% + 1px)),linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff06 1px,transparent 1px); background-size:100% 100%,44px 44px,44px 44px; mask-image:linear-gradient(90deg,transparent 22%,black 100%); }
.hero-scene::after { content:""; position:absolute; z-index:-1; right:4%; bottom:30px; width:43%; height:45px; transform:skewX(-28deg); background:linear-gradient(180deg,#021d4580,#ffffff0a); border-top:1px solid #a5c4e64d; }
.hero-scene .hero-copy { position:relative; z-index:2; min-width:0; }
.hero-scene .eyebrow { color:#f6d04b; font-size:11px; letter-spacing:.09em; line-height:1.6; }
.hero-scene h1 { font:700 italic clamp(76px,7vw,102px)/.95 var(--display); letter-spacing:.5px; text-transform:uppercase; margin:24px 0; max-width:640px; }
.hero-scene h1 span { display:block; margin:0; }
.hero-scene h1 em { display:block; font-style:inherit; color:var(--signal); }
.hero-scene .hero-lead { max-width:44ch; margin:0 0 26px; font:17px/1.65 var(--body); color:var(--hero-paper); }
.hero-scene .hero-actions { gap:12px 26px; }
.hero-scene .text-link { color:var(--hero-paper); font-size:15px; }
.hero-scene .hero-status { color:#d9e4ed; font-size:11px; margin-top:19px; max-width:44ch; }
.hero-cutout { position:relative; z-index:1; width:600px; margin:-26px -40px -110px -20px; pointer-events:none; }
.hero-cutout img { width:100%; height:auto; object-fit:contain; }
.hero-floor-note { position:absolute; right:64px; bottom:16px; color:#d3e0ef; font:10px/1.5 var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.projects { padding-top:75px; border-top:0; }
.section-heading { grid-template-columns:280px minmax(0,1fr); }
.section-heading>h2 { font-size:48px; }
.project-brackets { grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr); align-items:center; gap:48px; }
.project-brackets .project-heading { max-width:300px; }
.project-heading>h3 { font-size:44px; }
.project-photo { position:relative; border:1px solid var(--ink); background:#e1e5dd; }
.project-photo::before { content:""; position:absolute; top:-8px; right:24px; width:50px; height:8px; background:var(--blue); transform:skewX(-28deg); }
.project-photo img { max-height:560px; }
.project-photo figcaption { padding:16px 18px; }
.project-trailer { margin-left:7%; }
.project-trailer .project-heading { grid-template-columns:300px minmax(0,1fr); gap:24px 40px; }
.project-frames { gap:20px; }
.project-frames figure { border:0; background:transparent; }
.project-frames img { max-height:520px; }
.project-frames figcaption { background:transparent; padding:13px 0; border-top:1px solid var(--ink); }
.button:not(.button-outline) { position:relative; isolation:isolate; background:transparent; border-top:0; }
.button:not(.button-outline)::before { content:""; position:absolute; z-index:-1; inset:0; pointer-events:none; background:linear-gradient(var(--signal) 0 3px,var(--blue) 3px); clip-path:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,0 100%); }
.button:not(.button-outline):hover::before { background:linear-gradient(var(--signal) 0 3px,#053a77 3px); }
.hero-scene .button-primary { color:#102849; font-weight:700; min-height:58px; padding-inline:22px; }
.hero-scene .button-primary::before { background:linear-gradient(#fff1a0 0 3px,var(--signal) 3px); }
.hero-scene .button-primary:hover::before { background:linear-gradient(#fff6be 0 3px,#ffda37 3px); }
.hero-scene :is(a,button):focus-visible { outline-color:#fff; }
@media(prefers-reduced-motion:no-preference) { .hero-cutout img { animation:cutout-entry 520ms var(--ease) both; } }
@keyframes cutout-entry { from { transform:translateY(8px) rotate(-1deg); opacity:.92; } to { transform:none; opacity:1; } }
@media(max-width:1150px) and (min-width:701px) {
  .page { padding-inline:38px; }
  .hero-scene { margin-inline:-38px; padding:38px 38px 55px; grid-template-columns:minmax(0,1fr) 43%; gap:14px; }
  .hero-scene h1 { font-size:76px; }
  .hero-cutout { width:calc(100% + 38px); margin:0 -24px -100px -14px; }
  .hero-scene .hero-lead { font-size:16px; }
  .hero-floor-note { right:38px; }
  .project-brackets { gap:28px; }
}
@media(max-width:700px) {
  .page { padding-inline:24px; }
  .site-header { padding-block:20px 16px; }
  .page-nav { flex-wrap:nowrap; gap:12px; padding-block:6px; }
  .page-nav a { font-size:12px; min-height:42px; }
  .page-nav .nav-brief { margin-left:auto; justify-content:flex-end; gap:6px; }
  .hero-scene { display:block; margin-inline:-24px; padding:30px 24px 28px; }
  .hero-scene .eyebrow { font-size:10px; letter-spacing:.05em; }
  .hero-scene h1 { font-size:clamp(60px,13vw,84px); margin:20px 0; }
  .hero-scene .hero-lead { font-size:16px; max-width:42ch; margin-bottom:23px; }
  .hero-scene .hero-actions { gap:10px 20px; }
  .hero-scene .hero-status { margin-top:14px; }
  .hero-cutout { width:min(100%,390px); margin:22px auto -60px; }
  .hero-floor-note { display:none; }
  .hero-scene::after { right:11%; bottom:10px; width:74%; height:34px; }
  .projects { padding-top:66px; }
  .section-heading>h2 { font-size:38px; }
  .project-brackets,.project-trailer .project-heading { display:block; }
  .project-brackets .project-heading { max-width:none; }
  .project-heading>h3 { font-size:36px; }
  .project-photo img { max-height:480px; }
  .project-trailer { margin-left:0; }
  .project-frames img { max-height:480px; }
}
@media(max-width:450px) {
  .page { padding-inline:22px; }
  .hero-scene { margin-inline:-22px; padding-inline:22px; }
  .hero-scene h1 { font-size:62px; }
  .hero-scene .hero-actions .button { width:auto; }
  .hero-scene .hero-actions .text-link { margin:0; font-size:14px; }
  .hero-cutout { width:min(100%,330px); }
}
@media(max-width:350px) {
  .page { padding-inline:18px; }
  .page-nav { gap:9px; }
  .page-nav a { font-size:11px; }
  .hero-scene { margin-inline:-18px; padding-inline:18px; }
  .hero-scene h1 { font-size:56px; }
  .hero-scene .hero-actions .button { width:100%; }
  .hero-scene .hero-actions .text-link { min-height:44px; }
}
@media print { .hero-scene { color:black; background:white; display:block; margin:0; padding:20px 0; } .hero-cutout,.hero-scene::before,.hero-scene::after,.hero-floor-note { display:none; } .hero-scene h1 em,.hero-scene .hero-lead { color:black; } }
@media(min-width:701px) { .hero-cutout { top:32px; } }
@media(max-width:700px) { .hero-cutout { top:0; margin-bottom:-28px; } }
@media(max-width:450px) {
  .hero-scene .hero-status,.hero-scene .hero-actions .text-link { display:none; }
  .hero-cutout { width:min(100%,280px); }
}
@media(max-width:350px) { .hero-scene h1 { font-size:48px; } }
/* Newly approved refined badge; service wording stays crisp HTML. */
.site-header { padding-block:16px; }
.wordmark { display:inline-flex; flex-direction:column; align-items:center; gap:0; }
.brand-badge { display:block; width:200px; max-width:100%; mix-blend-mode:darken; }
.brand-badge img { width:100%; height:auto; }
.wordmark .service-descriptor { font:500 11px/1.4 var(--body); letter-spacing:.02em; margin-top:6px; color:var(--ink); white-space:normal; text-align:center; }
.footer-wordmark .brand-badge { width:160px; }
.hero-scene { padding-top:36px; padding-bottom:45px; }
.hero-scene h1 { font-size:90px; }
@media(max-width:1150px) and (min-width:701px) { .hero-scene h1 { font-size:76px; } }
@media(max-width:700px) {
  .site-header { padding-block:14px; }
  .brand-badge { width:190px; }
  .hero-scene { padding-top:28px; padding-bottom:28px; }
  .hero-scene h1 { font-size:clamp(60px,13vw,84px); }
}
@media(min-width:351px) and (max-width:700px) {
  .site-header { flex-wrap:nowrap; }
  .owner { width:auto; max-width:116px; text-align:right; }
  .owner br { display:block; }
  .owner strong { margin-right:0; }
}
@media(max-width:450px) { .hero-scene h1 { font-size:62px; } .brand-badge { width:180px; } }
@media(max-width:350px) {
  .site-header { padding-block:12px; gap:8px; }
  .brand-badge { width:170px; }
  .wordmark .service-descriptor { font-size:10px; margin-top:4px; }
  .owner a { min-height:24px; }
  .hero-scene h1 { font-size:48px; }
}

/* Senior polish: legible evidence and guidance, usable controls, same approved scene. */
body { line-height:1.6; }
.preview-bar { font-size:14px; line-height:1.5; gap:6px 16px; flex-wrap:wrap; }
.wordmark .service-descriptor { font-size:14px; line-height:1.5; max-width:24ch; margin-top:8px; }
.owner { font:14px/1.6 var(--body); }
.owner a,.footer-contact a { min-height:44px; }
.page-nav { gap:6px 28px; flex-wrap:wrap; padding-block:8px; }
.page-nav a { font-size:14px; min-height:48px; line-height:1.5; }
:is(.hero,.section,.photo-guide,.questions) .eyebrow { font-size:14px; line-height:1.6; letter-spacing:.035em; }
.hero-scene .hero-status { font-size:14px; line-height:1.6; }
.hero-floor-note { font-size:14px; }
.section-heading>p:not(.eyebrow),.project-heading>p:not(.eyebrow) { font-size:17px; line-height:1.65; }
.project-specs { margin:24px 0 0; font-size:16px; line-height:1.55; overflow-wrap:anywhere; }
.project-specs>div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:16px; padding:12px 0; border-top:1px solid var(--line); }
.project-specs dt { color:var(--quiet); }
.project-specs dd { margin:0; color:var(--ink); font-weight:600; }
.project-state { font:600 16px/1.55 var(--body); text-transform:none; padding:16px 18px; background:#fff1bb; }
.project-photo figcaption { font:16px/1.65 var(--body); color:var(--ink); padding:18px 20px; background:var(--paper); }
.project-frames figcaption { font:16px/1.6 var(--body); color:var(--ink); padding:14px 0; }
.project-gallery-note { font-size:16px; line-height:1.6; margin:20px 0; color:var(--quiet); }
.project-steps { list-style:none; counter-reset:project-step; margin:16px 0 28px; padding:0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.project-steps li { counter-increment:project-step; border-top:2px solid var(--blue); padding-top:14px; font-size:16px; line-height:1.55; }
.project-steps li::before { content:'0' counter(project-step); display:block; font:14px/1.6 var(--mono); color:var(--blue); margin-bottom:8px; }
.photo-guide>.guide-photo-set { grid-column:1/-1; }
.guide-disclosure { font:16px/1.65 var(--body); color:var(--ink); background:#eef1e9; border-left:4px solid var(--signal); padding:18px 20px; margin-bottom:28px; }
.guide-disclosure strong { font-weight:700; }
.guide-photos { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; align-items:start; }
.guide-view { min-width:0; border-top:2px solid var(--blue); }
.guide-view figcaption { padding:16px 0; }
.guide-view figcaption b { display:block; font:600 18px/1.5 var(--body); color:var(--ink); }
.guide-view figcaption b>span { margin-right:9px; font:14px/1.5 var(--mono); color:var(--blue); }
.guide-view figcaption p { font:16px/1.6 var(--body); color:var(--quiet); margin-top:6px; }
.guide-view img { width:100%; height:auto; max-height:540px; object-fit:contain; background:#e4e6df; }
.guide-view.media-failed { display:block; min-height:0; padding:0; }
.guide-photo-fallback,.guide-photo-set .media-status { font:16px/1.65 var(--body); color:var(--ink); background:#fff1bb; padding:18px; margin-top:16px; }
.scope .scope-limit,.quote-limit,.brief-intro>p.availability-note,.draft-notice p,.handoff-note,.photo-reminder,.field-hint,.field-error,.action-status { font-size:16px; line-height:1.65; color:var(--ink); }
.draft-notice b,.brief-step legend>span,.field label span { font-size:14px; line-height:1.5; }
.field-error { color:#952614; }
.form-error-summary { font-size:16px; line-height:1.65; }
.form-error-summary a { display:inline-block; padding-block:8px; min-height:44px; }
.handoff-note { padding:18px 20px; border-left:4px solid var(--signal); background:#eef1e9; margin-block:18px 24px; }
.contact-options a,.text-button,.footer-top { min-height:48px; font-size:16px; }
.footer-contact { font:14px/1.65 var(--body); }
.footer-contact a { font-size:16px; }
.noscript-note { font-size:16px; line-height:1.65; }
@media(max-width:700px) {
  .site-header { gap:14px; }
  .owner { font-size:14px; }
  .page-nav { gap:0 18px; }
  .page-nav a { font-size:14px; min-height:48px; }
  .section-heading>h2,.photo-guide>div>h2,.brief-intro h2 { font-size:38px; line-height:1.05; }
  .project-heading>h3 { font-size:36px; line-height:1.1; }
  .project-specs { margin-top:20px; }
  .project-brackets .project-heading { padding-bottom:28px; }
  .project-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-block:14px 24px; }
  .guide-disclosure { padding:18px; margin-bottom:24px; }
  .guide-photos { grid-template-columns:minmax(0,1fr); gap:30px; }
  .guide-view img { max-height:480px; }
  .guide-view figcaption { padding:16px 0; }
  .project-photo figcaption { padding:16px; }
  .field-pair { grid-template-columns:minmax(0,1fr); }
  .handoff-actions .button,.draft-actions .button { width:100%; justify-content:space-between; }
}
@media(max-width:450px) {
  .page-nav .nav-brief { flex-basis:100%; margin:0; justify-content:space-between; border-top:1px solid var(--line); }
  .site-header { align-items:center; }
  .owner { font-size:14px; }
  .wordmark .service-descriptor { font-size:14px; }
}
@media(max-width:350px) {
  .owner { font-size:14px; width:100%; max-width:none; text-align:left; }
  .owner a { min-height:44px; }
  .wordmark .service-descriptor { font-size:14px; }
  .guide-view img { max-height:440px; }
  .hero-scene h1 { font-size:48px; }
}

/* Reference-led hierarchy: a quiet masthead and a labelled brand illustration. */
:root { --journey-clearance:24px; }
.site-header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:24px; padding-block:12px; border-bottom:0; }
.site-header .brand-badge { width:160px; }
.site-header .service-descriptor { display:none; }
.site-header .owner { width:auto; max-width:none; font:14px/1.5 var(--body); text-align:right; }
.site-header .owner strong { margin:0; }
.site-header .owner br { display:block; }
.site-header .owner a { min-height:44px; }
.page-nav { position:static; display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px 26px; padding:0; border:0; background:transparent; }
.page-nav a { min-height:48px; font-size:14px; }
.page-nav .nav-brief { margin:0; flex-basis:auto; gap:7px; border:0; justify-content:flex-start; }
.hero-photo { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.8fr); gap:0; align-items:center; min-height:570px; padding:48px 64px; margin-inline:-64px; background:var(--cobalt); color:var(--hero-paper); overflow:hidden; }
.hero-photo .hero-copy { position:relative; z-index:2; width:min(100%,550px); padding:32px; background:#15252eea; border-left:4px solid var(--signal); }
.hero-photo .eyebrow { color:#ffe074; font:14px/1.6 var(--mono); letter-spacing:.02em; }
.hero-photo h1 { margin:20px 0; max-width:none; color:var(--hero-paper); font:700 clamp(48px,5.4vw,72px)/1.02 var(--display); letter-spacing:0; text-transform:uppercase; }
.hero-photo h1 em { font-style:normal; color:var(--signal); }
.hero-photo .hero-lead { max-width:38ch; margin:0 0 24px; color:var(--hero-paper); font:17px/1.6 var(--body); }
.hero-photo .hero-actions { display:flex; flex-wrap:wrap; gap:12px; }
.hero-photo .button { min-height:56px; font-size:16px; padding:14px 16px; gap:14px; }
.hero-photo .button-primary { color:#122d46; font-weight:700; }
.hero-photo .button-primary::before { background:var(--signal); }
.hero-photo .button-primary:hover::before { background:#ffdc40; }
.hero-photo .button-call { color:var(--hero-paper); border:1px solid #c6d3dc; }
.hero-photo .button-call::before { background:transparent; clip-path:none; }
.hero-photo .button-call:hover::before { background:#ffffff14; }
.hero-proof-link { display:inline-flex; align-items:center; gap:18px; min-height:44px; margin-top:10px; color:var(--hero-paper); font:16px/1.5 var(--body); }
.hero-proof-link span { font-size:20px; }
.hero-photo :is(a,button):focus-visible { outline-color:#fff; }
.hero-project { position:absolute; z-index:-1; inset:50% 0 auto auto; width:72%; height:100%; max-height:570px; margin:0; transform:translateY(-50%); }
.hero-project::after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(90deg,#073f88 0%,#073f8830 28%,transparent 55%),linear-gradient(0deg,#102332bd,transparent 38%); }
.hero-project img { width:100%; height:100%; object-fit:contain; object-position:right center; mask-image:linear-gradient(90deg,transparent 14%,#000 34%); }
.hero-project figcaption { position:absolute; z-index:1; right:32px; bottom:28px; width:min(31vw,360px); max-width:calc(100% - 64px); padding:12px 16px; background:#102332ed; color:#fffcf0; font:16px/1.55 var(--body); }
.hero-project figcaption strong { font-weight:600; color:#ffe074; }
.projects { padding-top:48px; }
.guide-mascot { width:96px; margin:24px 0 0; }
.guide-mascot img { width:100%; height:auto; }
@media(max-width:1150px) and (min-width:701px) {
  .site-header { gap:20px; }
  .page-nav { column-gap:18px; }
  .hero-photo { margin-inline:-38px; padding:40px 38px; min-height:550px; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr); }
  .hero-photo .hero-copy { padding:28px; }
  .hero-photo h1 { font-size:60px; }
  .hero-project { width:70%; }
  .hero-project figcaption { right:20px; bottom:20px; max-width:calc(100% - 40px); }
}
@media(max-width:900px) {
  .site-header { grid-template-columns:minmax(0,1fr) auto; gap:2px 20px; padding-block:10px 0; }
  .site-header .wordmark { grid-column:1; grid-row:1; justify-self:start; min-width:0; }
  .site-header .owner { grid-column:2; grid-row:1; }
  .page-nav { grid-column:1/-1; grid-row:2; justify-content:space-between; gap:8px 16px; }
}
@media(max-width:900px) {
  .site-header .brand-badge { width:140px; }
  .site-header .owner { font-size:14px; }
  .page-nav { flex-wrap:wrap; gap:0 12px; padding-block:4px; }
  .page-nav .nav-brief { margin:0; flex-basis:auto; border:0; }
  .hero-photo { display:flex; flex-direction:column; gap:0; align-items:stretch; min-height:0; margin-inline:-38px; padding:0; }
  .hero-photo .hero-copy { width:100%; padding:30px 38px 24px; background:#152d43; border-left:0; border-top:4px solid var(--signal); animation:none; }
  .hero-photo .eyebrow { font-size:14px; }
  .hero-photo h1 { font-size:clamp(44px,10vw,64px); line-height:1.04; margin-block:18px; }
  .hero-photo .hero-lead { font-size:16px; margin-bottom:22px; max-width:40ch; }
  .hero-photo .hero-actions { gap:12px; }
  .hero-photo .hero-actions .button { width:auto; }
  .hero-photo .button { padding-inline:16px; gap:12px; }
  .hero-project { position:relative; z-index:auto; inset:auto; display:flex; flex-direction:column; width:100%; height:auto; max-height:none; transform:none; }
  .hero-project img { position:static; order:1; height:340px; object-fit:cover; object-position:right top; mask-image:none; }
  .hero-project::after { display:none; }
  .hero-project figcaption { position:static; order:0; width:auto; max-width:none; padding:12px 24px; background:#102332; font-size:16px; }
  .hero-proof-link { margin-top:10px; }
  .projects { padding-top:34px; }
}
@media(min-width:701px) and (max-width:900px) {
  .hero-project img { height:450px; object-position:right top; }
}
@media(max-width:700px) {
  .hero-photo { margin-inline:-24px; }
  .hero-photo .hero-copy { padding-inline:24px; }
  .photo-guide>.story-heading { position:relative; padding-right:88px; }
  .guide-mascot { position:absolute; top:0; right:0; width:76px; margin:0; }
}
@media(max-width:450px) {
  .site-header { display:flex; flex-wrap:wrap; justify-content:space-between; }
  .site-header .wordmark { flex:none; }
  .site-header .owner { max-width:100%; }
  .page-nav { order:3; flex-basis:100%; }
  .hero-photo { margin-inline:-22px; }
  .hero-photo .hero-copy { padding-inline:22px; }
  .hero-photo .hero-actions { display:grid; grid-template-columns:minmax(0,1fr); }
  .hero-photo .hero-actions .button { width:100%; }
  .hero-photo h1 { font-size:48px; }
  .hero-proof-link { display:none; }
}
@media(max-width:350px) {
  .site-header { gap:2px 10px; }
  .site-header .brand-badge { width:128px; }
  .site-header .owner { font-size:14px; }
  .page-nav { column-gap:10px; }
  .page-nav a { font-size:14px; }
  .hero-photo { margin-inline:-18px; }
  .hero-photo .hero-copy { padding-inline:18px; }
  .hero-photo h1 { font-size:44px; }
  .hero-project figcaption { padding-inline:18px; }
  .photo-guide>.story-heading { display:block; padding-right:0; }
  .guide-heading h2 { font:800 clamp(42px,12vw,56px)/.98 var(--display); color:var(--blue); margin-block:14px 18px; }
  .guide-heading-copy .eyebrow { max-width:none; }
  .guide-mascot { position:static; width:70px; margin:16px 0 24px; }
}
@media print {
  .hero-photo { display:block; min-height:0; margin:0; padding:20px 0; background:white; color:black; }
  .hero-photo .hero-copy { width:100%; padding:0; background:white; border:0; }
  .hero-photo h1,.hero-photo h1 em,.hero-photo .hero-lead { color:black; }
  .hero-project,.hero-photo .hero-actions,.hero-proof-link,.guide-mascot { display:none; }
}

/* Keep the approved illustration centered, with a fast poster beneath the short video. */
.hero-project :is(img,video) { object-position:center; }
.hero-project video { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; mask-image:linear-gradient(90deg,transparent 14%,#000 34%); opacity:0; }
.hero-project[data-motion="playing"] video { opacity:1; }
.motion-toggle { position:absolute; z-index:3; right:24px; bottom:24px; display:grid; place-items:center; width:44px; height:44px; min-height:44px; padding:0; border:1px solid #c6d3dc80; border-radius:50%; background:#102332b8; color:#fffcf0; }
.motion-toggle svg { grid-area:1/1; }
.motion-toggle .motion-icon-play,.motion-toggle[data-state="paused"] .motion-icon-pause { display:none; }
.motion-toggle[data-state="paused"] .motion-icon-play { display:block; }
.motion-toggle:hover { background:#073f88; }
.hero-project { z-index:1; }
.hero-copy { pointer-events:auto; }
.photo-guide { grid-template-columns:1fr; gap:34px; padding-block:48px; }
.photo-guide>.guide-heading { display:grid; grid-template-columns:minmax(0,1fr) 300px; align-items:center; padding:0; gap:20px; min-height:240px; }
.guide-heading-copy h2 { margin-top:16px; font:700 clamp(42px,5vw,66px)/1.04 var(--display); letter-spacing:-.02em; }
.guide-mascot { position:relative; inset:auto; width:100%; max-width:300px; margin:0; align-self:end; }
.guide-mascot img { width:100%; height:auto; }
.guide-questions { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; }
.guide-questions li,.guide-questions li:last-child { padding:20px 0 0; margin:0; border:0; border-top:1px solid var(--line); gap:12px; }
.guide-questions li:before { color:var(--blue); }
@media(max-width:900px) {
  .hero-project { display:block; }
  .hero-project :is(img,video) { height:100%; object-fit:contain; object-position:center; mask-image:none; }
  .hero-project { aspect-ratio:4/3; background:#102332; }
  .hero-project img { width:100%; height:auto; }
  .motion-toggle { right:20px; bottom:20px; }
  .photo-guide>.guide-heading { grid-template-columns:minmax(0,1fr) 240px; min-height:200px; }
  .guide-heading-copy h2 { font-size:52px; }
  .guide-questions { gap:20px; }
}
@media(max-width:700px) {
  .photo-guide { padding-block:32px; }
  .photo-guide>.guide-heading { grid-template-columns:minmax(0,1fr) 36%; gap:0; min-height:170px; margin-bottom:28px; }
  .guide-heading-copy { position:relative; z-index:2; }
  .guide-heading-copy h2 { font-size:clamp(34px,7.6vw,48px); margin-top:16px; }
  .guide-heading-copy .eyebrow { max-width:20ch; }
  .guide-mascot { width:120%; max-width:none; margin:0 0 0 -20%; align-self:center; }
  .guide-questions { display:block; }
  .guide-questions li,.guide-questions li:last-child { margin:0 0 22px; padding-top:20px; gap:16px; }
  .motion-toggle { right:16px; bottom:16px; }
}
@media(prefers-reduced-motion:reduce) { .hero-project video { display:none; } }
@media print { .hero-project,.motion-toggle { display:none; } }
.hero-project[data-motion="playing"]>img { opacity:0; }

/* Mobile identity: the logo's strong block mass, a quieter reading face, complete project evidence. */
:root { --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif; --opening-night:#071b2d; --opening-paper:#faf9f2; --journey-clearance:24px; }
h2,.guide-heading-copy h2,.project-heading>h3,.result-heading h3 { font-weight:800; letter-spacing:.005em; }
.section-heading>h2,.brief-intro h2,.questions h2,.project-quote>h2 { font-size:clamp(44px,4.2vw,58px); line-height:.98; color:var(--blue); }
.project-heading>h3 { font-size:42px; line-height:1.03; }
.scope h2,.visit h2 { font-size:32px; line-height:1.04; }
.gallery-help { display:none; }
.masthead { position:relative; z-index:3; display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:36px; margin-inline:-64px; padding:12px 64px; background:var(--opening-night); color:var(--opening-paper); border-bottom:1px solid #b6d3ed26; }
.masthead-brand { display:block; width:138px; max-width:100%; background:#fffffb; }
.masthead-brand img { width:100%; height:auto; }
.masthead-nav { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px 28px; }
.masthead-nav a,.masthead-call { display:inline-flex; align-items:center; min-height:44px; padding-block:8px; text-decoration:none; font:500 14px/1.5 var(--body); }
.masthead-call { gap:18px; border-bottom:1px solid #b6d3ed75; }
.masthead a:hover { color:#ffe274; }
.masthead-brand:hover { color:inherit; }
.workshop-opening { position:relative; isolation:isolate; min-height:660px; display:grid; grid-template-columns:minmax(0,56%) minmax(0,1fr); align-content:center; margin-inline:-64px; padding:58px 64px; background:var(--opening-night); color:var(--opening-paper); overflow:hidden; }
.opening-heading,.opening-details { position:relative; z-index:2; grid-column:1; min-width:0; }
.service-kicker { display:flex; align-items:center; gap:14px; color:#d6e5ef; font:500 14px/1.6 var(--body); letter-spacing:.02em; }
.service-kicker::before { content:""; flex:none; width:28px; height:3px; background:var(--signal); }
.workshop-opening h1 { max-width:none; margin:24px 0 26px; font:800 clamp(76px,7.7vw,108px)/.92 var(--display); letter-spacing:.005em; text-transform:uppercase; }
.workshop-opening h1 span { display:block; margin:0; }
.workshop-opening h1 em { color:var(--signal); font-style:normal; }
.opening-intro { max-width:35ch; color:#e5edf2; font:400 18px/1.65 var(--body); }
.opening-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 28px; margin-top:28px; }
.opening-primary { display:inline-flex; justify-content:space-between; align-items:center; gap:32px; min-height:56px; padding:15px 21px; color:#071b2d; background:var(--signal); font:600 16px/1.5 var(--body); text-decoration:none; }
.opening-primary:hover { background:#ffdd51; }
.opening-secondary { display:inline-flex; align-items:center; gap:18px; min-height:48px; color:var(--opening-paper); font:500 16px/1.5 var(--body); text-decoration:none; border-bottom:1px solid #b6d3ed75; }
.opening-secondary:hover { color:#ffe274; }
.opening-owner { display:flex; flex-wrap:wrap; gap:4px 16px; margin-top:28px; color:#d6e5ef; font:14px/1.6 var(--body); }
.opening-owner span { border-left:1px solid #b6d3ed5c; padding-left:16px; }
.opening-workshop { position:absolute; z-index:1; right:0; top:0; width:68%; height:100%; margin:0; }
.opening-workshop :is(img,video) { width:100%; height:100%; object-fit:contain; object-position:right center; mask-image:linear-gradient(90deg,transparent 6%,#000 29%); }
.opening-workshop video { position:absolute; inset:0; opacity:0; }
.opening-workshop[data-motion="playing"] video { opacity:1; }
.opening-workshop[data-motion="playing"]>img { opacity:0; }
.opening-workshop .motion-toggle { right:24px; bottom:24px; }
:is(.masthead,.workshop-opening) :is(a,button):focus-visible { outline:3px solid #ffe274; outline-offset:5px; }
@media(min-width:1001px) and (max-width:1150px) {
  .masthead { margin-inline:-38px; padding-inline:38px; gap:28px; }
  .workshop-opening { margin-inline:-38px; padding-inline:38px; min-height:620px; grid-template-columns:minmax(0,58%) minmax(0,1fr); }
  .workshop-opening h1 { font-size:86px; }
  .opening-workshop { width:65%; }
  .opening-actions { gap:12px 20px; }
}
@media(max-width:1000px) {
  .masthead { margin-inline:-38px; padding:12px 38px; gap:24px; }
  .workshop-opening { display:block; min-height:0; margin-inline:-38px; padding:0; }
  .opening-heading { padding:34px 38px 0; }
  .workshop-opening h1 { font-size:clamp(64px,12vw,100px); margin:18px 0 12px; }
  .opening-details { padding:20px 38px 34px; }
  .opening-intro { max-width:42ch; }
  .opening-workshop { position:relative; inset:auto; width:100%; height:auto; aspect-ratio:4/3; }
  .opening-workshop :is(img,video) { position:absolute; inset:0; object-fit:cover; object-position:right center; mask-image:none; }
}
@media(max-width:700px) {
  .preview-bar { padding-block:7px; font-size:12px; line-height:1.5; }
  .masthead { grid-template-columns:minmax(0,1fr) auto; margin-inline:-24px; padding:10px 24px; gap:18px; }
  .masthead-brand { width:116px; }
  .masthead-call { justify-self:end; font-size:14px; gap:12px; }
  .masthead-nav { display:none; }
  .workshop-opening { margin-inline:-24px; }
  .opening-heading { padding:26px 24px 0; }
  .service-kicker { font-size:13px; gap:10px; letter-spacing:0; }
  .service-kicker::before { width:20px; }
  .workshop-opening h1 { font-size:clamp(38px,12vw,82px); line-height:.94; margin:17px 0 4px; }
  .opening-workshop { aspect-ratio:1; }
  .opening-details { padding:16px 24px 28px; }
  .opening-intro { font-size:17px; line-height:1.6; max-width:36ch; }
  .opening-actions { display:grid; grid-template-columns:minmax(0,1fr); align-items:start; gap:8px; margin-top:20px; }
  .opening-primary { width:100%; min-height:56px; }
  .opening-secondary { justify-self:start; min-height:44px; }
  .opening-owner { margin-top:20px; font-size:14px; gap:4px 12px; }
  .opening-owner span { padding-left:12px; }
  .opening-workshop .motion-toggle { right:16px; bottom:16px; }
  .section,.photo-guide { padding-block:40px; }
  .section-heading { margin-bottom:26px; }
  .section-heading>h2,.brief-intro h2,.questions h2,.project-quote>h2 { font-size:clamp(42px,12vw,56px); line-height:.98; margin-block:14px 18px; }
  .project-heading>h3 { font-size:36px; line-height:1.04; max-width:17ch; }
  .project-heading>.eyebrow { font-size:13px; }
  .project-specs { margin-top:20px; }
  .project-specs>div { padding-block:9px; }
  .project-state { font-size:15px; padding:12px 14px; }
  .project-photo figcaption { padding:14px; font-size:15px; }
  .project+.project { margin-top:32px; padding-top:26px; }
  .project-steps { gap:12px 18px; }
  .project-steps li { padding-top:9px; }
  .project-steps li::before { display:inline; margin-right:8px; }
  .project-gallery-note { margin-block:20px 14px; }
  .gallery-help { display:block; margin-top:8px; font-size:14px; }
  .project-frames { display:grid; grid-auto-flow:column; grid-auto-columns:84%; grid-template-columns:none; gap:16px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-color:var(--blue) #dce1dc; scrollbar-width:thin; padding-bottom:14px; }
  .project-frames figure { scroll-snap-align:start; }
  .project-frames img { width:100%; height:auto; max-height:none; object-fit:contain; }
  .project-frames figcaption { font-size:14px; padding-block:10px; }
  .project-frames:focus-visible { outline:3px solid var(--blue); outline-offset:5px; }
  .photo-guide>.story-heading { display:block; padding-right:0; }
  .guide-heading h2 { font:800 clamp(42px,12vw,56px)/.98 var(--display); color:var(--blue); margin-block:14px 18px; }
  .guide-heading-copy .eyebrow { max-width:none; }
  .guide-mascot { display:none; }
  .guide-questions { margin-top:24px; }
  .guide-questions li { gap:14px; padding-bottom:20px; margin-bottom:20px; }
  .guide-questions li::before { font-weight:800; color:var(--blue); }
  .guide-questions h3 { font-size:20px; }
  .guide-questions p { font-size:17px; line-height:1.6; }
  .guide-photo-set { margin-top:28px; }
  .guide-disclosure { background:transparent; border-left:3px solid var(--signal); padding:0 0 0 14px; font-size:15px; margin-bottom:22px; }
  .guide-photos { display:grid; grid-template-columns:minmax(0,1fr); gap:0; }
  .guide-view { display:grid; grid-template-columns:minmax(0,1fr) 112px; align-items:center; gap:18px; padding:18px 0; border-top:1px solid var(--line); }
  .guide-view figcaption { padding:0; }
  .guide-view figcaption b { font-size:18px; line-height:1.35; }
  .guide-view figcaption b>span { display:block; margin:0 0 6px; }
  .guide-view figcaption p { font-size:16px; line-height:1.5; }
  .guide-view img { width:112px; max-height:none; height:auto; background:transparent; }
  .guide-view .guide-photo-fallback { grid-column:1/-1; }
  .scope-and-visit { border-top:1px solid var(--line); padding-block:32px; }
  .scope h2,.visit h2 { font-size:30px; }
  .scope p,.visit p { font-size:17px; }
  .project-quote { background:transparent; padding:32px 0; margin-inline:0; }
  .quote-copy { font-size:19px; line-height:1.6; }
  .contact-options { display:grid; grid-template-columns:minmax(0,1fr); gap:0; margin-top:20px; }
  .contact-options a { justify-content:space-between; border-bottom:1px solid var(--line); min-height:52px; text-decoration:none; }
  .brief-section { border-top:3px solid var(--blue); padding-top:36px; }
  .brief-intro { margin-bottom:32px; }
  .draft-notice { padding:16px 0 0; margin-top:20px; background:transparent; border:0; border-top:1px solid var(--line); }
  .brief-intro>p.availability-note { margin-top:16px; }
  .brief-step { padding-top:18px; }
  .brief-step legend { font-size:18px; font-weight:600; }
  .brief-step legend>span { color:var(--blue); }
  .field label { font-size:16px; }
  .field input,.field select,.field textarea { font-size:17px; min-height:52px; }
  .field { margin-bottom:22px; }
  .questions-layout>div:first-child { margin-bottom:26px; }
  .site-footer .brand-badge { width:148px; }
}
@media(max-width:450px) {
  .masthead { margin-inline:-22px; padding-inline:22px; }
  .workshop-opening { margin-inline:-22px; }
  .opening-heading,.opening-details { padding-inline:22px; }
}
@media(max-width:350px) {
  .masthead { margin-inline:-18px; padding-inline:18px; gap:12px; }
  .masthead-brand { width:108px; }
  .workshop-opening { margin-inline:-18px; }
  .opening-heading,.opening-details { padding-inline:18px; }
  .opening-owner { display:block; }
  .opening-owner span { display:block; border:0; padding:0; margin-top:4px; }
  .guide-view { grid-template-columns:minmax(0,1fr) 94px; gap:14px; }
  .guide-view img { width:94px; }
}
@media(prefers-reduced-motion:reduce) { .opening-workshop video { display:none; } .project-frames { scroll-behavior:auto; scroll-snap-type:none; } }
@media print {
  .masthead,.opening-workshop,.opening-actions { display:none; }
  .workshop-opening { display:block; min-height:0; margin:0; padding:20px 0; background:white; color:black; }
  .opening-heading,.opening-details { padding:0; }
  .workshop-opening h1,.workshop-opening h1 em,.opening-intro,.opening-owner,.service-kicker { color:black; }
  .project-frames { display:grid; grid-auto-flow:row; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
  .gallery-help { display:none; }
}

/* One optically aligned action-icon system; text labels carry the action. */
.action-icon { display:inline-block; width:20px; height:20px; flex:none; vertical-align:middle; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:square; stroke-linejoin:miter; pointer-events:none; }
.masthead-call .action-icon { width:18px; height:18px; }
