:root{
  --ink:#0B1A2E; --ink-2:#14305A; --paper:#F5F7FA; --white:#fff;
  --line:#DCE3EC; --text:#1B2A3F; --muted:#56667C;
  --cobalt:#2456F0; --aqua:#22C7B8;
  --max:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;font-family:'Anuphan','Noto Sans Thai',system-ui,sans-serif;font-size:17px;line-height:1.75;color:var(--text);background:var(--white);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:var(--cobalt)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--aqua);outline-offset:3px;border-radius:4px}
.wrap{width:min(var(--max),100% - 40px);margin-inline:auto}
h1,h2,h3{line-height:1.2;margin:0;font-weight:600;letter-spacing:-.01em}

/* header */
.site-header{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:10px;flex-wrap:wrap}
.site-header img{display:block}
.nav{display:flex;gap:6px;flex-wrap:wrap}
.nav a{color:var(--text);text-decoration:none;padding:6px 14px;border-radius:99px;font-size:16px}
.nav a:hover{background:var(--paper)}
.nav a[aria-current="page"]{background:var(--ink);color:var(--white)}

/* hero */
.hero{background:var(--ink);color:var(--white);overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:48px;align-items:end;padding-block:88px 0}
.hero h1{font-size:clamp(40px,6.4vw,76px);font-weight:700;line-height:1.05;letter-spacing:-.025em;max-width:11em}
.hero p{margin:28px 0 0;max-width:34em;font-size:19px;color:#C4D0E2}
.hero .actions{display:flex;gap:12px;flex-wrap:wrap;margin:36px 0 88px}
.btn{display:inline-block;padding:12px 24px;border-radius:99px;font:inherit;font-weight:600;text-decoration:none;border:2px solid transparent}
.btn-primary{background:var(--aqua);color:var(--ink)}
.btn-primary:hover{background:#4EDDD0}
.btn-ghost{border-color:#3A5580;color:var(--white)}
.btn-ghost:hover{border-color:var(--white)}

.scale{display:flex;align-items:flex-end;gap:10px;height:360px;padding-bottom:34px;position:relative}
.scale::after{content:"";position:absolute;left:0;right:0;bottom:30px;height:2px;background:#3A5580}
.scale .bar{flex:1;border-radius:6px 6px 0 0;background:linear-gradient(180deg,var(--aqua),var(--cobalt));height:var(--h);transform-origin:bottom;animation:grow 1.1s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 80ms + 200ms);position:relative}
.scale .bar span{position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);font-size:13px;color:#8FA3C0;white-space:nowrap}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}

/* sections */
section{padding-block:96px}
.lead{display:grid;grid-template-columns:1fr 1.6fr;gap:48px}
.lead h2,.section-title{font-size:clamp(28px,3.6vw,42px)}
.lead p{margin:0 0 1.2em;max-width:38em}
.lead p:last-child{margin-bottom:0}
.about{background:var(--paper)}
.about .quote{margin:0;padding-left:20px;border-left:4px solid var(--aqua);font-size:19px;color:var(--ink-2)}

.services-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:20px;margin-top:48px}
.panel{border-radius:20px;padding:36px;background:var(--paper);border:1px solid var(--line)}
.panel:first-child{background:var(--ink);color:#D5DFEE;border-color:var(--ink)}
.panel:first-child h3{color:var(--white)}
.panel svg{width:44px;height:44px;margin-bottom:24px;color:var(--aqua)}
.panel:last-child svg{color:var(--cobalt)}
.panel h3{font-size:24px;margin-bottom:12px}
.panel p{margin:0}

.lifecycle{list-style:none;margin:56px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}
.lifecycle li{counter-increment:s;padding:20px 20px 0 0;border-top:3px solid var(--line);position:relative}
.lifecycle li::before{content:counter(s);position:absolute;top:-3px;left:0;width:48px;height:3px;background:var(--cobalt)}
.lifecycle strong{display:block;font-size:18px;margin-top:6px}
.lifecycle span{color:var(--muted);font-size:15px}

.contact{background:var(--ink);color:#C4D0E2}
.contact h2{color:var(--white)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:40px}
.contact address{font-style:normal;border:1px solid #28426B;border-radius:20px;padding:32px}
.contact h3{color:var(--white);font-size:20px;margin-bottom:12px}
.contact address p{margin:0}
.contact a{color:var(--aqua);font-weight:600}
.note{margin-top:32px;color:#8FA3C0}

footer{background:var(--ink);color:#8FA3C0;font-size:15px;border-top:1px solid #1E3558}
footer .wrap{padding-block:28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer a{color:inherit}

/* jobs */
.page-head{background:var(--ink);color:var(--white)}
.page-head .wrap{padding-block:72px}
.page-head h1{font-size:clamp(36px,5vw,60px);font-weight:700;letter-spacing:-.02em}
.page-head p{margin:16px 0 0;max-width:40em;color:#C4D0E2}
.page-head a{color:var(--aqua);font-weight:600}
.jobs{padding-block:64px 96px}
details.job{border-bottom:1px solid var(--line)}
details.job:first-of-type{border-top:1px solid var(--line)}
details.job summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:24px 4px}
details.job summary::-webkit-details-marker{display:none}
details.job summary h2{font-size:clamp(20px,2.6vw,28px);flex:1}
.tag{font-size:14px;padding:2px 12px;border-radius:99px;background:var(--paper);border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.tag.remote{background:#E3F8F5;border-color:#B5ECE6;color:#0B6B62}
details.job summary::after{content:"+";font-size:28px;line-height:1;color:var(--cobalt);width:28px;text-align:center;transition:transform .2s}
details.job[open] summary::after{transform:rotate(45deg)}
.job-body{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding:8px 4px 40px}
.job-body h3{font-size:18px;margin-bottom:12px}
.job-body ul{margin:0;padding-left:1.2em}
.job-body li{margin-bottom:8px;font-size:16px}
.apply{margin-top:48px;padding:28px 32px;border-radius:20px;background:var(--paper);border:1px solid var(--line)}
.apply p{margin:0 0 8px}
.apply p:last-child{margin:0}

@media (max-width:860px){
  .hero .wrap,.lead,.services-grid,.contact-grid,.job-body{grid-template-columns:1fr}
  .hero .wrap{padding-top:56px;gap:0}
  .hero .actions{margin-bottom:48px}
  .scale{height:220px}
  .lifecycle{grid-template-columns:1fr 1fr;row-gap:28px}
  section{padding-block:64px}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .scale .bar{animation:none}
}
