@font-face{font-family:Prompt;font-weight:500;font-display:swap;src:url(/fonts/prompt-500-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-weight:500;font-display:swap;src:url(/fonts/prompt-500-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Prompt;font-weight:600;font-display:swap;src:url(/fonts/prompt-600-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Prompt;font-weight:600;font-display:swap;src:url(/fonts/prompt-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Plex Thai;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-400-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Plex Thai;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-400-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Plex Thai;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-600-thai.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Plex Thai;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-600-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+2122}@font-face{font-family:Plex Mono;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-400.woff2) format("woff2")}@font-face{font-family:Plex Mono;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-600.woff2) format("woff2")}:root{--blue: #1f4e9c;--blue-deep: #163b78;--blue-soft: #e8eef8;--ink: #1b1f24;--ink-2: #5b6470;--g100: #f1f3f6;--g200: #e9ecf1;--g300: #dde1e7;--ink-soft: #2a3038;--white: #ffffff;--font-head: "Prompt", "Plex Thai", "Segoe UI", sans-serif;--font-body: "Plex Thai", "Noto Sans Thai", "Segoe UI", sans-serif;--font-mono: "Plex Mono", ui-monospace, Consolas, monospace;--fs-h1: 32px;--fs-h2: 26px;--fs-h3: 18px;--fs-body: 16px;--fs-small: 14px;--lh-head: 1.2;--lh-body: 1.7;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 24px;--s-6: 32px;--s-7: 48px;--s-8: 64px;--s-9: 96px;--container: 1200px;--measure: 720px;--gutter: 16px;--r: 22px;--r2: 16px;--r-pill: 999px;--line: 1px solid var(--g300);--shadow: 0 1px 2px rgb(20 30 50 / 6%), 0 4px 16px rgb(20 30 50 / 6%);--shadow-hover: 0 12px 32px rgb(20 30 50 / 14%)}@media(min-width:768px){:root{--fs-h1: 44px;--fs-h2: 30px;--fs-h3: 20px;--gutter: 32px}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font:400 var(--fs-body) / var(--lh-body) var(--font-body);color:var(--ink);background:var(--g100);overflow-wrap:anywhere}img,svg,iframe{display:block;max-width:100%}img{height:auto}a{color:var(--blue);text-decoration:none}a:hover{color:var(--blue-deep);text-decoration:underline}ul,ol{padding-left:1.25em}h1,h2,h3,h4,h5,h6{font-family:var(--font-head);font-weight:600;line-height:var(--lh-head);text-wrap:balance}h1{font-size:var(--fs-h1)}h2{font-size:var(--fs-h2)}h3{font-size:var(--fs-h3)}h4,h5,h6{font-size:var(--fs-body)}code,.mono{font-family:var(--font-mono);font-size:var(--fs-small)}table{border-collapse:collapse;width:100%;font-size:var(--fs-small)}th,td{text-align:left;vertical-align:top;padding:var(--s-2) var(--s-3);border-bottom:var(--line)}th{font-weight:600;background:var(--g100)}hr{border:0;border-top:var(--line)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.measure{max-width:var(--measure)}.section{padding-block:var(--s-7)}.section.alt{background:var(--white)}.section-head h2{position:relative;padding-left:var(--s-4)}.section-head h2:before{content:"";position:absolute;left:0;top:.15em;bottom:.15em;width:4px;border-radius:2px;background:var(--blue);pointer-events:none}@media(min-width:768px){.section{padding-block:var(--s-8)}}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--s-4);flex-wrap:wrap}.section-head .more a{font-family:var(--font-head);font-weight:500;white-space:nowrap}.section-head .more p{margin:0}.section-head .lead{flex-basis:100%;color:var(--ink-2);margin-top:var(--s-2)}.section-head .lead p{max-width:var(--measure)}.kicker{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-2)}.min0{min-width:0}.card{background:var(--white);border-radius:var(--r2);box-shadow:var(--shadow);transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.btn{display:inline-block;padding:var(--s-3) var(--s-5);border-radius:var(--r-pill);font-family:var(--font-head);font-weight:500;line-height:1.3;text-decoration:none;border:1px solid transparent;transition:background .15s,color .15s}.btn:hover{text-decoration:none}.btn-primary{background:var(--blue);color:var(--white)}.btn-primary:hover{background:var(--blue-deep);color:var(--white)}.btn-ghost{border-color:var(--ink);color:var(--ink)}.btn-ghost:hover{background:var(--ink);color:var(--white)}.btn-light{background:var(--white);color:var(--ink)}.btn-light:hover{background:var(--g100);color:var(--ink)}.btn-sm{padding:var(--s-2) var(--s-4);font-size:var(--fs-small)}.btn-outline-light{border-color:#ffffff73;color:var(--white)}.head-wrap{padding-block:var(--s-4);position:sticky;top:0;z-index:20}.pill{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);background:#ffffffeb;backdrop-filter:blur(14px);border:1px solid rgb(255 255 255 / 80%);border-radius:999px;box-shadow:var(--shadow);padding:var(--s-2) var(--s-2) var(--s-2) var(--s-4)}.pill[data-open],.pill:has(details[open]){border-radius:var(--r)}.brand{display:flex;align-items:center;gap:var(--s-4);text-decoration:none;color:var(--ink);font-family:var(--font-head);font-weight:600;font-size:18px;margin-right:auto}.brand span{text-transform:uppercase;letter-spacing:.04em}.brand:hover{text-decoration:none;color:var(--ink)}.brand img{width:40px}.nav-main{display:none;align-items:center;gap:var(--s-1)}.nav-main a,.nav-main summary{display:inline-block;padding:var(--s-2) var(--s-4);border-radius:999px;font-family:var(--font-head);font-weight:500;color:var(--ink);text-decoration:none;cursor:pointer}.nav-main a:hover,.nav-main summary:hover{background:var(--g100);text-decoration:none}.nav-main a[aria-current=page],.nav-main summary[aria-current=page]{background:var(--ink);color:var(--white)}.pill{position:relative;z-index:2}.dd{display:inline-block;position:relative}.dd>a:after{content:" ▾";font-size:11px;opacity:.6}.dd-panel{position:absolute;left:0;top:calc(100% + 8px);width:560px;max-width:calc(100vw - 2 * var(--gutter));z-index:5;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-1) var(--s-3);padding:var(--s-4);background:var(--white);border-radius:var(--r);box-shadow:var(--shadow-hover);opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .15s,transform .15s,visibility .15s;pointer-events:none}.dd:hover .dd-panel,.dd:focus-within .dd-panel{opacity:1;visibility:visible;transform:none;pointer-events:auto}.dd:after{content:"";position:absolute;left:0;right:0;height:14px;bottom:-14px}.dd-panel a{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);padding:var(--s-2) var(--s-3);white-space:nowrap;border-radius:10px;color:var(--ink);text-decoration:none;font-family:var(--font-body);font-weight:400}.dd-panel a:hover{background:var(--g100);color:var(--blue)}.dd-panel a.all{grid-column:1 / -1;border-top:var(--line);border-radius:0;margin-top:var(--s-2);padding-top:var(--s-3);font-family:var(--font-head);font-weight:500}.count{font-family:var(--font-mono);color:var(--ink-2);font-size:var(--fs-small)}.search-toggle{display:none}.search-toggle[open]{display:contents}.search-toggle>summary{list-style:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;cursor:pointer;color:var(--ink)}.search-toggle>summary::-webkit-details-marker{display:none}.search-toggle>summary:hover{background:var(--g100)}.search-toggle>summary svg{width:20px;height:20px}.search-panel{flex-basis:100%;order:11;padding:var(--s-3) var(--s-2) var(--s-2)}.search-panel .search{display:block}.search form{display:flex;align-items:center;gap:var(--s-2);background:var(--g100);border:var(--line);border-radius:999px;padding:0 var(--s-2) 0 var(--s-5);height:46px}.search form:focus-within{background:var(--white);border-color:var(--blue)}.search input{flex:1;min-width:0;border:0;background:transparent;font:inherit;height:100%;color:var(--ink)}.search input:focus{outline:0}.search button{border:0;background:var(--blue);color:var(--white);width:34px;height:34px;border-radius:50%;display:grid;place-items:center;cursor:pointer;flex:none}.search button svg{width:18px;height:18px}.search-results{border:var(--line);border-radius:14px;margin-top:var(--s-2);background:var(--white);max-height:320px;overflow-y:auto}.search-results:empty{display:none}.search-results a{display:block;padding:var(--s-2) var(--s-4);color:var(--ink);border-bottom:var(--line);text-decoration:none}.search-results a:hover{background:var(--g100)}.search-results a:last-child{border-bottom:0}.search-results .type{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);margin-left:var(--s-2)}.pill .cta{display:none}.menu{display:inline-block}.menu[open]{display:contents}.menu>summary{list-style:none;display:inline-flex;align-items:center;padding:var(--s-2) var(--s-4);border-radius:999px;background:var(--ink);color:var(--white);font-family:var(--font-head);font-weight:500;cursor:pointer}.menu>summary::-webkit-details-marker{display:none}.drawer{flex-basis:100%;order:12;border-top:var(--line);margin-top:var(--s-2);padding:var(--s-3) var(--s-2) var(--s-2)}.drawer .search{display:block;margin-bottom:var(--s-3)}.drawer ul{list-style:none;padding:0}.drawer a{display:flex;justify-content:space-between;padding:var(--s-3) var(--s-2);color:var(--ink);text-decoration:none;border-bottom:var(--line);font-family:var(--font-head);font-weight:500}.drawer li.grp,.dd-panel .grp{grid-column:1 / -1;margin:var(--s-3) 0 0;padding:var(--s-2) var(--s-3) var(--s-1);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;color:var(--ink-2);border-top:var(--line)}.drawer li.sub a{padding-left:var(--s-6);font-family:var(--font-body);font-weight:400;color:var(--ink-2)}@media(min-width:900px){.brand{margin-right:var(--s-5)}.nav-main{display:flex;margin-right:auto}.search-toggle,.pill .cta{display:inline-block}.menu{display:none}}.cat-bar{display:none;align-items:center;gap:var(--s-3);margin-top:var(--s-2);padding:var(--s-1) var(--s-2) var(--s-1) var(--s-1);background:#ffffffd9;backdrop-filter:blur(14px);border:1px solid rgb(255 255 255 / 80%);border-radius:999px;box-shadow:var(--shadow)}.cat-bar .seg{display:inline-flex;flex:none;padding:3px;background:var(--g100);border-radius:999px}.cat-bar .seg input{position:absolute;opacity:0;pointer-events:none}.cat-bar .seg label{padding:4px var(--s-3);border-radius:999px;font-family:var(--font-head);font-weight:500;font-size:var(--fs-small);color:var(--ink-2);cursor:pointer}.cat-bar .seg input:checked+label{background:var(--ink);color:var(--white)}.cat-bar .seg input:focus-visible+label{outline:2px solid var(--blue);outline-offset:2px}.cat-bar .cat-row{display:flex;flex-wrap:wrap;gap:var(--s-1) var(--s-1);min-width:0}.cat-bar:has(#seg-type:checked) .row-mat,.cat-bar:has(#seg-mat:checked) .row-type{display:none}.cat-bar a{padding:var(--s-1) var(--s-3);border-radius:999px;font-family:var(--font-head);font-weight:500;font-size:var(--fs-small);color:var(--ink);text-decoration:none;white-space:nowrap}.cat-bar a:hover{background:var(--g100);color:var(--blue)}.cat-bar a[aria-current=page]{background:var(--blue);color:var(--white)}@media(min-width:640px){.cat-bar{display:flex}}.bento-wrap{padding-top:var(--s-2)}.bento{display:grid;grid-template-columns:1fr;gap:var(--s-3)}.bento-nav{display:contents}.b{border-radius:var(--r);overflow:hidden;background:var(--white);box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s}a.b{text-decoration:none;color:var(--ink);display:block}a.b:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover);text-decoration:none}.b-hero{background:linear-gradient(140deg,#0f2b5c,var(--blue) 70%,#3b7be0);color:var(--white);display:grid;gap:var(--s-4);padding:var(--s-6) var(--s-5);position:relative;isolation:isolate}.b-hero:before{content:"";position:absolute;width:520px;height:520px;right:-180px;top:-220px;border-radius:50%;border:80px solid rgb(255 255 255 / 6%);pointer-events:none;z-index:-1}.b-hero .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;opacity:.85}.b-hero h1{color:var(--white);margin-top:var(--s-2)}.b-hero .intro p{margin-top:var(--s-3);color:#ffffffd9;max-width:44ch}.b-hero .intro p:last-child{display:inline-block;margin-top:var(--s-5);margin-right:var(--s-2)}.b-hero .btn-outline-light{border-color:#ffffff73;color:var(--white);margin-top:var(--s-5)}.b-hero .btn-outline-light:hover{background:#ffffff1f;color:var(--white)}.b-hero .art{display:grid;place-items:center;min-width:0}.b-hero .art img{width:min(100%,300px);aspect-ratio:1;object-fit:contain;background:var(--white);border-radius:var(--r);padding:var(--s-4);box-shadow:0 30px 40px #00000059;animation:float 7s ease-in-out infinite}@keyframes float{50%{transform:translateY(-10px) rotate(-2deg)}}@media(prefers-reduced-motion:reduce){.b-hero .art img{animation:none}}a.b-cat{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-5)}.b-cat img{width:88px;height:88px;object-fit:contain;mix-blend-mode:multiply;background:var(--g100);border-radius:16px;padding:var(--s-2);flex:none;transition:transform .3s}a.b:hover img{transform:scale(1.06)}.b .txt{min-width:0}.b .txt small{display:block;font-family:var(--font-mono);font-size:12px;color:var(--blue)}.b .txt b{display:block;font-family:var(--font-head);font-weight:600;font-size:18px;line-height:1.2}.b-cat .arrow{margin-left:auto;width:36px;height:36px;border-radius:50%;background:var(--g100);display:grid;place-items:center;flex:none}.b-stat{background:var(--ink);color:var(--white);padding:var(--s-4) var(--s-5);display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);align-items:center}.b-stat b{font-family:var(--font-head);font-size:30px;line-height:1;display:block}.b-stat span{font-size:12px;opacity:.65}a.b-mini{padding:var(--s-4) var(--s-5);display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:110px}.b-mini .txt b{font-size:16px}.b-mini img{width:64px;height:64px;object-fit:contain;mix-blend-mode:multiply;flex:none;transition:transform .3s}a.b-line{background:var(--blue-soft);padding:var(--s-4) var(--s-5);display:flex;flex-direction:column;justify-content:center;gap:var(--s-1);min-height:110px}.b-line b{font-family:var(--font-head);font-weight:600;font-size:16px;color:var(--blue)}.b-line span{font-size:var(--fs-small);color:var(--ink-2)}@media(min-width:640px){.bento{grid-template-columns:repeat(2,1fr)}.b-hero{grid-column:span 2;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;padding:var(--s-7) var(--s-6)}.b-stat{grid-column:span 2}}@media(min-width:1024px){.bento{grid-template-columns:repeat(12,1fr);grid-auto-rows:minmax(120px,auto);gap:var(--s-4)}.b-hero{grid-column:span 7;grid-row:span 3}.b-cat,.b-stat{grid-column:span 5}.b-mini{grid-column:span 3}a.b-line{grid-column:span 6}}.features{list-style:none;padding:0;display:grid;grid-template-columns:1fr;gap:var(--s-3);margin-top:var(--s-4)}.features li{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s-3);align-items:start;padding:var(--s-4) var(--s-5);border-radius:var(--r2)}.features .ico{width:44px;height:44px;border-radius:50%;background:var(--blue);color:var(--white);display:grid;place-items:center}.features .ico svg{width:22px;height:22px}.features h3{font-size:var(--fs-body)}.features p{font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--s-1)}.features li.brand-line{align-items:center}.features li.brand-line h3{font-family:var(--font-mono);color:var(--blue);letter-spacing:.04em}@media(min-width:640px){.features{grid-template-columns:1fr 1fr;gap:var(--s-4);margin-top:var(--s-4)}}@media(min-width:1024px){.features{grid-template-columns:repeat(4,1fr)}}.tabs{display:flex;gap:var(--s-2);flex-wrap:wrap;margin-top:var(--s-5);scroll-margin-top:96px}.tabs a{background:var(--white);border-radius:999px;padding:var(--s-2) var(--s-4);text-decoration:none;color:var(--ink);font-family:var(--font-head);font-weight:500;font-size:var(--fs-small);border:1px solid transparent;box-shadow:var(--shadow)}.tabs a:hover{border-color:var(--blue)}.tabs a[aria-current=true]{background:var(--blue);color:var(--white)}.group{margin-top:var(--s-5)}.group-head{display:grid;gap:var(--s-2);padding:var(--s-5);border-radius:var(--r);background:linear-gradient(120deg,var(--blue-deep),#2a3038);color:var(--white)}.group-head h3{color:var(--white);font-size:var(--fs-h2)}.group-head .desc p{color:#ffffffd1;max-width:80ch}.group-head .desc a{color:var(--white);text-decoration:underline}.band{background:linear-gradient(110deg,var(--blue) 0%,var(--blue-deep) 100%);color:var(--white);padding:var(--s-6) var(--s-5);display:grid;gap:var(--s-4)}.band h2{color:var(--white)}.band .prose p{color:#ffffffd9;max-width:70ch}.band .prose>*+*{margin-top:var(--s-4)}.band .prose a{color:var(--white);text-decoration:underline}.band .prose a.btn{color:var(--ink);text-decoration:none}@media(min-width:900px){.band{grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:var(--s-8);padding:var(--s-7) var(--s-7);align-items:start}}.cards{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3);margin-top:var(--s-5)}.pcard{display:flex;flex-direction:column;overflow:hidden}.pcard .thumb{position:relative;display:block;background:var(--g100);padding:var(--s-4);margin:var(--s-3);border-radius:14px;overflow:hidden}.pcard .thumb>a:not(.dl){display:block}.pcard .dl,.panel-card .dl{position:absolute;right:var(--s-3);bottom:var(--s-3);width:40px;height:40px;border-radius:50%;background:var(--blue);color:var(--white);display:grid;place-items:center;box-shadow:0 6px 16px #1f4e9c59;transition:background .15s,transform .15s}.pcard .dl:hover,.panel-card .dl:hover{background:var(--ink);color:var(--white);transform:translateY(-2px)}.pcard .dl svg,.panel-card .dl svg{width:20px;height:20px}.pcard .thumb img{width:100%;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply;transition:transform .4s}.pcard:hover .thumb img{transform:scale(1.08)}.pcard .body{padding:0 var(--s-4) var(--s-4);display:flex;flex-direction:column;gap:var(--s-2);flex:1;min-width:0}.pcard h2,.pcard h3{font-size:var(--fs-body);font-weight:500}.pcard h2 a,.pcard h3 a{color:var(--ink)}.pcard h2 a:hover,.pcard h3 a:hover{color:var(--blue);text-decoration:none}.pcard .code{font-family:var(--font-mono);font-weight:600;color:var(--blue)}.pcard .tags{font-size:var(--fs-small);color:var(--ink-2)}.pcard .btn{margin-top:auto;align-self:flex-start;border-color:var(--blue);color:var(--blue)}.pcard .btn:hover{background:var(--blue);color:var(--white)}@media(min-width:640px){.cards{grid-template-columns:repeat(3,1fr);gap:var(--s-4)}}@media(min-width:1024px){.cards{grid-template-columns:repeat(4,1fr)}}.acards{list-style:none;padding:0;display:grid;grid-template-columns:1fr;gap:var(--s-4);margin-top:var(--s-5)}.acard{overflow:hidden;display:flex;flex-direction:column}.acard img{width:100%;aspect-ratio:16 / 9;object-fit:cover}.acard .body{padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-2)}.acard h2,.acard h3{font-size:var(--fs-body);font-weight:500}.acard h2 a,.acard h3 a{color:var(--ink)}.acard h2 a:hover,.acard h3 a:hover{color:var(--blue);text-decoration:none}.acard p{font-size:var(--fs-small);color:var(--ink-2)}.acard time{font-family:var(--font-mono);font-size:12px;color:var(--blue)}@media(min-width:640px){.acards{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.acards{grid-template-columns:repeat(3,1fr)}}.site-foot{margin-top:var(--s-9);background:var(--ink);color:#ffffffbf}.site-foot h2{color:var(--white)}.foot-grid{display:grid;gap:var(--s-6);padding-block:var(--s-7)}.foot-grid h2{font-size:var(--fs-body);margin-bottom:var(--s-3)}.foot-grid ul{list-style:none;padding:0}.foot-grid li{padding-block:3px;font-size:var(--fs-small)}.foot-grid a{color:#ffffffbf}.foot-grid a:hover{color:var(--white)}.foot-contact address{font-style:normal;font-size:var(--fs-small);color:#ffffffbf}.foot-contact address strong{color:var(--white)}.foot-contact .tel a{font-family:var(--font-mono);color:var(--white);font-size:var(--fs-body)}.foot-contact .btn{margin-top:var(--s-4)}.foot-contact iframe{width:100%;height:180px;border:0;border-radius:var(--r);margin-top:var(--s-4)}.foot-legal{border-top:1px solid rgb(255 255 255 / 12%);padding-block:var(--s-4);font-size:var(--fs-small);color:#ffffff8c;display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);justify-content:space-between}@media(min-width:768px){.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1fr}}.prose>*+*{margin-top:var(--s-5)}.prose>h2{margin-top:var(--s-7)}.prose>h3{margin-top:var(--s-6)}.prose>:first-child{margin-top:0}.prose>h2+*,.prose>h3+*,.prose>h4+*{margin-top:var(--s-3)}.prose li+li{margin-top:var(--s-1)}.prose img{margin-inline:auto;border-radius:var(--r2);background:var(--g100)}.prose figcaption{font-size:var(--fs-small);color:var(--ink-2);margin-top:var(--s-2);text-align:center}.prose blockquote{border-left:3px solid var(--blue);padding-left:var(--s-4);color:var(--ink-2)}.prose .table-scroll{overflow-x:auto;border:var(--line);border-radius:var(--r2)}.prose .table-scroll table{min-width:480px}.prose table tr:nth-child(2n) td{background:var(--g100)}.prose iframe{width:100%;aspect-ratio:16 / 9;height:auto;border-radius:var(--r2)}.prose a:not(.btn){text-decoration:underline;text-decoration-color:#1f4e9c59}.prose .product-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,1fr);gap:var(--s-3)}.prose .product-list li a{display:block;background:var(--g100);border-radius:var(--r2);padding:var(--s-3);color:var(--ink);text-decoration:none;height:100%}.prose .product-list li a:hover{background:var(--blue-soft)}.prose .product-list img{width:100%;aspect-ratio:1;object-fit:contain;mix-blend-mode:multiply;background:transparent;border-radius:10px}.prose .product-list h2,.prose .product-list h3{font-size:var(--fs-small);font-weight:500;margin-top:var(--s-2)}@media(min-width:640px){.prose .product-list{grid-template-columns:repeat(3,1fr)}}.section-tight{padding-block:var(--s-4) var(--s-7)}.page-head{padding:var(--s-6) var(--s-5);background:linear-gradient(140deg,#0f2b5c,var(--blue) 75%,#3b7be0);color:var(--white);display:grid;gap:var(--s-4);margin-bottom:var(--s-5)}.page-head .kicker,.page-head h1,.page-head .result-count{color:var(--white)}.page-head .kicker{opacity:.8}.result-count{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--ink-2);margin-bottom:var(--s-3)}.page-head .desc{color:#ffffffd9;max-width:70ch;margin-top:var(--s-3)}.page-head .desc a{color:var(--white)}.page-head .art{width:96px;aspect-ratio:1;object-fit:contain;background:var(--white);border-radius:var(--r2);padding:var(--s-2);justify-self:end;align-self:start}.page-head.with-art{grid-template-columns:minmax(0,1fr) 96px;align-items:center}@media(min-width:640px){.page-head .art{width:200px;padding:var(--s-3)}.page-head.with-art{grid-template-columns:minmax(0,1fr) 200px}}.empty{color:var(--ink-2);padding:var(--s-6);text-align:center}.cat-tiles{list-style:none;padding:0;display:grid;grid-template-columns:1fr;gap:var(--s-4)}.cat-tiles h2{font-size:18px;font-weight:600}@media(min-width:640px){.cat-tiles{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.cat-tiles{grid-template-columns:repeat(3,1fr)}}.page-blocks>*+*{margin-top:var(--s-4)}.prose-card{padding:var(--s-5)}.prose-card .prose{max-width:820px}.prose-card .prose>h1{font-size:var(--fs-h1)}@media(min-width:768px){.prose-card{padding:var(--s-7) var(--s-8)}.page-head{padding:var(--s-7) var(--s-7)}}.article{padding-block:var(--s-4) var(--s-4)}.article-head{padding:var(--s-6) var(--s-5);background:linear-gradient(140deg,#0f2b5c,var(--blue) 75%,#3b7be0);color:var(--white)}.article-head .meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2) var(--s-3);font-family:var(--font-mono);font-size:12px;opacity:.9}.article-head .chip{background:#ffffff26;border:1px solid rgb(255 255 255 / 30%);color:var(--white);border-radius:999px;padding:2px var(--s-3);text-decoration:none}.article-head h1{color:var(--white);margin-top:var(--s-3);max-width:24ch}.article-hero{margin-top:var(--s-5);max-width:880px}.article-hero img{width:100%;border-radius:var(--r2)}.article-grid{display:grid;gap:var(--s-4);margin-top:var(--s-4);align-items:start}.toc{padding:var(--s-4) var(--s-5)}.toc summary{cursor:pointer;font-family:var(--font-head);font-weight:600}.toc ol{list-style:none;padding:0;margin-top:var(--s-2);font-size:var(--fs-small)}.toc li{padding-block:3px}.toc li.sub{padding-left:var(--s-4)}.toc a{color:var(--ink-2);text-decoration:none}.toc a:hover{color:var(--blue)}.article-body{padding:var(--s-5)}.article-body .prose{max-width:var(--measure)}.article .prose h2,.article .prose h3{scroll-margin-top:96px}@media(min-width:768px){.article-head{padding:var(--s-7)}.article-body{padding:var(--s-7) var(--s-8)}}@media(min-width:1024px){.article-grid{grid-template-columns:280px minmax(0,1fr)}.toc{position:sticky;top:96px}}.crumbs{padding-block:var(--s-3) var(--s-4);font-size:var(--fs-small);color:var(--ink-2);display:flex;flex-wrap:wrap;gap:var(--s-2)}.crumbs a{color:var(--ink-2)}.crumbs .here{color:var(--ink)}.datasheet{display:grid;gap:var(--s-5);align-items:start}.panel{min-width:0}.panel-card{padding:var(--s-4)}.panel-card .pic{position:relative;border-radius:var(--r2);overflow:hidden}.panel-card .main{width:100%;aspect-ratio:1;object-fit:contain;background:var(--g100);border-radius:var(--r2);padding:var(--s-5);mix-blend-mode:multiply}.panel-card .dl{width:48px;height:48px;right:var(--s-4);bottom:var(--s-4)}.panel-card .dl svg{width:24px;height:24px}.panel-card .gallery{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-2);margin-top:var(--s-3)}.panel-card .gallery img{width:100%;aspect-ratio:1;object-fit:contain;background:var(--g100);border-radius:10px;padding:var(--s-2);mix-blend-mode:multiply}.sheet-body{min-width:0}.sheet-body h1{margin-top:var(--s-1)}.sheet-body h1 .code{font-family:var(--font-mono);color:var(--blue)}.chips{display:grid;gap:var(--s-2);margin-top:var(--s-4)}.chips div{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2)}.chips dt{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);min-width:110px}.chips dd{display:flex;flex-wrap:wrap;gap:var(--s-2)}.chips dd a{background:var(--white);border:var(--line);border-radius:999px;padding:2px var(--s-3);font-size:var(--fs-small);color:var(--ink);text-decoration:none}.chips dd a:hover{border-color:var(--blue);color:var(--blue)}.sheet-body .actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}.sheet-body .actions .btn{display:inline-flex;align-items:center;gap:var(--s-2)}.sheet-body .actions .ico{width:18px;height:18px}.sheet-card{padding:var(--s-5);margin-top:var(--s-5)}.sheet-card .prose{max-width:820px}@media(min-width:768px){.sheet-card{padding:var(--s-6) var(--s-7)}}@media(min-width:900px){.datasheet{grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:var(--s-6)}.panel{position:sticky;top:96px}}.fab{position:fixed;right:var(--s-4);bottom:var(--s-4);z-index:30;display:flex;flex-direction:column;align-items:flex-end;gap:var(--s-3)}.fab-line{display:inline-flex;align-items:center;gap:0;background:#06c755;color:var(--white);border-radius:999px;padding:12px;font-family:var(--font-head);font-weight:600;text-decoration:none;box-shadow:0 10px 24px #06c75559;transition:transform .2s,box-shadow .2s,gap .25s,padding .25s}.fab-line span{max-width:0;overflow:hidden;white-space:nowrap;opacity:0;transition:max-width .3s,opacity .2s}.fab-line:hover span,.fab-line:focus-visible span{max-width:220px;opacity:1}.fab-line:hover,.fab-line:focus-visible{gap:var(--s-2);padding:12px var(--s-5) 12px 14px}.fab-line:hover{box-shadow:0 14px 28px #06c75573;color:var(--white);text-decoration:none}.fab-line svg{width:28px;height:28px;flex:none}.fab-top{width:44px;height:44px;border-radius:50%;border:0;background:var(--white);color:var(--ink);box-shadow:var(--shadow-hover);display:grid;place-items:center;cursor:pointer}.fab-top:hover{background:var(--blue);color:var(--white)}.fab-top svg{width:22px;height:22px}.about-page>*+*{margin-top:var(--s-4)}.about-hero{display:grid;gap:var(--s-5);padding:var(--s-6) var(--s-5);background:linear-gradient(140deg,#0f2b5c,var(--blue) 70%,#3b7be0);color:var(--white);position:relative;isolation:isolate}.about-hero:before{content:;position:absolute;width:480px;height:480px;right:-160px;top:-200px;border-radius:50%;border:70px solid rgb(255 255 255 / 6%);pointer-events:none;z-index:-1}.about-hero .eyebrow{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;opacity:.85}.about-hero h1{color:var(--white);margin-top:var(--s-2)}.about-hero h2{color:var(--white);margin-top:var(--s-5);font-size:var(--fs-h3);opacity:.95}.about-hero .lead p{margin-top:var(--s-2);color:#ffffffd9;max-width:60ch;font-size:17px}.about-hero .lead a{color:var(--white);text-decoration:underline}.about-hero .stats{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-3);align-self:end}.about-hero .stats li{background:#ffffff1a;border:1px solid rgb(255 255 255 / 20%);border-radius:var(--r2);padding:var(--s-4)}.about-hero .stats b{display:block;font-family:var(--font-head);font-size:32px;line-height:1}.about-hero .stats span{font-size:12px;opacity:.75}@media(min-width:900px){.about-hero{grid-template-columns:minmax(0,7fr) minmax(0,5fr);padding:var(--s-8) var(--s-7);align-items:end}}.about-cards{display:grid;gap:var(--s-4)}.about-card{padding:var(--s-5);display:grid;gap:var(--s-3);align-content:start}.about-card .ico{width:44px;height:44px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center}.about-card .ico svg{width:22px;height:22px}.about-card .prose p{color:var(--ink-2)}.about-card.cta-card{background:var(--blue-soft)}.about-card.cta-card p{color:var(--ink);font-family:var(--font-head);font-weight:500}.about-card.cta-card .btn{margin-top:var(--s-2)}@media(min-width:768px){.about-cards{grid-template-columns:repeat(3,1fr)}}.about-mosaic{display:grid;gap:var(--s-4)}.about-mosaic figure{margin:0;overflow:hidden}.about-mosaic img{width:100%;height:100%;object-fit:cover;aspect-ratio:16 / 10;border-radius:0;background:none;transition:transform .4s}.about-mosaic figure:hover img{transform:scale(1.03)}@media(min-width:768px){.about-mosaic{grid-template-columns:3fr 2fr}.about-mosaic img{aspect-ratio:auto;height:100%;min-height:320px}}.about-band{display:grid;gap:var(--s-5);padding:var(--s-6) var(--s-5);background:linear-gradient(120deg,var(--blue-deep),#2a3038);color:var(--white)}.about-band .label h4{font-family:var(--font-mono);font-weight:400;font-size:12px;letter-spacing:.08em;color:#ffffffb3;text-transform:none}.about-band h2{color:var(--white);margin-top:var(--s-2)}.about-band .prose{margin-top:var(--s-3)}.about-band .prose p{color:#ffffffd9;max-width:60ch}.about-band .side{background:#ffffff14;border:1px solid rgb(255 255 255 / 15%);border-radius:var(--r2);padding:var(--s-5);display:grid;gap:var(--s-3);align-content:start}.about-band .side .kicker{color:#ffffffb3}.about-band .bullets{list-style:none;padding:0;display:grid;gap:var(--s-2)}.about-band .bullets li{padding-left:var(--s-5);position:relative}.about-band .bullets li:before{content:;position:absolute;left:0;top:.55em;width:10px;height:10px;border-radius:50%;background:#4fb3ff}.about-band .side .btn{justify-self:start;margin-top:var(--s-2)}@media(min-width:900px){.about-band{grid-template-columns:minmax(0,7fr) minmax(0,5fr);padding:var(--s-7)}}.about-contact{display:grid;gap:var(--s-4)}.contact-card{padding:var(--s-6) var(--s-5);display:grid;gap:var(--s-4);align-content:start}.contact-card h2{font-size:var(--fs-h2)}.contact-card .prose h4{font-family:var(--font-mono);font-weight:600;font-size:var(--fs-small);color:var(--blue);margin-top:var(--s-2)}.contact-card address{font-style:normal;color:var(--ink-2);display:grid;gap:var(--s-1)}.contact-card .tel a{font-family:var(--font-mono);font-weight:600;color:var(--ink)}.contact-card .actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}.about-contact iframe{width:100%;min-height:320px;height:100%;border:0}@media(min-width:900px){.about-contact{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.contact-card{padding:var(--s-7)}}.b-hero a:not(.btn),.about-hero a:not(.btn),.about-band a:not(.btn),.band a:not(.btn),.page-head a:not(.btn),.article-head a:not(.btn):not(.chip),.group-head a:not(.btn){color:var(--white);text-decoration:underline;text-decoration-color:#ffffff8c}.b-hero a:not(.btn):hover,.about-hero a:not(.btn):hover,.about-band a:not(.btn):hover,.band a:not(.btn):hover,.page-head a:not(.btn):hover,.group-head a:not(.btn):hover{color:#cfe3ff}.blog-page>*+*{margin-top:var(--s-4)}.blog-head{gap:var(--s-4)}.blog-head .kicker{color:#fffc}.cat-chips{display:flex;flex-wrap:wrap;gap:var(--s-2)}.cat-chips a{display:inline-flex;align-items:center;gap:var(--s-2);background:#ffffff1f;border:1px solid rgb(255 255 255 / 25%);color:var(--white);border-radius:999px;padding:var(--s-1) var(--s-4);font-family:var(--font-head);font-weight:500;text-decoration:none}.cat-chips a:hover{background:var(--white);color:var(--blue);text-decoration:none}.cat-chips .count{font-family:var(--font-mono);font-size:12px;opacity:.8;color:inherit}.lead-card{display:grid;overflow:hidden;margin-bottom:var(--s-4)}.lead-card .pic img{width:100%;height:100%;object-fit:cover;aspect-ratio:16 / 9}.lead-card .body{padding:var(--s-5);display:grid;gap:var(--s-3);align-content:center}.lead-card .meta{display:flex;align-items:center;gap:var(--s-3);font-family:var(--font-mono);font-size:12px;color:var(--ink-2)}.lead-card .chip{background:var(--blue-soft);color:var(--blue);border-radius:999px;padding:2px var(--s-3);text-decoration:none;font-family:var(--font-head)}.lead-card h2{font-size:var(--fs-h2)}.lead-card h2 a{color:var(--ink);text-decoration:none}.lead-card h2 a:hover{color:var(--blue)}.lead-card .excerpt{color:var(--ink-2)}.lead-card .btn{justify-self:start}@media(min-width:900px){.lead-card{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.lead-card .pic img{aspect-ratio:auto;min-height:340px}.lead-card .body{padding:var(--s-7)}}.blog-more{margin-top:var(--s-7)}.blog-more .kicker{margin-bottom:0}.blog-more .acards{margin-top:var(--s-3)}.page-head .cat-chips a{text-decoration:none}.pager{display:flex;align-items:center;justify-content:center;gap:var(--s-4);margin-top:var(--s-6)}.article-head .chip.tag{background:transparent;border-style:dashed}.pcard .specs{margin:0;border:var(--line);border-radius:var(--r2);overflow:hidden;font-size:var(--fs-small)}.pcard .specs div{display:flex;justify-content:space-between;gap:var(--s-3);padding:var(--s-2) var(--s-3)}.pcard .specs div+div{border-top:var(--line)}.pcard .specs dt{color:var(--ink-2);flex:none}.pcard .specs dd{margin:0;text-align:right;color:var(--ink)}@media(max-width:639px){.pcard .specs div{flex-direction:column;gap:0}.pcard .specs dd{text-align:left;font-weight:500}}.type-tiles{margin-top:var(--s-7);display:grid;gap:var(--s-4)}.type-tiles .group-head h2{color:var(--white);font-size:var(--fs-h2)}.cat-tiles h3{font-size:18px;font-weight:600}.reading{margin-top:var(--s-7)}.reading-list{margin-top:var(--s-5);padding:var(--s-4) var(--s-5)}.reading-list ul{list-style:none;padding:0;margin:var(--s-2) 0 0}.reading-list li+li{border-top:var(--line)}.reading-list a{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s-3);padding:var(--s-2) 0;color:var(--ink);text-decoration:none}.reading-list a:hover .t{color:var(--blue);text-decoration:underline}.reading-list .t{font-family:var(--font-head);font-weight:500;min-width:0}.reading-list time{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);white-space:nowrap}.reading-list .arrow{color:var(--blue)}@media(max-width:639px){.reading-list a{grid-template-columns:minmax(0,1fr) auto}.reading-list time{display:none}}
