:root{color-scheme:light;--paper:#e9e1d2;--paper-light:#f3eee5;--ink:#1d211d;--muted:#69685e;--violet:#674866;--clay:#aa573b;--sun:#d5b64c;--line:rgba(29,33,29,.25);--serif:Georgia,"Times New Roman",serif;--sans:Arial,Helvetica,sans-serif;background:var(--paper);color:var(--ink);font-family:var(--sans);font-synthesis:none}
.icon-arrow{position:relative;display:inline-block;flex:0 0 .8rem;width:.8rem;height:.8rem;color:currentColor}.icon-arrow::before,.icon-arrow::after{content:"";position:absolute;display:block}.icon-arrow-up::before{right:0;top:0;width:.46rem;height:.46rem;border-top:1px solid currentColor;border-right:1px solid currentColor}.icon-arrow-up::after{left:.08rem;bottom:.08rem;width:.9rem;height:1px;background:currentColor;transform:rotate(-45deg);transform-origin:left center}.icon-arrow-down::before{left:.37rem;top:0;width:1px;height:.76rem;background:currentColor}.icon-arrow-down::after{left:.17rem;bottom:.05rem;width:.38rem;height:.38rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:rotate(45deg)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--paper)}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.13;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");mix-blend-mode:multiply}a{color:inherit}img{display:block;width:100%;height:100%;object-fit:cover}button,input,textarea,select{font:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:99;padding:.75rem 1rem;background:var(--ink);color:#fff}.skip-link:focus{top:1rem}
.site-header{position:fixed;z-index:30;inset:0 0 auto;display:grid;grid-template-columns:1fr auto;align-items:center;padding:1.15rem 2.2vw;border-bottom:1px solid rgba(255,255,255,.22);background:rgba(29,33,29,.96);box-shadow:0 8px 28px rgba(0,0,0,.12);color:#fff;mix-blend-mode:normal;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.brand{display:flex;align-items:baseline;gap:.7rem;font:italic 1.55rem/1 var(--serif);text-decoration:none;letter-spacing:-.04em}.brand small{font:700 .5rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}nav{display:flex;gap:clamp(1rem,2.5vw,2.8rem)}nav a,.menu-toggle{font:700 .66rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none}nav a{position:relative}nav a::after{content:"";position:absolute;inset:auto 0 -.4rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .3s ease}nav a:hover::after,nav a:focus-visible::after{transform:scaleX(1)}.menu-toggle{display:none;color:inherit;background:none;border:0;padding:.5rem 0}section[id]{scroll-margin-top:5rem}
.hero{min-height:100svh;display:grid;grid-template-columns:8.5rem minmax(24rem,.78fr) 1.22fr;grid-template-rows:1fr auto;background:var(--ink);color:#fff}.hero-index{grid-row:1/-1;padding:8rem 1.25rem 2rem;border-right:1px solid rgba(255,255,255,.28);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}.hero-index span:nth-child(2){writing-mode:vertical-rl;transform:rotate(180deg)}.hero-copy{position:relative;z-index:2;grid-column:2;grid-row:1;padding:clamp(9rem,17vh,13rem) 3vw 5rem;display:flex;flex-direction:column;align-items:flex-start}.kicker,.section-label{margin:0;font-size:.63rem;line-height:1.4;letter-spacing:.17em;text-transform:uppercase;font-weight:700}h1,h2{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.065em}h1{margin-left:-.06em;font-size:clamp(5.1rem,9.2vw,10.5rem);line-height:.76}h1 em,h2 em{color:var(--sun);font-weight:400}.hero-intro{max-width:26rem;margin:auto 0 2.6rem;font:400 clamp(1.15rem,1.55vw,1.45rem)/1.45 var(--serif)}.arrow-link{display:inline-flex;gap:2rem;align-items:center;padding:0 0 .55rem;border-bottom:1px solid currentColor;font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;text-decoration:none}.arrow-link span{transition:transform .25s ease}.arrow-link:hover span{transform:translate(3px,3px)}.hero-media{position:relative;grid-column:3;grid-row:1/-1;min-width:0;margin:0;overflow:hidden}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,33,29,.25),transparent 42%),linear-gradient(0deg,rgba(29,33,29,.5),transparent 35%)}.hero-media img{min-height:100svh;object-position:center 18%;filter:saturate(.86) contrast(1.04);transform:scale(1.02);animation:settle 16s ease-out both}.hero-media figcaption{position:absolute;z-index:2;inset:auto 1.5rem 1.4rem;display:flex;justify-content:space-between;font-size:.57rem;letter-spacing:.14em;text-transform:uppercase}.hero-note{position:relative;z-index:2;grid-column:2;grid-row:2;align-self:end;margin:0;padding:0 3vw 1.5rem;color:#c7c1b5;font-size:.58rem;line-height:1.65;letter-spacing:.15em;text-transform:uppercase}
.manifesto{display:grid;grid-template-columns:1fr 3.1fr;gap:4vw;padding:clamp(7rem,13vw,13rem) 4vw;border-bottom:1px solid var(--line)}.manifesto-copy{max-width:74rem;margin:0;font:400 clamp(2.35rem,5vw,5.7rem)/1.03 var(--serif);letter-spacing:-.055em}.section-header{display:grid;grid-template-columns:2fr 1fr;gap:10vw;align-items:end;padding:0 0 clamp(5rem,8vw,9rem)}.section-header .section-label{margin-bottom:2rem}h2{font-size:clamp(3.7rem,7.5vw,8rem);line-height:.86}.section-aside{max-width:27rem;margin:0 0 .5rem;color:var(--muted);font:400 1rem/1.65 var(--serif)}
.work{padding:clamp(7rem,10vw,11rem) 4vw;background:var(--paper-light)}.project-list{display:grid;grid-template-columns:1.45fr .65fr;gap:clamp(5rem,9vw,10rem) 3vw;align-items:start}.project a{display:block;text-decoration:none}.project figure{position:relative;margin:0;overflow:hidden;background:#c6b9aa}.project img{transition:transform .8s cubic-bezier(.22,.61,.36,1),filter .8s ease;filter:saturate(.72) sepia(.08)}.project a:hover img{transform:scale(1.025);filter:saturate(.9)}.project-feature{grid-column:1}.project-feature figure{aspect-ratio:1.42/1}.project-portrait{grid-column:2;margin-top:18vw}.project-portrait figure{aspect-ratio:3/4.6}.project-field{grid-column:1/-1;width:63%;margin-left:auto}.project-field figure{aspect-ratio:1.3/1}.sample-tag{position:absolute;top:1rem;right:1rem;padding:.5rem .65rem;background:var(--paper-light);color:var(--ink);font-size:.55rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.project-meta{display:grid;grid-template-columns:1fr 2.1fr auto;gap:1rem;align-items:baseline;padding-top:1rem;border-top:1px solid var(--ink)}.project-meta span{font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}.project-meta h3{margin:0;font:400 clamp(1.35rem,2.3vw,2.5rem)/1.03 var(--serif);letter-spacing:-.035em}.field-card{display:grid;place-items:center;background:var(--clay);color:#f1d8b8}.field-card svg{width:75%;height:75%;fill:none;stroke:currentColor;stroke-width:2;vector-effect:non-scaling-stroke}.botanical-name{position:absolute;left:1.2rem;bottom:1.1rem;font:italic 1rem/1 var(--serif)}
.approach{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;padding:clamp(7rem,11vw,12rem) 4vw;background:var(--ink);color:var(--paper-light)}.approach header{position:sticky;top:3rem;align-self:start}.approach header .section-label{margin-bottom:2rem}.principles{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.3)}.principles li{display:grid;grid-template-columns:3rem 1fr;gap:1rem;padding:2rem 0 2.8rem;border-bottom:1px solid rgba(255,255,255,.3)}.principles li>span{color:var(--sun);font-size:.6rem;letter-spacing:.1em}.principles h3{margin:0 0 .7rem;font:400 clamp(1.8rem,3vw,3.1rem)/1 var(--serif);letter-spacing:-.04em}.principles p{max-width:33rem;margin:0;color:#bcbdb5;line-height:1.6}
.services{display:block;padding:clamp(5rem,9vw,9rem) 4vw 0;border:0}
.services-head{max-width:46rem;margin-bottom:clamp(2.5rem,5vw,4rem)}
.services-head h2{margin:.8rem 0 1rem}
.services-head>p{margin:0;color:var(--muted);font:400 1.15rem/1.55 var(--serif)}
.service-paths{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;align-items:stretch}
.path-card{display:flex;flex-direction:column;min-height:100%;padding:clamp(1.6rem,3vw,2.4rem);border:1px solid var(--line)}
.path-card h3{margin:.7rem 0 1rem;font:400 clamp(2.4rem,4vw,4.2rem)/.92 var(--serif);letter-spacing:-.05em}
.path-card>p{margin:0 0 1.4rem;color:var(--muted);font:400 1.02rem/1.55 var(--serif)}
.path-build{background:var(--violet);color:#fff;border-color:transparent}
.path-build .section-label,.path-build>p,.path-build .direct-projects-boundary{color:#d6d1c7}
.path-build ul{display:grid;grid-template-columns:1fr 1fr;margin:0 0 1.4rem;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.28)}
.path-build li{display:grid;gap:.35rem;padding:1rem .8rem 1rem 0;border-bottom:1px solid rgba(255,255,255,.28)}
.path-build li:nth-child(even){padding-left:.8rem}
.path-build li strong{font:400 1.15rem/1.1 var(--serif)}
.path-build li span{color:#bcbdb5;font:.68rem/1.45 var(--sans)}
.path-build .direct-projects-offer{margin:0 0 1.4rem}
.path-build .direct-projects-book{margin-top:auto}
.path-design{background:var(--paper-light)}
.path-design .service-offers{display:grid;grid-template-columns:1fr;border-top:1px solid var(--line)}
.path-design .service-offers article{min-height:0;padding:1.1rem 0 1.3rem}
.path-design .service-offers article+article{padding-left:0;border-left:0}
.path-design .service-offers h3{margin:1.1rem 0 .6rem;font-size:clamp(1.4rem,2vw,1.9rem)}
.path-design .service-offers p{margin:0 0 .8rem}
.path-design .service-offers ul{margin:0 0 .8rem;padding:.8rem 0 0}
.path-design .service-offers small{margin:0 0 1rem}
@media(max-width:900px){
  .service-paths,.path-build ul{grid-template-columns:1fr}
  .path-build li:nth-child(even){padding-left:0}
}
.about{display:grid;grid-template-columns:.75fr 2.25fr;min-height:90vh;background:var(--violet);color:#fff}.about-mark{padding:4vw;border-right:1px solid rgba(255,255,255,.3);display:flex;flex-direction:column;justify-content:space-between}.about-mark span{align-self:center;margin:auto 0;font:italic clamp(5rem,12vw,13rem)/1 var(--serif);letter-spacing:-.1em;color:var(--sun)}.about-mark small{font-size:.55rem;letter-spacing:.14em;text-transform:uppercase}.about-copy{padding:clamp(6rem,10vw,11rem) 5vw}.about-copy .section-label{margin-bottom:2rem}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:5vw;margin:5rem 0}.about-columns p{margin:0;color:#e1dbe0;font:400 clamp(1rem,1.35vw,1.25rem)/1.65 var(--serif)}
.contact{display:grid;grid-template-columns:1.05fr .95fr;gap:9vw;padding:clamp(7rem,11vw,12rem) 4vw 8rem;background:var(--sun)}.contact-intro .section-label{margin-bottom:2rem}.contact-intro h2 em{color:var(--violet)}.contact-intro>p:last-child{max-width:31rem;margin:3rem 0 0;font:400 1.15rem/1.6 var(--serif)}#inquiry-form{align-self:end}.form-row{position:relative;border-top:1px solid var(--ink);padding:1.4rem 0 .7rem}.form-row label{display:block;margin-bottom:.55rem;font-size:.57rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.form-row input,.form-row textarea,.form-row select{width:100%;padding:.25rem 0;border:0;border-radius:0;outline:none;background:transparent;color:var(--ink);font:400 1.25rem/1.35 var(--serif)}.form-row textarea{resize:vertical;min-height:7rem}.form-row select{appearance:none;background:linear-gradient(45deg,transparent 50%,var(--ink) 50%) calc(100% - 7px) 50%/7px 7px no-repeat}.form-row:focus-within{border-color:var(--violet);box-shadow:inset 0 1px var(--violet)}.form-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.submit-button{width:100%;display:flex;justify-content:space-between;margin-top:1rem;padding:1.2rem 0;border:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);background:transparent;color:var(--ink);font-size:.68rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;cursor:pointer}.submit-button:hover{color:var(--violet)}.form-note{margin:.8rem 0 0;font-size:.62rem;line-height:1.5}
footer{display:grid;grid-template-columns:1fr auto auto;gap:3rem;padding:1.5rem 4vw;background:var(--ink);color:#bcbdb5;font-size:.58rem;letter-spacing:.13em;text-transform:uppercase}footer a{color:#fff;text-decoration:none;font:italic 1rem/1 var(--serif);text-transform:none;letter-spacing:-.02em}.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,.61,.36,1)}.reveal.is-visible{opacity:1;transform:none}@keyframes settle{from{transform:scale(1.08)}to{transform:scale(1.025)}}
@media(max-width:900px){
  .hero{grid-template-columns:4rem 1fr;grid-template-rows:1fr;position:relative}
  .hero-copy{grid-column:2;grid-row:1;min-height:100svh;padding:9rem 1.5rem 4rem}
  .hero-media{grid-column:1/-1;grid-row:1;min-height:100svh}
  .hero-media img{min-height:100svh;height:100%;object-position:center 22%}
  .hero-media::after{background:linear-gradient(90deg,rgba(29,33,29,.72),rgba(29,33,29,.28) 55%),linear-gradient(180deg,rgba(29,33,29,.45),transparent 28%,rgba(29,33,29,.55))}
  .hero-index{position:relative;z-index:2}
  .hero-note{display:none}
  .manifesto,.services{grid-template-columns:1fr}
  .manifesto .section-label,.services>.section-label{margin-bottom:3rem}
  .section-header{gap:5vw}
  .approach{grid-template-columns:1fr}
  .approach header{position:static;margin-bottom:4rem}
  .about{grid-template-columns:1fr}
  .about-mark{min-height:22rem;border-right:0;border-bottom:1px solid rgba(255,255,255,.3)}
  .contact{grid-template-columns:1fr}
  #inquiry-form{margin-top:5rem}
}
@media(max-width:640px){.site-header{padding:1.25rem;mix-blend-mode:normal;background:rgba(29,33,29,.96)}.menu-toggle{display:block}nav{position:absolute;inset:100% 0 auto;display:none;padding:1.5rem 1.25rem 2rem;background:var(--ink);border-top:1px solid rgba(255,255,255,.25)}nav.is-open{display:grid}nav a{padding:.65rem 0}.hero{grid-template-columns:2.7rem 1fr}.hero-index{padding:6rem .7rem 1rem}.hero-index span:first-child,.hero-index span:last-child{display:none}.hero-copy{padding-left:1rem;padding-right:1rem;min-width:0}h1{font-size:clamp(4.1rem,21vw,6.6rem)}h2{font-size:clamp(3.25rem,16vw,5.3rem)}.manifesto,.work,.approach,.services,.contact{padding-left:1.25rem;padding-right:1.25rem}.manifesto-copy{font-size:clamp(2.2rem,11vw,3.5rem)}.section-header{grid-template-columns:1fr}.section-aside{margin-top:3rem}.project-list{grid-template-columns:1fr;gap:5rem}.project-feature,.project-portrait,.project-field{grid-column:1;width:100%;margin:0}.project-meta{grid-template-columns:1fr auto}.project-meta h3{grid-column:1/-1;grid-row:1;font-size:1.7rem}.about-columns{grid-template-columns:1fr;gap:2rem}footer{grid-template-columns:1fr auto}footer>span:nth-child(2){display:none}}
.services-content{min-width:0}.services-intro{max-width:47rem;margin:3rem 0 5rem;color:var(--muted);font:400 clamp(1.2rem,1.8vw,1.65rem)/1.55 var(--serif)}.service-offers{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.service-offers article{min-height:36rem;padding:1.5rem 1.5rem 1.8rem 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column}.service-offers article+article{padding-left:1.5rem;border-left:1px solid var(--line)}.service-card-top{display:flex;justify-content:space-between;gap:1rem;font-size:.58rem;letter-spacing:.12em;text-transform:uppercase}.service-card-top strong{font-size:.76rem}.service-offers h3{margin:4rem 0 1rem;font:400 clamp(1.7rem,2.4vw,2.6rem)/1 var(--serif);letter-spacing:-.04em}.service-offers p{margin:0 0 1.5rem;color:var(--muted);line-height:1.55}.service-offers ul{margin:0 0 1.5rem;padding:1.2rem 0 0;list-style:none;border-top:1px solid var(--line)}.service-offers li{display:block;padding:.33rem 0;border:0;font:700 .61rem/1.45 var(--sans);letter-spacing:.08em;text-transform:uppercase}.service-offers li::after{content:none}.service-offers small{display:block;margin:auto 0 1.5rem;color:var(--muted);font:400 .76rem/1.5 var(--serif)}.service-book-button{width:100%;padding:.8rem 0;border:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);border-radius:0;background:transparent;color:var(--muted);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-align:left;text-transform:uppercase}.service-book-button:disabled{cursor:not-allowed;opacity:.72}.service-boundaries{display:grid;grid-template-columns:1fr 1fr;gap:3vw;margin-top:2rem}.service-boundaries p{margin:0;color:var(--muted);font:400 .86rem/1.6 var(--serif)}.service-boundaries strong{display:block;margin-bottom:.35rem;color:var(--ink);font:700 .58rem/1.4 var(--sans);letter-spacing:.12em;text-transform:uppercase}.section-aside p{margin:0}.section-aside p+p{margin-top:1.25rem}.education .section-header{align-items:start}.education-forward{display:grid;grid-template-columns:1fr 2.2fr auto;gap:4vw;align-items:start;margin-top:clamp(7rem,11vw,12rem);padding-top:2rem;border-top:1px solid var(--ink)}.education-forward>p:nth-child(2){max-width:52rem;margin:0;font:400 clamp(1.5rem,2.7vw,3rem)/1.12 var(--serif);letter-spacing:-.035em}.education-forward .arrow-link{white-space:nowrap}.project-board figure{background:#20231f}.project-feature.project-board figure,.project-field.project-board figure{aspect-ratio:16/10}.project-portrait.project-board figure{aspect-ratio:4/5}.project-board img,.project-feature.project-board img{object-fit:cover;object-position:center}.project-art-arroyo img{transform:scale(1.2);transform-origin:50% 72%}.project-art-garden img{transform:scale(1.08);transform-origin:50% 52%}.project-art-canyon img{transform:scale(1.04);transform-origin:32% 50%}.project-art-nogales img{transform:scale(1.14);transform-origin:66% 34%}.project-art-coop img{transform:scale(1.08);transform-origin:79% 50%}.project-art .sample-tag{z-index:2}
@media(max-width:900px){.service-offers{grid-template-columns:1fr}.service-offers article{min-height:0;padding:1.5rem 0}.service-offers article+article{padding-left:0;border-left:0}.service-offers h3{margin:3rem 0 1rem}.service-offers small{margin:2rem 0 1.5rem}.service-boundaries{grid-template-columns:1fr}.education-forward{grid-template-columns:1fr}.education-forward .arrow-link{margin-top:2rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* Violet review: quieter green accent and tighter crops that remove assignment-board margins. */
:root{--sun:#b7c86a}.service-offers{grid-template-columns:repeat(2,1fr)}.project-art-arroyo img{transform:scale(1.35);transform-origin:50% 72%}.project-art-garden img{transform:scale(1.14);transform-origin:50% 52%}.project-art-canyon img{transform:scale(1.22);transform-origin:32% 50%}.project-art-nogales img{transform:scale(1.52);transform-origin:66% 34%}.project-art-coop img{transform:scale(1.32);transform-origin:79% 50%}
@media(max-width:900px){.service-offers{grid-template-columns:1fr}}@media(max-width:640px){.project-art-nogales img{transform:scale(1.48);transform-origin:62% 38%}.project-art-coop img{transform:scale(1.3);transform-origin:72% 50%}}
.project[data-project-story]{cursor:pointer;outline:none}.project[data-project-story]:focus-visible figure{box-shadow:0 0 0 3px var(--violet)}.project[data-project-story]::after{content:"Open project";display:block;margin-top:.8rem;font-size:.55rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.project-dialog{width:min(92vw,1100px);max-height:90vh;padding:0;border:0;background:var(--paper-light);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.45)}.project-dialog::backdrop{background:rgba(20,22,19,.82);backdrop-filter:blur(8px)}.project-dialog figure{height:min(58vh,650px);margin:0;overflow:hidden;background:var(--ink)}.project-dialog figure img{object-fit:cover}.project-dialog-copy{padding:clamp(1.5rem,4vw,4rem)}.project-dialog-copy h2{margin:.8rem 0 1.5rem;font-size:clamp(2.8rem,6vw,6rem)}.project-dialog-copy>p:last-of-type{max-width:48rem;font:400 1.1rem/1.65 var(--serif)}.project-dialog-copy small{color:var(--muted)}.project-dialog-close{position:fixed;z-index:2;top:max(1rem,5vh);right:max(1rem,5vw);padding:.7rem 1rem;border:1px solid rgba(255,255,255,.45);background:var(--ink);color:#fff;font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}

/* Review pass: explicit form fields, uncropped presentation boards, and booking. */
.form-row input,.form-row textarea,.form-row select{padding:.85rem 1rem;border:1px solid rgba(29,33,29,.48);border-radius:.2rem;background:rgba(255,255,255,.22)}.form-row:focus-within{box-shadow:none}.form-row:focus-within input,.form-row:focus-within textarea,.form-row:focus-within select{border-color:var(--violet);box-shadow:0 0 0 2px rgba(103,70,111,.18)}.service-book-button{cursor:pointer;color:var(--ink)}.service-book-button:hover,.service-book-button:focus-visible{color:var(--violet)}.project-board figure{aspect-ratio:auto!important}.project-board img,.project-feature.project-board img{display:block;width:100%;height:auto;object-fit:contain;transform:none!important}.project-dialog figure{height:auto;max-height:70vh}.project-dialog figure img{width:100%;height:auto;max-height:70vh;object-fit:contain}.booking-dialog{width:min(92vw,760px);max-height:92vh;padding:0;border:0;background:var(--paper-light);color:var(--ink);box-shadow:0 30px 100px rgba(0,0,0,.45)}.booking-dialog::backdrop{background:rgba(20,22,19,.82);backdrop-filter:blur(8px)}.booking-dialog-copy{padding:clamp(2rem,6vw,5rem)}.booking-dialog-copy h2{margin:.5rem 0 1rem;font-size:clamp(3rem,7vw,6rem)}.booking-dialog-copy>p{color:var(--muted);font:400 1.1rem/1.5 var(--serif)}.booking-dialog-close{position:absolute;top:1rem;right:1rem;padding:.7rem 1rem;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:.6rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.booking-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.booking-step{display:grid;gap:.45rem;margin-top:1rem}.booking-step label{font-size:.57rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.booking-step input,.booking-step select{width:100%;min-height:3.1rem;padding:.7rem .8rem;border:1px solid rgba(29,33,29,.45);background:#fff;color:var(--ink);font:400 1rem/1.3 var(--serif)}.submit-button:disabled{cursor:wait;opacity:.55}@media(max-width:640px){.booking-grid{grid-template-columns:1fr}.booking-dialog-copy{padding:4.5rem 1.25rem 2rem}}

/* Post-payment project intake. */
.booking-step textarea{width:100%;min-height:7rem;padding:.7rem .8rem;border:1px solid rgba(29,33,29,.45);background:#fff;color:var(--ink);font:400 1rem/1.3 var(--serif);resize:vertical}.intake-dialog{width:min(92vw,820px)}.intake-uses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.2rem 0;padding:1rem;border:1px solid rgba(29,33,29,.35)}.intake-uses legend{padding:0 .4rem;font-size:.57rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.intake-uses label{display:flex;align-items:center;gap:.45rem;font:400 .95rem/1.3 var(--serif)}.intake-uses input{accent-color:var(--violet)}
@media(max-width:640px){.intake-uses{grid-template-columns:1fr}}
.project-capabilities{display:grid;grid-template-columns:1fr 3fr;gap:4vw;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--line)}.project-capabilities>div{display:grid;grid-template-columns:1fr 1fr;gap:3vw}.project-capabilities p{margin:0;color:var(--muted);font:400 1rem/1.65 var(--serif)}.project-capabilities .section-label{color:var(--ink);font:700 .58rem/1.4 var(--sans)}
@media(max-width:760px){.project-capabilities,.project-capabilities>div{grid-template-columns:1fr}.project-capabilities>div{gap:1.25rem}}
.booking-travel-note{margin:1rem 0;padding:1rem;border:1px solid rgba(29,33,29,.35);color:var(--muted);font:400 .9rem/1.55 var(--serif)}.booking-confirmation-summary{display:grid;gap:.45rem;margin:2rem 0;padding:1.25rem;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.booking-confirmation-summary strong{font:400 1.65rem/1.15 var(--serif)}.booking-confirmation-summary span{color:var(--muted);font:400 .95rem/1.4 var(--serif)}.booking-success-actions{display:grid;gap:.75rem}.booking-success-actions .service-book-button{text-align:center}.intake-complete{padding:2rem 0}.intake-complete h2{margin:.5rem 0 1rem}.intake-complete>p:not(.section-label){color:var(--muted);font:400 1.1rem/1.6 var(--serif)}
.direct-projects{margin-top:0;padding:clamp(3rem,5vw,5rem);background:var(--violet);color:var(--paper-light)}.direct-projects-heading{display:grid;grid-template-columns:.7fr 1.6fr 1fr;gap:3vw;align-items:start;margin-bottom:4rem}.direct-projects h2{margin:0;font:400 clamp(2.3rem,4.3vw,5rem)/.96 var(--serif);letter-spacing:-.05em}.direct-projects-heading>p:last-child{margin:0;color:#bcbdb5;font:400 1rem/1.65 var(--serif)}.direct-projects ul{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.3)}.direct-projects li{display:grid;gap:.6rem;padding:1.5rem 1.5rem 1.5rem 0;border-bottom:1px solid rgba(255,255,255,.3)}.direct-projects li:nth-child(even){padding-left:1.5rem;border-left:1px solid rgba(255,255,255,.3)}.direct-projects li strong{font:400 1.55rem/1.1 var(--serif)}.direct-projects li span{color:#bcbdb5;font:.75rem/1.55 var(--sans)}.direct-projects-boundary{max-width:58rem;margin:2rem 0 0;color:#bcbdb5;font:.7rem/1.6 var(--sans)}.landscape-services{margin-top:clamp(7rem,11vw,12rem);padding-top:2rem;border-top:1px solid var(--ink)}.landscape-services>.section-label{margin-bottom:2rem}.landscape-services h2{margin-bottom:0}
.booking-field-label{font-size:.57rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.booking-calendar{border:1px solid rgba(29,33,29,.35);background:#fff}.booking-calendar-heading{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid rgba(29,33,29,.25)}.booking-calendar-heading strong{font:400 1.3rem/1 var(--serif)}.booking-calendar-heading span{color:var(--muted);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}.booking-calendar-weekdays,.booking-calendar-days{display:grid;grid-template-columns:repeat(7,1fr)}.booking-calendar-weekdays span{padding:.55rem .2rem;text-align:center;color:var(--muted);font-size:.55rem;font-weight:700;text-transform:uppercase}.booking-calendar-days button{display:grid;place-items:center;gap:.15rem;min-height:3.8rem;padding:.4rem;border:0;border-top:1px solid rgba(29,33,29,.14);border-right:1px solid rgba(29,33,29,.14);background:#fff;color:var(--ink);cursor:pointer}.booking-calendar-days button:nth-child(7n){border-right:0}.booking-calendar-days button small{font-size:.48rem;text-transform:uppercase}.booking-calendar-days button strong{font:400 1.15rem/1 var(--serif)}.booking-calendar-days button:disabled{background:#eeeae2;color:#aaa79f;cursor:not-allowed}.booking-calendar-days button.is-selected{background:var(--violet);color:#fff}.booking-time-options{display:flex;flex-wrap:wrap;gap:.55rem;min-height:2.8rem}.booking-time-options button{padding:.75rem 1rem;border:1px solid rgba(29,33,29,.4);background:#fff;color:var(--ink);font-size:.75rem;font-weight:700;cursor:pointer}.booking-time-options button.is-selected{border-color:var(--violet);background:var(--violet);color:#fff}.booking-time-options p,.address-results p{margin:.5rem 0;color:var(--muted);font:.85rem/1.5 var(--serif)}.address-search-step{position:relative}.address-results{display:grid;border:1px solid rgba(29,33,29,.25);border-top:0;background:#fff}.address-results:empty{display:none}.address-results button{display:grid;gap:.3rem;padding:.85rem;text-align:left;border:0;border-bottom:1px solid rgba(29,33,29,.18);background:#fff;color:var(--ink);cursor:pointer}.address-results button:hover{background:var(--paper)}.address-results button strong{font:400 1rem/1.25 var(--serif)}.address-results button span{color:var(--muted);font-size:.68rem}.booking-travel-note{display:grid;gap:.35rem;background:#fff}.booking-travel-note strong{color:var(--ink);font:700 .72rem/1.3 var(--sans);letter-spacing:.08em;text-transform:uppercase}.booking-travel-note span{font:400 .85rem/1.5 var(--serif)}.booking-travel-note.is-core{border-color:#4e815d}.booking-travel-note.is-outer{border-color:var(--sun)}.booking-travel-note.is-regional{border-color:var(--clay)}
@media(max-width:760px){.direct-projects{margin-left:-1.25rem;margin-right:-1.25rem;padding:3rem 1.25rem}.direct-projects-heading{grid-template-columns:1fr}.direct-projects ul{grid-template-columns:1fr}.direct-projects li:nth-child(even){padding-left:0;border-left:0}.booking-calendar-days button{min-height:3.2rem}.booking-calendar-days button small{display:none}}

/* Residential conversion, booking consent, and public policy pages. */
.direct-projects-intro{display:grid;gap:1.2rem}.direct-projects-intro p{margin:0;color:#d6d1c7;font:400 1.05rem/1.65 var(--serif)}.direct-projects-offer{display:flex;align-items:baseline;justify-content:space-between;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.55);background:rgba(255,255,255,.1)}.direct-projects-offer span{font:700 .58rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase}.direct-projects-offer strong{font:400 2rem/1 var(--serif)}.direct-projects-book{display:flex;justify-content:space-between;align-items:center;gap:1rem;width:100%;padding:1.1rem;border:1px solid #fff;background:#fff;color:var(--violet);font:700 .61rem/1.4 var(--sans);letter-spacing:.12em;text-align:left;text-transform:uppercase;cursor:pointer}.direct-projects-book strong,.direct-projects-book small{display:block}.direct-projects-book small{margin-top:.3rem;font-size:.52rem;letter-spacing:.08em}.direct-projects-book:hover,.direct-projects-book:focus-visible{background:var(--sun);border-color:var(--sun);color:var(--ink)}
.booking-policy-consent{display:grid;grid-template-columns:auto 1fr;gap:.65rem;align-items:start;margin:1rem 0;color:var(--muted);font:.72rem/1.5 var(--sans)}.booking-policy-consent input{width:1rem;height:1rem;margin:.15rem 0 0;accent-color:var(--violet)}.booking-policy-consent a{color:var(--ink)}
.address-search-control{display:grid;grid-template-columns:1fr auto}.address-search-control input{min-width:0}.address-search-control button{padding:.7rem 1rem;border:1px solid rgba(29,33,29,.45);border-left:0;background:var(--ink);color:#fff;font:700 .58rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.address-search-control button:disabled{cursor:wait;opacity:.62}.address-status{margin:.1rem 0 0;color:var(--muted);font:.72rem/1.45 var(--sans)}
.footer-legal{display:flex;gap:1.25rem}.footer-legal a{color:#bcbdb5;font:700 .58rem/1 var(--sans);letter-spacing:.13em;text-transform:uppercase}
.legal-page{background:var(--paper-light)}.legal-main{min-height:100vh;padding:clamp(8rem,14vw,12rem) max(1.25rem,8vw) 7rem}.legal-header{display:grid;grid-template-columns:1fr 2.5fr;gap:7vw;padding-bottom:4rem;border-bottom:1px solid var(--ink)}.legal-header h1{font-size:clamp(4rem,9vw,9rem);line-height:.82}.legal-header p:last-child{max-width:34rem;align-self:end;margin:0;color:var(--muted);font:400 1.1rem/1.65 var(--serif)}.legal-content{max-width:72rem;margin:0 auto;padding-top:4rem}.legal-content section{display:grid;grid-template-columns:minmax(10rem,.7fr) 2fr;gap:4vw;padding:2.2rem 0;border-bottom:1px solid var(--line)}.legal-content h2{font:400 clamp(1.7rem,3vw,2.7rem)/1.05 var(--serif);letter-spacing:-.035em}.legal-content p,.legal-content li{color:#44463f;font:400 1rem/1.7 var(--serif)}.legal-content p{margin:0}.legal-content p+p{margin-top:1rem}.legal-content ul{margin:0;padding-left:1.2rem}.legal-content strong{color:var(--ink)}.legal-updated{margin-top:3rem;color:var(--muted);font-size:.72rem}.legal-contact{display:inline-block;margin-top:1rem;font-weight:700}
@media(max-width:760px){.legal-header,.legal-content section{grid-template-columns:1fr}.footer-legal{grid-column:1/-1;grid-row:2}.address-search-control{grid-template-columns:1fr}.address-search-control button{border-left:1px solid rgba(29,33,29,.45);border-top:0;min-height:2.8rem}}

/* Violet Dasse, Harpist. A separate service surface on the same site. */
.harp-page{--harp-dark:#241b2b;--harp-plum:#55344f;--harp-rose:#c89cae;--harp-gold:#d1b779;background:#f1e9df}.harp-header .brand{display:flex;align-items:baseline;gap:.7rem}.harp-header .brand small{font:700 .5rem/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}.harp-hero{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:radial-gradient(circle at 72% 42%,#69465e 0,#3a2639 35%,var(--harp-dark) 72%);color:#fff}.harp-hero-copy{position:relative;z-index:2;display:flex;min-height:100svh;flex-direction:column;align-items:flex-start;padding:clamp(9rem,18vh,14rem) 6vw 5rem}.harp-hero h1{font-size:clamp(5.2rem,11vw,12rem);line-height:.75}.harp-hero h1 em{color:var(--harp-gold)}.harp-hero-copy>p:not(.section-label){max-width:35rem;margin:auto 0 2.6rem;color:#e8dfe4;font:400 clamp(1.2rem,1.8vw,1.65rem)/1.5 var(--serif)}.harp-strings{position:absolute;z-index:1;inset:0 4vw 0 auto;display:flex;width:min(48vw,720px);justify-content:space-between;transform:skewX(-10deg);opacity:.75}.harp-strings span{width:1px;background:linear-gradient(transparent 5%,rgba(255,255,255,.5) 18%,rgba(209,183,121,.8) 76%,transparent 96%)}.harp-strings span:nth-child(3n){width:2px;background:linear-gradient(transparent 5%,rgba(200,156,174,.65) 20%,rgba(200,156,174,.9) 76%,transparent 96%)}.harp-strings b{position:absolute;right:4vw;bottom:4vw;color:rgba(255,255,255,.07);font:italic clamp(10rem,26vw,29rem)/.7 var(--serif);letter-spacing:-.12em;transform:skewX(10deg)}.harp-introduction{display:grid;grid-template-columns:1fr 3fr;gap:5vw;padding:clamp(7rem,11vw,12rem) 5vw;background:#f1e9df}.harp-introduction>p:last-child{max-width:76rem;margin:0;font:400 clamp(2.4rem,5vw,5.5rem)/1.02 var(--serif);letter-spacing:-.055em}.harp-packages{padding:clamp(7rem,10vw,11rem) 5vw;background:#faf5ed}.harp-packages>header{display:grid;grid-template-columns:.7fr 1.6fr 1fr;gap:4vw;align-items:end;margin-bottom:5rem}.harp-packages h2{font-size:clamp(3.8rem,7vw,7.4rem)}.harp-packages>header>p:last-child{margin:0;color:var(--muted);font:400 1rem/1.65 var(--serif)}.harp-service-offers{grid-template-columns:repeat(2,1fr)}.harp-service-offers article{min-height:34rem}.harp-production{display:grid;grid-template-columns:1fr 1.25fr;gap:9vw;padding:clamp(7rem,11vw,12rem) 5vw;background:var(--harp-dark);color:#fff}.harp-production .section-label{margin-bottom:2rem;color:var(--harp-gold)}.harp-production h2{font-size:clamp(4rem,8vw,8rem)}.harp-production-copy{align-self:end}.harp-production-copy p{margin:0;color:#ded3da;font:400 clamp(1.05rem,1.5vw,1.3rem)/1.7 var(--serif)}.harp-production-copy p+p{margin-top:1.4rem}.harp-production-copy .arrow-link{margin-top:3rem;color:var(--harp-gold)}.harp-practical{display:grid;grid-template-columns:.7fr 3fr;gap:5vw;padding:clamp(6rem,9vw,9rem) 5vw;background:var(--harp-rose);color:var(--harp-dark)}.harp-practical>div{display:grid;grid-template-columns:1fr 1fr}.harp-practical article{min-height:14rem;padding:1.5rem;border-top:1px solid var(--harp-dark);border-right:1px solid var(--harp-dark)}.harp-practical article:nth-child(even){border-right:0}.harp-practical h3{margin:0 0 2rem;font:400 1.8rem/1 var(--serif)}.harp-practical p{margin:0;font:.85rem/1.6 var(--sans)}.harp-contact{background:var(--harp-gold)}.harp-contact .contact-intro h2 em{color:var(--harp-plum)}.booking-travel-note.is-harp{border-color:var(--harp-plum)}
@media(max-width:900px){.harp-packages>header,.harp-production,.harp-practical{grid-template-columns:1fr}.harp-service-offers{grid-template-columns:1fr}.harp-introduction{grid-template-columns:1fr}.harp-strings{width:58vw;opacity:.45}.harp-packages>header>p:last-child{margin-top:2rem}}
@media(max-width:640px){.brand small{display:none}.harp-hero-copy{padding-left:1.25rem;padding-right:1.25rem}.harp-hero h1{font-size:clamp(4.2rem,22vw,6.8rem)}.harp-strings{inset:0 -8vw 0 auto;width:70vw}.harp-introduction,.harp-packages,.harp-production,.harp-practical{padding-left:1.25rem;padding-right:1.25rem}.harp-practical>div{grid-template-columns:1fr}.harp-practical article{border-right:0}}

.place-strip{display:grid;grid-template-columns:1fr 1.4fr;min-height:72vh;background:#1b1a17}
.place-strip figure{margin:0;overflow:hidden}
.place-strip img{width:100%;height:100%;min-height:72vh;object-fit:cover}
.place-strip figure:first-child img{object-position:center 20%}
.place-strip figure:last-child img{object-position:center 48%}
@media(max-width:900px){
  .place-strip{grid-template-columns:1fr;min-height:0}
  .place-strip img{min-height:42vh}
}
.journal{padding:clamp(5rem,9vw,9rem) 4vw 3rem;background:var(--paper-light);display:grid;gap:clamp(2.4rem,5vw,4.5rem)}
.journal-open{max-width:38rem}
.journal-open h2{margin:.8rem 0 1.1rem;font-size:clamp(2.8rem,5.4vw,5.4rem);line-height:.92}
.journal-open>p{margin:0;color:var(--muted);font:400 1.12rem/1.6 var(--serif)}
.spread{display:grid;gap:1.25rem 1.6rem;align-items:end}
.spread-lead{grid-template-columns:1.45fr .72fr}
.spread-pair{grid-template-columns:1fr 1fr;align-items:start}
.journal-study,.journal-place,.journal-slip{margin:0}
.journal-place,.journal-slip{overflow:hidden;background:#c6b9aa}
.journal-place img,.journal-slip img{width:100%;height:100%;object-fit:cover;filter:none}
.journal-inset img{min-height:28rem;aspect-ratio:3/4;object-position:center 22%}
.journal-slip{grid-column:1/-1}
.journal-slip img{aspect-ratio:21/8;min-height:0;object-position:center 46%}
.journal-place figcaption,.journal-slip figcaption{padding:.65rem 0 0;font:italic .95rem/1.35 var(--serif);color:var(--muted)}
.journal-study figure{margin:0;overflow:hidden;background:#20231f}
.journal .project-meta{grid-template-columns:1fr auto;gap:.4rem 1rem}
.journal .project-meta h3{grid-column:1/-1;font-size:clamp(1.4rem,2vw,2.1rem)}
.about-photo{margin:0;overflow:hidden;background:#1b1a17;min-height:100%}
.about-photo img{height:100%;min-height:32rem;object-fit:cover;object-position:center 28%;filter:none}
@media(max-width:900px){
  .spread-lead,.spread-pair{grid-template-columns:1fr}
  .journal-inset img{min-height:18rem;aspect-ratio:4/3}
  .journal-slip img{aspect-ratio:16/9}
  .about-photo img{min-height:22rem}
}
@media(max-width:640px){
  .journal{padding-left:1.25rem;padding-right:1.25rem}
}
.firm-note{max-width:46rem;margin:clamp(2.5rem,5vw,4rem) auto 0;padding:1.6rem 0 3rem;border-top:1px solid var(--line)}
.firm-note p:last-child{margin:.7rem 0 0;color:var(--muted);font:400 1.05rem/1.6 var(--serif)}

