:root{--hero-bg-image: url("/assets/images/hero/southest_asia.jpg");--hero-bg-color: #7FBFBF;--section-projects-bg: #E6F0F3;--section-experience-bg: #fff;--section-contact-bg: #fff;--texture-subtle: none;--texture-opacity: .03;--divider-pattern: none}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}html{font-size:100%;scroll-behavior:smooth;overflow-x:hidden}body{font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;font-weight:400;line-height:1.5;color:#1A2B33;background-color:#EDF4F7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2;color:#1A2B33}h1{font-size:2.5rem}@media (min-width: 768px){h1{font-size:3rem}}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.125rem}p{margin-bottom:1rem}p:last-child{margin-bottom:0}.lead{font-size:1.125rem;line-height:1.7;color:#5A7080}small,.text-sm{font-size:.875rem}.text-xs{font-size:.75rem}.text-muted{color:#5A7080}code,.mono{font-family:"JetBrains Mono","SF Mono","Fira Code",monospace;font-size:0.9em}a{color:#0D9488;text-decoration:none;transition:color 0.2s ease}a:hover{color:#0F766E;text-decoration:underline}a:focus{outline:3px solid #0D9488;outline-offset:2px}a:focus:not(:focus-visible){outline:none}a:focus-visible{outline:3px solid #0D9488;outline-offset:2px}ul,ol{padding-left:1.5rem;margin-bottom:1rem}ul li,ol li{margin-bottom:.5rem}.list-none{list-style:none;padding-left:0}.list-none li{margin-bottom:0}img{max-width:100%;height:auto;display:block}::selection{background-color:#0D9488;color:white}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}.container{width:100%;max-width:1120px;margin-left:auto;margin-right:auto;padding-left:1rem;padding-right:1rem}@media (min-width: 768px){.container{padding-left:1.5rem;padding-right:1.5rem}}.container-narrow{max-width:720px}.section{padding-top:3rem;padding-bottom:3rem}@media (min-width: 768px){.section{padding-top:4rem;padding-bottom:4rem}}@media (min-width: 1024px){.section{padding-top:6rem;padding-bottom:6rem}}.section--alt{background-color:#fff}.section--hero{background-color:var(--hero-bg-color);background-image:var(--hero-bg-image);background-size:cover;background-position:center bottom;position:relative}.section--hero::before{content:'';position:absolute;inset:0;background:linear-gradient(to bottom, rgba(255,255,255,0.85) 0%, rgba(255,255,255,0.7) 50%, rgba(255,255,255,0.6) 100%);z-index:0}.section--hero>.container{position:relative;z-index:1}.section--projects{background-color:var(--section-projects-bg)}.section--experience{background-color:var(--section-experience-bg)}.section--contact{background-color:var(--section-contact-bg)}.section--education{background-color:var(--section-projects-bg)}.section-header{margin-bottom:2rem}@media (min-width: 768px){.section-header{margin-bottom:3rem}}.section-label{display:block;font-family:"JetBrains Mono","SF Mono","Fira Code",monospace;font-size:.875rem;color:#5A7080;margin-bottom:.5rem;letter-spacing:0.05em}.section-title{font-size:2rem;font-weight:700;color:#1A2B33;margin:0}@media (min-width: 768px){.section-title{font-size:2.5rem}}.section-description{margin-top:1rem;font-size:1.125rem;color:#5A7080;max-width:720px}.grid{display:grid;gap:1.5rem}@media (min-width: 768px){.grid{gap:2rem}}@media (min-width: 768px){.grid--2{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 768px){.grid--3{grid-template-columns:repeat(2, 1fr)}}@media (min-width: 1024px){.grid--3{grid-template-columns:repeat(3, 1fr)}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.nav{position:sticky;top:0;z-index:100;background-color:rgba(255,255,255,0.95);backdrop-filter:blur(8px);border-bottom:1px solid #D0DFE6;padding:1rem 0}.nav__inner{display:flex;align-items:center;justify-content:space-between}.nav__inner--centered{justify-content:flex-end}.nav__logo{font-weight:600;font-size:1.125rem;color:#1A2B33;text-decoration:none}.nav__logo:hover{color:#1A2B33;text-decoration:none}.nav__links{display:flex;gap:1.5rem;list-style:none;padding:0;margin:0;display:none}@media (min-width: 768px){.nav__links{display:flex}}.nav__link{font-size:.875rem;color:#5A7080;text-decoration:none;transition:color 0.2s ease}.nav__link:hover{color:#1A2B33;text-decoration:none}.footer{padding:2rem 0;border-top:1px solid #D0DFE6;text-align:center}.footer__text{font-size:.875rem;color:#5A7080}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:1rem;font-weight:500;line-height:1;text-decoration:none;border:1px solid transparent;border-radius:4px;cursor:pointer;transition:all 0.2s ease}.btn:focus{outline:3px solid #0D9488;outline-offset:2px}.btn:focus:not(:focus-visible){outline:none}.btn:focus-visible{outline:3px solid #0D9488;outline-offset:2px}.btn--primary{background-color:#0D9488;color:white}.btn--primary:hover{background-color:#0F766E;color:white;text-decoration:none;transform:translateY(-1px)}.btn--primary:active{transform:translateY(0)}.btn--secondary{background-color:transparent;color:#1A2B33;border-color:#B8CCD6}.btn--secondary:hover{background-color:#EDF4F7;border-color:#1A2B33;color:#1A2B33;text-decoration:none}.btn--ghost{background-color:transparent;color:#0D9488;padding:.5rem 1rem}.btn--ghost:hover{background-color:rgba(13,148,136,0.1);color:#0F766E;text-decoration:none}.card{background-color:#fff;border:1px solid #D0DFE6;border-radius:8px;padding:1.5rem;transition:transform 0.2s ease,box-shadow 0.2s ease,border-color 0.2s ease}.card:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,0.07);border-color:#B8CCD6}a.card{display:block;text-decoration:none;color:inherit}a.card:hover{text-decoration:none}a.card:focus{outline:3px solid #0D9488;outline-offset:2px}a.card:focus:not(:focus-visible){outline:none}a.card:focus-visible{outline:3px solid #0D9488;outline-offset:2px}.card__title{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#1A2B33}.card__description{font-size:1rem;color:#5A7080;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.card__footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.75rem}.card__link{font-size:.875rem;font-weight:500;color:#0D9488;display:inline-flex;align-items:center;gap:.25rem}.card__link:hover{color:#0F766E}.card__link svg{transition:transform 0.2s ease}.card__link:hover svg{transform:translateX(2px)}.tag{display:inline-block;padding:.25rem .5rem;font-family:"JetBrains Mono","SF Mono","Fira Code",monospace;font-size:.75rem;color:#5A7080;background-color:#EDF4F7;border-radius:4px;white-space:nowrap}.tags{display:flex;flex-wrap:wrap;gap:.5rem}.social-links{display:flex;align-items:center;gap:1rem}.social-link{display:inline-flex;align-items:center;justify-content:center;color:#5A7080;transition:color 0.2s ease}.social-link:hover{color:#0D9488;text-decoration:none}.social-link:focus{outline:3px solid #0D9488;outline-offset:2px}.social-link:focus:not(:focus-visible){outline:none}.social-link:focus-visible{outline:3px solid #0D9488;outline-offset:2px}.social-link svg{width:24px;height:24px}.social-link--labeled{gap:.5rem;font-size:1rem}.social-link--labeled svg{width:20px;height:20px}.timeline{position:relative;padding-left:60px}.timeline::before{content:'';position:absolute;left:20px;top:.5rem;bottom:.5rem;width:2px;background-color:#D0DFE6}.timeline__item{position:relative;padding-bottom:2rem}.timeline__item:last-child{padding-bottom:0}.timeline__item::before{content:'';position:absolute;left:-44px;top:.5rem;width:10px;height:10px;background-color:#fff;border:2px solid #0D9488;border-radius:50%}.timeline__item:has(.timeline__logo)::before{display:none}.timeline__logo{position:absolute;left:-60px;top:0;width:40px;height:40px;object-fit:contain;background-color:transparent;border:none;border-radius:4px;padding:0}.timeline__header{margin-bottom:.75rem}.timeline__company{font-size:1.5rem;font-weight:600;color:#1A2B33;margin:0}.timeline__role{font-size:1rem;color:#5A7080;margin:.25rem 0 0 0}.timeline__dates{font-family:"JetBrains Mono","SF Mono","Fira Code",monospace;font-size:.875rem;color:#5A7080;margin-top:.25rem}.timeline__bullets{list-style:disc;padding-left:1rem;margin:.75rem 0 0 0}.timeline__bullets li{font-size:1rem;color:#1A2B33;margin-bottom:.5rem}.timeline__bullets li:last-child{margin-bottom:0}.hero{min-height:70vh;display:flex;flex-direction:column;justify-content:center}@media (min-width: 768px){.hero{min-height:80vh}}.hero__content{max-width:720px}.hero__name{font-size:2.5rem;font-weight:700;margin-bottom:.5rem}@media (min-width: 768px){.hero__name{font-size:3rem}}.hero__title{font-size:1.5rem;font-weight:400;color:#5A7080;margin-bottom:1rem}@media (min-width: 768px){.hero__title{font-size:2rem}}.hero__value-prop{font-size:1.125rem;color:#5A7080;line-height:1.7;margin-bottom:1.5rem;max-width:600px}.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.hero__social{display:flex;gap:1rem}@media (max-width: 767px){.hero__social{width:100%;margin-top:.5rem}}.contact__content{text-align:center;max-width:720px;margin:0 auto}.contact__heading{font-size:2rem;margin-bottom:1rem}@media (min-width: 768px){.contact__heading{font-size:2.5rem}}.contact__text{font-size:1.125rem;color:#5A7080;margin-bottom:2rem}.contact__links{display:flex;flex-direction:column;align-items:center;gap:1rem}@media (min-width: 768px){.contact__links{flex-direction:row;justify-content:center;gap:1.5rem}}.contact__link{display:inline-flex;align-items:center;gap:.5rem;font-size:1rem;color:#1A2B33;text-decoration:none;transition:color 0.2s ease}.contact__link:hover{color:#0D9488;text-decoration:none}.contact__link svg{width:20px;height:20px;color:#5A7080;transition:color 0.2s ease}.contact__link:hover svg{color:#0D9488}.highlight{background:#ffffff}.highlight .c{color:#999988;font-style:italic}.highlight .err{color:#a61717;background-color:#e3d2d2}.highlight .k{font-weight:bold}.highlight .o{font-weight:bold}.highlight .cm{color:#999988;font-style:italic}.highlight .cp{color:#999999;font-weight:bold}.highlight .c1{color:#999988;font-style:italic}.highlight .cs{color:#999999;font-weight:bold;font-style:italic}.highlight .gd{color:#000000;background-color:#fdd}.highlight .gd .x{color:#000000;background-color:#faa}.highlight .ge{font-style:italic}.highlight .gr{color:#a00}.highlight .gh{color:#999}.highlight .gi{color:#000000;background-color:#dfd}.highlight .gi .x{color:#000000;background-color:#afa}.highlight .go{color:#888}.highlight .gp{color:#555}.highlight .gs{font-weight:bold}.highlight .gu{color:#aaa}.highlight .gt{color:#a00}.highlight .kc{font-weight:bold}.highlight .kd{font-weight:bold}.highlight .kp{font-weight:bold}.highlight .kr{font-weight:bold}.highlight .kt{color:#445588;font-weight:bold}.highlight .m{color:#099}.highlight .s{color:#d14}.highlight .na{color:teal}.highlight .nb{color:#0086B3}.highlight .nc{color:#445588;font-weight:bold}.highlight .no{color:teal}.highlight .ni{color:purple}.highlight .ne{color:#990000;font-weight:bold}.highlight .nf{color:#990000;font-weight:bold}.highlight .nn{color:#555}.highlight .nt{color:navy}.highlight .nv{color:teal}.highlight .ow{font-weight:bold}.highlight .w{color:#bbb}.highlight .mf{color:#099}.highlight .mh{color:#099}.highlight .mi{color:#099}.highlight .mo{color:#099}.highlight .sb{color:#d14}.highlight .sc{color:#d14}.highlight .sd{color:#d14}.highlight .s2{color:#d14}.highlight .se{color:#d14}.highlight .sh{color:#d14}.highlight .si{color:#d14}.highlight .sx{color:#d14}.highlight .sr{color:#009926}.highlight .s1{color:#d14}.highlight .ss{color:#990073}.highlight .bp{color:#999}.highlight .vc{color:teal}.highlight .vg{color:teal}.highlight .vi{color:teal}.highlight .il{color:#099}
