:root{--bg-dark: #030308;--bg-darker: #010103;--primary: #6c5ce7;--primary-light: #a29bfe;--secondary: #00cec9;--secondary-light: #81ecec;--accent: #fd79a8;--accent-light: #fab1a0;--text-primary: #ffffff;--text-secondary: #b2bec3;--text-muted: #636e72;--glass-bg: rgba(10, 10, 20, .7);--glass-border: rgba(255, 255, 255, .08);--glass-highlight: rgba(255, 255, 255, .05);--font-jp: "Noto Sans JP", sans-serif;--font-serif: "Shippori Mincho", serif;--font-display: "Orbitron", sans-serif;--font-mono: "Space Grotesk", monospace;--section-padding: clamp(4rem, 10vw, 10rem);--container-padding: clamp(1.5rem, 5vw, 4rem);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-out-quart: cubic-bezier(.25, 1, .5, 1);--ease-in-out-circ: cubic-bezier(.85, 0, .15, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-jp);background:var(--bg-dark);color:var(--text-primary);line-height:1.8;font-size:16px;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:var(--primary);color:var(--text-primary)}a{color:inherit;text-decoration:none}ul{list-style:none}img{max-width:100%;height:auto}.cursor-dot,.cursor-outline,.cursor-glow{display:none;pointer-events:none;position:fixed;z-index:10000;transform:translate(-50%,-50%);border-radius:50%}@media(min-width:1024px)and (hover:hover){body,a,button,.glass-card,.tech-card,.cta-btn,.contact-btn{cursor:none}.cursor-dot,.cursor-outline,.cursor-glow{display:block}.cursor-dot{width:8px;height:8px;background:var(--secondary);box-shadow:0 0 10px #00cec980;transition:transform .15s var(--ease-out-expo),background .3s}.cursor-dot.hover{transform:translate(-50%,-50%) scale(1.5)}.cursor-outline{width:50px;height:50px;border:1px solid rgba(0,206,201,.3);transition:width .3s var(--ease-out-expo),height .3s var(--ease-out-expo)}.cursor-outline.hover{width:60px;height:60px}.cursor-glow{width:300px;height:300px;background:radial-gradient(circle,rgba(108,92,231,.1),transparent 70%);opacity:.5;transition:opacity .3s}}#loading-screen{position:fixed;inset:0;background:var(--bg-darker);z-index:9999;display:flex;justify-content:center;align-items:center;transition:opacity .8s var(--ease-out-expo)}.loader{position:relative;display:flex;flex-direction:column;align-items:center;gap:2rem}.loader-ring{position:relative;width:120px;height:120px}.ring-segment{position:absolute;inset:0;border:2px solid transparent;border-radius:50%}.ring-segment:nth-child(1){border-top-color:var(--secondary);animation:spin 2s linear infinite}.ring-segment:nth-child(2){inset:10px;border-right-color:var(--primary);animation:spin 1.5s linear infinite reverse}.ring-segment:nth-child(3){inset:20px;border-bottom-color:var(--accent);animation:spin 1s linear infinite}.loader-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;background:var(--secondary);border-radius:50%;animation:pulse 3s ease-in-out infinite;box-shadow:0 0 15px #00cec966}.loader-text{text-align:center}.loading-chars{font-family:var(--font-display);font-size:.8rem;letter-spacing:.3em;color:var(--text-muted)}.loading-bar{margin-top:1rem;width:150px;height:2px;background:#ffffff1a;border-radius:2px;overflow:hidden}.loading-bar .bar{width:0%;height:100%;background:linear-gradient(90deg,var(--secondary),var(--primary));animation:loadProgress 2s var(--ease-out-expo) forwards}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{transform:translate(-50%,-50%) scale(1)}50%{transform:translate(-50%,-50%) scale(.97)}}@keyframes loadProgress{0%{width:0%}to{width:100%}}#app{opacity:0;transition:opacity 1s var(--ease-out-expo)}#starfield{position:fixed;inset:0;z-index:-1;pointer-events:none}.noise-overlay{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E")}.gradient-overlay{position:fixed;left:0;right:0;height:30vh;pointer-events:none;z-index:50}.gradient-top{top:0;background:linear-gradient(to bottom,var(--bg-dark),transparent)}.gradient-bottom{bottom:0;background:linear-gradient(to top,var(--bg-dark),transparent)}.glass-nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:1.5rem 0;background:linear-gradient(to bottom,rgba(3,3,8,.9),transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.nav-container{max-width:1400px;margin:0 auto;padding:0 var(--container-padding);display:flex;justify-content:space-between;align-items:center}.logo{font-family:var(--font-display);font-size:1.2rem;font-weight:700;letter-spacing:.1em;display:flex;gap:.3em;transition:transform .3s var(--ease-out-expo)}.logo:hover{transform:scale(1.05)}.logo-text{color:var(--text-primary)}.logo-accent{color:var(--secondary)}.nav-links{display:none}.menu-toggle{display:flex;flex-direction:column;gap:6px;cursor:pointer;padding:10px;z-index:1001}.menu-toggle span{width:28px;height:2px;background:var(--text-primary);transition:all .3s var(--ease-out-expo);transform-origin:center}.menu-toggle.active span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}.menu-toggle.active span:nth-child(2){opacity:0}.menu-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(6px,-6px)}.mobile-nav{position:fixed;inset:0;background:#030308fa;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);z-index:999;display:flex;justify-content:center;align-items:center;opacity:0;visibility:hidden;transition:all .5s var(--ease-out-expo)}.mobile-nav.active{opacity:1;visibility:visible}.mobile-nav-links{text-align:center}.mobile-nav-links li{margin:2rem 0;transform:translateY(30px);opacity:0;transition:all .5s var(--ease-out-expo)}.mobile-nav.active .mobile-nav-links li{transform:translateY(0);opacity:1}.mobile-nav.active .mobile-nav-links li:nth-child(1){transition-delay:.1s}.mobile-nav.active .mobile-nav-links li:nth-child(2){transition-delay:.2s}.mobile-nav.active .mobile-nav-links li:nth-child(3){transition-delay:.3s}.mobile-nav.active .mobile-nav-links li:nth-child(4){transition-delay:.4s}.mobile-nav-links a{font-family:var(--font-display);font-size:2rem;font-weight:600;letter-spacing:.1em;color:var(--text-primary);transition:color .3s}.mobile-nav-links a:hover{color:var(--secondary)}#hero{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--container-padding);position:relative;overflow:hidden}.hero-content{max-width:1000px;text-align:center;z-index:10}.hero-badge{display:inline-flex;align-items:center;gap:1rem;margin-bottom:2rem}.badge-line{width:40px;height:1px;background:var(--secondary)}.badge-text{font-family:var(--font-display);font-size:.75rem;letter-spacing:.3em;color:var(--secondary)}.hero-title{font-family:var(--font-jp);font-size:clamp(3rem,12vw,8rem);font-weight:900;line-height:1.1;margin-bottom:2rem}.title-line{display:block}.glitch-wrapper{position:relative;display:inline-block}.glitch{position:relative;display:inline-block;background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:none}.glitch:before,.glitch:after{content:attr(data-text);position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--text-primary) 0%,var(--text-secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.glitch:before{clip-path:polygon(0 0,100% 0,100% 35%,0 35%);filter:drop-shadow(-1px 0 rgba(0,206,201,.3))}.glitch:after{clip-path:polygon(0 65%,100% 65%,100% 100%,0 100%);filter:drop-shadow(1px 0 rgba(253,121,168,.3))}.hero-subtitle{font-family:var(--font-serif);font-size:clamp(1rem,3vw,1.5rem);color:var(--text-secondary);margin-bottom:3rem;line-height:1.8}.subtitle-accent{color:var(--accent);font-weight:700}.hero-cta{margin-bottom:4rem}.cta-btn,.contact-btn{display:inline-flex;align-items:center;gap:1rem;font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:.2em;padding:1.2rem 2.5rem;border:1px solid var(--secondary);background:transparent;color:var(--secondary);transition:all .4s var(--ease-out-expo);position:relative;overflow:hidden}.cta-btn:hover,.contact-btn:hover{background:#00cec91a;border-color:var(--secondary)}.btn-text,.btn-icon{position:relative;z-index:1}.btn-icon svg{width:20px;height:20px;transition:transform .3s var(--ease-out-expo)}.cta-btn:hover .btn-icon svg,.contact-btn:hover .btn-icon svg{transform:translate(5px)}.hero-scroll-indicator{position:absolute;bottom:3rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:1rem}.scroll-mouse{width:24px;height:40px;border:2px solid var(--text-muted);border-radius:12px;position:relative}.scroll-wheel{position:absolute;top:8px;left:50%;transform:translate(-50%);width:4px;height:8px;background:var(--secondary);border-radius:2px;animation:scrollWheel 2s infinite}@keyframes scrollWheel{0%{transform:translate(-50%) translateY(0)}to{transform:translate(-50%) translateY(8px)}}.scroll-text{font-family:var(--font-display);font-size:.65rem;letter-spacing:.3em;color:var(--text-muted)}.hero-decoration{position:absolute;inset:0;pointer-events:none;overflow:hidden}.deco-line{position:absolute;background:linear-gradient(to bottom,transparent,var(--glass-border),transparent)}.deco-line-1{left:10%;top:0;bottom:0;width:1px}.deco-line-2{right:10%;top:0;bottom:0;width:1px}.deco-circle{position:absolute;bottom:20%;right:5%;width:300px;height:300px;border:1px solid var(--glass-border);border-radius:50%;opacity:.3}section{padding:var(--section-padding) 0;position:relative}.container{max-width:1400px;margin:0 auto;padding:0 var(--container-padding)}.section-header{margin-bottom:4rem}.section-label{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.label-number{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--secondary)}.label-line{width:50px;height:1px;background:var(--secondary)}.label-text{font-family:var(--font-display);font-size:.75rem;letter-spacing:.3em;color:var(--text-muted)}.section-title{font-family:var(--font-serif);font-size:clamp(2rem,6vw,3.5rem);font-weight:700}.title-word{display:inline-block}.title-word.highlight{color:var(--secondary)}.about-content{display:grid;gap:4rem}.about-lead{font-size:clamp(1.5rem,4vw,2.5rem);font-weight:700;line-height:1.4;margin-bottom:2rem}.lead-highlight{background:linear-gradient(135deg,var(--text-primary) 0%,var(--secondary) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.about-text p{color:var(--text-secondary);margin-bottom:1.5rem;font-size:1rem;line-height:2}.about-cards{display:grid;gap:1.5rem}.glass-card{background:var(--glass-bg);border:1px solid var(--glass-border);padding:2rem;border-radius:16px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);position:relative;overflow:hidden;transition:all .4s var(--ease-out-expo);transform-style:preserve-3d}.glass-card:hover{border-color:#00cec980}.card-icon{width:50px;height:50px;margin-bottom:1.5rem;color:var(--secondary)}.card-icon svg{width:100%;height:100%}.card-title{font-family:var(--font-display);font-size:1.2rem;font-weight:600;margin-bottom:.75rem;color:var(--text-primary)}.card-desc{font-size:.95rem;color:var(--text-secondary);line-height:1.8}.card-glow{display:none}.tech-grid{display:grid;gap:2rem}.tech-card{background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:20px;overflow:hidden;transition:all .4s var(--ease-out-expo);transform-style:preserve-3d}.tech-card:hover{border-color:#6c5ce780;transform:translateY(-3px)}.tech-card-visual{height:250px;background:linear-gradient(135deg,#6c5ce71a,#00cec90d);display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden}.visual-orb{position:relative;width:120px;height:120px}.orb-ring{position:absolute;inset:0;border:2px solid transparent;border-radius:50%}.orb-ring-1{border-top-color:var(--secondary);border-bottom-color:var(--secondary);animation:spin 4s linear infinite}.orb-ring-2{inset:15px;border-left-color:var(--primary);border-right-color:var(--primary);animation:spin 3s linear infinite reverse}.orb-core{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:40px;background:radial-gradient(circle,var(--secondary),var(--primary));border-radius:50%;box-shadow:0 0 15px #00cec94d}.visual-cube{width:80px;height:80px;transform-style:preserve-3d;animation:cubeRotate 10s linear infinite}.cube-face{position:absolute;width:80px;height:80px;border:2px solid var(--accent);background:#fd79a81a;box-shadow:inset 0 0 20px #fd79a833}.cube-front{transform:translateZ(40px)}.cube-back{transform:rotateY(180deg) translateZ(40px)}.cube-left{transform:rotateY(-90deg) translateZ(40px)}.cube-right{transform:rotateY(90deg) translateZ(40px)}.cube-top{transform:rotateX(90deg) translateZ(40px)}.cube-bottom{transform:rotateX(-90deg) translateZ(40px)}@keyframes cubeRotate{0%{transform:rotateX(0) rotateY(0)}to{transform:rotateX(360deg) rotateY(360deg)}}.visual-helix{position:relative;width:60px;height:150px}.helix-strand{position:absolute;width:100%;height:100%}.helix-strand:before,.helix-strand:after{content:"";position:absolute;width:20px;height:20px;background:var(--primary-light);border-radius:50%;box-shadow:0 0 8px #6c5ce74d}.helix-strand-1:before{animation:helixMove1 2s ease-in-out infinite}.helix-strand-1:after{animation:helixMove1 2s ease-in-out infinite 1s}.helix-strand-2:before{animation:helixMove2 2s ease-in-out infinite}.helix-strand-2:after{animation:helixMove2 2s ease-in-out infinite 1s}@keyframes helixMove1{0%,to{top:0;left:0}50%{top:130px;left:40px}}@keyframes helixMove2{0%,to{top:0;left:40px}50%{top:130px;left:0}}.tech-card-content{padding:2rem}.tech-number{font-family:var(--font-display);font-size:.8rem;color:var(--primary);letter-spacing:.2em;display:block;margin-bottom:.5rem}.tech-title{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin-bottom:1rem;color:var(--text-primary)}.tech-desc{font-size:.95rem;color:var(--text-secondary);margin-bottom:1.5rem;line-height:1.8}.tech-tags{display:flex;flex-wrap:wrap;gap:.75rem}.tech-tags li{font-family:var(--font-mono);font-size:.8rem;color:var(--text-primary);padding:.4rem .8rem;background:#6c5ce733;border:1px solid rgba(108,92,231,.3);border-radius:20px}#contact{text-align:center}.contact-content{max-width:600px;margin:0 auto}.contact-lead{font-size:1.1rem;color:var(--text-secondary);margin-bottom:2rem;line-height:1.8}.contact-btn{margin:0 auto}footer{padding:4rem 0 2rem;position:relative;border-top:1px solid var(--glass-border)}.footer-container{max-width:1400px;margin:0 auto;padding:0 var(--container-padding);text-align:center}.footer-brand{margin-bottom:2rem}.footer-logo{font-family:var(--font-display);font-size:1.5rem;font-weight:700;letter-spacing:.1em;margin-bottom:.5rem;display:inline-flex;gap:.3em}.footer-tagline{font-size:.9rem;color:var(--text-muted)}.copyright{font-size:.8rem;color:var(--text-muted)}.footer-glow{position:absolute;bottom:0;left:50%;transform:translate(-50%);width:400px;height:200px;background:radial-gradient(ellipse,rgba(108,92,231,.15),transparent 70%);pointer-events:none}.reveal{opacity:0;transform:translateY(40px);transition:all .8s var(--ease-out-expo)}.reveal.active{opacity:1;transform:translateY(0)}.delay-1{transition-delay:.1s}.delay-2{transition-delay:.2s}.delay-3{transition-delay:.3s}.scramble-char{color:var(--secondary)}@media(min-width:768px){.nav-links{display:flex;gap:3rem}.nav-links a{font-family:var(--font-display);font-size:.8rem;font-weight:500;letter-spacing:.15em;position:relative;padding:.5rem 0}.nav-links a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--secondary);transition:width .3s var(--ease-out-expo)}.nav-links a:hover:after{width:100%}.menu-toggle{display:none}.about-content{grid-template-columns:1fr 1fr;gap:6rem}.about-cards{grid-template-columns:1fr}.tech-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.logo{font-size:1.4rem}.nav-links{gap:4rem}.hero-content{max-width:1200px}.about-cards{grid-template-columns:1fr;gap:2rem}.glass-card{padding:2.5rem}.tech-grid{grid-template-columns:repeat(3,1fr);gap:2rem}.tech-card-visual{height:300px}.deco-circle{width:500px;height:500px}}@media(min-width:1400px){.hero-title{font-size:9rem}.section-title{font-size:4rem}.about-lead{font-size:3rem}}
