@font-face { font-family: 'Proxima Local'; src: url('../fonts/proximanova-semibold-webfont.woff') format('woff'); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: 'Proxima Local'; src: url('../fonts/proximanova-extrabold-webfont.woff') format('woff'); font-weight: 800; font-style: normal; font-display: swap; }
@font-face { font-family: 'Futura Local'; src: url('../fonts/futurastd-bold-webfont.woff') format('woff'); font-weight: 800; font-style: normal; font-display: swap; }
:root {
  --blue: #0085cb;
  --link: #00629b;
  --ink: #20252a;
  --paper: #fff;
  --canvas: #f5f7f8;
  --muted: #59636c;
  --line: #e0e7eb;
  --tint: #edf5fa;
  --body: proxima-nova, 'Proxima Local', Arial, sans-serif;
  --display: futura-pt, 'Futura Local', Arial, sans-serif;
  --space: clamp(1.5rem, 5vw, 4rem);
  --radius: 1.75rem;
  --ease: cubic-bezier(.4, 0, .6, 1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 7rem; }
body { margin: 0; color: var(--ink); background: var(--canvas); font: 400 1.0625rem/1.7 var(--body); -webkit-font-smoothing: antialiased; }
::selection { color: white; background: var(--link); }
a { color: var(--link); text-underline-offset: .22em; }
a:hover { text-decoration-thickness: 2px; }
button { font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; height: auto; }
p { margin: 0 0 1.25rem; }
h1, h2, h3 { margin: 0; line-height: 1.2; }
h1, h2 { font-family: var(--body); font-weight: 600; }
h2 { font-size: clamp(1.8rem, 3.5vw, 2.75rem); letter-spacing: -.025em; }
h3 { font-size: 1.3rem; font-weight: 600; letter-spacing: -.015em; }
:focus-visible { outline: 3px solid var(--link); outline-offset: 5px; }
section[id] { scroll-margin-top: 1rem; }
section[tabindex="-1"]:focus, main[tabindex="-1"]:focus { outline: none; }
.skip-link { position: fixed; top: -6rem; left: 1rem; z-index: 40; padding: .75rem 1rem; background: white; border-radius: .6rem; }
.skip-link:focus { top: 1rem; }
.site-header { position: sticky; top: 1rem; z-index: 30; margin: 1rem auto 0; padding: 0 1.5rem; max-width: 1240px; }
.header-inner { position: relative; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: .65rem .8rem .65rem 1.25rem; background: rgb(255 255 255 / .96); border: 1px solid rgb(224 231 235 / .85); border-radius: 2rem; box-shadow: 0 4px 24px rgb(20 50 70 / .045); }
@supports (backdrop-filter: blur(16px)) { .header-inner { background: rgb(255 255 255 / .88); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); } }
.brand { display: flex; align-items: center; gap: .7rem; color: var(--ink); text-decoration: none; }
.brand img { width: 58px; flex-shrink: 0; mix-blend-mode: multiply; }
.brand strong { display: block; font: 600 1rem/1.15 var(--body); letter-spacing: -.02em; }
.brand span { display: block; font-size: .75rem; color: var(--muted); margin-top: .15rem; line-height: 1.3; }
.nav-toggle { display: none; align-items: center; justify-content: center; gap: 1rem; min-height: 46px; padding: .5rem 1.1rem; border: 1px solid var(--line); border-radius: 99px; background: var(--canvas); color: var(--ink); font-weight: 600; font-size: .9rem; transition: background .2s, border-color .2s; }
.has-js .nav-toggle { display: flex; }
.nav-toggle:hover, .nav-toggle[aria-expanded="true"] { background: var(--tint); border-color: #c8dce8; }
.nav-toggle-icon { position: relative; width: 18px; height: 16px; }
.nav-toggle-icon i { position: absolute; left: 0; width: 18px; height: 1.5px; border-radius: 2px; background: currentColor; transition: transform .24s cubic-bezier(.22, 1, .36, 1); }
.nav-toggle-icon i:first-child { top: 5px; }
.nav-toggle-icon i:last-child { top: 11px; }
.nav-toggle[aria-expanded="true"] i:first-child { transform: translateY(3px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] i:last-child { transform: translateY(-3px) rotate(-45deg); }
.primary-navigation { width: 100%; padding: 1rem; background: var(--paper); border-radius: 1.5rem; }
.has-js .primary-navigation { position: absolute; top: calc(100% + .65rem); right: 0; width: min(390px, calc(100vw - 3rem)); max-height: calc(100dvh - 7rem); overflow: auto; overscroll-behavior: contain; box-shadow: 0 18px 60px rgb(20 50 70 / .14), 0 0 0 1px rgb(224 231 235 / .85); transform-origin: calc(100% - 3.5rem) -1rem; }
.menu-heading { padding: .75rem .85rem 1.1rem; color: var(--muted); font-size: .7rem; text-transform: uppercase; letter-spacing: .1em; font-weight: 600; }
.primary-navigation ul { padding: 0; margin: 0; list-style: none; }
.primary-navigation li + li { border-top: 1px solid var(--line); }
.primary-navigation ul a { display: flex; align-items: center; gap: 1rem; min-height: 54px; padding: .6rem .85rem; border-radius: .65rem; color: var(--ink); font: 600 1.15rem/1.3 var(--body); text-decoration: none; transition: background .2s, color .2s; }
.primary-navigation ul a:hover, .primary-navigation ul a[aria-current] { color: var(--link); background: var(--tint); }
.nav-number { font-size: .65rem; font-weight: 400; color: var(--muted); letter-spacing: .04em; }
.nav-arrow { margin-left: auto; color: #697b89; font-size: 1rem; }
.menu-contact { padding: 1.1rem .5rem .4rem; }
.menu-contact .contact-button { width: 100%; }
.menu-contact .direct-contact { justify-content: center; }
.menu-contact > span { display: block; text-align: center; font-size: .8rem; color: var(--muted); margin-top: .65rem; }
.menu-scrim { position: fixed; inset: 0; z-index: 25; background: rgb(18 39 53 / .14); }
.hero { padding: clamp(3.5rem, 7vw, 6.5rem) 2.5rem 2.5rem; max-width: 1240px; margin: 0 auto; }
.hero-inner { display: grid; grid-template-columns: 1.2fr 1fr; align-items: center; gap: clamp(2rem, 6vw, 5rem); }
.eyebrow { display: block; color: var(--link); font-size: .7rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.hero .eyebrow { margin-bottom: 1.1rem; }
.hero h1 { max-width: 660px; color: var(--ink); font-size: clamp(2.4rem, 4.8vw, 4.4rem); line-height: 1.08; letter-spacing: -.04em; }
.hero h1 span { color: var(--link); }
.hero-description { max-width: 380px; margin: 1.5rem 0 .55rem; color: var(--muted); font-size: 1.125rem; line-height: 1.55; }
.hero-name { margin-bottom: 1.6rem; font-size: 1rem; font-weight: 600; }
.hero-identity { text-align: center; mix-blend-mode: multiply; }
.hero-art { display: block; width: min(100%, 410px); margin: auto; }
.hero-art img { width: 100%; mix-blend-mode: multiply; }
.hero blockquote { margin: 2rem 0 0; color: var(--muted); font-size: .95rem; line-height: 1.5; }
.hero blockquote strong { font-weight: 600; color: var(--ink); }
.hero-scroll { display: flex; align-items: center; justify-content: space-between; width: fit-content; gap: 1.25rem; margin-top: clamp(3rem, 6vw, 5rem); padding: .5rem 0; color: var(--muted); font-size: .85rem; text-decoration: none; }
.hero-scroll span { width: 32px; height: 32px; display: grid; place-items: center; border: 1px solid #cedce5; border-radius: 50%; color: var(--link); }
.contact-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2.5rem; min-height: 50px; padding: .75rem 1.25rem; border: 1px solid var(--link); border-radius: 99px; background: var(--link); color: white; font: 600 .95rem/1.4 var(--body); text-decoration: none; box-shadow: 0 3px 10px rgb(0 98 155 / .12); transition: background .2s, box-shadow .2s, transform .2s var(--ease); }
.contact-button:hover { background: #004e7c; box-shadow: 0 5px 18px rgb(0 98 155 / .18); transform: translateY(-1px); }
.contact-button:active { transform: scale(.98); }
.contact-button span { font-size: 1.1rem; }
main { max-width: 1240px; margin: 0 auto; }
.content-section { margin: 0 1.5rem 1.5rem; padding: var(--space); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.section-heading { position: relative; padding-bottom: 1.75rem; margin-bottom: 2.5rem; border-bottom: 1px solid var(--line); }
.section-heading .eyebrow { margin-bottom: .75rem; }
.section-note { display: block; color: var(--muted); margin-top: .75rem; font-size: .95rem; }
.bio-intro { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 2.5rem; align-items: start; }
.portrait { width: 200px; border-radius: 1.25rem; }
.bio-lead { max-width: 740px; }
.bio-company-heading { margin-bottom: .65rem; }
.bio-positioning { max-width: 44ch; margin-bottom: 1.5rem; color: var(--link); font-size: 1.125rem; line-height: 1.45; }
.bio-lead > p:last-child { margin-bottom: 0; }
.bio-details { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 3rem; border-top: 1px solid var(--line); padding-top: 2rem; margin-top: 1rem; }
.bio-narrative p { max-width: 740px; }
.bio-narrative > h3 { margin: 1.75rem 0 .75rem; }
.bio-narrative > h3:first-child { margin-top: 0; }
.signature { display: flex; align-items: center; gap: .8rem; margin: 1.5rem 0; }
.signature img { width: 100px; }
.skills { padding: 1.25rem; background: var(--canvas); border: 1px solid var(--line); border-radius: 1rem; height: fit-content; scroll-margin-top: 1rem; }
.wine-study { margin: 0 0 1.5rem; }
.wine-study > img { width: 100%; height: auto; border-radius: .75rem; }
.wine-study figcaption { margin-top: .65rem; color: var(--muted); font: italic 1rem/1.5 Georgia, serif; }
.skills-groups { display: grid; gap: 1.5rem; }
.service-group + .service-group { border-top: 1px solid var(--line); padding-top: 1.25rem; }
.service-group h3 { color: var(--ink); font-size: .95rem; font-weight: 600; margin-bottom: .55rem; }
.service-group ul { margin: 0; padding: 0; list-style: none; }
.service-item { display: flex; align-items: center; gap: .6rem; min-height: 34px; color: var(--muted); font-size: .875rem; line-height: 1.5; }
.service-item > img { width: 16px; height: 16px; flex-shrink: 0; }
.service-item > span { white-space: nowrap; }
a.service-item { min-height: var(--touch); color: var(--link); font-weight: 600; }
.client-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: 2.5rem; row-gap: 3.5rem; }
.client { min-width: 0; }
.client-art { display: flex; justify-content: center; align-items: center; padding: 1rem; margin-bottom: 1.5rem; background: var(--canvas); border-radius: 1rem; transition: background .25s; }
.client-art img { width: 200px; max-width: 100%; }
a.client-art:hover { background: var(--tint); }
.client h3 { margin-bottom: .75rem; }
.client p { font-size: 1rem; line-height: 1.65; margin: 0; color: #4f5962; }
.client p a { font-weight: 600; }
.consultation-button { max-width: 100%; gap: .75rem; padding-inline: 1rem; }
.consultation-button > span { flex-shrink: 0; }
.direct-contact { display: flex; flex-wrap: wrap; align-items: center; gap: 0 1.25rem; margin-top: .5rem; }
.direct-contact a { display: inline-flex; align-items: center; gap: .5rem; min-height: var(--touch); font-size: .9rem; font-weight: 600; }
.direct-contact a > img, .footer-contact > img, .footer-nav a > img, .footer-colophon a > img { width: 16px; height: 16px; flex-shrink: 0; }
.direct-contact a[href^="sms:"] { color: var(--muted); font-weight: 400; }
.contact-layout { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.contact-layout > * { min-width: 0; }
.contact-portrait { margin: 0; }
.contact-portrait img { width: 100%; height: auto; border-radius: var(--photo-radius); }
.contact-portrait figcaption { margin-top: .65rem; font-size: .8rem; line-height: 1.5; color: var(--muted); }
.contact-details .section-heading { padding: 0; margin-bottom: 1.5rem; border: 0; }
.contact-details .section-note { margin-bottom: 0; }
.contact-introduction { max-width: 34ch; margin-bottom: 1.5rem; font-size: 1.125rem; }
.contact-actions { width: fit-content; max-width: 100%; }
.contact-copy { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid var(--line); color: var(--muted); }
.contact-copy p { max-width: 900px; }
.contact-copy p:last-child { margin-bottom: 0; }
.faq-heading { margin-bottom: 1.5rem; }
.faq-heading .eyebrow { margin-bottom: .75rem; }
.faq-heading h2 { font-size: clamp(1.6rem, 3vw, 2rem); }
.faq-list { max-width: 900px; border-top: 1px solid var(--line); }
.faq-item { border-bottom: 1px solid var(--line); }
.faq-item summary { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: 64px; padding: 1.2rem .25rem; color: var(--ink); font-size: 1rem; font-weight: 600; line-height: 1.5; cursor: pointer; list-style: none; border-radius: .5rem; -webkit-tap-highlight-color: transparent; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover, .faq-item[open] summary { color: var(--link); }
.faq-item summary:active { background: var(--tint); }
.faq-toggle { width: 18px; height: 18px; flex-shrink: 0; color: var(--link); }
.faq-toggle-vertical { transform-origin: center; transition: transform .24s cubic-bezier(.22, 1, .36, 1), opacity .24s; }
.faq-item[open] .faq-toggle-vertical { transform: rotate(90deg); opacity: 0; }
.faq-answer { padding: 0 2.5rem 1.35rem .25rem; font-size: .95rem; line-height: 1.75; }
.faq-answer p { max-width: 76ch; }
.faq-answer a { font-weight: 600; }
.faq-item[open] .faq-answer { animation: faq-answer-in .24s cubic-bezier(.22, 1, .36, 1) both; }
@keyframes faq-answer-in { from { opacity: .75; transform: translateY(3px); } to { opacity: 1; transform: translateY(0); } }
.site-footer { margin-top: 3rem; background: var(--tint); border-top: 1px solid var(--line); }
.footer-inner { max-width: 1240px; margin-inline: auto; padding: 3rem calc(var(--space) + 1.5rem) 1rem; }
.footer-top { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 2rem; }
.footer-identity .eyebrow { margin-bottom: .5rem; }
.footer-identity h2 { font-size: clamp(1.2rem, 3vw, 1.75rem); }
.footer-identity p { margin: .8rem 0 .5rem; color: var(--muted); font-size: 1rem; line-height: 1.5; }
.footer-contact { display: inline-flex; align-items: center; gap: .55rem; min-height: var(--touch); font-weight: 600; }
.footer-nav h3 { margin: .3rem 0 .75rem; font: 600 .85rem/1.5 var(--body); color: var(--muted); }
.footer-nav ul, .footer-social ul { list-style: none; padding: 0; margin: 0; }
.footer-nav a { display: flex; align-items: center; gap: .55rem; min-height: var(--touch); width: fit-content; max-width: 100%; color: var(--ink); font-size: .95rem; text-decoration: none; }
.footer-nav a > span { min-width: 0; }
.footer-nav a:hover { color: var(--link); text-decoration: underline; }
.footer-local { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; padding-block: 1.25rem; border-top: 1px solid #ccdfe9; }
.footer-local p { margin: 0; color: var(--muted); font-size: .9rem; }
.footer-social ul { display: flex; gap: .6rem; }
.footer-social a { display: grid; place-items: center; width: var(--touch); height: var(--touch); background: var(--paper); border: 1px solid #ccdfe9; border-radius: 50%; transition: background .2s, border-color .2s; }
.footer-social a:hover { background: #e0eef7; border-color: var(--link); }
.footer-social img { width: 22px; height: 22px; opacity: .85; }
.footer-colophon { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0 1rem; border-top: 1px solid #ccdfe9; font-size: .75rem; color: var(--muted); }
.footer-colophon p { margin: 0; }
.footer-colophon a { display: inline-flex; align-items: center; gap: .45rem; min-height: var(--touch); color: var(--muted); }
.site-footer .footer-inner { padding-bottom: 0; }
.wine-finale { position: relative; width: 100%; margin: 0; padding: 0; overflow: hidden; background: var(--tint); }
.wine-finale-colophon { position: absolute; z-index: 2; inset: 0 0 auto; max-width: 1240px; margin-inline: auto; padding-inline: calc(var(--space) + 1.5rem); }
.wine-finale-colophon a:focus-visible { outline-offset: -3px; border-radius: .25rem; }
.wine-finale-scene { position: relative; width: 100%; aspect-ratio: 1902 / 452; overflow: hidden; }
.wine-finale-video, .wine-finale-poster, .wine-finale-poster img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.wine-finale-video { visibility: hidden; }
.wine-finale.is-playing .wine-finale-video { visibility: visible; }
.wine-finale.is-playing .wine-finale-poster { visibility: hidden; }
@media (max-width: 999px) {
  .wine-finale-scene { aspect-ratio: 786 / 640; }
  .wine-finale-colophon { position: relative; }
}
@media (max-width: 760px) { .wine-finale-colophon { padding-inline: 2.25rem; } }
@media (prefers-reduced-motion: reduce) {
  .wine-finale-video { display: none; }
  .wine-finale.is-playing .wine-finale-poster { visibility: visible; }
}
[hidden] { display: none !important; }
@media (max-width: 1000px) {
  .hero { padding-top: 4rem; }
  .hero-inner { gap: 2rem; }
  .bio-details { grid-template-columns: 1fr; gap: 2rem; }
  .skills { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr); align-items: start; gap: 2rem; }
  .wine-study { position: sticky; top: 8rem; margin-bottom: 0; }
  .client-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  html { scroll-padding-top: 6rem; }
  body { font-size: 1.0625rem; }
  .site-header { top: .75rem; margin-top: .75rem; padding: 0 .75rem; }
  .header-inner { padding: .5rem .55rem .5rem .9rem; gap: .6rem; }
  .brand img { width: 46px; }
  .brand strong { font-size: .9rem; }
  .brand span { font-size: .7rem; }
  .brand { gap: .55rem; }
  .nav-toggle { gap: .75rem; min-height: 44px; padding: .45rem .95rem; }
  .has-js .primary-navigation { width: min(390px, calc(100vw - 1.5rem)); max-height: calc(100dvh - 6.5rem); }
  .hero { padding: 2.5rem 1.5rem 2rem; }
  .hero-inner { display: flex; flex-direction: column; gap: 2rem; align-items: stretch; }
  .hero-identity { order: -1; }
  .hero-art { width: 168px; }
  .hero blockquote { margin-top: 1rem; font-size: .8rem; }
  .hero h1 { font-size: clamp(2rem, 8.6vw, 3.5rem); max-width: 560px; line-height: 1.12; }
  .hero .eyebrow { margin-bottom: .85rem; }
  .hero-description { font-size: 1rem; margin-top: 1.25rem; max-width: 320px; }
  .hero-name { font-size: .95rem; margin-bottom: 1.35rem; }
  .hero-scroll { margin-top: 2rem; }
  .content-section { margin: 0 .75rem 1rem; padding: 1.5rem; border-radius: 1.4rem; }
  .section-heading { margin-bottom: 1.75rem; padding-bottom: 1.5rem; }
  .bio-intro, .bio-details { grid-template-columns: 1fr; gap: 1.5rem; }
  .portrait { width: 148px; }
  .bio-details { margin-top: 0; padding-top: 1.5rem; }
  .client-grid { gap: 2.5rem 1.5rem; }
  .client-art { padding: .75rem; }
  .client h3 { font-size: 1.2rem; }
  .contact-layout { grid-template-columns: 1fr; gap: 1.75rem; }
  .contact-details { order: -1; }
  .contact-introduction { font-size: 1rem; }
  .contact-copy { margin-top: 1.75rem; padding-top: 1.5rem; }
  .skills { grid-template-columns: 1fr; gap: 1.5rem; padding: 1rem; }
  .wine-study { position: static; max-width: 360px; }
  .footer-inner { padding: 2.5rem 2.25rem 1rem; }
  .footer-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 1rem; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-nav a { font-size: .9rem; }
  dialog { padding: 1rem; border-radius: 1.2rem; }
}
@media (max-width: 560px) {
  .client-grid { grid-template-columns: 1fr; gap: 2.5rem; }
  .client-art { justify-content: center; }
  .client h3 { font-size: 1.3rem; }
}
@media (max-width: 360px) {
  .brand img { width: 40px; }
  .brand strong { font-size: .83rem; }
  .nav-toggle { gap: .55rem; padding-inline: .8rem; }
  .hero { padding-inline: 1.25rem; }
  .hero-art { width: 140px; }
  .content-section { padding: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
  .faq-item[open] .faq-answer { animation: none; }
}
/* Editorial archive: quiet typography, original documents, one continuous reader. */
.icon { display: inline-block; width: 20px; height: 20px; flex-shrink: 0; vertical-align: middle; }
.nav-arrow .icon { width: 17px; height: 17px; }
.hero-scroll .icon { width: 16px; height: 16px; }
.archive-section { background: #edf3f6; }
.archive-section .section-heading { border-color: #cbdce6; }
.archive-section h2 { line-height: 1.2; max-width: 600px; }
.archive-section .section-note { margin-bottom: 0; max-width: 620px; }
.archive-feature { display: grid; grid-template-columns: 1.05fr 1fr; gap: 3rem; }
.archive-feature-copy { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: center; min-height: 460px; padding: 1.8rem; border-radius: 1rem; background: #183e57; color: white; }
.testimonial-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 55%; }
.archive-feature-copy::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(160deg, rgb(13 35 46 / .88), rgb(13 35 46 / .72) 55%, rgb(13 35 46 / .86)); }
.archive-feature-copy .eyebrow { color: #c4dbe9; }
.archive-feature-copy blockquote { font: 400 clamp(1.65rem, 2.7vw, 2.35rem)/1.3 Georgia, serif; margin: 1.5rem 0; letter-spacing: -.015em; }
.archive-feature-copy p { color: #d8e5ed; font-size: .85rem; line-height: 1.5; }
.archive-feature-copy .read-story { color: white; }
.archive-feature-copy .read-story:focus-visible { outline-color: white; }
.archive-credentials { position: relative; display: grid; gap: 1rem; margin: 0; padding: 0 0 0 1.5rem; list-style: none; scroll-margin-top: 1rem; }
.archive-credentials > li { position: relative; min-width: 0; }
.archive-credentials > li::before { content: ""; position: absolute; z-index: 1; box-sizing: border-box; top: 50%; transform: translateY(-50%); left: -1.5rem; width: 15px; height: 15px; border: 2px solid var(--link); border-radius: 50%; background: #edf3f6; }
.archive-credentials > li::after { content: ""; position: absolute; left: calc(-1.5rem + 7px); top: 0; bottom: -1rem; width: 1px; background: #9fbecf; }
.archive-credentials > li:first-child::after { top: 50%; }
.archive-credentials > li:last-child::after { bottom: 50%; }
.archive-credentials a { position: relative; isolation: isolate; overflow: hidden; display: flex; flex-direction: column; justify-content: center; min-height: 156px; height: 100%; padding: 1.2rem 3rem 1.2rem 1.4rem; border: 1px solid rgb(255 255 255 / .2); border-radius: .9rem; color: white; background: #183e57; text-decoration: none; transition: border-color .2s; }
.archive-credentials a::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(110deg, rgb(13 35 46 / .86), rgb(13 35 46 / .74)); }
.credential-photo { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: 50% 58%; }
.archive-credentials li:first-child .credential-photo { object-position: 50% 57%; }
.archive-credentials li:last-child .credential-photo { object-position: 50% 76%; }
.archive-credentials a:hover { border-color: rgb(255 255 255 / .75); }
.archive-credentials a:focus-visible { outline-color: var(--link); }
.archive-date { font-size: .65rem; letter-spacing: .09em; text-transform: uppercase; color: #e0ebf0; }
.archive-credentials strong { font-size: 1.1rem; font-weight: 600; line-height: 1.3; margin: .3rem 0; }
.credential-note { font-size: .78rem; line-height: 1.5; color: #e0ebf0; }
.archive-credentials .icon { position: absolute; right: 1.25rem; top: calc(50% - 10px); color: white; }
.client-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 3rem; row-gap: 3rem; }
.client { display: grid; grid-template-columns: 120px minmax(0, 1fr); align-items: stretch; gap: 1.5rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.client-art { position: relative; align-self: stretch; min-height: 200px; margin: 0; padding: 0; background: var(--canvas); border-radius: .6rem; overflow: hidden; }
.client-art img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; }
.client-art--oceans { background: #103753; }
.client-art--oceans img { object-fit: contain; }
.client-art--stadium { background: #10273d; }
.client-art--stadium img { object-fit: contain; }
.client-chapter { display: block; margin-bottom: .6rem; font-size: .65rem; color: var(--muted); letter-spacing: .08em; text-transform: uppercase; }
.client-copy { min-width: 0; }
.client h3 { font-size: 1.4rem; }
.client p { font-size: .95rem; }
.read-story { display: inline-flex; align-items: center; gap: 1.2rem; min-height: 44px; margin-top: .8rem; text-decoration: none; font-size: .85rem; font-weight: 600; }
.read-story[aria-busy="true"] { opacity: .6; }
.recommendation-dialog[data-slot="dialog-content"] { inset: 0; margin: auto; translate: none; transform: none; width: min(800px, calc(100vw - 2rem)); max-width: min(800px, calc(100vw - 2rem)); height: fit-content; max-height: calc(100dvh - 2rem); display: flex; flex-direction: column; gap: 0; padding: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 1.25rem; color: var(--ink); background: white; box-shadow: 0 24px 100px rgb(18 35 46 / .25); font: 400 1rem/1.65 var(--body); }
.recommendation-dialog[data-state="open"] { animation: recommendation-reveal .55s var(--ease); }
.recommendation-dialog[data-state="closed"] { animation: recommendation-dismiss .3s ease-in; }
[data-slot="dialog-overlay"] { background: rgb(18 35 46 / .5); backdrop-filter: blur(3px); }
[data-slot="dialog-overlay"][data-state="open"] { animation-duration: .55s; animation-timing-function: var(--ease); }
[data-slot="dialog-overlay"][data-state="closed"] { animation-duration: .3s; }
.recommendation-header { display: flex; align-items: center; justify-content: space-between; flex-shrink: 0; gap: 1rem; padding: .9rem 1.25rem; border-bottom: 1px solid var(--line); }
.recommendation-header > div { min-width: 0; }
.recommendation-header > div > span { display: block; font-size: .65rem; color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.recommendation-header [data-slot="dialog-title"] { margin: .15rem 0 0; font: 600 1.15rem/1.25 var(--body); }
.recommendation-header button { flex-shrink: 0; min-width: 44px; min-height: 44px; border-radius: 50%; }
.recommendation-body { overflow: auto; overscroll-behavior: contain; min-height: 0; padding: 1rem; touch-action: pan-y pinch-zoom; }
.recommendation-page { display: block; width: 100%; height: auto; }
.canvas-pending { display: none !important; }
.recommendation-loading { display: grid; gap: 1rem; color: var(--muted); font-size: .85rem; }
.recommendation-error { padding: 1rem; font-size: .9rem; }
.recommendation-website, .recommendation-document { color: var(--link); border: 1px solid var(--line); border-radius: 99px; min-height: 44px; font-size: .9rem; }
.recommendation-letter { padding: clamp(1rem, 3vw, 2rem); }
.recommendation-letter h3 { margin: 0 0 1.5rem; font: 400 1.4rem/1.4 Georgia, serif; color: #234a60; }
.recommendation-letter > p { font-size: 1.05rem; line-height: 1.8; }
.recommendation-letter .recommendation-signature { margin-top: 2rem; margin-bottom: 0; font-size: .9rem; color: var(--muted); }
@keyframes recommendation-reveal { from { opacity: 0; transform: translateY(6px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes recommendation-dismiss { from { opacity: 1; } to { opacity: 0; } }
@media (max-width: 1000px) {
  .client-grid { column-gap: 2rem; }
  .client { grid-template-columns: 100px minmax(0, 1fr); gap: 1rem; }
}
@media (max-width: 760px) {
  .archive-feature { grid-template-columns: 1fr; gap: 1.25rem; }
  .archive-feature-copy { padding: 1.5rem; }
  .client-grid { grid-template-columns: 1fr; gap: 2rem; }
  .client { grid-template-columns: 100px minmax(0, 1fr); gap: 1rem; }
  .client h3 { font-size: 1.2rem; }
  .client p { font-size: .9rem; }
  .client-chapter { font-size: .6rem; }
  .client-copy .read-story { font-size: .8rem; gap: .6rem; }
  .recommendation-dialog[data-slot="dialog-content"] { width: calc(100vw - 1rem); max-width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); border-radius: 1rem; }
  .recommendation-header { padding: .65rem .8rem; }
  .recommendation-header [data-slot="dialog-title"] { font-size: 1rem; }
  .recommendation-body { padding: .5rem; }
}
@media (max-width: 360px) {
  .client { grid-template-columns: 86px minmax(0, 1fr); gap: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .recommendation-dialog, [data-slot="dialog-overlay"], [data-slot="skeleton"] { animation: none !important; }
}

/* Hospitality editorial: original photography, quiet service cues, generous touch targets. */
:root { --touch: 48px; --service-blue: #e9f3f8; --photo-radius: 1rem; }
a, button { touch-action: manipulation; }
.site-header { top: max(1rem, env(safe-area-inset-top)); }
.hero { padding-top: clamp(2.5rem, 5vw, 4.5rem); }
.hero-inner { grid-template-columns: 1.1fr 1fr; gap: clamp(2rem, 5vw, 4rem); }
.hero-identity { mix-blend-mode: normal; }
.hero-photo-pair { display: grid; grid-template-columns: 801fr 964fr; gap: .65rem; align-items: start; }
.hero-photo-pair figure { margin: 0; overflow: hidden; border-radius: var(--photo-radius); }
.hero-photo-pair img { width: 100%; height: auto; }
.hero-wine { margin-top: 2.5rem !important; }
.hero blockquote { font: 400 1.1rem/1.5 Georgia, serif; margin-top: 1.5rem; }
.hero-scroll { margin-top: 2rem; min-height: var(--touch); }
.service-experience { background: var(--service-blue); }
.service-intro { display: grid; grid-template-columns: 1fr 1fr; gap: .75rem 3rem; align-items: end; }
.service-intro .eyebrow { grid-column: 1 / -1; }
.service-intro h2 { font-size: clamp(2rem, 3.5vw, 3rem); }
.service-intro > p { margin: 0; max-width: 390px; color: var(--muted); }
.service-signatures { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; margin: 2.5rem 0; padding: 2rem 0; border-block: 1px solid #c8dce7; }
.service-signatures img { width: 32px; height: 32px; margin-bottom: 1rem; }
.service-signatures h3 { font-size: 1.05rem; margin-bottom: .4rem; }
.service-signatures p { color: var(--muted); font-size: .85rem; line-height: 1.5; margin: 0; }
.photo-carousel { --gallery-height: clamp(300px, 52vw, 480px); }
.carousel-viewport { overflow-x: auto; overscroll-behavior-x: contain; border-radius: var(--photo-radius); scrollbar-width: thin; }
.photo-carousel.is-ready .carousel-viewport { overflow: hidden; touch-action: pan-y pinch-zoom; cursor: grab; user-select: none; }
.photo-carousel.is-dragging .carousel-viewport { cursor: grabbing; }
.photo-carousel.is-ready .service-photographs { will-change: transform; }
.service-photographs { position: relative; display: flex; width: max-content; gap: 1.5rem; align-items: start; }
.service-photographs figure, .bio-portrait { margin: 0; min-width: 0; }
.service-photographs figure { flex: 0 0 auto; }
.service-photographs img { width: auto; height: var(--gallery-height); max-width: none; border-radius: var(--photo-radius); user-select: none; -webkit-user-drag: none; }
.service-photographs figcaption, .bio-portrait figcaption { margin-top: .65rem; color: var(--muted); font-size: .8rem; line-height: 1.5; }
.service-photographs figcaption { max-width: 30ch; }
.service-photographs figcaption span { color: var(--link); font-size: .7rem; }
.orchid-pair { max-width: 760px; margin: 0 auto 3rem; }
.orchid-pair > div { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(.6rem, 2vw, 1.25rem); }
.orchid-pair img { width: 100%; height: auto; border-radius: var(--photo-radius); }
.orchid-pair figcaption { margin-top: 1rem; color: var(--muted); font: italic 1rem/1.5 Georgia, serif; }
.nightclub-carousel { margin-bottom: 3rem; }
.nightclub-gallery-caption { margin: 1rem 0 0; color: var(--muted); font: italic 1rem/1.5 Georgia, serif; }
.bio-intro { grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); }
.bio-portrait .portrait { width: 100%; border-radius: var(--photo-radius); }
.recommendation-link { display: flex; justify-content: flex-start; margin: .75rem .5rem .25rem; }
.recommendation-note { color: var(--muted); font-size: .85rem; padding: .5rem; margin-bottom: 0; }
.recommendation-website { min-height: var(--touch); height: auto; white-space: normal; padding: .65rem 1rem; }
.recommendation-header button { min-width: var(--touch); min-height: var(--touch); }
.nav-toggle { min-height: var(--touch); }
.read-story { min-height: var(--touch); font-size: .95rem; gap: .6rem; padding-block: .5rem; }
.client-copy .read-story { width: fit-content; max-width: 100%; }
.skills a { display: inline-flex; align-items: center; min-height: var(--touch); }
@media (hover: hover) and (pointer: fine) {
  .service-signatures img { transition: transform .25s var(--ease); }
  .service-signatures > div:hover img { transform: translateY(-3px); }
}
@media (max-width: 1000px) {
  .service-signatures { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.75rem 2rem; }
  .bio-intro { grid-template-columns: 220px minmax(0, 1fr); gap: 2rem; }
  .client-grid { grid-template-columns: 1fr; }
  .client { grid-template-columns: 130px minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .site-header { top: max(.75rem, env(safe-area-inset-top)); }
  .hero { padding: 2rem 1.5rem; }
  .hero-identity { order: 0; }
  .hero h1 { font-size: clamp(2rem, 8.5vw, 3.3rem); }
  .hero-photo-pair { max-width: 520px; margin: 0 auto; gap: .6rem; }
  .hero-wine { margin-top: 1.5rem !important; }
  .hero blockquote { font-size: 1rem; }
  .service-intro { grid-template-columns: 1fr; gap: 1rem; }
  .service-intro .eyebrow { margin-bottom: -.3rem; }
  .service-intro h2 { font-size: 2.1rem; }
  .service-intro > p { font-size: 1rem; }
  .service-signatures { margin: 1.75rem 0; padding: 1.5rem 0; gap: 1.75rem 1rem; }
  .service-signatures h3 { font-size: 1rem; }
  .service-signatures p { font-size: .85rem; }
  .photo-carousel { --gallery-height: min(clamp(300px, 110vw, 460px), calc((100vw - 4.625rem) * 1.333333)); }
  .nightclub-carousel { --gallery-height: min(400px, calc((100vw - 4.625rem) * .72265625)); }
  .service-photographs { gap: .75rem; }
  .service-photographs figcaption { font-size: .75rem; }
  .bio-intro { grid-template-columns: 1fr; }
  .bio-portrait { max-width: 360px; }
  .client { grid-template-columns: 100px minmax(0, 1fr); }
  .client p { font-size: 1rem; }
  .client-copy .read-story { font-size: .9rem; line-height: 1.4; }
  .recommendation-dialog[data-slot="dialog-content"] { max-height: calc(100dvh - max(1rem, env(safe-area-inset-top)) - env(safe-area-inset-bottom)); }
  .recommendation-body { padding-bottom: max(.5rem, env(safe-area-inset-bottom)); }
}
@media (max-width: 360px) {
  .client { grid-template-columns: 86px minmax(0, 1fr); }
  .service-signatures h3 { font-size: .95rem; }
}

@media (prefers-reduced-motion: reduce) {
  .service-signatures > div:hover img { transform: none; }
}
