:root { --ink:#1d2421; --deep:#141a17; --paper:#f5f1ea; --paper2:#fbfaf7; --bronze:#9a7555; --sage:#68746c; --line:#d9d3ca; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper2); color:var(--ink); font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; overflow-x:hidden; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body.modal-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
button,a { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
img { max-width:100%; }
::selection { background:#d9c6af; color:var(--ink); }
.skip-link { position:fixed; z-index:200; left:18px; top:18px; padding:12px 16px; background:white; color:var(--ink); transform:translateY(-160%); transition:transform .2s ease; }
.skip-link:focus { transform:none; }

.site-header { position:absolute; z-index:20; top:0; left:0; right:0; height:92px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 4vw; color:white; border-bottom:1px solid rgba(255,255,255,.28); }
.wordmark,.footer-wordmark { display:flex; flex-direction:column; font-family:Baskerville,Georgia,serif; font-size:22px; line-height:.9; }
.wordmark small,.footer-wordmark small { margin-top:8px; font:600 9px/1 "Helvetica Neue",sans-serif; letter-spacing:.24em; text-transform:uppercase; }
nav { display:flex; gap:34px; font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
nav a,.header-cta { transition:opacity .25s ease; }
nav a:hover,.header-cta:hover { opacity:.65; }
.header-cta { justify-self:end; padding:13px 18px; border:1px solid rgba(255,255,255,.65); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }

.hero { position:relative; min-height:100svh; color:white; overflow:hidden; }
.hero>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; animation:hero-in 1.6s ease-out both; }
@keyframes hero-in { from { transform:scale(1.04); filter:brightness(.8); } to { transform:scale(1); filter:brightness(1); } }
.hero-shade { position:absolute; inset:0; background:linear-gradient(90deg,rgba(17,24,21,.78) 0%,rgba(17,24,21,.2) 62%,rgba(17,24,21,.08)),linear-gradient(0deg,rgba(17,24,21,.5),transparent 48%); }
.hero-copy { position:absolute; left:8vw; bottom:22vh; max-width:850px; animation:copy-in 1.1s .2s ease-out both; }
@keyframes copy-in { from { opacity:0; transform:translateY(28px); } to { opacity:1; transform:none; } }
.eyebrow { margin:0 0 20px; color:#d5b795; font-size:10px; font-weight:700; letter-spacing:.24em; text-transform:uppercase; }
.eyebrow.dark { color:var(--bronze); }
.hero h1 { margin:0; max-width:800px; font:400 clamp(50px,6vw,92px)/.94 Baskerville,Georgia,serif; letter-spacing:-.03em; }
.hero-lead { max-width:600px; margin:28px 0 0; font-size:clamp(17px,1.5vw,22px); font-weight:300; line-height:1.45; }
.hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.primary-button { display:inline-flex; padding:16px 22px; background:white; color:var(--ink); font-weight:600; transition:transform .25s ease,background .25s ease; }
.primary-button:hover { transform:translateY(-2px); background:var(--paper); }
.fact-bar { position:absolute; left:4vw; right:4vw; bottom:0; display:grid; grid-template-columns:repeat(4,1fr); margin:0; padding:24px 4vw; background:rgba(22,29,26,.8); backdrop-filter:blur(12px); }
.fact-bar div { padding-left:28px; border-left:1px solid rgba(255,255,255,.25); }
.fact-bar div:first-child { padding-left:0; border-left:0; }
.fact-bar dt { margin-bottom:8px; color:rgba(255,255,255,.68); font-size:9px; letter-spacing:.16em; text-transform:uppercase; }
.fact-bar dd { margin:0; font:400 25px/1 Baskerville,Georgia,serif; }

.section-label { display:flex; align-items:center; gap:12px; color:var(--bronze); }
.section-label span { display:grid; place-items:center; width:34px; height:34px; border:1px solid currentColor; border-radius:50%; font:600 9px/1 "Helvetica Neue",sans-serif; }
.section-label p { margin:0; font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.section-label.light { color:#d3b697; }

.essence { display:grid; grid-template-columns:1fr 2.1fr; gap:8vw; padding:140px 8vw 170px; background:var(--paper2); }
.essence-copy { max-width:980px; }
.essence h2,.living-copy h2,.dark-story h2,.material-story h2,.bath-story h2,.entrance-copy h2,.gallery-head h2,.facts-head h2,.location-card h2,.contact-section h2 { margin:0; font:400 clamp(44px,5.5vw,78px)/1 Baskerville,Georgia,serif; letter-spacing:-.025em; }
.lead-quote { max-width:760px; margin:42px 0 26px; color:var(--bronze); font:italic 400 clamp(22px,2.4vw,34px)/1.35 Baskerville,Georgia,serif; }
.essence-copy>p:last-child { max-width:700px; color:#4d5953; font-size:17px; line-height:1.75; }

.living-story { display:grid; grid-template-columns:1.25fr .75fr; min-height:860px; background:var(--paper); }
.living-image-wrap { position:relative; min-height:760px; overflow:hidden; }
.living-image-wrap img { width:100%; height:100%; object-fit:cover; }
.image-index { position:absolute; left:0; bottom:0; padding:15px 24px; background:var(--paper); color:var(--sage); font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.living-copy { align-self:center; padding:80px 7vw; }
.living-copy h2 { margin-bottom:32px; }
.living-copy>p:not(.eyebrow) { color:#4d5953; font-size:17px; line-height:1.72; }
.micro-facts { display:flex; flex-direction:column; gap:0; margin-top:38px; border-top:1px solid var(--line); }
.micro-facts span { padding:15px 0; border-bottom:1px solid var(--line); color:var(--sage); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }

.dark-story { padding:140px 8vw 150px; background:var(--deep); color:white; }
.dark-intro { display:grid; grid-template-columns:.65fr 1.45fr 1fr; gap:6vw; align-items:start; margin-bottom:80px; }
.dark-intro h2 { grid-column:2; }
.dark-intro>p { margin:14px 0 0; color:#aeb6b1; font-size:16px; line-height:1.7; }
.studio-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:2vw; align-items:end; }
.studio-grid figure { margin:0; }
.studio-main img { width:100%; aspect-ratio:4/3; object-fit:cover; }
.studio-secondary img { width:100%; aspect-ratio:3/4; object-fit:cover; }
.studio-grid figcaption { margin-top:14px; color:#aeb6b1; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }

.material-story { display:grid; grid-template-columns:.75fr 1.25fr; min-height:860px; background:#ece8df; }
.material-copy { align-self:center; padding:90px 7vw; }
.material-copy h2 { margin:28px 0 34px; }
.material-copy>p:not(.fineprint) { color:#4d5953; font-size:17px; line-height:1.72; }
.fineprint { margin-top:35px; padding-top:18px; border-top:1px solid #cbc3b7; color:var(--sage); font-size:11px; line-height:1.5; }
.material-story>img { width:100%; height:100%; object-fit:cover; }

.bath-story { padding:140px 8vw 160px; background:var(--paper2); }
.bath-head { display:grid; grid-template-columns:.55fr 1.35fr .8fr; gap:5vw; align-items:start; margin-bottom:70px; }
.bath-head h2 { grid-column:2; }
.bath-head>p { margin:14px 0 0; color:#4d5953; font-size:16px; line-height:1.7; }
.bath-mosaic { display:grid; grid-template-columns:1.15fr .85fr .7fr; gap:1.4vw; align-items:stretch; }
.bath-mosaic img { width:100%; height:580px; object-fit:cover; }
.bath-wide { object-position:center; }

.entrance-story { display:grid; grid-template-columns:1.15fr .85fr; min-height:850px; background:#e8e5de; }
.entrance-image-wrap { position:relative; min-height:760px; overflow:hidden; }
.entrance-image-wrap img { width:100%; height:100%; object-fit:cover; object-position:center; }
.entrance-copy { align-self:center; padding:90px 7vw; }
.entrance-copy h2 { margin:28px 0 34px; }
.entrance-copy>p { color:#4d5953; font-size:17px; line-height:1.72; }

.gallery-section { padding:140px 6vw 170px; background:var(--paper); }
.gallery-head { display:flex; justify-content:space-between; gap:6vw; align-items:end; margin:0 2vw 36px; }
.gallery-head .section-label { margin-bottom:28px; }
.world-switch { display:flex; padding:4px; border:1px solid var(--line); background:var(--paper2); }
.world-switch button { border:0; padding:13px 18px; background:transparent; color:var(--sage); cursor:pointer; font-size:9px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.world-switch button.active { background:var(--ink); color:white; }
.world-note { max-width:860px; margin:0 2vw 55px; color:var(--sage); font-size:12px; line-height:1.6; }
.gallery-grid { display:grid; grid-template-columns:repeat(12,1fr); gap:1.4vw; }
.gallery-tile { position:relative; grid-column:span 4; margin:0; padding:0; border:0; background:#ddd; cursor:zoom-in; overflow:hidden; text-align:left; }
.gallery-tile:nth-child(1),.gallery-tile:nth-child(6) { grid-column:span 8; }
.gallery-tile:nth-child(2),.gallery-tile:nth-child(5) { grid-column:span 4; }
.gallery-tile:nth-child(3),.gallery-tile:nth-child(4),.gallery-tile:nth-child(n+7) { grid-column:span 4; }
.gallery-tile img { width:100%; height:420px; object-fit:cover; display:block; transition:transform .6s ease,filter .4s ease; }
.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img { height:560px; }
.gallery-tile:hover img { transform:scale(1.025); filter:brightness(.88); }
.gallery-tile>span { position:absolute; left:0; right:0; bottom:0; display:flex; align-items:center; gap:14px; padding:28px 22px 18px; background:linear-gradient(transparent,rgba(13,18,16,.75)); color:white; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.gallery-tile b { font-weight:400; opacity:.7; }

.lightbox { position:fixed; z-index:100; inset:0; display:grid; place-items:center; background:rgba(10,13,12,.94); color:white; }
.lightbox[hidden] { display:none; }
.lightbox-backdrop { position:absolute; inset:0; width:100%; height:100%; border:0; background:transparent; cursor:zoom-out; }
.lightbox figure { position:relative; z-index:1; margin:0; width:min(84vw,1300px); }
.lightbox figure img { display:block; width:100%; max-height:82vh; object-fit:contain; }
.lightbox figcaption { margin-top:14px; color:#bac1bd; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.lightbox-close,.lightbox-arrow { position:absolute; z-index:2; border:0; background:transparent; color:white; cursor:pointer; }
.lightbox-close { top:24px; right:28px; font-size:38px; font-weight:200; }
.lightbox-arrow { top:50%; transform:translateY(-50%); padding:20px; font-size:32px; }
.lightbox-arrow.previous { left:18px; }.lightbox-arrow.next { right:18px; }

.facts-section { display:grid; grid-template-columns:.7fr 1.3fr; gap:7vw; padding:150px 8vw; background:var(--deep); color:white; }
.facts-head h2 { margin:34px 0; }
.facts-head>p { max-width:470px; color:#aeb6b1; font-size:16px; line-height:1.7; }
.facts-list { margin:0; }
.facts-list>div { display:grid; grid-template-columns:1fr 1.5fr; gap:28px; align-items:baseline; padding:18px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.facts-list dt { color:#9ba59f; font-size:9px; letter-spacing:.13em; text-transform:uppercase; }
.facts-list dd { margin:0; text-align:right; font:400 20px/1.2 Baskerville,Georgia,serif; }
.facts-list .price-row { margin-top:18px; padding:28px 0; border-top:1px solid rgba(255,255,255,.5); }
.price-row dd { color:#d5b795; font-size:34px; }
.energy-note { grid-column:2; margin:0; color:#8d9892; font-size:11px; line-height:1.55; }

.location-section { position:relative; min-height:900px; background:#d8d5cc; overflow:hidden; }
.location-section>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.location-card { position:absolute; left:7vw; top:50%; transform:translateY(-50%); width:min(600px,48vw); padding:68px; background:rgba(250,248,243,.95); backdrop-filter:blur(12px); }
.location-card h2 { margin:24px 0 30px; }
.location-card>p:not(.eyebrow) { color:#4d5953; font-size:16px; line-height:1.75; }
.location-tags { display:flex; flex-wrap:wrap; gap:8px; margin-top:34px; }
.location-tags span { padding:9px 12px; border:1px solid var(--line); color:var(--sage); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }

.contact-section { display:grid; grid-template-columns:1.1fr .9fr; gap:9vw; padding:150px 8vw; background:#7b6049; color:white; }
.contact-intro { max-width:580px; margin:32px 0 0; color:#e1d4c5; font-size:17px; line-height:1.7; }
.contact-panel { align-self:end; }
.resources-label { margin:0 0 16px; color:#e1d4c5; font-size:9px; font-weight:700; letter-spacing:.18em; text-transform:uppercase; }
.resource-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; padding:1px; background:rgba(255,255,255,.24); }
.resource-card { position:relative; display:flex; min-height:164px; flex-direction:column; padding:24px 48px 22px 22px; background:#725943; transition:background .25s ease,transform .25s ease; }
.resource-card.primary { background:#f4efe7; color:var(--ink); }
.resource-card:hover { z-index:1; background:#684f3b; transform:translateY(-2px); }
.resource-card.primary:hover { background:white; }
.resource-format { color:#dbc9b7; font-size:8px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.resource-card.primary .resource-format { color:var(--bronze); }
.resource-card strong { margin-top:auto; font:400 20px/1.1 Baskerville,Georgia,serif; }
.resource-card small { margin-top:8px; color:#d8c9ba; font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.resource-card.primary small { color:var(--sage); }
.resource-card b { position:absolute; right:20px; bottom:20px; font-size:22px; font-weight:300; }
.contact-placeholder { margin-top:22px; color:#d6c7b7; font-size:11px; line-height:1.5; }

footer { display:grid; grid-template-columns:1fr 1.5fr auto; gap:5vw; align-items:end; padding:65px 6vw; background:#101512; color:#d0d5d1; }
footer p { margin:0; max-width:650px; color:#858f89; font-size:10px; line-height:1.55; }
footer>a { font-size:9px; letter-spacing:.12em; text-transform:uppercase; }

@media (max-width:1000px) {
  nav { gap:18px; }
  .living-story,.material-story,.entrance-story { grid-template-columns:1fr; }
  .living-image-wrap { min-height:620px; }
  .material-story>img { height:620px; grid-row:1; }
  .entrance-image-wrap { min-height:620px; }
  .dark-intro,.bath-head { grid-template-columns:1fr 1.8fr; }
  .dark-intro>p,.bath-head>p { grid-column:2; }
  .gallery-tile,.gallery-tile:nth-child(n) { grid-column:span 6; }
  .facts-section { grid-template-columns:1fr; }
  .energy-note { grid-column:1; }
}

@media (max-width:760px) {
  .site-header { grid-template-columns:1fr auto; height:calc(74px + env(safe-area-inset-top)); padding:env(safe-area-inset-top) max(6vw,env(safe-area-inset-right)) 0 max(6vw,env(safe-area-inset-left)); }
  nav { display:none; }
  .header-cta { padding:10px 12px; font-size:8px; }
  .hero-copy { left:max(7vw,env(safe-area-inset-left)); right:max(7vw,env(safe-area-inset-right)); bottom:calc(29vh + env(safe-area-inset-bottom)); }
  .hero h1 { font-size:clamp(43px,13vw,62px); }
  .hero-actions span { display:none; }
  .fact-bar { left:0; right:0; padding:18px max(6vw,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(6vw,env(safe-area-inset-left)); grid-template-columns:repeat(2,1fr); row-gap:18px; }
  .fact-bar div:nth-child(3) { padding-left:0; border-left:0; }
  .fact-bar dd { font-size:20px; }
  .essence { grid-template-columns:1fr; padding:90px 7vw 110px; }
  .essence h2,.living-copy h2,.dark-story h2,.material-story h2,.bath-story h2,.entrance-copy h2,.gallery-head h2,.facts-head h2,.location-card h2,.contact-section h2 { font-size:clamp(41px,12vw,58px); }
  .living-image-wrap { min-height:480px; }
  .living-copy,.material-copy,.entrance-copy { padding:80px 7vw; }
  .dark-story,.bath-story,.gallery-section,.facts-section { padding:90px 7vw 100px; }
  .dark-intro,.bath-head { grid-template-columns:1fr; margin-bottom:50px; }
  .dark-intro h2,.dark-intro>p,.bath-head h2,.bath-head>p { grid-column:1; }
  .studio-grid { grid-template-columns:1fr; }
  .studio-secondary img { aspect-ratio:4/3; }
  .material-story>img { height:480px; }
  .bath-mosaic { grid-template-columns:1fr 1fr; }
  .bath-mosaic img { height:430px; }
  .bath-mosaic .bath-wide { grid-column:1 / -1; height:360px; }
  .gallery-head { flex-direction:column; align-items:flex-start; margin:0 0 28px; }
  .world-switch { width:100%; }
  .world-switch button { flex:1; padding:12px 8px; font-size:8px; }
  .world-note { margin:0 0 34px; }
  .gallery-grid { gap:12px; }
  .gallery-tile,.gallery-tile:nth-child(n) { grid-column:span 12; }
  .gallery-tile img,.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img { height:330px; }
  .lightbox { min-height:100dvh; padding-top:env(safe-area-inset-top); padding-bottom:env(safe-area-inset-bottom); }
  .lightbox figure { width:calc(100vw - 32px - env(safe-area-inset-left) - env(safe-area-inset-right)); }
  .lightbox figure img { max-height:calc(100dvh - 142px - env(safe-area-inset-top) - env(safe-area-inset-bottom)); }
  .lightbox-close { top:calc(10px + env(safe-area-inset-top)); right:calc(10px + env(safe-area-inset-right)); display:grid; place-items:center; width:48px; height:48px; }
  .lightbox-arrow { top:auto; bottom:calc(14px + env(safe-area-inset-bottom)); display:grid; place-items:center; width:52px; height:52px; padding:0; border:1px solid rgba(255,255,255,.24); border-radius:50%; background:rgba(16,21,18,.58); backdrop-filter:blur(8px); }
  .lightbox-arrow.previous { left:calc(16px + env(safe-area-inset-left)); }
  .lightbox-arrow.next { right:calc(16px + env(safe-area-inset-right)); }
  .facts-list dd { font-size:17px; }
  .location-section { min-height:760px; }
  .location-card { left:5vw; right:5vw; top:auto; bottom:5vw; transform:none; width:auto; padding:38px 28px; }
  .contact-section { grid-template-columns:1fr; padding:95px 7vw; }
  .contact-panel { margin-top:10px; }
  footer { grid-template-columns:1fr; align-items:start; padding:55px 7vw; }
}

@media (max-width:430px) {
  .wordmark { font-size:19px; }
  .wordmark small { margin-top:7px; font-size:8px; }
  .header-cta { min-height:44px; display:inline-flex; align-items:center; }
  .hero>img { object-position:58% center; }
  .hero-shade { background:linear-gradient(90deg,rgba(17,24,21,.82),rgba(17,24,21,.18) 100%),linear-gradient(0deg,rgba(17,24,21,.58),transparent 58%); }
  .hero-copy { bottom:calc(27vh + env(safe-area-inset-bottom)); }
  .hero h1 { font-size:clamp(40px,12.3vw,53px); line-height:.96; }
  .hero-lead { margin-top:19px; font-size:16px; line-height:1.42; }
  .hero-actions { margin-top:22px; }
  .primary-button { min-height:48px; align-items:center; padding:14px 19px; }
  .fact-bar { row-gap:14px; padding-top:15px; }
  .fact-bar div { padding-left:18px; }
  .fact-bar dt { margin-bottom:6px; font-size:8px; }
  .fact-bar dd { font-size:18px; white-space:nowrap; }
  .essence h2,.living-copy h2,.dark-story h2,.material-story h2,.bath-story h2,.entrance-copy h2,.gallery-head h2,.facts-head h2,.location-card h2,.contact-section h2 { font-size:clamp(38px,11.5vw,49px); }
  .living-image-wrap,.material-story>img,.entrance-image-wrap { min-height:0; height:68svh; max-height:560px; }
  .bath-mosaic { grid-template-columns:1fr; }
  .bath-mosaic img,.bath-mosaic .bath-wide { grid-column:auto; height:auto; aspect-ratio:4/5; }
  .gallery-tile img,.gallery-tile:nth-child(1) img,.gallery-tile:nth-child(6) img { height:auto; aspect-ratio:4/3; }
  .gallery-tile>span { padding:34px 17px 15px; }
  .facts-list>div { gap:14px; }
  .facts-list dd { overflow-wrap:anywhere; }
  .location-card { padding:32px 23px; }
  .resource-grid { grid-template-columns:1fr; }
  .resource-card { min-height:132px; padding:21px 46px 19px 19px; }
  footer { padding-right:max(7vw,env(safe-area-inset-right)); padding-bottom:calc(55px + env(safe-area-inset-bottom)); padding-left:max(7vw,env(safe-area-inset-left)); }
}

@media (max-width:380px), (max-height:700px) and (max-width:760px) {
  .hero-copy { bottom:calc(25vh + env(safe-area-inset-bottom)); }
  .hero h1 { font-size:39px; }
  .hero-lead { margin-top:14px; font-size:14px; }
  .hero-actions { margin-top:16px; }
  .primary-button { min-height:44px; padding:11px 16px; }
  .fact-bar { row-gap:10px; padding-top:12px; }
  .fact-bar dd { font-size:16px; }
}

@media (orientation:landscape) and (max-height:500px) {
  .site-header { height:58px; padding-top:0; }
  .hero-copy { bottom:76px; max-width:620px; }
  .hero h1 { font-size:40px; }
  .hero-lead { max-width:520px; margin-top:10px; font-size:14px; }
  .hero-actions { margin-top:12px; }
  .fact-bar { grid-template-columns:repeat(4,1fr); padding-top:10px; padding-bottom:calc(10px + env(safe-area-inset-bottom)); row-gap:0; }
  .fact-bar div:nth-child(3) { padding-left:18px; border-left:1px solid rgba(255,255,255,.25); }
  .fact-bar dt { margin-bottom:4px; }
  .lightbox figure img { max-height:calc(100dvh - 54px); }
  .lightbox figcaption { display:none; }
}

@media (hover:none) {
  .gallery-tile:hover img { transform:none; filter:none; }
}

@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; } }
