/* Pagoda Clean Energy SBCC & PM training portal — same stack and design as sbc.avatarkh.com (GIZ) */
:root{
  color-scheme: light;
  --bg:#FBF9F5; --paper:#FFFFFF; --ink:#262626; --navy:#1B3A5C; --blue:#0072B2; --sky:#56B4E9;
  --orange:#B85C00; --amber:#E69F00; --green:#009E73; --leaf:#0E6B4E; --pink:#CC79A7; --grey:#6B6B6B;
  --light:#E8F0F8; --pale:#D5E3F0; --sand:#F6EFE6; --yellow:#F2B705; --line:#DCD6CC; --mint:#E3F2EC;
  --c1:#0072B2; --c2:#009E73; --c3:#E69F00; --c4:#D55E00; --c5:#CC79A7;
  --f:"Source Sans 3","Battambang",system-ui,sans-serif;
  --km:"Battambang","Source Sans 3",sans-serif;
  --kmh:"Kantumruy Pro","Noto Sans Khmer","Khmer OS","Khmer Sangam MN","Source Sans 3",sans-serif;
  font-size: clamp(15px, 0.85vw + 5px, 22px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f);line-height:1.5;-webkit-font-smoothing:antialiased}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
button{font:inherit;color:inherit}
a{color:var(--blue)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}
.km{font-family:var(--km);line-height:1.55}
.kmh{font-family:var(--kmh)}
.en{font-size:.8em;color:var(--grey);line-height:1.3}
b.en,.en b{color:var(--ink)}

/* ---------- deck ---------- */
#deck{height:100svh;overflow-y:auto;scroll-snap-type:y proximity;scroll-behavior:smooth}
.slide{position:relative;min-height:100svh;scroll-snap-align:start;padding:4.4rem clamp(16px,4vw,4.5rem) 4.6rem;display:flex;flex-direction:column;border-bottom:1px solid var(--line);overflow:hidden}
.slide:nth-child(even){background:linear-gradient(180deg,#FFFFFF 0%,var(--bg) 100%)}
.wrap{width:100%;max-width:78rem;margin:0 auto;flex:1;display:flex;flex-direction:column;gap:1.1rem}
.kick{display:flex;align-items:center;gap:.6rem;font-size:.8rem;letter-spacing:.06em;color:var(--blue);font-weight:600;flex-wrap:wrap}
.d2 .kick{color:var(--leaf)}
.kick .num{margin-left:auto;color:var(--grey);font-variant-numeric:tabular-nums;letter-spacing:0}
.kick .dot{width:.55rem;height:.55rem;border-radius:50%;background:var(--orange)}
.kick .step{background:var(--sand);color:var(--orange);border-radius:999px;padding:.05rem .65rem;letter-spacing:0}
h1,h2{margin:0;font-family:var(--kmh);font-weight:700;color:var(--navy);text-wrap:balance;line-height:1.4}
h2{font-size:2.05rem}
.sub{margin:-.6rem 0 0;font-size:1.05rem;color:var(--grey);font-style:italic}
.src{margin-top:auto;padding-top:.8rem;font-size:.7rem;color:var(--grey)}
.grid{display:grid;gap:1rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g5{grid-template-columns:repeat(5,minmax(0,1fr))}
@media (max-width:900px){.g3,.g4,.g5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}
.card{background:var(--paper);border:1px solid var(--line);border-top:6px solid var(--k,var(--blue));border-radius:14px;padding:1rem 1.1rem;box-shadow:0 1px 2px rgba(27,58,92,.06);display:flex;flex-direction:column;gap:.3rem;min-width:0}
.card .ic{font-size:1.7rem;line-height:1}
.card h3{margin:0;font-family:var(--kmh);font-size:1.2rem;color:var(--navy);line-height:1.45}
.card p{margin:0}
ul.clean{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
ul.clean li{display:grid;grid-template-columns:1.8rem 1fr;gap:.3rem;align-items:start}
ul.clean li .ic{font-size:1.15rem;line-height:1.5}
[data-tick] li{background:var(--sand);border-radius:12px;padding:.5rem .7rem;cursor:pointer;transition:.25s}
[data-tick] li.ok{background:var(--mint)}
.pill{display:inline-flex;align-items:center;gap:.3rem;font-size:.78rem;font-weight:700;padding:.15rem .65rem;border-radius:999px;background:var(--light);color:var(--navy)}
.banner{display:flex;gap:.9rem;align-items:center;background:var(--navy);color:#fff;border-radius:14px;padding:.9rem 1.2rem}
.d2 .banner{background:var(--leaf)}
.banner .en{color:#D5E3F0}
.banner .big{font-size:1.9rem}
.callout{background:var(--sand);border-left:6px solid var(--orange);border-radius:12px;padding:.85rem 1.1rem}
.callout b.kmh{color:var(--orange)}
.act{background:var(--mint);border-left:6px solid var(--green);border-radius:12px;padding:.85rem 1.1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.act .txt{flex:1;min-width:14rem}
.act b.kmh{color:var(--leaf)}
.quote{font-family:var(--kmh);font-size:1.5rem;color:var(--navy);border-left:6px solid var(--amber);padding:.3rem 0 .3rem 1rem;line-height:1.6}
.chain{display:flex;flex-wrap:wrap;gap:.5rem;align-items:stretch}
.chain .lk{flex:1 1 8.5rem;background:var(--light);border-radius:12px;padding:.75rem;text-align:center;font-family:var(--kmh);color:var(--navy);font-weight:700;display:flex;flex-direction:column;gap:.2rem;justify-content:center}
.chain .lk .en{font-family:var(--f);font-weight:400}
.chain .ar{display:grid;place-items:center;color:var(--orange);font-size:1.5rem;font-weight:700}
.tbl{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff;border-radius:12px;overflow:hidden}
.tbl th{background:var(--navy);color:#fff;text-align:left;padding:.55rem .7rem;font-family:var(--kmh)}
.d2 .tbl th{background:var(--leaf)}
.tbl td{padding:.5rem .7rem;border-bottom:1px solid var(--line);vertical-align:top}
.tw{overflow-x:auto}
.steps{counter-reset:s;display:grid;gap:.6rem}
.steps>div{counter-increment:s;display:grid;grid-template-columns:2.4rem 1fr;gap:.6rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem .8rem}
.steps>div::before{content:counter(s);width:2rem;height:2rem;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:700}
/* flip cards */
.flip{position:relative;display:block;width:100%;cursor:pointer;min-height:9rem;perspective:900px;border:0;background:none;padding:0;text-align:left}
.flip .in{display:block;position:relative;width:100%;height:100%;min-height:9rem;transition:transform .5s;transform-style:preserve-3d}
.flip.flipped .in{transform:rotateY(180deg)}
.flip .fa,.flip .fb{position:absolute;inset:0;backface-visibility:hidden;border-radius:14px;padding:.9rem 1rem;display:flex;flex-direction:column;justify-content:center;gap:.25rem}
.flip .fa{background:var(--navy);color:#fff}
.flip .fa .en{color:#D5E3F0}
.flip .fb{background:#fff;border:2px solid var(--amber);transform:rotateY(180deg)}
.flip .fa b{font-family:var(--kmh);font-size:1.15rem}
.hint{font-size:.75rem;color:var(--grey)}
/* timer */
.timer{position:relative;width:6.5rem;height:6.5rem;cursor:pointer;border:0;background:none;padding:0;flex:none}
.timer svg{width:100%;height:100%;transform:rotate(-90deg)}
.timer .t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:1.35rem;font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}
.timer .t small{font-size:.55rem;font-weight:600;color:var(--grey);letter-spacing:.04em}
.timer.run .t{color:var(--blue)} .timer.done .t{color:var(--orange)}
/* title slide */
.title-s{display:grid;grid-template-columns:1.6fr 1fr;gap:2rem;align-items:center;flex:1}
@media (max-width:900px){.title-s{grid-template-columns:1fr}}
.title-s h1{font-size:2.6rem}
.title-s .en1{font-size:1.3rem;color:var(--blue);font-weight:600;margin:.3rem 0 .9rem}
.d2 .title-s .en1{color:var(--leaf)}
.title-s .lens{border-left:5px solid var(--orange);padding-left:1rem}
.bignum{font-size:7rem;font-weight:900;line-height:1;color:var(--navy);text-align:center}
.d2 .bignum{color:var(--leaf)}
.objs{display:grid;gap:.5rem}
.objs>div{display:grid;grid-template-columns:2rem 1fr;gap:.5rem;align-items:start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.5rem .7rem}
.objs>div>span:first-child{width:1.7rem;height:1.7rem;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-weight:700;font-size:.85rem}
.d2 .objs>div>span:first-child{background:var(--leaf)}
/* motion: visible at rest */
@keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
.slide.on .rv{animation:rise .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0) * 90ms + 80ms)}
/* chrome */
#bar{position:fixed;top:0;left:0;height:4px;background:linear-gradient(90deg,var(--blue),var(--orange));width:0;z-index:30;transition:width .35s}
#dots{position:fixed;right:10px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:7px;z-index:20}
#dots button{width:11px;height:11px;border-radius:50%;border:2px solid var(--navy);background:transparent;padding:0;cursor:pointer;opacity:.45}
#dots button.cur{background:var(--orange);border-color:var(--orange);opacity:1;transform:scale(1.35)}
#ctl{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;gap:.25rem;background:rgba(27,58,92,.94);color:#fff;border-radius:999px;padding:.3rem .45rem;z-index:25;box-shadow:0 6px 20px rgba(0,0,0,.18);font-size:.85rem}
#ctl button,#ctl a{background:none;border:0;color:#fff;cursor:pointer;border-radius:999px;padding:.35rem .6rem;font-size:.95rem;line-height:1;text-decoration:none}
#ctl button:hover,#ctl a:hover,#ctl button[aria-pressed="true"]{background:rgba(255,255,255,.18)}
#ctl .pos{font-variant-numeric:tabular-nums;min-width:3.6rem;text-align:center;opacity:.9}
#sbar{position:fixed;top:4px;left:0;right:0;z-index:24;display:flex;align-items:center;gap:.6rem;padding:.45rem clamp(16px,4vw,4.5rem);background:rgba(251,249,245,.94);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);font-size:.8rem}
#sbar a{text-decoration:none;font-weight:700;color:var(--navy);white-space:nowrap}
#sbar .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--kmh);color:var(--grey)}
#sbar .nx{background:var(--navy);color:#fff;border-radius:999px;padding:.15rem .7rem}
#notes{position:fixed;left:0;right:0;bottom:0;max-height:38vh;overflow:auto;background:#FFFDF6;border-top:3px solid var(--yellow);padding:1rem clamp(16px,4vw,4.5rem) calc(4rem + env(safe-area-inset-bottom,0px));z-index:22;box-shadow:0 -8px 24px rgba(0,0,0,.12);font-size:.95rem;transform:translateY(105%);transition:transform .35s}
#notes.show{transform:none}
#notes h4{margin:0 0 .3rem;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:var(--orange)}
#notes p{margin:0;max-width:70ch}
aside.notes{display:none}
#ov{position:fixed;inset:0;background:rgba(251,249,245,.97);z-index:40;overflow:auto;padding:2rem clamp(16px,4vw,4rem)}
#ov[hidden]{display:none}
#ov h3{margin:0 0 1rem;color:var(--navy);font-family:var(--kmh)}
#ov .list{display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:.7rem}
#ov .list button{text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;padding:.7rem .9rem;cursor:pointer;font-family:var(--kmh);line-height:1.45}
#ov .list b{color:var(--orange);font-family:var(--f);margin-right:.4rem}
#help{position:fixed;left:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));font-size:.7rem;color:var(--grey);z-index:19}
.endnav{display:flex;flex-wrap:wrap;gap:.8rem}
.endnav a{display:inline-block;padding:.75rem 1.4rem;background:var(--blue);color:#fff;text-decoration:none;border-radius:10px;font-family:var(--kmh);font-weight:700}
.endnav a.alt{background:var(--navy)}
.endnav a.tool{background:var(--orange)}
@media (max-width:700px){
  #deck{height:auto;overflow:visible;scroll-snap-type:none}
  .slide{min-height:auto;padding-top:5rem}
  #dots,#help{display:none}
  h2{font-size:1.55rem}
  .title-s h1{font-size:1.8rem}
  .bignum{font-size:4.5rem}
}

/* ---------- plain pages (index, forms, toolkit) ---------- */
.pad{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.title-section{background:#fff;padding-block:2.4rem;text-align:center;border-bottom:3px solid var(--orange)}
.title-section .org{font-family:var(--kmh);color:var(--leaf);font-weight:700;font-size:.95rem;margin:0 0 .6rem}
.title-section h1{margin:0 auto;max-width:60rem;font-size:clamp(1.5rem,3vw,2.3rem);line-height:1.55}
.title-section .en{display:block;margin-top:.9rem;font-size:clamp(.85rem,1.4vw,1.05rem);font-weight:600;letter-spacing:.05em}
.info-bar{background:#fff;border-bottom:3px solid var(--orange);padding-block:1.4rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));gap:1.4rem;text-align:center}
.info-item{display:flex;flex-direction:column;gap:.3rem;align-items:center}
.info-item .icon{font-size:2rem}
.info-item .label{font-size:.75rem;color:var(--grey);font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.info-item .value{font-family:var(--kmh);font-size:1.25rem;font-weight:700;color:var(--navy)}
.qtabs{max-width:1320px;margin:1.5rem auto 0;display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center}
.qtab{display:flex;align-items:center;gap:.45rem;padding:.5rem .85rem;border-radius:999px;border:2px solid var(--navy);background:var(--paper);color:var(--navy);text-decoration:none;font-weight:700}
.qtab .i{font-size:1.25rem}
.qtab .km{font-family:var(--kmh);font-size:.98rem;line-height:1.2}
.qtab .en{display:block;font-size:.7rem;font-weight:600}
.qtab:hover{background:var(--navy);color:#fff}
.qtab:hover .en{color:#D9E6F2}
.qtab.pre{border-color:var(--amber)} .qtab.post{border-color:var(--blue)} .qtab.tna{border-color:var(--green)} .qtab.dash{border-style:dashed}
.qtabs-note{text-align:center;color:var(--grey);font-size:.85rem;margin:.6rem 1rem 0}
.container{width:100%;max-width:88rem;margin:0 auto}
main.home{padding-block:1rem 3rem}
.section-header{margin:2.8rem 0 1.8rem;text-align:center}
.section-header h2{font-size:clamp(1.6rem,2.8vw,2.4rem)}
.section-header .en{display:block;margin-top:.4rem}
.dayhead{display:flex;align-items:center;gap:.8rem;margin:2rem 0 1.1rem}
.dayhead .dp{background:var(--orange);color:#fff;border-radius:999px;padding:.2rem 1rem;font-weight:700;font-family:var(--kmh);white-space:nowrap}
.dayhead .dp.two{background:var(--leaf)}
.dayhead .t{font-family:var(--kmh);font-weight:700;color:var(--navy);font-size:1.1rem}
.dayhead .rule{flex:1;height:2px;background:var(--line)}
.sessions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1.6rem}
.session-card{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 2px 8px rgba(27,58,92,.08);transition:transform .3s,box-shadow .3s,border-color .3s;text-decoration:none;color:inherit;display:flex;flex-direction:column}
.session-card:hover{border-color:var(--blue);transform:translateY(-6px);box-shadow:0 16px 36px rgba(0,114,178,.16)}
.session-card .header{background:linear-gradient(135deg,var(--navy) 0%,#23517f 100%);color:#fff;padding:1.4rem 1.5rem;display:flex;align-items:center;gap:1.2rem}
.session-card.two .header{background:linear-gradient(135deg,#0B4A37 0%,var(--leaf) 100%)}
.session-card .number{font-size:2.8rem;font-weight:900;line-height:1;min-width:4.4rem;text-align:center;background:rgba(255,255,255,.15);border-radius:12px;padding:.7rem .5rem}
.session-card .title{font-family:var(--kmh);font-size:1.25rem;font-weight:700;line-height:1.45;margin:0 0 .25rem}
.session-card .subtitle{font-size:.88rem;color:#D5E3F0;font-style:italic;margin:0}
.session-card .body{padding:1.3rem 1.5rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.session-card .description{margin:0;font-size:1rem;line-height:1.6}
.session-card .meta{font-size:.92rem;color:var(--grey);margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line)}
.session-card .btn{padding:.75rem 1.2rem;background:var(--blue);color:#fff;border-radius:10px;font-family:var(--kmh);font-weight:700;text-align:center}
.session-card.two .btn{background:var(--leaf)}
.session-card.toolkit{background:linear-gradient(135deg,#F6EFE6 0%,#FFF9F0 100%);border:2px solid var(--orange)}
.session-card.toolkit .header{background:linear-gradient(135deg,var(--orange) 0%,#D67500 100%)}
.session-card.toolkit .btn{background:var(--orange)}
.journey3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,18rem),1fr));gap:1.2rem}
.journey3 .j{background:#fff;border:1px solid var(--line);border-top:6px solid var(--k);border-radius:16px;padding:1.1rem 1.3rem}
.journey3 .j h3{margin:.2rem 0;font-family:var(--kmh);color:var(--navy)}
.journey3 .j .tag{font-size:.8rem;font-weight:700;color:var(--k);letter-spacing:.05em}
footer.site{padding:2.6rem 1rem;text-align:center;border-top:2px solid var(--line);color:var(--grey);font-size:.95rem;margin-top:3rem}
footer.site p{margin:.4rem 0}
footer.site .contact{font-weight:700;color:var(--blue)}
.demo-strip{background:var(--navy);color:#D5E3F0;font-size:.78rem;text-align:center;padding:.35rem 1rem}
.topnav{position:sticky;top:0;z-index:10;background:var(--navy);color:#fff;display:flex;align-items:center;gap:.8rem;padding-block:.6rem}
.topnav a{color:#fff;text-decoration:none;font-weight:700;background:rgba(255,255,255,.14);border-radius:8px;padding:.35rem .8rem;white-space:nowrap}
.topnav .tt{font-family:var(--kmh);font-weight:700;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.panel{max-width:58rem;margin:1.6rem auto;background:#fff;border:1px solid var(--line);border-radius:18px;padding:1.6rem clamp(1rem,3vw,2rem)}
.panel h2{margin:0 0 .2rem}
label.f{display:block;font-weight:700;font-family:var(--kmh);margin:1rem 0 .3rem;color:var(--navy)}
input[type=text],input[type=number],textarea,select{width:100%;font:inherit;padding:.6rem .75rem;border:1.5px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink)}
textarea{min-height:4.5rem;resize:vertical}
.qq{border-top:1px solid var(--line);padding-block:.9rem}
.qq p{margin:0 0 .4rem;font-weight:700}
.opt{display:flex;gap:.55rem;align-items:flex-start;padding:.35rem .5rem;border-radius:8px;cursor:pointer}
.opt:hover{background:var(--light)}
.opt.right{background:var(--mint);color:#0B5D3F;font-weight:700}
.opt.wrong{background:#FBE9E0;color:#9A3B0C}
.go{background:var(--blue);color:#fff;border:0;border-radius:10px;padding:.75rem 1.4rem;font-weight:700;cursor:pointer;font-family:var(--kmh);margin-top:1rem}
.go.ghost{background:#fff;color:var(--navy);border:2px solid var(--navy)}
.result{margin-top:1rem;padding:1rem;border-radius:12px;background:var(--light);font-weight:700;color:var(--navy)}
.result[hidden]{display:none}
.out{margin-top:.9rem;padding:.9rem 1rem;border-radius:12px;background:var(--mint);color:#0B3D2C;font-weight:600;font-family:var(--kmh);line-height:1.7}
.checks label{display:flex;gap:.55rem;align-items:flex-start;margin:.35rem 0;cursor:pointer}
.meter{height:10px;border-radius:5px;background:var(--line);overflow:hidden;margin-top:.7rem}
.meter i{display:block;height:100%;background:var(--green);width:0;transition:width .2s}
.tools{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,24rem),1fr));gap:1.3rem;max-width:80rem;margin:1.6rem auto}
.tool{background:#fff;border:1px solid var(--line);border-top:6px solid var(--orange);border-radius:16px;padding:1.2rem 1.3rem;min-width:0;scroll-margin-top:4rem}
.tool h3{margin:0;font-family:var(--kmh);color:var(--navy)}
.tool .tag{font-size:.8rem;font-weight:700;color:var(--orange)}
.rating{display:flex;gap:.4rem;flex-wrap:wrap}
.rating label{display:flex;gap:.3rem;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.25rem .7rem;cursor:pointer}
.profile{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;align-items:start}
@media (max-width:640px){.profile{grid-template-columns:1fr}}
.avatar{width:7rem;height:7rem;border-radius:50%;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:2.6rem;font-weight:700}

/* ================= v3: bigger text, simple visuals, motion, mobile ================= */
:root{font-size:clamp(17px, 1.05vw + 7px, 27px)}
h2{font-size:2.5rem}
.sub{font-size:1.25rem}
.en{font-size:.88em}
.kick{font-size:.9rem}
.kick .minic{width:2.6rem;height:2.6rem;flex:none}
.card h3{font-size:1.45rem}.card p{font-size:1.05rem}
.callout,.act{font-size:1.15rem}
.callout b.kmh,.act b.kmh{font-size:1.2rem}
ul.clean li{font-size:1.15rem}
.tbl{font-size:1.1rem}.tbl td,.tbl th{padding:.7rem .9rem}
.title-s h1{font-size:3rem}
.objs>div{font-size:1.1rem}
.quote{font-size:2rem}
.center{display:flex;justify-content:center}
.bi{font-size:3.2rem;line-height:1;display:block}
/* big tiles */
.bigs{gap:1.2rem}
.bigtile{background:#fff;border:2px solid var(--line);border-bottom:8px solid var(--k);border-radius:20px;padding:1.4rem 1.1rem;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.45rem;box-shadow:0 6px 18px rgba(27,58,92,.08);transition:transform .25s}
.bigtile:hover{transform:translateY(-6px) scale(1.02)}
.bigtile b{font-size:1.5rem;color:var(--navy);line-height:1.4}
.bigtile .en{font-size:1.05rem}
/* C */
.cwrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:1.5rem;align-items:center}
.bigc{width:100%;max-width:30rem;display:block;margin:auto;overflow:visible}
.bigc text{font-family:"Source Sans 3",sans-serif}
.slide.on .carc{stroke-dasharray:100;animation:drawc 1s ease both;animation-delay:calc(var(--i)*.22s)}
.slide.on .cseg text{animation:pop .5s both;animation-delay:calc(var(--i)*.22s + .5s)}
@keyframes drawc{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes pop{0%{opacity:0;transform:scale(.6)}70%{transform:scale(1.08)}100%{opacity:1;transform:none}}
@keyframes slideR{from{opacity:0;transform:translateX(-30px)}to{opacity:1;transform:none}}
.slide.on .pp{animation:pop .6s cubic-bezier(.2,.7,.2,1) both;animation-delay:calc(var(--i,0)*120ms + 150ms)}
.slide.on .sr{animation:slideR .6s ease both;animation-delay:calc(var(--i,0)*160ms + 120ms)}
.cseg{transform-box:fill-box;transform-origin:center}
.clist{display:grid;gap:.6rem}
.cl{display:grid;grid-template-columns:2.6rem 1fr;gap:.7rem;align-items:center;background:#fff;border:2px solid var(--line);border-left:8px solid var(--k);border-radius:14px;padding:.6rem .8rem}
.cl .cn{width:2.4rem;height:2.4rem;border-radius:50%;background:var(--k);color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.2rem}
.cl b{font-size:1.25rem;color:var(--navy)}
/* ladder IEC→SBC */
.ladder{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:end}
.rung{background:#fff;border:2px solid var(--line);border-top:10px solid var(--k);border-radius:18px;padding:1rem;text-align:center;display:flex;flex-direction:column;gap:.35rem;align-items:center}
.rung:nth-child(1){min-height:13rem}.rung:nth-child(2){min-height:15rem}.rung:nth-child(3){min-height:17rem}.rung:nth-child(4){min-height:19rem}
.rung b{font-size:1.25rem;color:var(--navy)}
.rung .ex{margin-top:auto;background:var(--sand);border-radius:10px;padding:.35rem .6rem;font-size:1rem}
/* design thinking row */
.dtrow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem}
.dt{position:relative;background:var(--k);color:#fff;border-radius:50% 50% 18px 18px;padding:1.2rem .6rem 1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.dt b{font-size:1.3rem}.dt .en{color:#fff;opacity:.9}
.dt .cstep{position:absolute;top:-.6rem;right:-.3rem;background:#fff;color:var(--k);border:2px solid var(--k);border-radius:999px;padding:0 .5rem;font-weight:800;font-size:.85rem}
/* rings */
.rings{display:flex;justify-content:center}.rings svg{width:100%;max-width:27rem}
/* persona */
.persona{display:grid;grid-template-columns:auto 1fr;gap:1.4rem;align-items:start;background:#fff;border:2px solid var(--line);border-radius:22px;padding:1.4rem}
.pav{font-size:6rem;line-height:1;background:var(--sand);border-radius:50%;width:9rem;height:9rem;display:grid;place-items:center}
.persona h3{margin:0;font-size:1.8rem;color:var(--navy)}
.pq{background:var(--bg);border-radius:12px;padding:.6rem .8rem;display:flex;flex-direction:column;gap:.15rem}
.pq b{font-size:1.15rem;color:var(--orange)}.pq .km{font-size:1.15rem}
/* whys / steps */
.whys{display:grid;gap:.6rem}
.why{display:grid;grid-template-columns:3rem 1fr;gap:.8rem;align-items:center;background:#fff;border:2px solid var(--line);border-radius:14px;padding:.6rem .9rem;font-size:1.2rem}
.why:last-child{background:var(--mint);border-color:var(--green)}
.why .wn{width:2.8rem;height:2.8rem;border-radius:50%;background:var(--orange);color:#fff;display:grid;place-items:center;font-weight:800;font-family:var(--kmh)}
/* journey */
.journey{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.8rem;position:relative}
.jst{background:#fff;border:2px solid var(--line);border-top:10px solid var(--k);border-radius:18px;padding:1rem .6rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.jst b{font-size:1.3rem;color:var(--navy)}
.jst .jb{margin-top:.4rem;background:#FBE9E0;color:#9A3B0C;border-radius:10px;padding:.3rem .5rem;font-size:1rem}
/* matrix */
.matrix{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:0 0 1.8rem 2.2rem;max-width:48rem;margin:0 auto;width:100%}
.mq{border-radius:18px;padding:1.1rem;display:flex;flex-direction:column;gap:.3rem;font-size:2rem;min-height:9rem}
.mq b{font-size:1.3rem;color:var(--navy)}.mq .en{font-size:1rem}
.mq.g{background:#D7F0E3;border:3px solid var(--green)}.mq.a{background:#FFF0D1}.mq.b{background:var(--light)}.mq.x{background:#EEE}
.matrix .ax{position:absolute;font-weight:700;color:var(--grey);font-family:var(--kmh)}
.matrix .ay{left:-1.2rem;top:45%;transform:rotate(-90deg)}.matrix .axx{bottom:0;left:45%}
/* 7C */
.sevenc{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.6rem}
.c7{background:#fff;border:2px solid var(--line);border-radius:16px;padding:.9rem .4rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.c7 b{font-size:1.15rem;color:var(--navy)}.c7 .bi{font-size:2.4rem}
/* weeks */
.weeks{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.wk{background:#fff;border:2px solid var(--line);border-top:10px solid var(--k);border-radius:18px;padding:1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.wk .wn2{font-family:var(--kmh);font-weight:700;color:var(--k)}.wk b{font-size:1.25rem;color:var(--navy)}
/* stairs */
.stairs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;align-items:start}
.stp{background:var(--k);color:#fff;border-radius:18px;padding:1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.stp b{font-size:1.3rem}.stp .en{color:#fff}
/* chainbig */
.chainbig{display:flex;align-items:stretch;gap:.6rem;flex-wrap:wrap}
.cb{flex:1 1 10rem;background:#fff;border:2px solid var(--line);border-bottom:8px solid var(--k);border-radius:18px;padding:1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.cb b{font-size:1.3rem;color:var(--navy)}
.chainbig .arr{display:grid;place-items:center;font-size:2rem;color:var(--orange)}
/* org */
.org{display:flex;flex-direction:column;align-items:center;gap:1rem}
.orgtop,.orgbox{background:#fff;border:2px solid var(--line);border-top:10px solid var(--k);border-radius:18px;padding:.9rem 1.1rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.25rem}
.orgtop{min-width:16rem}.orgtop b,.orgbox b{font-size:1.3rem;color:var(--navy)}
.orgrow{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;width:100%;position:relative;padding-top:1rem;border-top:3px dashed var(--line)}
/* gantt */
.gantt{overflow-x:auto}
.gt{width:100%;border-collapse:separate;border-spacing:0 .5rem;font-size:1.15rem}
.gt th{color:var(--navy);font-family:var(--kmh);text-align:center;padding:.3rem}
.gt td{background:#fff;padding:.6rem .7rem;vertical-align:middle}
.gt td:first-child{border-radius:12px 0 0 12px;min-width:12rem}.gt td:last-child{border-radius:0 12px 12px 0}
.gb{display:block;height:1.4rem;border-radius:999px;background:var(--k)}
.slide.on .gb{animation:grow .8s ease both}@keyframes grow{from{transform:scaleX(0);transform-origin:left}to{transform:none}}
/* bars */
.barchart{display:flex;align-items:flex-end;justify-content:center;gap:1.6rem;height:16rem;padding:0 1rem;border-bottom:3px solid var(--line);max-width:36rem;margin:0 auto}
.bc{display:flex;flex-direction:column;align-items:center;gap:.4rem;height:100%;justify-content:flex-end;flex:1}
.bv{width:100%;max-width:5rem;height:var(--h);min-height:.4rem;background:linear-gradient(180deg,var(--green),var(--leaf));border-radius:10px 10px 0 0;position:relative}
.bv b{position:absolute;top:-1.8rem;left:0;right:0;text-align:center;font-size:1.4rem;color:var(--navy)}
.slide.on .bv{animation:rise2 1s ease both}@keyframes rise2{from{height:0}}
.bl{font-family:var(--kmh);font-weight:700;color:var(--grey)}
/* pitch */
.pitch{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.9rem}
.pt{background:var(--k);color:#fff;border-radius:20px;padding:1.2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.3rem}
.pt b{font-size:1.4rem}.pt .en{color:#fff}
.hero-art svg{width:100%;max-width:22rem;display:block;margin:auto}
/* ---------------- mobile ---------------- */
@media (max-width:900px){
  .cwrap{grid-template-columns:1fr}
  .ladder,.weeks,.pitch,.stairs,.orgrow{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rung{min-height:auto!important}.stp{margin-top:0!important}
  .dtrow,.journey{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sevenc{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:700px){
  :root{font-size:16px}
  h2{font-size:1.75rem}.sub{font-size:1.05rem}
  .title-s h1{font-size:1.9rem}
  .quote{font-size:1.4rem}
  .bi{font-size:2.6rem}
  .bigtile b,.cb b,.jst b,.rung b{font-size:1.2rem}
  .persona{grid-template-columns:1fr;justify-items:center}.pav{width:7rem;height:7rem;font-size:4.5rem}
  .matrix{padding-left:1.6rem}.mq{min-height:7rem;font-size:1.6rem}
  .chainbig .arr{transform:rotate(90deg);width:100%}
  .chainbig .cb{flex-basis:100%}
  #ctl{font-size:.8rem}#ctl button,#ctl a{padding:.35rem .45rem}
  #sbar .t{display:none}
}
@media (max-width:480px){
  .ladder,.weeks,.pitch,.stairs,.orgrow,.dtrow,.journey{grid-template-columns:1fr 1fr}
  .sevenc{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid.g2,.grid.g3,.grid.g4{grid-template-columns:1fr}
  .bigs.g4,.bigs.g3{grid-template-columns:1fr 1fr}
}
.bigc{max-height:56vh}
.barchart{height:13rem}
@media (max-width:700px){.bigc{max-height:none;max-width:20rem}}

/* ================= language switch ================= */
#langsw{position:fixed;top:calc(env(safe-area-inset-top,0px) + 3.1rem);right:max(10px,env(safe-area-inset-right,0px));z-index:35;display:flex;background:#fff;border:2px solid var(--navy);border-radius:999px;overflow:hidden;box-shadow:0 4px 12px rgba(0,0,0,.12);font-size:.8rem}
#langsw button{border:0;background:#fff;color:var(--navy);padding:.3rem .7rem;cursor:pointer;font-weight:700;font-family:var(--kmh)}
#langsw button[aria-pressed="true"]{background:var(--navy);color:#fff}
body:not(:has(#deck)) #langsw{top:calc(env(safe-area-inset-top,0px) + 2.4rem)}
html[data-lang="km"] .le:not(.solo), html[data-lang="km"] .lsep{display:none}
html[data-lang="en"] .lk:not(.solo), html[data-lang="en"] .lsep{display:none}
/* English quieter everywhere (Khmer dominant) */
.en{font-size:.74em;color:#7a7a7a;font-weight:400}
.sub{font-size:1rem;opacity:.85}
html[data-lang="both"] .le{opacity:.9}
/* when English only: promote English text */
html[data-lang="en"] .en{font-size:1em;color:var(--ink)}
html[data-lang="en"] .sub{font-size:2.3rem;font-style:normal;font-weight:700;color:var(--navy);opacity:1;margin:0;line-height:1.3}
html[data-lang="en"] .d2 .sub{color:var(--navy)}
html[data-lang="en"] .title-s .en1{font-size:2.4rem;color:var(--navy);font-weight:700}
html[data-lang="en"] .bigtile .en,html[data-lang="en"] .cb .en,html[data-lang="en"] .jst .en,html[data-lang="en"] .rung .en,html[data-lang="en"] .wk .en,html[data-lang="en"] .c7 .en{font-size:1.15rem;font-weight:600;color:var(--navy)}
html[data-lang="en"] .dt .en,html[data-lang="en"] .stp .en,html[data-lang="en"] .pt .en{font-size:1.15rem;font-weight:700;color:#fff}
@media (max-width:700px){html[data-lang="en"] .sub{font-size:1.6rem}#langsw{font-size:.72rem}}
html[data-lang="en"] .callout b.kmh + br, html[data-lang="en"] .act b.kmh + br{display:none}
/* pagoda illustration (user-supplied, © pinnerus) */
.pgi{height:1.3em;width:auto;vertical-align:-.3em;display:inline-block}
.bi .pgi,.ic .pgi{height:1.1em;vertical-align:-.15em}
.pagoda-art{display:block;width:100%;max-width:30rem;height:auto;margin:auto;filter:drop-shadow(0 14px 18px rgba(27,58,92,.18))}
.slide.on .pagoda-art{animation:pfloat 1s cubic-bezier(.2,.7,.2,1) both}
@keyframes pfloat{from{opacity:0;transform:translateY(24px) scale(.96)}to{opacity:1;transform:none}}
.pcredit{display:block;text-align:right;font-size:.62rem;color:#9a9a9a;margin-top:.2rem}
/* language cleanup */
html[data-lang="km"] .src{display:none}
#sbar .tsep{opacity:.45;margin:0 .35rem}
#help .lsep{margin:0 .3rem}
html[data-lang="both"] svg text.le{display:none}
.kd{display:block}
html[data-lang="en"] .lsep.les{display:inline}
html[data-lang="km"] .lsep.lks{display:inline}
html[data-lang="km"] .lsep.les, html[data-lang="en"] .lsep.lks{display:none}
/* draggable toolbar */
#ctl .grip{cursor:grab;touch-action:none;user-select:none;padding:.35rem .35rem .35rem .55rem;opacity:.7;font-size:1.05rem;line-height:1}
#ctl .grip:hover{opacity:1}
#ctl{touch-action:none}
#ctl.dragging{cursor:grabbing;box-shadow:0 10px 28px rgba(0,0,0,.3);opacity:.96}
#ctl.dragging .grip{cursor:grabbing}
/* smaller toolbar */
#ctl{font-size:.78rem;padding:.18rem .3rem;gap:.1rem}
#ctl button,#ctl a{padding:.28rem .45rem;font-size:.82rem}
#ctl .pos{min-width:2.8rem;font-size:.78rem}
#ctl .grip{font-size:.9rem;padding:.28rem .25rem .28rem .45rem}
@media (max-width:700px){#ctl{font-size:.72rem}#ctl button,#ctl a{padding:.28rem .38rem}}
/* keyboard help: show briefly on load, then fade away so it never covers slide text */
#help{background:rgba(251,249,245,.92);padding:.15rem .5rem;border-radius:8px;animation:helpfade 1s ease 6s forwards;pointer-events:none}
@keyframes helpfade{to{opacity:0;visibility:hidden}}
/* journey action buttons, profile, forms */
.jbtns{display:flex;flex-direction:column;gap:.5rem;margin-top:.9rem}
.jb{display:flex;gap:.5rem;align-items:center;padding:.6rem .9rem;border-radius:12px;border:1.5px solid var(--k,var(--navy));color:var(--navy);text-decoration:none;font-weight:700;font-family:var(--kmh);background:#fff;line-height:1.4}
.jb:hover{background:var(--sand)}
.journey3 .j .kd{margin:.4rem 0 0;line-height:1.6}
.steplbl{display:inline-block;background:var(--amber);color:#fff;border-radius:999px;padding:.2rem .8rem;font-weight:700;font-size:.9rem;margin:0 0 .6rem}
.nextev{margin-top:1rem;padding:1rem;border-radius:12px;background:var(--mint);text-align:center}
.nextev .go{display:inline-block;text-decoration:none;margin-top:.4rem}
.savestate{margin:.6rem 0 0;font-size:.9rem}.savestate.ok{color:var(--leaf)}.savestate.warn{color:#B42318}
.avatar.photo{object-fit:cover;width:8.5rem;height:8.5rem;border:4px solid #fff;box-shadow:0 6px 18px rgba(0,0,0,.12)}
.chips{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.8rem}
.chips>span,.chips>a{border:1px solid var(--line);border-radius:999px;padding:.3rem .8rem;background:#fff;font-size:.92rem;color:var(--navy);text-decoration:none}
.chips.contact a{border-color:var(--navy);font-weight:600}
.grid.g1{grid-template-columns:1fr;max-width:34rem;margin:auto}
.reflink{font-size:.85rem;opacity:.85;margin-top:.4rem}
