:root{--green:#39B061;--deep:#16873C;--olive:#729541;--orange:#F3893A;--teal:#41B6B6;--soil:#1A1F17;--char:#3B3B3B;--paper:#F7F5EF;--card:#fff;--line:#dfe3d6;--muted:#5d6b58}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--char);font:16px/1.6 "Open Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
h1,h2,h3{font-family:Roboto,"Open Sans",system-ui,sans-serif;color:var(--soil);line-height:1.2;margin:0 0 .5em}
a{color:var(--deep)}
.wrap{max-width:1040px;margin:0 auto;padding:0 16px}
.top{background:var(--soil);color:#fff}
.top .wrap{display:flex;align-items:center;gap:14px;padding:10px 16px;flex-wrap:wrap}
.top img{background:#fff;border-radius:6px;padding:4px 8px;height:34px}
.top nav{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap}
.top a{color:#fff;text-decoration:none;font-weight:600;font-size:.95rem}
.top a:hover{color:var(--green)}
.band{height:6px;background:linear-gradient(90deg,var(--green) 0 70%,var(--orange) 70% 100%)}
.kick{display:inline-block;color:var(--deep);font-weight:700;letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;border-top:3px solid var(--orange);padding-top:6px;margin-bottom:10px}
.hero{position:relative;color:#fff;background:var(--soil) url(hero.jpg) center/cover;min-height:420px;display:flex;align-items:flex-end}
.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,31,23,.25),rgba(26,31,23,.88))}
.hero .wrap{position:relative;padding:60px 16px 40px}
.hero h1{color:#fff;font-size:clamp(2rem,6vw,3.4rem);margin-bottom:.3em}
.hero p{max-width:620px;font-size:1.1rem}
.hero .kick{color:#fff}
.btn{display:inline-block;background:var(--orange);color:#1a1f17;font-weight:700;border:0;border-radius:999px;padding:12px 22px;text-decoration:none;cursor:pointer;font:inherit;font-weight:700}
.btn.alt{background:transparent;color:#fff;border:2px solid #fff}
.btn.green{background:var(--green);color:#fff}
.btn:hover{filter:brightness(1.07)}
section{padding:44px 0}
.grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.tool{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;text-decoration:none;color:inherit;transition:transform .15s,box-shadow .15s}
.tool:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(26,31,23,.14)}
.tool .img{height:150px;background:var(--deep) center/cover}
.tool .body{padding:16px;flex:1}
.tool h3{font-size:1.2rem}
.tool .go{padding:0 16px 16px;color:var(--deep);font-weight:700}
.tool.soon{opacity:.7;border-style:dashed}
.note{background:#fff7ec;border-left:4px solid var(--orange);padding:10px 14px;border-radius:6px;font-size:.9rem}
footer{background:var(--soil);color:#cfd8c9;padding:26px 0;font-size:.9rem}
footer a{color:var(--green)}
.pill{display:inline-block;background:#e9f5ec;color:var(--deep);border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:700}
/* chat */
.chatbox{max-width:680px;margin:24px auto;background:var(--card);border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:0 6px 24px rgba(26,31,23,.1)}
.chathead{background:var(--deep);color:#fff;padding:14px 18px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.chathead button{background:transparent;border:1px solid #ffffff88;color:#fff;border-radius:999px;padding:3px 12px;cursor:pointer}
.bar{height:5px;background:#e3e8dc}.bar i{display:block;height:100%;width:0;background:var(--orange);transition:width .4s}
.msgs{padding:18px;min-height:340px;max-height:62vh;overflow:auto;display:flex;flex-direction:column;gap:10px}
.m{max-width:88%;padding:10px 14px;border-radius:14px;animation:pop .25s ease}
.m.bot{background:#eef4e8;border-bottom-left-radius:4px}
.m.me{background:var(--green);color:#fff;align-self:flex-end;border-bottom-right-radius:4px}
.m h3{font-size:1.05rem;margin:.2em 0}
.m ul{margin:.3em 0 .3em 1.1em;padding:0}
.opts{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 18px}
.opts button{background:#fff;border:2px solid var(--green);color:var(--deep);border-radius:999px;padding:9px 16px;font:inherit;font-weight:600;cursor:pointer;transition:all .15s}
.opts button:hover{background:var(--green);color:#fff}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
/* timeline */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 4px}
.chips button{background:#fff;border:2px solid var(--line);color:var(--char);border-radius:999px;padding:6px 14px;font:inherit;font-weight:600;cursor:pointer}
.chips button.on{background:var(--deep);border-color:var(--deep);color:#fff}
.tl{position:relative;margin:30px 0;padding-left:0}
.tl:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:4px;margin-left:-2px;background:linear-gradient(var(--green),var(--olive),var(--orange));border-radius:2px}
.ev{position:relative;width:50%;padding:0 34px 26px 0;opacity:0;transform:translateY(20px);transition:all .5s}
.ev.in{opacity:1;transform:none}
.ev.r{margin-left:50%;padding:0 0 26px 34px}
.ev .dot{position:absolute;top:14px;right:-9px;width:18px;height:18px;border-radius:50%;background:var(--green);border:4px solid var(--paper);box-shadow:0 0 0 2px var(--green)}
.ev.r .dot{right:auto;left:-9px}
.ev.k-ppa .dot{background:var(--orange);box-shadow:0 0 0 2px var(--orange)}
.ev.k-course .dot{background:var(--teal);box-shadow:0 0 0 2px var(--teal)}
.ev.k-conv .dot{background:var(--deep);box-shadow:0 0 0 2px var(--deep)}
.ev .c{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px;cursor:pointer;text-align:left}
.ev .c:hover{box-shadow:0 6px 18px rgba(26,31,23,.12)}
.ev .y{font-family:Roboto,sans-serif;font-weight:800;font-size:1.5rem;color:var(--deep)}
.ev .t{font-weight:700;color:var(--soil)}
.ev .d{max-height:0;overflow:hidden;transition:max-height .35s;color:var(--char);font-size:.93rem}
.ev.open .d{max-height:240px;padding-top:8px}
.ev .tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.hide{display:none}
@media(max-width:720px){
 .tl:before{left:14px}
 .ev,.ev.r{width:100%;margin-left:0;padding:0 0 22px 38px}
 .ev .dot,.ev.r .dot{left:5px;right:auto}
}

/* color coding per area */
:root{--c-bert:#729541;--c-conv:#F3893A;--c-course:#41B6B6;--c-ppa:#39B061}
.ev .dot{background:var(--col,var(--green))!important;box-shadow:0 0 0 2px var(--col,var(--green))!important}
.ev.k-bert{--col:var(--c-bert)}.ev.k-conv{--col:var(--c-conv)}.ev.k-course{--col:var(--c-course)}.ev.k-ppa{--col:var(--c-ppa)}
.ev .c{border-left:8px solid var(--col)}
.ev .y{color:var(--col);filter:brightness(.8)}
.ev .tag{color:#fff;background:var(--col);display:inline-block;border-radius:999px;padding:1px 10px;margin-bottom:4px}
.chips button{border-width:2px;border-left-width:10px}
.chips button[data-k=bert]{border-color:var(--c-bert)}.chips button[data-k=conv]{border-color:var(--c-conv)}
.chips button[data-k=course]{border-color:var(--c-course)}.chips button[data-k=ppa]{border-color:var(--c-ppa)}
.chips button.on[data-k=bert]{background:var(--c-bert)}.chips button.on[data-k=conv]{background:var(--c-conv);color:#1a1f17}
.chips button.on[data-k=course]{background:var(--c-course);color:#1a1f17}.chips button.on[data-k=ppa]{background:var(--c-ppa)}
.progs .tool{border-top:6px solid var(--c-ppa)}
.progs .tool.course{border-top-color:var(--c-course)}
.progs .tool .body{padding:14px 16px}.progs h3{font-size:1.1rem}
.progs .tool .img{height:110px}

.top a.cur{color:var(--green);border-bottom:2px solid var(--orange)}
.ev .where{font-size:.9rem;color:var(--muted);margin:2px 0}
.ev.open .d{max-height:1200px}
.ev .poster{display:block;width:100%;max-width:300px;border-radius:8px;margin:10px 0;border:1px solid var(--line)}
.ev .more{display:inline-block;margin-top:4px;font-weight:700}

.ev-links{margin-top:10px;border-top:1px dashed var(--line);padding-top:8px}
.ev-links b{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:2px}
.ev-links a.more{display:block;margin:2px 0;font-weight:600;font-size:.9rem}
