:root {
  --bg:#050508;--bg2:#0a0a10;--surface:#0f0f18;
  --border:rgba(255,255,255,0.07);
  --accent:#00ffe0;--accent2:#7b61ff;--accent3:#ff6b35;
  --white:#f0f0f5;--muted:rgba(240,240,245,0.45);
  --font-d:'Syne',sans-serif;--font-m:'Space Mono',monospace;--font-b:'DM Sans',sans-serif;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--bg);color:var(--white);font-family:var(--font-b);font-size:16px;line-height:1.6;overflow-x:hidden;cursor:none;}
::-webkit-scrollbar{width:3px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--accent2);border-radius:2px;}

#cursor{position:fixed;width:12px;height:12px;background:var(--accent);border-radius:50%;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform .15s,background .3s;mix-blend-mode:difference;}
#cursor-follower{position:fixed;width:40px;height:40px;border:1px solid rgba(0,255,224,0.4);border-radius:50%;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s;}

body::before{
  content:'';
  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)'/%3E%3C/svg%3E");
  opacity:.028;
  pointer-events:none;
  z-index:9997;
}

.grid-lines{position:fixed;inset:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);background-size:80px 80px;}
.scanline{position:fixed;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--accent),transparent);opacity:.12;z-index:9996;animation:scanDown 6s linear infinite;pointer-events:none;}

@keyframes scanDown{from{top:-2px}to{top:100vh}}

nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:24px 48px;display:flex;align-items:center;justify-content:space-between;transition:background .4s,padding .4s;}
nav.scrolled{background:rgba(5,5,8,.88);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);padding:16px 48px;}
.nav-logo{font-family:var(--font-m);font-size:.9rem;color:var(--accent);letter-spacing:.05em;}
.nav-links{display:flex;gap:40px;list-style:none;margin-left:auto;}
.nav-links a{color:var(--muted);text-decoration:none;font-size:.78rem;font-family:var(--font-m);letter-spacing:.12em;text-transform:uppercase;transition:color .3s;position:relative;}
.nav-links a::after{content:'';position:absolute;bottom:-4px;left:0;right:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .3s;}
.nav-links a:hover{color:var(--white);}
.nav-links a:hover::after{transform:scaleX(1);}

#hero{min-height:100vh;display:flex;align-items:center;position:relative;overflow:hidden;padding:0 48px;}
.orb{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;}
.orb-1{width:600px;height:600px;background:radial-gradient(circle,rgba(123,97,255,.18) 0%,transparent 70%);top:-100px;right:-100px;animation:orbFloat 12s ease-in-out infinite;}
.orb-2{width:400px;height:400px;background:radial-gradient(circle,rgba(0,255,224,.12) 0%,transparent 70%);bottom:0;left:200px;animation:orbFloat 9s ease-in-out infinite reverse;}

@keyframes orbFloat{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-40px) scale(1.05)}
}

.hero-inner{position:relative;z-index:2;max-width:1100px;margin:0 auto;width:100%;}
.hero-tag{font-family:var(--font-m);font-size:.78rem;color:var(--accent);letter-spacing:.2em;text-transform:uppercase;margin-bottom:24px;display:inline-flex;align-items:center;gap:12px;opacity:0;animation:fadeUp .8s .3s forwards;}
.hero-name{font-family:var(--font-d);font-size:clamp(4rem,10vw,9rem);font-weight:800;line-height:.95;letter-spacing:-.02em;opacity:0;animation:fadeUp .9s .5s forwards;}
.hero-name .line{display:block;overflow:hidden;}
.hero-name .word{display:inline-block;}
.hero-name .outline{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.25);}
.hero-sub{margin-top:32px;font-size:1.05rem;color:var(--muted);max-width:520px;line-height:1.7;opacity:0;animation:fadeUp .9s .75s forwards;}
.hero-sub strong{color:var(--white);}
.hero-ctas{margin-top:48px;display:flex;gap:20px;align-items:center;opacity:0;animation:fadeUp .9s .95s forwards;}

.btn-primary{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;background:var(--accent);color:#000;font-family:var(--font-m);font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:transform .3s,box-shadow .3s;position:relative;overflow:hidden;}
.btn-primary::before{content:'';position:absolute;inset:0;background:rgba(255,255,255,.2);transform:translateX(-100%);transition:transform .3s;}
.btn-primary:hover::before{transform:translateX(0);}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(0,255,224,.25);}

.btn-ghost{display:inline-flex;align-items:center;gap:10px;padding:14px 32px;border:1px solid var(--border);color:var(--muted);font-family:var(--font-m);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;border-radius:2px;transition:border-color .3s,color .3s;}
.btn-ghost:hover{border-color:var(--accent2);color:var(--white);}

.scroll-hint{position:absolute;bottom:40px;left:48px;display:flex;align-items:center;gap:12px;font-family:var(--font-m);font-size:.7rem;color:var(--muted);letter-spacing:.15em;opacity:0;animation:fadeUp 1s 1.4s forwards;}
.scroll-line{width:40px;height:1px;background:var(--muted);position:relative;overflow:hidden;}
.scroll-line::after{content:'';position:absolute;inset:0;background:var(--accent);animation:sline 2s 2s infinite;}

@keyframes sline{0%{transform:translateX(-100%)}100%{transform:translateX(100%)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}

.code-deco{position:absolute;font-family:var(--font-m);font-size:.65rem;color:rgba(0,255,224,.06);pointer-events:none;line-height:1.8;white-space:pre;}
.code-deco-tl{top:110px;left:48px;}

section{position:relative;z-index:2;}
.s-label{font-family:var(--font-m);font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-bottom:16px;display:flex;align-items:center;gap:12px;}
.s-label::before{content:'';width:24px;height:1px;background:var(--accent);}
.s-title{font-family:var(--font-d);font-size:clamp(2.5rem,5vw,4.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin-bottom:80px;}

/* STATS */
.stats-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:60px 48px;display:grid;grid-template-columns:repeat(4,1fr);gap:0;max-width:1100px;margin:0 auto;}
.stat-item{text-align:center;border-right:1px solid var(--border);padding:20px;}
.stat-item:last-child{border-right:none;}
.stat-num{font-family:var(--font-d);font-size:3.5rem;font-weight:800;color:var(--white);line-height:1;display:block;}
.stat-num span{color:var(--accent);}
.stat-label{font-family:var(--font-m);font-size:.7rem;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-top:8px;display:block;}

/* ABOUT */
#about{padding:140px 48px;max-width:1100px;margin:0 auto;}
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
.about-text p{color:var(--muted);font-size:1.05rem;margin-bottom:24px;line-height:1.8;}
.about-text p strong{color:var(--white);}
.skills-grid{display:grid;gap:12px;}
.skill-row{display:flex;align-items:center;gap:16px;padding:14px 20px;border:1px solid var(--border);border-radius:4px;background:var(--surface);transition:border-color .3s,transform .3s;cursor:default;}
.skill-row:hover{border-color:var(--accent2);transform:translateX(8px);}
.skill-icon{font-size:1.2rem;width:28px;text-align:center;}
.skill-info{flex:1;}
.skill-name{font-family:var(--font-m);font-size:.78rem;color:var(--white);letter-spacing:.05em;}
.skill-sub{font-size:.72rem;color:var(--muted);margin-top:2px;}
.skill-bar{width:80px;height:2px;background:var(--border);border-radius:1px;overflow:hidden;}
.skill-bar-fill{height:100%;background:linear-gradient(90deg,var(--accent2),var(--accent));transform:scaleX(0);transform-origin:left;transition:transform 1s cubic-bezier(.22,.61,.36,1);}
.skill-row.in-view .skill-bar-fill{transform:scaleX(1);}

/* PROJECTS */
#projects{padding:140px 48px;max-width:1100px;margin:0 auto;}
.projects-list{display:grid;gap:clamp(1rem, 2.2vw, 1.5rem);}/* spaced cards */
.project-card{position:relative;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--surface);transition:border-color .4s;}
.project-card:hover{border-color:rgba(123,97,255,.5);}
.project-card.featured{border-color:rgba(0,255,224,.12);}
.project-card.featured:hover{border-color:rgba(0,255,224,.45);}
.project-card-inner{display:grid;grid-template-columns:1fr 420px;min-height:300px;align-items:stretch;}
.project-card.featured .project-card-inner{grid-template-columns:1fr 500px;}
.project-info{padding:48px;display:flex;flex-direction:column;justify-content:space-between;position:relative;z-index:2;}
.project-num{font-family:var(--font-m);font-size:.7rem;color:var(--muted);letter-spacing:.2em;}
.project-title{font-family:var(--font-d);font-size:2rem;font-weight:800;letter-spacing:-.02em;margin:16px 0 12px;transition:color .3s;}
.project-card.featured .project-title{font-size:2.4rem;}
.project-card:hover .project-title{color:var(--accent);}
.project-desc{color:var(--muted);font-size:.95rem;line-height:1.7;max-width:420px;}
.project-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px;}
.tag{padding:4px 12px;border:1px solid var(--border);border-radius:2px;font-family:var(--font-m);font-size:.68rem;color:var(--muted);letter-spacing:.08em;background:rgba(255,255,255,.03);transition:border-color .3s,color .3s;}
.project-card:hover .tag{border-color:rgba(0,255,224,.2);color:var(--accent);}
.project-link{display:inline-flex;align-items:center;gap:8px;margin-top:32px;font-family:var(--font-m);font-size:.75rem;color:var(--accent2);letter-spacing:.1em;text-transform:uppercase;text-decoration:none;transition:gap .3s;}
.project-link:hover{gap:16px;}

/* GALLERY COLLAGE GRID */
.project-visual{position:relative;overflow:hidden;}
.gallery-grid{display:grid;gap:3px;background:var(--bg2);height:100%;min-height:300px;}

.gallery-grid.layout-a{grid-template-columns:1.4fr 1fr;grid-template-rows:1fr 1fr;}
.gallery-grid.layout-a .g-thumb:first-child{grid-row:span 2;}

.gallery-grid.layout-b{grid-template-columns:repeat(3,1fr);grid-template-rows:1.5fr 1fr;}
.gallery-grid.layout-b .g-thumb:first-child{grid-column:span 3;}

.gallery-grid.layout-c{grid-template-columns:1fr 1fr;grid-template-rows:1fr;}
.gallery-grid.layout-d{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;}

.gallery-grid.layout-e{grid-template-columns:1.6fr 1fr;grid-template-rows:repeat(3,1fr);}
.gallery-grid.layout-e .g-thumb:first-child{grid-row:span 3;}

.g-thumb{position:relative;overflow:hidden;cursor:zoom-in;background:var(--surface);transition:filter .3s;min-height:100px;}
.g-thumb:hover{filter:brightness(1.18);}
.g-thumb img{width:100%;height:100%;object-fit:cover;object-position:top;display:block;transition:transform .5s cubic-bezier(.22,.61,.36,1);}
.g-thumb:hover img{transform:scale(1.06);}
.g-thumb .ph{width:100%;height:100%;min-height:100px;background:var(--bg2);display:flex;align-items:center;justify-content:center;position:relative;}
.g-thumb .ph-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(123,97,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(123,97,255,.07) 1px,transparent 1px);background-size:28px 28px;}
.g-thumb .ph-label{font-family:var(--font-m);font-size:.65rem;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;z-index:1;text-align:center;padding:10px;}
.g-thumb .ph-icon{font-size:1.4rem;margin-bottom:6px;display:block;opacity:.3;}
.g-thumb::after{content:'⊕';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:rgba(255,255,255,.7);background:rgba(0,0,0,.3);opacity:0;transition:opacity .3s;}
.g-thumb:hover::after{opacity:1;}

/* Live preview */
.live-preview-wrap{position:relative;width:100%;height:100%;min-height:300px;overflow:hidden;}
.live-preview-wrap iframe{width:180%;height:180%;border:none;transform:scale(0.556);transform-origin:top left;display:block;pointer-events:none;}
.live-badge{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:6px;padding:4px 10px;background:rgba(0,255,224,.12);border:1px solid rgba(0,255,224,.3);border-radius:2px;font-family:var(--font-m);font-size:.62rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;z-index:2;}
.live-badge::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--accent);animation:pdot 1.5s infinite;}

/* LIGHTBOX */
#lightbox{position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.95);backdrop-filter:blur(16px);display:none;flex-direction:column;align-items:center;justify-content:center;cursor:auto;}
#lightbox.open{display:flex;}
#lightbox *{cursor:auto;}
#lightbox button,#lightbox .lb-th{cursor:pointer;}
.lb-header{position:absolute;top:0;left:0;right:0;padding:16px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);background:rgba(5,5,8,.7);z-index:2;}
.lb-title{font-family:var(--font-m);font-size:.8rem;color:var(--muted);letter-spacing:.12em;}
.lb-counter{font-family:var(--font-m);font-size:.75rem;color:var(--accent);}
.lb-close{background:none;border:1px solid var(--border);color:var(--muted);width:36px;height:36px;border-radius:2px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s;}
.lb-close:hover{border-color:var(--accent);color:var(--accent);}
.lb-body{display:flex;flex-direction:column;align-items:center;width:100%;max-width:1100px;padding:72px 40px 0;flex:1;overflow:hidden;}
.lb-main{flex:1;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;position:relative;}
.lb-img-area{max-width:100%;max-height:calc(100vh - 220px);object-fit:contain;display:block;border-radius:4px;box-shadow:0 24px 80px rgba(0,0,0,.8);transition:opacity .25s,transform .25s;user-select:none;}
.lb-ph-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-family:var(--font-m);font-size:.85rem;letter-spacing:.12em;min-height:40vh;}
.lb-ph-wrap .big-icon{font-size:3rem;opacity:.25;}
.lb-iframe-wrap{width:90vw;max-width:1100px;height:calc(100vh - 220px);border:none;display:block;border-radius:4px;box-shadow:0 24px 80px rgba(0,0,0,.8);}
.lb-arrow{position:absolute;top:50%;transform:translateY(-50%);background:rgba(15,15,24,.8);border:1px solid var(--border);color:var(--white);width:48px;height:64px;border-radius:2px;cursor:pointer;font-size:1.6rem;display:flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s;z-index:5;}
.lb-prev{left:12px;}
.lb-next{right:12px;}
.lb-arrow:hover{border-color:var(--accent2);background:rgba(123,97,255,.15);}
.lb-strip{width:100%;padding:12px 40px;display:flex;gap:8px;justify-content:center;overflow-x:auto;flex-shrink:0;background:rgba(5,5,8,.6);border-top:1px solid var(--border);}
.lb-strip::-webkit-scrollbar{height:2px;}
.lb-strip::-webkit-scrollbar-thumb{background:var(--accent2);}
.lb-th{width:72px;height:48px;border-radius:3px;overflow:hidden;border:2px solid transparent;cursor:pointer;flex-shrink:0;opacity:.4;transition:opacity .2s,border-color .2s;background:var(--surface);}
.lb-th img{width:100%;height:100%;object-fit:cover;}
.lb-th.active{border-color:var(--accent);opacity:1;}
.lb-th:hover{opacity:.75;}
.lb-th-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:.58rem;color:var(--muted);font-family:var(--font-m);background:linear-gradient(135deg,var(--surface),var(--bg2));}

@media(max-width:900px){
  .gallery-grid{grid-template-columns:1fr;}
  .gallery-grid.trio .g-thumb:first-child{grid-row:span 1;}
  .lb-arrow{width:36px;height:48px;font-size:1.2rem;}
  .lb-body{padding:64px 12px 0;}
  .lb-strip{padding:10px 12px;}
}

/* EXPERIENCE */
#experience{padding:140px 48px;border-top:1px solid var(--border);}
.exp-inner{max-width:1100px;margin:0 auto;}
.exp-list{display:grid;gap:0;}
.exp-item{display:grid;grid-template-columns:200px 1fr;gap:40px;padding:40px 0;border-bottom:1px solid var(--border);transition:background .3s;}
.exp-item:hover{background:rgba(255,255,255,.01);}
.exp-date{font-family:var(--font-m);font-size:.72rem;color:var(--muted);letter-spacing:.1em;padding-top:4px;line-height:1.6;}
.exp-company{font-family:var(--font-m);font-size:.68rem;color:var(--accent);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;}
.exp-role{font-family:var(--font-d);font-size:1.4rem;font-weight:700;margin-bottom:12px;letter-spacing:-.02em;}
.exp-desc{color:var(--muted);font-size:.9rem;line-height:1.7;}
.exp-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px;}

/* CLASSIFIED */
.classified-badge{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border:1px solid rgba(255,107,53,.4);border-radius:2px;font-family:var(--font-m);font-size:.6rem;color:var(--accent3);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px;background:rgba(255,107,53,.04);}
.classified-badge::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--accent3);animation:pdot 1.5s infinite;}
@keyframes pdot{0%,100%{opacity:1}50%{opacity:.3}}
.classified-text{font-family:var(--font-m);font-size:.78rem;color:var(--muted);line-height:1.9;letter-spacing:.02em;}
.classified-text .r{display:inline-block;background:rgba(255,255,255,.07);color:transparent;border-radius:2px;padding:1px 6px;user-select:none;position:relative;margin:0 2px;}
.classified-text .r::after{content:'████████';position:absolute;inset:0;color:rgba(255,255,255,.1);font-family:var(--font-m);display:flex;align-items:center;padding:0 4px;font-size:.65rem;letter-spacing:0;}
.real-desc{color:var(--muted);font-size:.9rem;line-height:1.7;display:none;}
.classified-content.open .classified-text{display:none;}
.classified-content.open .real-desc{display:block;animation:fadeUp .4s forwards;}
.declassify-btn{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:7px 16px;border:1px solid rgba(255,107,53,.25);border-radius:2px;background:none;color:var(--accent3);font-family:var(--font-m);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:border-color .3s,background .3s;}
.declassify-btn:hover{border-color:var(--accent3);background:rgba(255,107,53,.05);}
.declassify-btn.open-state{color:var(--muted);border-color:rgba(0,255,224,.15);}

/* CONTACT */
#contact{padding:140px 48px;text-align:center;position:relative;overflow:hidden;}
.contact-orb{position:absolute;width:600px;height:600px;background:radial-gradient(circle,rgba(123,97,255,.1) 0%,transparent 70%);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;}
.contact-inner{position:relative;z-index:2;max-width:700px;margin:0 auto;}
.contact-title{font-family:var(--font-d);font-size:clamp(3rem,7vw,6rem);font-weight:800;line-height:1;letter-spacing:-.04em;margin-bottom:24px;}
.contact-title .outline{color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.18);}
.contact-sub{color:var(--muted);font-size:1rem;margin-bottom:48px;line-height:1.7;}
.contact-email{font-family:var(--font-m);font-size:.9rem;color:var(--accent);text-decoration:none;display:inline-block;margin-top:28px;letter-spacing:.05em;border-bottom:1px solid rgba(0,255,224,.3);padding-bottom:4px;transition:border-color .3s;}
.contact-email:hover{border-color:var(--accent);}

/* CONTACT FORM */
.contact-form-wrap{width:100%;max-width:680px;margin:0 auto;text-align:left;}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.cf-col{display:flex;flex-direction:column;}
.cf-label{font-family:var(--font-m);font-size:.65rem;color:var(--muted);letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;}
.cf-input{background:var(--surface);border:1px solid var(--border);border-radius:3px;color:var(--white);font-family:var(--font-b);font-size:.95rem;padding:14px 18px;outline:none;transition:border-color .3s,box-shadow .3s;width:100%;cursor:text;}
.cf-input::placeholder{color:rgba(240,240,245,.25);}
.cf-input:focus{border-color:var(--accent2);box-shadow:0 0 0 3px rgba(123,97,255,.1);}
.cf-textarea{resize:vertical;min-height:130px;line-height:1.6;}
.cf-footer{display:flex;align-items:center;gap:24px;margin-top:24px;flex-wrap:wrap;}
.cf-submit{margin:0;}
.cf-success{display:none;align-items:center;gap:10px;margin-top:16px;padding:14px 20px;background:rgba(0,255,224,.06);border:1px solid rgba(0,255,224,.2);border-radius:3px;font-family:var(--font-m);font-size:.78rem;color:var(--accent);letter-spacing:.08em;}
.cf-success.show{display:flex;animation:fadeUp .4s forwards;}
.cf-success-icon{font-size:1.2rem;}
.cf-error{display:none;margin-top:12px;font-family:var(--font-m);font-size:.72rem;color:#ff6b6b;letter-spacing:.08em;}
.cf-error.show{display:block;}

@media(max-width:900px){
  .cf-grid{grid-template-columns:1fr;}
}

footer{border-top:1px solid var(--border);padding:32px 48px;display:flex;align-items:center;justify-content:space-between;}
.footer-copy{font-family:var(--font-m);font-size:.7rem;color:var(--muted);letter-spacing:.1em;}
.footer-links{display:flex;gap:24px;list-style:none;}
.footer-links a{font-family:var(--font-m);font-size:.7rem;color:var(--muted);text-decoration:none;letter-spacing:.1em;text-transform:uppercase;transition:color .3s;}
.footer-links a:hover{color:var(--accent);}

/* REVEAL */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
.reveal-left{opacity:0;transform:translateX(-50px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
.reveal-right{opacity:0;transform:translateX(50px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1);}
.reveal.visible,.reveal-left.visible,.reveal-right.visible{opacity:1;transform:translate(0,0);}

.typed-cursor::after{content:'|';color:var(--accent);animation:blink .8s infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

@media(max-width:900px){
  nav{padding:18px 24px;}
  nav.scrolled{padding:12px 24px;}
  .nav-links{display:none;}
  
  #hero,#about,#projects,#experience,#contact{padding-left:24px;padding-right:24px;}
  .scroll-hint{left:24px;}
  .about-grid,.project-card-inner,.project-card.featured .project-card-inner{grid-template-columns:1fr;}
  .stats-strip{grid-template-columns:repeat(2,1fr);padding:40px 24px;}
  .stat-item{border-right:none;border-bottom:1px solid var(--border);}
  .exp-item{grid-template-columns:1fr;gap:10px;}
  footer{flex-direction:column;gap:16px;text-align:center;}
  .lb-stage{padding:70px 16px 110px;gap:12px;}
  .lb-arrow{width:40px;height:40px;}
}
.hero-name .accent-word {
  color: transparent;
  -webkit-text-stroke: 1px rgba(255,255,255,0.3);
}

.hero-name .accent-word:hover {
  -webkit-text-stroke: 1px var(--accent);
  color: transparent;
}

/* PROJECT 2 — PREMIUM PHONE GALLERY */
.project-gallery-suivi{padding:22px;background:
  radial-gradient(circle at 82% 18%, rgba(0,255,224,.12), transparent 24%),
  linear-gradient(135deg, rgba(123,97,255,.12), rgba(0,0,0,0) 40%),
  linear-gradient(180deg, #05060b 0%, #090b14 100%);
}
.gallery-grid.layout-f{grid-template-columns:1.45fr .82fr .82fr;grid-template-rows:repeat(2, minmax(150px, 1fr));gap:16px;min-height:460px;align-items:stretch;}
.gallery-grid.layout-f .hero-shot{grid-row:1 / span 2;grid-column:1;min-height:420px;}
.phone-shot{appearance:none;border:0;padding:0;background:transparent;position:relative;min-height:180px;border-radius:34px;overflow:hidden;isolation:isolate;box-shadow:0 18px 55px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.06);}
.phone-shot::before{content:'';position:absolute;inset:10px;z-index:3;border-radius:26px;border:1px solid rgba(255,255,255,.08);pointer-events:none;}
.phone-shot::after{content:'';position:absolute;top:10px;left:50%;transform:translateX(-50%);width:32%;max-width:112px;height:16px;border-radius:0 0 14px 14px;background:rgba(8,9,15,.92);z-index:4;box-shadow:0 2px 12px rgba(0,0,0,.35);opacity:.96;transition:transform .45s cubic-bezier(.22,.61,.36,1);}
.phone-shot img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;transition:transform .9s cubic-bezier(.22,.61,.36,1), filter .45s ease;}
.phone-shot:hover img{transform:scale(1.065);filter:saturate(1.02) contrast(1.02);}
.phone-shot:hover::after{transform:translateX(-50%) translateY(4px);}
.phone-shot .shot-ui{position:absolute;left:18px;right:18px;bottom:18px;z-index:5;display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:22px;background:linear-gradient(180deg, rgba(255,255,255,.18), rgba(5,8,14,.7));backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.12);box-shadow:0 12px 26px rgba(0,0,0,.32);text-align:left;}
.phone-shot .shot-kicker{font-family:var(--font-m);font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.78);}
.phone-shot strong{font-family:var(--font-d);font-size:clamp(1.1rem,1.7vw,1.7rem);line-height:1;color:var(--white);}
.phone-shot em{font-style:normal;color:rgba(240,240,245,.78);font-size:.9rem;line-height:1.35;}
.hero-shot .shot-ui{max-width:280px;}
.gallery-note{position:absolute;right:20px;bottom:20px;display:inline-flex;align-items:center;gap:12px;padding:12px 18px;border-radius:999px;background:rgba(7,10,18,.82);border:1px solid rgba(255,255,255,.08);color:rgba(240,240,245,.72);font-family:var(--font-m);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;backdrop-filter:blur(12px);}
.gallery-note .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px rgba(0,255,224,.08);}
.project-gallery-suivi .g-thumb::after{display:none;}

/* LIGHTBOX REWORK */
#lightbox{background:rgba(2,4,10,.94);backdrop-filter:blur(14px);}
#lightbox::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(123,97,255,.07) 1px, transparent 1px),linear-gradient(90deg, rgba(123,97,255,.07) 1px, transparent 1px);background-size:64px 64px;opacity:.22;pointer-events:none;}
.lb-header{padding:22px 38px;background:rgba(2,4,10,.76);}
.lb-title{font-size:.82rem;color:rgba(240,240,245,.75);letter-spacing:.22em;text-transform:uppercase;}
.lb-counter{font-size:.95rem;font-weight:700;letter-spacing:.22em;}
.lb-stage{position:relative;z-index:1;width:min(1280px, calc(100vw - 48px));margin:96px auto 26px;display:grid;grid-template-columns:88px minmax(0,1fr) 88px;gap:28px;align-items:center;}
.lb-viewer{display:flex;flex-direction:column;align-items:center;gap:18px;min-width:0;}
.lb-phone-shell{width:100%;min-height:min(72vh, 760px);display:flex;align-items:center;justify-content:center;padding:26px;border-radius:34px;border:1px solid rgba(255,255,255,.08);background:radial-gradient(circle at left center, rgba(0,255,224,.08), transparent 26%), radial-gradient(circle at right center, rgba(123,97,255,.12), transparent 26%), rgba(3,7,15,.7);box-shadow:0 20px 80px rgba(0,0,0,.4), inset 0 0 0 1px rgba(255,255,255,.04);overflow:hidden;}
.lb-img-wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%;}
.lb-img-area{width:auto;max-width:min(100%, 440px);max-height:min(66vh, 760px);height:auto;border-radius:28px;box-shadow:0 24px 80px rgba(0,0,0,.55), 0 0 0 1px rgba(255,255,255,.06);background:#0a0d18;}
.lb-meta{display:inline-flex;align-items:center;gap:12px;max-width:min(100%, 440px);align-self:flex-start;margin-left:max(0px, calc(50% - 220px));padding:16px 24px;border-radius:999px;background:rgba(3,7,15,.86);border:1px solid rgba(255,255,255,.08);font-family:var(--font-m);font-size:.82rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(240,240,245,.8);}
.lb-meta::before{content:'';width:12px;height:12px;border-radius:50%;background:linear-gradient(135deg, var(--accent2), var(--accent));box-shadow:0 0 0 6px rgba(123,97,255,.12);flex:0 0 auto;}
.lb-arrow{position:relative;top:auto;transform:none;width:88px;height:120px;border-radius:28px;background:rgba(2,7,20,.76);border:1px solid rgba(255,255,255,.09);font-size:3rem;backdrop-filter:blur(14px);}
.lb-arrow:hover{border-color:rgba(0,255,224,.35);background:rgba(0,255,224,.08);}
.lb-thumbs{position:relative;z-index:1;width:min(760px, calc(100vw - 48px));display:flex;justify-content:center;gap:14px;margin:0 auto 28px;overflow-x:auto;padding:0 4px 8px;}
.lb-thumbs::-webkit-scrollbar{height:4px;}
.lb-thumbs::-webkit-scrollbar-thumb{background:rgba(123,97,255,.55);border-radius:999px;}
.lb-th{width:96px;height:168px;border-radius:26px;overflow:hidden;border:1px solid rgba(255,255,255,.08);background:rgba(9,12,20,.78);opacity:.48;transform:scale(.92);transition:opacity .25s,border-color .25s,transform .25s,box-shadow .25s;}
.lb-th img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.lb-th.active{opacity:1;transform:scale(1);border-color:var(--accent);box-shadow:0 0 0 2px rgba(0,255,224,.15), 0 10px 25px rgba(0,0,0,.35);}
.lb-close{width:46px;height:46px;border-radius:14px;}

@media(max-width:1200px){
  .gallery-grid.layout-f{grid-template-columns:1.1fr 1fr 1fr;}
}
@media(max-width:900px){
  .gallery-grid.layout-f{grid-template-columns:1fr 1fr;grid-template-rows:auto;min-height:auto;}
  .gallery-grid.layout-f .hero-shot{grid-row:auto;grid-column:1 / -1;min-height:360px;}
  .phone-shot{min-height:230px;}
  .gallery-note{position:static;margin-top:14px;justify-content:center;}
  .lb-stage{width:calc(100vw - 18px);margin:84px auto 16px;grid-template-columns:52px minmax(0,1fr) 52px;gap:8px;}
  .lb-phone-shell{padding:16px;min-height:70vh;border-radius:26px;}
  .lb-img-area{max-width:min(100%, 320px);max-height:64vh;border-radius:22px;}
  .lb-meta{font-size:.68rem;letter-spacing:.12em;padding:12px 14px;max-width:100%;margin-left:0;align-self:center;}
  .lb-arrow{width:52px;height:92px;font-size:2.15rem;border-radius:18px;}
  .lb-thumbs{width:calc(100vw - 18px);justify-content:flex-start;gap:10px;padding:0 8px 10px;}
  .lb-th{width:74px;height:124px;border-radius:20px;}
}

/* LIGHTBOX IMAGE ZOOM */
.lb-img-wrap{position:relative;overflow:hidden;touch-action:none;cursor:grab;}
.lb-img-wrap.is-zoomed{cursor:zoom-out;}
.lb-img-wrap.is-dragging{cursor:grabbing;}
.lb-img-area{transform-origin:center center;will-change:transform;}
.lb-img-wrap.is-zoomed .lb-img-area{cursor:grab;}
.lb-img-wrap.is-dragging .lb-img-area{cursor:grabbing;}
.lb-img-area.zoom-resetting{transition:transform .22s ease;}






















/* PROJECT 2 - grille 5 images */
.gallery-grid.layout-f{
  grid-template-columns: 1.35fr 1fr 1fr;
  grid-template-rows: repeat(2, 180px);
  gap: 3px;
}

.gallery-grid.layout-f .g-thumb:first-child{
  grid-row: span 2;
}

.gallery-grid.layout-f .g-thumb img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.gallery-grid.layout-f .ph{
  width: 100%;
  height: 100%;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}

.gallery-grid.layout-f .ph-label{
  width: 100%;
  height: 100%;
  padding: 0;
  position: relative;
  display: block;
  overflow: hidden;
  color: transparent;
  font-size: 0;
}

.gallery-grid.layout-f .ph-grid,
.gallery-grid.layout-f .ph-icon{
  display: none;
}

@media (max-width: 900px){
  .gallery-grid.layout-f{
    grid-template-columns: 1fr 1fr;
    grid-template-rows: repeat(3, 180px);
  }

  .gallery-grid.layout-f .g-thumb:first-child{
    grid-column: 1 / -1;
    grid-row: span 1;
  }
}

.project-visual.project-gallery {
  margin-top: 20%;
  margin-right: 10%;

}

/* ===== Final responsive polish ===== */
:root{
  --container:min(92vw, 72rem);
  --nav-x:clamp(1rem, 3vw, 3rem);
  --section-y:clamp(5rem, 10vw, 8.75rem);
  --card-pad:clamp(1.25rem, 3vw, 3rem);
}
html{font-size:100%;}
body{min-width:20rem;cursor:auto;}
a,button,input,textarea{touch-action:manipulation;}
nav{padding:1.25rem var(--nav-x);gap:1rem;}
nav.scrolled{padding:.9rem var(--nav-x);}
.nav-toggle{display:none;width:3rem;height:3rem;margin-left:auto;border:1px solid var(--border);background:rgba(15,15,24,.82);border-radius:.85rem;align-items:center;justify-content:center;flex-direction:column;gap:.28rem;cursor:pointer;backdrop-filter:blur(12px);}
.nav-toggle span{display:block;width:1.15rem;height:2px;background:var(--white);transition:transform .3s ease,opacity .3s ease;}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(.4rem) rotate(45deg);}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-.4rem) rotate(-45deg);}
.nav-links{gap:clamp(1rem,2vw,2.5rem);}
#hero{padding:0 var(--nav-x);}
.hero-inner,.stats-strip,#about,#projects,.exp-inner,.contact-inner{max-width:var(--container);}
.code-deco-tl{left:var(--nav-x);max-width:min(40ch, 42vw);}
.scroll-hint{left:var(--nav-x);bottom:2rem;}
.stats-strip{padding:clamp(2rem,5vw,3.75rem) var(--nav-x);}
#about,#projects,#experience,#contact,#education{padding:var(--section-y) var(--nav-x);}
.about-grid{gap:clamp(2rem,5vw,5rem);}
.project-card-inner{grid-template-columns:minmax(0,1.1fr) minmax(18rem, 39%);}
.project-card.featured .project-card-inner{grid-template-columns:minmax(0,1fr) minmax(22rem, 44%);}
.project-info{padding:var(--card-pad);}
.project-info > div{max-width:36rem;}
.project-desc{max-width:35rem;}
.project-visual.project-gallery{margin-top:0;margin-right:0;}
.gallery-grid.layout-f{grid-template-columns:1.25fr 1fr 1fr;grid-template-rows:repeat(2, minmax(11rem, 17vw));gap:.5rem;}
.gallery-grid.layout-f .g-thumb:first-child{grid-row:1 / span 2;}
.gallery-grid.layout-f .ph-label{font-size:0;}
.gallery-grid.layout-f .ph-label img{display:block;}
.g-thumb::before{content:attr(data-caption);position:absolute;left:.9rem;right:.9rem;bottom:.9rem;z-index:2;padding:.7rem .8rem;border:1px solid rgba(255,255,255,.1);border-radius:1rem;background:linear-gradient(180deg, rgba(8,10,16,.25), rgba(8,10,16,.82));font-family:var(--font-m);font-size:.64rem;line-height:1.35;color:rgba(240,240,245,.92);letter-spacing:.08em;text-transform:uppercase;backdrop-filter:blur(10px);opacity:0;transform:translateY(.5rem);transition:opacity .25s ease, transform .25s ease;}
.g-thumb:hover::before,.g-thumb:focus-visible::before{opacity:1;transform:translateY(0);}
.live-preview-wrap iframe{width:165%;height:165%;transform:scale(.606);}
.exp-item{grid-template-columns:minmax(9rem, 12rem) minmax(0,1fr);gap:clamp(1rem,3vw,2.5rem);}
footer{padding:1.5rem var(--nav-x);}
@media (hover:none),(pointer:coarse){
  #cursor,#cursor-follower{display:none !important;}
  .g-thumb::before{opacity:1;transform:none;}
}
@media(max-width:64rem){
  .project-card-inner,.project-card.featured .project-card-inner{grid-template-columns:1fr;}
  .project-visual{min-height:22rem;}
}

@media(min-width:64.0625rem){
  .project-card:not(.featured) .project-card-inner{align-items:center;}
  .project-card:not(.featured) .project-visual{min-width:0;}
}
@media(max-width:56.25rem){
  .nav-toggle{display:inline-flex;}
  .nav-links{position:absolute;top:calc(100% + .75rem);left:var(--nav-x);right:var(--nav-x);display:flex;flex-direction:column;align-items:flex-start;padding:1rem 1.1rem;background:rgba(5,5,8,.94);border:1px solid var(--border);border-radius:1rem;backdrop-filter:blur(20px);opacity:0;pointer-events:none;transform:translateY(-.6rem);transition:opacity .25s ease,transform .25s ease;}
  nav.menu-open .nav-links{opacity:1;pointer-events:auto;transform:translateY(0);}
  .nav-links a{font-size:.82rem;}
  .hero-sub{max-width:38rem;}
  .stats-strip{grid-template-columns:repeat(2,1fr);}
  .gallery-grid.layout-f{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3, minmax(10rem, 26vw));}
  .gallery-grid.layout-f .g-thumb:first-child{grid-column:1 / -1;grid-row:auto;min-height:14rem;}
}
@media(max-width:42rem){
  html{font-size:15px;}
  .hero-name{font-size:clamp(3rem, 18vw, 5rem);}
  .hero-ctas{flex-direction:column;align-items:stretch;gap:.9rem;}
  .btn-primary,.btn-ghost{justify-content:center;width:100%;padding:.95rem 1.25rem;}
  .stats-strip{grid-template-columns:1fr;padding-inline:var(--nav-x);}
  .stat-item{padding:1rem .5rem;border-bottom:1px solid var(--border);}
  .stat-item:last-child{border-bottom:none;}
  .about-text p,.project-desc,.exp-desc,.contact-sub{font-size:.98rem;}
  .skill-row{padding:1rem;}
  .gallery-grid.layout-f{grid-template-columns:1fr 1fr;grid-template-rows:repeat(3, minmax(7.5rem, 32vw));gap:.45rem;}
  .gallery-grid.layout-f .g-thumb{min-height:7.5rem;}
  .gallery-grid.layout-f .g-thumb:first-child{grid-column:1 / -1;grid-row:auto;min-height:10.5rem;}
  .live-preview-wrap{min-height:18rem;}
  .live-preview-wrap iframe{width:240%;height:240%;transform:scale(.417);}
  .exp-item{padding:1.8rem 0;}
  .cf-footer{flex-direction:column;align-items:stretch;}
  .contact-email{text-align:center;}
  footer{padding-bottom:2.5rem;}
}







@media (max-width: 42rem){
  .hero-name{
    font-size: clamp(2.55rem, 13vw, 4.6rem);
    line-height: 1.02;
    letter-spacing: -0.015em;
  }

  .hero-name .line{
    display: block;
    overflow: visible;
  }

  .hero-name .word{
    display: inline-block;
    max-width: 100%;
    white-space: nowrap;
  }

  .hero-name .accent-word{
    -webkit-text-stroke: 1px rgba(255,255,255,0.3);
  }
}















/* introoo */
/* =========================
   CINEMATIC INTRO LOADER
========================= */

html.is-loading,
html.is-loading body{
  overflow:hidden;
}

body.intro-done #intro-loader{
  pointer-events:none;
}

#intro-loader{
  position:fixed;
  inset:0;
  z-index:20000;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 50%, rgba(123,97,255,.16) 0%, rgba(0,0,0,0) 22%),
    radial-gradient(circle at 50% 50%, rgba(0,255,224,.10) 0%, rgba(0,0,0,0) 30%),
    linear-gradient(180deg, #04050b 0%, #050508 45%, #020305 100%);
  opacity:1;
  visibility:visible;
  transition:
    opacity .9s ease,
    visibility .9s ease,
    transform .9s ease;
}

#intro-loader::before{
  content:'';
  position:absolute;
  inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
  background-size:60px 60px;
  opacity:.22;
  animation:introGridPulse 3s ease-in-out infinite;
}

.intro-noise{
  position:absolute;
  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.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");
  opacity:.05;
  mix-blend-mode:screen;
  pointer-events:none;
}

.intro-center{
  position:relative;
  z-index:2;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:2rem;
  transform:translateY(10px);
  animation:introRise .9s ease forwards;
}

.intro-core-wrap{
  position:relative;
  width:min(34vw, 320px);
  aspect-ratio:1;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:introWholeSpin 6s linear infinite;
}

.intro-ring{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:
    inset 0 0 30px rgba(255,255,255,.02),
    0 0 30px rgba(123,97,255,.06);
}

.ring-1{
  inset:4%;
  border-color:rgba(0,255,224,.22);
  animation:introRingSpinA 4s linear infinite;
}
.ring-2{
  inset:15%;
  border-style:dashed;
  border-color:rgba(123,97,255,.35);
  animation:introRingSpinB 5.2s linear infinite;
}
.ring-3{
  inset:28%;
  border-color:rgba(255,255,255,.14);
  animation:introRingSpinA 3.6s linear infinite reverse;
}

.intro-ring::before,
.intro-ring::after{
  content:'';
  position:absolute;
  border-radius:50%;
  inset:-1px;
  border:inherit;
  opacity:.28;
  filter:blur(8px);
}

.intro-core{
  position:relative;
  width:34%;
  aspect-ratio:1;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  animation:introCorePulse 1.2s ease-in-out infinite;
}

.intro-core-glow{
  position:absolute;
  inset:-40%;
  border-radius:50%;
  background:
    radial-gradient(circle, rgba(0,255,224,.28) 0%, rgba(123,97,255,.18) 30%, rgba(0,0,0,0) 68%);
  filter:blur(22px);
}

.intro-core-inner{
  position:relative;
  width:100%;
  height:100%;
  border-radius:50%;
  background:
    radial-gradient(circle at 35% 35%, rgba(255,255,255,.95) 0%, rgba(0,255,224,.95) 18%, rgba(123,97,255,.8) 48%, rgba(2,8,18,.95) 76%);
  box-shadow:
    0 0 30px rgba(0,255,224,.35),
    0 0 90px rgba(123,97,255,.25),
    inset 0 0 25px rgba(255,255,255,.18);
}

.intro-core-inner::before{
  content:'';
  position:absolute;
  inset:18%;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.24);
  opacity:.8;
}

.intro-core-inner::after{
  content:'';
  position:absolute;
  top:16%;
  left:20%;
  width:26%;
  height:26%;
  border-radius:50%;
  background:rgba(255,255,255,.9);
  filter:blur(8px);
  opacity:.75;
}

.intro-shards{
  position:absolute;
  inset:0;
}

.shard{
  position:absolute;
  top:50%;
  left:50%;
  width:8px;
  height:44px;
  margin:-22px 0 0 -4px;
  border-radius:999px;
  background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(0,255,224,.7), rgba(123,97,255,0));
  opacity:0;
  transform-origin:center 140px;
}

.s1{transform:rotate(0deg);}
.s2{transform:rotate(30deg);}
.s3{transform:rotate(60deg);}
.s4{transform:rotate(90deg);}
.s5{transform:rotate(120deg);}
.s6{transform:rotate(150deg);}
.s7{transform:rotate(180deg);}
.s8{transform:rotate(210deg);}
.s9{transform:rotate(240deg);}
.s10{transform:rotate(270deg);}
.s11{transform:rotate(300deg);}
.s12{transform:rotate(330deg);}

.intro-particles{
  position:absolute;
  inset:0;
}

.intro-particles span{
  position:absolute;
  top:50%;
  left:50%;
  width:6px;
  height:6px;
  margin:-3px 0 0 -3px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 16px rgba(0,255,224,.55);
  opacity:0;
}

.intro-particles span:nth-child(1){transform:translate(0,0);}
.intro-particles span:nth-child(2){transform:translate(0,0);}
.intro-particles span:nth-child(3){transform:translate(0,0);}
.intro-particles span:nth-child(4){transform:translate(0,0);}
.intro-particles span:nth-child(5){transform:translate(0,0);}
.intro-particles span:nth-child(6){transform:translate(0,0);}
.intro-particles span:nth-child(7){transform:translate(0,0);}
.intro-particles span:nth-child(8){transform:translate(0,0);}
.intro-particles span:nth-child(9){transform:translate(0,0);}
.intro-particles span:nth-child(10){transform:translate(0,0);}
.intro-particles span:nth-child(11){transform:translate(0,0);}
.intro-particles span:nth-child(12){transform:translate(0,0);}

.intro-brand{
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:.55rem;
  align-items:center;
}

.intro-kicker{
  font-family:var(--font-m);
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  color:rgba(240,240,245,.62);
  animation:introFlicker 1.8s ease-in-out infinite;
}

.intro-name{
  font-family:var(--font-d);
  font-size:clamp(1.9rem, 4vw, 3.1rem);
  font-weight:800;
  letter-spacing:.08em;
  color:var(--white);
  text-shadow:0 0 22px rgba(123,97,255,.18);
}

.intro-status{
  display:inline-flex;
  align-items:center;
  gap:.7rem;
  padding:.72rem 1rem;
  border:1px solid rgba(255,255,255,.08);
  border-radius:999px;
  background:rgba(255,255,255,.03);
  backdrop-filter:blur(14px);
  font-family:var(--font-m);
  font-size:.68rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:rgba(240,240,245,.72);
}

.intro-status .dot{
  width:.65rem;
  height:.65rem;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 8px rgba(0,255,224,.08), 0 0 20px rgba(0,255,224,.55);
  animation:introDotPulse 1.2s ease-in-out infinite;
}

.intro-flash{
  position:absolute;
  inset:0;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.9) 0%, rgba(0,255,224,.35) 10%, rgba(123,97,255,.14) 18%, rgba(0,0,0,0) 40%);
  opacity:0;
  transform:scale(.6);
  pointer-events:none;
}

#intro-loader.play-burst .intro-flash{
  animation:introFlash .7s cubic-bezier(.22,.61,.36,1) forwards;
}

#intro-loader.play-burst .shard{
  animation:introShardBurst 1s cubic-bezier(.16,.84,.44,1) forwards;
}

#intro-loader.play-burst .intro-particles span:nth-child(1){animation:introParticle1 1.05s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(2){animation:introParticle2 .95s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(3){animation:introParticle3 1.1s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(4){animation:introParticle4 .9s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(5){animation:introParticle5 1s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(6){animation:introParticle6 .88s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(7){animation:introParticle7 1.08s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(8){animation:introParticle8 .98s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(9){animation:introParticle9 .92s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(10){animation:introParticle10 1.12s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(11){animation:introParticle11 .9s ease-out forwards;}
#intro-loader.play-burst .intro-particles span:nth-child(12){animation:introParticle12 1.04s ease-out forwards;}

#intro-loader.intro-hide{
  opacity:0;
  visibility:hidden;
  transform:scale(1.03);
}

body.intro-done #hero .hero-inner,
body.intro-done #hero .scroll-hint,
body.intro-done #hero .orb{
  animation-play-state:running;
}

@keyframes introRise{
  from{opacity:0; transform:translateY(18px) scale(.98);}
  to{opacity:1; transform:translateY(0) scale(1);}
}

@keyframes introWholeSpin{
  from{transform:rotate(0deg);}
  to{transform:rotate(360deg);}
}

@keyframes introRingSpinA{
  from{transform:rotate(0deg) scale(1);}
  50%{transform:rotate(180deg) scale(1.02);}
  to{transform:rotate(360deg) scale(1);}
}

@keyframes introRingSpinB{
  from{transform:rotate(360deg) scale(1);}
  50%{transform:rotate(180deg) scale(.985);}
  to{transform:rotate(0deg) scale(1);}
}

@keyframes introCorePulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.08);}
}

@keyframes introGridPulse{
  0%,100%{opacity:.16;}
  50%{opacity:.28;}
}

@keyframes introFlicker{
  0%,100%{opacity:.85;}
  10%{opacity:.45;}
  12%{opacity:.88;}
  34%{opacity:.58;}
  35%{opacity:.92;}
  70%{opacity:.76;}
}

@keyframes introDotPulse{
  0%,100%{transform:scale(1);}
  50%{transform:scale(1.25);}
}

@keyframes introShardBurst{
  0%{
    opacity:0;
    transform:scale(.4) rotate(var(--rot, 0deg));
  }
  10%{
    opacity:1;
  }
  100%{
    opacity:0;
    transform:
      rotate(var(--rot, 0deg))
      translateY(-155px)
      scale(1.45);
  }
}

.shard.s1{--rot:0deg;}
.shard.s2{--rot:30deg;}
.shard.s3{--rot:60deg;}
.shard.s4{--rot:90deg;}
.shard.s5{--rot:120deg;}
.shard.s6{--rot:150deg;}
.shard.s7{--rot:180deg;}
.shard.s8{--rot:210deg;}
.shard.s9{--rot:240deg;}
.shard.s10{--rot:270deg;}
.shard.s11{--rot:300deg;}
.shard.s12{--rot:330deg;}

@keyframes introFlash{
  0%{opacity:0; transform:scale(.55);}
  35%{opacity:1; transform:scale(1);}
  100%{opacity:0; transform:scale(1.45);}
}

@keyframes introParticle1{0%{opacity:1;}100%{opacity:0;transform:translate(0,-170px) scale(.2);}}
@keyframes introParticle2{0%{opacity:1;}100%{opacity:0;transform:translate(110px,-120px) scale(.2);}}
@keyframes introParticle3{0%{opacity:1;}100%{opacity:0;transform:translate(160px,-20px) scale(.2);}}
@keyframes introParticle4{0%{opacity:1;}100%{opacity:0;transform:translate(135px,95px) scale(.2);}}
@keyframes introParticle5{0%{opacity:1;}100%{opacity:0;transform:translate(55px,150px) scale(.2);}}
@keyframes introParticle6{0%{opacity:1;}100%{opacity:0;transform:translate(-55px,155px) scale(.2);}}
@keyframes introParticle7{0%{opacity:1;}100%{opacity:0;transform:translate(-135px,105px) scale(.2);}}
@keyframes introParticle8{0%{opacity:1;}100%{opacity:0;transform:translate(-165px,0) scale(.2);}}
@keyframes introParticle9{0%{opacity:1;}100%{opacity:0;transform:translate(-125px,-110px) scale(.2);}}
@keyframes introParticle10{0%{opacity:1;}100%{opacity:0;transform:translate(-35px,-165px) scale(.2);}}
@keyframes introParticle11{0%{opacity:1;}100%{opacity:0;transform:translate(75px,-145px) scale(.2);}}
@keyframes introParticle12{0%{opacity:1;}100%{opacity:0;transform:translate(150px,55px) scale(.2);}}

@media (max-width: 42rem){
  .intro-core-wrap{
    width:min(62vw, 260px);
  }

  .intro-name{
    font-size:clamp(1.45rem, 8vw, 2.25rem);
    text-align:center;
    line-height:1;
  }

  .intro-kicker,
  .intro-status{
    letter-spacing:.14em;
  }

  .intro-status{
    padding:.65rem .85rem;
    font-size:.62rem;
  }
}

@media (prefers-reduced-motion: reduce){
  #intro-loader,
  #intro-loader *{
    animation:none !important;
    transition:none !important;
  }
}