:root{--bg:#0a0a0f;--bg-card:#12121a;--purple:#a855f7;--purple-dim:#7c3aed;--purple-glow:#a855f726;--white:#f0f0f0;--gray:#888;--border:#1e1e2a;--font:"Inter", system-ui, sans-serif;--font-display:"Space Grotesk", system-ui, sans-serif;--font-mono:"JetBrains Mono", monospace;--max:1100px;--gutter:clamp(1.25rem, 4vw, 3rem);--radius:12px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--white);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}ul{list-style:none}::selection{background:var(--purple);color:#fff}header#siteHeader{z-index:100;padding:1.2rem var(--gutter);justify-content:center;align-items:center;transition:background .3s,-webkit-backdrop-filter .3s,backdrop-filter .3s;display:flex;position:fixed;top:0;left:0;right:0}header#siteHeader.scrolled{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a0a0fd9}.logo{left:var(--gutter);font-family:var(--font-display);color:var(--purple);font-size:1.2rem;font-weight:700;position:absolute}#mainNav{border:1px solid var(--border);background:var(--bg-card);border-radius:999px;align-items:center;gap:0;padding:4px;display:flex;position:relative}#mainNav a{z-index:1;color:var(--white);mix-blend-mode:difference;border-radius:999px;padding:.5rem 1.2rem;font-size:.85rem;font-weight:500;transition:color .2s;position:relative}.nav-cursor{background:var(--white);opacity:0;z-index:0;border-radius:999px;height:calc(100% - 8px);transition:left .3s,width .3s,opacity .2s;position:absolute;top:4px;left:0}.nav-toggle{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;width:40px;height:40px;display:none;position:relative}.nav-toggle span{background:var(--white);height:2px;transition:all .3s;position:absolute;left:10px;right:10px}.nav-toggle span:first-child{top:12px}.nav-toggle span:nth-child(2){top:19px}.nav-toggle span:nth-child(3){top:26px}.nav-toggle.open span:first-child{top:19px;transform:rotate(45deg)}.nav-toggle.open span:nth-child(2){opacity:0}.nav-toggle.open span:nth-child(3){top:19px;transform:rotate(-45deg)}@media (width<=768px){.nav-toggle{display:block}#mainNav{background:var(--bg);z-index:90;border:none;border-radius:0;flex-direction:column;justify-content:center;align-items:center;gap:2rem;padding:2rem;transition:transform .3s;position:fixed;inset:0;transform:translate(100%)}#mainNav.open{transform:translate(0)}#mainNav a{color:var(--white);mix-blend-mode:normal;font-size:1.4rem}.nav-cursor{display:none}}.hero{min-height:100vh;padding:8rem var(--gutter) 4rem;max-width:var(--max);align-items:center;margin:0 auto;display:flex;position:relative}.hero:before{content:"";-webkit-mask-image:radial-gradient(ellipse at center, var(--bg), transparent);mask-image:radial-gradient(ellipse at center, var(--bg), transparent);-webkit-mask-image:radial-gradient(ellipse at center, var(--bg), transparent);z-index:-1;background-image:linear-gradient(90deg,#a855f714 1px,#0000 1px),linear-gradient(#a855f714 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0}.hero-content{text-align:center;max-width:680px;margin:0 auto}.hero-greeting{font-family:var(--font-mono);color:var(--purple);margin-bottom:1rem;font-size:.9rem}.hero h1{font-family:var(--font-display);letter-spacing:-.03em;margin-bottom:1.5rem;font-size:clamp(2.5rem,7vw,4.5rem);font-weight:700;line-height:1.1}.hero-rotate-wrapper{vertical-align:bottom;min-width:340px;height:1.2em;display:inline-block;position:relative;overflow:hidden}.hero-rotate{width:100%;color:var(--purple);transition:transform .4s,opacity .4s;display:inline-block;position:absolute;left:0}.hero-rotate.in{opacity:1;transform:translateY(0)}.hero-rotate.out{opacity:0;transform:translateY(100%)}.hero-description{color:var(--gray);max-width:520px;margin:0 auto 1.5rem;font-size:1.05rem}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.btn{cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.8rem 1.4rem;font-size:.9rem;font-weight:500;transition:transform .2s,background .2s;display:inline-flex}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--purple);color:#fff}.btn-primary:hover{background:var(--purple-dim)}.btn-outline{border:1px solid var(--border);color:var(--white);background:0 0}.btn-outline:hover{border-color:var(--purple);color:var(--purple)}.section{padding:clamp(4rem, 8vw, 7rem) var(--gutter);max-width:var(--max);opacity:0;margin:0 auto;transition:opacity .6s,transform .6s;transform:translateY(20px)}.section.visible{opacity:1;transform:none}.section-title{font-family:var(--font-display);text-align:center;margin-bottom:.8rem;font-size:clamp(1.8rem,4vw,2.8rem);font-weight:600}.section-desc{color:var(--gray);text-align:center;max-width:500px;margin:0 auto 3rem}.services-layout{grid-template-columns:1fr 1fr;align-items:center;gap:3rem;display:grid}.services-orbit{width:540px;height:540px;margin:0 auto;position:relative}.orbit-ring{border:1px solid var(--border);border-radius:50%;position:absolute;inset:0}.orbit-icon{--angle:calc(360deg / 6 * var(--i));background:var(--bg-card);border:1px solid var(--border);width:90px;height:90px;color:var(--purple);cursor:pointer;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;margin:-45px;font-size:1.8rem;transition:border-color .3s,box-shadow .3s,background .3s,color .3s;display:flex;position:absolute;top:50%;left:50%}.orbit-icon span{font-size:.7rem;font-family:var(--font-mono);color:var(--gray);text-transform:uppercase;letter-spacing:.03em;text-align:center}.orbit-icon:hover{border-color:var(--purple);box-shadow:0 0 20px var(--purple-glow)}.orbit-icon.active{border-color:var(--purple);box-shadow:0 0 20px var(--purple-glow);background:var(--purple);color:#fff}.orbit-icon.active span{color:#fff}.orbit-center{background:var(--bg-card);border:2px solid var(--border);width:180px;height:180px;font-family:var(--font-display);color:var(--purple);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;font-weight:700;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.service-detail{flex-direction:column;justify-content:center;min-height:200px;display:flex}.service-detail-hint{color:var(--gray);font-size:.9rem}.service-detail h3{font-family:var(--font-display);color:var(--purple);margin-bottom:1rem;font-size:1.4rem;font-weight:600}.service-detail ul{flex-direction:column;gap:.6rem;list-style:none;display:flex}.service-detail li{color:var(--gray);padding-left:1.2rem;font-size:.95rem;position:relative}.service-detail li:before{content:"›";color:var(--purple);position:absolute;left:0}@media (width<=768px){.services-layout{grid-template-columns:1fr}.services-orbit{width:320px;height:320px}.orbit-icon{width:60px;height:60px;margin:-30px;font-size:1.2rem}.orbit-icon span{font-size:.55rem}.orbit-center{width:100px;height:100px;font-size:.8rem}.service-detail{text-align:center}.service-detail li{padding-left:0}.service-detail li:before{display:none}}.tech-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem;max-width:700px;margin:0 auto;display:grid}.tech-item{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);opacity:0;flex-direction:column;align-items:center;gap:.7rem;padding:1.5rem 1rem;transition:opacity .4s,transform .4s,border-color .3s;display:flex;transform:translateY(20px)}.tech-item.visible{opacity:1;transform:none}.tech-item:hover{border-color:var(--purple-dim);transform:translateY(-3px)}.tech-item img{object-fit:contain;width:36px;height:36px}.tech-item img.invert{filter:invert()brightness(.85)}.tech-item span{font-family:var(--font-mono);color:var(--gray);text-transform:uppercase;letter-spacing:.05em;font-size:.7rem}.projects-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.2rem;display:grid}.project-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);opacity:0;flex-direction:column;gap:1rem;padding:2rem;transition:opacity .5s,transform .5s,border-color .3s,box-shadow .3s;display:flex;transform:translateY(20px)}.project-card.visible{opacity:1;transform:none}.project-card:hover{border-color:var(--purple-dim);box-shadow:0 0 30px var(--purple-glow);transform:translateY(-4px)}.project-card-header{justify-content:space-between;align-items:center;display:flex}.project-card-header i{color:var(--purple);font-size:1.5rem}.project-badge{font-family:var(--font-mono);text-transform:uppercase;color:#22c55e;background:#22c55e26;border-radius:4px;padding:.3rem .6rem;font-size:.7rem}.project-card h3{font-family:var(--font-display);font-size:1.3rem;font-weight:600}.project-card p{color:var(--gray);font-size:.9rem}.project-tech{font-family:var(--font-mono);color:var(--purple);font-size:.75rem}.project-link{color:var(--gray);margin-top:auto;font-size:.85rem;transition:color .2s}.project-card:hover .project-link{color:var(--purple)}.video-container{grid-template-columns:1.5fr 1fr;align-items:center;gap:2.5rem;display:grid}.video-wrapper{border-radius:var(--radius);border:1px solid var(--border);padding-bottom:56.25%;position:relative;overflow:hidden}.video-wrapper iframe{border:none;width:100%;height:100%;position:absolute;inset:0}.video-info h3{font-family:var(--font-display);text-align:center;margin-bottom:1rem;font-size:1.5rem;font-weight:600}.video-info p{color:var(--gray);text-align:center;margin-bottom:1.5rem;font-size:.95rem}@media (width<=768px){.video-container{grid-template-columns:1fr}}.contact-links{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.contact-links a{border:1px solid var(--border);color:var(--gray);border-radius:8px;align-items:center;gap:.5rem;padding:.7rem 1.2rem;font-size:.9rem;transition:border-color .2s,color .2s;display:inline-flex}.contact-links a:hover{border-color:var(--purple);color:var(--white)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.section,.tech-item,.project-card{opacity:1;transform:none}}:focus-visible{outline:2px solid var(--purple);outline-offset:3px}
