*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --lime:#c9ff47;--lime-dim:#8aaa30;
  --bg:#080808;--bg2:#0d0d0d;--bg3:#111;
  --border:#1a1a1a;--border2:#242424;
  --text:#f0ede6;--muted:#6a6a6a;--muted2:#333;
  --fd:'Bebas Neue',sans-serif;
  --fm:'DM Mono',monospace;
  --fb:'Outfit',sans-serif;
  --header-h:72px;
}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--text);font-family:var(--fb);-webkit-font-smoothing:antialiased;cursor:none;overflow-x:hidden;}
::selection{background:var(--lime);color:#000;}

/* ── CURSOR ── */
#cursor{position:fixed;top:0;left:0;width:10px;height:10px;background:var(--lime);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .25s,height .25s,background .25s,border-radius .25s;mix-blend-mode:difference;}
#cursor.expand{width:48px;height:48px;background:rgba(201,255,71,.12);border:1px solid var(--lime);}
@media(pointer:coarse){body{cursor:auto;}#cursor{display:none;}}

.noise{position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");opacity:.04;pointer-events:none;z-index:9998;}

::-webkit-scrollbar{width:2px;}
::-webkit-scrollbar-thumb{background:var(--lime-dim);}

/* ── HEADER ── */
.hero-header{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:space-between;padding:24px 56px;opacity:0;transition:background .4s,border-color .4s,padding .4s;border-bottom:1px solid transparent;}
.hero-header.scrolled{background:rgba(8,8,8,.95);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:var(--border);padding:16px 56px;}
.hero-header-logo{font-family:var(--fd);font-size:22px;letter-spacing:.12em;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:6px;}
.hero-header-logo .da{width:7px;height:7px;border-radius:50%;background:var(--lime);margin-bottom:2px;}
.hero-header-links{display:flex;gap:36px;list-style:none;align-items:center;}
.hero-header-links a{font-family:var(--fm);font-size:11px;color:rgba(255,255,255,.4);text-decoration:none;letter-spacing:.14em;text-transform:uppercase;transition:color .2s;position:relative;}
.hero-header-links a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--lime);transition:width .3s;}
.hero-header-links a:hover{color:var(--lime);}
.hero-header-links a:hover::after{width:100%;}
.hero-header-links a.active{color:var(--lime);}
.hero-header-links a.active::after{width:100%;}
.hero-hire{font-family:var(--fm);font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:9px 20px;background:var(--lime);color:#000;text-decoration:none;font-weight:500;transition:background .2s;clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,0 100%);}
.hero-hire:hover{background:#fff;}

/* ── HERO ── */
.hero{min-height:100dvh;display:grid;grid-template-rows:1fr auto;padding:0 56px;border-bottom:1px solid var(--border);position:relative;overflow:hidden;}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:64px 64px;opacity:.4;mask-image:radial-gradient(ellipse 80% 80% at 50% 50%,black 30%,transparent 100%);}
.hero-glow{position:absolute;top:-200px;right:-200px;width:700px;height:700px;background:radial-gradient(circle,rgba(201,255,71,.07) 0%,transparent 70%);pointer-events:none;}

/* ── HERO MAIN (two-column layout) ── */
.hero-main{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:48px;
  align-items:center;
  padding-top:var(--header-h);
  padding-bottom:24px;
  position:relative;
  z-index:1;
  min-height:calc(100dvh - 100px);
}

/* ── HERO CONTENT (left) ── */
.hero-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-bottom:32px;
  padding-top:40px;
}
.hero-tag{font-family:var(--fm);font-size:11px;color:var(--lime);letter-spacing:.2em;text-transform:uppercase;margin-bottom:28px;display:flex;align-items:center;gap:14px;opacity:0;transform:translateY(16px);}
.hero-tag::before{content:'';width:36px;height:1px;background:var(--lime);}
.hero-name{font-family:var(--fd);font-size:clamp(64px,10vw,140px);line-height:.88;letter-spacing:.02em;color:var(--text);opacity:0;transform:translateY(24px);}
.hero-name .ghost-line{display:block;color:transparent;-webkit-text-stroke:1px var(--border2);transition:color .6s,-webkit-text-stroke .6s;}
.hero-name .ghost-line.lit{color:var(--text);-webkit-text-stroke:0px;}
.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;margin-top:40px;opacity:0;transform:translateY(16px);gap:20px;}
.hero-desc{max-width:360px;font-size:14px;color:var(--muted);line-height:1.8;font-weight:300;}
.hero-desc strong{color:var(--text);font-weight:500;}
.hero-desc .lime{color:var(--lime);}
.hero-status{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0;}
.status-badge{display:flex;align-items:center;gap:8px;background:rgba(201,255,71,.07);border:1px solid rgba(201,255,71,.2);padding:8px 16px;font-family:var(--fm);font-size:11px;color:var(--lime);letter-spacing:.1em;}
.ping{width:6px;height:6px;border-radius:50%;background:var(--lime);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(201,255,71,.5);}50%{box-shadow:0 0 0 6px rgba(201,255,71,0);}}
.scroll-cue{font-family:var(--fm);font-size:10px;color:var(--muted2);letter-spacing:.16em;text-transform:uppercase;display:flex;align-items:center;gap:8px;}
.scroll-cue::after{content:'↓';animation:bob 2s ease infinite;}
@keyframes bob{0%,100%{transform:translateY(0);}50%{transform:translateY(5px);}}

/* ── HERO BAR ── */
.hero-bar{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border);opacity:0;transform:translateY(10px);}
.hbc{padding:20px 0;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:4px;}
.hbc:last-child{border-right:none;padding-left:32px;}
.hbc:nth-child(2){padding-left:32px;}
.hbc-label{font-family:var(--fm);font-size:10px;color:var(--muted2);letter-spacing:.14em;text-transform:uppercase;}
.hbc-value{font-size:13px;color:var(--muted);}

/* ────────────────────────────────────────────
   JOURNEY CAROUSEL (hero right side)
──────────────────────────────────────────── */
.journey-carousel{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:0;
  opacity:0;
  transform:translateY(20px);
  transition:opacity .6s ease, transform .6s ease;
  align-self:center;
}
.journey-carousel.visible{
  opacity:1;
  transform:translateY(0);
}

/* Outer frame */
.carousel-frame{
  position:relative;
  width:100%;
  aspect-ratio:4/5;
  max-height:480px;
  overflow:hidden;
  border:1px solid var(--border2);
  background:var(--bg2);
}

/* Each slide */
.cslide{
  position:absolute;
  inset:0;
  opacity:0;
  transition:opacity .6s ease;
  display:flex;
  flex-direction:column;
}
.cslide.active{
  opacity:1;
}

/* Image wrapper */
.cslide-img-wrap{
  flex:1;
  position:relative;
  overflow:hidden;
}
.cslide-img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform 4s ease;
}
.cslide.active .cslide-img{
  transform:scale(1.04);
}

/* Overlay gradient on image */
.cslide-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(to bottom, transparent 40%, rgba(8,8,8,.85) 100%);
  pointer-events:none;
}

/* Placeholder when image fails to load */
.img-placeholder{
  background:var(--bg3);
  display:flex;
  align-items:center;
  justify-content:center;
}
.img-placeholder::after{
  content:'[ IMG ]';
  font-family:var(--fm);
  font-size:11px;
  color:var(--muted2);
  letter-spacing:.2em;
}

/* Slide info (description below image inside frame) */
.cslide-info{
  position:absolute;
  bottom:0;
  left:0;
  right:0;
  padding:16px 20px 18px;
  display:flex;
  flex-direction:column;
  gap:4px;
  z-index:2;
}
.cslide-num{
  font-family:var(--fm);
  font-size:9px;
  color:var(--lime);
  letter-spacing:.2em;
  opacity:.7;
}
.cslide-desc{
  font-size:12px;
  color:rgba(240,237,230,.75);
  font-weight:300;
  line-height:1.5;
  letter-spacing:.02em;
}

/* Progress bar strip */
.carousel-progress{
  height:2px;
  background:var(--border2);
  position:relative;
  overflow:hidden;
}
.carousel-progress-bar{
  height:100%;
  background:var(--lime);
  width:0%;
  transition:width linear;
}

/* Dots */
.carousel-dots{
  display:flex;
  gap:6px;
  padding:12px 20px 0;
  align-items:center;
}
.cdot{
  width:4px;
  height:4px;
  border-radius:50%;
  background:var(--border2);
  transition:background .3s, transform .3s;
  cursor:pointer;
}
.cdot.active{
  background:var(--lime);
  transform:scale(1.4);
}

/* Label */
.carousel-label{
  position:absolute;
  top:14px;
  right:14px;
  z-index:3;
}
.fm-tag{
  font-family:var(--fm);
  font-size:9px;
  color:var(--lime);
  letter-spacing:.18em;
  background:rgba(8,8,8,.7);
  border:1px solid rgba(201,255,71,.2);
  padding:5px 10px;
  backdrop-filter:blur(6px);
}

/* ── MARQUEE ── */
.marquee-wrap{overflow:hidden;border-bottom:1px solid var(--border);background:var(--bg2);padding:14px 0;}
.marquee-inner{display:flex;animation:mq 30s linear infinite;width:max-content;}
.mq-item{font-family:var(--fd);font-size:15px;letter-spacing:.2em;color:var(--muted2);text-transform:uppercase;padding:0 32px;display:flex;align-items:center;gap:16px;white-space:nowrap;}
.mq-item .sep{width:5px;height:5px;border-radius:50%;background:var(--lime);flex-shrink:0;}
@keyframes mq{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* ── SECTIONS ── */
.section{padding:120px 56px;border-bottom:1px solid var(--border);position:relative;isolation:isolate;}
#about,#skills,#achievements,#projects,#contact{scroll-margin-top:var(--header-h);}
.sec-hdr{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:80px;}
.sec-num{font-family:var(--fm);font-size:11px;color:var(--muted2);letter-spacing:.2em;display:block;margin-bottom:10px;}
.sec-title{font-family:var(--fd);font-size:clamp(42px,6vw,72px);letter-spacing:.04em;color:var(--text);line-height:1;}
.sec-title em{color:var(--lime);font-style:normal;}
.sec-sub{font-size:13px;color:var(--muted);font-family:var(--fm);letter-spacing:.08em;max-width:280px;text-align:right;line-height:1.7;}

/* ── ABOUT ── */
.about-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;align-items:start;}
.about-bio{font-size:17px;color:#777;line-height:1.85;font-weight:300;}
.about-bio strong{color:var(--text);font-weight:500;}
.about-bio .lime{color:var(--lime);}
.acard{background:var(--bg2);border:1px solid var(--border);padding:28px 32px;margin-bottom:1px;position:relative;overflow:hidden;transition:border-color .3s;}
.acard::before{content:'';position:absolute;top:0;left:0;width:3px;height:0;background:var(--lime);transition:height .4s ease;}
.acard:hover{border-color:var(--border2);}
.acard:hover::before{height:100%;}
.acard-label{font-family:var(--fm);font-size:10px;color:var(--muted2);letter-spacing:.18em;text-transform:uppercase;margin-bottom:6px;}
.acard-value{font-size:14px;color:var(--text);font-weight:500;}
.acard-sub{font-size:12px;color:var(--muted);margin-top:3px;}

/* ── SKILLS ── */
.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);}
.sk-block{background:var(--bg);padding:40px 32px;transition:background .3s;position:relative;overflow:hidden;}
.sk-block::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;}
.sk-block:hover{background:var(--bg2);}
.sk-block:hover::after{transform:scaleX(1);}
.sk-num{font-family:var(--fm);font-size:10px;color:var(--muted2);letter-spacing:.18em;margin-bottom:20px;}
.sk-ttl{font-family:var(--fd);font-size:28px;letter-spacing:.06em;color:var(--text);margin-bottom:20px;}
.sk-tags{display:flex;flex-wrap:wrap;gap:6px;}
.sk-tag{font-family:var(--fm);font-size:11px;color:var(--muted);border:1px solid var(--border2);padding:4px 10px;transition:all .2s;cursor:default;}
.sk-tag:hover{border-color:var(--lime);color:var(--lime);}

/* ── ACHIEVEMENTS ── */
.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border);}
.ach-col{background:var(--bg);padding:36px 28px;}
.ach-col-label{font-family:var(--fm);font-size:10px;color:var(--lime);letter-spacing:.2em;text-transform:uppercase;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid var(--border);}
.ach-item{padding:14px 0;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:4px;transition:background .2s;position:relative;}
.ach-item:last-child{border-bottom:none;}
.ach-item::before{content:'';position:absolute;left:-28px;top:0;bottom:0;width:2px;background:var(--lime);transform:scaleY(0);transform-origin:top;transition:transform .3s ease;}
.ach-col:hover .ach-item::before{transform:scaleY(1);}
.ach-name{font-size:13px;color:var(--text);font-weight:500;line-height:1.4;}
.ach-meta{font-family:var(--fm);font-size:11px;color:var(--lime);letter-spacing:.06em;}
.ach-team{font-family:var(--fm);font-size:10px;color:var(--muted);letter-spacing:.06em;margin-top:2px;}

/* ── PROJECTS ── */
.proj-coming{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:320px;border:1px dashed var(--border2);text-align:center;gap:16px;position:relative;overflow:hidden;}
.proj-coming::before{content:'LOADING...';position:absolute;font-family:var(--fd);font-size:120px;color:var(--border);letter-spacing:.1em;pointer-events:none;user-select:none;white-space:nowrap;}
.coming-badge{font-family:var(--fm);font-size:11px;color:var(--lime);letter-spacing:.2em;text-transform:uppercase;background:rgba(201,255,71,.07);border:1px solid rgba(201,255,71,.2);padding:8px 20px;position:relative;z-index:1;}
.coming-title{font-family:var(--fd);font-size:clamp(28px,4vw,48px);letter-spacing:.06em;color:var(--text);position:relative;z-index:1;}
.coming-sub{font-size:14px;color:var(--muted);font-weight:300;position:relative;z-index:1;max-width:400px;line-height:1.7;}
.scan-line{position:absolute;top:0;left:0;right:0;height:1px;background:var(--lime);opacity:.4;animation:scan 3s ease-in-out infinite;}
@keyframes scan{0%{top:0;opacity:.4;}50%{top:100%;opacity:.4;}51%{opacity:0;}100%{top:0;opacity:0;}}

/* ── CONTACT ── */
.contact-big{font-family:var(--fd);font-size:clamp(60px,10vw,120px);letter-spacing:.02em;line-height:.9;color:var(--text);margin-bottom:72px;}
.contact-big .ghost{color:transparent;-webkit-text-stroke:1px var(--border2);display:block;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border);}
.cc{background:var(--bg);padding:36px 40px;display:flex;justify-content:space-between;align-items:center;text-decoration:none;cursor:none;transition:background .25s;position:relative;overflow:hidden;}
.cc::after{content:'';position:absolute;top:0;left:0;width:100%;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .4s ease;}
.cc:hover{background:var(--bg2);}
.cc:hover::after{transform:scaleX(1);}
.cc-type{font-family:var(--fm);font-size:10px;color:var(--muted2);letter-spacing:.18em;text-transform:uppercase;display:block;margin-bottom:8px;}
.cc-value{font-size:14px;color:var(--muted);transition:color .2s;}
.cc:hover .cc-value{color:var(--text);}
.cc-arrow{width:40px;height:40px;border:1px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--muted2);transition:all .3s;flex-shrink:0;}
.cc:hover .cc-arrow{background:var(--lime);color:#000;border-color:var(--lime);transform:rotate(45deg);}
@media(pointer:coarse){.cc{cursor:auto;}}

/* ── FOOTER ── */
footer{padding:28px 56px;display:flex;justify-content:space-between;align-items:center;}
.f-left{font-family:var(--fm);font-size:11px;color:var(--muted2);letter-spacing:.1em;}
.f-right{font-family:var(--fm);font-size:11px;color:var(--muted2);display:flex;align-items:center;gap:8px;}
.ldot{width:5px;height:5px;border-radius:50%;background:var(--lime);}

/* ── REVEAL ── */
.reveal{opacity:0;transform:translateY(32px);}
.no-js .reveal{opacity:1;transform:none;}
.no-js #hHeader,.no-js #hTag,.no-js #hName,.no-js #hBot,.no-js #hBar{opacity:1;transform:none;}

/* ── RESPONSIVE (FULL REWRITE) ── */

@media(max-width:1100px){
  .hero{padding:0 32px;}
  .hero-main{grid-template-columns:1fr 1fr;gap:28px;}
  .hero-name{font-size:clamp(52px,8vw,110px);}
  .hero-desc{font-size:13px;max-width:280px;}
  .carousel-frame{aspect-ratio:3/4;max-height:420px;}
  .section{padding:100px 32px;}
}

@media(max-width:860px){
  :root{--header-h:60px;}
  .hero-header{padding:16px 24px;}
  .hero-header.scrolled{padding:12px 24px;}
  .hero-header-links{display:flex;gap:14px;}
  .hero-header-links a{font-size:9px;letter-spacing:.08em;}
  .hero-hire{display:none;}
  .hero{padding:0 20px;min-height:100dvh;}
  .hero-main{grid-template-columns:1fr;gap:32px;padding-top:calc(var(--header-h) + 16px);padding-bottom:16px;min-height:unset;align-items:start;}
  .hero-content{padding-top:16px;padding-bottom:0;}
  .hero-name{font-size:clamp(60px,14vw,100px);}
  .hero-bottom{flex-direction:column;gap:16px;align-items:flex-start;margin-top:28px;}
  .hero-status{align-items:flex-start;}
  .hero-desc{max-width:100%;font-size:14px;}
  .journey-carousel{max-width:100%;}
  .carousel-frame{aspect-ratio:4/3;max-height:340px;}
  .hero-bar{grid-template-columns:1fr 1fr;}
  .hbc:last-child{grid-column:1/-1;border-right:none;border-top:1px solid var(--border);padding-left:0;padding-top:16px;}
  .hbc:nth-child(2){padding-left:20px;}
  .section{padding:64px 20px;}
  .sec-hdr{flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:48px;}
  .sec-sub{text-align:left;max-width:100%;}
  .about-grid{grid-template-columns:1fr;gap:32px;}
  .skills-grid{grid-template-columns:1fr 1fr;}
  .ach-grid{grid-template-columns:1fr;}
  .contact-grid{grid-template-columns:1fr;}
  footer{padding:20px;flex-direction:column;gap:8px;text-align:center;}
}

@media(max-width:480px){
  :root{--header-h:56px;}
  .hero-header{padding:14px 12px;}
  .hero-header.scrolled{padding:12px 12px;}
  .hero-header-logo{font-size:16px;}
  .hero-header-links{gap:10px;}
  .hero-header-links a{font-size:8px;letter-spacing:.06em;}
  .hero{padding:0 16px;}
  .hero-main{gap:24px;padding-top:calc(var(--header-h) + 12px);}
  .hero-tag{font-size:9px;letter-spacing:.14em;margin-bottom:16px;}
  .hero-tag::before{width:24px;}
  .hero-name{font-size:clamp(54px,18vw,88px);line-height:.86;}
  .hero-bottom{margin-top:20px;gap:14px;}
  .hero-desc{font-size:13px;line-height:1.7;}
  .status-badge{font-size:10px;padding:6px 12px;}
  .scroll-cue{display:none;}
  .hero-main{gap:20px;}
  .carousel-frame{aspect-ratio:3/4;max-height:380px;}
  .cslide-desc{font-size:12px;}
  .cslide-num{font-size:9px;}
  .cslide-info{padding:14px 16px 16px;}
  .carousel-dots{padding:10px 16px 0;gap:6px;}
  .cdot{width:5px;height:5px;}
  .fm-tag{font-size:9px;padding:5px 10px;}
  .hero-bar{grid-template-columns:1fr;}
  .hbc{border-right:none;border-bottom:1px solid var(--border);padding:14px 0;}
  .hbc:last-child{border-bottom:none;padding-left:0;}
  .hbc:nth-child(2){padding-left:0;}
  .hbc-value{font-size:12px;}
  .section{padding:48px 16px;}
  .sec-title{font-size:clamp(36px,11vw,56px);}
  .sec-hdr{margin-bottom:36px;}
  .skills-grid{grid-template-columns:1fr;}
  .about-bio{font-size:15px;}
  .acard{padding:20px 20px;}
  .sk-block{padding:28px 20px;}
  .ach-col{padding:24px 16px;}
  .ach-item::before{left:-16px;}
  .ach-name{font-size:12px;}
  .proj-coming{min-height:220px;}
  .proj-coming::before{font-size:60px;}
  .coming-title{font-size:clamp(22px,7vw,36px);}
  .contact-big{font-size:clamp(44px,14vw,80px);margin-bottom:40px;}
  .cc{padding:24px 20px;}
  .cc-arrow{width:32px;height:32px;font-size:14px;}
  footer{padding:16px;}
  .f-left,.f-right{font-size:10px;}
}