:root{font-family:-apple-system,BlinkMacSystemFont,Noto Sans Khmer,Segoe UI,sans-serif;color:var(--tg-theme-text-color, #15243b);background:var(--tg-theme-bg-color, #f5f7fc);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:3px solid #69a7ff;outline-offset:3px}h1,h2,p{margin:0}.app{max-width:660px;margin:auto;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(15px + env(safe-area-inset-top,0px)) 18px 12px;background:var(--tg-theme-bg-color, #f5f7fc)}.brand{display:flex;align-items:center;gap:10px}.brand .mascot{width:47px;height:47px;display:grid;place-items:center;font-size:29px;border-radius:16px;background:#e4efff}.brand strong{display:block;font-size:19px;letter-spacing:-.3px}.brand span:not(.mascot){display:block;color:var(--tg-theme-hint-color, #64748b);font-size:11px;margin-top:2px}.lang{background:var(--tg-theme-secondary-bg-color, #fff);border:1px solid #e0e7f0;border-radius:999px;padding:8px 12px;font-size:12px;font-weight:800;color:var(--tg-theme-text-color, #15243b)}main{padding:4px 16px calc(95px + env(safe-area-inset-bottom,0px))}.prototype{display:inline-block;max-width:100%;margin:6px 0 16px;padding:7px 11px;background:#fff3d2;color:#805700;border-radius:30px;font-size:10px;font-weight:700;letter-spacing:.1px}.hero{position:relative;overflow:hidden;border-radius:24px;padding:25px 23px;background:linear-gradient(125deg,#1766dd,#2c9cdd);color:#fff;box-shadow:0 12px 25px #1766dd20}.hero .eyebrow{font-size:10px;letter-spacing:1.2px;font-weight:800;opacity:.85}.hero h1{position:relative;z-index:1;margin-top:13px;font-size:clamp(22px,5vw,27px);line-height:1.55;max-width:270px}.hero p{position:relative;z-index:1;margin-top:7px;max-width:270px;font-size:12px;line-height:1.7;opacity:.9}.hero button{position:relative;z-index:1;display:flex;align-items:center;gap:16px;margin-top:19px;background:#fff;color:#1455a9;border:0;padding:11px 15px;border-radius:12px;font-weight:800;font-size:12px}.spark{position:absolute;font-size:110px;right:-2px;bottom:8px;opacity:.23;transform:rotate(-18deg)}main>h2{font-size:18px;margin:23px 2px 13px}.category-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tile{display:flex;text-align:left;flex-direction:column;align-items:flex-start;background:var(--tg-theme-secondary-bg-color, #fff);color:var(--tg-theme-text-color, #15243b);border:1px solid #e6eaf3;border-radius:20px;min-height:150px;padding:18px 15px;box-shadow:0 2px 8px #122f4d09}.tile:active,.grade:active,.list-item:not(.static):active{transform:scale(.99)}.tile-emoji{font-size:31px;display:block;margin-bottom:15px}.tile strong{font-size:14px;line-height:1.5}.tile small{font-size:11px;line-height:1.5;color:var(--tg-theme-hint-color, #64748b);margin-top:3px}.notice{display:flex;gap:13px;background:#eaf3ff;border-radius:18px;padding:16px;color:#19447c}.notice>span{font-size:25px}.notice strong{font-size:13px}.notice p{margin:5px 0 9px;font-size:11px;line-height:1.7}.notice a{color:#156ac6;font-weight:800;font-size:12px;text-decoration:none}.backlink{color:var(--tg-theme-link-color, #1675da);border:0;padding:4px 0 14px;background:none;font-weight:700;font-size:13px}.section-title{display:flex;align-items:center;gap:14px;margin:10px 2px 21px}.section-title>span{flex:0 0 60px;width:60px;height:60px;display:grid;place-items:center;font-size:31px;border-radius:18px;background:#e6efff}.section-title h1{font-size:clamp(18px,5vw,24px);line-height:1.5}.section-title p{margin-top:4px;font-size:12px;color:var(--tg-theme-hint-color, #64748b)}.grade-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.grade{display:flex;flex-direction:column;justify-content:center;align-items:center;border:1px solid #d9e7ff;border-radius:18px;background:#e9f1ff;color:#1353a7;min-height:100px}.grade span{font-size:11px;font-weight:700}.grade strong{font-size:30px;line-height:1.3}.footnote{margin:20px 2px;font-size:12px;line-height:1.7;color:var(--tg-theme-hint-color, #64748b)}.course-list{display:flex;flex-direction:column;gap:10px}.list-item{display:flex;align-items:center;width:100%;text-align:left;gap:12px;background:var(--tg-theme-secondary-bg-color, #fff);color:var(--tg-theme-text-color, #15243b);border:1px solid #e7ebf3;border-radius:16px;padding:13px 12px}.list-item.static{cursor:default}.list-icon{flex:0 0 45px;width:45px;height:45px;background:#edf3fe;border-radius:13px;display:grid;place-items:center;font-size:22px}.list-text{flex:1;min-width:0}.list-text strong{display:block;font-size:14px;line-height:1.5}.list-text small{color:var(--tg-theme-hint-color, #64748b);font-size:11px;line-height:1.6;display:block;margin-top:2px}.chevron{color:#8898b0;font-size:26px;font-weight:300}.info-card{border:1px solid #e7ebf3;border-radius:20px;background:var(--tg-theme-secondary-bg-color, #fff);padding:21px}.info-card h2{font-size:17px;line-height:1.5;margin:10px 0 8px}.info-card p{color:var(--tg-theme-hint-color, #64748b);font-size:13px;line-height:1.75}.state{display:inline-block;background:#f1f3f8;color:#6e7581;border-radius:999px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.state.available{background:#ddf8e6;color:#16743c}.primary-link{display:inline-block;margin-top:15px;text-decoration:none;background:#2874dc;color:#fff;border-radius:12px;padding:12px 15px;font-size:13px;font-weight:800}.bottom-nav{position:fixed;z-index:10;bottom:0;left:50%;transform:translate(-50%);width:100%;max-width:660px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:9px 8px calc(9px + env(safe-area-inset-bottom,0px));background:var(--tg-theme-bg-color, #fff);border-top:1px solid #e7ebf2;box-shadow:0 -5px 20px #142b4b0b}.nav-item{background:transparent;border:none;color:var(--tg-theme-hint-color, #718096);display:grid;justify-items:center;gap:5px;padding:7px 2px;border-radius:12px}.nav-item.selected{background:#eaf3ff;color:#196bd0;font-weight:800}.nav-item span{font-size:21px;line-height:1.3}.nav-item small{font-size:10px;white-space:nowrap}@media(min-width:550px){.category-grid,.grade-grid{grid-template-columns:repeat(4,1fr)}}@media(prefers-reduced-motion:no-preference){button{transition:transform .12s ease,background-color .2s ease}}
