:root{
  --bg:#FDFBF7; --bg-alt:#F2EFE9; --ink:#1F1F1F; --muted:#6B6B6B;
  --accent:#346BF1; --accent-ink:#FFFFFF; --tertiary:#FF4641;
  --line:rgba(31,31,31,0.1); --line-strong:rgba(31,31,31,0.2);
  --nav-bg:rgba(253,251,247,0.85);
  --font-head: 'Hanken Grotesk', sans-serif;
  --font-body: 'Inter', sans-serif;
  --font-label: 'JetBrains Mono', monospace;
}
html[data-theme="dark"]{
  --bg:#151515; --bg-alt:#212121; --ink:#FDFBF7; --muted:#9A9A9A;
  --accent:#346BF1; --accent-ink:#FFFFFF; --tertiary:#FF4641;
  --line:rgba(253,251,247,0.1); --line-strong:rgba(253,251,247,0.2);
  --nav-bg:rgba(21,21,21,0.85);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{background:var(--bg); scroll-snap-type:y proximity; scroll-behavior:smooth; overflow-x:hidden;}
body{position:relative;background:var(--bg);color:var(--ink);font-family:var(--font-body);overflow-x:hidden;transition:background-color .4s ease, color .4s ease;}
@media (pointer:fine){ body{cursor:none;} a,button{cursor:none;} }
::selection{background:var(--accent);color:var(--accent-ink);}
a{color:inherit;text-decoration:none;}
svg.icon{fill:currentColor;}
.eyebrow{font-family:var(--font-label);font-weight:500;font-size:0.72rem;letter-spacing:0.18em;text-transform:uppercase;color:var(--muted);}
.eyebrow em{color:var(--accent);font-style:normal;}
h1,h2,h3{font-family:var(--font-head);font-weight:700;line-height:1.0;letter-spacing:-0.02em;}

/* Background grids */
#grid-lines{position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:repeating-linear-gradient(90deg, var(--line) 0 1px, transparent 1px 16.6667%);opacity:0.6;}
#grain{position:fixed;inset:0;z-index:400;pointer-events:none;opacity:0.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}

/* Custom cursor */
#cursor{position:fixed;top:0;left:0;width:9px;height:9px;border-radius:50%;background:#FFFFFF;
  z-index:700;pointer-events:none;transform:translate(-50%,-50%);transition:transform .15s ease-out, width .3s, height .3s, background .3s;
  mix-blend-mode:difference; display:flex; align-items:center; justify-content:center; overflow:hidden;}
#cursor.hoverable{width:64px;height:64px;background:rgba(52,107,241,0.15); border:1px solid var(--accent); mix-blend-mode:normal; backdrop-filter: blur(2px);}
#cursor-text{position:fixed;top:0;left:0;transform:translate(-50%,-50%);z-index:701;pointer-events:none;color:var(--ink);font-family:var(--font-label);font-size:0.65rem;font-weight:600;letter-spacing:0.1em;text-transform:uppercase;opacity:0;transition:opacity .3s;mix-blend-mode:normal;}
#cursor.hoverable + #cursor-text.show{opacity:1;}
@media (pointer:coarse){ #cursor, #cursor-text{display:none;} body{cursor:auto;} }

/* Curtain loading */
#curtain{position:fixed;inset:0;background:var(--bg);z-index:9999;display:flex;align-items:center;justify-content:center;transition:transform 1s cubic-bezier(.76,0,.24,1);}
#curtain span{font-family:var(--font-label);font-weight:500;font-size:0.75rem;letter-spacing:0.2em;color:var(--muted);text-transform:uppercase;}
#curtain span::after{content:'';display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-left:8px;animation:blink 1s infinite steps(1);}
@keyframes blink{50%{opacity:0;}}
#curtain.gone{transform:translateY(-100%);}

/* Navigation */
nav{position:fixed;top:0;left:0;width:100%;display:flex;justify-content:space-between;align-items:center;
  padding:1.4rem clamp(1.5rem,5vw,4rem);z-index:500;background:var(--nav-bg);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);}
nav .name{font-family:var(--font-head);font-weight:600;font-size:0.85rem;letter-spacing:0.04em;color:var(--ink);}
#hamburger{width:34px;height:22px;position:relative;background:none;border:none;padding:0;z-index:900;}
#hamburger span{position:absolute;left:0;width:100%;height:2px;background:var(--ink);transition:transform .4s cubic-bezier(.16,1,.3,1), opacity .3s, top .4s;}
#hamburger span:nth-child(1){top:0;}
#hamburger span:nth-child(2){top:10px;}
#hamburger span:nth-child(3){top:20px;}
#hamburger.open span:nth-child(1){top:10px;transform:rotate(45deg);}
#hamburger.open span:nth-child(2){opacity:0;}
#hamburger.open span:nth-child(3){top:10px;transform:rotate(-45deg);}
#backdrop{position:fixed;inset:0;background:rgba(10,15,8,0.55);backdrop-filter:blur(3px);z-index:800;opacity:0;pointer-events:none;transition:opacity .5s ease;}
#backdrop.open{opacity:1;pointer-events:auto;}

/* Sidebar */
#sidebar{position:fixed;top:0;right:0;height:100%;width:min(400px,88vw);background:var(--bg-alt);
  border-left:1px solid var(--line-strong);z-index:850;transform:translateX(100%);overflow-y:auto;
  transition:transform .55s cubic-bezier(.16,1,.3,1);padding:2.4rem 2.2rem;display:flex;flex-direction:column;}
#sidebar.open{transform:translateX(0);}
#sidebar .close{align-self:flex-end;flex-shrink:0;background:none;border:none;color:var(--ink);font-size:1rem;font-family:var(--font-head);letter-spacing:0.1em;text-transform:uppercase;padding:0.4rem;}
.avatar{width:96px;height:96px;min-height:96px;flex-shrink:0;border-radius:50%;background:var(--accent);color:var(--accent-ink);overflow:hidden;
  display:flex;align-items:center;justify-content:center;font-size:1.8rem;font-weight:700;margin:1.6rem 0 1.2rem;}
.avatar img{width:100%;height:100%;object-fit:cover;display:block;}
#sidebar h3{font-size:1.6rem;font-weight:700;flex-shrink:0;}
#sidebar .role{margin-top:0.3rem;color:var(--muted);font-size:0.9rem;}
#sidebar .email{margin-top:0.9rem;font-size:0.85rem;color:var(--accent);border-bottom:1px solid var(--line-strong);padding-bottom:0.9rem;display:inline-block;}
#sidebar .menu-links{list-style:none;margin-top:2rem;display:flex;flex-direction:column;gap:0.2rem;}
#sidebar .menu-links a{font-size:1.4rem;font-weight:600;padding:0.6rem 0;border-bottom:1px solid var(--line);transition:color .3s, padding-left .3s;display:block;}
#sidebar .menu-links a:hover{color:var(--accent);padding-left:0.4rem;}
#sidebar .socials{margin-top:auto;display:flex;gap:0.8rem;padding-top:1.6rem;}
#sidebar .socials a{width:42px;height:42px;border-radius:50%;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;font-size:0.68rem;font-weight:600;letter-spacing:0.02em;transition:background .3s, color .3s;}
#sidebar .socials a:hover{background:var(--accent);color:var(--accent-ink);}

/* Global Sections */
section{position:relative;z-index:2;padding:clamp(5rem,10vw,8rem) clamp(1.5rem,5vw,4rem);max-width:1400px;margin:0 auto;}
.section-head{margin-bottom:2.5rem;}
.section-head h2{font-size:clamp(2rem,4vw,3.2rem);margin-top:0.5rem;text-transform:uppercase;max-width:800px;line-height:1.1;}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1);}
.reveal.in{opacity:1;transform:translateY(0);}

/* Hero */
#hero{min-height:100svh;scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;padding-top:8rem;max-width:none;background:var(--bg);overflow:hidden;}
#hero .eyebrow{color:var(--muted);}
#hero .eyebrow em{color:var(--accent);margin:0 0.4rem;}
#hero-canvas{position:absolute;inset:0;z-index:0;opacity:0.8;}
.hero-inner{position:relative;z-index:2;max-width:1400px;margin:0 auto;width:100%;padding:0 clamp(1.5rem,5vw,4rem);}
.hero-top{margin-bottom:1.6rem;}
h1.headline{font-size:clamp(3.4rem,11vw,9rem);text-transform:uppercase;color:var(--ink);letter-spacing:-0.03em;}
h1.headline .word{overflow:hidden;display:block;}
h1.headline .word span{display:inline-block;transform:translateY(110%);transition:transform 1s cubic-bezier(.16,1,.3,1);}
h1.headline.in .word span{transform:translateY(0);}
h1.headline .word:nth-child(2) span{transition-delay:.08s;}
.hero-stack{position:relative;}

/* Updated Hero Photo - Larger */
.hero-photo{position:absolute;z-index:2;left:45%;top:50%;transform:translate(-50%, -50%) translateY(16px);
  width:clamp(250px,32vw,480px);pointer-events:none;opacity:0;
  transition:opacity 1.1s ease .3s, transform 1.1s cubic-bezier(.16,1,.3,1) .3s;}
.hero-photo.in{opacity:1;transform:translate(-50%, -50%) translateY(0);}
.hero-photo.right-aligned{left:auto;right:calc(-1 * (max(0px, (100vw - 1400px) / 2) + clamp(1.5rem, 5vw, 4rem)));transform:translateY(-50%) translateY(16px);}
.hero-photo.right-aligned.in{transform:translateY(-50%) translateY(0);}
.hero-photo img{width:100%;height:auto;display:block;filter:contrast(1.06) saturate(0.95);
  -webkit-mask-image:linear-gradient(to bottom, black 70%, transparent 100%);
  mask-image:linear-gradient(to bottom, black 70%, transparent 100%);}

@media(max-width:900px){
  .hero-stack{display:flex;flex-direction:column;}
  .hero-photo, .hero-photo.right-aligned{position:static;transform:translateY(12px);margin:1.5rem auto 0;width:min(320px,85vw);left:auto;right:auto;order:1;}
  .hero-photo.in, .hero-photo.right-aligned.in{transform:translateY(0);}
  h1.headline{font-size:clamp(2.5rem,12vw,4.5rem); letter-spacing:-0.04em; order:2;}
  #hero { padding-top: 6rem; min-height: 85svh; }
}

.hero-tagline{max-width:680px;margin:3rem 0 0;font-family:var(--font-head);font-weight:600;font-size:clamp(1.2rem,2.2vw,1.8rem);line-height:1.3;color:var(--muted);}

/* Hero Metrics */
.hero-below{margin-top:2.5rem;}
.hero-metrics{display:flex;gap:3rem;flex-wrap:wrap;}
.metric{display:flex;flex-direction:column;gap:0.2rem;}
.metric .num{font-size:2rem;font-weight:700;font-family:var(--font-head);color:var(--ink);}
.metric .label{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.08em;color:var(--muted);font-weight:600;}

.hero-meta{margin-top:4rem;display:flex;justify-content:space-between;align-items:flex-end;border-top:1px solid var(--line-strong);padding-top:1.3rem;}
.scroll-cue{font-family:var(--font-label);font-size:0.7rem;letter-spacing:0.12em;color:var(--muted);text-transform:uppercase;display:flex;align-items:center;gap:.6rem;}
.scroll-cue .bar{width:1px;height:26px;background:var(--line-strong);position:relative;overflow:hidden;}
.scroll-cue .bar::after{content:'';position:absolute;top:-100%;left:0;width:100%;height:100%;background:var(--accent);animation:cue 1.8s ease-in-out infinite;}
@keyframes cue{0%{top:-100%;}50%{top:0;}100%{top:100%;}}

/* Marquee */
#marquee{scroll-snap-align:start;display:flex;flex-direction:column;justify-content:center;gap:1.5rem;border-bottom:1px solid var(--line-strong);overflow:hidden;max-width:none;padding:2.5rem 0;background:var(--bg-alt);border-top:1px solid var(--line-strong);}
.marquee-row{display:flex;white-space:nowrap;width:max-content;animation:scrollL 30s linear infinite;}
.marquee-row.reverse{animation-direction:reverse;}
.marquee-row.tools span{font-family:var(--font-head);font-weight:600;font-size:1.15rem;color:var(--ink);padding:0 2rem;display:flex;align-items:center;gap:0.8rem;text-transform:uppercase;letter-spacing:0.04em;}
.tool-icon{width:24px;height:24px;flex-shrink:0;display:block;}
.marquee-row.tools span::after{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);margin-left:2rem;display:block;}
.marquee-row.tools span:last-child::after{display:none;}
@keyframes scrollL{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* Now Section */
#now{background:var(--bg-alt);}
.now-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 280px), 1fr));gap:2rem;}
.now-item{padding:2rem;border:1px solid var(--line-strong);border-radius:8px;background:var(--bg);}
.now-item h3{font-size:1.4rem;margin-bottom:0.8rem;}
.now-item p{color:var(--muted);font-size:0.95rem;line-height:1.5;margin-bottom:1.5rem;}
.now-tags{display:flex;gap:0.5rem;flex-wrap:wrap;}
.tag{font-size:0.7rem;letter-spacing:0.06em;color:var(--accent);font-weight:600;text-transform:uppercase;padding:0.3rem 0.6rem;background:rgba(52,107,241,0.08);border-radius:4px;}

/* Projects / Client Work (Premium Cards) */
.premium-card{display:flex;flex-direction:column;gap:1.5rem;background:transparent;margin-bottom:6rem;}
.premium-card:last-child{margin-bottom:0;}
.premium-card .img-wrap{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:12px;background:var(--bg-alt);}
.premium-card .img-wrap img{width:100%;height:100%;object-fit:cover;filter:grayscale(0.4) contrast(1.1);transform:scale(1.02);transition:transform 0.8s cubic-bezier(0.16, 1, 0.3, 1), filter 0.8s ease;}
.premium-card:hover .img-wrap img{transform:scale(1.05);filter:grayscale(0) contrast(1.0);}
.premium-card .img-wrap::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 60%);pointer-events:none;}
.premium-card .overlay-text{position:absolute;left:2rem;bottom:2rem;z-index:2;}
.premium-card .overlay-text h3{color:#fff;font-size:clamp(2rem,4vw,3.5rem);margin-top:0.4rem;text-transform:uppercase;letter-spacing:-0.02em;}
.premium-card .overlay-text .tag{background:rgba(255,255,255,0.2);color:#fff;backdrop-filter:blur(4px);}
.premium-card .status-badge{position:absolute;top:1.5rem;right:1.5rem;z-index:2;background:rgba(255,255,255,0.9);color:#000;font-size:0.7rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;padding:0.5rem 1rem;border-radius:20px;}

.premium-card .details{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start;margin-top:1rem;}
.premium-card .desc p{font-size:1.1rem;color:var(--muted);line-height:1.6;max-width:500px;}
.premium-card .meta-cols{display:flex;gap:3rem;}
.meta-col{display:flex;flex-direction:column;gap:0.4rem;}
.meta-label{font-size:0.7rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);font-weight:600;}
.meta-val{font-size:0.95rem;font-weight:500;color:var(--ink);}
.btn-col{margin-left:auto;}
.view-project-btn{display:inline-flex;align-items:center;padding:0.8rem 1.6rem;background:var(--ink);color:var(--bg);font-weight:600;font-size:0.85rem;border-radius:6px;transition:background 0.3s, transform 0.3s;}
.view-project-btn:hover{background:var(--accent);transform:translateY(-2px);}
@media(max-width:900px){
  .premium-card .details{grid-template-columns:1fr;gap:2rem;}
  .premium-card .meta-cols{flex-wrap:wrap;gap:2rem;}
  .btn-col{margin-left:0;width:100%;}
}

/* Sticky Timeline */
#journey{background:var(--bg-alt); max-width:none; padding-left:0; padding-right:0;}
#journey > * { max-width:1400px; margin:0 auto; padding-left:clamp(1.5rem,5vw,4rem); padding-right:clamp(1.5rem,5vw,4rem); }
#journey > .timeline-container { max-width:1400px; padding-left:clamp(1.5rem,5vw,4rem); padding-right:clamp(1.5rem,5vw,4rem); }
.timeline-container{display:grid;grid-template-columns:140px 1fr;gap:4rem;align-items:start;}
.timeline-dates{
  position:sticky;
  top:120px;
  display:flex;
  flex-direction:column;
  gap:1.5rem;
  height:max-content;
  border-right:2px solid var(--line-strong);
  padding-right:2rem;
  align-self:start;
}
.date-item{font-family:var(--font-head);font-size:1.8rem;font-weight:700;color:var(--line-strong);cursor:pointer;transition:color 0.3s, transform 0.3s;text-align:right;line-height:1;}
.date-item.active{color:var(--accent);transform:translateX(10px);}
.timeline-content{display:flex;flex-direction:column;gap:6rem;padding-bottom:10vh;}
.timeline-beat h3{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:1rem;color:var(--ink);}
.timeline-beat p{font-size:1.1rem;line-height:1.6;color:var(--muted);max-width:600px;}
@media(max-width:768px){
  .timeline-container{grid-template-columns:1fr;gap:2rem;width:100%;min-width:0;}
  .timeline-dates{position:sticky;top:60px;z-index:20;background:var(--bg-alt);flex-direction:row;overflow-x:auto;border-right:none;border-bottom:2px solid var(--line-strong);padding:1rem 0;margin-top:-1rem;gap:2rem;max-width:100%;}
  .date-item.active{transform:translateY(-5px) !important;}
}

/* About & Skills */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;}
.about-col h2{font-size:clamp(2rem,4vw,3.2rem);margin:0.5rem 0 1.5rem;text-transform:uppercase;}
.about-col p{font-size:1.05rem;line-height:1.6;color:var(--muted);margin-bottom:1.2rem;max-width:540px;}
.about-col .large-text{font-size:1.4rem;color:var(--ink);font-weight:400;margin-bottom:2rem;}
.about-col strong{color:var(--accent);font-weight:600;}

.skills-col{padding-top:1rem;}
.skill-category h4{font-size:0.8rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem;margin-top:0.5rem;}
.skills-list{display:flex;flex-wrap:wrap;gap:0.8rem;margin-top:0.5rem;}
.skill-tag{font-size:0.9rem;font-weight:500;padding:0.7rem 1.2rem;border:1px solid var(--line-strong);border-radius:30px;color:var(--ink);transition:border-color 0.3s, background 0.3s;}
.skill-tag:hover{border-color:var(--accent);background:var(--accent);color:var(--accent-ink);}
@media(max-width:900px){.about-grid{grid-template-columns:1fr;gap:3rem;}}

/* Social Proof */
#social-proof{background:var(--bg-alt);}
.proof-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(min(100%, 220px), 1fr));gap:2rem;}
.proof-card{padding:2.5rem;background:var(--bg);border-radius:8px;border:1px solid var(--line-strong);display:flex;flex-direction:column;align-items:center;text-align:center;gap:1rem;transition:transform 0.3s;}
.proof-card:hover{transform:translateY(-5px);}
.proof-icon{color:var(--ink);}
.proof-num{font-size:3rem;font-weight:700;font-family:var(--font-head);color:var(--ink);line-height:1;}
.proof-label{font-size:0.85rem;text-transform:uppercase;letter-spacing:0.1em;color:var(--muted);font-weight:600;}

/* Drafts */
.drafts-list{display:flex;flex-direction:column;border-top:1px solid var(--line-strong);}
.draft-item{display:grid;grid-template-columns:80px 1fr 40px;align-items:center;padding:2rem 0;border-bottom:1px solid var(--line-strong);transition:background 0.3s, padding-left 0.3s, padding-right 0.3s;}
.draft-date{font-family:var(--font-label);font-size:0.85rem;color:var(--muted);}
.draft-title{font-size:clamp(1.4rem,2.5vw,2rem);color:var(--ink);font-weight:600;}
.draft-arrow{font-size:1.5rem;color:var(--accent);opacity:0;transform:translateX(-10px);transition:opacity 0.3s, transform 0.3s;}
.draft-item:hover{background:var(--bg-alt);padding-left:1.5rem;padding-right:1.5rem;}
.draft-item:hover .draft-arrow{opacity:1;transform:translateX(0);}
@media(max-width:600px){
  .draft-item{
    display:grid;
    grid-template-columns:1fr 32px;
    grid-template-rows:auto auto;
    gap:0 0.5rem;
    padding:1.2rem 0;
    align-items:center;
  }
  .draft-date{
    grid-column:1;
    grid-row:1;
    font-size:0.72rem;
    margin-bottom:0.2rem;
    color:var(--muted);
  }
  .draft-title{
    grid-column:1;
    grid-row:2;
    font-size:clamp(1rem,5vw,1.25rem);
    word-break:break-word;
    line-height:1.3;
    margin:0;
  }
  .draft-arrow{
    grid-column:2;
    grid-row:1 / 3;
    font-size:1.1rem;
    align-self:center;
  }
  .draft-item:hover{padding-left:0.8rem;padding-right:0.8rem;}
}

/* Contact */
#contact{min-height:70svh;display:flex;flex-direction:column;justify-content:center;text-align:center;align-items:center;}
.contact-heading{font-size:clamp(1.8rem,4vw,3.5rem);text-transform:none;letter-spacing:-0.02em;margin-top:1.5rem;color:var(--muted);max-width:900px;}
.contact-heading.highlight{color:var(--ink);margin-top:2rem;}
.contact-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:3.5rem;justify-content:center;}
.contact-btn{padding:1rem 2rem;border-radius:30px;font-weight:600;font-size:1rem;letter-spacing:0.02em;transition:transform 0.3s, background 0.3s, color 0.3s;}
.contact-btn.primary{background:var(--accent);color:var(--accent-ink);}
.contact-btn.primary:hover{background:var(--tertiary);transform:translateY(-2px);}
.contact-btn.outline{background:transparent;color:var(--ink);border:1px solid var(--line-strong);}
.contact-btn.outline:hover{border-color:var(--ink);background:var(--ink);color:var(--bg);transform:translateY(-2px);}

/* back to top */
#backtotop-wrap{display:flex;justify-content:center;padding:2.4rem clamp(1.5rem,5vw,4rem);max-width:1400px;margin:0 auto;}
#backtotop{display:inline-flex;align-items:center;gap:0.6rem;font-size:0.75rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);background:none;border:1px solid var(--line-strong);padding:0.7rem 1.3rem;border-radius:2px;transition:color .3s, border-color .3s, transform .3s;}
#backtotop:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-3px);}
#backtotop .arrow{transition:transform .3s;}
#backtotop:hover .arrow{transform:translateY(-2px);}

/* footer */
footer{position:relative;z-index:2;padding:3.2rem clamp(1.5rem,5vw,4rem) 2.4rem;}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;max-width:1400px;margin:0 auto 3rem;text-align:left;}
.footer-col-title{font-size:0.7rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--muted);margin-bottom:0.9rem;}
.footer-col a, .footer-col span{display:block;font-size:0.9rem;margin-bottom:0.55rem;color:var(--ink);opacity:0.85;transition:opacity .3s, color .3s;}
.footer-col a:hover{opacity:1;color:var(--accent);}
@media(max-width:700px){.footer-cols{grid-template-columns:1fr 1fr;}}
@media(max-width:480px){.footer-cols{grid-template-columns:1fr;gap:1.6rem;}}
footer .wordmark{text-align:center;font-size:clamp(1.8rem,5vw,3rem);font-weight:700;text-transform:uppercase;letter-spacing:-0.01em;}
footer .footer-year{text-align:center;margin-top:0.6rem;font-size:0.68rem;color:var(--muted);letter-spacing:0.1em;}

/* Nav bits */
.nav-right{display:flex;align-items:center;gap:1.4rem;}
.nav-links{list-style:none;display:none;gap:2.1rem;align-items:center;}
.nav-links a{font-size:0.82rem;font-weight:500;letter-spacing:0.02em;color:var(--ink);opacity:0.78;transition:opacity .3s, color .3s;}
.nav-links a:hover{opacity:1;color:var(--accent);}
.nav-cta{display:none;font-size:0.78rem;font-weight:600;letter-spacing:0.02em;color:var(--ink);border:1px solid var(--line-strong);
  padding:0.55rem 1.1rem;border-radius:6px;white-space:nowrap;transition:background .3s,color .3s,border-color .3s;}
.nav-cta:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);}
#hamburger{display:inline-block;}
@media(min-width:900px){
  .nav-links{display:flex;}
  .nav-cta{display:inline-flex;align-items:center;}
  #hamburger{display:none;}
}
.section-counter{font-size:0.72rem;font-weight:600;letter-spacing:0.08em;color:var(--muted);}
@media(max-width:480px){.section-counter{display:none;}}

.theme-toggle{width:44px;height:24px;border-radius:6px;background:var(--line);border:1px solid var(--line-strong);position:relative;padding:0;flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding:0 5px;}
.theme-toggle .icon-sun, .theme-toggle .icon-moon{color:var(--muted);z-index:1;transition:opacity .3s;}
html[data-theme="light"] .theme-toggle .icon-moon{opacity:0.3;}
html[data-theme="light"] .theme-toggle .icon-sun{opacity:1;}
html[data-theme="dark"] .theme-toggle .icon-sun{opacity:0.3;}
html[data-theme="dark"] .theme-toggle .icon-moon{opacity:1;}
.theme-toggle-dot{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--accent);transition:transform .4s cubic-bezier(.16,1,.3,1);z-index:2;}
html[data-theme="light"] .theme-toggle-dot{transform:translateX(20px);}

@media (prefers-reduced-motion: reduce){*{transition-duration:0.01ms !important; animation-duration:0.01ms !important;}}
