:root{--color-navy:#1e3a5f;--color-navy-dark:#152a45;--color-navy-light:#e8eef4;--color-accent:#2563eb;--color-success:#059669;--color-bg:#fff;--color-bg-alt:#f8fafc;--color-text:#2d3748;--color-text-muted:#718096;--color-border:#e2e8f0;--font-family:"Inter","Noto Sans Thai",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:"Inter","Noto Sans Thai",sans-serif;--font-size-h1:2.5rem;--font-size-h2:1.75rem;--font-size-body:1rem;--font-size-small:0.875rem;--line-height-body:1.6;--shadow-card:0 2px 8px rgba(30,58,95,0.08);--shadow-card-hover:0 4px 16px rgba(30,58,95,0.15);--shadow-image:0 8px 24px rgba(30,58,95,0.12);--section-padding:80px 0;--max-width:1140px}.section-title{font-family:var(--font-heading);font-size:var(--font-size-h2);font-weight:600;margin-bottom:32px;text-align:center}.section-title,.section-title--light{color:var(--color-navy)}.section-container{max-width:var(--max-width)}body{margin:0;font-family:var(--font-family);font-size:var(--font-size-body);line-height:var(--line-height-body);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}div,h1,h2,h3,h4,h5,p,span{font-family:var(--font-family)}.row{margin:0}.iconFac,.iconIns{color:#000}.iconFac:hover{color:var(--color-accent)}.iconIns:hover{color:var(--color-navy)}.carousel .slide{background:transparent!important}.carousel .thumbs{justify-content:center;display:flex}@media (min-width:768px){.carousel .slide img{width:auto!important;height:500px}}@media screen and (max-width:767px){.index-page{width:100%;height:100%}}.language-toggle{display:flex;grid-gap:4px;gap:4px}.language-toggle__btn{padding:4px 10px;border:1px solid var(--color-border);border-radius:4px;background:var(--color-bg);color:var(--color-text);font-size:.75rem;font-weight:600;cursor:pointer;transition:background .2s,color .2s}.language-toggle__btn--active{background:var(--color-navy);color:#fff}.language-toggle__btn--active,.language-toggle__btn:hover:not(.language-toggle__btn--active){border-color:var(--color-navy)}.navbar{position:-webkit-sticky;position:sticky;top:0;z-index:100;background:var(--color-bg);border-bottom:1px solid var(--color-border)}.navbar__container{display:flex;align-items:center;justify-content:space-between;padding:12px 15px;max-width:var(--max-width);position:relative}.navbar__brand{display:flex;align-items:center;grid-gap:10px;gap:10px;cursor:pointer}.navbar__logo{width:40px;height:40px}.navbar__site-name{font-weight:600;color:var(--color-navy);font-size:.95rem}.navbar__toggle{display:none;flex-direction:column;justify-content:center;grid-gap:5px;gap:5px;width:36px;height:36px;padding:6px;background:none;border:1px solid var(--color-border);border-radius:4px;cursor:pointer}.navbar__toggle span{display:block;height:2px;background:var(--color-navy);transition:opacity .2s,-webkit-transform .2s;transition:transform .2s,opacity .2s;transition:transform .2s,opacity .2s,-webkit-transform .2s}.navbar__toggle--open span:first-child{-webkit-transform:translateY(7px) rotate(45deg);transform:translateY(7px) rotate(45deg)}.navbar__toggle--open span:nth-child(2){opacity:0}.navbar__toggle--open span:nth-child(3){-webkit-transform:translateY(-7px) rotate(-45deg);transform:translateY(-7px) rotate(-45deg)}.navbar__menu{display:flex;align-items:center;grid-gap:24px;gap:24px;flex:1 1;justify-content:flex-end}.navbar__links{display:flex;grid-gap:20px;gap:20px}.navbar__link{color:var(--color-text);text-decoration:none;font-weight:500;font-size:.9rem;transition:color .2s;position:relative;padding-bottom:4px}.navbar__link:hover{color:var(--color-navy);text-decoration:none}.navbar__link--active{color:var(--color-navy);font-weight:600}.navbar__link--active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--color-navy);border-radius:1px}.navbar__link:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.navbar__actions{display:flex;align-items:center;grid-gap:10px;gap:10px}.navbar__view-resume{padding:6px 12px;color:var(--color-navy);border:1px solid var(--color-navy);border-radius:4px;text-decoration:none;font-size:.85rem;font-weight:600;white-space:nowrap;transition:background .2s,color .2s}.navbar__view-resume:hover{background:var(--color-navy-light);color:var(--color-navy);text-decoration:none}.navbar__cv{padding:6px 14px;background:var(--color-navy);border-radius:4px;font-size:.85rem;font-weight:600;white-space:nowrap;transition:background .2s}.navbar__cv,.navbar__cv:hover{color:#fff;text-decoration:none}.navbar__cv:hover{background:var(--color-navy-dark)}@media screen and (max-width:991px){.navbar__toggle{display:flex}.navbar__menu{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;grid-gap:16px;gap:16px;padding:16px;background:var(--color-bg);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-card)}.navbar__menu--open{display:flex}.navbar__links{flex-direction:column;grid-gap:8px;gap:8px}.navbar__actions{flex-wrap:wrap;justify-content:center}}@media screen and (max-width:575px){.navbar__view-resume{display:none}}.footer{background:var(--color-bg-alt);border-top:1px solid var(--color-border);padding:24px 0}.footer__container{max-width:var(--max-width);text-align:center}.footer__copyright{color:var(--color-text-muted);font-size:.875rem;margin:0}.section-hero{padding:var(--section-padding);background:var(--color-bg);min-height:85vh;display:flex}.section-hero,.section-hero__row{align-items:center}.section-hero__image-frame{display:inline-block;border-radius:12px;overflow:hidden;border:1px solid var(--color-border);box-shadow:var(--shadow-image);background:var(--color-bg-alt)}.section-hero__image{width:100%;max-width:360px;display:block}.section-hero__content{padding:24px 0}.section-hero__availability{display:inline-block;margin-bottom:12px;padding:4px 12px;font-size:.75rem;font-weight:600;color:var(--color-success);background:#d1fae5;border-radius:999px;text-transform:uppercase;letter-spacing:.03em}.section-hero__title{font-family:var(--font-heading);font-size:var(--font-size-h1);font-weight:700;color:var(--color-navy);margin-bottom:12px;line-height:1.2}.section-hero__nickname{font-weight:500;color:var(--color-text-muted);font-size:.85em}.section-hero__subtitle{font-size:1.125rem;font-weight:500;color:var(--color-text);margin-bottom:8px}.section-hero__tagline{font-size:var(--font-size-small);color:var(--color-text-muted);margin-bottom:32px}.section-hero__stats{display:flex;align-items:center;flex-wrap:wrap;grid-gap:16px 24px;gap:16px 24px;margin-bottom:32px}.section-hero__stat{display:flex;flex-direction:column}.section-hero__stat-value{font-size:2rem;font-weight:700;color:var(--color-navy);line-height:1}.section-hero__stat-label{font-size:var(--font-size-small);color:var(--color-text-muted);margin-top:4px}.section-hero__stat-divider{width:1px;height:40px;background:var(--color-border)}.section-hero__actions{display:flex;flex-wrap:wrap;grid-gap:12px;gap:12px}.section-hero__btn{display:inline-block;padding:10px 20px;border-radius:6px;font-weight:600;font-size:.9rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s}.section-hero__btn--primary{background:var(--color-navy);color:#fff}.section-hero__btn--primary:hover{background:var(--color-navy-dark);color:#fff;text-decoration:none}.section-hero__btn--outline{border:1px solid var(--color-navy);color:var(--color-navy)}.section-hero__btn--outline:hover{background:var(--color-navy-light);color:var(--color-navy);text-decoration:none}@media screen and (max-width:767px){.section-hero{min-height:auto;padding:100px 0 60px}.section-hero__image-col{text-align:center;margin-bottom:24px}.section-hero__image-frame{margin:0 auto}.section-hero__title{font-size:2rem}}.section-about{padding:var(--section-padding);background:var(--color-bg-alt)}.section-about__body{max-width:760px;margin:0 auto 40px;font-size:1.0625rem;line-height:var(--line-height-body);color:var(--color-text);text-align:center}.section-about__highlights-title{font-size:1.25rem;font-weight:600;color:var(--color-navy);text-align:center;margin-bottom:24px}.section-about__highlight-col{margin-bottom:20px}.section-about__highlight{height:100%;padding:24px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;transition:box-shadow .2s}.section-about__highlight:hover{box-shadow:var(--shadow-card)}.section-about__highlight-title{font-size:1rem;font-weight:600;color:var(--color-navy);margin:0 0 10px}.section-about__highlight-text{font-size:var(--font-size-small);line-height:var(--line-height-body);color:var(--color-text-muted);margin:0}.section-experience{padding:var(--section-padding);background:var(--color-bg)}.section-experience__container{max-width:var(--max-width)}.section-experience__title{font-size:1.75rem;font-weight:600;color:var(--color-navy);margin-bottom:40px}.section-experience__timeline{position:relative;padding-left:32px;border-left:2px solid var(--color-border)}.section-experience__entry{position:relative;padding-bottom:32px}.section-experience__entry:last-child{padding-bottom:0}.section-experience__dot{position:absolute;left:-39px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--color-navy);border:2px solid var(--color-bg);box-shadow:0 0 0 2px var(--color-navy)}.section-experience__period{display:block;font-size:.875rem;color:var(--color-text-muted);margin-bottom:4px}.section-experience__company{font-size:1.125rem;font-weight:600;color:var(--color-navy);margin:0 0 4px}.section-experience__role{font-size:.95rem;color:var(--color-text);margin:0 0 12px}.section-experience__bullets{margin:0;padding-left:20px;color:var(--color-text-muted);font-size:.9rem;line-height:1.6}.section-experience__bullets li{margin-bottom:4px}.section-experience__actions{margin-top:40px;display:flex;justify-content:center;flex-wrap:wrap;grid-gap:12px;gap:12px}.section-experience__btn{display:inline-block;padding:10px 24px;border-radius:6px;text-decoration:none;font-weight:600;font-size:.9rem;transition:background .2s,color .2s}.section-experience__btn--primary{background:var(--color-navy);color:#fff}.section-experience__btn--primary:hover{background:var(--color-navy-dark);color:#fff;text-decoration:none}.section-experience__btn--outline{border:1px solid var(--color-navy);color:var(--color-navy)}.section-experience__btn--outline:hover{background:var(--color-navy-light);color:var(--color-navy);text-decoration:none}.section-education{padding:var(--section-padding);background:var(--color-bg)}.section-education__list{display:flex;flex-direction:column;grid-gap:20px;gap:20px;max-width:720px;margin:0 auto}.section-education__item{padding:24px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg);transition:box-shadow .2s}.section-education__item:hover{box-shadow:var(--shadow-card)}.section-education__period{display:block;font-size:var(--font-size-small);color:var(--color-text-muted);margin-bottom:8px}.section-education__school{font-size:1.125rem;font-weight:600;color:var(--color-navy);margin:0 0 6px}.section-education__degree{font-size:var(--font-size-small);color:var(--color-text);margin:0}.section-skills{padding:var(--section-padding);background:var(--color-bg-alt)}.section-skills__container{max-width:var(--max-width)}.section-skills__title{font-size:1.75rem;font-weight:600;color:var(--color-navy);margin-bottom:32px}.section-skills__group{margin-bottom:24px}.section-skills__group:last-child{margin-bottom:0}.section-skills__group-title{font-size:1rem;font-weight:600;color:var(--color-text);margin-bottom:12px}.section-skills__chips{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px}.section-skills__chip{padding:6px 14px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:20px;font-size:.875rem;color:var(--color-navy)}.project-card{display:block;background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;overflow:hidden;height:100%;transition:box-shadow .2s,border-color .2s}.project-card,.project-card:hover{text-decoration:none;color:inherit}.project-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-navy)}.project-card:hover .project-card__link{color:var(--color-accent)}.project-card:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.project-card__media{display:flex;align-items:center;justify-content:center;height:200px;padding:16px;background:var(--color-bg-alt);border-bottom:1px solid var(--color-border)}.project-card__media--full{height:250px;padding:0}.project-card__image{display:block;width:auto;height:auto;max-width:70%;max-height:100%;object-fit:contain}.project-card__media--square .project-card__image{max-width:40%}.project-card__media--full .project-card__image{width:100%;height:100%;max-width:100%;object-fit:contain}.project-card__body{padding:16px}.project-card__meta{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px;margin-bottom:10px}.project-card__badge{font-size:.7rem;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--color-navy-light);color:var(--color-navy);text-transform:uppercase;letter-spacing:.02em}.project-card__badge--live{background:#d1fae5;color:var(--color-success)}.project-card__badge--inDevelopment{background:#fef3c7;color:#b45309}.project-card__badge--type-mobile{background:#dbeafe;color:#1d4ed8}.project-card__badge--type-web{background:#ede9fe;color:#6d28d9}.project-card__name{font-size:1rem;font-weight:600;color:var(--color-navy);margin:0 0 8px}.project-card__description{font-size:var(--font-size-small);color:var(--color-text-muted);margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-card__role{font-size:.75rem;color:var(--color-text);margin:0 0 12px}.project-card__skills{display:flex;flex-wrap:wrap;grid-gap:6px;gap:6px;margin-bottom:12px}.project-card__chip{font-size:.75rem;padding:2px 8px;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text)}.project-card__link{font-size:var(--font-size-small);font-weight:600;color:var(--color-navy);transition:color .2s}.section-projects{padding:var(--section-padding);background:var(--color-bg)}.section-projects__container{max-width:var(--max-width)}.section-projects__title{font-size:1.75rem;font-weight:600;color:var(--color-navy);margin-bottom:32px}.section-projects__col{margin-bottom:24px}.section-projects__view-all{text-align:center;margin-top:16px}.section-projects__link{display:inline-block;padding:10px 28px;border:2px solid var(--color-navy);border-radius:4px;color:var(--color-navy);font-weight:600;text-decoration:none;transition:background .2s,color .2s}.section-projects__link:hover{background:var(--color-navy);color:#fff;text-decoration:none}.section-contact{padding:var(--section-padding);background:var(--color-navy)}.section-contact__container{max-width:var(--max-width);text-align:center}.section-contact__title{font-size:var(--font-size-h2);font-weight:600;color:#fff;margin-bottom:12px}.section-contact__subtitle{color:hsla(0,0%,100%,.75);margin-bottom:32px;font-size:var(--font-size-body)}.section-contact__links{flex-wrap:wrap;margin-bottom:20px}.section-contact__documents,.section-contact__links{display:flex;justify-content:center;grid-gap:16px 24px;gap:16px 24px}.section-contact__documents{flex-wrap:nowrap}.section-contact__link{display:flex;align-items:center;grid-gap:10px;gap:10px;padding:12px 24px;border:2px solid hsla(0,0%,100%,.4);border-radius:4px;color:#fff;text-decoration:none;font-weight:600;transition:background .2s,border-color .2s}.section-contact__link:hover{background:hsla(0,0%,100%,.1);border-color:#fff;color:#fff;text-decoration:none}.project-type-filter{display:flex;flex-wrap:wrap;grid-gap:10px;gap:10px;justify-content:center;margin-bottom:32px}.project-type-filter__btn{padding:8px 18px;border:1px solid var(--color-border);border-radius:999px;background:var(--color-bg);color:var(--color-text);font-size:.875rem;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s,color .2s}.project-type-filter__btn:hover{border-color:var(--color-navy);color:var(--color-navy)}.project-type-filter__btn--active{background:var(--color-navy);border-color:var(--color-navy);color:#fff}.project-type-filter__btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.portfolio-page{padding:var(--section-padding);background:var(--color-bg)}.portfolio-page__container{max-width:var(--max-width)}.portfolio-page__title{font-size:1.75rem;font-weight:600;color:var(--color-navy);margin-bottom:8px}.portfolio-page__subtitle{font-size:1rem;color:var(--color-text-muted);margin-bottom:24px}.portfolio-page__empty{text-align:center;color:var(--color-text-muted);padding:40px 0}.portfolio-page__col{margin-bottom:24px}.portfolio-detail{max-width:var(--max-width);padding:var(--section-padding)}.portfolio-detail__breadcrumb{font-size:.875rem;color:var(--color-text-muted);margin-bottom:24px}.portfolio-detail__breadcrumb a{color:var(--color-navy);text-decoration:none}.portfolio-detail__breadcrumb a:hover{text-decoration:underline}.portfolio-detail__breadcrumb-current{color:var(--color-text)}.portfolio-detail__title{font-size:1.75rem;font-weight:600;color:var(--color-navy);margin-bottom:12px}.portfolio-detail__description{font-size:1rem;color:var(--color-text);margin-bottom:16px;line-height:1.6}.portfolio-detail__skills{display:flex;flex-wrap:wrap;grid-gap:8px;gap:8px;margin-bottom:24px}.portfolio-detail__chip{font-size:.75rem;padding:4px 10px;background:var(--color-bg-alt);border:1px solid var(--color-border);border-radius:4px;color:var(--color-text)}.portfolio-detail__links{display:flex;flex-wrap:wrap;grid-gap:12px;gap:12px;margin-bottom:32px}.portfolio-detail__link-btn{display:inline-block;padding:8px 20px;border:2px solid var(--color-navy);border-radius:4px;color:var(--color-navy);font-weight:600;text-decoration:none;transition:background .2s,color .2s}.portfolio-detail__link-btn:hover{background:var(--color-navy);color:#fff;text-decoration:none}.portfolio-detail__carousel{margin-bottom:32px}.portfolio-detail__carousel .carousel .slide{background:transparent}.portfolio-detail__carousel .carousel .slide img{max-height:500px;width:auto;margin:0 auto}.portfolio-detail__carousel .carousel .control-arrow{background:var(--color-navy);opacity:.8}.portfolio-detail__carousel .carousel .control-arrow:hover{opacity:1}.portfolio-detail__back{display:inline-block;color:var(--color-navy);font-weight:600;text-decoration:none}.portfolio-detail__back:hover{text-decoration:underline}.portfolio-detail__missing{color:var(--color-text-muted);margin-bottom:16px}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{-webkit-animation:App-logo-spin 20s linear infinite;animation:App-logo-spin 20s linear infinite}}.App-header{background-color:#282c34;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:calc(10px + 2vmin);color:#fff}.App-link{color:#61dafb}@-webkit-keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes App-logo-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}
/*# sourceMappingURL=main.41e24b2b.chunk.css.map */