:root{
  --black:#07070d;--black-2:#0d0d18;--black-3:#14142a;
  --purple:#6c2bd9;--purple-2:#8b47f0;--purple-3:#a76ff7;
  --blue:#1a6bff;--blue-2:#3d8bff;
  --gold:#d4a017;--gold-2:#f0c040;--gold-3:#ffe083;
  --white:#f0eeff;--muted:#6b6b9a;
  --border:rgba(108,43,217,.18);--border-2:rgba(108,43,217,.32);
  --g-purple:linear-gradient(135deg,var(--purple),var(--blue));
  --g-gold:linear-gradient(135deg,var(--gold),var(--gold-3));
  --g-full:linear-gradient(135deg,var(--purple),var(--blue),var(--gold));
  --glow-p:rgba(108,43,217,.4);--glow-g:rgba(212,160,23,.35);
  --fd:'Bebas Neue',sans-serif;--fb:'Cormorant Garamond',serif;
  --fs:'Space Grotesk',sans-serif;--fm:'DM Mono',monospace;
  --nav-h:70px;--ease:cubic-bezier(.22,1,.36,1);--ease-in:cubic-bezier(.55,0,1,.45);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:auto;}
body{background:var(--black);color:var(--white);font-family:var(--fs);overflow-x:hidden;cursor:none;}
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:var(--black);}
::-webkit-scrollbar-thumb{background:var(--purple);border-radius:2px;}
#preloader{position:fixed;inset:0;z-index:9999;background:var(--black);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;transition:opacity .8s var(--ease),transform .8s var(--ease);}
#preloader.done{opacity:0;transform:scale(1.04);pointer-events:none;}
.pre-logo{font-family:var(--fd);font-size:clamp(3rem,8vw,6rem);letter-spacing:.15em;background:var(--g-full);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:preGlow 1.8s ease infinite alternate;}
@keyframes preGlow{from{filter:brightness(1);}to{filter:brightness(1.4) drop-shadow(0 0 32px rgba(108,43,217,.9));}}
.pre-bar-wrap{width:min(320px,70vw);height:2px;background:rgba(255,255,255,.08);border-radius:2px;overflow:hidden;}
.pre-bar{height:100%;width:0%;border-radius:2px;background:var(--g-full);box-shadow:0 0 14px var(--glow-p);}
.pre-txt{font-family:var(--fm);font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);}
#pre-canvas{position:absolute;inset:0;pointer-events:none;opacity:.14;}
#veil{position:fixed;inset:0;z-index:7000;pointer-events:none;display:grid;grid-template-columns:repeat(5,1fr);}
.vcol{background:var(--black-3);transform:scaleY(0);transform-origin:bottom;}
#veil.exit .vcol{animation:vDown .65s var(--ease-in) forwards;}
#veil.enter .vcol{transform:scaleY(1);transform-origin:top;animation:vUp .65s var(--ease) forwards;}
#veil.exit .vcol:nth-child(1),#veil.exit .vcol:nth-child(5){animation-delay:0s;}
#veil.exit .vcol:nth-child(2),#veil.exit .vcol:nth-child(4){animation-delay:.06s;}
#veil.exit .vcol:nth-child(3){animation-delay:.12s;}
#veil.enter .vcol:nth-child(1),#veil.enter .vcol:nth-child(5){animation-delay:.1s;}
#veil.enter .vcol:nth-child(2),#veil.enter .vcol:nth-child(4){animation-delay:.05s;}
#veil.enter .vcol:nth-child(3){animation-delay:0s;}
@keyframes vDown{to{transform:scaleY(1);transform-origin:top;}}
@keyframes vUp{to{transform:scaleY(0);}}
#c-dot{position:fixed;width:7px;height:7px;border-radius:50%;background:var(--gold-2);z-index:8888;pointer-events:none;transform:translate(-50%,-50%);}
#c-ring{position:fixed;width:34px;height:34px;border-radius:50%;border:1.5px solid var(--purple-2);z-index:8887;pointer-events:none;transform:translate(-50%,-50%);opacity:.65;transition:width .3s,height .3s,border-color .3s,opacity .3s;}
body.c-hover #c-ring{width:56px;height:56px;border-color:var(--gold);opacity:.4;}
body.c-hover #c-dot{background:var(--gold-3);}
nav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nav-h);display:flex;align-items:center;justify-content:space-between;padding:0 4%;transition:background .4s;}
nav.scrolled{background:rgba(7,7,13,.88);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);}
.nav-logo{font-family:var(--fd);font-size:1.6rem;letter-spacing:.12em;background:var(--g-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;}
.nav-links{display:flex;gap:2rem;list-style:none;}
.nav-links a{font-family:var(--fs);font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:rgba(240,238,255,.5);text-decoration:none;transition:color .2s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;width:0;height:1px;background:var(--gold-2);transition:width .3s var(--ease);}
.nav-links a:hover{color:var(--white);}
.nav-links a:hover::after,.nav-links a.active::after{width:100%;}
.nav-links a.active{color:var(--white);}
.nav-cta{padding:.5rem 1.4rem;background:transparent;border:1px solid var(--border-2);border-radius:3px;font-family:var(--fs);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--purple-3);text-decoration:none;transition:background .25s,color .25s,box-shadow .25s;}
.nav-cta:hover{background:var(--purple);border-color:var(--purple);color:#fff;box-shadow:0 0 24px var(--glow-p);}
.ham{display:none;flex-direction:column;gap:5px;cursor:none;background:none;border:none;padding:4px;}
.ham span{display:block;width:22px;height:1.5px;background:var(--white);border-radius:1px;transition:.3s;}
.ham.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.ham.open span:nth-child(2){opacity:0;}
.ham.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
.mob-nav{position:fixed;inset:0;top:var(--nav-h);z-index:900;background:rgba(7,7,13,.97);backdrop-filter:blur(30px);display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2.5rem;opacity:0;pointer-events:none;transition:opacity .35s var(--ease);}
.mob-nav.open{opacity:1;pointer-events:all;}
.mob-nav a{font-family:var(--fd);font-size:2.8rem;letter-spacing:.12em;color:rgba(240,238,255,.6);text-decoration:none;transition:color .2s;}
.mob-nav a:hover{color:var(--gold-2);}
#particle-canvas{position:fixed;inset:0;z-index:0;pointer-events:none;opacity:.4;}

/* PAGE HEADER */
.page-header{min-height:42vh;padding-top:var(--nav-h);position:relative;overflow:hidden;display:flex;align-items:flex-end;border-bottom:1px solid var(--border);}
.ph-orb{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none;}
.ph-orb-1{width:500px;height:500px;background:rgba(10,143,120,.12);top:-30%;right:-5%;}
.ph-orb-2{width:350px;height:350px;background:rgba(108,43,217,.1);bottom:-20%;left:5%;}
.ph-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(108,43,217,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(108,43,217,.04) 1px,transparent 1px);background-size:60px 60px;}
#ph-wave{position:absolute;bottom:0;left:0;right:0;height:110px;pointer-events:none;opacity:.7;}
.ph-inner{position:relative;z-index:2;width:100%;max-width:1260px;margin:0 auto;padding:3rem 4%;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:flex-end;}
.ph-breadcrumb{display:flex;align-items:center;gap:.5rem;font-family:var(--fm);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:1.2rem;animation:fadeUp .7s var(--ease) both;}
.ph-breadcrumb a{color:var(--muted);text-decoration:none;transition:color .2s;}
.ph-breadcrumb a:hover{color:var(--purple-3);}
.ph-breadcrumb-sep{color:var(--border-2);}
.ph-breadcrumb-cur{color:var(--gold-2);}
.ph-num{font-family:var(--fm);font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--purple-3);margin-bottom:.6rem;display:flex;align-items:center;gap:.6rem;animation:fadeUp .7s .05s var(--ease) both;}
.ph-num::before{content:'';width:18px;height:1px;background:var(--purple-3);}
.ph-title{font-family:var(--fd);font-size:clamp(3rem,6vw,5.5rem);letter-spacing:.04em;line-height:.95;animation:fadeUp .8s .1s var(--ease) both;}
.ph-title em{font-family:var(--fb);font-style:italic;background:var(--g-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.ph-desc{font-size:.9rem;font-weight:300;color:rgba(240,238,255,.45);line-height:1.7;max-width:480px;margin-top:.9rem;animation:fadeUp .8s .18s var(--ease) both;}
.ph-tags{display:flex;gap:.5rem;flex-wrap:wrap;animation:fadeUp .8s .22s var(--ease) both;}
.ph-tag{padding:.28rem .75rem;border-radius:3px;font-family:var(--fm);font-size:.65rem;letter-spacing:.05em;}
.ph-tag-active{background:rgba(10,200,130,.1);color:#0ac882;border:1px solid rgba(10,200,130,.25);}
.ph-tag-done{background:rgba(108,43,217,.12);color:var(--purple-3);border:1px solid rgba(108,43,217,.25);}
@keyframes fadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}

/* MARQUEE */
.marquee-strip{position:relative;z-index:2;background:var(--black-3);border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:1rem 0;overflow:hidden;}
.marquee-track{display:flex;gap:2.5rem;animation:marquee 30s linear infinite;white-space:nowrap;width:max-content;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
.mq-item{display:inline-flex;align-items:center;font-family:var(--fd);font-size:.82rem;letter-spacing:.1em;color:rgba(240,238,255,.25);flex-shrink:0;}
.mq-sep{color:var(--gold);font-size:.65rem;margin:0 .4rem;}

/* KINEMATIC SCENE */
.scene-track{position:relative;}
.scene{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center;}
#scene-proj-track{height:320vh;}
#scene-proj{background:var(--black-2);}
.sc-grid{position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(108,43,217,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(108,43,217,.04) 1px,transparent 1px);background-size:55px 55px;}
.sc-orb{position:absolute;border-radius:50%;filter:blur(100px);pointer-events:none;}
.sc-orb-1{width:600px;height:600px;background:rgba(10,143,120,.12);top:-20%;right:-10%;}
.sc-orb-2{width:400px;height:400px;background:rgba(108,43,217,.1);bottom:-15%;left:-5%;}
#sc-wave{position:absolute;bottom:0;left:0;right:0;height:150px;pointer-events:none;}
.sc-content{position:relative;z-index:2;text-align:center;padding:0 4%;max-width:1000px;}
.sc-bgword{font-family:var(--fd);font-size:clamp(6rem,16vw,16rem);letter-spacing:.08em;line-height:.85;background:linear-gradient(135deg,rgba(10,143,120,.2),rgba(108,43,217,.12));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;user-select:none;}
.sc-tag{font-family:var(--fm);font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-2);margin-bottom:1rem;display:flex;align-items:center;justify-content:center;gap:.7rem;}
.sc-tag::before,.sc-tag::after{content:'';width:22px;height:1px;background:var(--gold-2);}
.sc-quote{font-family:var(--fb);font-style:italic;font-size:clamp(1.4rem,3vw,2.6rem);color:var(--white);line-height:1.4;max-width:780px;margin:0 auto;}
.sc-quote em{color:var(--gold-2);font-style:normal;}
.sc-line{height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);margin:1.4rem auto 0;width:0;}

/* PROJECTS BODY */
.proj-section{position:relative;z-index:2;padding:8rem 4%;}
.proj-inner{max-width:1260px;margin:0 auto;}
.sec-label{font-family:var(--fm);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--purple-3);margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem;}
.sec-label::before{content:'';width:18px;height:1px;background:var(--purple-3);}
.sec-heading{font-family:var(--fd);font-size:clamp(2.2rem,4vw,3.5rem);letter-spacing:.04em;line-height:1;margin-bottom:2.5rem;}
.sec-heading em{font-family:var(--fb);font-style:italic;background:var(--g-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}

.cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:4px 10px 10px 4px;opacity:.42;mix-blend-mode:luminosity;z-index:0;pointer-events:none;display:block;}
/* FEATURED PROJECT — full width */
.proj-featured{
  background:var(--black-2);border:1px solid var(--border-2);border-radius:14px;
  padding:2.8rem;display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:center;
  position:relative;overflow:hidden;margin-bottom:1.4rem;
  transition:border-color .3s,transform .3s var(--ease);
}
.proj-featured:hover{border-color:var(--purple-2);transform:translateY(-4px);}
.proj-featured::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;background:var(--g-full);}
.proj-featured::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 80% 30%,rgba(108,43,217,.08),transparent 60%);pointer-events:none;}
.pf-status{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--fm);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;padding:.28rem .75rem;border-radius:50px;margin-bottom:1rem;}
.st-active{background:rgba(10,200,130,.1);color:#0ac882;border:1px solid rgba(10,200,130,.25);}
.st-done{background:rgba(108,43,217,.1);color:var(--purple-3);border:1px solid rgba(108,43,217,.22);}
.pf-status-dot{width:6px;height:6px;border-radius:50%;background:#0ac882;animation:aPulse 2s infinite;}
@keyframes aPulse{0%,100%{box-shadow:0 0 0 0 rgba(10,200,130,.5);}50%{box-shadow:0 0 0 6px rgba(10,200,130,0);}}
.pf-title{font-family:var(--fd);font-size:clamp(1.6rem,3vw,2.4rem);letter-spacing:.04em;line-height:1.05;margin-bottom:.8rem;}
.pf-desc{font-size:.92rem;font-weight:300;color:rgba(240,238,255,.52);line-height:1.8;margin-bottom:1.2rem;}
.pf-stack{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.4rem;}
.stag{padding:.25rem .65rem;border-radius:3px;font-family:var(--fm);font-size:.65rem;}
.st-p{background:rgba(108,43,217,.15);color:var(--purple-3);border:1px solid rgba(108,43,217,.25);}
.st-b{background:rgba(26,107,255,.13);color:var(--blue-2);border:1px solid rgba(26,107,255,.22);}
.st-g{background:rgba(212,160,23,.12);color:var(--gold-2);border:1px solid rgba(212,160,23,.22);}
.pf-link{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--fm);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2);border:1px solid rgba(212,160,23,.3);padding:.4rem 1rem;border-radius:3px;text-decoration:none;transition:background .2s;cursor:none;}
.pf-link:hover{background:rgba(212,160,23,.1);}
/* Featured visual */
.pf-visual{height:220px;border-radius:10px;background:linear-gradient(135deg,#120820,#2d0f5a,#6c2bd9);display:flex;align-items:center;justify-content:center;font-size:4rem;position:relative;overflow:hidden;}
.pf-visual-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:24px 24px;}
.pf-visual-icon{position:relative;z-index:1;filter:drop-shadow(0 0 30px rgba(108,43,217,.8));animation:iconBob 3s ease-in-out infinite;}
@keyframes iconBob{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}

/* PROJECT GRID */
.proj-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;margin-bottom:1.4rem;}
.proj-card{background:var(--black-2);border:1px solid var(--border);border-radius:12px;padding:2rem;position:relative;overflow:hidden;transition:border-color .3s,transform .3s var(--ease),box-shadow .3s;cursor:none;}
.proj-card:hover{border-color:var(--purple-2);transform:translateY(-5px);box-shadow:0 20px 60px rgba(0,0,0,.5);}
.proj-card::after{content:'';position:absolute;inset:0;opacity:0;transition:opacity .4s;pointer-events:none;}
.proj-card:hover::after{opacity:1;}
.pc-glow-p::after{background:radial-gradient(circle at 70% 20%,rgba(108,43,217,.1),transparent 65%);}
.pc-glow-b::after{background:radial-gradient(circle at 70% 20%,rgba(26,107,255,.09),transparent 65%);}
.pc-glow-g::after{background:radial-gradient(circle at 70% 20%,rgba(212,160,23,.09),transparent 65%);}
.proj-card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1.1rem;}
.proj-icon{width:50px;height:50px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;}
.pi-p{background:rgba(108,43,217,.15);border:1px solid rgba(108,43,217,.25);}
.pi-b{background:rgba(26,107,255,.12);border:1px solid rgba(26,107,255,.22);}
.pi-g{background:rgba(212,160,23,.12);border:1px solid rgba(212,160,23,.22);}
.proj-arrow{color:var(--muted);font-size:1rem;transition:color .2s,transform .2s;}
.proj-card:hover .proj-arrow{color:var(--gold-2);transform:translate(3px,-3px);}
.proj-title{font-family:var(--fd);font-size:1.1rem;letter-spacing:.04em;margin-bottom:.6rem;}
.proj-desc{font-size:.85rem;font-weight:300;color:rgba(240,238,255,.48);line-height:1.7;margin-bottom:1.1rem;}
.proj-stack{display:flex;flex-wrap:wrap;gap:.35rem;}
.proj-period{font-family:var(--fm);font-size:.65rem;color:var(--muted);margin-top:.8rem;}

/* REVEAL */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal.visible{opacity:1;transform:translateY(0);}
.reveal-l{opacity:0;transform:translateX(-28px);transition:opacity .8s var(--ease),transform .8s var(--ease);}
.reveal-l.visible{opacity:1;transform:translateX(0);}

/* FOOTER */
footer{background:var(--black-3);border-top:1px solid var(--border);padding:3.5rem 4% 2rem;position:relative;z-index:2;}
.footer-inner{max-width:1260px;margin:0 auto;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;padding-bottom:2.5rem;border-bottom:1px solid var(--border);gap:2rem;flex-wrap:wrap;}
.footer-logo{font-family:var(--fd);font-size:1.5rem;letter-spacing:.12em;background:var(--g-gold);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;}
.footer-tagline{font-family:var(--fm);font-size:.7rem;letter-spacing:.08em;color:var(--muted);margin-top:.4rem;}
.footer-nav{display:flex;gap:1.5rem;flex-wrap:wrap;}
.footer-nav a{font-family:var(--fs);font-size:.75rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:rgba(240,238,255,.35);text-decoration:none;transition:color .2s;}
.footer-nav a:hover{color:var(--purple-3);}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;flex-wrap:wrap;gap:1rem;}
.footer-copy{font-family:var(--fm);font-size:.7rem;color:rgba(240,238,255,.2);}
.footer-social{display:flex;gap:.7rem;}
.footer-social a{width:34px;height:34px;border-radius:4px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:.9rem;color:rgba(240,238,255,.4);transition:border-color .2s,color .2s,background .2s;cursor:none;}
.footer-social a:hover{border-color:var(--purple-2);color:var(--purple-3);background:rgba(108,43,217,.12);}

@media(max-width:900px){.proj-featured{grid-template-columns:1fr;}.pf-visual{height:160px;}.proj-grid{grid-template-columns:1fr;}}
@media(max-width:768px){.nav-links,.nav-cta{display:none;}.ham{display:flex;}.ph-inner{grid-template-columns:1fr;}.ph-tags{display:none;}}
