*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg: #060606;--surface: #0e0e0e;--border: rgba(255,255,255,.06);--text: #f0f0f0;--text-dim: #888;--accent: #00e5ff;--accent2: #ff3366;--font: "Inter", system-ui, sans-serif;--font-display: "Bricolage Grotesque", system-ui, sans-serif;--mono: "JetBrains Mono", monospace;--pad: clamp(1.5rem, 6vw, 8rem)}html{font-size:16px;scroll-behavior:auto}body{font-family:var(--font);background:var(--bg);color:var(--text);overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;color:inherit;font:inherit}#webgl{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}#loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--bg);display:flex;align-items:center;justify-content:center;transition:opacity .8s ease,visibility .8s ease}#loader.done{opacity:0;visibility:hidden;pointer-events:none}.loader-inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.loader-text{font-family:var(--font-display);font-size:2.5rem;font-weight:800;color:var(--text);letter-spacing:-.03em}.loader-bar{width:120px;height:2px;background:var(--border);overflow:hidden}.loader-fill{height:100%;width:0%;background:var(--accent);transition:width .3s ease}#app{position:relative;z-index:1}#nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.5rem var(--pad);mix-blend-mode:difference;transform:translateY(-100%);transition:transform .4s ease}#nav.visible{transform:translateY(0)}.nav-logo{font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:#fff}.nav-links{display:flex;gap:3rem}.nav-links a{font-size:.75rem;font-weight:500;color:#fff;letter-spacing:.1em;text-transform:uppercase;transition:opacity .3s ease}.nav-links a:hover{opacity:.5}#nav-toggle{display:none;flex-direction:column;gap:5px;padding:4px}#nav-toggle span{display:block;width:24px;height:2px;background:#fff;transition:.3s ease}.section-label{display:inline-flex;align-items:center;gap:1rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);margin-bottom:2rem}.label-line{display:inline-block;width:40px;height:1px;background:var(--accent)}.section-label--center{display:flex;justify-content:center;padding:0 var(--pad)}.section-hidden{display:none!important}.section-hidden[data-enabled=true]{display:block!important}.scene-section{position:relative;min-height:100vh}#hero{display:flex;align-items:center;padding:0 var(--pad)}.hero-content{max-width:750px;padding-top:6rem}.hero-label{display:inline-flex;align-items:center;gap:1rem;margin-bottom:2.5rem;opacity:0}.hero-label .label-line{width:50px;height:1px;background:var(--accent)}.hero-label .label-text{font-family:var(--mono);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}.hero-name{font-family:var(--font-display);font-size:clamp(4rem,11vw,9rem);font-weight:800;line-height:.9;letter-spacing:-.03em;margin-bottom:2rem;overflow:hidden;text-shadow:0 0 80px rgba(0,229,255,.15)}.name-line{display:block;opacity:0;transform:translateY(100%)}.accent-dot{color:var(--accent)}.hero-desc{font-size:clamp(.95rem,1.5vw,1.15rem);font-weight:300;line-height:1.7;color:var(--text-dim);max-width:460px;margin-bottom:2.5rem;opacity:0}.hero-meta{display:flex;align-items:center;gap:.75rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);opacity:0}.meta-sep{color:var(--accent);opacity:.4}.scroll-hint{position:absolute;bottom:3rem;left:var(--pad);display:flex;align-items:center;gap:1rem;opacity:0}.scroll-hint span{font-family:var(--mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-dim)}.scroll-hint-line{width:60px;height:1px;background:var(--accent);transform-origin:left;animation:scrollPulse 2s ease-in-out infinite}@keyframes scrollPulse{0%,to{transform:scaleX(1);opacity:1}50%{transform:scaleX(.4);opacity:.3}}#about{display:flex;align-items:center;padding:8rem var(--pad)}.about-container{display:grid;grid-template-columns:1.2fr .8fr;gap:6rem;width:100%;max-width:1200px}.about-lead{font-family:var(--font-display);font-size:clamp(1.3rem,2.5vw,1.75rem);font-weight:500;line-height:1.5;color:var(--text);margin-bottom:2rem;opacity:0;transform:translateY(30px)}.about-lead strong{color:var(--accent);font-weight:600}.about-body{font-size:1rem;line-height:1.8;color:var(--text-dim);opacity:0;transform:translateY(30px)}.about-body strong{color:var(--text);font-weight:500}.about-right{display:flex;flex-direction:column;gap:3rem;padding-top:1rem}.about-stat{position:relative;padding-left:2rem;opacity:0;transform:translateY(20px)}.about-stat:before{content:"";position:absolute;left:0;top:.5rem;width:2px;height:100%;background:var(--accent);opacity:.3}.stat-num{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--text);line-height:1}.stat-plus,.stat-unit{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--accent)}.stat-lbl{display:block;font-size:.7rem;color:var(--text-dim);margin-top:.35rem;letter-spacing:.1em;text-transform:uppercase}#work{padding:8rem 0;overflow:hidden}.work-header{padding:0 var(--pad);margin-bottom:4rem}.work-heading{font-family:var(--font-display);font-size:clamp(2.5rem,5vw,4rem);font-weight:800;letter-spacing:-.03em;margin-top:1rem;margin-bottom:.5rem}.work-role{font-size:.9rem;color:var(--text-dim)}.work-track{display:flex;gap:2rem;padding:0 var(--pad);width:max-content;will-change:transform}.work-card{flex-shrink:0;width:340px;padding:2.5rem;border:1px solid var(--border);background:#0e0e0e99;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .3s ease}.work-card:hover{border-color:#00e5ff26}.work-year{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--accent);opacity:.15;line-height:1;display:block;margin-bottom:1.5rem}.work-card h3{font-family:var(--font-display);font-size:1.1rem;font-weight:600;margin-bottom:.75rem}.work-card p{font-size:.875rem;line-height:1.65;color:var(--text-dim);margin-bottom:1.25rem}.work-tags{display:flex;flex-wrap:wrap;gap:.5rem}.work-tags span{font-size:.6rem;font-family:var(--mono);padding:.25rem .6rem;background:#00e5ff0f;color:var(--accent);border:1px solid rgba(0,229,255,.08);letter-spacing:.04em}#projects{padding-top:8rem}.project-showcase{display:flex;align-items:center;min-height:100vh;padding:4rem var(--pad);position:relative;border-top:1px solid var(--border)}.showcase-content{max-width:600px;opacity:0;transform:translateY(40px)}.showcase-num{font-family:var(--font-display);font-size:5rem;font-weight:800;color:var(--text);opacity:.04;line-height:1;display:block;margin-bottom:1rem}.showcase-title{font-family:var(--font-display);font-size:clamp(2rem,4vw,3.5rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1.25rem;line-height:1.1;text-shadow:0 0 40px rgba(0,0,0,.5)}.showcase-desc{font-size:1rem;line-height:1.75;color:var(--text-dim);margin-bottom:1.5rem}.showcase-tech{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.showcase-tech span{font-size:.6rem;font-family:var(--mono);padding:.3rem .65rem;background:#ffffff08;border:1px solid var(--border);color:var(--text-dim);letter-spacing:.04em}.showcase-links{display:flex;gap:1.5rem}.showcase-links a{font-size:.8rem;font-weight:500;color:var(--accent);letter-spacing:.03em;position:relative;transition:opacity .3s ease}.showcase-links a:hover{opacity:.6}.project-showcase:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--accent);opacity:.08;transition:opacity .6s ease}.project-showcase:hover:before{opacity:.2}#skills{display:flex;align-items:center;padding:10rem var(--pad)}.skills-container{width:100%;max-width:1000px}.skills-flow{display:flex;flex-direction:column;gap:2.5rem}.skill-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.5rem;opacity:0;transform:translate(-20px)}.skill-cat{font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);min-width:50px;flex-shrink:0}.skill-row span:not(.skill-cat){font-size:.95rem;color:var(--text-dim);transition:color .3s ease}.skill-row span:not(.skill-cat):hover{color:var(--text)}#contact{display:flex;align-items:center;padding:10rem var(--pad);min-height:100vh}.contact-container{width:100%}.contact-heading{font-family:var(--font-display);font-size:clamp(3rem,8vw,7rem);font-weight:800;line-height:1;letter-spacing:-.04em;margin-bottom:4rem;overflow:hidden;text-shadow:0 0 60px rgba(0,229,255,.1)}.contact-links{display:flex;flex-direction:column;gap:0}.contact-link{display:flex;align-items:center;justify-content:space-between;padding:1.75rem 0;border-bottom:1px solid var(--border);transition:padding-left .4s ease}.contact-link:first-child{border-top:1px solid var(--border)}.contact-link:hover{padding-left:1rem}.contact-label{font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:var(--text-dim);min-width:80px}.contact-value{font-size:1rem;color:var(--text);transition:color .3s ease}.contact-link:hover .contact-value{color:var(--accent)}footer{display:flex;justify-content:space-between;padding:3rem var(--pad);border-top:1px solid var(--border);font-size:.75rem;color:var(--text-dim)}#chatbot{position:fixed;bottom:1.5rem;right:1.5rem;z-index:200}#chat-toggle{width:52px;height:52px;border-radius:50%;background:var(--accent);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #00e5ff4d;transition:transform .3s ease,box-shadow .3s ease}#chat-toggle:hover{transform:scale(1.08);box-shadow:0 6px 30px #00e5ff66}#chat-toggle svg{color:#000}#chat-panel{position:absolute;bottom:66px;right:0;width:380px;max-height:520px;background:var(--surface);border:1px solid var(--border);border-radius:16px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 60px #0009;transform:scale(.9) translateY(10px);opacity:0;visibility:hidden;transition:all .3s cubic-bezier(.4,0,.2,1)}#chat-panel.chat-open{transform:scale(1) translateY(0);opacity:1;visibility:visible}.chat-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.chat-header-info{display:flex;align-items:center;gap:.75rem;font-weight:600;font-size:.85rem;color:#f0f0f0}.chat-pulse{width:8px;height:8px;border-radius:50%;background:#22c55e;animation:pulse 2s infinite}@keyframes pulse{0%,to{box-shadow:0 0 #22c55e66}50%{box-shadow:0 0 0 6px #22c55e00}}#chat-close{font-size:1rem;color:var(--text-dim);padding:4px 8px;border-radius:8px;transition:background .2s}#chat-close:hover{background:#ffffff0f}#chat-messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.75rem;max-height:360px}.chat-msg{max-width:85%;padding:.75rem 1rem;border-radius:14px;font-size:.875rem;line-height:1.6}.chat-msg p{color:inherit;margin:0}.chat-msg.assistant{align-self:flex-start;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-bottom-left-radius:4px;color:#e0e0e0}.chat-msg.user{align-self:flex-end;background:var(--accent);color:#000;font-weight:500;border-bottom-right-radius:4px}.chat-msg.typing p{display:flex;gap:4px}.chat-msg.typing p span{width:6px;height:6px;border-radius:50%;background:var(--text-dim);animation:typingDot 1.4s infinite}.chat-msg.typing p span:nth-child(2){animation-delay:.2s}.chat-msg.typing p span:nth-child(3){animation-delay:.4s}@keyframes typingDot{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}#chat-form{display:flex;gap:.5rem;padding:.75rem 1rem;border-top:1px solid var(--border)}#chat-input{flex:1;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.65rem 1rem;color:#f0f0f0;font-size:.875rem;font-family:var(--font);outline:none;transition:border-color .3s ease}#chat-input:focus{border-color:var(--accent)}#chat-input::placeholder{color:#ffffff4d}#chat-form button[type=submit]{width:38px;height:38px;border-radius:10px;background:var(--accent);display:flex;align-items:center;justify-content:center;transition:opacity .3s ease}#chat-form button[type=submit]:hover{opacity:.85}#chat-form button[type=submit] svg{color:#000}@media(max-width:768px){:root{--pad: 1.25rem}.nav-links{display:none}#nav-toggle{display:flex}.nav-links.mobile-open{display:flex;flex-direction:column;position:absolute;top:100%;left:0;right:0;background:#060606f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:1.5rem 2rem;gap:1.25rem;border-bottom:1px solid var(--border)}.hero-name{font-size:clamp(2.8rem,13vw,4.5rem);text-shadow:0 0 40px rgba(0,229,255,.12)}.hero-content{padding-top:4rem}.hero-desc{font-size:.9rem;margin-bottom:1.5rem}.hero-label{margin-bottom:1.5rem}.hero-meta{font-size:.6rem;gap:.5rem;flex-wrap:wrap}.scroll-hint{bottom:2rem}#about{padding:5rem var(--pad)}.about-container{grid-template-columns:1fr;gap:2.5rem}.about-lead{font-size:1.1rem}.about-body{font-size:.9rem}.about-right{flex-direction:row;flex-wrap:wrap;gap:1.5rem}.about-stat{padding-left:1.25rem}.stat-num{font-size:2.5rem}#work{padding:5rem 0}.work-header{margin-bottom:2.5rem}.work-heading{font-size:clamp(1.8rem,7vw,2.5rem)}.work-card{width:280px;padding:1.75rem}.work-year{font-size:2.5rem}.work-card h3{font-size:1rem}.work-card p{font-size:.8rem}#projects{padding-top:5rem}.project-showcase{padding:4rem var(--pad);min-height:auto}.showcase-num{font-size:3rem;margin-bottom:.5rem}.showcase-title{font-size:clamp(1.5rem,6vw,2.25rem);text-shadow:none}.showcase-desc{font-size:.875rem}.showcase-content{max-width:100%}#skills{padding:5rem var(--pad)}.skills-flow{gap:1.5rem}.skill-row{gap:.4rem .8rem}.skill-cat{min-width:40px;font-size:.65rem}.skill-row span:not(.skill-cat){font-size:.85rem}#contact{padding:5rem var(--pad);min-height:auto}.contact-heading{font-size:clamp(2.2rem,10vw,3.5rem);margin-bottom:2.5rem;text-shadow:none}.contact-heading br{display:none}.contact-link{padding:1.25rem 0}.contact-value{font-size:.875rem}.contact-label{font-size:.6rem;min-width:60px}#chat-panel{width:calc(100vw - 2rem);right:-.5rem;bottom:60px;max-height:70vh}footer{flex-direction:column;gap:.5rem;padding:2rem var(--pad);text-align:center}.section-label{font-size:.6rem;margin-bottom:1.5rem}}@media(max-width:480px){.hero-name{font-size:clamp(2.2rem,15vw,3.5rem)}.hero-desc br{display:none}.stat-num{font-size:2rem}.stat-plus,.stat-unit{font-size:1.5rem}.work-card{width:260px;padding:1.5rem}.contact-heading{font-size:clamp(2rem,12vw,3rem)}.contact-heading br{display:none}.showcase-title{font-size:clamp(1.3rem,7vw,2rem)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
