:root{
  --violet:#3A33C1; --violet-deep:#2A2494; --ink:#111111; --ink-muted:#5B5566;
  --paper:#FFFFFF; --cream:#FFF4D6; --sunset-gold:#FBBC61; --sunset-rose:#BE6E72;
  --twilight:#3F507C; --evergreen:#0D252F; --hairline:#E4E1EC;
  --bg:var(--paper); --text:var(--ink); --text-muted:var(--ink-muted); --panel:var(--cream); --panel-text:var(--ink); --link:var(--violet);
  --font-serif:"Palatino Linotype",Palatino,"TeX Gyre Pagella","Book Antiqua",Georgia,serif;
  --font-sans:Poppins,"Segoe UI",system-ui,sans-serif;
  --space-2:8px; --space-4:16px; --space-6:24px; --space-10:40px; --space-16:64px;
  --radius-sm:4px; --radius-md:10px; --radius-pill:999px;
  --wrap:1180px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){ --bg:#0B1C24; --text:#F3EEE2; --text-muted:#C9C2D3; --panel:#132F3B; --panel-text:#F3EEE2; --link:#B9B4FF; }
}
:root[data-theme="dark"]{ --bg:#0B1C24; --text:#F3EEE2; --text-muted:#C9C2D3; --panel:#132F3B; --panel-text:#F3EEE2; --link:#B9B4FF; }

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth; scroll-padding-top:calc(env(safe-area-inset-top,0px) + 72px)}
body{margin:0; background:var(--bg); color:var(--text); font-family:var(--font-sans); font-size:18px; line-height:28px; -webkit-font-smoothing:antialiased}
img,video{max-width:100%; display:block}
a{color:var(--link)}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--sunset-gold); outline-offset:3px}
.wrap{width:100%; max-width:var(--wrap); margin:0 auto; padding:0 var(--space-6)}
h1,h2{font-family:var(--font-serif); font-weight:400; margin:0}
h3{font-family:var(--font-sans); font-weight:600; font-size:22px; line-height:30px; margin:0}
p{margin:0}
.skip{position:absolute; left:-9999px; top:0}
.skip:focus{left:16px; top:16px; z-index:50; background:var(--paper); color:var(--ink); padding:8px 12px; border-radius:var(--radius-sm)}

/* Header */
.site-header{position:absolute; inset:0 0 auto 0; z-index:10; padding-top:env(safe-area-inset-top,0px)}
.site-header .wrap{display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); min-height:84px}
.brand img{width:210px; height:auto}
.nav{display:flex; gap:var(--space-6); align-items:center}
.nav a{color:#fff; text-decoration:none; font-size:15px; font-weight:500; padding:6px 0; border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--sunset-gold)}
.menu-btn{display:none; background:none; border:1.5px solid rgba(255,255,255,.7); color:#fff; font:500 15px var(--font-sans); padding:8px 14px; border-radius:var(--radius-pill); cursor:pointer}

/* Hero */
.hero{position:relative; display:grid; grid-template-columns:minmax(440px, 42%) 1fr; min-height:clamp(600px, 100vh, 900px); background:var(--evergreen); color:#fff; overflow:hidden}
.hero-media{position:relative; grid-column:2; grid-row:1; overflow:hidden}
.hero-media video,.hero-media .poster{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:30% 50%}
.hero-media video{opacity:0; transition:opacity .6s ease; background:transparent}
.hero-media video.playing{opacity:1}
.hero-media::after{content:""; position:absolute; inset:0; background:linear-gradient(90deg, var(--evergreen) 0%, rgba(13,37,47,.6) 12%, rgba(13,37,47,0) 32%), linear-gradient(180deg, rgba(13,37,47,.55) 0%, rgba(13,37,47,0) 18%)}
.hero-copy{grid-column:1; grid-row:1; position:relative; z-index:1; display:flex; flex-direction:column; justify-content:flex-end; padding:120px var(--space-10) clamp(48px, 9vh, 96px) max(var(--space-6), calc((100vw - var(--wrap)) / 2 + var(--space-6)))}
.hero h1{font-size:clamp(40px, 4.2vw, 60px); line-height:1.05; letter-spacing:-.01em}
.hero .lede{margin-top:var(--space-6); max-width:32ch; font-size:clamp(18px, 1.6vw, 20px); line-height:1.55; color:var(--cream)}
.hero .me{margin-top:var(--space-4); max-width:30ch; font-family:var(--font-serif); font-size:clamp(20px, 2vw, 25px); line-height:1.4}
.actions{display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:var(--space-6)}
.btn{display:inline-flex; align-items:center; min-height:52px; padding:0 26px; border-radius:var(--radius-pill); font:600 16px var(--font-sans); text-decoration:none; border:2px solid transparent; cursor:pointer}
.btn-gold{background:var(--sunset-gold); color:var(--evergreen)}
.btn-gold:hover{background:#ffcd85}
.btn-ghost{border-color:var(--cream); color:var(--cream)}
.btn-ghost:hover{background:rgba(255,244,214,.12)}
.btn-violet{background:var(--violet); color:#fff}
.btn-violet:hover{background:var(--violet-deep)}

/* Start section */
.start{padding:var(--space-16) 0}
.start h2{font-size:clamp(32px, 4vw, 44px); line-height:1.15; max-width:18ch}
.start .intro{margin-top:var(--space-4); color:var(--text-muted); max-width:52ch}
.paths{display:grid; grid-template-columns:1.25fr 1fr; grid-template-rows:auto auto; gap:var(--space-6); margin-top:var(--space-10)}
.path{border-radius:var(--radius-md); padding:var(--space-10); display:flex; flex-direction:column; gap:var(--space-4)}
.path p{max-width:40ch}
.path .links{display:flex; flex-wrap:wrap; gap:var(--space-4); margin-top:auto; padding-top:var(--space-4)}
.path-estate{background:var(--violet); color:#fff; grid-row:span 2}
.path-estate h3{font-family:var(--font-serif); font-weight:400; font-size:clamp(30px, 3.4vw, 40px); line-height:1.15}
.path-estate p{font-size:19px; line-height:30px}
.path-estate .btn-ghost{border-color:#fff; color:#fff}
.path-otter{background:var(--evergreen); color:var(--cream); flex-direction:row; align-items:flex-end; gap:var(--space-6); padding-bottom:0}
.path-otter .txt{display:flex; flex-direction:column; gap:var(--space-4); padding-bottom:var(--space-10); flex:1}
.path-otter img,.path-otter video{width:160px; height:auto; flex:none; display:block}
.path-otter video{-webkit-mask-image:radial-gradient(ellipse 72% 62% at 50% 50%, #000 82%, transparent 100%); mask-image:radial-gradient(ellipse 72% 62% at 50% 50%, #000 82%, transparent 100%)}
.path-otter a{color:var(--sunset-gold); font-weight:600}
.path-guides{background:var(--panel); color:var(--panel-text)}
.path-guides .price{color:var(--text-muted); font-size:15px; line-height:22px}
.path-guides a{font-weight:600}

/* About */
.about{background:var(--panel); color:var(--panel-text)}
.about .wrap{display:grid; grid-template-columns:1fr 1.2fr; gap:var(--space-16); align-items:center; padding-top:var(--space-16); padding-bottom:var(--space-16)}
.about h2{font-size:clamp(36px, 5vw, 60px); line-height:1.05}
.about .body{display:flex; flex-direction:column; gap:var(--space-4)}
.towns{color:var(--text-muted); font-size:15px; line-height:24px}

/* Old People Things */
.opt{padding:var(--space-16) 0}
.opt .wrap{display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:var(--space-4) var(--space-10); border-top:1px solid var(--hairline); border-bottom:1px solid var(--hairline); padding-top:var(--space-10); padding-bottom:var(--space-10)}
.opt h2{font-size:clamp(28px, 3.4vw, 38px)}
.opt p{color:var(--text-muted); max-width:44ch}

/* Contact */
.contact{padding:0 0 var(--space-16)}
.contact .wrap{display:grid; grid-template-columns:1fr 1.1fr; gap:var(--space-16)}
.contact h2{font-size:clamp(32px, 4vw, 44px); line-height:1.15}
.contact .body{display:flex; flex-direction:column; gap:var(--space-4); margin-top:var(--space-4)}
.phone{font-family:var(--font-serif); font-size:30px; line-height:1.2; color:var(--link); text-decoration:none}
form{display:grid; gap:var(--space-4)}
label{display:grid; gap:6px; font-size:15px; font-weight:500}
label .opt-note{color:var(--text-muted); font-weight:400}
input,textarea{font:400 17px var(--font-sans); padding:12px 14px; border:1.5px solid #CFCAD9; border-radius:var(--radius-sm); background:var(--bg); color:var(--text); width:100%}
textarea{min-height:130px; resize:vertical}
.form-note{font-size:15px; line-height:22px; color:var(--text-muted)}
.form-status{font-weight:500; color:var(--link)}
.hidden{display:none}

/* Sign-off */
.signoff{background:var(--paper); color:var(--ink)}
.signoff .wrap{border-top:1px solid var(--ink)}
.signoff .wrap{display:flex; flex-direction:column; align-items:center; text-align:center; gap:var(--space-6); padding-top:var(--space-16); padding-bottom:var(--space-10)}
.signoff .vo{width:min(420px, 80%)}
.signoff .rule{width:120px; height:2px; background:var(--violet)}
.signoff .jls{width:min(230px, 55%)}
.signoff .phone{color:var(--violet); font-size:24px}
.signoff .eho{font-size:13px; line-height:18px; color:var(--ink-muted)}
.bottom{background:var(--evergreen); color:var(--cream); font-size:14px; line-height:22px; padding-bottom:env(safe-area-inset-bottom,0px)}
.bottom .wrap{display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--space-4); padding-top:var(--space-6); padding-bottom:var(--space-6)}
.bottom a{color:var(--cream)}
.bottom nav{display:flex; flex-wrap:wrap; gap:var(--space-6)}

@media (max-width: 900px){
  .hero{grid-template-columns:1fr; grid-template-rows:auto auto; min-height:0}
  .hero-media{grid-column:1; grid-row:1; aspect-ratio:4/3; min-height:300px}
  .hero-media::after{background:linear-gradient(180deg, rgba(13,37,47,.6) 0%, rgba(13,37,47,0) 30%, rgba(13,37,47,0) 70%, var(--evergreen) 100%)}
  .hero-copy{grid-column:1; grid-row:2; padding:var(--space-6) var(--space-6) var(--space-16)}
  .paths{grid-template-columns:1fr}
  .path-estate{grid-row:auto}
  .about .wrap,.contact .wrap{grid-template-columns:1fr; gap:var(--space-10)}
}
@media (max-width: 760px){
  body{font-size:17px; line-height:27px}
  .brand img{width:170px}
  .menu-btn{display:inline-block}
  .nav{display:none; position:absolute; top:calc(env(safe-area-inset-top,0px) + 76px); right:var(--space-6); left:var(--space-6); flex-direction:column; align-items:stretch; gap:0; background:var(--evergreen); border-radius:var(--radius-md); padding:var(--space-2) var(--space-6)}
  .nav.open{display:flex}
  .nav a{padding:14px 0; border-bottom:1px solid rgba(255,244,214,.15)}
  .nav a:last-child{border-bottom:0}
  .path{padding:var(--space-6)}
  .path-otter .txt{padding-bottom:var(--space-6)}
  .path-otter img,.path-otter video{width:120px}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  .hero-media video{display:none}
  .otter-loop{animation:none}
}

/* Inner pages */
.site-header.solid{position:relative; background:var(--violet)}
.page-hero{background:var(--violet); color:#fff}
.page-hero .wrap{display:grid; grid-template-columns:1.4fr 1fr; align-items:end; gap:var(--space-10); padding-top:var(--space-10)}
.page-hero .copy{padding-bottom:var(--space-16)}
.page-hero h1{font-size:clamp(40px, 6vw, 76px); line-height:1.04; color:#fff}
.page-hero .lede{margin-top:var(--space-6); max-width:44ch; font-size:19px; line-height:30px; color:#fff}
.page-hero .actions a.btn-ghost{border-color:#fff; color:#fff}
.page-hero .mascot{justify-self:end; width:min(260px, 100%)}
.pillars{padding:var(--space-10) 0 0}
.pillars .row{display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-4); align-items:center}
.pill{font:500 15px var(--font-sans); padding:10px 18px; border-radius:var(--radius-pill); border:1.5px solid var(--violet); background:transparent; color:var(--link); cursor:pointer}
.pill[aria-pressed="true"]{background:var(--violet); color:#fff}
.pillar-note{margin-top:var(--space-4); color:var(--text-muted); max-width:60ch; min-height:28px}
.posts{padding:var(--space-10) 0 var(--space-16)}
.post-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:var(--space-6)}
.post-card{border:1px solid var(--hairline); border-radius:var(--radius-md); overflow:hidden; display:flex; flex-direction:column; background:var(--bg)}
.post-card .thumb{aspect-ratio:16/9; background:var(--evergreen); object-fit:cover; width:100%}
.post-card .body{padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-2)}
.post-card .meta{font-size:14px; line-height:20px; color:var(--text-muted)}
.post-card h3 a{color:inherit; text-decoration:none}
.post-card h3 a:hover{text-decoration:underline}
.empty{border:1.5px dashed #CFCAD9; border-radius:var(--radius-md); padding:var(--space-10); display:flex; flex-direction:column; gap:var(--space-4); align-items:flex-start; max-width:720px}
.empty h3{font-family:var(--font-serif); font-weight:400; font-size:30px; line-height:1.2}
@media (max-width: 760px){
  .page-hero .wrap{grid-template-columns:1fr}
  .page-hero .copy{padding-bottom:0}
  .page-hero .mascot{justify-self:start; width:170px}
}

.latest{padding:var(--space-16) 0 0}
.latest h2{font-size:clamp(28px, 3.4vw, 38px); margin-bottom:var(--space-6)}
.player{position:relative; width:100%; max-width:960px; aspect-ratio:16/9; border-radius:var(--radius-md); overflow:hidden; background:var(--evergreen)}
.player iframe{position:absolute; inset:0; width:100%; height:100%; border:0}
.player-note{margin-top:var(--space-4); color:var(--text-muted); font-size:15px; line-height:22px}
.player-preview{position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-4); text-align:center; padding:var(--space-6); color:var(--cream)}
.player-preview .play{width:72px; height:72px; border-radius:50%; background:var(--sunset-gold); position:relative}
.player-preview .play::after{content:""; position:absolute; left:29px; top:22px; border-left:22px solid var(--evergreen); border-top:14px solid transparent; border-bottom:14px solid transparent}

/* Reviews */
.reviews{padding:var(--space-16) 0 0}
.reviews h2{font-size:clamp(32px, 4vw, 44px); line-height:1.15}
.reviews figure{margin:0}
.reviews blockquote{margin:0}
.reviews .feature-quote{margin-top:var(--space-10); max-width:900px}
.feature-quote p{font-family:var(--font-serif); font-size:clamp(24px, 3vw, 34px); line-height:1.35; color:var(--text)}
.reviews figcaption{margin-top:var(--space-4); font-size:15px; line-height:22px; font-weight:500; color:var(--link)}
.quote-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:var(--space-10) var(--space-10); margin-top:var(--space-16)}
.quote-grid figure{border-top:2px solid var(--violet); padding-top:var(--space-6)}
.quote-grid p{font-size:17px; line-height:28px}
@media (max-width: 760px){ .quote-grid{margin-top:var(--space-10); gap:var(--space-6)} }

/* Neighborhood pages */
.hood-title{background:var(--violet); color:#fff}
.hood-title .wrap{padding-top:var(--space-10); padding-bottom:var(--space-10)}
.hood-title .crumb{font-size:14px; line-height:20px; margin-bottom:var(--space-2)}
.hood-title .crumb a{color:#fff; opacity:.85}
.hood-title h1{font-size:clamp(48px, 7vw, 88px); line-height:1}
.hood-title .lede{margin-top:var(--space-4); max-width:52ch; font-size:19px; line-height:30px}
.hood-video{position:relative; aspect-ratio:16/9; max-height:78vh; width:100%; overflow:hidden; background:var(--evergreen)}
.hood-video video,.hood-video .poster{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.hood-video video{opacity:0; transition:opacity .6s ease}
.hood-video video.playing{opacity:1}
.spot{padding:var(--space-16) 0 0}
.spot-grid{display:grid; grid-template-columns:1.25fr 1fr; gap:var(--space-10); align-items:center}
.spot-grid img{width:100%; height:auto; border-radius:var(--radius-md); aspect-ratio:3/2; object-fit:cover}
.spot-flip .spot-grid img{order:2}
.spot-text{display:flex; flex-direction:column; gap:var(--space-4)}
.spot-text h2{font-size:clamp(30px, 3.6vw, 42px); line-height:1.1}
.wide-shot{margin-top:var(--space-16)}
.wide-shot img{width:100%; height:auto; max-height:80vh; object-fit:cover}
.hood-cta{margin-top:var(--space-16); background:var(--evergreen); color:var(--cream)}
.hood-cta .wrap{padding-top:var(--space-16); padding-bottom:var(--space-16)}
.hood-cta h2{font-size:clamp(32px, 4vw, 48px); color:#fff}
.hood-cta p{margin-top:var(--space-4); max-width:48ch}
.hood-cta .btn-ghost{border-color:var(--cream); color:var(--cream)}
.ai-note{font-size:13px; line-height:20px; color:var(--text-muted); padding-top:var(--space-6); padding-bottom:var(--space-10)}
@media (max-width: 900px){
  .spot-grid{grid-template-columns:1fr; gap:var(--space-6)}
  .spot-flip .spot-grid img{order:0}
  .spot{padding-top:var(--space-10)}
}

/* About with headshot */
.about .wrap{grid-template-columns:minmax(220px, 340px) 1fr}
.about .headshot{width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:var(--radius-md)}
.about .body h2{margin-bottom:var(--space-2)}
@media (max-width: 900px){ .about .headshot{max-width:300px} }
/* Simple pages */
.prose{padding:var(--space-16) 0}
.prose .wrap{max-width:760px}
.prose h1{font-size:clamp(40px, 5vw, 60px); line-height:1.05; margin-bottom:var(--space-6)}
.prose h2{font-size:28px; line-height:1.2; margin:var(--space-10) 0 var(--space-4)}
.prose p,.prose li{margin-bottom:var(--space-4)}
.prose ul{padding-left:1.2em; margin:0 0 var(--space-4)}
.prose .updated{color:var(--text-muted); font-size:15px}
