/* Hallmark · macrostructure: editorial contact sheet · tone: quiet luxury · anchor hue: forest */
/* Hallmark · pre-emit critique: P4 H5 E4 S5 R5 V4 · variation: owner portrait and authentic Instagram photo strip */
@font-face {font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/cormorant-latin-ext.woff2') format('woff2'); unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face {font-family:'Cormorant Garamond'; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/cormorant-latin.woff2') format('woff2'); unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face {font-family:Manrope; font-style:normal; font-weight:400; font-display:swap; src:url('/fonts/manrope-regular.ttf') format('truetype')}
@font-face {font-family:Manrope; font-style:normal; font-weight:600; font-display:swap; src:url('/fonts/manrope-semibold.ttf') format('truetype')}
* {box-sizing:border-box}
html {scroll-behavior:smooth; scroll-padding-top:24px}
html,body {overflow-x:clip}
body {margin:0; background:var(--paper); color:var(--ink); font:400 16px/1.65 var(--font-body); -webkit-font-smoothing:antialiased}
a {color:inherit; text-decoration:none}
a:focus-visible {outline:3px solid var(--focus); outline-offset:5px}
a:active {opacity:.85}
a[aria-disabled='true'] {opacity:.55; cursor:not-allowed; pointer-events:none}
.skip-link {position:absolute; top:12px; left:12px; z-index:5; padding:12px 16px; background:var(--surface); transform:translateY(-160%)}
.skip-link:focus {transform:translateY(0)}
.site-shell {max-width:1600px; margin:0 auto; padding:0 56px}
.masthead {height:112px; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line)}
.brand {display:flex; align-items:center; gap:14px; min-height:44px}
.brand-mark {font:400 35px/1 var(--font-display); letter-spacing:-2px}
.brand-name {font-size:12px; letter-spacing:.24em; font-weight:600}
.header-contact {display:flex; align-items:center; gap:20px; min-height:44px; font-size:14px}
.header-contact span {font-size:22px}
.intro {display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); grid-template-areas:'copy portrait' 'description portrait'; column-gap:56px; row-gap:32px; padding:48px 0; align-items:center}
.intro-copy {grid-area:copy; align-self:end; min-width:0}
.eyebrow {margin:0 0 28px; font-size:11px; font-weight:600; letter-spacing:.15em}
h1 {margin:0; min-width:0; overflow-wrap:anywhere; font:400 clamp(84px,9.4vw,150px)/.97 var(--font-display); letter-spacing:-.055em}
h1 span {color:var(--muted)}
.intro-bottom {grid-area:description; display:flex; align-items:flex-start; align-self:start; gap:24px; max-width:425px}
.short-rule {width:40px; flex:0 0 40px; height:1px; background:var(--accent); margin-top:14px}
.intro-bottom p {margin:0; color:var(--muted); font-size:16px}
.portrait {grid-area:portrait; width:100%; max-width:430px; min-width:0; margin:0 0 0 auto}
.portrait img {display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover}
.portrait figcaption {display:flex; justify-content:space-between; flex-wrap:wrap; gap:4px 16px; padding-top:12px; font-size:11px; color:var(--muted)}
.portrait figcaption span:first-child {color:var(--ink); font-weight:600}
.contact {display:grid; grid-template-columns:1fr 1.15fr; gap:64px; padding:48px 0 56px; border-top:1px solid var(--line); scroll-margin-top:24px}
.contact-heading .eyebrow {margin-bottom:12px; color:var(--muted)}
h2 {margin:0 0 12px; min-width:0; overflow-wrap:anywhere; font:400 clamp(32px,3.2vw,48px)/1.1 var(--font-display); letter-spacing:-.035em}
.contact-heading>p:last-child {margin:0; color:var(--muted); font-size:14px}
.contact-links {display:flex; flex-direction:column; gap:12px}
.contact-link {display:flex; align-items:center; gap:20px; padding:20px 24px; min-height:100px; border:1px solid var(--line); transition:background .18s ease,border-color .18s ease}
.phone-link {background:var(--forest); color:var(--cream); border-color:var(--forest)}
.phone-link:focus-visible {outline-color:var(--focus)}
.phone-link:hover {background:var(--ink)}
.instagram-link:hover {background:var(--surface); border-color:var(--muted)}
.link-icon {width:24px; height:24px; flex:0 0 24px}
.link-icon svg {width:24px; height:24px; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round}
.icon-dot {fill:currentColor; stroke:none}
.link-copy {display:flex; flex:1; min-width:0; flex-direction:column; gap:4px}
.link-label {font-size:10px; letter-spacing:.1em; opacity:.85}
.link-value {font-size:19px; font-weight:600; line-height:1.35; overflow-wrap:anywhere}
.link-arrow {font-size:26px; flex:0 0 26px; line-height:1}
.instagram-gallery {padding:48px 0 56px; border-top:1px solid var(--line)}
.gallery-heading {display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:28px}
.gallery-heading .eyebrow {margin-bottom:12px; color:var(--muted)}
.gallery-heading p:last-child {margin:0; color:var(--muted); font-size:14px}
.gallery-profile {display:flex; align-items:center; gap:16px; min-height:44px; font-size:13px; white-space:nowrap}
.gallery-profile span {font-size:22px}
.gallery-grid {display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px; margin:0; padding:0; list-style:none}
.gallery-grid li {min-width:0}
.gallery-post {display:block; min-width:0}
.gallery-post:focus-visible {outline-offset:-3px}
.gallery-post img {display:block; width:100%; height:auto; aspect-ratio:800/1422; background:var(--line)}
.post-caption {display:flex; flex-direction:column; gap:12px; padding:16px 0 0}
.post-place {display:block; font-size:10px; font-weight:600; letter-spacing:.08em; color:var(--muted)}
.post-title {display:block; margin-top:4px; font:400 28px/1.25 var(--font-display); letter-spacing:-.025em}
.post-open {display:flex; align-items:center; gap:12px; font-size:12px; color:var(--muted); text-decoration:underline; text-underline-offset:4px}
.post-open span {font-size:19px; text-decoration:none}
.gallery-post:hover .post-open,.gallery-profile:hover {color:var(--ink)}
.gallery-hint {display:none}
footer {display:flex; justify-content:space-between; gap:16px; padding:24px 0; border-top:1px solid var(--line); font-size:11px; color:var(--muted)}
@media (min-width:1440px) {.site-shell {padding:0 96px}}
@media (max-width:850px) {
  .site-shell {padding:0 28px}
  .masthead {height:88px}
  .intro {column-gap:28px; row-gap:24px; padding:40px 0}
  h1 {font-size:clamp(72px,11vw,110px)}
  .portrait figcaption {flex-direction:column}
  .contact {gap:28px; grid-template-columns:1fr 1.3fr; padding:36px 0}
  .contact-link {padding:20px 16px; gap:14px}
  .link-value {font-size:17px}
  .gallery-grid {gap:20px}
  .post-title {font-size:25px}
}
@media (max-width:600px) {
  .site-shell {padding:0 24px}
  .masthead {height:68px}
  .brand-mark {font-size:30px}
  .brand-name {font-size:10px}
  .brand {gap:10px}
  .header-contact {font-size:12px; gap:12px}
  .intro {grid-template-columns:minmax(0,1fr) 112px; grid-template-areas:'copy portrait' 'description description'; gap:20px 16px; padding:28px 0 24px}
  .intro-copy {align-self:center}
  .eyebrow {font-size:10px; margin-bottom:20px}
  h1 {font-size:clamp(60px,17vw,84px)}
  .intro-bottom {gap:16px}
  .intro-bottom p {font-size:14px; max-width:290px}
  .short-rule {width:24px; flex-basis:24px}
  .portrait img {border-radius:50%}
  .portrait figcaption {display:none}
  .contact {grid-template-columns:1fr; gap:20px; padding:24px 0}
  h2 {font-size:34px}
  .contact-heading>p:last-child {font-size:13px}
  .contact-link {min-height:92px; padding:16px; gap:16px}
  .link-value {font-size:17px}
  .link-label {font-size:9px}
  .instagram-gallery {padding:28px 0}
  .gallery-heading {align-items:start; flex-direction:column; gap:12px; margin-bottom:20px}
  .gallery-profile {min-height:44px}
  .gallery-grid {display:flex; gap:16px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x mandatory; scroll-padding-inline:4px; padding:8px 4px 20px; margin:0 -4px}
  .gallery-grid li {flex:0 0 76%; scroll-snap-align:start}
  .post-caption {padding-top:12px; gap:8px}
  .gallery-hint {display:block; margin:4px 0 0; font-size:11px; color:var(--muted)}
  footer {flex-direction:column; gap:4px; padding:20px 0}
}
@media (max-width:360px) {.site-shell {padding:0 16px}.intro {grid-template-columns:minmax(0,1fr) 96px; column-gap:12px}.contact-link {gap:12px;padding:16px 12px}.link-value {font-size:16px}}
@media (prefers-reduced-motion:reduce) {html {scroll-behavior:auto}.contact-link {transition:none}}
