:root{
  --blue:#2563eb; --blue-dark:#1d4ed8; --blue-soft:#eaf1ff; --blue-line:#cfe0ff;
  --ink:#333; --muted:#5f6670; --bg:#fefefe; --alt:#f8f8f8; --dark:#1f1f1f;
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:400 16px/1.7 Poppins,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,.logo{font-family:Kanit,sans-serif;line-height:1.2}
a{color:inherit;text-decoration:none}
.wrap{width:min(1180px,100% - 40px);margin-inline:auto}
section{padding:90px 0}
.alt{background:var(--alt)}

/* nav */
.nav{position:sticky;top:0;z-index:20;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.06)}
.nav .wrap{display:flex;justify-content:space-between;align-items:center;padding:14px 0}
.logo{font-weight:700;font-size:1.5rem;display:flex;align-items:center;gap:10px}
.logo i{width:34px;height:34px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--blue);display:inline-block}
.logo b{color:var(--blue)}
.nav nav{display:flex;align-items:center;gap:34px;font-size:.92rem}
.nav nav a:not(.btn):hover{color:var(--blue)}

/* buttons */
.btn{display:inline-block;background:var(--blue);color:#fff;font-weight:600;font-size:.88rem;letter-spacing:.04em;text-transform:uppercase;padding:16px 28px;border-radius:8px;border:1px solid var(--blue);transition:.2s}
.btn:hover{background:var(--blue-dark);transform:translateY(-2px)}
.btn-sm{padding:12px 24px}
.btn-soft{background:rgba(37,99,235,.12);color:var(--ink);border-color:var(--blue)}
.btn-soft:hover{background:rgba(37,99,235,.2)}

/* hero */
.hero{position:relative;overflow:hidden;padding:110px 0 0;background:linear-gradient(120deg,#fefefe 35%,#dbe8ff 100%)}
.hero .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;align-items:end;position:relative;z-index:1}
.pill{display:inline-block;background:var(--blue-soft);color:var(--blue-dark);font:600 .72rem Poppins;letter-spacing:.08em;text-transform:uppercase;padding:6px 16px;border-radius:99px;margin-bottom:22px}
h1{font-size:clamp(2.2rem,5vw,3.3rem);font-weight:700}
.lead{margin:20px 0 32px;max-width:560px;color:var(--ink)}
.actions{display:flex;gap:14px;flex-wrap:wrap;padding-bottom:70px}
.portrait{align-self:end;aspect-ratio:4/5;max-height:520px;margin:0 0 0 auto;width:min(400px,100%);border-radius:24px 24px 0 0;overflow:hidden;box-shadow:0 0 0 6px rgba(37,99,235,.15),0 24px 60px rgba(37,99,235,.35)}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 12%;display:block}
.ghost{position:absolute;left:0;right:0;bottom:-.22em;text-align:center;font:700 clamp(4rem,13vw,10rem)/1 Kanit;color:rgba(37,99,235,.07);white-space:nowrap;text-transform:uppercase;z-index:0;user-select:none}

/* headings & cards */
.center{text-align:center}
h2{font-size:clamp(1.9rem,4vw,2.6rem);font-weight:600;margin-bottom:14px}
.sub{max-width:720px;margin:0 auto 46px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px}
.grid.five{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.grid.five{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}}
.card{background:#fff;border:1px solid var(--blue-line);border-radius:14px;padding:28px 22px;text-align:center;transition:.2s}
.card:hover{transform:translateY(-5px);box-shadow:0 14px 30px rgba(37,99,235,.12);border-color:var(--blue)}
.ico{width:54px;height:54px;border-radius:12px;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;margin:0 auto 16px;font-size:1.5rem}
.card h3{font-size:1.15rem;font-weight:600;margin-bottom:8px}
.card p{font-size:.92rem;color:var(--muted)}
.card ul{list-style:none;padding:0;text-align:left;display:grid;gap:8px;font-size:.92rem;color:var(--muted);margin-top:14px}
.card ul li::before{content:"✓";color:var(--blue);font-weight:700;margin-right:10px}

/* experience */
.timeline{list-style:none;padding:0;max-width:860px;margin:0 auto;border-left:2px solid var(--blue-line)}
.timeline li{display:grid;grid-template-columns:130px 1fr;gap:22px;padding:0 0 32px 28px;position:relative}
.timeline li::before{content:"";position:absolute;left:-7px;top:8px;width:12px;height:12px;border-radius:50%;background:var(--blue)}
.when{font-size:.88rem;color:var(--muted);padding-top:3px}
.timeline h3{font-size:1.15rem;font-weight:600}
.org{color:var(--blue);font-weight:600;font-size:.92rem}
.timeline p:last-child{color:var(--muted);font-size:.93rem;margin-top:4px}

blockquote{max-width:760px;margin:46px auto 0;padding:30px;background:#fff;border-left:4px solid var(--blue);border-radius:0 14px 14px 0;font-size:1.1rem;box-shadow:0 8px 24px rgba(0,0,0,.05)}
blockquote cite{display:block;margin-top:12px;color:var(--muted);font-size:.9rem;font-style:normal}

/* about */
.split{display:grid;grid-template-columns:1.3fr 1fr;gap:50px;align-items:center}
.split p{color:var(--muted);margin-bottom:14px}
.split h3{margin:24px 0 8px;font-size:1.15rem}
.plain{list-style:none;padding:0;color:var(--muted)}
.plain li::before{content:"✓";color:var(--blue);font-weight:700;margin-right:10px}
.stats{list-style:none;padding:0;display:grid;gap:14px}
.stats li{background:#fff;border:1px solid var(--blue-line);border-radius:14px;padding:18px 24px;color:var(--muted)}
.stats strong{display:block;font:700 2.2rem Kanit;color:var(--blue)}

/* cta band */
.cta{background:linear-gradient(120deg,var(--blue),var(--blue-dark));color:#fff;text-align:center}
.cta p{max-width:620px;margin:0 auto 28px;opacity:.92}
.cta .btn{background:#fff;color:var(--blue-dark);border-color:#fff}

/* footer */
footer{background:var(--dark);color:#cfcfcf;padding:60px 0 30px;font-size:.92rem}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px;padding-bottom:36px;border-bottom:1px solid #333}
footer h4{font:600 1rem Kanit;color:#fff;margin-bottom:12px}
footer a{display:block;margin-bottom:6px}
footer a:hover{color:#8db3ff}
footer .copy{padding-top:24px;text-align:center;color:#8a8a8a}

@media(max-width:820px){
  .nav nav a:not(.btn){display:none}
  .hero{padding-top:60px}
  .hero .wrap,.split,footer .cols{grid-template-columns:1fr}
  .portrait{margin:0 auto;max-height:340px}
  .actions{padding-bottom:40px}
  section{padding:60px 0}
  .timeline li{grid-template-columns:1fr;gap:2px}
}

/* multi-page additions */
.page-hero{background:linear-gradient(120deg,#fefefe 35%,#dbe8ff 100%);padding:70px 0 60px}
.page-hero .actions{padding-bottom:0}
.page-hero h1{font-size:clamp(2rem,4.5vw,3rem);max-width:820px}
.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:14px}
.crumbs a{color:var(--blue)}
.narrow{max-width:820px}
.narrow p{color:var(--muted);margin-bottom:16px}
.card.left{text-align:left}
.card.left .ico{margin:0 0 14px}
a.card{display:block;color:inherit}
.more{display:inline-block;margin-top:12px;color:var(--blue);font-weight:600;font-size:.9rem}
.steps{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;counter-reset:s}
.steps li{background:#fff;border:1px solid var(--blue-line);border-radius:14px;padding:24px}
.steps h3{font-size:1.1rem;margin:10px 0 6px}
.steps p{color:var(--muted);font-size:.92rem}
.num{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--blue);color:#fff;font:600 1rem Kanit}
.callout{background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:18px;padding:32px}
.callout h3{font-size:1.3rem;margin-bottom:10px}
.callout p{color:var(--ink);margin-bottom:20px}
details{background:#fff;border:1px solid var(--blue-line);border-radius:12px;padding:16px 20px;margin-bottom:12px}
summary{cursor:pointer;font:600 1.05rem Kanit;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::after{content:"+";color:var(--blue);font-size:1.4rem;line-height:1}
details[open] summary::after{content:"\2212"}
details p{margin:12px 0 0;color:var(--muted)}
.stats a{color:var(--blue)}
.cta .btn:hover{background:#eef3ff}

/* mobile navigation: keep links visible on small screens */
@media(max-width:820px){
  .nav .wrap{flex-wrap:wrap;gap:6px 12px;padding:10px 0}
  .nav nav{width:100%;overflow-x:auto;gap:22px;padding:6px 0;white-space:nowrap;scrollbar-width:none}
  .nav nav::-webkit-scrollbar{display:none}
  .nav nav a:not(.btn){display:inline-block}
  .nav nav .btn{display:none}
}

/* video testimonials */
.videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:26px;max-width:960px;margin:0 auto}
.videos figure{margin:0}
.video{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#111;box-shadow:0 14px 34px rgba(37,99,235,.18);border:1px solid var(--blue-line)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.videos figcaption{text-align:center;margin-top:10px;font-weight:600;color:var(--muted);font-size:.92rem}

/* accent: separate nav from banner */
.nav{border-top:4px solid var(--blue);border-bottom:1px solid var(--blue-line);box-shadow:0 4px 18px rgba(37,99,235,.10)}
.page-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#0b1f55 0%,#1740b8 55%,#2563eb 100%);color:#fff;padding:80px 0 70px}
.page-hero::before{content:"";position:absolute;width:420px;height:420px;border-radius:50%;right:-90px;top:-170px;background:radial-gradient(circle,rgba(255,255,255,.22),rgba(255,255,255,0) 70%)}
.page-hero::after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;left:-110px;bottom:-190px;border:46px solid rgba(255,255,255,.07)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{color:#fff}
.page-hero .lead{color:rgba(255,255,255,.88)}
.page-hero .crumbs,.page-hero .crumbs a{color:rgba(255,255,255,.75)}
.page-hero .crumbs a:hover{color:#fff}
.page-hero .btn{background:#fff;color:var(--blue-dark);border-color:#fff}
.page-hero .btn:hover{background:#eef3ff}
.page-hero .btn-soft{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
.page-hero .btn-soft:hover{background:rgba(255,255,255,.14)}
.hero{border-top:0}

/* blog */
.chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:34px}
.chips a{padding:8px 18px;border-radius:99px;border:1px solid var(--blue-line);background:#fff;font-size:.88rem;font-weight:500;transition:.2s}
.chips a:hover{border-color:var(--blue);color:var(--blue)}
.chips a.on{background:var(--blue);border-color:var(--blue);color:#fff}
.post-card{padding:0;overflow:hidden;text-align:left;display:flex;flex-direction:column}
.post-card img{width:100%;height:auto;aspect-ratio:1200/630;object-fit:cover;display:block}
.pc-body{padding:20px 22px 24px}
.post-card h3{font-size:1.15rem;margin:10px 0 8px}
.post-card p{font-size:.92rem}
.pc-meta{display:block;margin-top:12px;font-size:.8rem;color:var(--muted)}
.tag{display:inline-block;background:var(--blue-soft);color:var(--blue-dark);font:600 .72rem Poppins;letter-spacing:.06em;text-transform:uppercase;padding:4px 12px;border-radius:99px}
.tag.light{background:rgba(255,255,255,.16);color:#fff;margin-bottom:14px}
.post-head h1{font-size:clamp(1.9rem,4vw,2.7rem);max-width:820px}
.post-meta{color:rgba(255,255,255,.85);font-size:.92rem;margin-top:14px}
.post{padding:50px 0 30px}
.post .narrow{max-width:800px}
.post-hero{margin:0 0 34px}
.post-hero img{width:100%;height:auto;border-radius:16px;box-shadow:0 14px 34px rgba(37,99,235,.18);display:block}
.post h2{font-size:1.6rem;margin:2.2rem 0 .8rem}
.post h3{font-size:1.15rem;margin:1.5rem 0 .5rem}
.post p{color:#3d4450;margin-bottom:1.1rem;font-size:1.02rem;line-height:1.8}
.post ul{margin:0 0 1.3rem 1.2rem;color:#3d4450;line-height:1.8}
.post li{margin-bottom:.4rem}
.post a{color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px}
.post .btn{color:#fff;text-decoration:none}
.key-takeaways{background:var(--blue-soft);border:1px solid var(--blue-line);border-left:5px solid var(--blue);border-radius:14px;padding:22px 26px;margin:1.6rem 0}
.key-takeaways h3{margin:0 0 10px;font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em;color:var(--blue-dark)}
.key-takeaways ul{margin:0 0 0 1.1rem}
.things-to-know{background:#f5f8ff;border:1px solid var(--blue-line);border-radius:14px;padding:20px 26px;margin:1rem 0 1.6rem}
.things-to-know ul{margin:0 0 0 1.1rem}
.faq-section{background:var(--alt);border:1px solid #ececec;border-radius:14px;padding:6px 26px 18px;margin:2rem 0}
.table-wrap{overflow-x:auto;margin:1.2rem 0 1.6rem;border:1px solid var(--blue-line);border-radius:12px}
.post table{width:100%;border-collapse:collapse;font-size:.92rem;min-width:520px}
.post th{background:var(--blue-soft);color:var(--blue-dark);text-align:left;padding:12px 14px;font-weight:600}
.post td{padding:11px 14px;border-top:1px solid #e8eefc;color:#3d4450;vertical-align:top}
.fig{margin:1.8rem 0;background:#fff;border:1px solid var(--blue-line);border-radius:14px;padding:14px 10px 8px}
.fig svg{width:100%;height:auto;display:block}
.fig figcaption{text-align:center;font-size:.82rem;color:var(--muted);padding:4px 0 6px}
.author-bio{display:flex;gap:18px;align-items:center;background:#fff;border:1px solid var(--blue-line);border-radius:16px;padding:22px;margin:2.4rem 0 1.4rem;box-shadow:0 8px 24px rgba(37,99,235,.08)}
.author-avatar{width:72px;height:72px;min-width:72px;border-radius:50%;object-fit:cover;object-position:50% 8%;border:3px solid var(--blue-soft)}
.author-name{font:600 1.1rem Kanit;margin:0!important}
.author-title{color:var(--blue-dark)!important;font-size:.85rem!important;margin:0 0 .4rem!important}
.author-desc{font-size:.9rem!important;margin:0!important;line-height:1.6!important}
.post .callout{margin:1.4rem 0 0}
@media(max-width:600px){.author-bio{flex-direction:column;text-align:center}}

/* work page case studies */
.case{display:grid;grid-template-columns:1.05fr 1fr;gap:34px;align-items:center;background:#fff;border:1px solid var(--blue-line);border-radius:20px;padding:26px;box-shadow:0 14px 34px rgba(37,99,235,.10)}
.case-img img{width:100%;height:auto;border-radius:14px;display:block;border:1px solid var(--blue-line)}
.case-body h2{margin:12px 0 10px;font-size:1.7rem}
.case-body p{color:var(--muted)}
.ba{display:grid;gap:12px;margin:18px 0 22px}
.ba div{background:var(--blue-soft);border-radius:12px;padding:12px 16px}
.ba h4{margin:0 0 2px;font:600 .8rem Poppins;letter-spacing:.06em;text-transform:uppercase;color:var(--blue-dark)}
.ba p{margin:0;color:var(--ink);font-size:.95rem}
.metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px;margin-top:22px}
.metrics div{background:#fff;border:1px solid var(--blue-line);border-radius:14px;padding:18px;text-align:center}
.metrics strong{display:block;font:700 1.7rem Kanit;color:var(--blue)}
.metrics span{font-size:.82rem;color:var(--muted)}
.note{font-size:.82rem;color:var(--muted);text-align:center;margin-top:14px}
.ph{aspect-ratio:1200/630;display:grid;place-items:center;background:linear-gradient(135deg,#1740b8,#2563eb);color:#fff;font:700 2rem Kanit;letter-spacing:.08em}
.post-card .more{margin-top:14px}
@media(max-width:820px){.case{grid-template-columns:1fr;padding:18px}}
