:root{--violet:#6517e8;--violet2:#8f34ff;--ink:#17182b;--muted:#6b6e83;--bg:#f7f7fb;--card:#fff;--line:#e7e7ef;--ok:#16845b;--warn:#b57900;--danger:#a73a3a}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:#fff}a{text-decoration:none;color:inherit}.container{width:min(1120px,calc(100% - 32px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.nav-wrap{height:72px;display:flex;align-items:center;gap:30px}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:linear-gradient(135deg,var(--violet),var(--violet2));color:#fff;font-weight:800}.brand small{display:block;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-size:10px}.main-nav{display:flex;gap:24px;margin-left:auto}.main-nav a{font-weight:650;color:#33364a}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:10px;padding:11px 16px;font-weight:750;cursor:pointer}.btn-primary{background:linear-gradient(135deg,var(--violet),var(--violet2));color:#fff}.btn-ghost{border:1px solid var(--line);background:#fff}.hero{padding:90px 0 70px;background:radial-gradient(circle at 80% 10%,#eee5ff,transparent 32%),linear-gradient(180deg,#fff,#faf8ff)}.hero-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:56px;align-items:center}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--violet);font-weight:800;font-size:13px}.hero h1{font-size:clamp(42px,6vw,72px);line-height:1.03;margin:14px 0 20px;max-width:760px}.hero p{font-size:20px;line-height:1.6;color:var(--muted);max-width:680px}.hero-card{border-radius:28px;padding:30px;background:linear-gradient(145deg,#5c11d9,#9a3cff);color:#fff;box-shadow:0 24px 70px rgba(101,23,232,.28)}.terminal{background:#161629;border-radius:16px;padding:18px;font-family:ui-monospace,monospace;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}.terminal span{display:block;margin:7px 0}.section{padding:72px 0}.section.alt{background:var(--bg)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:30px}.section h2{font-size:34px;margin:0}.muted{color:var(--muted)}.grid{display:grid;gap:20px}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 8px 30px rgba(33,20,64,.05)}.card h3{margin:8px 0}.icon-chip{width:44px;height:44px;border-radius:12px;background:#f0e7ff;display:grid;place-items:center;color:var(--violet);font-weight:900}.course-card{display:flex;flex-direction:column;min-height:240px}.course-card .meta{display:flex;gap:10px;align-items:center;margin-top:auto;padding-top:18px}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800}.badge-beg{background:#e5f7ef;color:#147555}.badge-mid{background:#fff1cf;color:#936400}.badge-adv{background:#fde4e4;color:#963b3b}.searchbar{display:flex;gap:10px}.searchbar input,.form-control,textarea,select{width:100%;border:1px solid var(--line);border-radius:10px;padding:11px 12px;background:#fff;font:inherit}.filters{display:grid;grid-template-columns:2fr 1fr 1fr auto;gap:12px;margin-bottom:24px}.course-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:34px;align-items:start}.lesson{max-width:760px}.lesson h1{font-size:46px;line-height:1.1}.block{margin:28px 0}.callout{border-left:4px solid var(--violet);background:#f7f2ff;padding:16px 18px;border-radius:10px}.callout.warn{border-left-color:#e0a21b;background:#fff8e8}.code{background:#151526;color:#f5f5fb;border-radius:12px;padding:16px;overflow:auto;font-family:ui-monospace,monospace}.sidebar{position:sticky;top:92px}.toc a{display:block;padding:8px 0;color:var(--muted)}.site-footer{background:#151525;color:#eee;padding:44px 0}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}.footer-grid a{display:block;margin:8px 0;color:#bbb}.admin-shell{min-height:100vh;background:var(--bg)}.admin-top{background:#19192b;color:#fff;padding:14px 0}.admin-bar{display:flex;justify-content:space-between;align-items:center}.admin-main{padding:34px 0}.table{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden}.table th,.table td{text-align:left;padding:13px;border-bottom:1px solid var(--line)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.field label{display:block;font-weight:750;margin-bottom:6px}.block-row{background:#fff;border:1px solid var(--line);padding:14px;border-radius:12px;margin:10px 0;display:grid;grid-template-columns:130px 1fr auto;gap:12px;align-items:start}.login-box{width:min(430px,calc(100% - 32px));margin:80px auto;background:#fff;border:1px solid var(--line);padding:28px;border-radius:18px;box-shadow:0 20px 60px rgba(0,0,0,.08)}
@media(max-width:850px){.hero-grid,.course-layout,.grid-3,.grid-4,.footer-grid{grid-template-columns:1fr}.main-nav{display:none}.filters,.form-grid{grid-template-columns:1fr}.hero{padding-top:55px}.lesson h1{font-size:38px}.sidebar{position:static}.block-row{grid-template-columns:1fr}}

.course-hero{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:36px;align-items:center;padding:34px}.course-hero h1{font-size:clamp(38px,5vw,58px);line-height:1.05;margin:10px 0 14px}.course-intro{font-size:18px;line-height:1.65;max-width:720px}.course-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.practice-promise{background:linear-gradient(145deg,#5c11d9,#9a3cff);color:#fff;border-radius:20px;padding:24px;min-height:170px;display:flex;flex-direction:column;justify-content:flex-end}.practice-promise strong{font-size:20px;margin-bottom:8px}.practice-promise span{line-height:1.5;color:#f0e8ff}.module-head{margin-top:48px}.module-list{display:grid;gap:14px}.module-card{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:20px;align-items:center;transition:.18s transform,.18s box-shadow,.18s border-color}.module-card:hover{transform:translateY(-2px);border-color:#c9b2f2;box-shadow:0 14px 38px rgba(83,42,144,.09)}.module-number{width:54px;height:54px;border-radius:15px;background:#f0e7ff;color:var(--violet);display:grid;place-items:center;font-size:18px;font-weight:900}.module-kicker{font-size:10px;letter-spacing:.15em;color:var(--violet);font-weight:850;text-transform:uppercase}.module-copy h3{font-size:20px;margin:5px 0 6px}.module-copy p{margin:0;color:var(--muted);line-height:1.5}.module-side{display:flex;flex-direction:column;align-items:flex-end;gap:12px;color:var(--muted);font-size:13px;white-space:nowrap}.module-cta{font-weight:800;color:var(--violet)}.legacy-course{margin-top:34px}
@media(max-width:850px){.course-hero{grid-template-columns:1fr}.module-card{grid-template-columns:52px minmax(0,1fr)}.module-side{grid-column:2;align-items:flex-start;flex-direction:row}.practice-promise{min-height:0}}

/* V0.5 — design system refinement */
:root{--violet-soft:#f2ebff;--violet-line:#d8c6ff;--surface:#ffffff;--surface-2:#fbfbfe;--shadow-sm:0 8px 24px rgba(33,20,64,.055);--shadow-md:0 18px 46px rgba(33,20,64,.085);--radius-sm:12px;--radius-md:18px;--radius-lg:26px}
body{background:#fff}.btn{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary:hover{box-shadow:0 9px 24px rgba(101,23,232,.22)}.btn-ghost:hover{border-color:#cdb8f4;background:#fcfaff}.card{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.card:hover{border-color:#d9cdf0;box-shadow:var(--shadow-sm)}
.method-terminal{padding:20px 22px}.method-step{display:grid;grid-template-columns:max-content 1fr;gap:16px;align-items:center;margin:10px 0}.method-step span{margin:0!important;white-space:nowrap;font-weight:750}.method-step i{display:block;height:3px;width:var(--w,80%);max-width:100%;border-radius:99px;background:linear-gradient(90deg,#8f34ff 0%,#b878ff 58%,rgba(184,120,255,.18) 100%);box-shadow:0 0 18px rgba(143,52,255,.28)}.method-step.final{grid-template-columns:1fr;margin-top:13px}.method-step.final span{color:#fff}.hero-card .method-terminal{min-height:210px;display:flex;flex-direction:column;justify-content:center}
.admin-shell{background:linear-gradient(180deg,#f7f6fb 0,#fbfbfd 180px,#f7f7fb 100%)}.admin-top{position:sticky;top:0;z-index:80;background:rgba(21,21,37,.97);backdrop-filter:blur(14px);border-bottom:1px solid rgba(255,255,255,.08);box-shadow:0 8px 28px rgba(16,13,30,.08)}.admin-bar{min-height:48px;gap:18px}.admin-bar a{color:#ded9e9}.admin-bar a:hover{color:#fff}.admin-main{padding-top:28px}.admin-shell .section-head h1{font-size:clamp(32px,4vw,46px);letter-spacing:-.03em}.admin-shell .table{border-radius:18px;box-shadow:var(--shadow-sm)}.admin-shell .table th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#757186;background:#faf9fc}.admin-shell .table tr:hover td{background:#fcfbff}.form-control,textarea,select{transition:border-color .16s ease,box-shadow .16s ease}.form-control:focus,textarea:focus,select:focus{outline:0;border-color:#ad83f5;box-shadow:0 0 0 3px rgba(101,23,232,.09)}
.course-card:hover,.module-card:hover{transform:translateY(-3px)}.icon-chip{box-shadow:inset 0 0 0 1px rgba(101,23,232,.07)}
@media(max-width:760px){.method-step{gap:10px}.method-step i{height:2px}}
/* V0.5 hero method motif — override former step layout */
.method-terminal{display:block!important;min-height:0!important;padding:22px 24px!important}.method-label{display:block!important;margin:0!important;font-weight:800;line-height:1.3}.method-label.final{margin-top:13px!important}.method-lines{display:grid;gap:8px;margin:14px 0 12px}.method-lines .method-line{display:block!important;height:4px;width:var(--w,80%);margin:0!important;border-radius:99px;background:linear-gradient(90deg,#8f34ff 0%,#c38aff 58%,rgba(195,138,255,.18) 100%);box-shadow:0 0 16px rgba(143,52,255,.25)}
