.home { --paper:#f5f5f7;--surface:#fff;--ink:#1d1d1f;--muted:#6e6e73;--line:#d2d2d7;--blue:#0071e3;--coral:#e87965;--green:#1d1d1f;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif }
.home h1,.home h2,.home h3 { font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;letter-spacing:-.02em }
.home h2 { font-size:clamp(36px,4vw,52px);font-weight:600 }.home .section { width:min(1180px,90%);margin:0 auto;padding:110px 0 }.home .section-heading { margin-bottom:42px;display:flex;align-items:end;justify-content:space-between;gap:28px }.home .section-heading>p { color:var(--muted) }.home .eyebrow,.home .small-label { color:var(--muted);letter-spacing:.04em;font-weight:600 }.home .text-link { display:inline-flex;align-items:center;gap:7px;border-bottom:1px solid transparent;color:var(--blue);font-weight:500 }.home .text-link:hover { color:#0062c4;border-color:currentColor }
.home .site-header { position:sticky;top:0;z-index:40;height:72px;padding:0 max(5%,calc((100% - 1180px)/2));background:#f5f5f7d9;border-bottom:1px solid #00000010;backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px) }.home .wordmark { font-size:25px;letter-spacing:-.04em }.home .site-header nav { margin-left:auto;gap:30px;font-size:13px;color:#424245 }.home .site-header nav a { position:relative;transition:color .2s ease }.home .site-header nav a:after { content:"";position:absolute;left:50%;right:50%;bottom:-9px;height:2px;border-radius:2px;background:var(--blue);transition:left .25s ease,right .25s ease }.home .site-header nav a:hover,.home .site-header nav a.is-current { color:var(--ink) }.home .site-header nav a.is-current:after { left:0;right:0 }.home .header-contact { color:var(--blue);border:0;font-size:13px }.announcement-row { position:relative;z-index:2;max-width:1180px;margin:0 auto;padding:18px 0 0 }.header-announcement { width:fit-content;max-width:100%;display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:999px;background:#e8f2ff;color:#0062c4;font-size:11px;font-weight:600;line-height:1.3;transition:background .2s ease }.header-announcement:hover { background:#dcecff;color:#005bb5 }.header-announcement svg { width:13px;height:13px }
.intro { position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);align-items:center;gap:88px;min-height:690px;padding:84px max(5%,calc((100% - 1180px)/2));background:var(--surface);border-bottom:1px solid #0000000c }.intro:after { content:"";position:absolute;z-index:-1;right:4%;top:18%;width:440px;height:440px;border-radius:50%;background:radial-gradient(circle,#0071e317 0%,#0071e308 42%,transparent 70%);filter:blur(22px);animation:ambient-light 12s ease-in-out infinite alternate }.intro-copy { max-width:680px }.hero-status { display:flex;align-items:center;gap:9px;color:var(--muted) }.status-dot { width:7px;height:7px;border-radius:50%;background:var(--blue) }.intro h1 { width:max-content;max-width:100%;margin:24px 0 26px;font-size:clamp(64px,7vw,96px);line-height:.94;font-weight:650;letter-spacing:-.06em;transition:color .35s ease }.intro h1:after { content:"";display:block;width:0;height:6px;margin-top:10px;border-radius:999px;background:var(--coral);transition:width .45s cubic-bezier(.2,.8,.2,1) }.intro h1:hover { color:var(--blue) }.intro h1:hover:after { width:42% }.intro h1 .accent { color:var(--coral) }.intro-summary { max-width:630px;font-size:20px;line-height:1.55;color:#424245 }.intro-line { margin:28px 0;font-size:24px;color:var(--ink) }.intro-line em { font-family:Georgia,serif }.intro-actions { display:flex;gap:20px;align-items:center }
.portrait { --tilt-x:0deg;--tilt-y:0deg;width:100%;max-width:330px;margin:0;padding:9px;justify-self:center;border:1px solid #ffffffc4;border-radius:27px;background:#ffffff73;box-shadow:0 30px 70px #00000018,inset 0 1px 0 #fff;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);transform:translateY(0) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease;animation:portrait-breathe 7s ease-in-out infinite;will-change:transform }.portrait.is-interacting { animation-play-state:paused }.portrait:hover { box-shadow:0 38px 80px #00000020,inset 0 1px 0 #fff }.portrait img { width:100%;height:auto;border-radius:19px;transform:none;animation:none }
.experience { background:var(--paper) }.experience-intro { max-width:750px;margin-bottom:40px;color:var(--muted);font-size:18px }.company-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px }.company { min-width:0;padding-top:18px;border-top:1px solid var(--line);animation:none }.company-logo { width:100%;height:76px;margin-bottom:12px;padding:14px 0;display:grid;place-items:center;background:transparent }.company-logo img { width:auto;height:auto;max-width:min(150px,82%);max-height:36px;object-fit:contain;filter:none;transform:none }.company-industry { min-height:32px;margin:0 0 10px!important;color:var(--muted);font-size:10px!important;font-weight:600;text-transform:uppercase;line-height:1.45;letter-spacing:.04em }.company-meta { display:flex;align-items:baseline;justify-content:space-between;gap:12px }.company h3 { margin:0;font-size:21px;font-weight:600 }.company-meta span { flex-shrink:0;font-size:11px;color:var(--muted) }.company p { margin-top:8px;font-size:15px }.company small { display:block;margin-top:10px;color:var(--muted);font-size:13px;line-height:1.5 }.education { margin-top:52px;padding:25px 0;display:flex;align-items:center;gap:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line) }.education h3 { font-size:20px }.education>span:last-child { margin-left:auto;color:var(--muted) }
.speaking-section { background:var(--surface) }.speaking-layout { display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:88px }.speaking-intro-column h2 { margin-bottom:25px }.speaking-intro { max-width:430px;color:var(--muted);font-size:17px }.speaking-intro-column>.text-link { margin-top:28px }.engagements { border-top:1px solid var(--line) }.home .engagement { display:block;padding:27px 0;border-bottom:1px solid var(--line);animation:none;transition:padding-left .25s ease }.home .engagement:hover { padding-left:8px }.engagement-top { display:flex;align-items:center;gap:12px;margin-bottom:12px }.engagement-top>i { margin-left:auto;color:var(--blue) }.engagement-top .small-label { flex:1;color:var(--muted) }.engagement-upcoming .small-label { color:var(--blue) }.home .engagement h3 { max-width:none;margin-bottom:9px;font-size:26px;font-weight:600 }.home .engagement p { max-width:440px;color:var(--muted) }.event-logo { display:none!important }
.talk-carousel { margin-top:44px;padding:0;border:0;background:transparent }.carousel-heading { display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;color:var(--muted);font-size:12px }.carousel-heading>span:first-child { font-weight:600;color:#424245 }.carousel-viewport { position:relative;overflow:hidden;border-radius:18px;background:#ececf1 }.carousel-slide { min-height:220px;padding:24px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;color:var(--ink);background:linear-gradient(145deg,#f0f0f4,#dedee5);animation:carousel-in .3s ease both }.carousel-slide:nth-child(2) { background:linear-gradient(145deg,#f4eeee,#e9dfdc) }.carousel-slide:nth-child(3) { background:linear-gradient(145deg,#edf2f2,#dae5e4) }.carousel-mark { margin-bottom:auto;color:#8e8e93;font-size:13px }.talk-carousel .carousel-slide strong { color:var(--ink);font-size:20px }.talk-carousel .carousel-slide small { margin-top:5px;color:var(--muted) }.carousel-controls { display:flex;align-items:center;justify-content:center;gap:15px;margin-top:12px }.carousel-controls:after { display:none }.carousel-controls button { width:28px;height:28px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#e8e8ed;color:#424245 }.carousel-controls button:hover { background:#dcdce2 }.carousel-controls button svg { width:14px;height:14px }.carousel-prev { order:1 }.carousel-dots { order:2;display:flex;gap:7px }.carousel-next { order:3 }.carousel-dots button { width:6px;height:6px;background:#c7c7cc }.carousel-dots button[aria-selected=true] { background:var(--blue);transform:none }
.projects { background:var(--paper) }.project-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px }.project-card { overflow:hidden;border:1px solid #0000000c;border-radius:24px;background:var(--surface);box-shadow:0 2px 8px #00000008;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s ease }.project-card:hover { transform:translateY(-4px);box-shadow:0 20px 45px #00000012 }.project-image { position:relative;height:340px;display:block;overflow:hidden;background:#080b0f }.project-image img { width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1) }.project-image-wanderplots img { object-fit:contain }.project-card:hover .project-image img { transform:scale(1.018) }.project-image:after { display:none }.project-card-copy { padding:28px }.project-card-copy h3 { margin:11px 0 13px;font-size:32px }.project-card-copy>p:not(.eyebrow) { min-height:52px;color:var(--muted) }.travel-anchor { height:1px }.notes-brief { width:min(1180px,90%);margin:0 auto;padding:30px 0 60px;display:flex;gap:28px;border-top:1px solid var(--line);font-size:13px }.notes-brief p { color:var(--muted) }
.contact-section { background:#1d1d1f;color:#f5f5f7 }.contact-layout { display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:80px }.contact-layout h2 { font-size:48px }.home .contact-links { margin-top:25px;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:20px }.home .contact-links a { color:#d2d2d7 }.home .contact-form { width:100%;display:grid;gap:8px;margin:0 }.home .contact-form label { color:#d2d2d7;font-size:13px;text-transform:none }.home .contact-form input,.home .contact-form textarea { margin:0 0 12px;padding:13px 14px;border:1px solid #ffffff35;border-radius:12px;background:#ffffff0b;color:#fff;font:inherit;transition:border-color .2s ease,background .2s ease,box-shadow .2s ease }.home .contact-form input:focus-visible,.home .contact-form textarea:focus-visible { outline:0;border-color:#2997ff;background:#ffffff10;box-shadow:0 0 0 4px #0071e333 }.home .contact-form [aria-invalid=true] { border-color:#ff9f8f }.home .form-submit { justify-self:start;margin-top:4px;padding:11px 17px;border:0;border-radius:999px;background:var(--blue);color:white;font-weight:600 }.home .form-submit:hover { background:#0077ed }.field-error { color:#ffb4a8;font-size:12px }.home [hidden] { display:none!important }#form-status,#draft-retry { color:#d2d2d7;font-size:12px }.home .site-footer { background:var(--surface) }
.home .reveal-on-scroll { opacity:1;transform:none }.home .reveal-on-scroll.is-visible { animation:section-enter .45s ease both }.home .reveal-on-scroll:focus-within { animation:none }
@keyframes ambient-light { from { transform:translate3d(-12px,-8px,0) scale(.98);opacity:.7 } to { transform:translate3d(12px,8px,0) scale(1.04);opacity:1 } }
@keyframes portrait-breathe { 0%,100% { transform:translateY(0) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));box-shadow:0 30px 70px #00000018,inset 0 1px 0 #fff } 50% { transform:translateY(-3px) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));box-shadow:0 35px 76px #0000001d,inset 0 1px 0 #fff } }
@keyframes carousel-in { from { opacity:.4;transform:translateX(8px) } to { opacity:1;transform:translateX(0) } }
@keyframes section-enter { from { opacity:.7;transform:translateY(8px) } to { opacity:1;transform:translateY(0) } }
@media(max-width:1240px) { .announcement-row { width:90% } }
@media(max-width:1000px) { .home .site-header nav { gap:20px }.intro { grid-template-columns:1.15fr .85fr;gap:42px;min-height:620px;padding-top:62px;padding-bottom:62px }.intro h1 { font-size:64px }.intro-summary { font-size:17px }.portrait { max-width:300px }.company-grid { grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 24px }.speaking-layout,.contact-layout { gap:48px }.project-image { height:285px } }
@media(max-width:700px) { .home .site-header { height:auto;min-height:72px;padding-top:14px;padding-bottom:14px;gap:12px }.home .site-header nav { gap:14px;font-size:12px }.home .header-contact { display:none }.announcement-row { width:88%;padding-top:14px }.header-announcement { white-space:normal }.intro { grid-template-columns:1fr;gap:44px;min-height:0;padding:46px 6% 68px }.intro h1 { margin:20px 0;font-size:52px }.intro-summary { font-size:16px }.intro-line { font-size:21px }.portrait { width:min(230px,72%);justify-self:center }.home .section { width:88%;padding:76px 0 }.home .section-heading { display:block }.home .section-heading>p,.home .section-heading>a { display:block;margin-top:12px }.company-grid,.speaking-layout,.project-grid,.contact-layout { grid-template-columns:1fr }.company-grid { gap:32px }.company-logo { max-width:none }.company-meta span { font-size:10px }.speaking-layout { gap:50px }.carousel-slide { min-height:190px }.project-image { height:285px }.project-card-copy>p:not(.eyebrow) { min-height:0 }.notes-brief { display:block }.notes-brief p { margin-top:8px }.contact-layout h2 { font-size:38px } }
.announcement-row { width:auto;max-width:none;display:flex;justify-content:center;margin:0;padding:14px 5% 0;background:var(--surface) }
.header-announcement { gap:7px;animation:notification-breathe 3.8s ease-in-out infinite }
.notification-dot { width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:var(--blue);animation:notification-dot 2.4s ease-out infinite }
.intro { min-height:650px;padding-top:54px;padding-bottom:72px }
.portrait { max-width:360px;animation:portrait-pulse-visible 5.4s ease-in-out infinite }
.company-meta { display:block }.company-meta span { display:block;margin-top:3px }
@keyframes portrait-pulse-visible { 0%,100% { transform:translateY(2px) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));box-shadow:0 28px 66px #00000016,inset 0 1px 0 #fff } 50% { transform:translateY(-5px) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));box-shadow:0 39px 82px #00000024,inset 0 1px 0 #fff } }
@keyframes notification-breathe { 0%,100% { box-shadow:0 0 0 0 #0071e300 } 50% { box-shadow:0 5px 18px #0071e326 } }
@keyframes notification-dot { 0% { box-shadow:0 0 0 0 #0071e34d } 70%,100% { box-shadow:0 0 0 7px #0071e300 } }
@media(max-width:1000px) { .intro { min-height:600px;padding-top:44px }.portrait { max-width:325px } }
@media(max-width:700px) { .announcement-row { width:auto;padding:12px 6% 0 }.intro { padding-top:38px }.portrait { width:min(250px,76%) } }
@media(prefers-reduced-motion:reduce) { .home *,.home *:before,.home *:after { animation:none!important;transition:none!important;scroll-behavior:auto!important }.portrait { transform:none!important } }

/* Alignment and carousel refinement */
.announcement-row {
  padding-top: 14px;
  padding-bottom: 14px;
  background: var(--surface);
}
.header-announcement {
  transform: translateY(5px);
}
.intro {
  padding-top: 42px;
}
.portrait {
  max-width: 380px;
}
.company {
  display: grid;
  grid-template-rows: 76px minmax(32px, auto) auto auto 1fr;
  align-content: start;
  text-align: center;
}
.company-logo {
  margin-bottom: 0;
}
.company-industry {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px !important;
}
.company-meta {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 3px;
}
.company-meta h3.sr-only {
  margin: -1px;
}
.company-logo .logo-zoomcar {
  background: transparent;
}
.company-meta span {
  margin-top: 0;
  white-space: normal;
}
.company p,
.company small {
  width: 100%;
  margin-right: auto;
  margin-left: auto;
}
.speaking-intro-column {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.talk-carousel {
  width: 100%;
  margin-top: 20px;
}
.carousel-viewport {
  isolation: isolate;
  aspect-ratio: 3 / 2;
}
.carousel-slide {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  display: block;
  overflow: hidden;
  background: #1d1d1f;
}
.carousel-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.carousel-caption {
  position: absolute;
  right: 14px;
  bottom: 14px;
  left: 14px;
  padding: 36px 56px 10px;
  color: #fff;
  background: linear-gradient(transparent, #0000009e);
  font-size: 11px;
  font-weight: 600;
  text-align: center;
  text-shadow: 0 1px 4px #0009;
  pointer-events: none;
}
.carousel-controls {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: block;
  margin: 0;
  pointer-events: none;
}
.carousel-controls .carousel-prev,
.carousel-controls .carousel-next {
  position: absolute;
  top: 50%;
  width: 36px;
  height: 36px;
  border: 1px solid #ffffffb3;
  background: #ffffffd9;
  box-shadow: 0 3px 14px #00000018;
  transform: translateY(-50%);
  pointer-events: auto;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.carousel-controls .carousel-prev { left: 12px; }
.carousel-controls .carousel-next { right: 12px; }
.carousel-controls .carousel-prev:hover,
.carousel-controls .carousel-next:hover { background: #fff; }
.carousel-dots {
  position: absolute;
  left: 50%;
  bottom: 43px;
  gap: 8px;
  padding: 7px 9px;
  border-radius: 999px;
  background: #ffffffcf;
  box-shadow: 0 2px 10px #00000012;
  transform: translateX(-50%);
  pointer-events: auto;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.carousel-dots button {
  width: 7px;
  height: 7px;
}
.speaking-intro-column > .text-link {
  margin-top: 24px;
}
.education-logo {
  width: auto;
  height: 38px;
  max-width: 210px;
  object-fit: contain;
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
@media(max-width:1000px) {
  .intro { padding-top: 36px; }
  .portrait { max-width: 345px; }
}
@media(max-width:700px) {
  .announcement-row { padding-top: 12px; padding-bottom: 12px; }
  .intro { padding-top: 32px; }
  .portrait { width: min(265px, 80%); max-width: 265px; }
  .company { grid-template-rows: 76px minmax(32px, auto) auto auto 1fr; }
  .carousel-controls .carousel-prev { left: 10px; }
  .carousel-controls .carousel-next { right: 10px; }
  .carousel-caption { right: 10px; bottom: 10px; left: 10px; padding-right: 48px; padding-left: 48px; }
  .carousel-dots { bottom: 38px; }
  .education-logo { height: 32px; max-width: 170px; }
}

/* Homepage annotation cleanup */
.header-announcement {
  transform: translateY(8px);
}
.portrait {
  max-width: 400px;
}
.company-grid {
  align-items: stretch;
}
.company {
  min-height: 230px;
  padding: 24px 18px 22px;
  display: grid;
  grid-template-rows: 72px minmax(46px, auto) 22px minmax(32px, auto);
  align-content: start;
  gap: 10px;
  border: 1px solid #d8d8de;
  border-radius: 18px;
  background: #ffffff80;
  text-align: center;
  box-shadow: 0 1px 0 #ffffffb8 inset;
}
.company-logo {
  height: 72px;
  padding: 10px 0 14px;
}
.company-logo img {
  max-width: min(164px, 86%);
  max-height: 42px;
}
.company-role {
  margin: 0;
  align-self: end;
  color: var(--ink);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.35;
}
.company-date {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
}
.company-industry {
  min-height: 0;
  margin: 0 !important;
  align-self: start;
  line-height: 1.35;
}
.company small,
.company-meta {
  display: none;
}
.education {
  gap: 22px;
}
.education-school {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 13px;
}
.education-mark {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: block;
  overflow: hidden;
}
.education-mark img {
  width: auto;
  max-width: none;
  height: 36px;
}
.education-school h3 {
  font-size: 19px;
  line-height: 1.25;
}
.talk-carousel {
  margin-top: 12px;
}
.carousel-viewport {
  border: 1px solid #cfd6df;
  box-shadow: 0 1px 0 #ffffffc9 inset;
}
.carousel-caption,
.carousel-dots {
  display: none;
}
.speaking-intro-column > .text-link {
  margin-top: 18px;
}
@media(max-width:1000px) {
  .portrait { max-width: 360px; }
  .company { min-height: 220px; }
}
@media(max-width:700px) {
  .portrait { width: min(280px, 82%); max-width: 280px; }
  .company { min-height: 214px; }
  .education {
    align-items: flex-start;
    gap: 16px;
  }
  .education-school {
    flex: 1 1 auto;
  }
  .education-school h3 {
    font-size: 17px;
  }
}

/* Spacing and automatic carousel refinement */
.header-announcement {
  transform: translateY(16px);
}
.company {
  min-height: 206px;
  padding: 20px 18px 18px;
  grid-template-rows: 60px minmax(38px, auto) 19px minmax(25px, auto);
  gap: 7px;
}
.company-logo {
  height: 60px;
  padding: 6px 0 10px;
}
.company-logo img {
  max-height: 38px;
}
.company-role {
  align-self: end;
  font-size: 15px;
}
.company-date {
  font-size: 12px;
  line-height: 1.25;
}
.company-industry {
  font-size: 9px !important;
  line-height: 1.25;
}
.education-mark {
  width: 34px;
  height: 34px;
  flex-basis: 34px;
  border-radius: 5px;
}
.education-mark img {
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.talk-carousel {
  margin-top: 6px;
  padding: 0 20px;
}
.carousel-viewport {
  overflow: visible;
  border: 0;
  background: transparent;
  box-shadow: none;
}
.carousel-slide {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  border: 1px solid #cfd6df;
  border-radius: 18px;
  opacity: 0;
  box-shadow: 0 14px 32px #1d1d1f18;
  transform: translateX(0) scale(.86) rotate(0deg);
  transition: transform .52s cubic-bezier(.2,.8,.2,1), opacity .52s ease, box-shadow .52s ease;
  animation: none;
  pointer-events: none;
}
.carousel-slide.is-active {
  z-index: 3;
  opacity: 1;
  transform: translateX(0) scale(1) rotate(0deg);
  box-shadow: 0 18px 42px #1d1d1f24;
  pointer-events: auto;
}
.carousel-slide.is-prev,
.carousel-slide.is-next {
  opacity: .42;
}
.carousel-slide.is-prev {
  transform: translateX(-26px) scale(.91) rotate(-2.4deg);
}
.carousel-slide.is-next {
  transform: translateX(26px) scale(.91) rotate(2.4deg);
}
.carousel-controls .carousel-prev { left: 8px; }
.carousel-controls .carousel-next { right: 8px; }
.speaking-intro-column > .text-link {
  margin-top: 14px;
}
@media(max-width:1000px) {
  .company {
    min-height: 198px;
  }
}
@media(max-width:700px) {
  .header-announcement {
    transform: translateY(12px);
  }
  .company {
    min-height: 194px;
    padding: 18px 16px;
  }
  .talk-carousel {
    padding: 0 12px;
  }
  .carousel-slide.is-prev {
    transform: translateX(-14px) scale(.93) rotate(-1.6deg);
  }
  .carousel-slide.is-next {
    transform: translateX(14px) scale(.93) rotate(1.6deg);
  }
}
@media(prefers-reduced-motion:reduce) {
  .carousel-slide {
    transition: none !important;
  }
}

/* Final annotation polish */
.header-announcement {
  transform: translateY(22px);
}
.company {
  min-height: 198px;
  padding: 18px 18px 17px;
  grid-template-rows: 58px 32px 18px 18px;
  gap: 8px;
}
.company-logo {
  height: 58px;
  padding: 4px 0 10px;
}
.company .company-role,
.company .company-date,
.company .company-industry {
  font-family: inherit;
  letter-spacing: 0;
}
.company .company-role {
  align-self: center;
  margin: 0;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.25;
}
.company .company-date {
  align-self: center;
  margin: 0;
  color: #5f6368;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.25;
}
.company .company-industry {
  align-self: start;
  margin: 0 !important;
  color: #6e6e73;
  font-size: 9px !important;
  font-weight: 650;
  line-height: 1.25;
  letter-spacing: .045em;
}
.speaking-intro {
  margin: 0;
}
.talk-carousel {
  margin-top: 6px;
  padding: 0 64px;
}
.carousel-slide.is-prev:not(.is-active),
.carousel-slide.is-next:not(.is-active) {
  opacity: .58;
  box-shadow: 0 10px 28px #1d1d1f16;
}
.carousel-slide.is-prev:not(.is-active) {
  transform: translateX(-82px) scale(.88) rotate(-3.5deg);
}
.carousel-slide.is-next:not(.is-active) {
  transform: translateX(82px) scale(.88) rotate(3.5deg);
}
.carousel-controls .carousel-prev { left: 26px; }
.carousel-controls .carousel-next { right: 26px; }
@media(max-width:1000px) {
  .company {
    min-height: 194px;
  }
}
@media(max-width:700px) {
  .header-announcement {
    transform: translateY(16px);
  }
  .company {
    min-height: 190px;
  }
  .talk-carousel {
    padding: 0 34px;
  }
  .carousel-slide.is-prev:not(.is-active) {
    transform: translateX(-42px) scale(.9) rotate(-2.4deg);
  }
  .carousel-slide.is-next:not(.is-active) {
    transform: translateX(42px) scale(.9) rotate(2.4deg);
  }
  .carousel-controls .carousel-prev { left: 8px; }
  .carousel-controls .carousel-next { right: 8px; }
}

/* Final typography, mobile announcement, and stack carousel pass */
.company {
  min-height: 196px;
  padding: 18px 20px;
  grid-template-rows: 56px 34px 18px 16px;
  gap: 6px;
  align-content: center;
}
.company-logo {
  height: 56px;
  padding: 3px 0 9px;
}
.company-logo img {
  max-height: 37px;
}
.company .company-role {
  align-self: center;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
}
.company .company-date {
  align-self: center;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.2;
}
.company .company-industry {
  align-self: center;
  font-size: 9px !important;
  font-weight: 650;
  line-height: 1.15;
  letter-spacing: .045em;
}
.intro-summary-combined {
  max-width: 660px;
}
.intro-summary-combined em {
  color: var(--ink);
  font-family: Georgia, serif;
  font-size: 1.12em;
  line-height: 1.35;
}
.talk-carousel {
  margin-top: 2px;
  padding: 0 44px;
}
.carousel-viewport {
  aspect-ratio: 3 / 2;
}
.carousel-slide.is-active {
  border-color: #0071e3;
  border-width: 2px;
  transform: translateX(0) scale(1.08) rotate(0deg);
  box-shadow: 0 20px 48px #1d1d1f26;
}
.carousel-slide.is-prev:not(.is-active),
.carousel-slide.is-next:not(.is-active) {
  opacity: .42;
  box-shadow: 0 9px 24px #1d1d1f14;
}
.carousel-slide.is-prev:not(.is-active) {
  transform: translateX(-92px) scale(.74) rotate(-4deg);
}
.carousel-slide.is-next:not(.is-active) {
  transform: translateX(92px) scale(.74) rotate(4deg);
}
.carousel-controls {
  display: none;
}
.speaking-intro-column > .text-link {
  margin-top: 12px;
}
@media(max-width:1000px) {
  .company {
    min-height: 194px;
  }
  .talk-carousel {
    padding: 0 38px;
  }
  .carousel-slide.is-prev:not(.is-active) {
    transform: translateX(-72px) scale(.76) rotate(-3.2deg);
  }
  .carousel-slide.is-next:not(.is-active) {
    transform: translateX(72px) scale(.76) rotate(3.2deg);
  }
}
@media(max-width:700px) {
  .announcement-row {
    width: auto;
    padding: 12px 6% 8px;
    justify-content: stretch;
  }
  .header-announcement {
    width: 100%;
    justify-content: center;
    align-items: center;
    transform: none;
    gap: 7px;
    padding: 9px 12px;
    font-size: 12px;
    line-height: 1.3;
    text-align: center;
  }
  .header-announcement .notification-dot {
    display: none;
  }
  .announcement-mobile-line {
    display: block;
  }
  .header-announcement span:not(.notification-dot) {
    min-width: 0;
  }
  .intro {
    padding-top: 34px;
  }
  .company {
    min-height: 192px;
    padding: 17px 16px;
  }
  .talk-carousel {
    margin-top: 4px;
    padding: 0 30px;
  }
  .carousel-slide.is-active {
    transform: translateX(0) scale(1.04) rotate(0deg);
  }
  .carousel-slide.is-prev:not(.is-active) {
    transform: translateX(-46px) scale(.76) rotate(-2.6deg);
  }
  .carousel-slide.is-next:not(.is-active) {
    transform: translateX(46px) scale(.76) rotate(2.6deg);
  }
}
@media(prefers-reduced-motion:reduce) {
  .carousel-slide:not(.is-active) {
    opacity: 0;
  }
  .carousel-slide.is-active {
    transform: none;
  }
}

/* Final hero refinement */
.announcement-row {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
  background: var(--surface);
}
.announcement-inner {
  width: min(1180px, 90%);
  margin: 0 auto;
  padding: 19px 0 5px;
  display: flex;
  justify-content: center;
}
.header-announcement {
  gap: 6px;
  padding: 6px 10px;
  font-size: 10.5px;
  transform: none;
  animation: none;
}
.intro {
  grid-template-columns: minmax(0, 1.24fr) minmax(300px, .76fr);
  gap: 60px;
  min-height: 580px;
  padding-top: 14px;
  padding-bottom: 68px;
}
.intro-copy {
  transform: translateY(-32px);
}
.intro h1 {
  margin-top: 22px;
  margin-bottom: 24px;
  transform-origin: left center;
  transition: color .3s ease, transform .35s cubic-bezier(.2,.8,.2,1), letter-spacing .35s ease;
}
.intro h1::after {
  display: block;
  width: 0;
  height: 4px;
  margin-top: 10px;
  border-radius: 999px;
  background: var(--blue);
  transition: width .4s cubic-bezier(.2,.8,.2,1);
}
.intro h1:hover {
  color: var(--ink);
  transform: translateX(6px);
  letter-spacing: -.055em;
}
.intro h1:hover::after {
  width: 36%;
}
.intro-summary-combined {
  max-width: 620px;
  color: #3f3f43;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Helvetica, Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.62;
  letter-spacing: -.012em;
}
.intro-actions {
  margin-top: 22px;
  flex-wrap: wrap;
  gap: 13px 25px;
}
.intro-profile-link {
  color: #515158 !important;
}
.intro-profile-link:hover {
  color: var(--blue) !important;
}
.portrait {
  max-width: 374px;
  box-shadow: 0 32px 86px #1d1d1f12, inset 0 1px 0 #fff;
  animation-name: portrait-pulse-refined;
}
.portrait:hover {
  box-shadow: 0 38px 96px #1d1d1f17, inset 0 1px 0 #fff;
}
.home .intro-actions .text-link:focus-visible,
.home .header-announcement:focus-visible {
  outline: 3px solid #0071e366;
  outline-offset: 5px;
}
@keyframes portrait-pulse-refined {
  0%, 100% {
    transform: translateY(1px) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    box-shadow: 0 32px 86px #1d1d1f12, inset 0 1px 0 #fff;
  }
  50% {
    transform: translateY(-4px) perspective(1000px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));
    box-shadow: 0 39px 98px #1d1d1f16, inset 0 1px 0 #fff;
  }
}
@media(max-width:1000px) {
  .intro {
    gap: 38px;
    min-height: 540px;
    padding-top: 12px;
    padding-bottom: 58px;
  }
  .intro-copy {
    transform: translateY(-24px);
  }
  .intro-summary-combined {
    font-size: 17px;
  }
  .portrait {
    max-width: 340px;
  }
}
@media(max-width:700px) {
  .announcement-row {
    width: 100%;
    padding: 0;
  }
  .announcement-inner {
    width: 88%;
    padding: 12px 0 7px;
  }
  .header-announcement {
    width: 100%;
    position: relative;
    padding: 7px 34px 7px 18px;
    font-size: 11px;
  }
  .header-announcement > svg {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
  }
  .intro {
    grid-template-columns: 1fr;
    gap: 40px;
    min-height: 0;
    padding-top: 20px;
    padding-bottom: 64px;
  }
  .intro-copy {
    transform: none;
  }
  .intro h1 {
    margin-top: 19px;
    margin-bottom: 20px;
  }
  .intro-summary-combined {
    max-width: 100%;
    font-size: 15.5px;
    line-height: 1.62;
    letter-spacing: -.006em;
  }
  .intro-actions {
    margin-top: 18px;
    gap: 11px 20px;
  }
  .portrait {
    width: min(260px, 78%);
    max-width: 260px;
  }
}

/* Compact interactive homepage atlas */
.project-image-atlas {
  isolation: isolate;
  background: #121916;
}
.home-globe {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.home-globe canvas { display: block; }
.home-globe-status {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #c5d2ce;
  font-size: 11px;
  pointer-events: none;
}
.home-globe-status[hidden] { display: none; }
.home-globe-status .loading-ring {
  width: 22px;
  height: 22px;
  border-color: #41534f;
  border-top-color: #8fd1c6;
}
.atlas-preview-label,
.atlas-preview-action {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  color: #d9e7e4;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.atlas-preview-label {
  top: 20px;
  left: 22px;
  gap: 7px;
}
.atlas-preview-label .live-dot {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: #8fd1c6;
  box-shadow: 0 0 0 4px #8fd1c61c;
}
.atlas-preview-action {
  right: 20px;
  bottom: 18px;
  gap: 6px;
  color: #fff;
  padding: 8px 10px;
  border-radius: 999px;
  background: #111b1bd9;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.atlas-preview-action svg {
  width: 13px;
  height: 13px;
}
@media(prefers-reduced-motion:reduce) {
  .intro h1:hover { transform: none; }
}

.speaking-intro-column > .text-link {
  margin-top: 22px;
}

/* Wanderplots landing-page carousel adapted for the portfolio card */
.project-image-wanderplots {
  background: #05090e;
}
.wanderplots-preview {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  perspective: 1000px;
}
.wanderplots-frame {
  position: absolute;
  height: 88%;
  width: auto;
  aspect-ratio: 9 / 16;
  overflow: hidden;
  border: 1px solid #ffffff73;
  border-radius: 14px;
  background: #14252a;
  box-shadow: 0 18px 42px #0009;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  animation: wanderplots-carousel 8.4s cubic-bezier(.22,.61,.36,1) infinite;
}
.wanderplots-frame:nth-child(2) { animation-delay: -2.8s; }
.wanderplots-frame:nth-child(3) { animation-delay: -5.6s; }
.wanderplots-frame svg {
  display: block;
  width: 100%;
  height: 100%;
}
@keyframes wanderplots-carousel {
  0%, 29% {
    z-index: 3;
    opacity: 1;
    transform: translateX(0) scale(1) rotateY(0) rotateZ(0);
  }
  33%, 62% {
    z-index: 1;
    opacity: .5;
    transform: translateX(76%) scale(.72) rotateY(-7deg) rotateZ(2deg);
  }
  66%, 95% {
    z-index: 1;
    opacity: .5;
    transform: translateX(-76%) scale(.72) rotateY(7deg) rotateZ(-2deg);
  }
  100% {
    z-index: 3;
    opacity: 1;
    transform: translateX(0) scale(1) rotateY(0) rotateZ(0);
  }
}
@media(max-width:700px) {
  .wanderplots-frame {
    height: 86%;
    width: auto;
  }
}
@media(prefers-reduced-motion:reduce) {
  .wanderplots-frame { animation: none; }
  .wanderplots-frame:nth-child(1) { z-index: 3; transform: none; }
  .wanderplots-frame:nth-child(2) { transform: translateX(76%) scale(.72) rotateY(-7deg); opacity: .5; }
  .wanderplots-frame:nth-child(3) { transform: translateX(-76%) scale(.72) rotateY(7deg); opacity: .5; }
}

/* Give the speaking carousel's neighboring photos a clearer mobile peek. */
@media(max-width:700px) {
  .talk-carousel {
    padding-inline: 34px;
  }
  .carousel-slide.is-prev:not(.is-active),
  .carousel-slide.is-next:not(.is-active) {
    opacity: .54;
  }
  .carousel-slide.is-prev:not(.is-active) {
    transform: translateX(-64px) scale(.82) rotate(-2.6deg);
  }
  .carousel-slide.is-next:not(.is-active) {
    transform: translateX(64px) scale(.82) rotate(2.6deg);
  }
}

.company-country {
  display: inline-block;
  margin-left: 5px;
  font-size: .9em;
  line-height: 1;
  vertical-align: .05em;
}

/* Cohesive homepage motion layer */
.home {
  --motion-fast: 180ms;
  --motion-base: 360ms;
  --motion-slow: 620ms;
  --motion-ease: cubic-bezier(.2, .8, .2, 1);
}

/* The active photo owns the timer, so it restarts whenever the slide changes. */
.home .carousel-slide.is-active::after {
  content: "";
  position: absolute;
  z-index: 6;
  right: 0;
  bottom: 0;
  left: 0;
  height: 2px;
  border-radius: 999px;
  background: var(--blue);
  opacity: .52;
  transform: scaleX(0);
  transform-origin: left center;
  animation: carousel-timer 4s linear forwards;
  pointer-events: none;
}
@keyframes carousel-timer {
  to { transform: scaleX(1); }
}
.home .talk-carousel:focus-within .carousel-slide.is-active::after {
  animation-play-state: paused;
}

/* Section entrances use the existing visibility observer and do not hide fallback content. */
.home .reveal-on-scroll .section-heading h2,
.home .reveal-on-scroll .speaking-intro-column h2,
.home .reveal-on-scroll.contact-layout h2 {
  opacity: .01;
  transform: translateY(9px);
}
.home .reveal-on-scroll.is-visible .section-heading h2,
.home .reveal-on-scroll.is-visible .speaking-intro-column h2,
.home .reveal-on-scroll.is-visible.contact-layout h2 {
  animation: heading-settle var(--motion-slow) var(--motion-ease) 80ms both;
}
@keyframes heading-settle {
  to { opacity: 1; transform: translateY(0); }
}

/* Replace gap-changing link motion with compositor-only arrow movement. */
.home .text-link {
  gap: 18px;
  transition: color var(--motion-fast) ease, border-color var(--motion-fast) ease;
}
.home .text-link svg,
.home .engagement svg,
.home .contact-links svg,
.home .form-submit svg,
.home .site-footer a svg,
.home .atlas-preview-action svg {
  transition: transform var(--motion-base) var(--motion-ease);
}
.home .text-link:focus-visible svg,
.home .engagement:focus-visible svg,
.home .contact-links a:focus-visible svg,
.home .form-submit:focus-visible svg,
.home .atlas-preview-action:focus-visible svg {
  transform: translate(3px, -3px);
}
.home .text-link:focus-visible .lucide-arrow-down-right {
  transform: translate(3px, 3px);
}
.home .site-footer a:focus-visible svg {
  transform: translateY(-3px);
}

/* Experience and engagement feedback stays within the current geometry. */
.home .company {
  transition: transform var(--motion-base) var(--motion-ease), border-color var(--motion-base) ease;
}
.home .company-logo img {
  transition: transform var(--motion-base) var(--motion-ease), filter var(--motion-base) ease;
}
.home .company:focus-within {
  border-color: #0071e380;
  transform: translateY(-2px);
}
.home .company:focus-within .company-logo img {
  filter: saturate(1.06) contrast(1.02);
  transform: translateY(-2px);
}
.home .engagement {
  position: relative;
  transition: color var(--motion-fast) ease, border-color var(--motion-base) ease;
}
.home .engagement:focus-visible {
  border-color: #0071e366;
}

/* Project media gains light and depth without changing its scale or crop. */
.home .project-image::before {
  content: "";
  position: absolute;
  z-index: 5;
  top: -35%;
  bottom: -35%;
  left: -42%;
  width: 24%;
  background: linear-gradient(90deg, transparent, #ffffff20, transparent);
  opacity: 0;
  transform: translateX(-140%) skewX(-16deg);
  transition: transform 760ms var(--motion-ease), opacity var(--motion-fast) ease;
  pointer-events: none;
}
.home .wanderplots-preview,
.home .home-globe {
  transition: filter var(--motion-base) ease;
}
.home .project-card:focus-within .project-image::before {
  opacity: .6;
  transform: translateX(720%) skewX(-16deg);
}
.home .project-card:focus-within .wanderplots-preview,
.home .project-card:focus-within .home-globe {
  filter: brightness(1.035) saturate(1.025);
}

.home .form-submit {
  box-shadow: 0 8px 20px #0071e31f;
  transition: transform var(--motion-base) var(--motion-ease), background var(--motion-fast) ease, box-shadow var(--motion-base) ease;
}
.home .form-submit:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 13px 26px #0071e338;
}

@media (hover:hover) and (pointer:fine) {
  .home .talk-carousel:hover .carousel-slide.is-active::after {
    animation-play-state: paused;
  }
  .home .text-link:hover svg,
  .home .engagement:hover svg,
  .home .contact-links a:hover svg,
  .home .form-submit:hover svg,
  .home .atlas-preview-action:hover svg {
    transform: translate(3px, -3px);
  }
  .home .text-link:hover .lucide-arrow-down-right {
    transform: translate(3px, 3px);
  }
  .home .site-footer a:hover svg {
    transform: translateY(-3px);
  }
  .home .company:hover {
    border-color: #0071e380;
    transform: translateY(-2px);
  }
  .home .company:hover .company-logo img {
    filter: saturate(1.06) contrast(1.02);
    transform: translateY(-2px);
  }
  .home .engagement:hover {
    padding-left: 0;
    border-color: #0071e366;
  }
  .home .project-card:hover .project-image::before {
    opacity: .6;
    transform: translateX(720%) skewX(-16deg);
  }
  .home .project-card:hover .wanderplots-preview,
  .home .project-card:hover .home-globe {
    filter: brightness(1.035) saturate(1.025);
  }
  .home .form-submit:hover {
    transform: translateY(-2px);
    box-shadow: 0 13px 26px #0071e338;
  }
}

@media (prefers-reduced-motion: reduce) {
  .home .carousel-slide.is-active::after,
  .home .reveal-on-scroll.is-visible .section-heading h2,
  .home .reveal-on-scroll.is-visible .speaking-intro-column h2,
  .home .reveal-on-scroll.is-visible.contact-layout h2 {
    animation: none !important;
  }
  .home .carousel-slide.is-active::after {
    display: none;
  }
  .home .reveal-on-scroll .section-heading h2,
  .home .reveal-on-scroll .speaking-intro-column h2,
  .home .reveal-on-scroll.contact-layout h2 {
    opacity: 1;
    transform: none;
  }
  .home .project-image::before {
    display: none;
  }
}

/* Keep the compact education row optically centered on mobile. */
@media (max-width:700px) {
  .home .education {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding-block: 22px;
  }
  .home .education > .eyebrow {
    align-self: center;
    font-size: 9px;
    line-height: 1;
  }
  .home .education-school {
    align-items: center;
    gap: 10px;
  }
  .home .education-mark,
  .home .education-mark img {
    width: 32px;
    height: 32px;
  }
  .home .education-mark {
    flex-basis: 32px;
  }
  .home .education-school h3 {
    font-size: 15.5px;
    line-height: 1.18;
  }
  .home .education > span:last-child {
    margin-left: 0;
    white-space: nowrap;
    font-size: 13px;
    line-height: 1;
  }
}

/* A small link from the hero to the first section. */
.home .hero-scroll-cue {
  position: absolute;
  z-index: 3;
  left: max(5%, calc((100% - 1180px) / 2));
  bottom: 24px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  color: #637181;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .08em;
  text-transform: uppercase;
  transition: color .2s ease;
}
.home .hero-scroll-cue svg {
  width: 15px;
  height: 15px;
  color: var(--blue);
  animation: hero-scroll-nudge 2.5s ease-in-out infinite;
}
.home .hero-scroll-cue:hover,
.home .hero-scroll-cue:focus-visible { color: var(--blue); }
.home .hero-scroll-cue:focus-visible {
  outline: 3px solid #0071e366;
  outline-offset: 5px;
}
@keyframes hero-scroll-nudge {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(3px); }
}
@media (max-width:700px) {
  .home .hero-scroll-cue {
    position: relative;
    grid-column: 1;
    justify-self: center;
    left: auto;
    bottom: auto;
    margin-top: -12px;
  }
}
@media (max-width:500px) {
  .home .intro { gap: 22px; padding-top: 14px; padding-bottom: 32px; }
  .home .portrait { width: min(225px, 70%); max-width: 225px; }
  .home .hero-scroll-cue { margin-top: -8px; }
}
@media (prefers-reduced-motion:reduce) {
  .home .hero-scroll-cue svg { animation: none; }
}
