@font-face{font-family:fraunces;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/Fraunces-latin.woff2)format("woff2");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}@font-face{font-family:fraunces;font-style:normal;font-weight:500 600;font-display:swap;src:url(/fonts/Fraunces-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:inter tight;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/InterTight-latin.woff2)format("woff2");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}@font-face{font-family:inter tight;font-style:normal;font-weight:400 600;font-display:swap;src:url(/fonts/InterTight-latin-ext.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:interkhmer looped;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/InterKhmerLooped-Regular.woff2)format("woff2")}@font-face{font-family:interkhmer looped;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/InterKhmerLooped-Medium.woff2)format("woff2")}@font-face{font-family:interkhmer looped;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/InterKhmerLooped-SemiBold.woff2)format("woff2")}@font-face{font-family:interkhmer looped;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/InterKhmerLooped-Bold.woff2)format("woff2")}@font-face{font-family:interkhmer loopless;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/InterKhmerLoopless-SemiBold.woff2)format("woff2")}@font-face{font-family:interkhmer loopless;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/InterKhmerLoopless-Bold.woff2)format("woff2")}:root{--bone:#FBFAF7;--paper:#FFFFFF;--linen:#F4F2EC;--oat:#E5E1D8;--clay:#C9C3B5;--ash:#A3A196;--stone:#6B6A62;--ink:#1A1915;--near-black:#0D0D0B;--charcoal:#16161A;--charcoal-alt:#1F1F23;--ink-line:#2A2A2E;--teal:#0F766E;--teal-soft:#CCFBF1;--teal-ink:#134E4A;--teal-light:#2DD4BF;--danger:#B91C1C;--color-background:var(--bone);--color-foreground:var(--ink);--color-card:var(--paper);--color-card-foreground:var(--ink);--color-primary:var(--teal);--color-primary-foreground:var(--paper);--color-secondary:var(--linen);--color-muted:var(--linen);--color-muted-foreground:var(--stone);--color-accent:var(--teal-soft);--color-accent-foreground:var(--teal-ink);--color-border:var(--oat);--color-border-strong:var(--clay);--radius-sm:4px;--radius-md:10px;--radius-lg:16px;--radius-btn:22px;--radius-pill:999px;--motion-fast:120ms;--motion-default:180ms;--motion-slow:280ms;--motion-emphasis:520ms;--easing-standard:cubic-bezier(0.2, 0.8, 0.2, 1);--easing-exit:cubic-bezier(0.4, 0, 0.2, 1);--easing-spring:cubic-bezier(0.34, 1.56, 0.64, 1);--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;--sp-24:96px;--font-display:"Fraunces", "Times New Roman", serif;--font-sans:"Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-label:"Inter Tight", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, "Cascadia Code", "Courier New", monospace;--font-kh:"InterKhmer Looped", "Noto Sans Khmer", var(--font-sans);--font-kh-display:"InterKhmer Loopless", "Suwannaphum", "Hanuman", var(--font-kh);--hero-gradient:linear-gradient(
    135deg,
    var(--teal-ink)   0%,
    var(--teal)      50%,
    var(--teal-light) 100%
  );--maxw:1120px;--maxw-prose:720px;color-scheme:light}.dark,[data-theme=dark]{--color-background:var(--near-black);--color-foreground:var(--linen);--color-card:var(--charcoal);--color-card-foreground:var(--linen);--color-primary:var(--teal-light);--color-primary-foreground:var(--near-black);--color-secondary:var(--charcoal-alt);--color-muted:var(--charcoal-alt);--color-muted-foreground:var(--ash);--color-accent:var(--teal-ink);--color-accent-foreground:var(--teal-soft);--color-border:var(--ink-line);--color-border-strong:var(--stone);--hero-gradient:linear-gradient(
    135deg,
    var(--teal)       0%,
    var(--teal-light) 50%,
    #75C2D2          100%
  );color-scheme:dark}*,*::before,*::after{box-sizing:border-box;border-color:var(--color-border)}html{scroll-behavior:smooth;background-color:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background-color:var(--color-background);color:var(--color-foreground);font-family:var(--font-sans);font-size:17px;line-height:1.65}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:2px}::selection{background:var(--color-accent);color:var(--color-accent-foreground)}:lang(km),[lang=km],.khmer{font-style:normal!important;letter-spacing:0!important;line-height:1.7}html[lang=km] body{font-family:var(--font-kh)}html[lang=km] h1,html[lang=km] h2,html[lang=km] h3{font-family:var(--font-kh-display)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--color-muted-foreground) 30%,transparent);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--color-muted-foreground) 55%,transparent)}button:not(:disabled),a[href]{cursor:pointer}.container{max-width:var(--maxw);margin:0 auto;padding:0 var(--sp-6)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--color-border);background:color-mix(in srgb,var(--color-background) 82%,transparent);backdrop-filter:saturate(140%)blur(10px)}.site-header .container{display:flex;align-items:center;justify-content:space-between;height:var(--sp-16)}.brand-mark{display:inline-flex;align-items:center;color:var(--color-foreground)}.brand-mark:hover{text-decoration:none}.logo-lockup{display:inline-flex;align-items:center;gap:.3em;line-height:0}.logo-mark,.logo-typo{display:block;height:auto}.header-actions{display:flex;align-items:center;gap:var(--sp-2)}.header-actions a,.header-actions button{font-family:var(--font-label);font-size:.9rem;color:var(--color-muted-foreground);background:0 0;border:1px solid transparent;border-radius:var(--radius-pill);padding:var(--sp-2)var(--sp-3);transition:color var(--motion-default)var(--easing-standard),background-color var(--motion-default)var(--easing-standard)}.header-actions a:hover{text-decoration:none;color:var(--color-foreground);background:var(--color-muted)}.theme-toggle{line-height:1;font-size:1.1rem}.theme-toggle:hover{color:var(--color-foreground);background:var(--color-muted)}.hero{background:var(--hero-gradient);color:#fff;padding:var(--sp-16)0 var(--sp-24)}.hero h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2.4rem,5vw,3.4rem);line-height:1.05;letter-spacing:-.02em;margin:0 0 var(--sp-3)}.hero p{font-size:1.15rem;max-width:540px;opacity:.92;margin:0}html[lang=km] .hero h1{font-family:var(--font-kh-display);line-height:1.25}.meta{display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-3)}.chip{font-size:.72rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-accent-foreground);background:var(--color-accent);border-radius:var(--radius-pill);padding:var(--sp-1)var(--sp-3)}html[lang=km] .chip{text-transform:none;letter-spacing:0}.meta .date,.meta .dot{font-size:.82rem;color:var(--color-muted-foreground)}.read-more{font-size:.9rem;font-weight:600;color:var(--color-primary);display:inline-flex;align-items:center;gap:var(--sp-1);transition:gap var(--motion-default)var(--easing-standard)}.read-more:hover{text-decoration:none;gap:var(--sp-2)}.eyebrow{display:inline-flex;align-items:center;gap:var(--sp-1);font-family:var(--font-mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-muted-foreground)}.eyebrow-primary{color:var(--color-primary)}html[lang=km] .eyebrow{font-family:var(--font-kh);text-transform:none;letter-spacing:0}.blog{padding:var(--sp-12)0 var(--sp-24)}.blog-toolbar{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-12)}@media(min-width:640px){.blog-toolbar{flex-direction:row;align-items:center;justify-content:space-between}}.pills{display:flex;gap:var(--sp-2);flex-wrap:wrap}@media(max-width:639px){.pills{flex-wrap:nowrap;overflow-x:auto;margin:0 calc(-1 * var(--sp-6));padding:0 var(--sp-6)}.pills::-webkit-scrollbar{display:none}}.pill{flex-shrink:0;white-space:nowrap;font-family:var(--font-label);font-size:.9rem;font-weight:500;color:var(--color-muted-foreground);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--sp-2)var(--sp-4);transition:color var(--motion-default)var(--easing-standard),background-color var(--motion-default)var(--easing-standard),border-color var(--motion-default)var(--easing-standard)}.pill:hover{color:var(--color-foreground);border-color:color-mix(in srgb,var(--color-foreground) 30%,transparent)}.pill[aria-pressed=true]{color:var(--color-background);background:var(--color-foreground);border-color:var(--color-foreground)}.search{position:relative;display:flex;align-items:center;width:100%}@media(min-width:640px){.search{width:18rem}}.search .search-icon{position:absolute;left:var(--sp-3);width:15px;height:15px;color:var(--color-muted-foreground);pointer-events:none}.search input{width:100%;font-family:var(--font-sans);font-size:.9rem;color:var(--color-foreground);background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-pill);padding:var(--sp-2)var(--sp-8)var(--sp-2)calc(var(--sp-8) + 2px);transition:border-color var(--motion-default)var(--easing-standard),box-shadow var(--motion-default)var(--easing-standard)}.search input::placeholder{color:var(--color-muted-foreground)}.search input::-webkit-search-cancel-button{-webkit-appearance:none}.search input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-primary) 20%,transparent)}.search-clear{position:absolute;right:var(--sp-2);display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border:0;background:0 0;color:var(--color-muted-foreground);border-radius:var(--radius-pill);transition:color var(--motion-default)var(--easing-standard),background-color var(--motion-default)var(--easing-standard)}.search-clear:hover{color:var(--color-foreground);background:var(--color-muted)}.search-clear svg{width:12px;height:12px}.featured{display:block;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;margin-bottom:var(--sp-12);transition:box-shadow var(--motion-emphasis)var(--easing-standard),border-color var(--motion-emphasis)var(--easing-standard)}.featured:hover{text-decoration:none;border-color:var(--color-border-strong);box-shadow:0 12px 40px color-mix(in srgb,var(--color-foreground) 12%,transparent)}.featured article{display:grid;gap:var(--sp-8);padding:var(--sp-8);align-items:center}@media(min-width:860px){.featured article{grid-template-columns:1.05fr 1fr;gap:var(--sp-12);padding:var(--sp-12)}}.featured h2{font-family:var(--font-display);font-weight:600;font-size:clamp(1.8rem,4vw,3rem);line-height:1.08;letter-spacing:-.02em;color:var(--color-foreground);margin:var(--sp-3)0 0;transition:color var(--motion-default)var(--easing-standard)}.featured:hover h2{color:var(--color-primary)}html[lang=km] .featured h2{font-family:var(--font-kh-display);line-height:1.3}.featured p{color:var(--color-muted-foreground);font-size:1.05rem;margin:var(--sp-4)0 0;max-width:46ch}.featured .meta{margin-top:var(--sp-6)}.featured .read-more{margin-top:var(--sp-6)}.featured-aside{display:none}@media(min-width:860px){.featured-aside{display:block}}.panel{border:1px solid var(--color-border);border-radius:var(--radius-md);background:color-mix(in srgb,var(--color-background) 70%,transparent);padding:var(--sp-6)}.panel-num{font-family:var(--font-display);font-weight:600;font-size:2.6rem;letter-spacing:-.02em;line-height:1;margin-top:var(--sp-3);color:var(--color-foreground)}.panel-num span{font-family:var(--font-sans);font-size:1rem;color:var(--color-muted-foreground);margin-left:var(--sp-1)}.panel-rule{height:1px;background:var(--color-border);margin:var(--sp-4)0}.post-grid{display:grid;gap:var(--sp-6);grid-template-columns:1fr}@media(min-width:640px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:980px){.post-grid{grid-template-columns:repeat(3,1fr)}}.post-card{display:flex;flex-direction:column;background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--sp-6);transition:transform var(--motion-emphasis)var(--easing-standard),box-shadow var(--motion-emphasis)var(--easing-standard),border-color var(--motion-emphasis)var(--easing-standard)}.post-card:hover{text-decoration:none;transform:translateY(-3px);border-color:var(--color-border-strong);box-shadow:0 4px 24px color-mix(in srgb,var(--color-primary) 12%,transparent),0 1px 4px color-mix(in srgb,var(--color-foreground) 5%,transparent)}.post-card article{display:flex;flex-direction:column;flex:1}.post-top{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.post-card h3{font-family:var(--font-display);font-weight:600;font-size:1.3rem;line-height:1.25;letter-spacing:-.01em;color:var(--color-foreground);margin:0 0 var(--sp-3);transition:color var(--motion-default)var(--easing-standard)}.post-card:hover h3{color:var(--color-primary)}html[lang=km] .post-card h3{font-family:var(--font-kh-display)}.post-card .excerpt{color:var(--color-muted-foreground);font-size:.95rem;flex:1;margin:0 0 var(--sp-6)}.post-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--color-border);padding-top:var(--sp-4);font-size:.8rem;color:var(--color-muted-foreground)}.post-foot .read-more{font-size:.85rem}.blog-empty{text-align:center;color:var(--color-muted-foreground);padding:var(--sp-16)0}.article{padding:var(--sp-12)0 var(--sp-24)}.article .container{max-width:var(--maxw-prose)}.article .back{font-size:.9rem;color:var(--color-muted-foreground)}.article header{margin:var(--sp-6)0 var(--sp-8)}.article h1{font-family:var(--font-display);font-weight:600;font-size:clamp(2rem,4.5vw,2.9rem);line-height:1.08;letter-spacing:-.02em;margin:var(--sp-3)0 var(--sp-4)}html[lang=km] .article h1{font-family:var(--font-kh-display);line-height:1.3}.article .meta{color:var(--color-muted-foreground);font-size:.9rem;margin-bottom:0}.prose{font-size:1.08rem;color:var(--color-foreground);line-height:1.7}.prose>:first-child{margin-top:0}.prose h2{font-family:var(--font-display);font-weight:600;font-size:1.6rem;line-height:1.25;letter-spacing:-.01em;margin:1.8em 0 .5em}.prose h3{font-family:var(--font-display);font-weight:600;font-size:1.25rem;line-height:1.3;margin:1.6em 0 .5em}html[lang=km] .prose h2,html[lang=km] .prose h3{font-family:var(--font-kh-display)}.prose p,.prose ul,.prose ol{margin:0 0 1.2em}.prose ul,.prose ol{padding-left:1.5em}.prose ul{list-style:disc}.prose ol{list-style:decimal}.prose li{margin:.3em 0}.prose li>p{margin:0}.prose strong{color:var(--color-foreground);font-weight:700}.prose em{font-style:italic}.prose a{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.prose a:hover{text-decoration-thickness:2px}.prose blockquote{border-left:3px solid var(--color-primary);margin:1.4em 0;padding:.2em 0 .2em 1.1em;color:color-mix(in srgb,currentColor 75%,transparent);font-style:italic}.prose code{font-family:var(--font-label);font-variant-numeric:tabular-nums;font-size:.9em;background:var(--color-muted);color:var(--color-foreground);padding:.1em .4em;border-radius:var(--radius-sm)}.prose pre{background:var(--color-muted);padding:var(--sp-3)var(--sp-4);border-radius:var(--radius-md);overflow-x:auto;margin:1.2em 0}.prose pre code{background:0 0;padding:0}.prose hr{border:0;border-top:1px solid var(--color-border);margin:2em 0}.prose img{max-width:100%;height:auto;border-radius:var(--radius-md)}.prose table{width:100%;border-collapse:collapse;margin:1.2em 0;font-size:.95em}.prose th,.prose td{border:1px solid var(--color-border);padding:.5em .7em;text-align:left}.prose th{background:var(--color-muted);font-weight:600}.prose :lang(km) em,.prose :lang(km) i{font-style:normal;font-weight:700;color:var(--color-primary)}.notice{background:var(--color-muted);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--sp-3)var(--sp-4);font-size:.92rem;color:var(--color-muted-foreground);margin:0 0 var(--sp-8)}.site-footer{border-top:1px solid var(--color-border);padding:var(--sp-8)0;color:var(--color-muted-foreground);font-size:.88rem}.site-footer .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-3)}.site-footer a{color:var(--color-muted-foreground)}.site-footer a:hover{color:var(--color-foreground)}.form-wrap{overflow-x:auto;margin:var(--sp-6)0}.form-wrap iframe{display:block;max-width:100%}@keyframes mkt-fade-in-up{from{opacity:0;transform:translate3d(0,12px,0)}to{opacity:1;transform:translate3d(0,0,0)}}.featured,.post-card,.article>.container{animation:mkt-fade-in-up .6s var(--easing-standard)both}.post-grid .post-card:nth-child(2){animation-delay:70ms}.post-grid .post-card:nth-child(3){animation-delay:140ms}.post-grid .post-card:nth-child(4){animation-delay:210ms}.post-grid .post-card:nth-child(n+5){animation-delay:280ms}[hidden]{display:none!important}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}