:root{
  --bg:#000;
  --fg:#fff;
  --muted:rgba(255,255,255,.68);
  --muted2:rgba(255,255,255,.45);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--fg);
  font-family: ui-serif, Georgia, "Times New Roman", Times, serif;
}

/* Top nav: clean, no box */
.topbar{
  position:fixed;
  inset:0 0 auto 0;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 22px;
  z-index:30;
  background:#000;
}
.brand{
  color:var(--fg);
  text-decoration:none;
  font-weight:600;
  letter-spacing:.02em;
}
.nav a{
  color:var(--fg);
  text-decoration:none;
  margin-left:18px;
  font-size:14px;
  opacity:.85;
}
.nav a:hover{opacity:1}

/* HERO */
.hero{
  position:relative;
  height:100vh;
  overflow:hidden;
  background:#000;
}
#heroCanvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
.hero-overlay{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-left: clamp(24px, 6vw, 96px);
  padding-right: clamp(24px, 4vw, 56px);
  max-width: 48vw; /* keep text on left */
}
.hero-kicker{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:14px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--muted);
  margin-bottom:14px;
}
.hero-title{
  margin:0;
  font-size: clamp(36px, 5vw, 72px);
  letter-spacing:-.02em;
  line-height:1.0;
}
.hero-tagline{
  margin:14px 0 0 0;
  font-size:18px;
  color:rgba(255,255,255,.92);
  max-width: 52ch;
  min-height: 1.6em;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
}
.caret{
  display:inline-block;
  width:.6ch;
  height:1.1em;
  border-right:1px solid rgba(255,255,255,.6);
  margin-left:2px;
  transform:translateY(2px);
  animation:blink 1.1s steps(2,start) infinite;
}
@keyframes blink{to{opacity:0}}

.scrollhint{
  position:absolute;
  left: clamp(24px, 6vw, 96px);
  bottom: 28px;
  background:transparent;
  border:0;
  color:var(--muted);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  cursor:pointer;
  padding:0;
}
.scrollhint:hover{color:#fff}

/* SECTION LAYOUT like the reference: text columns, no boxes */
.section{
  padding: 44px clamp(24px, 6vw, 96px);
}
.grid3{
  display:grid;
  grid-template-columns: 1.2fr 1fr 1fr;
  gap: clamp(18px, 3vw, 48px);
  align-items:start;
}
.hlabel{
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:14px;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#fff;
  margin:0 0 10px 0;
}
.p{
  margin:0;
  color:var(--muted);
  line-height:1.7;
  font-size:16px;
}

/* Expandable duties (clean, no box) */
details{
  margin-top:14px;
}
summary{
  cursor:pointer;
  list-style:none;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:14px;
  color:#fff;
  opacity:.9;
}
summary::-webkit-details-marker{display:none}
.details-body{
  margin-top:10px;
  color:var(--muted);
  line-height:1.7;
  font-size:15px;
}

/* Horizontal scroller (Projects + Maps) */
.scroller{
  margin-top: 10px;
  overflow-x: auto;
  overflow-y: hidden;
  white-space: nowrap;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 14px; /* space for scrollbar */
}

/* --- Custom Horizontal Scrollbar --- */

/* Chrome, Edge, Safari */
.scroller::-webkit-scrollbar{
  height: 6px;
}

.scroller::-webkit-scrollbar-track{
  background: rgba(255,255,255,0.06);
  border-radius: 10px;
}

.scroller::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,0.35);
  border-radius: 10px;
  transition: background 0.3s ease;
}

.scroller::-webkit-scrollbar-thumb:hover{
  background: rgba(255,255,255,0.6);
}

/* Firefox */
.scroller{
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,0.35) rgba(255,255,255,0.06);
}

.item{
  display:inline-block;
  vertical-align:top;
  width: 280px;
  margin-right: 18px;
  scroll-snap-align:start;
  text-decoration:none;
  color:#fff;
}
.thumb{
  width:100%;
  aspect-ratio: 1 / 1;
  background:#0a0a0a;
  display:block;
}


.caption{
  margin-top:10px;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:13px;
  color:#fff;
  opacity:.9;
}
.meta{
  margin-top:4px;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  font-size:12px;
  color:var(--muted2);
}


.footer{
  padding: 30px clamp(24px, 6vw, 96px);
  background:#000;
}

.footer-line{
  height: 1.5px;
  width: 100%;
  background: rgba(255,255,255,0.18);
  margin-bottom: 20px;
}

.footer-icons{
  display:flex;
  justify-content:flex-end; /* icons on right like your ref */
  align-items:center;
  gap: 20px;
}

.fi{
  color: rgba(255,255,255,0.75);
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

.fi svg{
  width: 30px;
  height: 30px;
  display:block;
}

.fi:hover{
  color:#fff;
}


/* small */
@media (max-width: 900px){
  .hero-overlay{max-width: 92vw;}
  .grid3{grid-template-columns: 1fr; gap: 22px;}
}

/* ============================= */
/* About Section */
/* ============================= */

#about-text{
  font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:#fff;
}

/* grid layout */
#about-text .grid3{
  gap:72px;
}

/* section labels (ABOUT / SCALE / SYSTEMS / RECOGNITION) */
#about-text .hlabel{
  font-size:16px;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  margin:0 0 16px;
  color:#fff;
}

/* main title */
#about-text .aboutTitle{
  margin:0 0 18px;
  font-size:clamp(1.7rem,2.8vw,2.5rem);
  line-height:1.08;
  font-weight:600;
  letter-spacing:-0.03em;
}

/* subheaders like "Where I analyze cities" */
#about-text .sectionSubhead{
  margin:0 0 8px;
  font-size:15px;
  font-weight:500;
  
  color:rgba(255,255,255,0.62);
}

/* full width about block */
#about-text .aboutFull{
  width:100%;
  max-width:none;
  margin-bottom:50px;
}

/* about paragraphs */
#about-text .aboutFull .p{
  max-width:1100px;
  width:100%;
  font-size:15px;
  line-height:1.65;
  margin:0 0 15px;
  color:rgba(255,255,255,0.82);
  text-align:justify;
}

/* paragraphs inside the 3 columns */
#about-text .scaleSystemRecognition .p{
  font-size:15px;
  line-height:1.65;
  margin:0 0 26px;
  color:rgba(255,255,255,0.78);
  text-align:justify;
}

/* project titles inside paragraphs */
#about-text .scaleSystemRecognition .p strong{
  display:block;
  margin-bottom:4px;
  color:#fff;
  font-weight:600;
}

/* links (Download CV) */
#about-text .link{
  color:#fff;
  text-decoration:none;
}

#about-text .link:hover{
  text-decoration:underline;
}