@font-face{font-family:Newsreader;src:url('/assets/newsreader-roman.woff2') format('woff2');font-style:normal;font-weight:200 800;font-display:swap}
@font-face{font-family:Newsreader;src:url('/assets/newsreader-italic.woff2') format('woff2');font-style:italic;font-weight:200 800;font-display:swap}
:root{--paper:#f4f2ec;--ink:#292925;--muted:#686860;--line:#d7d5cd;--clay:#e6ded1;--serif:Newsreader,Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif;--mono:'Courier New',monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}body::selection{background:var(--ink);color:var(--paper)}a{color:inherit;text-decoration:none}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #936248;outline-offset:7px}svg{display:block;fill:currentColor}p,h1,h2,h3{margin:0;font-weight:400}em{font-weight:400}button[hidden]{display:none!important}.skip-link{position:fixed;z-index:10;left:16px;top:16px;padding:12px 20px;background:var(--ink);color:var(--paper);transform:translateY(-150%)}.skip-link:focus{transform:translateY(0)}.wrap{width:min(1240px,calc(100% - 112px));margin-inline:auto}
.header{position:relative;z-index:2;min-height:100px;padding:20px 56px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:28px;max-width:1800px;margin:auto}.brand{display:flex;align-items:center;gap:14px;flex-shrink:0;min-height:44px;font-size:1.3125rem;line-height:1}.brand-mark{width:auto;height:1.75em;flex-shrink:0}.brand>span{display:inline-block;font-size:1em;line-height:inherit;letter-spacing:-.045em;font-weight:500}.navigation{display:flex;flex-wrap:wrap;gap:12px 36px;align-items:center;font-size:.875rem}.navigation>a{display:inline-block;padding:12px 0;position:relative}.navigation>a::after{content:'';position:absolute;left:0;bottom:6px;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.navigation>a:hover::after{transform:scaleX(1)}.navigation>.nav-contact{display:flex;align-items:center;gap:15px}.nav-contact svg{height:14px;width:14px;fill:none;stroke:currentColor;stroke-width:1.25}
/* The header, copy and complete sunset share one small-viewport height. */
.hero{--intro-height:100vh;--header-block-size:100px;--hero-copy-min-height:360px;display:flex;flex-direction:column;min-height:calc(var(--intro-height) - var(--header-block-size));padding:0;overflow:visible}
@supports(height:100svh){.hero{--intro-height:100svh}}
.hero-copy{flex:1 0 auto;display:grid;place-items:center;text-align:center;padding:clamp(10px,2.5svh,30px) 24px;position:relative;z-index:1}
.hero-content{width:100%}.eyebrow{font-family:var(--mono);font-size:12px;line-height:1.5;letter-spacing:1.8px;text-transform:uppercase}.hero-eyebrow{margin-bottom:25px;color:var(--muted);font-size:12px;letter-spacing:2.1px}h1{font-family:var(--serif);font-size:clamp(65px,7vw,106px);line-height:.96;letter-spacing:-4.6px;font-weight:400}h1 em{letter-spacing:-4px}.hero-description{margin:28px auto 0;font-size:16px;line-height:1.55;color:var(--muted)}.text-link{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;font-size:14px;padding:7px 0;border-bottom:1px solid currentColor;line-height:1.5}.link-arrow{display:block;width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}.text-link .link-arrow{transition:transform .25s ease}.text-link span.link-arrow{font-size:20px;line-height:1}.text-link:hover .link-arrow{transform:translate(3px,-2px)}.hero-link{margin-top:24px;gap:27px}.hero-link:hover .link-arrow{transform:translateY(3px)}
.landscape{position:relative;flex:none;height:clamp(96px,calc(var(--intro-height) - var(--header-block-size) - var(--hero-copy-min-height)),calc(var(--intro-height) * .4));margin:0;line-height:0}
.landscape-svg{width:100%;height:100%;min-height:0;overflow:visible}.intro-pending .sun-motion{visibility:hidden}.sun,.earth{fill:var(--ink)}.sun-halo{fill:var(--paper);stroke:var(--paper);stroke-width:96px}.landscape-meta{position:absolute;left:56px;right:56px;bottom:clamp(8px,2svh,24px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px 24px;min-height:44px}.landscape-caption{display:flex;gap:13px;align-items:center;color:var(--paper);font-family:var(--mono);font-size:12px;letter-spacing:.6px;line-height:1.5}.hairline{width:30px;height:1px;flex-shrink:0;background:#87877f}.motion-toggle{margin-left:auto;min-height:44px;display:flex;align-items:center;gap:10px;color:var(--paper);border:1px solid #6e6e63;border-radius:30px;background:transparent;padding:8px 13px;cursor:pointer;font-family:var(--mono);font-size:12px;line-height:1.3;transition:background .2s}.motion-toggle:hover{background:#3e3e36}.motion-toggle svg{width:12px;height:12px;stroke:currentColor;stroke-width:1.4;fill:none}.motion-toggle .play-icon{display:none}.motion-paused .pause-icon{display:none}.motion-paused .play-icon{display:block}
.dark-section{background:var(--ink);color:var(--paper)}.about{padding:54px 0 148px}.section-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:50px}.section-label{display:flex;gap:16px;align-items:baseline;font-family:var(--mono);font-size:12px;line-height:1.5;letter-spacing:.4px}.section-label h2{font:inherit}.about .section-label{padding-top:10px}.statement{font-family:var(--serif);font-size:clamp(32px,3.8vw,55px);line-height:1.14;letter-spacing:-1.2px}.statement>span{color:#b0b0a2}.about-bottom{margin-top:45px;display:flex;justify-content:space-between;align-items:flex-end;gap:40px}.about-bottom>p{color:#bfbfb3;line-height:1.65;font-size:16px;max-width:385px}.about-bottom .text-link{flex-shrink:0;margin-bottom:4px}
.approach{padding-top:127px;padding-bottom:137px}.approach h2{font-family:var(--serif);font-size:clamp(37px,4.4vw,63px);line-height:1.06;letter-spacing:-1.8px}.approach-top .section-label{padding-top:10px}.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:74px;border-top:1px solid var(--line)}.principle{padding:32px 38px 0 0}.principle+.principle{padding-left:38px;border-left:1px solid var(--line)}.principle:last-child{padding-right:0}.principle-top{display:flex;justify-content:flex-end;align-items:center;margin-bottom:35px;min-height:62px}.principle-top svg{width:70px;height:62px}.principle h3{font-family:var(--serif);font-size:32px;letter-spacing:-.6px;line-height:1.15}.principle>p{margin-top:17px;font-size:16px;line-height:1.65;color:var(--muted);max-width:320px}
.contact{background:var(--clay);padding:82px 0 93px}.contact-inner{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr) minmax(0,.6fr);gap:50px;align-items:start}.contact .section-label{padding-top:10px}.contact h2{font-family:var(--serif);font-size:clamp(49px,5.6vw,80px);line-height:1.01;letter-spacing:-2.6px}.contact-content>p{max-width:360px;margin-top:25px;font-size:16px;line-height:1.6;color:var(--muted)}.back-top{display:grid;place-items:center;justify-self:end;align-self:center;width:73px;height:73px;border:1px solid #aaa498;border-radius:50%;transition:background .25s,color .25s}.back-top:hover{background:var(--ink);color:var(--paper)}.back-top>svg{width:27px;height:27px;fill:none;stroke:currentColor;stroke-width:1.25}
.footer{padding:76px 56px 27px}.footer-bottom{border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;align-items:center;padding-top:23px;font-size:12px;color:var(--muted);max-width:1500px;margin:auto}.footer-bottom>a{display:flex;align-items:center;gap:16px;min-height:44px;padding:6px 0}.footer-bottom>a:hover{color:var(--ink)}.footer-bottom .link-arrow{width:14px;height:14px}
/* Mobile navigation is a disclosure, with the original links in document order. */
.navigation[hidden] { display: none; }
.menu-toggle { display: none; place-items: center; flex-shrink: 0; width: 44px; height: 44px; margin-left: auto; padding: 10px; color: var(--ink); background: transparent; border: 0; cursor: pointer; }
.menu-icon { display: grid; width: 24px; gap: 5px; }
.menu-icon > span { display: block; width: 24px; height: 1.5px; background: currentColor; transition: transform .18s ease, opacity .18s ease; }
.menu-toggle[aria-expanded="true"] .menu-icon > span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] .menu-icon > span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] .menu-icon > span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }

/* Grid children may shrink without forcing the page wider than the viewport. */
.directory-section { padding-block: 100px; border-top: 1px solid var(--line); }
.directory-section .section-label { padding-top: 6px; }
.directory-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 40px; }
.directory-item { min-width: 0; }
.directory-item h3 { font-family: var(--serif); font-size: clamp(2rem,3.2vw,2.75rem); line-height: 1.12; letter-spacing: -.025em; }
.directory-item p { margin-top: 14px; max-width: 38rem; font-size: 1rem; line-height: 1.65; color: var(--muted); }
.projects-section { border-top-color: var(--ink); }
.projects-section .directory-item p { color: #bfbfb3; }
.section-layout > *, .contact-inner > *, .principle { min-width: 0; }
h1, h2, h3, .statement { overflow-wrap: anywhere; }

@media (max-width: 1000px) {
  .header { padding: 20px 35px; min-height: 105px; }
  .wrap { width: calc(100% - 70px); }
  h1 { font-size: clamp(4.25rem, 8.9vw, 5.625rem); letter-spacing: -.04em; }
  .landscape-meta { left: 35px; right: 35px; }
  .section-layout { grid-template-columns: minmax(0,1fr) minmax(0,2.8fr); gap: 30px; }
  .about { padding-top: 42px; padding-bottom: 104px; }
  .about-bottom { align-items: flex-start; flex-direction: column; gap: 22px; }
  .approach { padding-top: 90px; padding-bottom: 95px; }
  .principle { padding-right: 24px; }
  .principle + .principle { padding-left: 24px; }
  .principle h3 { font-size: 1.75rem; }
  .contact-inner { grid-template-columns: minmax(0,1fr) minmax(0,2.8fr); gap: 30px; }
  .back-top { display: none; }
  .footer { padding: 68px 35px 25px; }
}

@media (max-width: 800px) {
  .header { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-rows: minmax(62px,auto); align-content: start; min-height: 94px; gap: 8px 16px; }
  .header.menu-open { background: var(--paper); }
  .menu-toggle { display: grid; }
  .navigation { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0,1fr); gap: 0; font-size: 1rem; border-top: 1px solid var(--line); padding-top: 8px; background: var(--paper); }
  .navigation > a { display: flex; align-items: center; min-height: 52px; padding: 12px 0; }
  .navigation > a + a { border-top: 1px solid var(--line); }
  .navigation > a::after { content: none; }
  .navigation > .nav-contact { justify-content: space-between; gap: 7px; }
  .nav-contact svg { width: 12px; height: 12px; flex-shrink: 0; }
  /* The opaque open menu covers the sun, so its text keeps the normal ink color. */
  .header.menu-open .sun-reactive { background-image: none; -webkit-text-fill-color: currentColor; }
  .directory-section { padding-block: 72px; }
  .section-layout, .contact-inner { grid-template-columns: minmax(0,1fr); }
  .principles { grid-template-columns: minmax(0,1fr); margin-top: 40px; }
  .principle, .principle + .principle { border-left: 0; padding: 24px 0 30px; }
  .principle + .principle { border-top: 1px solid var(--line); }
  .principle:last-child { padding-bottom: 0; }
  .principle-top { margin-bottom: 15px; min-height: 48px; }
  .principle-top svg { width: 54px; height: 48px; }
  .principle h3 { font-size: 2rem; }
  .principle > p { max-width: 40rem; margin-top: 12px; }
  .about-bottom > p { max-width: 40rem; }
}

@media (max-width: 600px) {
  .header { padding: 16px 22px; }
  .brand { gap: 10px; font-size: 1.0625rem; }
  .directory-section { padding-block: 52px; }
  .directory-grid { grid-template-columns: minmax(0,1fr); gap: 30px; }
  .wrap { width: calc(100% - 44px); }
  .hero { --header-block-size: 94px; --hero-copy-min-height: 290px; }
  .hero-copy { padding-inline: 22px; }
  .hero-eyebrow { font-size: .75rem; letter-spacing: .12em; margin-bottom: 24px; }
  h1 { font-size: clamp(2.75rem, 12.4vw, 4.75rem); letter-spacing: -.045em; line-height: 1.02; }
  h1 em { letter-spacing: inherit; }
  .hero-description { font-size: 1rem; line-height: 1.55; margin-top: 22px; max-width: 22rem; }
  .hero-link { margin-top: 18px; min-height: 44px; }
  .desktop-break { display: none; }
  .landscape-meta { left: 22px; right: 22px; gap: 12px 16px; }
  .landscape-caption { font-size: .75rem; gap: 8px; letter-spacing: .025em; }
  .hairline { width: 17px; }
  .motion-toggle { padding: 8px 12px; font-size: .75rem; }
  .section-layout { gap: 26px; }
  .section-label { font-size: .75rem; gap: 12px; flex-wrap: wrap; }
  .about { padding-top: 30px; padding-bottom: 72px; }
  .statement { font-size: clamp(1.875rem, 8.2vw, 2.25rem); letter-spacing: -.025em; line-height: 1.18; }
  .about-bottom { margin-top: 27px; gap: 23px; }
  .about-bottom > p { font-size: 1rem; }
  .approach { padding-top: 58px; padding-bottom: 60px; }
  .approach h2 { font-size: clamp(2rem, 9vw, 2.5rem); letter-spacing: -.03em; line-height: 1.12; }
  .principle > p { font-size: 1rem; }
  .contact { padding: 44px 0 52px; }
  .contact-inner { gap: 26px; }
  .contact h2 { font-size: clamp(2.5rem, 11.5vw, 3.375rem); letter-spacing: -.04em; line-height: 1.06; }
  .contact-content > p { font-size: 1rem; max-width: 22rem; }
  .footer { padding: 44px 22px 20px; }
  .footer-bottom { font-size: .75rem; gap: 8px 16px; padding-top: 12px; }
}

@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

.sun-reactive{background-image:radial-gradient(circle var(--sun-radius) at var(--sun-x) var(--sun-y),var(--paper) calc(100% - .35px),var(--sun-text-base) 100%);background-origin:border-box;background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}

.contact-booking{margin-top:28px;min-height:44px;max-width:100%;font-size:1rem}

/* Footer and legal pages share the site's editorial type and spacing. */
.footer-details{--footer-control-size:44px;--footer-icon-size:24px;--footer-content-inset:calc((var(--footer-control-size) - var(--footer-icon-size))/2);display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:32px 56px;max-width:1500px;margin:0 auto 48px}
.footer-group{min-width:0}
.footer-heading{font:400 .75rem/1.5 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
.footer-email,.footer-legal-links>a{display:block;width:fit-content;max-width:100%;min-height:var(--footer-control-size);padding-block:var(--footer-content-inset);font-size:1rem;line-height:1.6}
.footer-email{overflow-wrap:anywhere}
.footer-legal-links{display:flex;flex-direction:column;align-items:flex-start;gap:0}
/* Align painted cap tops with the SVG tops, while keeping full hit areas.
   Legacy engines use an approximation from cap height and line height;
   text-box-trim uses the font's actual cap edge in supporting browsers. */
.footer-label{display:block;margin-top:-.44em;margin-top:calc((1cap - 1.6em)/2)}
@supports (text-box-trim:trim-start) and (text-box-edge:cap alphabetic){.footer-label{margin-top:0;text-box-trim:trim-start;text-box-edge:cap alphabetic}}
.footer-email:hover,.footer-legal-links>a:hover{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}
.footer-legal-links>a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
.footer-socials{display:flex;gap:12px;align-items:center;margin-left:-10px}
.social-mark{display:grid;place-items:center;width:var(--footer-control-size);height:var(--footer-control-size);color:var(--ink);flex-shrink:0}
.social-mark>svg{width:var(--footer-icon-size);height:var(--footer-icon-size);fill:currentColor}
.legal-page{padding-top:84px;padding-bottom:100px}
.legal-page>.eyebrow{color:var(--muted);margin-bottom:24px}
.legal-page>h1{font-size:clamp(3.5rem,7vw,6.625rem);line-height:1.05;letter-spacing:-.045em;margin-bottom:64px}
.legal-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);gap:50px}
.legal-index{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding-top:3px}
.legal-index>a{display:flex;align-items:center;min-height:44px;font-size:.875rem;color:var(--muted)}
.legal-index>a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:5px}
.legal-copy{min-width:0;max-width:44rem}
.legal-copy>section+section{margin-top:48px}
.legal-copy h2{font-family:var(--serif);font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.15;letter-spacing:-.02em;margin-bottom:20px}
.legal-copy p{font-size:1rem;line-height:1.8;color:var(--muted);overflow-wrap:anywhere}
.legal-copy p+p{margin-top:18px}
.legal-document .footer{border-top:1px solid var(--line)}
@media(max-width:800px){
  .footer-details{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:30px;margin-bottom:40px}
  .footer-contact{grid-column:1/-1}
  .legal-page{padding-top:56px;padding-bottom:72px}
  .legal-page>h1{margin-bottom:40px}
  .legal-layout{grid-template-columns:minmax(0,1fr);gap:32px}
  .legal-index{flex-direction:row;flex-wrap:wrap;gap:12px 28px;border-bottom:1px solid var(--line);padding-bottom:12px}
}
@media(max-width:600px){
  .footer-details{gap:28px 22px;margin-bottom:32px}
  .footer-heading{margin-bottom:12px}
  .footer-email{font-size:1rem}
  .legal-page{padding-top:38px;padding-bottom:56px}
  .legal-page>h1{font-size:clamp(3.5rem,14vw,4.75rem);margin-bottom:28px}
  .legal-page>.eyebrow{margin-bottom:18px}
  .legal-copy>section+section{margin-top:36px}
}

/* Short viewports keep the same complete scene, with a tighter text layout. */
@media(max-height:600px){
  .home-page .header{min-height:64px;grid-template-rows:minmax(44px,auto);padding-block:10px}
  .hero{--header-block-size:64px}
  .hero-copy{padding-block:10px}
  .hero h1{font-size:min(clamp(2rem,8vw,5rem),calc(var(--intro-height) * .115));letter-spacing:-.035em}
  .hero h1 em{letter-spacing:inherit}
  .hero-description{margin-top:14px}
  .hero-link{margin-top:10px;min-height:44px}
}
@media(max-height:500px) and (min-width:520px){
  .hero-content{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:22px;row-gap:12px;align-items:center;max-width:960px;margin:auto}
  .hero h1{grid-column:1/-1}
  .hero-description{margin:0;text-align:left;max-width:34rem}
  .hero-link{margin:0}
}
