:root{--bg: #f8fafc;--bg-elevated: #ffffff;--bg-subtle: #eef1f6;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--accent: #059669;--accent-contrast: #ffffff;--accent-soft: rgba(5, 150, 105, .1);--highlight: #e0245e;--shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 8px 24px rgba(15, 23, 42, .06);--radius: 14px;--font-body: "Rubik", "Kantumruy Pro", system-ui, sans-serif;--font-mono: "JetBrains Mono", "Kantumruy Pro", "Courier New", monospace}html[lang=km]{--font-body: "Kantumruy Pro", "Rubik", system-ui, sans-serif}[data-theme=dark]{--bg: #0b0f16;--bg-elevated: #121826;--bg-subtle: #171f30;--border: #232d40;--text: #e6edf5;--text-muted: #8b98ac;--accent: #34d399;--accent-contrast: #0b0f16;--accent-soft: rgba(52, 211, 153, .14);--highlight: #ff5c8a;--shadow: 0 1px 2px rgba(0, 0, 0, .2), 0 12px 32px rgba(0, 0, 0, .35)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);background:var(--bg);color:var(--text);transition:background-color .25s ease,color .25s ease}img{max-width:100%;display:block}a{color:inherit}.container{width:100%;max-width:880px;margin:0 auto;padding:0 24px}section{padding:96px 0}.eyebrow{font-family:var(--font-mono);font-size:.85em;color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0 0 12px}h2.section-title{font-size:1.9em;margin:0 0 40px;font-weight:600}.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}.reveal.is-visible{opacity:1;transform:translateY(0)}.nav{position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:color-mix(in srgb,var(--bg) 82%,transparent);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;max-width:880px;margin:0 auto}.nav-brand{font-family:var(--font-mono);font-weight:600;text-decoration:none;color:var(--text)}.nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0}.nav-links a{text-decoration:none;color:var(--text-muted);font-size:.95em;transition:color .2s ease}.nav-links a:hover{color:var(--accent)}.theme-toggle{border:1px solid var(--border);background:var(--bg-elevated);color:var(--text);border-radius:999px;width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.05em;line-height:1;transition:border-color .2s ease,transform .15s ease}.theme-toggle:hover{border-color:var(--accent);transform:translateY(-1px)}.locale-toggle{width:auto;min-width:38px;padding:0 10px;font-family:var(--font-mono);font-size:.8em;font-weight:600}.hero{padding-top:120px;padding-bottom:80px}.hero-name{font-size:clamp(2.2em,6vw,3.2em);font-weight:700;margin:0 0 8px;letter-spacing:-.01em}.hero-role{font-family:var(--font-mono);font-size:1.15em;color:var(--accent);min-height:1.4em;margin:0 0 28px}.hero-role .cursor{border-right:.08em solid var(--accent);animation:blink .85s step-end infinite;margin-left:1px}@keyframes blink{50%{border-color:transparent}}.hero-bio{font-size:1.1em;line-height:1.8;color:var(--text-muted);max-width:60ch}.hero-bio p{margin:0 0 18px}.hero-bio strong{color:var(--text);font-weight:500}.hero-bio-note{font-size:.8em;font-style:italic;margin-top:4px;opacity:.6}.hero-links{display:flex;gap:14px;margin-top:36px;flex-wrap:wrap}.icon-link{display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid var(--border);background:var(--bg-elevated);text-decoration:none;font-size:.9em;color:var(--text);transition:border-color .2s ease,transform .15s ease,color .2s ease}.icon-link:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.icon-link-icon{width:16px;height:16px;flex-shrink:0}.skill-groups{display:grid;gap:24px}.skill-group-label{font-family:var(--font-mono);font-size:.85em;color:var(--text-muted);margin:0 0 10px}.chip-row{display:flex;flex-wrap:wrap;gap:10px}.chip{padding:7px 14px;border-radius:8px;background:var(--bg-elevated);border:1px solid var(--border);font-size:.92em}.timeline{position:relative;padding-left:28px;border-left:2px solid var(--border);display:grid;gap:32px}.timeline-item{position:relative}.timeline-item:before{content:"";position:absolute;left:-33px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.timeline-period{font-family:var(--font-mono);font-size:.85em;color:var(--accent);margin:0 0 4px}.timeline-degree{font-weight:600;margin:0 0 2px}.timeline-institution{color:var(--text-muted);margin:0}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.project-card{display:block;padding:22px;border-radius:var(--radius);background:var(--bg-elevated);border:1px solid var(--border);text-decoration:none;color:var(--text);box-shadow:var(--shadow);transition:transform .2s ease,border-color .2s ease;height:100%}.project-card:hover{transform:translateY(-3px);border-color:var(--accent)}.project-card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.project-name{font-family:var(--font-mono);font-weight:600}.project-stars{font-size:.85em;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px}.project-description{color:var(--text-muted);font-size:.92em;line-height:1.6;margin:0 0 16px}.project-language{font-size:.8em;color:var(--accent);font-family:var(--font-mono)}.contact{text-align:center}.contact .eyebrow{justify-content:center;display:flex}.contact-title{font-size:1.9em;font-weight:600;margin:0 0 16px}.contact-text{color:var(--text-muted);max-width:50ch;margin:0 auto 32px}.contact-links{display:flex;justify-content:center;gap:14px;flex-wrap:wrap}.button-primary{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);text-decoration:none;font-weight:500;transition:transform .15s ease,opacity .2s ease}.button-primary:hover{transform:translateY(-2px);opacity:.92}footer{padding:32px 0 60px;text-align:center;color:var(--text-muted);font-size:.85em;font-family:var(--font-mono)}@media screen and (max-width:680px){section{padding:64px 0}.hero{padding-top:96px}.project-grid{grid-template-columns:1fr}.nav-inner{padding:14px 16px}.nav-links{gap:10px}.nav-links .nav-link-item{display:none}}
