:root{--bg: #070b10;--bg2: #0c1520;--surface: #0e1b28;--border: rgba(0, 212, 200, .1);--border2: rgba(0, 212, 200, .22);--cyan: #00d4c8;--cyan2: #00f5e9;--cyan-dim: rgba(0, 212, 200, .07);--cyan-glow: rgba(0, 212, 200, .2);--text: #dde8f0;--text2: #a8bfcc;--muted: #556b7d;--mono: "Space Mono", monospace;--sans: "Syne", sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:16px;line-height:1.7;overflow-x:hidden}body:after{content:"";position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.032'/%3E%3C/svg%3E");pointer-events:none;z-index:9999}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--cyan)}.grid-bg{position:fixed;inset:0;z-index:0;background-image:linear-gradient(rgba(0,212,200,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,200,.025) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,black 20%,transparent 100%);mask-image:radial-gradient(ellipse 80% 60% at 50% 0%,black 20%,transparent 100%)}nav,section,footer,.divider{position:relative;z-index:1}nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;justify-content:space-between;align-items:center;padding:16px 60px;background:#070b10d1;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}.nav-logo{font-family:var(--mono);font-size:12px;color:var(--cyan);letter-spacing:.05em;display:flex;align-items:center;gap:8px;text-decoration:none}.nav-dot{width:6px;height:6px;border-radius:50%;background:var(--cyan);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{box-shadow:0 0 #00d4c866}50%{box-shadow:0 0 0 6px #00d4c800}}.nav-links{display:flex;gap:32px;list-style:none}.nav-links a{font-family:var(--mono);font-size:10px;color:var(--muted);text-decoration:none;letter-spacing:.15em;text-transform:uppercase;transition:color .2s}.nav-links a:hover,.nav-links a.is-active{color:var(--cyan)}section{max-width:960px;margin:0 auto;padding:96px 40px}.divider{max-width:960px;margin:0 auto;padding:0 40px}.divider hr{border:none;border-top:1px solid var(--border)}.section-head{margin-bottom:48px}.section-head-centered .section-label{justify-content:center;margin-bottom:24px}.section-label{font-family:var(--mono);font-size:10px;color:var(--cyan);letter-spacing:.25em;text-transform:uppercase;display:flex;align-items:center;gap:10px;margin-bottom:10px}.section-label:before{content:"";width:20px;height:1px;background:var(--cyan)}h2{font-size:clamp(26px,3.5vw,38px);font-weight:800;color:var(--text);line-height:1.1}#hero{min-height:100vh}.hero-inner{max-width:960px;margin:0 auto;padding:120px 40px 80px;min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative}.hero-corner{position:absolute;top:108px;right:0;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.15em;text-align:right;line-height:2.2;opacity:0;animation:fadeUp .8s 1s forwards}.hero-corner b{color:var(--text2);font-weight:400}.hero-eyebrow{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:.3em;text-transform:uppercase;margin-bottom:24px;display:flex;align-items:center;gap:12px;opacity:0;animation:fadeUp .6s .1s forwards}.hero-eyebrow:before{content:"";width:30px;height:1px;background:var(--cyan)}.hero-name{font-size:clamp(54px,9vw,96px);font-weight:800;line-height:.92;letter-spacing:-.03em;margin-bottom:20px;opacity:0;animation:fadeUp .6s .2s forwards}.hero-name .hl{color:var(--cyan)}.hero-role{font-family:var(--mono);font-size:clamp(13px,1.6vw,16px);color:var(--muted);margin-bottom:32px;opacity:0;animation:fadeUp .6s .34s forwards}.hero-role .acc{color:var(--text2)}.hero-desc{max-width:500px;color:var(--muted);font-size:15px;line-height:1.85;margin-bottom:48px;opacity:0;animation:fadeUp .6s .48s forwards}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;opacity:0;animation:fadeUp .6s .62s forwards}.scroll-hint{position:absolute;bottom:36px;left:0;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:center;gap:10px;opacity:0;animation:fadeUp .6s 1.2s forwards}.scroll-line{width:40px;height:1px;background:var(--muted);position:relative;overflow:hidden}.scroll-line:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:var(--cyan);animation:scanline 2s ease-in-out infinite}@keyframes scanline{to{left:100%}}.btn{appearance:none;background:transparent;border:none;cursor:pointer;font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;padding:13px 26px;text-decoration:none;transition:all .22s;display:inline-flex;align-items:center;gap:7px}.btn-primary{background:var(--cyan);color:var(--bg);font-weight:700}.btn-primary:hover{background:var(--cyan2);box-shadow:0 0 28px var(--cyan-glow)}.btn-ghost{background:transparent;border:1px solid var(--border2);color:var(--text2)}.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan);background:var(--cyan-dim)}.about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:start}.avail-badge{display:inline-flex;align-items:center;gap:8px;background:#00d4c80d;border:1px solid var(--border2);padding:7px 14px;margin-bottom:22px;font-family:var(--mono);font-size:10px;color:var(--cyan);letter-spacing:.1em}.avail-dot{width:6px;height:6px;border-radius:50%;background:#00e87a;animation:pulse 2s infinite}.about-text p{color:var(--muted);font-size:15px;line-height:1.9;margin-bottom:14px}.about-text p strong{color:var(--text);font-weight:700}.stat-grid,.stack-grid,.cert-grid{display:grid;gap:2px}.stat-grid{grid-template-columns:1fr 1fr}.stat-card,.stack-group,.edu-item,.cert-card,.exp-item,.project-card,.contact-wrap{background:var(--surface);border:1px solid var(--border)}.stat-card{padding:22px 18px;transition:border-color .2s}.stat-card:hover,.stack-group:hover,.edu-item:hover,.cert-card:hover,.exp-item:hover,.project-card:hover{border-color:var(--border2)}.stat-num{font-family:var(--mono);font-size:28px;font-weight:700;color:var(--cyan);line-height:1;margin-bottom:5px}.stat-label{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.stack-grid{grid-template-columns:repeat(3,1fr)}.stack-group{padding:22px;transition:border-color .2s}.stack-group-label{font-family:var(--mono);font-size:9px;color:var(--cyan);letter-spacing:.25em;text-transform:uppercase;margin-bottom:14px}.stack-tags,.project-stack,.exp-tags,.contact-links{display:flex;flex-wrap:wrap;gap:7px}.tag{font-family:var(--mono);font-size:11px;color:var(--text2);background:#00d4c80d;border:1px solid var(--border);padding:4px 10px;transition:all .2s;cursor:default}.tag:hover{background:#00d4c81a;border-color:var(--cyan);color:var(--cyan)}.edu-list,.exp-list,.projects-list{display:flex;flex-direction:column;gap:2px}.edu-item{padding:26px;display:grid;grid-template-columns:140px 1fr;gap:24px;transition:border-color .2s}.edu-year{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:.06em;padding-top:3px}.edu-degree{font-size:17px;font-weight:700;color:var(--text);margin-bottom:3px}.edu-school{font-family:var(--mono);font-size:11px;color:var(--muted);margin-bottom:10px}.edu-desc{font-size:13px;color:var(--muted);line-height:1.7}.cert-grid{grid-template-columns:repeat(3,1fr)}.section-action{display:flex;justify-content:center;margin-top:22px}.cert-card{padding:22px;transition:border-color .2s;position:relative;overflow:hidden}.cert-card:after{content:"";position:absolute;bottom:0;left:0;height:2px;width:0;background:var(--cyan);transition:width .3s}.cert-card:hover:after{width:100%}.cert-issuer{font-family:var(--mono);font-size:9px;color:var(--cyan);letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}.cert-name{font-size:14px;font-weight:700;color:var(--text);margin-bottom:8px;line-height:1.4}.cert-year{font-family:var(--mono);font-size:10px;color:var(--muted)}.exp-item{display:grid;grid-template-columns:170px 1fr;transition:border-color .2s;overflow:hidden}.exp-meta{padding:26px 22px;border-right:1px solid var(--border);display:flex;flex-direction:column;gap:10px}.exp-period{font-family:var(--mono);font-size:11px;color:var(--cyan);letter-spacing:.05em;line-height:1.6}.exp-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;padding:3px 8px;border:1px solid;width:fit-content}.badge-dot{width:4px;height:4px;border-radius:50%;background:currentColor}.badge-fulltime{color:#00d4c8;border-color:#00d4c84d;background:#00d4c80f}.badge-freelance{color:#f0a500;border-color:#f0a5004d;background:#f0a5000f}.badge-internship{color:#a78bfa;border-color:#a78bfa4d;background:#a78bfa0f}.exp-body{padding:26px}.exp-company,.project-num{font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.15em;text-transform:uppercase;margin-bottom:4px}.exp-role{font-size:18px;font-weight:700;color:var(--text);margin-bottom:10px}.exp-desc,.project-desc{font-size:13px;color:var(--muted);line-height:1.75;margin-bottom:14px}.exp-tag{font-family:var(--mono);font-size:10px;color:var(--muted);background:var(--cyan-dim);border:1px solid var(--border);padding:3px 9px}.project-card{display:grid;grid-template-columns:300px 1fr;transition:border-color .25s;overflow:hidden;min-height:210px}.project-img{position:relative;overflow:hidden;background:var(--bg2);border-right:1px solid var(--border)}.project-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;position:relative}.project-placeholder:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,212,200,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,200,.035) 1px,transparent 1px);background-size:22px 22px}.project-card:hover .project-placeholder:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(transparent,transparent 3px,rgba(0,212,200,.025) 4px)}.ph-icon{width:44px;height:44px;opacity:.2;position:relative;z-index:1}.ph-label{font-family:var(--mono);font-size:9px;color:var(--muted);letter-spacing:.2em;text-transform:uppercase;position:relative;z-index:1}.corner-tl,.corner-br{position:absolute;width:14px;height:14px;border-color:#00d4c84d;border-style:solid}.corner-tl{top:12px;left:12px;border-width:1px 0 0 1px}.corner-br{bottom:12px;right:12px;border-width:0 1px 1px 0}.project-body{padding:26px;display:flex;flex-direction:column;gap:10px}.project-name{font-size:20px;font-weight:800;color:var(--text);line-height:1.2}.project-footer{display:flex;align-items:flex-end;justify-content:space-between;margin-top:auto;flex-wrap:wrap;gap:10px}.project-links{display:flex;gap:14px}.project-link{font-family:var(--mono);font-size:10px;color:var(--cyan);text-decoration:none;letter-spacing:.1em;text-transform:uppercase;display:flex;align-items:center;gap:4px;transition:opacity .2s}.project-link-button{appearance:none;background:transparent;border:none;padding:0;cursor:pointer}.project-link:hover{opacity:.6}.contact-wrap{padding:72px 60px;text-align:center;position:relative;overflow:hidden}.contact-wrap:before{content:"";position:absolute;top:-150px;left:50%;transform:translate(-50%);width:500px;height:500px;background:radial-gradient(circle,rgba(0,212,200,.055) 0%,transparent 70%);pointer-events:none}.contact-wrap:after{content:"";position:absolute;top:0;left:0;width:56px;height:56px;border-top:2px solid var(--cyan);border-left:2px solid var(--cyan)}.corner-br-deco{position:absolute;bottom:0;right:0;width:56px;height:56px;border-bottom:2px solid var(--cyan);border-right:2px solid var(--cyan)}.contact-eyebrow{font-family:var(--mono);font-size:10px;color:var(--cyan);letter-spacing:.25em;text-transform:uppercase;margin-bottom:14px}.contact-title{font-size:clamp(30px,4vw,48px);font-weight:800;color:var(--text);margin-bottom:10px}.contact-sub{font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:38px}.contact-links{justify-content:center;gap:10px}.contact-link{font-family:var(--mono);font-size:11px;color:var(--muted);text-decoration:none;border:1px solid var(--border);padding:11px 20px;letter-spacing:.1em;text-transform:uppercase;transition:all .2s;display:flex;align-items:center;gap:7px}.contact-link:hover{color:var(--cyan);border-color:var(--cyan);background:var(--cyan-dim)}.lightbox-backdrop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:#070b10d1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.lightbox-panel{width:min(100%,980px);max-height:min(88vh,900px);overflow:auto;background:var(--bg2);border:1px solid var(--border2);box-shadow:0 20px 80px #00000059;padding:28px}.lightbox-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}.lightbox-label{margin-bottom:12px}.lightbox-close{width:42px;height:42px;border:1px solid var(--border2);background:transparent;color:var(--text2);font-size:28px;line-height:1;cursor:pointer}.lightbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.project-lightbox-panel{width:min(100%,1080px)}.project-detail-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:24px}.project-detail-media{display:grid;gap:14px}.project-detail-stage,.project-detail-placeholder{min-height:360px;background:var(--surface);border:1px solid var(--border)}.project-detail-stage{overflow:hidden}.project-detail-placeholder{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px}.project-detail-placeholder:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(0,212,200,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(0,212,200,.035) 1px,transparent 1px);background-size:22px 22px}.project-detail-image{display:block;width:100%;height:100%;object-fit:cover}.project-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:12px}.carousel-button{appearance:none;border:1px solid var(--border2);background:transparent;color:var(--text2);padding:10px 14px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.project-carousel-dots{display:flex;align-items:center;justify-content:center;gap:8px;flex:1}.carousel-dot{appearance:none;width:10px;height:10px;border-radius:50%;border:1px solid var(--border2);background:transparent;cursor:pointer}.carousel-dot.is-active{background:var(--cyan);border-color:var(--cyan)}.project-detail-copy{display:grid;align-content:start;gap:18px}.project-detail-description{font-size:14px;color:var(--muted);line-height:1.85}.project-detail-block{display:grid;gap:10px}.projects-page-hero{max-width:960px;margin:0 auto;padding:140px 40px 24px}.projects-page-title{font-size:clamp(48px,8vw,88px)}footer{max-width:960px;margin:0 auto;padding:26px 40px;border-top:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;font-family:var(--mono);font-size:10px;color:var(--muted);letter-spacing:.1em}.f-name{color:var(--text2)}.f-cyan{color:var(--cyan)}@keyframes fadeUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease}.reveal.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.hero-corner,.hero-eyebrow,.hero-name,.hero-role,.hero-desc,.hero-cta,.scroll-hint{opacity:1;transform:none;animation:none}}@media(max-width:768px){nav{padding:14px 20px}.nav-links{display:none}section{padding:72px 20px}.hero-inner{padding:110px 20px 72px}.hero-corner{display:none}.about-grid{grid-template-columns:1fr}.stack-grid,.cert-grid,.lightbox-grid{grid-template-columns:1fr 1fr}.edu-item{grid-template-columns:1fr;gap:8px}.exp-item{grid-template-columns:1fr}.exp-meta{border-right:none;border-bottom:1px solid var(--border)}.project-card{grid-template-columns:1fr}.project-img{height:160px;border-right:none;border-bottom:1px solid var(--border)}.contact-wrap{padding:40px 24px}.projects-page-hero{padding:120px 20px 20px}.project-detail-layout{grid-template-columns:1fr}.project-detail-stage,.project-detail-placeholder{min-height:240px}footer{flex-direction:column;gap:8px;text-align:center}}@media(max-width:640px){.lightbox-backdrop{padding:12px}.lightbox-panel{padding:20px}.lightbox-grid{grid-template-columns:1fr}.project-carousel-controls{flex-wrap:wrap}}
