*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
:root{
  --bg:#020b1a;
  --bg2:#060d22;
  --blue:#2255ff;
  --blue-l:#5580ff;
  --blue-dim:rgba(34,85,255,.1);
  --blue-bd:rgba(34,85,255,.28);
  --purple:#7b5fff;
  --white:#f2f4ff;
  --dim:rgba(242,244,255,.74);
  --dimmer:rgba(242,244,255,.44);
  --border:rgba(242,244,255,.1);
  --mono:'Space Mono',monospace;
  --sans:'DM Sans',sans-serif;
  --display:'Syne',sans-serif;
}
body{background:var(--bg);color:var(--white);font-family:var(--sans);overflow-x:hidden;}


/* ── NAV ── */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:26px 52px;mix-blend-mode:difference;}
.nav-logo{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:.04em;color:var(--white);text-decoration:none;}
.nav-logo::before{content:'[ ';font-family:var(--mono);font-weight:400;font-size:14px;opacity:.4;}
.nav-logo::after{content:' ]';font-family:var(--mono);font-weight:400;font-size:14px;opacity:.4;}
.nav-links{display:flex;gap:36px;list-style:none;}
.nav-links a{font-family:var(--mono);font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--white);text-decoration:none;opacity:.55;transition:opacity .2s;}
.nav-links a:hover{opacity:1;}

/* ── HERO ── */
#hero{position:relative;height:100vh;overflow:hidden;display:grid;grid-template-columns:1fr 240px;grid-template-rows:1fr auto;}
#hero-canvas{position:absolute;inset:0;width:100%;height:100%;}
#shape-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;opacity:.9;}

.hero-left{grid-column:1;grid-row:1;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 52px 56px;}
.hero-info{grid-column:2;grid-row:1;position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;padding:120px 40px 56px 32px;border-left:1px solid var(--border);gap:28px;}

/* ── HERO ENTRANCE ── */
@keyframes hero-in{from{opacity:0;transform:translateY(28px);}to{opacity:1;transform:none;}}
.hero-name     {animation:hero-in 1s  cubic-bezier(.16,1,.3,1) .25s both;}
.hero-statement{animation:hero-in .9s cubic-bezier(.16,1,.3,1) .6s  both;}
.hero-info     {animation:hero-in .8s cubic-bezier(.16,1,.3,1) .45s both;}
.hero-bottom   {animation:hero-in .7s ease                     .85s both;}

.hi-item{display:flex;flex-direction:column;gap:6px;}
.hi-label{font-family:var(--mono);font-size:8px;letter-spacing:.28em;text-transform:uppercase;color:var(--dimmer);}
.hi-val{font-family:var(--sans);font-size:13px;font-weight:400;color:rgba(242,244,255,.78);line-height:1.55;}
.hi-val.avail{display:flex;align-items:center;gap:7px;}
.hi-cta{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--white);text-decoration:none;padding:11px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);transition:color .2s,border-color .2s;margin-top:8px;}
.hi-cta:hover{color:var(--blue-l);border-color:var(--blue-bd);}

/* ── HERO STATEMENT — depth-of-field title ── */
.hero-statement{margin-bottom:0;}
.hs-lines{display:flex;flex-direction:column;gap:0;margin-bottom:22px;}
.hs-line{
  display:block;
  font-family:var(--display);
  font-size:clamp(58px,9vw,132px);
  font-weight:800;
  letter-spacing:-.04em;
  line-height:1.0;
  color:var(--white);
  user-select:none;
  -webkit-user-select:none;
}
.l1{ opacity:1; }
.l2{ opacity:1; }
.l3{
  opacity:1;
  text-shadow:0 0 40px rgba(170,200,255,.35),0 0 80px rgba(100,140,255,.18);
}
.hs-sub{
  font-size:15px;font-weight:300;line-height:1.78;
  color:rgba(242,244,255,.72);
  max-width:420px;
}

/* ── MOBU NAME — animated gradient fill ── */
@keyframes name-gradient{
  0%,100%{background-position:0% 50%;}
  50%     {background-position:100% 50%;}
}
.hero-name{
  font-family:var(--display);
  font-size:clamp(120px,18vw,280px);
  font-weight:800;letter-spacing:-.03em;line-height:.88;
  margin-bottom:32px;user-select:none;
  /* Gradient fill — white to blue to purple */
  background:linear-gradient(110deg,#ffffff 0%,#c8d8ff 25%,#7b98ff 55%,#7b5fff 80%,#5232cc 100%);
  background-size:220% 220%;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:name-gradient 10s ease-in-out infinite,hero-in 1s cubic-bezier(.16,1,.3,1) .3s both;
}
.hc{display:inline-block;transition:filter .35s ease,opacity .35s ease;will-change:filter,opacity;}
.hero-bottom{grid-column:1/-1;grid-row:2;position:relative;z-index:2;display:flex;align-items:center;gap:20px;padding:16px 52px;border-top:1px solid var(--border);}
.hb-status{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.hb-txt{font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer);white-space:nowrap;}
.hb-rule{flex:1;height:1px;background:linear-gradient(90deg,rgba(85,128,255,.15),rgba(123,95,255,.1),rgba(85,128,255,.15));}
.hb-scroll{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--dimmer);text-decoration:none;white-space:nowrap;animation:blink 3s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:.2}50%{opacity:.65}}

/* ── MARQUEE ── */
.mq-wrap{overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:13px 0;}
.mq-inner{display:flex;width:max-content;animation:mq 26s linear infinite;}
.mq-item{font-family:var(--mono);font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:var(--dimmer);white-space:nowrap;padding:0 22px;}
.mq-sep{font-family:var(--mono);font-size:7px;color:rgba(85,128,255,.35);padding:0 4px;}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ── SECTIONS ── */
section{padding:100px 52px;}

/* Section header with giant ghost number */
.sec-hd{position:relative;margin-bottom:60px;overflow:hidden;}
.sec-hd::after{
  content:attr(data-num);
  position:absolute;right:-0.08em;top:-0.3em;
  font-family:var(--display);font-size:clamp(90px,16vw,210px);
  font-weight:800;letter-spacing:-.04em;
  color:rgba(242,244,255,.022);
  line-height:1;pointer-events:none;user-select:none;
}
.sec-meta{display:flex;align-items:center;gap:16px;margin-bottom:12px;}
.sec-num{
  font-family:var(--mono);font-size:9px;letter-spacing:.32em;color:var(--dimmer);
  padding:3px 8px;background:rgba(34,85,255,.08);position:relative;
}
.sec-num::before,.sec-num::after{content:'';position:absolute;width:5px;height:5px;border-color:rgba(85,128,255,.5);border-style:solid;}
.sec-num::before{top:-1px;left:-1px;border-width:1px 0 0 1px;}
.sec-num::after{bottom:-1px;right:-1px;border-width:0 1px 1px 0;}
.sec-count-lbl{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:rgba(242,244,255,.28);}
.sec-heading{font-family:var(--display);font-size:clamp(52px,8vw,104px);font-weight:800;letter-spacing:-.035em;color:var(--white);line-height:.94;position:relative;z-index:1;}

/* ── WORK ── */
#work{border-top:1px solid var(--border);}

/* ── FILE CABINET ── */
.cabinet{border:1px solid rgba(85,128,255,.14);background:rgba(8,16,44,.32);overflow:hidden;position:relative;}
.cabinet::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(85,128,255,.5),rgba(123,95,255,.35),rgba(85,128,255,.5),transparent);}
.cabinet-top{padding:13px 24px;border-bottom:1px solid rgba(242,244,255,.06);background:rgba(20,36,90,.18);display:flex;align-items:center;justify-content:space-between;}
.cabinet-label{font-family:var(--mono);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dimmer);}
.cabinet-label::before{content:'◆';font-size:6px;color:rgba(85,128,255,.7);margin-right:9px;vertical-align:middle;}
.cabinet-total{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:rgba(242,244,255,.22);}

.drawer{position:relative;background:rgba(4,10,30,.2);transition:background .25s;}
.drawer+.drawer::before{content:'';position:absolute;top:0;left:5%;right:5%;height:1px;background:linear-gradient(90deg,transparent,rgba(85,128,255,.12),rgba(123,95,255,.08),rgba(85,128,255,.12),transparent);}
.drawer:hover{background:rgba(34,85,255,.05);}
.drawer-header{width:100%;display:flex;align-items:center;justify-content:space-between;padding:22px 24px;background:none;border:none;text-align:left;gap:20px;}
.drawer-hd-left{display:flex;align-items:center;gap:0;flex:1;min-width:0;}

.drawer-num-box{width:42px;height:42px;position:relative;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-right:20px;}
.drawer-num-box::before{content:'';position:absolute;top:0;left:0;width:12px;height:12px;border-top:1px solid rgba(85,128,255,.4);border-left:1px solid rgba(85,128,255,.4);transition:border-color .3s,width .3s,height .3s;}
.drawer-num-box::after{content:'';position:absolute;bottom:0;right:0;width:12px;height:12px;border-bottom:1px solid rgba(85,128,255,.4);border-right:1px solid rgba(85,128,255,.4);transition:border-color .3s,width .3s,height .3s;}
.drawer.open .drawer-num-box::before,.drawer.open .drawer-num-box::after{border-color:rgba(85,128,255,.95);width:16px;height:16px;}
.drawer-num{font-family:var(--mono);font-size:9px;letter-spacing:.18em;color:var(--dimmer);}
.drawer.open .drawer-num{color:var(--white);}

.drawer-title-wrap{min-width:0;}
.drawer-title{font-family:var(--display);font-size:clamp(18px,2.6vw,38px);font-weight:700;color:var(--white);letter-spacing:-.015em;line-height:1.1;margin-bottom:7px;}
.drawer-tags{display:flex;gap:7px;flex-wrap:wrap;}
.drawer-tags span{font-family:var(--mono);font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);padding:3px 9px 3px 8px;background:rgba(34,85,255,.06);position:relative;}
.drawer-tags span::before{content:'';position:absolute;left:0;top:25%;bottom:25%;width:1.5px;background:var(--blue-l);opacity:.5;}
.drawer-hd-right{display:flex;align-items:center;gap:18px;flex-shrink:0;}
.drawer-year{font-family:var(--mono);font-size:10px;letter-spacing:.13em;color:var(--dimmer);padding:3px 8px;background:rgba(242,244,255,.04);border-bottom:1px solid rgba(242,244,255,.1);}
.drawer-btn{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:16px;line-height:1;color:rgba(242,244,255,.38);font-family:var(--mono);font-weight:400;position:relative;transition:transform .4s cubic-bezier(.4,0,.2,1),color .2s;flex-shrink:0;}
.drawer-btn::before,.drawer-btn::after{content:'';position:absolute;width:8px;height:8px;border-color:rgba(242,244,255,.2);border-style:solid;transition:border-color .2s;}
.drawer-btn::before{top:0;left:0;border-width:1px 0 0 1px;}
.drawer-btn::after{bottom:0;right:0;border-width:0 1px 1px 0;}
.drawer.open .drawer-btn{transform:rotate(45deg);color:var(--white);}
.drawer.open .drawer-btn::before,.drawer.open .drawer-btn::after{border-color:rgba(85,128,255,.7);}

.drawer-header::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,var(--blue),var(--purple),transparent);transform:scaleY(0);transform-origin:top;transition:transform .48s cubic-bezier(.16,1,.3,1);}
.drawer.open .drawer-header::before{transform:scaleY(1);}

.drawer-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .55s cubic-bezier(.16,1,.3,1);position:relative;}
.drawer.open .drawer-body{grid-template-rows:1fr;}
.drawer-inner{overflow:hidden;}
.drawer-body::after{content:'';position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(85,128,255,.9),rgba(123,95,255,.7),rgba(85,128,255,.9),transparent);top:0;z-index:2;pointer-events:none;opacity:0;}
.drawer.open .drawer-body::after{animation:scan-line .65s ease .06s forwards;}
@keyframes scan-line{0%{top:0;opacity:1}100%{top:100%;opacity:0}}

.drawer-content{padding:24px 24px 40px 86px;display:grid;grid-template-columns:1fr 1.1fr;gap:40px;opacity:0;transform:translateY(-8px);transition:opacity .36s ease .3s,transform .36s ease .3s;}
.drawer.open .drawer-content{opacity:1;transform:none;}

.dc-media{display:flex;flex-direction:column;gap:10px;}
.dc-placeholder{
  aspect-ratio:16/9;
  background:linear-gradient(90deg,rgba(85,128,255,.12) 50%,transparent 0) top/12px 1px repeat-x,
    linear-gradient(90deg,rgba(85,128,255,.12) 50%,transparent 0) bottom/12px 1px repeat-x,
    linear-gradient(0deg,rgba(85,128,255,.12) 50%,transparent 0) left/1px 12px repeat-y,
    linear-gradient(0deg,rgba(85,128,255,.12) 50%,transparent 0) right/1px 12px repeat-y,
    rgba(16,32,80,.18);
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;position:relative;overflow:hidden;
}
.dc-placeholder::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,rgba(34,85,255,.06) 0%,transparent 65%);}
.dc-ph-icon{font-family:var(--mono);font-size:18px;color:rgba(85,128,255,.35);line-height:1;}
.dc-ph-label{font-family:var(--mono);font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:rgba(242,244,255,.28);}
.dc-ph-hint{font-family:var(--mono);font-size:8px;letter-spacing:.14em;color:rgba(242,244,255,.16);}
.dc-info{display:flex;flex-direction:column;gap:20px;}
.dc-lead{font-size:15px;font-weight:400;line-height:1.72;color:var(--dim);}
.dc-bullets{list-style:none;display:flex;flex-direction:column;gap:6px;}
.dc-bullets li{font-family:var(--mono);font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:var(--dimmer);padding-left:18px;position:relative;line-height:1.7;}
.dc-bullets li::before{content:'▸';position:absolute;left:0;color:var(--blue-l);font-size:8px;}
.dc-details{display:grid;grid-template-columns:1fr 1fr;gap:14px 20px;background:linear-gradient(90deg,rgba(85,128,255,.18),rgba(123,95,255,.12),transparent) top/100% 1px no-repeat;padding-top:16px;}
.dc-dl{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer);margin-bottom:5px;}
.dc-dv{display:block;font-size:13px;font-weight:400;color:var(--white);line-height:1.5;}
.dc-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dimmer);text-decoration:none;padding:8px 12px;background:rgba(34,85,255,.07);border-left:2px solid rgba(85,128,255,.5);transition:color .2s,background .2s,border-color .2s;}
.dc-link:hover{color:var(--white);background:rgba(34,85,255,.14);border-left-color:var(--blue-l);}

/* ── ABOUT ── */
#about{border-top:1px solid var(--border);}
.about-bio{font-size:17px;line-height:1.85;color:var(--dim);font-weight:300;margin-bottom:44px;}
.about-bio strong{color:var(--white);font-weight:500;}

/* ── PROFILE BLOCK (reference-inspired) ── */
.profile-block{display:grid;grid-template-columns:240px 1fr;gap:56px;margin-bottom:48px;align-items:start;}

.profile-photo{position:relative;}
.ab-photo-img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;border:1px solid rgba(85,128,255,.18);filter:grayscale(12%) contrast(1.04);transition:filter .4s;}
.ph-placeholder{
  aspect-ratio:3/4;
  background:rgba(8,16,44,.55);
  border:1px solid rgba(85,128,255,.18);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:10px;position:relative;overflow:hidden;
}
.ph-placeholder::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(34,85,255,.07) 0%,rgba(123,95,255,.1) 100%);}
.ph-ph-icon{font-size:36px;color:rgba(85,128,255,.3);position:relative;}
.ph-ph-label{font-family:var(--mono);font-size:9px;letter-spacing:.25em;text-transform:uppercase;color:rgba(242,244,255,.3);position:relative;}
.ph-ph-hint{font-family:var(--mono);font-size:8px;letter-spacing:.12em;color:rgba(242,244,255,.16);position:relative;text-align:center;padding:0 16px;}
/* Offset accent box behind photo */
.ph-accent-box{position:absolute;bottom:-10px;right:-10px;width:65%;height:65%;border:1px solid rgba(85,128,255,.14);z-index:-1;}

/* Identity column */
.profile-ident{padding-top:4px;}
.pi-eyebrow{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:var(--dimmer);margin-bottom:12px;padding-left:12px;border-left:2px solid rgba(85,128,255,.5);}
.pi-name{font-family:var(--display);font-size:clamp(36px,4.5vw,62px);font-weight:800;letter-spacing:-.03em;color:var(--white);line-height:1;margin-bottom:6px;}
.pi-alias{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--blue-l);margin-bottom:30px;}
.pi-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 32px;}
.pi-info-label{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.25em;text-transform:uppercase;color:var(--dimmer);margin-bottom:4px;}
.pi-info-val{display:block;font-size:14px;font-weight:400;color:var(--white);}
.pi-info-val.avail{display:flex;align-items:center;gap:6px;}

/* ── SOFTWARE SECTION ── */
.sw-section{margin-bottom:0;}
.sw-label{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dimmer);margin-bottom:14px;padding-left:10px;border-left:2px solid rgba(85,128,255,.5);}

/* Software icon tiles — like Ps Ai blocks in reference */
.sw-icon-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:0;}
.sw-tile{
  width:72px;min-height:72px;
  background:rgba(34,85,255,.07);
  border:1px solid rgba(85,128,255,.16);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:5px;padding:10px 8px;cursor:default;
  position:relative;
  transition:background .2s,border-color .2s,transform .25s;
}
.sw-tile:hover{background:rgba(34,85,255,.16);border-color:rgba(85,128,255,.4);transform:translateY(-3px);}
.sw-t-abbr{font-family:var(--display);font-size:18px;font-weight:700;color:var(--white);line-height:1;}
.sw-t-name{font-family:var(--mono);font-size:7px;letter-spacing:.1em;text-transform:uppercase;color:var(--dimmer);text-align:center;}
/* Figma "learning" badge — like "Currently learning" in reference */
.sw-tile.sw-learning{border-color:rgba(60,255,160,.2);}
.sw-t-badge{
  position:absolute;top:-7px;right:-7px;
  font-family:var(--mono);font-size:6px;letter-spacing:.08em;text-transform:uppercase;
  color:#3dffa0;background:rgba(2,11,26,.95);
  padding:2px 5px;border:1px solid rgba(60,255,160,.38);
  white-space:nowrap;
}

/* Skill tags — left-bar style */
.sw-tags{display:flex;flex-wrap:wrap;gap:6px;}
.sw-tags span{font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;padding:6px 12px 6px 10px;background:rgba(34,85,255,.06);color:var(--dimmer);position:relative;cursor:default;transition:color .2s,background .2s;}
.sw-tags span::before{content:'';position:absolute;left:0;top:20%;bottom:20%;width:2px;background:var(--blue-l);opacity:.5;transition:opacity .2s;}
.sw-tags span:hover{color:var(--white);background:rgba(34,85,255,.12);}
.sw-tags span:hover::before{opacity:1;}

/* ── STATS ROW (horizontal like reference) ── */
.stats-row{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:rgba(85,128,255,.1);margin:44px 0;}
.stat-col{background:var(--bg);padding:30px 24px;display:flex;flex-direction:column;gap:8px;}
.stat-val{font-family:var(--display);font-size:46px;font-weight:800;color:var(--white);line-height:1;}
.stat-val small{font-size:24px;opacity:.55;}
.stat-key{font-family:var(--mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--dimmer);line-height:1.8;}
.stat-dot-col{display:flex;align-items:center;}
.dot-sm{width:10px;height:10px;border-radius:50%;background:#3dffa0;display:inline-block;animation:pulse 2.5s ease-in-out infinite;}

/* ── EXPERIENCE ── */
.exp-section{padding-top:52px;background:linear-gradient(90deg,rgba(85,128,255,.12),rgba(123,95,255,.08),transparent) top/100% 1px no-repeat;}
.exp-hd{font-family:var(--display);font-size:clamp(22px,2.8vw,38px);font-weight:700;letter-spacing:-.01em;color:var(--dimmer);margin-bottom:28px;}
.exp-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(85,128,255,.08);}
.exp-col{background:var(--bg);padding:32px 26px;}
.exp-period{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--dimmer);margin-bottom:12px;}
.exp-dot{width:8px;height:8px;background:var(--blue-l);transform:rotate(45deg);margin-bottom:16px;}
.exp-co{font-family:var(--display);font-size:22px;font-weight:700;letter-spacing:-.01em;color:var(--white);margin-bottom:4px;}
.exp-pos{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--dimmer);margin-bottom:14px;}
.exp-desc{font-size:13px;line-height:1.7;color:rgba(242,244,255,.42);font-weight:300;}

/* ── EDUCATION ── */
#education{border-top:1px solid var(--border);}
.edu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:1px;background:rgba(85,128,255,.08);}
.edu-item{background:var(--bg);padding:40px 36px;}
.edu-period{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--dimmer);margin-bottom:12px;}
.edu-dot{width:8px;height:8px;background:var(--blue-l);transform:rotate(45deg);margin-bottom:18px;}
.edu-school{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:-.01em;color:var(--white);margin-bottom:6px;}
.edu-degree{font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--dimmer);margin-bottom:14px;}
.edu-desc{font-size:14px;line-height:1.75;color:rgba(242,244,255,.46);font-weight:300;max-width:540px;}

/* ── CONTACT ── */
#contact{position:relative;height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;overflow:hidden;border-top:1px solid var(--border);padding:0;}
#contact-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0;}
.contact-bg-brand{
  position:absolute;
  z-index:1;
  font-family:var(--display);
  font-size:min(52vw,580px);
  font-weight:800;
  letter-spacing:-.05em;
  line-height:1;
  color:transparent;
  -webkit-text-stroke:1px rgba(85,128,255,.1);
  pointer-events:none;
  user-select:none;
  top:50%;
  left:50%;
  transform:translate(-50%,-52%) rotate(-3deg);
  white-space:nowrap;
  animation:mb-float 9s ease-in-out infinite,mb-pulse 5s ease-in-out infinite;
}
@keyframes mb-float{
  0%,100%{transform:translate(-50%,-52%) translateY(0) rotate(-3deg);}
  50%{transform:translate(-50%,-52%) translateY(-28px) rotate(-3deg);}
}
@keyframes mb-pulse{
  0%,100%{-webkit-text-stroke:1px rgba(85,128,255,.06);filter:blur(.8px);}
  50%{-webkit-text-stroke:1px rgba(85,128,255,.2);filter:blur(0);}
}
.contact-inner{position:relative;z-index:2;text-align:center;}
.contact-label{font-family:var(--mono);font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:var(--dimmer);margin-bottom:32px;}
.contact-email{font-family:var(--display);font-size:clamp(22px,3.2vw,54px);font-weight:700;letter-spacing:-.02em;color:var(--white);text-decoration:none;display:inline-block;padding-bottom:10px;background:linear-gradient(90deg,var(--blue),var(--purple)) bottom/0% 1px no-repeat;transition:background-size .4s ease;}
.contact-email:hover{background-size:100% 1px;}
.contact-links{margin-top:36px;display:flex;justify-content:center;gap:48px;font-family:var(--mono);font-size:9px;letter-spacing:.2em;text-transform:uppercase;}
.contact-links a{color:var(--dimmer);text-decoration:none;transition:color .2s;position:relative;}
.contact-links a::after{content:'';position:absolute;left:0;bottom:-3px;width:0;height:1px;background:var(--blue-l);transition:width .25s;}
.contact-links a:hover{color:var(--white);}
.contact-links a:hover::after{width:100%;}

/* ── FOOTER ── */
footer{display:flex;justify-content:space-between;align-items:center;padding:20px 52px;border-top:1px solid var(--border);}
footer span{font-family:var(--mono);font-size:9px;color:var(--dimmer);letter-spacing:.1em;}
.status{display:flex;align-items:center;gap:8px;}
.dot{width:6px;height:6px;border-radius:50%;background:#3dffa0;animation:pulse 2.5s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ── SCROLL REVEAL ── */
.rv{opacity:0;transform:translateY(18px);transition:opacity .75s ease,transform .75s ease;}
.rv.in{opacity:1;transform:none;}
.rv.d1{transition-delay:.1s}.rv.d2{transition-delay:.2s}.rv.d3{transition-delay:.3s}

/* ── MOBILE 900px ── */
@media(max-width:900px){
  #hero{grid-template-columns:1fr;}
  .hero-info{display:none;}
  #shape-canvas{display:none;}
  .hero-left{padding:96px 24px 52px;}
  nav{padding:20px 24px;}
  .nav-links{display:none;}
  section{padding:64px 24px;}
  .sec-heading{font-size:clamp(44px,12vw,80px);}
  .profile-block{grid-template-columns:1fr;gap:32px;}
  .profile-photo{max-width:200px;}
  .pi-info-grid{grid-template-columns:1fr 1fr;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .exp-cols{grid-template-columns:1fr;}
  footer{flex-direction:column;gap:8px;text-align:center;padding:18px 24px;}
  .drawer-content{grid-template-columns:1fr;padding:20px 16px 32px 16px;}
  .drawer-header{padding:18px 16px;}
  .drawer-year{display:none;}
  .cabinet-top{padding:12px 16px;}
}

/* ── MOBILE 640px (phones) ── */
@media(max-width:640px){
  /* Hero name — prevent clamp min from being stuck at 120px */
  .hero-name{font-size:clamp(52px,19vw,88px);margin-bottom:16px;}
  /* Hero statement lines — prevent clamp min from being stuck at 58px */
  .hs-line{font-size:clamp(34px,11.5vw,56px);}
  .hs-sub{font-size:13px;line-height:1.65;max-width:100%;}
  /* Tighter hero padding */
  .hero-left{padding:64px 20px 36px;}
  /* Hero bottom strip — less padding, hide rule + tagline that overflow */
  .hero-bottom{padding:11px 20px;gap:10px;}
  .hb-rule{display:none;}
  .hero-bottom>.hb-txt{display:none;} /* hides the tagline span, not the status inside hb-status */
  /* Ghost section number — smaller on phone */
  .sec-hd::after{font-size:clamp(52px,18vw,88px);}
  /* Section headings */
  .sec-heading{font-size:clamp(32px,10.5vw,56px);}
  /* Carousel cards — narrower so more fits in view */
  .dcc-item{width:195px;height:212px;}
  /* Nav button stays visible on mobile even though nav-links is hidden */
  .lang-toggle{opacity:.8;}
  /* About section */
  .about-bio{font-size:14px;}
  .stat-val{font-size:clamp(32px,10vw,48px);}
  .stat-val small{font-size:18px;}
  .pi-name{font-size:clamp(28px,8vw,44px);}
  /* Contact */
  .contact-label{font-size:clamp(16px,5vw,24px);}
  .contact-email{font-size:clamp(18px,5.5vw,32px);}
  /* Education / experience text */
  .edu-desc,.exp-desc{font-size:13px;}
}

/* ── BRAND IDENTITY SYSTEM — drawer hover colors per client ── */

/* Base defaults (fallback = site blue) */
.drawer{
  --bc-bg:  rgba(34,85,255,.05);
  --bc-txt: var(--white);
  --bc-glow:rgba(85,128,255,.45);
  --bc-acc: rgba(85,128,255,.5);
  transition:background .4s cubic-bezier(.16,1,.3,1);
}

/* Per-brand overrides */
.drawer[data-brand="worldcoin"] { --bc-bg:rgba(240,244,255,.06); --bc-txt:#f0f4ff; --bc-glow:rgba(240,244,255,.55); --bc-acc:rgba(240,244,255,.5);  }
.drawer[data-brand="dapp"]      { --bc-bg:rgba(64,248,158,.07);  --bc-txt:#40f89e; --bc-glow:rgba(64,248,158,.6);  --bc-acc:rgba(64,248,158,.55); }
.drawer[data-brand="aesyx"]     { --bc-bg:rgba(124,58,237,.07);  --bc-txt:#a78bfa; --bc-glow:rgba(124,58,237,.6);  --bc-acc:rgba(124,58,237,.55); }
.drawer[data-brand="avalanche"] { --bc-bg:rgba(232,65,66,.07);   --bc-txt:#f87171; --bc-glow:rgba(232,65,66,.6);   --bc-acc:rgba(232,65,66,.55);  }
.drawer[data-brand="benqi"]     { --bc-bg:rgba(0,178,236,.07);   --bc-txt:#00b2ec; --bc-glow:rgba(0,178,236,.6);   --bc-acc:rgba(0,178,236,.55);  }
.drawer[data-brand="bullet"]    { --bc-bg:rgba(229,255,126,.07); --bc-txt:#e5ff7e; --bc-glow:rgba(229,255,126,.55); --bc-acc:rgba(229,255,126,.5); }
.drawer[data-brand="dicey"]     { --bc-bg:rgba(2,171,76,.07);    --bc-txt:#02ab4c; --bc-glow:rgba(2,171,76,.6);    --bc-acc:rgba(2,171,76,.55);   }
.drawer[data-brand="magiceden"] { --bc-bg:rgba(217,70,239,.08);  --bc-txt:#f0abfc; --bc-glow:rgba(217,70,239,.65); --bc-acc:rgba(217,70,239,.6);  }

/* Hover state — applies brand color to title, num, accents */
.drawer:hover { background:var(--bc-bg); }

.drawer-title { transition:color .4s cubic-bezier(.16,1,.3,1), text-shadow .4s cubic-bezier(.16,1,.3,1); }
.drawer:hover .drawer-title {
  color: var(--bc-txt);
  text-shadow: 0 0 22px var(--bc-glow), 0 0 55px var(--bc-bg);
}

.drawer-num { transition:color .4s cubic-bezier(.16,1,.3,1); }
.drawer:hover .drawer-num { color: var(--bc-txt); opacity:.7; }

.drawer-num-box::before, .drawer-num-box::after { transition:border-color .4s cubic-bezier(.16,1,.3,1),width .3s,height .3s; }
.drawer:hover .drawer-num-box::before, .drawer:hover .drawer-num-box::after { border-color:var(--bc-acc); }

.drawer-tags span::before { transition:background .4s cubic-bezier(.16,1,.3,1); }
.drawer:hover .drawer-tags span::before { background:var(--bc-acc); }

/* Left accent bar recolors on hover */
.drawer:hover .drawer-header::before {
  background: linear-gradient(180deg, transparent, var(--bc-acc), var(--bc-glow), transparent);
}

/* ── LOGO PLACEHOLDER ── */
.drawer-name-row { display:flex; align-items:center; gap:12px; margin-bottom:6px; }
.drawer-name-row .drawer-title { margin-bottom:0; }

.drawer-logo {
  width:30px; height:30px;
  border:1px solid rgba(242,244,255,.1);
  background:rgba(242,244,255,.035);
  display:flex; align-items:center; justify-content:center;
  flex-shrink:0;
  position:relative;
  overflow:hidden;
  transition:border-color .4s cubic-bezier(.16,1,.3,1), background .4s cubic-bezier(.16,1,.3,1);
}
.drawer-logo::before {
  content:''; position:absolute; top:0; left:0;
  width:5px; height:5px;
  border-top:1px solid rgba(85,128,255,.25);
  border-left:1px solid rgba(85,128,255,.25);
}
.drawer-logo::after {
  content:''; position:absolute; bottom:0; right:0;
  width:5px; height:5px;
  border-bottom:1px solid rgba(85,128,255,.25);
  border-right:1px solid rgba(85,128,255,.25);
}
.drawer-logo-init {
  font-family:var(--mono); font-size:7px; letter-spacing:.08em;
  color:rgba(242,244,255,.28);
  transition:color .4s cubic-bezier(.16,1,.3,1);
  z-index:1;
}
.drawer:hover .drawer-logo { border-color:var(--bc-acc); background:var(--bc-bg); }
.drawer:hover .drawer-logo::before, .drawer:hover .drawer-logo::after { border-color:var(--bc-acc); }
.drawer:hover .drawer-logo-init { color:var(--bc-txt); }

/* Scan-glitch on media placeholder when drawer opens */
@keyframes ph-scan {
  0%   { transform:translateY(-100%); opacity:.7; }
  100% { transform:translateY(200%);  opacity:0; }
}
.dc-placeholder { overflow:hidden; }
.dc-placeholder::after {
  content:'';
  position:absolute; inset:0 0 auto 0; height:2px;
  background:linear-gradient(90deg,transparent,var(--blue-l),rgba(123,95,255,.8),var(--blue-l),transparent);
  pointer-events:none; opacity:0;
}
.drawer.open .dc-placeholder::after { animation:ph-scan 1.1s cubic-bezier(.16,1,.3,1) .32s forwards; }

/* d4–d7 stagger delays for rv (scroll reveal) */
.rv.d4{transition-delay:.08s;}
.rv.d5{transition-delay:.12s;}
.rv.d6{transition-delay:.16s;}
.rv.d7{transition-delay:.20s;}


/* ── Responsive ── */
@media (max-width: 640px) {
  .drawer-content.dc-full { padding: 16px 16px 28px 16px; }
}
/* ═══════════════════════════════════════════════════════════════
   CAROUSEL — horizontal auto-scroll, hover-to-slow, click-to-expand
   ═══════════════════════════════════════════════════════════════ */

/* Outer wrapper: zero horizontal padding so carousel bleeds to edges */
.drawer-content.dc-carousel-outer {
  grid-template-columns: 1fr;
  padding: 0 0 0 0;
  gap: 0;
  overflow: hidden;
}

/* Clip region */
.dc-carousel-wrap {
  overflow: hidden;
  position: relative;
  padding: 18px 0 28px;
  user-select: none;
  cursor: grab;
  -webkit-mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0%, black 4%, black 96%, transparent 100%);
}
.dc-carousel-wrap:active { cursor: grabbing; }

/* The moving strip — JS sets transform */
.dc-carousel {
  display: flex;
  gap: 6px;
  will-change: transform;
  user-select: none;
}

/* Single media item */
.dcc-item {
  flex-shrink: 0;
  position: relative;
  width: 320px;
  height: 340px;
  overflow: hidden;
  border: 1px solid rgba(85, 128, 255, .1);
  background: rgba(4, 10, 30, .7);
  cursor: zoom-in;
  transition: border-color .35s cubic-bezier(.16,1,.3,1);
}
.dcc-item:hover {
  border-color: rgba(85, 128, 255, .42);
}

/* Image — object-contain so designs show fully, no cropping */
.dcc-item img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  pointer-events: none;
  -webkit-user-drag: none;
  transition: transform .6s cubic-bezier(.16,1,.3,1), filter .35s;
  filter: brightness(.88);
}
.dcc-item:hover img {
  transform: scale(1.04);
  filter: brightness(1.0);
}

/* Overlay — number + expand icon, slides up on hover */
.dcc-ov {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 0 10px 10px;
  background: linear-gradient(to top, rgba(1,6,28,.72) 0%, transparent 45%);
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .32s cubic-bezier(.16,1,.3,1), transform .32s cubic-bezier(.16,1,.3,1);
}
.dcc-item:hover .dcc-ov {
  opacity: 1;
  transform: translateY(0);
}
.dcc-n {
  font-family: var(--mono);
  font-size: 8px;
  letter-spacing: .24em;
  color: rgba(242, 244, 255, .75);
}
.dcc-exp {
  font-family: var(--mono);
  font-size: 11px;
  color: rgba(242, 244, 255, .6);
}

/* Placeholder item (no media yet) */
.dcc-ph {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  cursor: default;
  background: repeating-linear-gradient(
    -45deg,
    transparent, transparent 8px,
    rgba(85,128,255,.025) 8px, rgba(85,128,255,.025) 9px
  );
}
.dcc-ph:hover { border-color: rgba(85,128,255,.1); transform: none; }
.dcc-ph-icon {
  font-family: var(--mono);
  font-size: 18px;
  color: rgba(85, 128, 255, .28);
}
.dcc-ph-label {
  font-family: var(--mono);
  font-size: 7px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: rgba(242, 244, 255, .18);
}

/* ── LIGHTBOX (full media viewer) ── */
#dcg-lb {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0, 2, 12, .97);
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity .3s ease;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  overflow: auto;
}
#dcg-lb.active { opacity: 1; pointer-events: all; }

/* Image: JS controls transform for zoom-from-card animation */
#dcg-lb img {
  display: block;
  width: auto;
  height: auto;
  max-width: 96vw;
  max-height: 95vh;
  border: 1px solid rgba(85,128,255,.15);
  box-shadow: 0 0 120px rgba(34,85,255,.25), 0 30px 80px rgba(0,0,0,.9);
  transform-origin: center center;
}

/* Video: always centered, controls visible */
#dcg-lb video {
  display: block;
  width: auto;
  height: auto;
  max-width: 96vw;
  max-height: 95vh;
  border: 1px solid rgba(85,128,255,.15);
  box-shadow: 0 0 120px rgba(34,85,255,.25), 0 30px 80px rgba(0,0,0,.9);
}

#dcg-lb-close {
  position: fixed; top: 20px; right: 24px;
  font-family: var(--mono); font-size: 20px; line-height: 1;
  color: rgba(242,244,255,.45); background: none; border: none;
  cursor: pointer;
  transition: color .2s, transform .3s;
  padding: 10px;
  z-index: 10000;
}
#dcg-lb-close:hover { color: var(--white); transform: rotate(90deg); }

/* Scrubber — drag bar below carousel */
.dcc-scrubber {
  position: relative;
  height: 2px;
  margin: 6px 20px 22px;
  background: rgba(85, 128, 255, .14);
  border-radius: 2px;
  cursor: ew-resize;
  transition: height .2s;
}
.dcc-scrubber:hover { height: 4px; }
.dcc-thumb {
  position: absolute;
  top: 50%;
  left: 0;
  transform: translate(-50%, -50%);
  width: 28px;
  height: 10px;
  border-radius: 6px;
  background: rgba(85, 128, 255, .55);
  pointer-events: none;
  transition: background .2s, width .2s;
}
.dcc-scrubber:hover .dcc-thumb,
.dcc-scrubber:active .dcc-thumb { background: rgba(85, 128, 255, .9); width: 36px; }

/* Video inside carousel item */
.dcc-item video {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  pointer-events: none;
}

@media (max-width: 640px) {
  .dcc-item { width: 220px; height: 240px; }
}

/* ── LIGHTBOX ANIMATIONS ─────────────────────────────────── */
@keyframes lb-zoom {
  0%   { transform: scale(0.82) translateY(18px); opacity: 0;   filter: blur(6px);  }
  60%  { transform: scale(1.03) translateY(-3px);  opacity: 1;   filter: blur(0);    }
  100% { transform: scale(1)    translateY(0);     opacity: 1;   filter: blur(0);    }
}
#dcg-lb img.lb-in,
#dcg-lb video.lb-in {
  animation: lb-zoom 0.52s cubic-bezier(0.16, 1, 0.3, 1) both;
}

/* Card flash on click */
@keyframes dcc-flash-kf {
  0%   { box-shadow: inset 0 0 0 2px rgba(255,255,255,0), filter: brightness(1);   }
  35%  { box-shadow: inset 0 0 0 2px rgba(255,255,255,.7); filter: brightness(1.4); }
  100% { box-shadow: inset 0 0 0 2px rgba(255,255,255,0), filter: brightness(1);   }
}
.dcc-item.dcc-flash {
  animation: dcc-flash-kf 0.35s ease forwards;
  z-index: 10;
}

/* ── LANGUAGE TOGGLE ─────────────────────────────────────── */
.lang-toggle {
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--white);
  background: none;
  border: 1px solid rgba(255,255,255,.3);
  padding: 6px 12px;
  cursor: pointer;
  border-radius: 2px;
  transition: border-color .2s, opacity .2s;
  opacity: .65;
  white-space: nowrap;
}
.lang-toggle:hover { border-color: rgba(255,255,255,.75); opacity: 1; }
@media (max-width: 640px) {
  .lang-toggle { padding: 5px 9px; font-size: 8px; }
}
