@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/fonts/anuphan-thai-wght-v1.woff2)format("woff2-variations");unicode-range:U+2D7,U+303,U+331,U+E01-E5B,U+200C-200D,U+25CC}@font-face{font-family:Anuphan Variable;font-style:normal;font-display:swap;font-weight:100 700;src:url(/assets/fonts/anuphan-latin-wght-v1.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@layer reset{*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body,h1,h2,h3,p,ul,ol,figure{margin:0}ul,ol{padding:0;list-style:none}img,picture,svg{max-width:100%;display:block}button,a{font:inherit}button{border:0}a{color:inherit;text-decoration:none}}@layer tokens{:root{--paper:#fdfdf9;--paper-warm:#f8f8f2;--surface:#fff;--ink:#0c0e12;--ink-soft:#181c23;--muted:#63666c;--line:#e2e4e5;--line-dark:#c9ccce;--lime:#c8df19;--lime-bright:#d6ec22;--lime-graphic:#abc400;--lime-deep:#5f6b00;--danger:#e43e35;--shadow-soft:0 24px 70px #0e111417;--shadow-lift:0 18px 42px #0e11141f;--shell:min(1420px, calc(100vw - 64px));--reading:64ch;--header-height:80px;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--ease-out:cubic-bezier(.2, .75, .2, 1);--ease-spring:cubic-bezier(.2, 1.1, .3, 1)}}@layer base{body{min-width:320px;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-family:Anuphan Variable,Anuphan,Noto Sans Thai,Tahoma,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.6;overflow-x:clip}::selection{color:var(--ink);background:var(--lime)}:focus-visible{outline:3px solid var(--lime-deep);outline-offset:4px}[id]{scroll-margin-top:calc(var(--header-height) + 24px)}[hidden]{display:none!important}.skip-link{z-index:200;color:var(--surface);background:var(--ink);border-radius:var(--radius-sm);padding:12px 18px;transition:translate .18s;position:fixed;inset:12px auto auto 12px;translate:0 -180%}.skip-link:focus{translate:0}}@layer layout{body[data-locale=th] .site-navigation a{letter-spacing:-.012em;font-weight:660}body[data-locale=en] .site-navigation a{letter-spacing:-.004em;font-size:clamp(1.08rem,.25vw + .86rem,1.2rem)}.language-switcher{box-shadow:none;background:0 0;border:0;flex:none;align-items:center;gap:3px;padding:0;display:flex}.language-link{min-block-size:44px;min-inline-size:44px;box-shadow:none;outline-offset:2px;background:0 0;border:0;flex:none;place-items:center;transition:opacity .16s,transform .16s;display:grid;position:relative;overflow:hidden}.language-link:after{content:none;display:none}.language-link:hover,.language-link:focus-visible{opacity:.86}.language-link:focus-visible{outline:2px solid #74797d}.language-link img{aspect-ratio:1.425;object-fit:cover;opacity:.28;filter:grayscale()brightness(1.75)contrast(.42);width:clamp(54px,3.55vw,72px);height:auto;transition:opacity .18s,filter .18s}.language-link[aria-current=page]{transform:translateY(-1px)}.language-link[aria-current=page] img{opacity:1;filter:none}.button{cursor:pointer;border-radius:var(--radius-sm);min-height:52px;transition:transform .2s var(--ease-out), box-shadow .2s var(--ease-out), color .2s ease, background-color .2s ease, border-color .2s ease;border:1px solid #0000;justify-content:center;align-items:center;gap:14px;padding:13px 22px;font-weight:750;line-height:1.2;display:inline-flex;position:relative;overflow:hidden}.button:before{content:"";pointer-events:none;transition:transform .5s var(--ease-out);background:linear-gradient(110deg,#0000 20%,#fff6 50%,#0000 80%);position:absolute;inset:0;transform:translate(-130%)}.button:hover:before{transform:translate(130%)}.button:hover,.button:focus-visible{transform:translateY(-3px)}.button:active{transform:translateY(0)scale(.985)}.button:disabled{cursor:wait;opacity:.62;transform:none}.button--compact{min-height:44px;padding:10px 15px;font-size:.82rem}.button--dark{color:var(--surface);background:var(--ink);box-shadow:0 10px 24px #0c0e1226}.button--dark:hover{background:#262b31}.button--lime{color:var(--ink);background:var(--lime);box-shadow:0 14px 28px #abc40038}.button--lime:hover{background:var(--lime-bright);box-shadow:0 18px 34px #abc40052}.button--outline{color:var(--ink);border-color:var(--line-dark);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffb8}.button--outline:hover{border-color:var(--ink)}.cookie-consent-actions .button{min-height:44px;padding-block:10px;font-size:.86rem}}@layer components{body[data-locale=en] .en-word-space{display:inline}body[data-locale=en] .hero h1{font-size:clamp(3rem,3.65vw,4.6rem);line-height:1.24}body[data-locale=en] .hero h1>span{white-space:normal;display:inline}body[data-locale=en] .hero-highlight{white-space:normal;padding:.01em .12em .04em;line-height:1.24;display:inline}body[data-locale=en] .hero-highlight-tail{white-space:nowrap;line-height:1.24;display:inline-block}.terminal-cycle.is-animating [data-terminal-line]{opacity:0;transition:opacity .22s ease-out,transform .22s ease-out;transform:translateY(5px)}.terminal-cycle.is-animating [data-terminal-line].is-visible{opacity:1;transform:translateY(0)}.terminal-cycle.is-animating .terminal-agent .terminal-progress i{transition:transform .42s ease-out .1s;transform:scaleX(.04)}.terminal-cycle.is-animating .terminal-agent.is-visible .terminal-progress i{transform:scaleX(1)}.about-carousel{aspect-ratio:3/2;border-block:1px solid var(--line-dark);background:#11140f;position:relative;overflow:clip}.about-carousel-track{scroll-snap-type:inline mandatory;scrollbar-width:thin;height:100%;display:flex;overflow-x:auto}.about-carousel-slide{scroll-snap-align:start;flex:0 0 100%;min-width:0;position:relative;overflow:clip}.about-carousel-slide:after{content:"";pointer-events:none;background:linear-gradient(#0000 34%,#070907c7 100%);position:absolute;inset:0}.about-carousel-slide picture,.about-carousel-slide img{width:100%;height:100%}.about-carousel-slide img{object-fit:cover}.about-carousel[data-enhanced=true] .about-carousel-track{transition:transform .52s var(--ease-out);overflow:visible}.about-carousel[data-active-slide="1"] .about-carousel-track{transform:translate(-100%)}.about-carousel[data-active-slide="2"] .about-carousel-track{transform:translate(-200%)}.about-carousel[data-active-slide="3"] .about-carousel-track{transform:translate(-300%)}.about-carousel[data-active-slide="4"] .about-carousel-track{transform:translate(-400%)}.about-carousel[data-active-slide="5"] .about-carousel-track{transform:translate(-500%)}.about-carousel[data-active-slide="6"] .about-carousel-track{transform:translate(-600%)}.about-carousel[data-active-slide="7"] .about-carousel-track{transform:translate(-700%)}.about-carousel[data-active-slide="8"] .about-carousel-track{transform:translate(-800%)}.about-carousel[data-active-slide="9"] .about-carousel-track{transform:translate(-900%)}.about-carousel-controls{z-index:4;pointer-events:none;display:none;position:absolute;inset:0}.about-carousel[data-enhanced=true] .about-carousel-controls{display:block}.about-carousel-controls button{cursor:pointer;color:#fff;background:#0a0c0abd;border:1px solid #ffffff94;border-radius:999px;place-items:center;min-width:44px;min-height:44px;display:grid}.about-carousel-controls button:focus-visible{outline:3px solid var(--lime);outline-offset:3px}.about-carousel-arrow{opacity:0;pointer-events:none;transition:opacity .18s,background-color .18s;position:absolute;top:50%;transform:translateY(-50%)}.about-carousel-arrow--prev{inset-inline-start:clamp(12px,2vw,28px)}.about-carousel-arrow--next{inset-inline-end:clamp(12px,2vw,28px)}.about-carousel:hover .about-carousel-arrow,.about-carousel-arrow:focus-visible,.about-carousel:hover .about-carousel-dots{opacity:1;pointer-events:auto}.about-carousel-dots:has(button:focus-visible){opacity:1;pointer-events:auto}.about-carousel[data-reduced-motion=true] .about-carousel-track{transition:none}.certification-dialog-monogram{color:var(--ink);background:radial-gradient(circle at 50% 42%, #fffffff5, #f2f4e7d1 64%, transparent 65%), conic-gradient(from 35deg, var(--lime), #eff3c9, var(--lime));border:1px solid var(--line-dark);letter-spacing:-.08em;border-radius:50%;place-items:center;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:clamp(1.55rem,2.4vw,2.25rem);font-weight:900;display:grid;box-shadow:inset 0 0 0 7px #ffffffc7,0 8px 18px #0c0e121a}html:not(.js) .method-tabs{display:none}html:not(.js) .method-panels{gap:18px;display:grid}html:not(.js) .service-panel+.service-panel{margin-top:22px}html:not(.js) .process-detail+.process-detail{margin-top:20px}.process-governance-symbol{width:52px;height:52px;color:var(--ink);font-family:var(--font-mono);letter-spacing:-.02em;background:#c8df192e;border:1px solid #abc4008c;border-radius:50%;place-items:center;font-size:.62rem;font-weight:900;display:grid}html:not(.js) .process-progress,html:not(.js) .process-tabs{display:none}.contact-quote-cta{margin-top:24px}body.modal-open{overflow:hidden}.certification-dialog-badge img,.certification-dialog-monogram{aspect-ratio:1;width:min(100%,220px)}.certification-dialog-monogram{font-size:clamp(2.8rem,7vw,4.6rem)}.locale-content--en,body[data-locale=en] .locale-content--th{display:none}body[data-locale=en] .locale-content--en{display:block}.governance-dialog-body{grid-template-columns:minmax(0,1fr) minmax(250px,.34fr);gap:clamp(20px,2.8vw,36px);margin-top:clamp(24px,2.6vw,32px);display:grid}.governance-dialog-body h3{font-size:clamp(1.2rem,2vw,1.6rem);line-height:1.25}.governance-dialog-sections{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:clamp(18px,2vw,26px);display:grid}.governance-dialog-body ul{gap:10px;margin-top:14px;display:grid}.governance-dialog-body li{color:var(--muted);padding-left:24px;font-size:clamp(.82rem,.95vw,.92rem);line-height:1.5;position:relative}.governance-dialog-body li:before{content:"";background:var(--lime-graphic);border-radius:50%;width:8px;height:8px;position:absolute;top:.72em;left:0;box-shadow:0 0 0 4px #abc40021}.governance-accuracy-note{border-radius:var(--radius-md);background:#c8df1924;border:1px solid #abc4006b;align-self:start;padding:18px}.governance-accuracy-note strong{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}.governance-accuracy-note p{color:#4d540f;margin-top:8px;font-size:.78rem;line-height:1.5}.crest-status-note{border-left:3px solid var(--lime);background:#cbe6001a;padding:12px 14px;font-size:.86rem;color:var(--ink)!important}.brand-asset-meta .button{justify-content:space-between;width:100%}.document-dialog-actions .button{min-width:190px}.footer-shell nav :is(a,button){color:#d4d7d8;min-height:0;text-align:inherit;cursor:pointer;background:0 0;border:0;align-items:center;padding:0;font-size:.78rem;line-height:1.2;display:inline-flex}.footer-shell nav :is(a,button):hover,.footer-shell nav :is(a,button):focus-visible{color:var(--lime)}.topic-language-switcher .language-link{min-block-size:44px;min-inline-size:44px}.topic-language-switcher .language-link img{width:42px}.compliance-visual-frame{isolation:isolate;min-width:0;display:block;position:relative;overflow:hidden}.topic-cta .button{margin-top:8px}.topic-doc-actions .button{padding:9px 16px;font-size:14px}.owasp-flow{letter-spacing:.06em;color:var(--lime-deep);text-transform:uppercase;flex-wrap:wrap;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:750;display:flex}.syntax-number{color:#ffae80}.owasp-legacy-gallery .about-carousel-track{height:auto;padding:0}.owasp-legacy-gallery .about-carousel-slide{height:auto;color:var(--ink);background:var(--paper-warm);grid-template-rows:auto auto;margin:0;display:grid}.owasp-legacy-gallery .about-carousel-slide:after{display:none}.owasp-legacy-gallery .about-carousel-slide .compliance-visual-source{object-fit:contain;height:min(78vh,880px)}.owasp-legacy-gallery[data-enhanced=true] .about-carousel-controls{background:var(--paper-warm);justify-content:center;align-items:center;gap:24px;padding:16px;display:flex;position:static;inset:auto}.owasp-legacy-gallery .about-carousel-arrow{opacity:1;pointer-events:auto;color:var(--ink);background:var(--lime);position:static;transform:none}@media (max-width:720px){.owasp-legacy-gallery .about-carousel-slide .compliance-visual-source{height:auto}}}@layer motion{.hero-terminal.is-running .cursor{animation:.8s step-end infinite terminal-cursor-blink}.motion-fallback [data-reveal].is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}}@layer responsive{@media (min-width:761px) and (max-height:960px){body[data-locale=en] .hero h1{font-size:clamp(2.55rem,min(3.1vw,5.8dvh),3.65rem);line-height:1.24}.hero-actions .button{min-height:48px;padding:12px 18px}}@media (max-width:1360px){:root{--shell:min(1180px, calc(100vw - 48px));--header-height:80px}.language-switcher{border-width:0}.language-link img{width:46px}}@media (min-width:981px) and (max-width:1140px){body[data-locale=en] .site-navigation a{font-size:.79rem}}@media (max-width:980px){:root{--header-height:82px}.language-link img{width:38px}html:not(.js) .site-header{height:auto;position:relative}html:not(.js) .header-shell{grid-template-columns:108px 1fr auto;height:auto;padding-block:8px 12px}html:not(.js) .site-navigation{border-top:1px solid var(--line);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;width:100%;display:grid}html:not(.js) .site-navigation a{border-bottom:1px solid var(--line);white-space:normal;gap:.55rem;min-block-size:48px;padding:12px 8px}html:not(.js) .header-actions{display:flex}html:not(.js) .nav-toggle{display:none}.js .site-navigation{z-index:10;max-height:calc(100dvh - var(--header-height));-webkit-overflow-scrolling:touch;padding:18px max(24px, calc(16px + env(safe-area-inset-right,0px))) calc(28px + env(safe-area-inset-bottom,0px)) max(24px, calc(16px + env(safe-area-inset-left,0px)));background:var(--paper);border-bottom:1px solid var(--line);opacity:0;pointer-events:none;visibility:hidden;transition:opacity .22s ease, transform .22s var(--ease-out), visibility 0s linear .22s;justify-content:stretch;gap:0;display:grid;position:absolute;top:100%;left:0;right:0;overflow:auto;transform:translateY(-14px);box-shadow:0 24px 40px #0c0e121f}.js .site-navigation a{border-bottom:1px solid var(--line);border-radius:0;gap:.75rem;min-block-size:56px;padding:14px 12px;font-size:1rem}.js .site-navigation .nav-icon{width:1.25rem;height:1.25rem;display:block}.nav-open .site-navigation{opacity:1;pointer-events:auto;visibility:visible;transition-delay:0s;transform:translateY(0)}.nav-open{overflow:hidden}.nav-open .nav-toggle span:first-child{translate:0 7px;rotate:45deg}.nav-open .nav-toggle span:nth-child(2){opacity:0}.nav-open .nav-toggle span:last-child{translate:0 -7px;rotate:-45deg}}@media (max-width:760px){:root{--shell:calc(100vw - 32px);--header-height:74px}.cookie-consent-actions .button{min-height:44px;padding:6px;font-size:.7rem}.cookie-consent-preference-panel .button{width:100%}.language-switcher{gap:2px;padding:0}.language-link img{width:32px}body[data-locale=en] .hero h1{font-size:clamp(2.05rem,7.25vw,3.65rem);line-height:1.24}.governance-dialog-body{grid-template-columns:1fr}.about-carousel{aspect-ratio:auto;height:clamp(360px,105vw,460px)}.about-carousel[data-enhanced=true] .about-carousel-controls{display:block;inset:0}.about-carousel-arrow--prev{inset-inline-start:8px}.about-carousel-arrow{top:32%}.about-carousel-arrow--next{inset-inline-end:8px}.certification-dialog-badge img,.certification-dialog-monogram{width:min(54vw,190px)}.decision-source-actions .button{width:100%}.footer-shell nav :is(a,button){min-height:44px;padding-block:8px}}@media (hover:none),(pointer:coarse){.about-carousel-arrow,.about-carousel-dots{opacity:1;pointer-events:auto}.footer-shell nav :is(a,button){min-height:44px;padding-block:8px}}@media (max-width:480px){.language-link img{width:28px}html:not(.js) .site-navigation{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-locale=en] .hero h1{font-size:clamp(2rem,10vw,2.8rem);line-height:1.24}}.owasp-legacy-gallery[data-enhanced=true] .about-carousel-controls{justify-content:center;align-items:center;gap:24px;display:flex;position:static;inset:auto}.owasp-legacy-gallery .about-carousel-arrow{position:static;transform:none}}html:not(.js) .service-grid,html:not(.js) [data-dialog-open],.js .dialog-fallback{display:none}html:not(.js) .about-sth-certification[data-dialog-open]{display:grid}html:not(.js) .process-decision a[data-dialog-open]{display:inline-flex}html:not(.js) [data-hero-video-toggle]{display:none}html:not(.js) .brand-full[data-dialog-open]{display:grid}html:not(.js) .header-quote[data-dialog-open],html:not(.js) .footer-policy-link[data-dialog-open]{display:inline-flex}@keyframes terminal-cursor-blink{0%,48%{opacity:1}49%,to{opacity:0}}@keyframes scroll-cue-wiggle{0%,to{translate:0 -2px}50%{translate:0 2px}}@keyframes scroll-cue-wheel{0%,to{opacity:.45;transform:translateY(0)}50%{opacity:1;transform:translateY(5px)}}@keyframes dialog-in{0%{opacity:0;transform:translateY(24px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hero-video-in{0%{opacity:0;transform:translateY(18px)scale(.975)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dialog-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes service-panel-in{0%{opacity:0;clip-path:inset(0 0 12% 0 round var(--radius-lg));transform:translateY(24px)}to{opacity:1;clip-path:inset(0 round var(--radius-lg));transform:translateY(0)}}@keyframes process-detail-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes copy-in{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(32px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes art-in{0%{opacity:0;filter:saturate(.3);transform:translate(40px)scale(1.08)}to{opacity:1;filter:saturate();transform:translate(0,0)scale(1.025)}}@keyframes terminal-in{0%{opacity:0;transform:translateY(24px)rotate(2deg)}}@keyframes cursor-blink{50%{opacity:0}}@keyframes packet-left{0%,15%{opacity:0;transform:translate(-38px)rotate(45deg)}35%,75%{opacity:1}to{opacity:0;transform:translate(340px)rotate(225deg)}}@keyframes packet-right{0%,15%{opacity:0;transform:translate(38px)rotate(45deg)}35%,75%{opacity:1}to{opacity:0;transform:translate(-340px)rotate(-135deg)}}@keyframes reveal-in{0%{opacity:0;clip-path:inset(0 0 16%);transform:translateY(36px)}to{opacity:1;clip-path:inset(0);transform:translateY(0)}}@keyframes native-parallax{0%{translate:0 -18px}to{translate:0 18px}}@keyframes scroll-progress{to{transform:scaleX(1)}}@keyframes reading-progress-grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.blog-filter-chip.is-active{background:var(--ink);color:#fff;border-color:var(--ink)}.blog-post-header{margin-bottom:clamp(32px,5vw,56px)}.blog-post-meta{color:var(--ink-soft);flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0 0;font-size:13px;display:flex}.blog-post-cover{aspect-ratio:1672/941;border-radius:12px;margin:24px 0 0;box-shadow:0 16px 36px -12px #00000040}.careers-hero-visual>img,.blog-hero-visual>img,.blog-post-cover>img{object-fit:cover;width:100%;height:100%}.blog-post-body{color:var(--ink);font-size:16px;line-height:1.75}.blog-post-body h2,.blog-post-body h3{color:var(--ink);line-height:1.35}.blog-post-body h2{margin:40px 0 14px;font-size:clamp(24px,3vw,32px)}.blog-post-body h3{margin:28px 0 10px;font-size:clamp(19px,2.3vw,23px)}.blog-post-body p,.blog-post-body ul,.blog-post-body ol{margin:0 0 18px}.blog-post-body a{color:var(--ink);-webkit-text-decoration-color:var(--lime-deep);text-decoration-color:var(--lime-deep);text-underline-offset:3px;font-weight:700;text-decoration-thickness:2px}
