:root{--lattice-ink:#0c1224;--lattice-deep:#141b33;--lattice-grid:#2a3f6b;--lattice-accent:#3dd6c3;--lattice-accent-dim:#2ba89a;--lattice-glow:rgba(61, 214, 195, 0.18);--lattice-surface:#f4f7fc;--lattice-muted:#5c6b88;--lattice-warn:#c45c26;--font-heading:"IBM Plex Sans Thai", "Noto Sans Thai", sans-serif;--font-body:"Noto Sans Thai", sans-serif;--read-max:42rem;--section-pad:clamp(2.5rem, 5vw, 4.5rem);--radius:6px}@font-face{font-family:ibm plex sans thai;src:url(/fonts/ibm-plex-sans-thai-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:noto sans thai;src:url(/fonts/noto-sans-thai-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:noto sans thai;src:url(/fonts/noto-sans-thai-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}[x-cloak]{display:none!important}body{margin:0;font-family:var(--font-body);font-weight:400;color:var(--lattice-ink);background:var(--lattice-surface);line-height:1.65;background-image:linear-gradient(90deg,var(--lattice-glow) 1px,transparent 1px),linear-gradient(180deg,var(--lattice-glow) 1px,transparent 1px);background-size:48px 48px}h1,h2,h3,h4{font-family:var(--font-heading);font-weight:700;line-height:1.25;color:var(--lattice-deep)}a{color:var(--lattice-accent-dim);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--lattice-accent)}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid var(--lattice-accent);outline-offset:2px}img{max-width:100%;height:auto;display:block}.img-grade--grayscale-contrasty{filter:grayscale(1)contrast(1.08)}.lattice-shell{min-height:100vh;display:flex;flex-direction:column}.lattice-header{background:var(--lattice-deep);color:#e8edf8;border-bottom:2px solid var(--lattice-grid);position:sticky;top:0;z-index:40}.lattice-header__inner{max-width:72rem;margin:0 auto;padding:.85rem 1.25rem;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem}.lattice-brand{font-family:var(--font-heading);font-weight:700;font-size:1.05rem;color:#fff;text-decoration:none;letter-spacing:.02em}.lattice-nav{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:center}.lattice-nav a{color:#c8d4ef;text-decoration:none;font-size:.95rem}.lattice-nav a:hover{color:var(--lattice-accent)}.lattice-header__contact{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;font-size:.9rem}.lattice-header__contact a{color:var(--lattice-accent);text-decoration:none;white-space:nowrap}.lattice-main{flex:1}.lattice-section{padding:var(--section-pad)1.25rem}.lattice-section--dark{background:var(--lattice-deep);color:#dce4f8}.lattice-section--dark h2,.lattice-section--dark h3{color:#fff}.lattice-wrap{max-width:72rem;margin:0 auto}.lattice-hero--text-first{max-width:40rem;margin:0 auto;text-align:center;padding:clamp(3rem,8vw,5rem)1.25rem}.lattice-hero--text-first h1{font-size:clamp(1.75rem,4.5vw,2.65rem);margin-bottom:1rem}.lattice-hero--text-first .lead{font-size:1.1rem;color:var(--lattice-muted);margin-bottom:1.75rem}.lattice-hero--text-first .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}.lattice-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.65rem 1.35rem;border-radius:var(--radius);font-weight:600;font-family:var(--font-body);text-decoration:none;border:2px solid transparent;cursor:pointer;font-size:1rem}.lattice-btn--primary{background:var(--lattice-accent);color:var(--lattice-ink);border-color:var(--lattice-accent-dim)}.lattice-btn--ghost{background:0 0;color:var(--lattice-deep);border-color:var(--lattice-grid)}.lattice-section--dark .lattice-btn--ghost{color:#fff;border-color:#4a608f}.composition-centered-media-below{text-align:center}.composition-centered-media-below .composition-centered-text{text-align:center;margin-inline:auto;max-width:var(--read-max)}.composition-centered-media-below .composition-media{margin:2rem auto 0;max-width:56rem;border:2px solid var(--lattice-grid);box-shadow:8px 8px 0 var(--lattice-glow)}.composition-text-left-media-right{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:center}.composition-text-left-media-right .composition-media{border:2px solid var(--lattice-grid)}.composition-staggered-rows .stagger-row{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:center;margin-bottom:2.5rem;padding:1.5rem;background:#fff;border:1px solid #d8e0f0;box-shadow:4px 4px 0 var(--lattice-glow)}.composition-staggered-rows .stagger-row:nth-child(even){margin-left:clamp(0rem,6vw,4rem)}.composition-staggered-rows .stagger-row:nth-child(odd){margin-right:clamp(0rem,6vw,4rem)}.composition-staggered-rows .stagger-media img{aspect-ratio:1;object-fit:cover;width:100%}@media(max-width:767px){.composition-text-left-media-right{grid-template-columns:1fr;text-align:left}.composition-text-left-media-right h2{text-align:left}.composition-staggered-rows .stagger-row{grid-template-columns:1fr;margin-left:0!important;margin-right:0!important}}.courses-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1.5rem;margin-top:2rem}.course-card{background:#fff;border:2px solid var(--lattice-grid);padding:1.5rem;display:flex;flex-direction:column;gap:.75rem;position:relative}.course-card--promo{border-color:var(--lattice-accent-dim);box-shadow:0 0 0 3px var(--lattice-glow)}.course-card__badge{position:absolute;top:-.65rem;right:1rem;background:var(--lattice-warn);color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .6rem;border-radius:var(--radius)}.course-price{font-size:1.35rem;font-weight:600;color:var(--lattice-deep)}.course-price--strike{text-decoration:line-through;color:var(--lattice-muted);font-size:1rem;font-weight:400}.course-price--final{color:var(--lattice-accent-dim)}.disclaimer-block{margin-top:2rem;padding:1rem 1.25rem;border-left:4px solid var(--lattice-warn);background:#fff8f3;font-size:.9rem;color:#4a3b32}.lattice-footer{background:var(--lattice-ink);color:#b8c4de;padding:2.5rem 1.25rem;font-size:.88rem}.lattice-footer--centered{text-align:center}.lattice-footer__identity{max-width:40rem;margin:0 auto 1.5rem;line-height:1.7}.lattice-footer__identity span{display:inline}.lattice-footer__identity .sep::after{content:" · ";opacity:.6}.lattice-footer__nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem 1.25rem;margin-bottom:1.25rem}.lattice-footer__nav a{color:#dce8ff;text-decoration:none}.lattice-footer__disclaimer{max-width:48rem;margin:1.5rem auto 0;font-size:.82rem;color:#9aabc8;border-top:1px solid #2a3a58;padding-top:1.25rem}.lattice-form{max-width:32rem}.lattice-form label{display:block;font-weight:600;margin-bottom:.35rem}.lattice-form input,.lattice-form textarea,.lattice-form select{width:100%;min-height:44px;padding:.55rem .75rem;border:2px solid #c5d0e8;border-radius:var(--radius);font-family:var(--font-body);font-size:1rem;margin-bottom:.25rem}.lattice-form textarea{min-height:120px;resize:vertical}.lattice-form .field-error{color:#b42318;font-size:.85rem;margin-bottom:.75rem}.lattice-form .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-status{margin-top:1rem;padding:.75rem 1rem;border-radius:var(--radius);display:none}.form-status.is-visible{display:block}.form-status--pending{background:#eef3ff;color:var(--lattice-deep)}.form-status--success{background:#e6f7f2;color:#0d4f42}.form-status--error{background:#fdecea;color:#7a1c12}.consent-banner{position:fixed;bottom:0;left:0;right:0;background:var(--lattice-deep);color:#e8edf8;padding:1rem 1.25rem;border-top:2px solid var(--lattice-accent-dim);z-index:50;box-shadow:0 -8px 24px rgba(0,0,0,.25)}.consent-banner__inner{max-width:72rem;margin:0 auto;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.consent-banner p{margin:0;flex:1 1 16rem;font-size:.9rem}.consent-banner__actions{display:flex;gap:.5rem;flex-wrap:wrap}.legal-prose{max-width:var(--read-max);margin:0 auto}.legal-prose h2{margin-top:2rem}.faq-item{border-bottom:1px solid #d8e0f0;padding:1rem 0}.not-found{text-align:center;padding:4rem 1.25rem}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}@media(max-width:767px){.contact-grid{grid-template-columns:1fr}}