@import "https://fonts.googleapis.com/css2?family=Noto+Sans+Thai:wght@400;500;600;700&family=Inter:wght@400;500;600;700&display=swap";
:root{--bg:#0a0a0f;--fg:#e4e4e7;--muted:#71717a;--border:#27272a;--surface:#12121a;--accent:#e4e4e7;--accent-hover:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Noto Sans Thai,-apple-system,BlinkMacSystemFont,sans-serif;font-size:15px;line-height:1.6}body:before{content:"";z-index:0;pointer-events:none;filter:blur(40px);background:radial-gradient(60% 50% at 20% 30%,#503cb41f,#0000 60%),radial-gradient(50% 60% at 75% 20%,#2850a01a,#0000 60%),radial-gradient(45% 55% at 60% 70%,#6428781a,#0000 60%),radial-gradient(55% 45% at 30% 80%,#143c8c14,#0000 60%);animation:20s ease-in-out infinite alternate nebula-drift;position:fixed;inset:-100px}@keyframes nebula-drift{0%{transform:translate(0)scale(1)}33%{transform:translate(30px,-20px)scale(1.05)}66%{transform:translate(-20px,15px)scale(.97)}to{transform:translate(10px,-10px)scale(1.02)}}.star-layer{z-index:0;pointer-events:none;will-change:transform;position:fixed;inset:0}.star-layer-1{background:radial-gradient(1px 1px at 10% 15%,#fffc,#0000),radial-gradient(1px 1px at 25% 8%,#fff9,#0000),radial-gradient(1px 1px at 40% 20%,#ffffffb3,#0000),radial-gradient(1px 1px at 55% 5%,#ffffff80,#0000),radial-gradient(1px 1px at 70% 12%,#ffffffe6,#0000),radial-gradient(1px 1px at 85% 18%,#fff9,#0000),radial-gradient(1px 1px at 15% 35%,#ffffffb3,#0000),radial-gradient(1px 1px at 30% 28%,#fff6,#0000),radial-gradient(1px 1px at 50% 40%,#fffc,#0000),radial-gradient(1px 1px at 65% 32%,#ffffff80,#0000),radial-gradient(1px 1px at 80% 38%,#ffffffb3,#0000),radial-gradient(1px 1px at 92% 28%,#fff9,#0000),radial-gradient(1px 1px at 5% 55%,#fffc,#0000),radial-gradient(1px 1px at 20% 48%,#ffffff80,#0000),radial-gradient(1px 1px at 35% 60%,#ffffffb3,#0000),radial-gradient(1px 1px at 48% 52%,#fff6,#0000),radial-gradient(1px 1px at 60% 58%,#ffffffe6,#0000),radial-gradient(1px 1px at 75% 48%,#fff9,#0000),radial-gradient(1px 1px at 88% 55%,#ffffff80,#0000),radial-gradient(1px 1px at 8% 72%,#ffffffb3,#0000),radial-gradient(1px 1px at 22% 78%,#fffc,#0000),radial-gradient(1px 1px at 38% 68%,#ffffff80,#0000),radial-gradient(1px 1px at 52% 75%,#fff9,#0000),radial-gradient(1px 1px at 68% 72%,#fff6,#0000),radial-gradient(1px 1px at 82% 68%,#fffc,#0000),radial-gradient(1px 1px at 95% 78%,#ffffff80,#0000),radial-gradient(1px 1px at 12% 88%,#ffffffb3,#0000),radial-gradient(1px 1px at 28% 92%,#fff9,#0000),radial-gradient(1px 1px at 45% 85%,#fffc,#0000),radial-gradient(1px 1px at 58% 90%,#ffffff80,#0000),radial-gradient(1px 1px at 72% 85%,#ffffffb3,#0000),radial-gradient(1px 1px at 88% 92%,#fff9,#0000),radial-gradient(1.5px 1.5px at 18% 22%,#b4c8ffe6,#0000),radial-gradient(1.5px 1.5px at 62% 15%,#c8b4ffcc,#0000),radial-gradient(1.5px 1.5px at 42% 45%,#ffdcb4b3,#0000),radial-gradient(1.5px 1.5px at 78% 62%,#b4dcffcc,#0000),radial-gradient(1.5px 1.5px at 8% 42%,#ffc8c8b3,#0000),radial-gradient(1.5px 1.5px at 55% 82%,#c8c8ffcc,#0000)}.star-layer-2{background:radial-gradient(1px 1px at 13% 18%,#ffffffe6,#0000),radial-gradient(1px 1px at 33% 11%,#ffffff80,#0000),radial-gradient(1px 1px at 47% 25%,#ffffffb3,#0000),radial-gradient(1px 1px at 63% 8%,#fff9,#0000),radial-gradient(1px 1px at 77% 16%,#fffc,#0000),radial-gradient(1px 1px at 7% 38%,#ffffff80,#0000),radial-gradient(1px 1px at 22% 32%,#fffc,#0000),radial-gradient(1px 1px at 38% 48%,#fff9,#0000),radial-gradient(1px 1px at 53% 35%,#fff6,#0000),radial-gradient(1px 1px at 68% 42%,#ffffffe6,#0000),radial-gradient(1px 1px at 83% 30%,#ffffff80,#0000),radial-gradient(1px 1px at 95% 45%,#ffffffb3,#0000),radial-gradient(1px 1px at 18% 62%,#fff9,#0000),radial-gradient(1px 1px at 32% 55%,#fffc,#0000),radial-gradient(1px 1px at 45% 70%,#ffffff80,#0000),radial-gradient(1px 1px at 58% 65%,#ffffffb3,#0000),radial-gradient(1px 1px at 72% 52%,#fff6,#0000),radial-gradient(1px 1px at 88% 60%,#ffffffe6,#0000),radial-gradient(1px 1px at 10% 80%,#fff9,#0000),radial-gradient(1px 1px at 25% 85%,#fffc,#0000),radial-gradient(1px 1px at 40% 75%,#ffffff80,#0000),radial-gradient(1px 1px at 55% 90%,#ffffffb3,#0000),radial-gradient(1px 1px at 70% 80%,#fff6,#0000),radial-gradient(1px 1px at 85% 88%,#fffc,#0000),radial-gradient(1.5px 1.5px at 25% 22%,#c8dcffcc,#0000),radial-gradient(1.5px 1.5px at 70% 18%,#ffc8dcb3,#0000),radial-gradient(1.5px 1.5px,#c8ffdc99,#0000),radial-gradient(1.5px 1.5px at 82% 45%,#dcc8ffcc,#0000),radial-gradient(1.5px 1.5px at 15%,#ffdcc8b3,#0000);animation:4s ease-in-out infinite alternate stars-twinkle}@keyframes stars-twinkle{0%{opacity:.3}50%{opacity:1}to{opacity:.4}}main{z-index:1;min-height:100vh;position:relative}a{color:inherit;text-decoration:none}.nav{justify-content:space-between;align-items:center;max-width:960px;margin:0 auto;padding:24px clamp(20px,5vw,48px);display:flex}.brand{letter-spacing:-.01em;font-size:15px;font-weight:600}.navLinks{gap:24px;display:flex}.navLinks a{color:var(--muted);font-size:14px;font-weight:500;transition:color .15s}.navLinks a:hover{color:var(--fg)}.hero{border-bottom:1px solid var(--border);max-width:960px;margin:0 auto;padding:60px clamp(20px,5vw,48px) 80px}.heroGrid{grid-template-columns:1fr 280px;align-items:center;gap:48px;display:grid}.heroCopy{max-width:540px}h1{letter-spacing:-.03em;margin:0 0 20px;font-size:clamp(32px,5vw,44px);font-weight:700;line-height:1.15}.lead{color:var(--muted);max-width:480px;margin:0 0 28px;font-size:16px;font-weight:400;line-height:1.7}.actions{gap:12px;display:flex}.primaryButton,.secondaryButton{cursor:pointer;border-radius:6px;align-items:center;gap:6px;height:40px;padding:0 20px;font-size:14px;font-weight:600;transition:background .15s,border-color .15s,transform .15s;display:inline-flex}.primaryButton{background:var(--fg);color:var(--bg);border:none}.primaryButton:hover{background:#fff;transform:scale(1.04)}.secondaryButton{border:1px solid var(--border);color:var(--fg);background:0 0}.secondaryButton:hover{border-color:var(--muted);transform:scale(1.04)}.profilePanel{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:20px}.portrait{aspect-ratio:1;background:var(--border);border-radius:6px;margin-bottom:16px;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%;display:block}.panelLabel{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px;font-size:12px;font-weight:600}.panelText{margin:0 0 16px;font-size:15px;font-weight:600}.metrics{border-top:1px solid var(--border);grid-template-columns:1fr 1fr;gap:12px;padding-top:12px;display:grid}.metrics strong{letter-spacing:-.02em;font-size:22px;font-weight:700;display:block}.metrics span{color:var(--muted);margin-top:2px;font-size:12px;font-weight:500;display:block}.section{border-bottom:1px solid var(--border);max-width:960px;margin:0 auto;padding:72px clamp(20px,5vw,48px)}.sectionLabel{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0 0 8px;font-size:12px;font-weight:600}h2{letter-spacing:-.02em;margin:0 0 32px;font-size:22px;font-weight:700}.projectGrid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.projectCard{border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:24px;transition:border-color .15s,transform .15s}.projectCard:hover{border-color:#52525b;transform:scale(1.02)}.projectCard p{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:0 0 4px;font-size:12px;font-weight:600}.projectCard h3{margin:0 0 6px;font-size:16px;font-weight:700}.projectCard span{color:var(--muted);font-size:14px;line-height:1.6}.split{grid-template-columns:180px 1fr;gap:32px;display:grid}.skillList{flex-wrap:wrap;gap:8px;display:flex}.skillList span{border:1px solid var(--border);color:var(--fg);background:0 0;border-radius:6px;padding:6px 14px;font-size:13px;font-weight:500;transition:border-color .15s,transform .15s}.skillList a:hover span{border-color:#52525b;transform:scale(1.08)}.contact{max-width:960px;margin:0 auto;padding:72px clamp(20px,5vw,48px)}.contact h2{margin-bottom:20px}.contact .primaryButton{height:44px;padding:0 24px;font-size:15px}.footer{max-width:960px;margin:0 auto;padding:0 clamp(20px,5vw,48px) 40px}.footerInner{border-top:1px solid var(--border);color:var(--muted);justify-content:space-between;align-items:center;padding-top:20px;font-size:13px;display:flex}.footerLinks{gap:20px;display:flex}.footerLinks a:hover{color:var(--fg)}@media (max-width:700px){.heroGrid,.projectGrid,.split{grid-template-columns:1fr}.heroGrid{gap:32px}.profilePanel{grid-template-columns:auto 1fr;align-items:center;gap:16px;display:grid}.portrait{border-radius:50%;width:64px;height:64px;margin-bottom:0}.metrics{grid-column:1/-1}.footerInner{flex-direction:column;align-items:flex-start;gap:10px}}body,a,button,.primaryButton,.secondaryButton{cursor:none}.custom-cursor{z-index:9999;pointer-events:none;border:1px solid #ffffff40;border-radius:50%;width:36px;height:36px;transition:width .2s,height .2s,border-color .2s;position:fixed;top:-18px;left:-18px}.custom-cursor-dot{z-index:9999;pointer-events:none;background:#ffffffe6;border-radius:50%;width:6px;height:6px;position:fixed;top:-3px;left:-3px;box-shadow:0 0 12px #fff6}.reveal{opacity:0;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(24px)}.reveal.revealed{opacity:1;transform:translateY(0)}.projectCard:first-child{transition-delay:0s}.projectCard:nth-child(2){transition-delay:.1s}.projectCard:nth-child(3){transition-delay:.2s}.projectCard:nth-child(4){transition-delay:.3s}@media (max-width:700px){.custom-cursor,.custom-cursor-dot{display:none}body{cursor:auto}a,button,.primaryButton,.secondaryButton{cursor:pointer}}
