/* KAGE TRADING ACADEMY — Obsidian Gold design system (shared tokens with the sales page) */
:root{--th:"IBM Plex Sans Thai",system-ui,-apple-system,"Noto Sans Thai",sans-serif;--num:"IBM Plex Serif","IBM Plex Sans Thai",serif;--bg:#0B0B0D;--bg2:#121215;--bg3:#17161A;--line:#2A2620;--line2:#3a342a;--gold:#C9A54C;--gold2:#E8D3A0;--goldA:#F4D27A;--goldB:#D9B45B;--ivory:#F3EDE2;--mut:#9C9386;--body:#CFC6B6;--ok:#4fbf8f;--bad:#e2664f;--r:12px}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
body{background:var(--bg);color:var(--ivory);font-family:var(--th);font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh;display:flex;flex-direction:column}
[hidden]{display:none!important}
img,svg{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul,ol{list-style:none}
h1,h2,h3,h4{font-weight:300;line-height:1.3;overflow-wrap:break-word;text-wrap:balance}
h3,h4{font-weight:400}
p,li{overflow-wrap:break-word;text-wrap:pretty}
/* Thai: browser dictionary breaking (no keep-all / break-all), loose punctuation rules */
body{word-break:normal;line-break:loose;overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none}
.n,.big{white-space:nowrap}
picture{display:block}
picture img,.fig img,.chart img{display:block;width:100%;height:auto;max-width:100%}
.n{font-family:var(--num);font-variant-numeric:lining-nums tabular-nums;font-weight:500}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 20px}
main.wrap{flex:1}
.skip{position:absolute;left:-999px;top:0}.skip:focus{left:12px;top:12px;z-index:99;background:var(--gold);color:#000;padding:8px 12px}
.loading{padding:80px 0;color:var(--mut);text-align:center}
/* header */
.top{position:sticky;top:0;z-index:30;background:rgba(11,11,13,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.top .bar{display:flex;align-items:center;justify-content:space-between;gap:14px;height:64px}
.logo{display:flex;align-items:center;gap:11px;min-width:0}
.logo .mk{width:34px;height:34px;flex:none;border:1px solid var(--gold);display:grid;place-items:center;color:var(--gold);font-family:"Noto Serif JP",serif;font-size:18px;line-height:1}
.logo .lt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.logo .lt b{font-family:"Cormorant Garamond",var(--th);letter-spacing:.28em;font-size:14px;color:var(--gold2);font-weight:600;white-space:nowrap}
.logo .lt b em{font-style:normal;color:var(--gold);font-weight:700}
.logo .lt small{font-size:10.5px;letter-spacing:.32em;color:var(--mut);white-space:nowrap}
.top nav{display:flex;gap:6px;align-items:center}
.top nav a{font-size:14px;color:var(--body);padding:8px 10px;border-radius:8px;white-space:nowrap}
.top nav a:hover,.top nav a[aria-current]{color:var(--gold2)}
.top nav .hide-m{display:none}
.sample-banner{background:#2a2110;color:var(--goldA);font-size:13px;text-align:center;padding:6px 14px;border-bottom:1px solid #4a3a18;line-height:1.5}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-align:center;border-radius:var(--r);font-weight:600;line-height:1.3;transition:transform .15s,filter .15s,border-color .15s,background .15s}
.btn-gold{background:linear-gradient(180deg,var(--goldA),var(--goldB));color:#1A1206;font-weight:700;font-size:18px;min-height:56px;padding:12px 28px;border:1px solid rgba(255,232,170,.6);box-shadow:inset 0 1px 0 rgba(255,250,230,.6),0 8px 22px rgba(0,0,0,.45)}
.btn-gold:hover{transform:translateY(-2px);filter:brightness(1.04)}
.btn-line{min-height:50px;padding:10px 20px;border:1px solid rgba(201,165,76,.45);color:var(--ivory);background:rgba(255,255,255,.02);font-size:16px;font-weight:500}
.btn-line:hover{border-color:var(--gold);background:rgba(201,165,76,.08);color:var(--gold2)}
.btn-sm{min-height:42px;padding:8px 16px;font-size:15px}
.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none!important}
.btn-done{background:rgba(79,191,143,.1);border-color:rgba(79,191,143,.55);color:#bfead6}
/* generic */
.kicker{display:block;color:var(--gold);font-size:14px;letter-spacing:.08em;font-weight:500;margin-bottom:8px}
.sec{padding:56px 0 0}
.sec>h2{font-size:28px;margin-bottom:8px}
.sec>.sub{color:var(--mut);margin-bottom:24px}
.card{background:var(--bg2);border:1px solid var(--line);border-radius:16px}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:13px;line-height:1.4;padding:3px 10px;border-radius:999px;border:1px solid var(--line2);color:var(--body);white-space:nowrap}
.tag.ok{border-color:rgba(79,191,143,.5);color:#9fe0c3}
.tag.gold{border-color:rgba(201,165,76,.55);color:var(--gold2)}
.tag.sim{border-color:rgba(244,210,122,.55);color:var(--goldA);background:rgba(20,16,8,.85)}
.prog{height:8px;border-radius:99px;background:#221f1a;overflow:hidden}
.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--goldB),var(--goldA));border-radius:99px;transition:width .4s}
/* home hero */
.hero{padding:56px 0 8px;display:grid;gap:30px}
.hero h1{font-size:clamp(34px,8.6vw,60px);font-weight:300;letter-spacing:.01em}
.hero h1 .g{display:block;font-family:"Cormorant Garamond",var(--th);font-weight:600;letter-spacing:.06em;background:linear-gradient(180deg,#FBE3A0,#C9A54C);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:clamp(38px,10vw,72px);line-height:1.05}
.hero .tl{color:var(--body);font-size:18px;margin-top:14px;max-width:560px}
.hero .stats{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.hero .cta{display:flex;flex-direction:column;gap:12px;margin-top:26px;max-width:420px}
.pcard{padding:24px}
.pcard h3{font-size:18px;margin-bottom:4px}
.pcard .pct{font-size:44px;color:var(--goldA);line-height:1.1}
.pcard .meta{color:var(--mut);font-size:14px;margin:6px 0 14px}
.pcard .rows{margin-top:16px;display:grid;gap:8px;font-size:15px;color:var(--body)}
.pcard .rows div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:8px}
.linkbtn{color:var(--mut);font-size:13px;text-decoration:underline;text-underline-offset:3px;margin-top:14px}
.linkbtn:hover{color:var(--gold2)}
/* overview */
.ov{display:grid;gap:12px}
.ov .card{padding:20px}
.ov b{display:block;font-size:30px;color:var(--gold2);line-height:1.2}
.ov span{color:var(--mut);font-size:14px}
/* lesson cards */
.lgrid{display:grid;gap:14px}
.lc{display:flex;flex-direction:column;padding:22px;min-height:100%;transition:border-color .15s,transform .15s}
.lc:hover{border-color:rgba(201,165,76,.55);transform:translateY(-2px)}
.lc .no{font-family:var(--num);font-size:40px;color:var(--gold);line-height:1}
.lc .hd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.lc h3{font-size:20px;margin-top:14px}
.lc .en{color:var(--mut);font-size:14px;font-family:var(--num);letter-spacing:.02em}
.lc p{color:var(--body);font-size:15px;margin-top:10px;flex:1}
.lc .ft{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
/* roadmap */
.road{display:grid;gap:0;counter-reset:s;position:relative}
.road li{display:flex;gap:16px;align-items:flex-start;padding:0 0 18px;position:relative}
.road li:before{content:"";position:absolute;left:21px;top:44px;bottom:0;width:1px;background:var(--line2)}
.road li:last-child:before{display:none}
.road .dot{width:44px;height:44px;flex:none;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;font-family:var(--num);color:var(--gold2);font-size:18px;background:var(--bg)}
.road li.done .dot{background:linear-gradient(180deg,var(--goldA),var(--goldB));color:#1A1206;border-color:transparent}
.road .tx{padding-top:9px}
.road .tx b{font-weight:500}
.road .tx small{display:block;color:var(--mut);font-size:13px}
/* final + ebook cards */
.fcard{padding:26px;display:grid;gap:14px}
.fcard h3{font-size:24px}
.ebook{padding:26px;display:grid;gap:18px;border-color:rgba(201,165,76,.5);background:radial-gradient(120% 140% at 100% 0%,rgba(201,165,76,.13),transparent 55%),var(--bg2)}
.ebook h3{font-size:24px;color:var(--gold2)}
.ebook ul{display:grid;gap:6px;color:var(--body)}
.ebook li{padding-left:22px;position:relative}
.ebook li:before{content:"";position:absolute;left:2px;top:.7em;width:9px;height:9px;border:1px solid var(--gold);transform:rotate(45deg)}
.ebook .price{font-size:15px;color:var(--mut)}
.ebook .price b{font-family:var(--num);font-size:34px;color:var(--goldA);font-weight:600;margin-right:4px}
.ebook img{width:120px;border:1px solid rgba(201,165,76,.35);box-shadow:0 16px 40px rgba(0,0,0,.6)}
.ebook .row{display:flex;gap:18px;align-items:flex-start}
/* lesson page */
.crumb{font-size:14px;color:var(--mut);padding-top:22px;display:flex;flex-wrap:wrap;gap:6px}
.crumb a:hover{color:var(--gold2)}
.lhead{padding:22px 0 8px}
.lhead h1{font-size:clamp(30px,7vw,46px)}
.lhead .en{font-family:var(--num);color:var(--gold);font-size:17px;letter-spacing:.02em;margin-top:4px}
.lhead .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.lbody{display:grid;gap:22px;padding-bottom:20px}
.obj{padding:20px 22px;border-left:3px solid var(--gold);border-radius:12px}
.obj b{display:block;color:var(--gold);font-size:14px;letter-spacing:.06em;font-weight:500}
.block{padding:24px 22px}
.block>h2{font-size:24px;margin-bottom:12px}
.md{color:var(--body)}
.md>*+*{margin-top:12px}
.md strong{color:var(--ivory);font-weight:600}
.md em{color:var(--gold2)}
.md ul li,.md ol li{position:relative;padding-left:22px}
.md ul li+li,.md ol li+li{margin-top:6px}
.md ul li:before{content:"";position:absolute;left:4px;top:.72em;width:6px;height:6px;background:var(--gold);border-radius:50%}
.md ol{counter-reset:o}
.md ol li{counter-increment:o}
.md ol li:before{content:counter(o) ".";position:absolute;left:0;color:var(--gold);font-family:var(--num)}
.md h3,.md h4{color:var(--ivory);font-size:19px}
.md code{font-family:ui-monospace,monospace;background:#1d1b18;padding:1px 6px;border-radius:5px;font-size:.9em}
.md a{color:var(--gold2);text-decoration:underline}
.fig{margin-top:16px}
.fig .im{position:relative;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#101014}
.fig figcaption{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.fig figcaption{color:var(--mut);font-size:14px;margin-top:8px}
.sect+.sect{margin-top:28px;padding-top:24px;border-top:1px solid var(--line)}
.sect h3{font-size:21px;margin-bottom:10px;color:var(--ivory)}
.ex{padding:16px 18px;border:1px dashed var(--line2);border-radius:12px}
.ex+.ex{margin-top:12px}
.ex b{display:block;color:var(--gold2);font-weight:500;margin-bottom:4px}
.take{display:grid;gap:10px}
.take li{display:flex;gap:12px;align-items:flex-start;color:var(--body)}
.take li i{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--gold);display:grid;place-items:center;font-style:normal;font-family:var(--num);font-size:13px;color:var(--gold2);margin-top:2px}
/* quiz */
.qz{display:grid;gap:22px}
.qi{border-top:1px solid var(--line);padding-top:18px}
.qi:first-child{border-top:0;padding-top:0}
.qi .qq{font-weight:500;color:var(--ivory);display:flex;gap:10px}
.qi .qq .n{color:var(--gold);flex:none}
.ch{display:grid;gap:8px;margin-top:12px}
.ch button{display:flex;gap:12px;align-items:flex-start;text-align:left;width:100%;padding:12px 14px;border:1px solid var(--line2);border-radius:10px;background:rgba(255,255,255,.015);color:var(--body);font-size:16px;line-height:1.55;transition:border-color .15s,background .15s}
.ch button:hover:not([disabled]){border-color:var(--gold);background:rgba(201,165,76,.06)}
.ch button .k{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line2);display:grid;place-items:center;font-size:13px;font-family:var(--num);margin-top:1px}
.ch button[disabled]{cursor:default}
.ch button.sel{border-color:var(--gold);background:rgba(201,165,76,.08);color:var(--ivory)}
.ch button.sel .k{border-color:var(--gold);color:var(--gold2)}
.ch button.right{border-color:rgba(79,191,143,.7);background:rgba(79,191,143,.09);color:#d6f3e6}
.ch button.right .k{border-color:var(--ok);color:var(--ok)}
.ch button.wrong{border-color:rgba(226,102,79,.7);background:rgba(226,102,79,.08);color:#f3d2cb}
.ch button.wrong .k{border-color:var(--bad);color:var(--bad)}
.fb{margin-top:10px;padding:12px 14px;border-radius:10px;font-size:15px;line-height:1.65}
.fb b{display:block;font-weight:600;margin-bottom:2px}
.fb.ok{background:rgba(79,191,143,.08);border:1px solid rgba(79,191,143,.35)}
.fb.ok b{color:var(--ok)}
.fb.no{background:rgba(226,102,79,.07);border:1px solid rgba(226,102,79,.35)}
.fb.no b{color:var(--bad)}
.fb.info{background:rgba(201,165,76,.07);border:1px solid rgba(201,165,76,.35)}
.fb.info b{color:var(--gold2)}
.score{display:flex;flex-wrap:wrap;align-items:center;gap:16px 22px;padding:20px 22px;border-radius:14px;border:1px solid rgba(201,165,76,.45);background:rgba(201,165,76,.05);margin-top:6px}
.score .big{font-family:var(--num);font-size:42px;color:var(--goldA);line-height:1}
.score .big small{font-size:22px;color:var(--mut)}
.score .tx{flex:1;min-width:180px;color:var(--body)}
.score .tx b{display:block;color:var(--ivory);font-weight:500}
.score .acts{display:flex;flex-wrap:wrap;gap:10px}
/* exercise */
.chart{position:relative;border:1px solid var(--line2);border-radius:10px;overflow:hidden;background:#101014}
.chartcap{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;color:var(--mut);font-size:14px;margin-bottom:10px}
.hl{position:absolute;border:2px solid var(--goldA);background:rgba(244,210,122,.14);border-radius:6px;box-shadow:0 0 0 9999px rgba(0,0,0,0);transition:opacity .3s;pointer-events:none}
.hl span{position:absolute;left:-2px;top:-26px;background:var(--goldA);color:#1A1206;font-family:var(--num);font-weight:600;font-size:13px;padding:1px 8px;border-radius:6px;white-space:nowrap}
.hl.focus{border-width:3px;background:rgba(244,210,122,.22)}
.reveal{margin-top:12px}
/* lesson footer nav */
.lnav{display:grid;gap:12px;padding:8px 0 10px}
.lnav .pn{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.lnav .pn a{padding:14px 16px;min-height:72px;display:flex;flex-direction:column;justify-content:center;border:1px solid var(--line);border-radius:12px;background:var(--bg2);min-width:0}
.lnav .pn a:hover{border-color:var(--gold)}
.lnav .pn a small{color:var(--mut);font-size:13px}
.lnav .pn a span{font-size:15px;color:var(--ivory);overflow-wrap:break-word;line-height:1.45}
.lnav .pn a.nx{text-align:right}
.lnav .pn .ph{visibility:hidden}
.complete{display:flex;flex-direction:column;gap:10px;align-items:stretch;padding:22px;text-align:center}
.complete p{color:var(--mut);font-size:14px}
/* final */
.lock{padding:26px;display:grid;gap:14px}
.lock ul{display:grid;gap:8px}
.lock li a{display:flex;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:10px}
.lock li a:hover{border-color:var(--gold)}
.result{padding:26px;display:grid;gap:16px;text-align:center;justify-items:center}
.result .big{font-family:var(--num);font-size:64px;color:var(--goldA);line-height:1}
.result .big small{font-size:28px;color:var(--mut)}
.result h2{font-size:28px}
.result .pass{color:var(--ok)}.result .fail{color:var(--bad)}
.review{display:grid;gap:10px;width:100%}
.review a{display:flex;justify-content:space-between;gap:10px;align-items:center;text-align:left;padding:12px 16px;border:1px solid rgba(226,102,79,.4);border-radius:10px}
.review a:hover{border-color:var(--gold)}
.ans .meta{font-size:14px;color:var(--mut);margin-top:8px}
.ans .meta a{color:var(--gold2);text-decoration:underline}
.submit-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:8px}
.submit-row p{color:var(--mut);font-size:14px}
/* footer */
.foot{border-top:1px solid var(--line);margin-top:64px;padding:26px 0 40px;color:var(--mut);font-size:13px}
.foot .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px}
.foot a{color:var(--body)}
.foot a:hover{color:var(--gold2)}
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#1e1b15;border:1px solid var(--gold);color:var(--gold2);padding:10px 18px;border-radius:10px;font-size:15px;z-index:60;max-width:calc(100% - 32px);text-align:center}
:focus-visible{outline:2px solid var(--goldA);outline-offset:2px}
@media (min-width:640px){
 .wrap{padding:0 32px}
 .top nav .hide-m{display:inline-flex}
 .ov{grid-template-columns:repeat(4,1fr)}
 .lgrid{grid-template-columns:repeat(2,1fr)}
 .complete{flex-direction:row;justify-content:space-between;text-align:left;align-items:center}
 .ebook{grid-template-columns:1fr auto;align-items:center}
 .block{padding:30px 32px}
}
@media (min-width:1000px){
 .hero{grid-template-columns:1.25fr .9fr;align-items:center;padding:84px 0 10px}
 .lgrid{grid-template-columns:repeat(3,1fr)}
 .road{grid-template-columns:repeat(7,1fr);gap:12px}
 .road li{flex-direction:column;align-items:center;text-align:center;padding:0}
 .road li:before{left:calc(50% + 26px);right:calc(-50% + 20px);top:22px;bottom:auto;width:auto;height:1px}
 .road .tx{padding-top:0}
 .lessonwrap{display:grid;grid-template-columns:minmax(0,1fr);max-width:860px;margin:0 auto}
 .sec>h2{font-size:32px}
}
@media (max-width:639px){.logo .lt b{letter-spacing:.16em;font-size:13px}.logo .lt small{letter-spacing:.24em}.top nav{gap:2px}.top nav a{padding:8px 8px}}
@media (max-width:360px){.logo .lt small{display:none}.top nav a{padding:8px 5px;font-size:13px}}

/* subtitle under hero title */
.hero .subt{font-family:var(--num);font-weight:500;letter-spacing:.28em;font-size:13px;color:var(--gold2);margin-top:12px;text-transform:uppercase;white-space:normal}
@media (min-width:640px){.hero .subt{font-size:14px;letter-spacing:.34em}}
/* markdown tables / quotes */
.md .tw{margin:14px 0;border:1px solid var(--line2);border-radius:10px;overflow:hidden}
.md table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.55}
.md th,.md td{padding:9px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word}
.md th{background:#17151a;color:var(--gold2);font-weight:500;font-size:14px}
.md tr:last-child td{border-bottom:0}
.md td:first-child{color:var(--ivory)}
@media (max-width:639px){.md table{font-size:13.5px}.md th,.md td{padding:8px 7px}.md th{font-size:12.5px}}
.md blockquote{margin:14px 0;padding:12px 14px;border-left:3px solid var(--gold);background:#16140f;border-radius:0 10px 10px 0;font-size:15.5px}
.md blockquote p+p{margin-top:8px}
.md p+p,.md p+ul,.md ul+p,.md p+ol,.md ol+p{margin-top:10px}
/* exercise-answer lock */
.sect.locked .lockbox{display:flex;gap:14px;align-items:flex-start;padding:18px;border:1px dashed var(--line2);border-radius:12px;background:repeating-linear-gradient(135deg,#121215 0 12px,#141317 12px 24px)}
.sect.locked .lk{font-size:22px;line-height:1.2}
.sect.locked b{display:block;color:var(--ivory);font-weight:500}
.sect.locked p{color:var(--mut);font-size:15px;margin:4px 0 12px}
.nw{white-space:nowrap}
.fig a.im{display:block;cursor:zoom-in}
.review a span:last-child{white-space:nowrap;flex:none}
.road .tx .th{display:block;color:var(--gold2);font-size:14px;line-height:1.45;margin-top:2px}
.road .tx b{display:block;line-height:1.4}
