:root{--bg:#0b0f14;--panel:#111820;--line:#27343e;--text:#f1f5f6;--muted:#7d8b96;--green:#9fe870}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,"Noto Sans Thai",sans-serif}a{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:10px;font:700 20px monospace}.brand span{width:34px;height:34px;border:2px solid var(--green);color:var(--green);display:grid;place-items:center}.button,.auth button,.edit>button{background:var(--green);color:#11170e;border:0;padding:12px 18px;font-weight:700;cursor:pointer}.landing{min-height:100vh;background:radial-gradient(circle at 75% 25%,#61d5e812,transparent 28%),linear-gradient(#ffffff05 1px,transparent 1px),linear-gradient(90deg,#ffffff05 1px,transparent 1px);background-size:auto,42px 42px,42px 42px}.landing nav{height:80px;padding:0 7vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff14}.landing nav>div{display:flex;gap:24px;align-items:center}.hero{min-height:650px;padding:70px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:7vw;align-items:center}.hero small,.auth small,.content header small{color:var(--green);font:600 10px monospace;letter-spacing:.13em}.hero h1{font-size:clamp(46px,5vw,76px);line-height:1.05;margin:18px 0}.hero h1 span{color:transparent;-webkit-text-stroke:1px #81909d}.hero>div>p{color:#9aa7b1;font-size:17px;line-height:1.8}.terminal{border:1px solid #35434e;background:#0f161d;padding:25px;box-shadow:20px 20px 0 #0005;font:13px monospace;color:#798995}.terminal article{margin-top:25px;border-left:3px solid var(--green);background:#17212a;padding:20px}.terminal article small,.terminal article b{color:var(--green)}.terminal h3{color:white;font:600 19px Arial}.paths{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);margin:0 8vw}.paths article{padding:28px;border-right:1px solid var(--line)}.paths small{color:var(--green);font:600 10px monospace}.paths p{color:var(--muted)}.auth{min-height:100vh;padding:35px 7vw;background:radial-gradient(circle at 70% 20%,#61d5e812,transparent 30%)}.auth section{max-width:520px;margin:9vh auto;background:#10171f;border:1px solid var(--line);padding:40px}.auth h1{font-size:36px}.auth p{color:var(--muted)}.auth form{display:grid;gap:15px;margin:28px 0}.auth label,.edit label{display:flex;flex-direction:column;gap:6px;color:#7d8a94;font-size:11px}.auth input,.edit input,.edit select,.edit textarea,.inline select{background:#0d141b;border:1px solid #2d3944;color:white;padding:11px}.auth section>a{color:var(--green);font-size:12px}.alert{background:#381d22;color:#f0a0aa;padding:12px}.shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.shell>aside{height:100vh;position:sticky;top:0;background:#0d1319;border-right:1px solid var(--line);padding:27px 20px;display:flex;flex-direction:column}.shell aside nav{display:grid;gap:7px;margin-top:45px}.shell aside nav a{padding:11px;color:#76848f}.link{margin-top:40px;background:none;border:0;color:#76848f;cursor:pointer}.content{min-width:0;padding:0 max(24px,4vw) 80px}.content>header{height:76px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:center;gap:4px}.content h1{font-size:34px;margin:38px 0 24px}.tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tabs a{background:var(--panel);border:1px solid var(--line);padding:18px}.tabs a.on{border-color:var(--green);box-shadow:inset 0 -2px var(--green)}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:18px 0 38px}.stats article{background:#0e151c;border:1px solid var(--line);padding:18px}.stats small{display:block;color:#667581;font:9px monospace}.stats b{display:block;font:600 27px monospace;margin-top:8px}.roadmap{display:grid;grid-template-columns:1fr 1fr;gap:14px}.month{border:1px solid var(--line);background:#0e141b}.month>header{padding:14px;color:var(--green);font:600 10px monospace;border-bottom:1px solid var(--line)}.lesson{display:grid;grid-template-columns:40px 1fr;gap:13px;padding:15px;border-bottom:1px solid #1d2831}.lesson.done{opacity:.58}.lesson form button{width:36px;height:36px;background:#111922;border:1px solid #32414d;color:#87949e;cursor:pointer}.lesson.done form button{background:var(--green);color:#11170e}.lesson small{color:#697783;font:9px monospace}.lesson h3{font-size:14px;margin:5px 0}.lesson summary{color:var(--green);font:9px monospace;cursor:pointer}.lesson p{color:#89969f;font-size:12px}h2{border-bottom:1px solid var(--line);padding-bottom:14px;margin-top:48px}table{width:100%;border-collapse:collapse;background:#0e151c;border:1px solid var(--line)}th,td{text-align:left;padding:13px;border-bottom:1px solid #1d2831;font-size:12px}th{color:#697783}td small,td b{display:block}td small{color:#6d7a84}.inline{display:flex;gap:8px}.inline button,.delete button{background:none;border:1px solid var(--green);color:var(--green);padding:8px;cursor:pointer}.editor{border:1px solid var(--line);background:#0e151c;margin-bottom:8px}.editor>summary{padding:14px;cursor:pointer}.editor summary em{float:right;color:var(--green)}.edit{display:grid;grid-template-columns:1fr 100px 100px;gap:11px;padding:18px;border-top:1px solid var(--line)}.edit .wide{grid-column:1/-1}.edit textarea{min-height:70px}.delete{padding:0 18px 18px}.delete button{border-color:#70404a;color:#df7d89}@media(max-width:850px){.hero{grid-template-columns:1fr}.shell{grid-template-columns:70px 1fr}.shell>aside{padding:20px 12px}.shell aside .brand b,.shell aside nav a{font-size:0}.shell aside nav a:before{content:'◇';font-size:15px}.roadmap{grid-template-columns:1fr}}@media(max-width:570px){.landing nav>div>a:not(.button){display:none}.hero{padding:50px 22px}.hero h1{font-size:43px}.paths{grid-template-columns:1fr;margin:0 22px}.auth section{padding:26px}.shell{display:block}.shell>aside{display:none}.content{padding:0 17px 60px}.tabs,.stats{grid-template-columns:1fr}.edit{grid-template-columns:1fr 1fr}.edit label:first-of-type,.edit .wide{grid-column:1/-1}}
