*{box-sizing:border-box}
:root{
  --bg:#020605;--bg2:#061009;--text:#f5f7f5;--muted:#a6aea7;
  --lime:#9dff20;--cyan:#19ddff;--line:rgba(157,255,32,.28);
  --ease:cubic-bezier(.22,1,.36,1)
}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.ambient,.stars,.grid-noise{position:fixed;inset:0;pointer-events:none}
.ambient{z-index:-5;overflow:hidden;background:
 radial-gradient(circle at 68% 42%,rgba(76,255,40,.14),transparent 22%),
 radial-gradient(circle at 85% 15%,rgba(40,255,90,.10),transparent 25%),
 radial-gradient(circle at 25% 80%,rgba(0,180,110,.09),transparent 28%),
 #020605}
.stars{opacity:.45;background-image:radial-gradient(#cfff87 1px,transparent 1px);background-size:43px 43px;mask-image:linear-gradient(to bottom,transparent 0,#000 25%,#000 75%,transparent)}
.grid-noise{opacity:.045;background-image:linear-gradient(rgba(255,255,255,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.5) 1px,transparent 1px);background-size:90px 90px;mask-image:radial-gradient(circle,#000,transparent 70%)}
.planet{position:absolute;border-radius:50%;filter:blur(.2px);opacity:.65}
.planet-a{width:360px;height:360px;right:-110px;top:-125px;background:radial-gradient(circle at 30% 30%,#82ff45,rgba(17,91,31,.85) 42%,#031407 72%,transparent 73%);box-shadow:0 0 100px rgba(80,255,35,.18)}
.planet-b{width:440px;height:440px;left:-210px;bottom:-250px;background:radial-gradient(circle at 60% 35%,#18472d,#04110a 62%,transparent 64%);box-shadow:0 0 110px rgba(54,255,77,.15)}
.nebula{position:absolute;width:800px;height:260px;border-radius:50%;filter:blur(65px);opacity:.14;background:#58ff28;transform:rotate(-24deg)}
.nebula-a{right:10%;top:15%}.nebula-b{left:20%;bottom:2%;background:#00aaff}

.topbar{height:105px;display:flex;align-items:center;padding:0 4.3vw;gap:50px;position:relative;z-index:20}
.brand{font-size:53px;font-weight:900;letter-spacing:-5px;line-height:1}.brand-caret,.core-title span,.hero-meta strong span,.wa-tab span{color:var(--lime)}
.brand-caret{display:inline-block;animation:blink .82s steps(1,end) infinite}
.topbar nav{display:flex;gap:28px;align-items:center;font-family:"Space Mono",monospace;font-size:13px;color:#bdc2bd}
.topbar nav a{padding:9px 0}.topbar nav .active{color:var(--lime);border-bottom:2px solid var(--lime)}
.network-btn{margin-left:auto;border:1px solid var(--lime);box-shadow:0 0 15px rgba(157,255,32,.18),inset 0 0 10px rgba(157,255,32,.05);border-radius:30px;padding:12px 25px;font-size:13px}.network-btn span{font-size:18px;margin-left:6px}
.hero{min-height:calc(100vh - 105px);display:grid;grid-template-columns:39% 61%;align-items:center;padding:0 4vw 3vh}
.hero-copy{position:relative;z-index:8;padding-left:.5vw;max-width:590px}
.eyebrow{font:12px "Space Mono",monospace;letter-spacing:2px;color:#b9c0ba;margin-bottom:25px}.eyebrow i{display:inline-block;width:21px;height:4px;background:var(--lime);box-shadow:0 0 10px var(--lime);margin-right:13px}
.hero h1{font-size:clamp(55px,5.6vw,94px);line-height:.9;letter-spacing:-5px;margin:0 0 38px;font-weight:800}.hero h1 em,.contact h2 em{color:var(--lime);font-style:italic;text-shadow:0 0 22px rgba(157,255,32,.28)}
.hero-copy>p{font:16px/1.55 "Space Mono",monospace;color:#d1d6d1;max-width:510px;margin:0 0 35px}
.explore-btn{display:inline-flex;align-items:center;gap:32px;border:1px solid var(--lime);border-radius:35px;padding:15px 24px;font-weight:700;box-shadow:0 0 28px rgba(157,255,32,.16);transition:.3s}.explore-btn:hover{box-shadow:0 0 45px rgba(157,255,32,.35);transform:translateY(-2px)}.explore-btn span{font-size:24px}
.hero-meta{display:flex;align-items:center;gap:15px;margin-top:225px;font:12px/2 "Space Mono",monospace;letter-spacing:1px;color:#c1c7c1}.hero-meta>b{height:62px;width:3px;background:var(--lime);box-shadow:0 0 12px var(--lime)}.hero-meta small{display:block}.hero-meta small strong{color:#fff;font-size:15px}

.network-stage{height:min(820px,82vh);min-height:650px;position:relative;overflow:hidden;perspective:1000px;touch-action:none}
.stage-inner{position:absolute;inset:0;transform-style:preserve-3d;will-change:transform}
.connections{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.orbit{fill:none;stroke:rgba(146,255,46,.22);stroke-width:1;stroke-dasharray:2 10;transform-origin:550px 410px}.orbit-1{r:240}.orbit-2{r:315}
#lineLayer line{stroke:url(#lineGradient);stroke-width:1.6;opacity:.7;filter:url(#lineGlow);stroke-dasharray:7 7;animation:dash 2.6s linear infinite}
#dotLayer circle{fill:#c7ff45;filter:url(#lineGlow);animation:pulse 1.6s ease-in-out infinite}
.center-wrap{position:absolute;left:50%;top:50%;width:315px;height:315px;transform:translate(-50%,-50%);transform-style:preserve-3d;z-index:5}
.center-glow{position:absolute;inset:-80px;border-radius:50%;background:radial-gradient(circle,rgba(155,255,31,.25),transparent 65%);filter:blur(20px);animation:coreGlow 2.6s ease-in-out infinite}
.center-ring{position:absolute;inset:-17px;border:1px solid rgba(157,255,32,.42);border-radius:50%;box-shadow:0 0 22px rgba(157,255,32,.12);animation:spin 18s linear infinite}.ring-b{inset:-47px;border-style:dashed;opacity:.7;animation:spin 26s linear infinite reverse}
.center-card{position:absolute;inset:0;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(circle at 50% 40%,#18321d,#07120d 52%,#010604 75%);border:2px solid rgba(157,255,32,.7);box-shadow:0 0 15px rgba(157,255,32,.35),0 0 70px rgba(157,255,32,.25),inset 0 0 50px rgba(157,255,32,.08);transition:.35s var(--ease)}
.center-card:hover,.center-card:focus{transform:scale(1.035);box-shadow:0 0 25px rgba(157,255,32,.75),0 0 110px rgba(157,255,32,.42),inset 0 0 80px rgba(157,255,32,.15)}
.core-preview{position:absolute;inset:0;opacity:0;transition:.35s;pointer-events:none;background:#020605}.center-card:hover .core-preview,.center-card:focus .core-preview{opacity:1}.core-preview iframe{width:100%;height:100%;border:0;opacity:.58;filter:saturate(.9) contrast(1.15) brightness(.7)}.preview-fallback{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle,rgba(8,25,14,.2),rgba(1,5,3,.7))}.mini-browser{width:150px;height:90px;border:1px solid rgba(157,255,32,.45);border-radius:8px;background:rgba(4,10,7,.82);box-shadow:0 0 28px rgba(157,255,32,.15);padding:9px}.mini-top{display:flex;gap:4px}.mini-top i{width:5px;height:5px;border-radius:50%;background:#9dff20}.mini-logo{font-size:23px;font-weight:900;margin-top:14px}.mini-logo span{color:var(--lime)}.mini-lines{height:22px;margin-top:7px;background:linear-gradient(#456b42 2px,transparent 2px);background-size:100% 7px}
.core-title{position:relative;font-size:67px;font-weight:900;letter-spacing:-5px;text-shadow:0 0 20px rgba(255,255,255,.18);z-index:2}.core-sub{font:12px "Space Mono",monospace;letter-spacing:5px;margin-top:8px;z-index:2}.core-hint{font:9px "Space Mono",monospace;letter-spacing:1px;opacity:0;position:absolute;bottom:35px;z-index:3;color:var(--lime);transition:.3s}.center-card:hover .core-hint{opacity:.9}
.project{position:absolute;width:190px;user-select:none;cursor:grab;z-index:10;transform-style:preserve-3d;filter:drop-shadow(0 0 8px color-mix(in srgb,var(--pc) 25%,transparent));--pc:#9dff20;transition:filter .25s}.project:active{cursor:grabbing}.project:hover{filter:drop-shadow(0 0 18px var(--pc)) drop-shadow(0 0 35px color-mix(in srgb,var(--pc) 55%,transparent));z-index:30}.thumb{height:72px;border:1px solid var(--pc);border-bottom:0;border-radius:14px 14px 0 0;background:#060c09;overflow:hidden;box-shadow:0 0 12px color-mix(in srgb,var(--pc) 55%,transparent),inset 0 0 20px color-mix(in srgb,var(--pc) 10%,transparent)}.thumb img{width:100%;height:100%;display:block;object-fit:cover}.project-body{min-height:58px;border:1px solid var(--pc);border-radius:0 0 14px 14px;background:rgba(3,7,5,.92);padding:10px 13px;box-shadow:0 0 20px color-mix(in srgb,var(--pc) 35%,transparent),inset 0 0 18px color-mix(in srgb,var(--pc) 7%,transparent)}.project-body b{display:block;font:12px "Space Mono",monospace;color:#dfe6df}.project-body b i{display:inline-block;width:10px;height:10px;background:var(--pc);border-radius:50%;box-shadow:0 0 12px var(--pc);margin-right:6px}.project-body b strong{font-family:Inter,sans-serif;font-size:14px;color:#fff}.project-body span{display:block;margin:6px 0 0 19px;font:11px "Space Mono",monospace;color:#c4ccc5}.campus-link{position:absolute;top:-20px;left:12px;font:8px "Space Mono",monospace;color:#bf85ff;letter-spacing:.5px;text-shadow:0 0 9px #a44cff}
.project-cafe{--pc:#8dff16}.project-belinguish{--pc:#00aaff}.project-moodle{--pc:#a44cff}.project-danese{--pc:#ff20ad}.project-inmo{--pc:#00e8ff}.project-atenas{--pc:#ffd21a}.project-lusina{--pc:#ff249e}.project-carrozada{--pc:#00d8f6}.project-mir4{--pc:#ff3e5e}.project-toolkit{--pc:#7cff12}
.drag-tip{position:absolute;bottom:8px;right:20px;font:9px "Space Mono",monospace;letter-spacing:1px;color:#6f7b72;z-index:15}

.mobile-grid{display:none}.contact{padding:100px 7vw 130px;border-top:1px solid rgba(157,255,32,.13);background:radial-gradient(circle at 75% 30%,rgba(157,255,32,.08),transparent 35%)}.contact>span{font:11px "Space Mono",monospace;color:var(--lime)}.contact h2{font-size:clamp(50px,7vw,105px);line-height:.9;letter-spacing:-5px;margin:20px 0 40px}.contact>a{display:inline-flex;padding:15px 22px;border:1px solid var(--lime);border-radius:30px;gap:30px;box-shadow:0 0 25px rgba(157,255,32,.16)}.contact>a b{color:var(--lime)}
.whatsapp{position:fixed;left:24px;bottom:24px;z-index:100;display:flex;align-items:center;gap:10px;padding:11px 15px 11px 12px;border:1px solid #28ff65;border-radius:30px;background:rgba(1,8,4,.88);box-shadow:0 0 12px #28ff65,0 0 34px rgba(40,255,101,.32),inset 0 0 15px rgba(40,255,101,.08);backdrop-filter:blur(10px);animation:waPulse 2.2s ease-in-out infinite}.wa-icon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:2px solid #28ff65;color:#28ff65;font-size:13px;box-shadow:0 0 14px #28ff65}.wa-label{font:10px "Space Mono",monospace;letter-spacing:1px}.wa-tab{font-size:14px;font-weight:800;border-left:1px solid rgba(255,255,255,.2);padding-left:10px}.wa-tab span{animation:blink .82s steps(1,end) infinite}

.cursor-dot,.cursor-ring{position:fixed;left:0;top:0;pointer-events:none;z-index:200;mix-blend-mode:screen}.cursor-dot{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px var(--lime),0 0 25px var(--lime)}.cursor-ring{width:30px;height:30px;border:1px solid rgba(157,255,32,.7);border-radius:50%;box-shadow:0 0 15px rgba(157,255,32,.2)}

@keyframes blink{0%,45%{opacity:1}46%,100%{opacity:.08}}@keyframes dash{to{stroke-dashoffset:-28}}@keyframes pulse{0%,100%{r:4;opacity:.75}50%{r:7;opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes coreGlow{50%{transform:scale(1.08);opacity:.75}}@keyframes waPulse{50%{box-shadow:0 0 20px #28ff65,0 0 50px rgba(40,255,101,.4),inset 0 0 15px rgba(40,255,101,.12)}}

@media(max-width:1100px){
  .hero{grid-template-columns:1fr}.hero-copy{padding:60px 2vw 30px;max-width:780px}.hero-meta{margin-top:60px}.network-stage{height:850px}.hero-copy h1{font-size:clamp(52px,9vw,86px)}.network-btn{display:none}
}
@media(max-width:700px){
  body{background:#020604}.topbar{height:78px;padding:0 20px;gap:0}.brand{font-size:39px;letter-spacing:-4px}.topbar nav{display:none}.hero{display:block;padding:0}.hero-copy{padding:48px 24px 30px}.eyebrow{font-size:9px;letter-spacing:1.1px;margin-bottom:18px}.hero h1{font-size:51px;line-height:.94;letter-spacing:-3px;margin-bottom:25px}.hero-copy>p{font-size:12px;line-height:1.65}.explore-btn{padding:12px 17px;font-size:13px;gap:22px}.hero-meta{margin-top:45px;font-size:9px}.hero-meta small{font-size:9px}.network-stage{height:650px;min-height:650px;margin-top:15px;border-top:1px solid rgba(157,255,32,.08);border-bottom:1px solid rgba(157,255,32,.08)}.stage-inner{transform:scale(.78);transform-origin:50% 50%;width:128%;left:-14%}.center-wrap{width:240px;height:240px}.core-title{font-size:52px}.core-sub{font-size:9px}.project{width:150px}.thumb{height:58px}.project-body{min-height:51px;padding:8px}.project-body b{font-size:9px}.project-body b strong{font-size:11px}.project-body span{font-size:8px;margin-top:4px}.drag-tip{font-size:7px;right:8px;bottom:7px}.connections{opacity:.8}.whatsapp{left:12px;bottom:12px;padding:8px 11px}.wa-label{display:none}.wa-tab{font-size:12px}.mobile-grid{display:block;padding:65px 24px}.mobile-title{font-size:29px;font-weight:800;letter-spacing:-1.5px}.mobile-grid>p{font:11px/1.6 "Space Mono",monospace;color:#9ca59e}.mobile-grid #mobileProjects{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mobile-grid .mobile-card{border:1px solid rgba(157,255,32,.28);padding:11px;background:rgba(5,13,8,.75);border-radius:12px}.mobile-grid .mobile-card img{width:100%;height:70px;object-fit:cover;border-radius:7px;margin-bottom:8px}.mobile-grid .mobile-card b{font-size:11px}.contact{padding:80px 24px}.contact h2{font-size:55px;letter-spacing:-3px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}.cursor-dot,.cursor-ring{display:none}}
