:root{--bg: #05060a;--bg-2: #0a0c14;--panel: rgba(255, 255, 255, .04);--panel-strong: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .16);--text: #e9ecf1;--text-dim: #9aa3b2;--text-mute: #6b7280;--violet: #8b5cf6;--cyan: #22d3ee;--lime: #a3e635;--pink: #f472b6;--shadow-glow: 0 0 60px rgba(139, 92, 246, .25);--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}html{scroll-behavior:auto}body{font-family:var(--font-body);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;letter-spacing:-.01em;line-height:1.55}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(1200px 800px at 80% -10%,rgba(139,92,246,.18),transparent 60%),radial-gradient(1000px 700px at -10% 30%,rgba(34,211,238,.12),transparent 60%),radial-gradient(900px 600px at 50% 110%,rgba(163,230,53,.08),transparent 60%)}body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.05;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.03em;line-height:1.05}h1{font-size:clamp(2.6rem,7vw,6.5rem)}h2{font-size:clamp(2rem,4.5vw,3.6rem)}h3{font-size:clamp(1.4rem,2.4vw,2rem)}p{color:var(--text-dim)}::selection{background:#8b5cf666;color:#fff}.cursor-dot,.cursor-ring{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;transform:translate(-50%,-50%);mix-blend-mode:screen;will-change:transform}.cursor-dot{width:6px;height:6px;background:var(--cyan);box-shadow:0 0 14px var(--cyan)}.cursor-ring{width:38px;height:38px;border:1px solid rgba(139,92,246,.6);transition:width .25s,height .25s,background .25s}.cursor-ring.hover{width:64px;height:64px;background:#8b5cf614}@media (hover: none){.cursor-dot,.cursor-ring{display:none}}.container{width:100%;max-width:1280px;margin:0 auto;padding:0 clamp(20px,5vw,56px);position:relative;z-index:3}.section{padding:clamp(80px,12vw,160px) 0;position:relative;z-index:3}.eyebrow{font-family:var(--font-mono);font-size:12px;text-transform:uppercase;letter-spacing:.22em;color:var(--text-mute);display:inline-flex;align-items:center;gap:10px}.eyebrow:before{content:"";width:24px;height:1px;background:var(--violet)}.glass{background:linear-gradient(180deg,#ffffff0d,#ffffff05);border:1px solid var(--border);border-radius:20px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.gradient-text{background:linear-gradient(120deg,#fff,#c4b5fd 40%,#67e8f9,#fff);-webkit-background-clip:text;background-clip:text;color:transparent}.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 22px;border-radius:999px;font-family:var(--font-display);font-weight:500;font-size:14px;border:1px solid var(--border-strong);background:var(--panel-strong);transition:transform .25s ease,background .25s ease,border-color .25s ease,box-shadow .25s ease;letter-spacing:.02em}.btn:hover{transform:translateY(-2px);background:#8b5cf61f;border-color:#8b5cf680;box-shadow:0 12px 40px #8b5cf640}.btn.primary{background:linear-gradient(120deg,#8b5cf6,#22d3ee);color:#06070b;border-color:transparent;font-weight:600}.btn.primary:hover{box-shadow:0 12px 50px #22d3ee66}.divider{height:1px;background:linear-gradient(90deg,transparent,var(--border-strong),transparent);margin:80px 0}.loader{position:fixed;inset:0;z-index:10000;background:var(--bg);display:grid;place-items:center}.loader-inner{text-align:center}.loader-bar{width:min(420px,60vw);height:2px;background:#ffffff14;border-radius:99px;overflow:hidden;margin:24px auto 18px}.loader-bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--violet),var(--cyan))}.loader-text{font-family:var(--font-mono);font-size:12px;color:var(--text-mute);letter-spacing:.2em;text-transform:uppercase}.loader-title{font-family:var(--font-display);font-size:clamp(1.4rem,2vw,1.8rem);margin-top:14px}.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px clamp(20px,5vw,56px);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:linear-gradient(180deg,#05060ab3,#05060a00)}.nav .brand{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;font-size:17px;display:flex;align-items:center;gap:10px}.nav .brand .dot{width:8px;height:8px;border-radius:50%;background:var(--cyan);box-shadow:0 0 12px var(--cyan)}.nav .links{display:flex;gap:28px}.nav .links a{font-size:13px;color:var(--text-dim);font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;transition:color .2s}.nav .links a:hover{color:#fff}@media (max-width: 720px){.nav .links{display:none}}.hero{position:relative;min-height:100vh;display:grid;align-items:center;padding-top:100px;padding-bottom:80px;overflow:hidden}.hero-canvas{position:absolute;inset:0;z-index:0}.hero-content{position:relative;z-index:3;max-width:1100px}.hero h1{margin-top:18px}.hero h1 .accent{background:linear-gradient(120deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}.hero-sub{margin-top:28px;max-width:720px;font-size:clamp(1rem,1.4vw,1.18rem);color:var(--text-dim)}.hero-cta{margin-top:40px;display:flex;gap:14px;flex-wrap:wrap}.hero-meta{position:absolute;bottom:30px;left:0;right:0;display:flex;justify-content:space-between;gap:30px;padding:0 clamp(20px,5vw,56px);font-family:var(--font-mono);font-size:11px;color:var(--text-mute);letter-spacing:.2em;text-transform:uppercase;z-index:4}.galaxy{position:relative}.galaxy-canvas-wrap{position:relative;height:70vh;min-height:520px;border-radius:28px;overflow:hidden;border:1px solid var(--border);background:radial-gradient(ellipse at center,rgba(139,92,246,.08),transparent 60%)}.galaxy-tabs{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.galaxy-tab{padding:10px 18px;border-radius:999px;border:1px solid var(--border);background:transparent;font-family:var(--font-mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);transition:all .2s}.galaxy-tab.active{color:#fff;border-color:#8b5cf699;background:#8b5cf61f}.galaxy-info{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;margin-top:40px}@media (max-width: 880px){.galaxy-info{grid-template-columns:1fr}.galaxy-canvas-wrap{height:50vh;min-height:380px}}.galaxy-info .card{padding:28px}.galaxy-info h3{margin-bottom:8px}.galaxy-info .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.tag{font-family:var(--font-mono);font-size:11px;padding:5px 10px;border:1px solid var(--border);border-radius:999px;color:var(--text-dim)}.case{padding-top:clamp(60px,8vw,110px);padding-bottom:clamp(60px,8vw,110px);position:relative}.case-head{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:end;margin-bottom:50px}@media (max-width: 760px){.case-head{grid-template-columns:1fr}}.case-head .num{font-family:var(--font-mono);font-size:13px;color:var(--text-mute);letter-spacing:.2em}.case-head h2 .glow{display:inline-block}.case-head .meta{font-family:var(--font-mono);font-size:12px;color:var(--text-dim);text-align:right}@media (max-width: 760px){.case-head .meta{text-align:left}}.case-tagline{font-size:clamp(1.05rem,1.4vw,1.3rem);color:var(--text-dim);margin-top:12px;max-width:760px}.case-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:30px;margin-top:30px}@media (max-width: 980px){.case-grid{grid-template-columns:1fr}}.case-visual{height:480px;border-radius:24px;overflow:hidden;border:1px solid var(--border);position:relative;background:radial-gradient(ellipse at center,rgba(34,211,238,.06),transparent 70%)}@media (max-width: 980px){.case-visual{height:360px}}.case-journey{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.case-journey .step{padding:8px 14px;border-radius:999px;border:1px solid var(--border);font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim);display:flex;align-items:center;gap:10px}.case-journey .step:after{content:"→";color:var(--text-mute);margin-left:6px}.case-journey .step:last-child:after{display:none}.case-left{display:flex;flex-direction:column;gap:18px}.case-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}@media (max-width: 760px){.case-gallery{gap:8px}}.case-shot{display:block;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:var(--panel);aspect-ratio:9 / 19;position:relative;transition:transform .35s ease,border-color .3s ease,box-shadow .35s ease}.case-shot:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.45));pointer-events:none}.case-shot img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s ease}.case-shot:hover{transform:translateY(-4px);border-color:#8b5cf680;box-shadow:0 20px 60px #8b5cf640}.case-shot:hover img{transform:scale(1.04)}.case-blocks{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}@media (max-width: 720px){.case-blocks{grid-template-columns:1fr}}.block{padding:22px;border-radius:16px;border:1px solid var(--border);background:var(--panel);transition:all .3s}.block:hover{transform:translateY(-3px);border-color:var(--border-strong);background:var(--panel-strong)}.block .t{font-family:var(--font-display);font-weight:600;font-size:1rem;margin-bottom:8px;color:#fff}.block .b{font-size:14px;color:var(--text-dim);line-height:1.6}.case-links{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}.timeline{position:relative;margin-top:50px}.timeline:before{content:"";position:absolute;top:0;bottom:0;left:22px;width:1px;background:linear-gradient(180deg,transparent,var(--border-strong) 10%,var(--border-strong) 90%,transparent)}@media (max-width: 720px){.timeline:before{left:14px}}.tl-item{position:relative;padding-left:70px;padding-bottom:50px}@media (max-width: 720px){.tl-item{padding-left:44px}}.tl-item:before{content:"";position:absolute;left:14px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--bg);border:2px solid var(--violet);box-shadow:0 0 20px var(--violet)}@media (max-width: 720px){.tl-item:before{left:6px;width:16px;height:16px}}.tl-period{font-family:var(--font-mono);font-size:12px;color:var(--text-mute);letter-spacing:.16em;text-transform:uppercase}.tl-role{font-family:var(--font-display);font-weight:600;font-size:clamp(1.2rem,2vw,1.6rem);margin:6px 0 4px}.tl-company{color:var(--cyan);font-size:14px;font-family:var(--font-mono);letter-spacing:.1em}.tl-impact{margin-top:14px;max-width:760px;color:var(--text-dim)}.tl-highlights{margin-top:18px;display:grid;gap:6px}.tl-highlights li{list-style:none;font-size:14px;color:var(--text-dim);padding-left:18px;position:relative}.tl-highlights li:before{content:"→";position:absolute;left:0;color:var(--violet)}.tl-stack{margin-top:18px;display:flex;flex-wrap:wrap;gap:8px}.skills-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:50px}@media (max-width: 980px){.skills-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.skills-grid{grid-template-columns:1fr}}.skill-card{padding:26px;border-radius:18px;border:1px solid var(--border);background:var(--panel);transition:all .3s;position:relative;overflow:hidden}.skill-card:before{content:"";position:absolute;top:-40%;right:-40%;width:200px;height:200px;background:radial-gradient(circle,rgba(139,92,246,.18),transparent 70%);opacity:0;transition:opacity .4s}.skill-card:hover:before{opacity:1}.skill-card:hover{border-color:var(--border-strong);transform:translateY(-4px)}.skill-card h4{font-family:var(--font-display);font-size:1.05rem;margin-bottom:14px;display:flex;align-items:center;gap:10px}.skill-card h4:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--cyan);box-shadow:0 0 10px var(--cyan)}.skill-card .pills{display:flex;flex-wrap:wrap;gap:6px}.skill-card .pills span{font-family:var(--font-mono);font-size:11px;padding:4px 10px;border:1px solid var(--border);border-radius:999px;color:var(--text-dim)}.arch{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:50px}@media (max-width: 880px){.arch{grid-template-columns:1fr}}.arch-card{padding:28px;border-radius:18px;border:1px solid var(--border);background:var(--panel)}.arch-card h4{font-family:var(--font-display);font-size:1.1rem;margin-bottom:16px}.arch-flow{display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:13px;color:var(--text-dim)}.arch-flow .row{padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:#ffffff05;display:flex;align-items:center;gap:10px}.arch-flow .row .lbl{color:var(--cyan)}.arch-flow .arrow{text-align:center;color:var(--text-mute)}.contact{text-align:center}.contact h2{max-width:900px;margin:0 auto}.contact .email{display:inline-block;margin-top:30px;font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2.2rem);padding:14px 26px;border-radius:999px;border:1px solid var(--border-strong);background:var(--panel-strong);transition:all .3s}.contact .email:hover{background:#22d3ee1a;border-color:#22d3ee80;box-shadow:0 12px 50px #22d3ee4d}.contact-links{display:flex;gap:14px;justify-content:center;margin-top:32px;flex-wrap:wrap}.footer{padding:40px 0 60px;text-align:center;font-family:var(--font-mono);font-size:12px;color:var(--text-mute);letter-spacing:.16em;text-transform:uppercase;position:relative;z-index:3}.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease,transform .9s ease}.reveal.in{opacity:1;transform:translateY(0)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:#8b5cf666;border-radius:8px}::-webkit-scrollbar-thumb:hover{background:#8b5cf6b3}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}
