:root{--accent:#00a78e;--accent-2:#6366f1;--accent-gradient:linear-gradient(120deg, var(--accent), var(--accent-2));--panel-bg:#12161c;--panel-border:#ffffff14;--chip-bg:#6366f11f;--chip-text:#4f46e5}@keyframes reveal-fade-in{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}.reveal{animation:.6s ease-out both reveal-fade-in}.typewrite-role{letter-spacing:3px;text-transform:uppercase;font-size:1.05em!important}.typewrite-role .Typewriter__wrapper{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:600}.typewrite-role .Typewriter__cursor{color:var(--accent-2)}.featured-project{background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:18px;margin:2em 0 3em;padding:2.5em 2.5em 2.2em;position:relative;overflow:hidden;box-shadow:0 20px 40px -20px #6366f159}.featured-project:before{content:"";background:var(--accent-gradient);-webkit-mask-composite:xor;pointer-events:none;opacity:.6;border-radius:18px;padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.featured-badge{background:var(--accent-gradient);color:#fff;letter-spacing:1.5px;text-transform:uppercase;border-radius:999px;margin-bottom:1em;padding:.35em 1em;font-size:.75em;font-weight:700;display:inline-block}.featured-project h3{color:#fff;text-transform:uppercase;margin:0 0 .6em;font-size:1.5em;font-weight:700}.featured-project p{color:#b8bdc7;margin:0 0 1.3em;font-size:.95em;line-height:1.8em}.project-metrics{border-top:1px solid var(--panel-border);border-bottom:1px solid var(--panel-border);flex-wrap:wrap;gap:1.8em;margin-bottom:1.6em;padding:1.2em 0;display:flex}.project-metric{flex-direction:column;display:flex}.project-metric-value{background:var(--accent-gradient);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.6em;font-weight:700}.project-metric-label{color:#9096a3;margin-top:.2em;font-size:.75em}.stack-chips{flex-wrap:wrap;gap:.5em;margin-bottom:1.6em;display:flex}.stack-chip{border:1px solid var(--panel-border);color:#d8dbe3;background:#ffffff0f;border-radius:999px;padding:.35em .9em;font-size:.78em}.featured-project .a-btn-a{background:var(--accent-gradient);letter-spacing:.5px;border-radius:999px;padding:.7em 1.8em;font-size:.9em;font-weight:600;text-decoration:none;transition:transform .25s,box-shadow .25s;display:inline-block;color:#fff!important}.featured-project .a-btn-a:hover{transform:translateY(-2px);box-shadow:0 12px 24px -8px #6366f18c}.tag-chips{margin-bottom:.8em}.tag-chip{background:var(--chip-bg);color:var(--chip-text);letter-spacing:.5px;text-transform:uppercase;border-radius:999px;margin-right:.4em;padding:.25em .8em;font-size:.72em;font-weight:600;display:inline-block}.tag-filter{flex-wrap:wrap;justify-content:center;gap:.6em;margin:1.5em 0 2.5em;display:flex}.tag-filter-btn{color:#555;cursor:pointer;background:0 0;border:1px solid #00a78e59;border-radius:999px;padding:.5em 1.4em;font-size:.85em;transition:all .25s}.tag-filter-btn:hover{border-color:var(--accent);color:var(--accent)}.tag-filter-btn.active{background:var(--accent-gradient);color:#fff;border-color:#0000}.news-img img{border-radius:10px;transition:transform .4s}.news-img a:hover img{transform:scale(1.03)}.timeline-role{color:var(--accent-2);letter-spacing:.5px;margin-top:.2em;font-size:.82em;font-weight:600;display:block}.timeline-highlights{margin:.8em 0 0;padding-left:1.2em}.timeline-highlights li{color:#777;margin-bottom:.3em;font-size:.92em;line-height:1.7em}.social-links{gap:.6em;margin-top:.5em;display:flex}.social-link{color:var(--accent);border:1px solid #00a78e59;border-radius:999px;padding:.45em 1.2em;font-size:.85em;text-decoration:none;transition:all .25s}.form-status{border-radius:8px;margin-top:1em;padding:.8em 1.2em;font-size:.9em}.form-status-success{color:var(--accent);background:#00a78e1f}.form-status-error{color:#dc3545;background:#dc35451a}.social-link:hover{background:var(--accent-gradient);color:#fff;border-color:#0000;text-decoration:none}
.resume-page{color:#2c2c2c;background:#eef0f3;min-height:100vh;padding:2em 1em 4em;font-family:Roboto,Arial,sans-serif}.resume-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1em;max-width:900px;margin:0 auto 1.5em;display:flex}.resume-back{color:#00a78e;font-size:.95em;text-decoration:none}.resume-back:hover{text-decoration:underline}.resume-salary-toggle{color:#555;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.5em;font-size:.85em;display:flex}.resume-salary-toggle input{cursor:pointer}.resume-actions{gap:.8em;display:flex}.resume-btn{color:#00a78e;border:1px solid #00a78e;border-radius:6px;padding:.6em 1.4em;font-size:.9em;font-weight:600;text-decoration:none;transition:all .2s}.resume-btn:hover{background:#00a78e14}.resume-btn-primary{color:#fff;background:#00a78e}.resume-btn-primary:hover{background:#018f79}.resume-sheet{background:#fff;border-radius:6px;max-width:900px;margin:0 auto;display:flex;overflow:hidden;box-shadow:0 10px 40px -20px #0000004d}.resume-sidebar{background:#f7f8fa;border-right:1px solid #e5e7eb;width:30%;padding:2em 1.5em}.resume-photo{border:3px solid #fff;border-radius:50%;width:120px;height:120px;margin:0 auto 1em;overflow:hidden;box-shadow:0 4px 14px #00000026}.resume-photo img{object-fit:cover;width:100%;height:100%}.resume-name{text-align:center;color:#1b242f;margin:.3em 0 0;font-size:1.3em}.resume-name-thai{text-align:center;color:#888;margin:.2em 0 1.5em;font-size:.85em}.resume-side-section{page-break-inside:avoid;break-inside:avoid;margin-bottom:1.6em}.resume-side-section h3{text-transform:uppercase;letter-spacing:1px;color:#00a78e;border-bottom:2px solid #00a78e;margin-bottom:.6em;padding-bottom:.3em;font-size:.85em}.resume-contact-list,.resume-plain-list{margin:0;padding:0;list-style:none}.resume-contact-list li,.resume-plain-list li{color:#444;word-break:break-word;font-size:.82em;line-height:1.6em}.resume-contact-list a{color:#00a78e;text-decoration:none}.resume-small{color:#444;margin:.2em 0;font-size:.82em;line-height:1.5em}.resume-education-item+.resume-education-item{margin-top:1em}.resume-main{width:70%;padding:2em 2.2em}.resume-section{margin-bottom:1.8em}.resume-section h2{color:#1b242f;border-bottom:2px solid #1b242f;margin:0 0 .8em;padding-bottom:.3em;font-size:1.1em}.resume-section p{color:#444;margin:.4em 0;font-size:.92em;line-height:1.7em}.resume-section ul{margin:.4em 0;padding-left:1.2em}.resume-section ul li{color:#444;margin-bottom:.25em;font-size:.9em;line-height:1.65em}.resume-total-exp{font-weight:600;color:#1b242f!important}.resume-job,.resume-project{page-break-inside:avoid;break-inside:avoid;margin-bottom:1.4em}.resume-job h3,.resume-project h3{color:#1b242f;margin:0 0 .15em;font-size:1em}.resume-job-company{font-weight:600;color:#00a78e!important;margin:0!important;font-size:.88em!important}.resume-job-period{text-transform:uppercase;letter-spacing:.5px;color:#999!important;margin:.15em 0 .5em!important;font-size:.78em!important}.resume-project-role{font-weight:600;color:#6366f1!important;margin:0 0 .4em!important;font-size:.82em!important}.resume-metrics{flex-wrap:wrap;gap:.6em;display:flex;margin:.5em 0!important;padding:0!important;list-style:none!important}.resume-metrics li{background:#00a78e14;border-radius:6px;padding:.3em .8em;font-weight:600;color:#00806c!important;font-size:.8em!important}.resume-stack{font-style:italic;color:#888!important;font-size:.8em!important}.resume-skills-grid{grid-template-columns:1fr 1fr;gap:1.2em 2em;display:grid}.resume-skill-category{page-break-inside:avoid;break-inside:avoid}.resume-skill-category:last-child{grid-column:1/-1}.resume-skill-category:last-child .resume-skill-row{max-width:48%}.resume-skill-category h4{color:#1b242f;margin:0 0 .6em;font-size:.85em}.resume-skill-row{align-items:center;gap:.6em;margin-bottom:.45em;display:flex}.resume-skill-name{color:#444;flex-shrink:0;width:38%;font-size:.8em}.resume-skill-bar{background:#e9ebef;border-radius:4px;flex:1;height:6px;overflow:hidden}.resume-skill-bar-fill{background:linear-gradient(90deg,#00a78e,#6366f1);border-radius:4px;height:100%;display:block}.resume-skill-level{color:#999;text-align:right;flex-shrink:0;width:22%;font-size:.72em}@media (max-width:700px){.resume-sheet{flex-direction:column}.resume-sidebar,.resume-main{width:100%}.resume-skills-grid{grid-template-columns:1fr}}@media print{.no-print{display:none!important}.resume-page{background:#fff;padding:0;font-size:8.4pt}.resume-sheet{box-shadow:none;border-radius:0;max-width:100%}.resume-sidebar{padding:1.6em 1.4em}.resume-main{padding:1.6em 1.9em}.resume-photo{width:100px;height:100px}.resume-side-section{margin-bottom:1.4em}.resume-side-section h3{page-break-after:avoid;break-after:avoid;font-size:.85em}.resume-section{margin-bottom:1.3em}.resume-section h2{page-break-after:avoid;break-after:avoid;margin-bottom:.6em;font-size:1.2em}.resume-section p,.resume-section ul li{font-size:.95em;line-height:1.5em}.resume-section ul{margin:.4em 0}.resume-job,.resume-project{margin-bottom:.85em}.resume-job h3,.resume-project h3,.resume-job-company,.resume-job-period,.resume-project-role{page-break-after:avoid;break-after:avoid}.stack-chips,.project-metrics{margin-bottom:1em!important}.resume-skills-grid{grid-template-columns:1fr 1fr 1fr;gap:.6em 1.2em}.resume-skill-category{margin-bottom:.4em}.resume-skill-category h4{page-break-after:avoid;break-after:avoid;margin-bottom:.3em}.resume-skill-row{margin-bottom:.4em}.resume-skill-bar{display:none}.resume-skill-row{gap:.3em}.resume-skill-name{flex:1;width:auto}.resume-skill-level{flex-shrink:0;width:auto}@page{margin:1.2cm;size:A4}}
