:root{
  --lapis:#0F2742;
  --lapis-2:#17375C;
  --paper:#F8F8F5;
  --ink:#17212B;
  --muted:#56626E;
  --brass:#B48A4E;
  --brass-soft:#D8BE92;
  --mist:#D9E1E8;
  --rule:#E3E6E8;
  --serif:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Onest","Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1160px;
  --gutter:clamp(16px,4vw,40px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.6;overflow-x:hidden}
img,video{max-width:100%;height:auto;display:block}
a{color:inherit}
a:focus-visible,button:focus-visible,video:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}


/* header */
.top{position:sticky;top:0;z-index:20;background:rgba(15,39,66,.94);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;border-bottom:1px solid rgba(255,255,255,.08)}
.top .wrap{display:flex;align-items:center;gap:24px;height:64px}
.mark{font-family:var(--serif);font-weight:600;font-size:24px;letter-spacing:.01em;text-decoration:none;white-space:nowrap}
.nav{display:flex;gap:22px;margin-left:auto;font-size:15px}
.nav a{text-decoration:none;color:rgba(255,255,255,.82)}
.nav a:hover{color:#fff}
.lang{display:flex;border:1px solid rgba(255,255,255,.3);border-radius:999px;overflow:hidden;margin-left:8px;flex:none}
.lang a{color:rgba(255,255,255,.75);font:500 13px var(--sans);padding:6px 11px;text-decoration:none}
.lang a[aria-current="true"]{background:#fff;color:var(--lapis)}
@media (max-width:900px){.nav a:not(.nav-contact){display:none}.nav{gap:0}}

/* hero */
.hero{background:var(--lapis);color:#fff;padding:clamp(48px,8vw,96px) 0 0}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(28px,5vw,64px);align-items:end}
.hero-text{padding-bottom:clamp(40px,5vw,64px)}
.hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(56px,8.4vw,108px);line-height:.92;margin:0;letter-spacing:-.01em}
.tagline{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.4vw,42px);line-height:1.12;color:var(--brass-soft);margin:22px 0 0}
.tagline span{display:block}
.lede{max-width:34em;color:rgba(255,255,255,.82);margin:28px 0 0;font-size:clamp(17px,1.6vw,19px)}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}
.btn{display:inline-block;text-decoration:none;font:500 16px var(--sans);padding:13px 22px;border-radius:999px;border:1px solid transparent}
.btn-light{background:#fff;color:var(--lapis)}
.btn-light:hover{background:var(--brass-soft)}
.btn-line{border-color:rgba(255,255,255,.45);color:#fff}
.btn-line:hover{border-color:#fff}
.btn-ink{background:var(--lapis);color:#fff}
.btn-ink:hover{background:var(--lapis-2)}
.hero-photo{margin:0;align-self:end}
.hero-photo img{width:100%;aspect-ratio:4/5;max-height:580px;object-fit:cover;object-position:42% 30%;border-radius:4px 4px 0 0}

/* route map */
.routes{background:var(--lapis-2);color:#fff;padding:clamp(36px,5vw,56px) 0}
.routes-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(24px,4vw,56px);align-items:center}
.routes h2{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3vw,38px);line-height:1.15;margin:0}
.routes p{color:rgba(255,255,255,.78);margin:14px 0 0;max-width:30em}
.map{width:100%;height:auto;overflow:visible}
.map .arc{--len:900;fill:none;stroke:var(--brass-soft);stroke-width:1.4;opacity:.85;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);animation:draw 1.6s cubic-bezier(.3,.6,.2,1) forwards}
.map .arc:nth-of-type(2){animation-delay:.12s}.map .arc:nth-of-type(3){animation-delay:.24s}.map .arc:nth-of-type(4){animation-delay:.36s}.map .arc:nth-of-type(5){animation-delay:.48s}.map .arc:nth-of-type(6){animation-delay:.6s}
.map .city{fill:#fff}
.map .home{fill:var(--brass)}
.map .halo{fill:none;stroke:var(--brass);stroke-width:1;opacity:.6}
.map text{fill:rgba(255,255,255,.88);font:500 14px var(--sans)}
.map text.region{fill:rgba(255,255,255,.4);font:italic 500 17px var(--serif);letter-spacing:.02em}
@keyframes draw{to{stroke-dashoffset:0}}
@media (prefers-reduced-motion:reduce){.map .arc{animation:none;stroke-dashoffset:0}}

/* question band */
.question{padding:clamp(56px,8vw,104px) 0;border-bottom:1px solid var(--rule)}
.question blockquote{margin:0;max-width:22em;font-family:var(--serif);font-weight:500;font-size:clamp(32px,4.4vw,54px);line-height:1.1;color:var(--lapis)}
.question p{max-width:36em;color:var(--muted);margin:22px 0 0}
.question a{color:var(--lapis);font-weight:500;text-underline-offset:4px;text-decoration-color:var(--brass)}

/* sections */
.section{padding:clamp(64px,8vw,104px) 0}
.section + .section{border-top:1px solid var(--rule)}
.sec-head{display:grid;grid-template-columns:1fr 1.4fr;gap:clamp(20px,4vw,56px);align-items:end;margin-bottom:clamp(32px,4vw,48px)}
.sec-head h2{font-family:var(--serif);font-weight:600;font-size:clamp(38px,5vw,60px);line-height:1;margin:0;color:var(--lapis)}
.sec-head p{margin:0;color:var(--muted);max-width:36em}
h3{font-family:var(--serif);font-weight:600;font-size:clamp(26px,2.6vw,32px);line-height:1.12;margin:0;color:var(--lapis)}
.meta{font-size:15px;color:var(--muted);margin:0 0 10px}

/* note feature */
.note{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(24px,4vw,56px);align-items:start}
.note-media{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.note-media img{width:100%;height:100%;object-fit:cover;border-radius:3px}
.note-media .wide{grid-column:1 / -1;aspect-ratio:16/10}
.note-media .sq{aspect-ratio:1/1}
.note-text p{margin:16px 0 0}
.note-text .more{display:inline-block;margin-top:22px;font-weight:500;color:var(--lapis);text-underline-offset:4px;text-decoration-color:var(--brass)}
.note-video{margin-top:26px;max-width:300px}
.note-video video{width:100%;aspect-ratio:4/5;background:#000;border-radius:3px}
.cap{font-size:14px;color:var(--muted);margin-top:8px}

/* talks */
.talks{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,64px);max-width:900px}
.talk{display:grid;grid-template-columns:minmax(0,280px) 1fr;gap:clamp(24px,4vw,44px);align-items:start}
.talk video{width:100%;aspect-ratio:4/5;background:#000;border-radius:3px}
.talk ul{margin:14px 0 0;padding:0 0 0 18px;color:var(--ink)}
.talk li{margin:6px 0;font-size:16.5px}
.talk li::marker{color:var(--brass)}
.talk .session{font-size:15px;color:var(--muted);margin:10px 0 0}
.talk-note{margin-top:36px;color:var(--muted);font-size:16px}

/* work with me */
.offers{display:grid;grid-template-columns:repeat(3,1fr);gap:0 clamp(24px,3vw,40px)}
.offer{padding:26px 0 26px 22px;border-left:2px solid var(--brass);margin-bottom:18px}
.offer p{margin:10px 0 0;color:var(--ink)}
.offer .fine{color:var(--muted);font-size:15.5px}
.topics{margin-top:clamp(28px,4vw,44px);background:#fff;border:1px solid var(--rule);border-radius:6px;padding:clamp(22px,3vw,36px)}
.topics ul{columns:2;column-gap:40px;margin:16px 0 0;padding:0 0 0 18px}
.topics li{break-inside:avoid;margin:0 0 10px}
.topics li::marker{color:var(--brass)}
.principle{margin:22px 0 0;color:var(--muted);font-size:15.5px;max-width:52em}

/* about */
.about{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(28px,5vw,72px)}
.about-text p{margin:0 0 18px;max-width:38em}
.facts{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.facts li{padding:14px 0;border-bottom:1px solid var(--rule);font-size:16px}
.facts b{display:block;font-weight:600;color:var(--lapis);font-size:14px;margin-bottom:2px}
.about-photo img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:50% 35%;border-radius:3px;margin-bottom:22px}

/* contact */
.contact{background:var(--lapis);color:#fff;padding:clamp(64px,8vw,104px) 0}
.contact h2{font-family:var(--serif);font-weight:600;font-size:clamp(38px,5vw,60px);line-height:1;margin:0}
.contact .mail{display:inline-block;font-family:var(--serif);font-weight:500;font-size:clamp(28px,4.2vw,50px);color:var(--brass-soft);margin:26px 0 0;text-decoration:none;border-bottom:1px solid rgba(216,190,146,.4);word-break:break-word}
.contact .mail:hover{border-bottom-color:var(--brass-soft)}
.contact p{color:rgba(255,255,255,.78);max-width:40em}
.contact .actions{margin-top:28px}
.foot{background:#0B1D33;color:rgba(255,255,255,.62);font-size:14px;padding:28px 0}
.foot .wrap{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
.foot a{color:rgba(255,255,255,.85)}
.foot p{margin:0;max-width:52em}

/* article page */
.article-hero{background:var(--lapis);color:#fff;padding:clamp(48px,7vw,88px) 0 clamp(36px,5vw,56px)}
.article-hero .meta{color:rgba(255,255,255,.7)}
.article-hero h1{font-family:var(--serif);font-weight:600;font-size:clamp(44px,6.4vw,80px);line-height:1;margin:0;max-width:14em}
.article{padding:clamp(40px,6vw,72px) 0}
.article .body{max-width:40em}
.article .body p{margin:0 0 20px;font-size:19px;line-height:1.7}
.article .body h2{font-family:var(--serif);font-weight:600;font-size:30px;line-height:1.15;color:var(--lapis);margin:36px 0 10px}
.article figure{margin:0 0 32px}
.article figure img{width:100%;border-radius:3px}
.article figcaption{font-size:14px;color:var(--muted);margin-top:8px}
.back{display:inline-block;margin-top:28px;color:var(--lapis);font-weight:500;text-underline-offset:4px;text-decoration-color:var(--brass)}

/* responsive */
@media (max-width:960px){
  .hero-grid,.routes-grid,.note,.about,.sec-head{grid-template-columns:1fr}
  .hero-photo img{aspect-ratio:5/4;max-height:none;border-radius:4px 4px 0 0}
  .hero-text{padding-bottom:0}
  .talks{grid-template-columns:1fr}
}
@media (max-width:640px){
  body{font-size:17px}
  .offers{grid-template-columns:1fr}
  .topics ul{columns:1}
  .talk{grid-template-columns:1fr}
  .talk video{max-width:320px}
  .note-video{max-width:none}
  .note-video video{max-width:320px}
  .mark{font-size:21px}
  .map text{font-size:22px}
  .map text.region{font-size:24px}
}

/* additions v2 */
.routes .small,.contact .small{font-size:14.5px;color:rgba(255,255,255,.6);margin-top:14px}
.offer{display:flex;flex-direction:column}
.offer-link{margin-top:auto;padding-top:16px;color:var(--lapis);font-weight:500;font-size:16px;text-underline-offset:4px;text-decoration-color:var(--brass)}
.record{list-style:none;margin:0;padding:0;max-width:880px;border-top:1px solid var(--rule)}
.record li{display:grid;grid-template-columns:150px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--rule)}
.record time{font-family:var(--serif);font-weight:600;font-size:22px;color:var(--brass);line-height:1.2}
.record b{display:block;font-weight:600;color:var(--lapis)}
.record p{margin:6px 0 0;font-size:16px;color:var(--muted)}
.record a{color:var(--lapis);text-underline-offset:3px;text-decoration-color:var(--brass)}
.question{border-bottom:0;border-top:1px solid var(--rule)}
.q-label{font-family:var(--serif);font-style:italic;font-size:22px;color:var(--brass);margin:0 0 14px}
@media (max-width:960px){.offers{grid-template-columns:1fr}}
@media (max-width:640px){.record li{grid-template-columns:1fr;gap:6px}}
