
@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Playfair+Display:ital,wght@0,700;1,400&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,300&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:#0a0a0a}::-webkit-scrollbar-thumb{background:#333}
:root{
  --bg:#0d0d0d;--bg2:#141414;--bg3:#1c1c1c;--bg4:#242424;
  --ink:#f0e8d8;--ink2:#a89880;--ink3:#6a5a4a;
  --red:#d42020;--gold:#c8910a;--blue:#1a5a8a;--border:#2a2524;
  --sidebar:260px;
  --ff-d:'Bebas Neue',sans-serif;
  --ff-h:'Playfair Display',serif;
  --ff-b:'Source Serif 4',serif;
}
body{background:var(--bg);color:var(--ink);font-family:var(--ff-b);font-size:16px;line-height:1.7;display:flex;min-height:100vh}
/* SIDEBAR */
.sidebar{position:fixed;top:0;left:0;width:var(--sidebar);height:100vh;background:var(--bg2);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;z-index:100}
.sb-brand{padding:24px 20px 18px;border-bottom:1px solid var(--border);flex-shrink:0}
.sb-logo{font-family:var(--ff-d);font-size:32px;color:var(--red);letter-spacing:4px;line-height:1;text-decoration:none;display:block}
.sb-tag{font-size:9px;color:var(--ink3);letter-spacing:2px;text-transform:uppercase;margin-top:3px}
.sb-scroll{overflow-y:auto;flex:1;padding:8px 0 20px}
.sb-section{padding:14px 20px 4px;font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--ink3);font-family:var(--ff-d)}
.sb-list{list-style:none}
.sb-list a{display:block;padding:5px 20px;font-size:11.5px;color:var(--ink2);text-decoration:none;border-left:2px solid transparent;transition:all .15s;font-family:var(--ff-b);font-weight:300}
.sb-list a:hover,.sb-list a.active{color:var(--ink);border-left-color:var(--red);background:rgba(212,32,32,.06)}
.sb-unit{font-family:var(--ff-d);font-size:12px;color:var(--ink);letter-spacing:1px;padding:8px 20px 3px;border-left:2px solid var(--red);display:block}
.sb-foot{padding:14px 20px;border-top:1px solid var(--border);font-size:9px;color:var(--ink3);letter-spacing:1px;flex-shrink:0}
/* PROGRESS */
.pbar{position:fixed;top:0;left:0;width:0;height:3px;background:var(--red);z-index:200;transition:width .1s}
/* MAIN */
.main{margin-left:var(--sidebar);flex:1;min-width:0}
/* LESSON PAGE */
.lesson-hero{background:var(--bg2);border-bottom:1px solid var(--border);padding:48px 64px 36px;position:relative;overflow:hidden}
.lesson-hero .bg-num{position:absolute;right:-10px;top:-40px;font-family:var(--ff-d);font-size:280px;color:rgba(255,255,255,.025);line-height:1;pointer-events:none;user-select:none}
.unit-label{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--red);font-family:var(--ff-d);margin-bottom:8px}
.lesson-num-badge{display:inline-flex;align-items:center;gap:10px;margin-bottom:16px}
.lnb-num{background:var(--red);color:#fff;font-family:var(--ff-d);font-size:13px;letter-spacing:1px;padding:3px 10px}
.lnb-timer{font-size:10px;letter-spacing:2px;color:var(--ink3);text-transform:uppercase;border:1px solid var(--border);padding:3px 8px;font-family:var(--ff-d)}
.num-pill{width:52px;height:52px;background:var(--gold);display:inline-flex;align-items:center;justify-content:center;font-family:var(--ff-d);font-size:34px;color:#000;margin-bottom:12px}
.lesson-title{font-family:var(--ff-h);font-size:clamp(22px,3vw,40px);color:var(--ink);margin-bottom:12px;line-height:1.15}
.lesson-intro{font-style:italic;color:var(--ink2);font-size:16px;line-height:1.7;max-width:700px;border-left:3px solid var(--red);padding-left:16px}
/* CONTENT BODY */
.content{padding:48px 64px 64px;max-width:1200px}
.content-grid{display:grid;grid-template-columns:1fr 320px;gap:48px;align-items:start}
.content-grid.no-aside{grid-template-columns:1fr}
h3.sec{font-family:var(--ff-d);font-size:14px;letter-spacing:3px;color:var(--gold);margin:28px 0 10px}
p.body{font-size:15px;color:var(--ink2);margin-bottom:14px;line-height:1.8}
p.body strong{color:var(--ink)}
ul.kc{list-style:none;margin-bottom:16px}
ul.kc li{font-size:14px;color:var(--ink2);padding:5px 0 5px 20px;position:relative;line-height:1.55;border-bottom:1px solid rgba(255,255,255,.03)}
ul.kc li:before{content:'◆';position:absolute;left:0;color:var(--red);font-size:7px;top:9px}
ul.kc li strong{color:var(--ink)}
/* SIDEBAR IMAGES */
.aside{position:sticky;top:24px}
.img-frame{border:1px solid var(--border);background:var(--bg2);overflow:hidden;margin-bottom:8px}
.img-frame img{width:100%;display:block;filter:grayscale(5%) contrast(1.05);transition:filter .3s}
.img-frame img:hover{filter:grayscale(0%) contrast(1.1)}
.img-cap{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--ink3);padding:7px 10px;background:var(--bg2);border-top:1px solid var(--border)}
.img-slot{border:1px dashed var(--border);background:var(--bg2);min-height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--ink3);font-size:10px;letter-spacing:1px;text-transform:uppercase;margin-bottom:8px}
/* IMAGE GALLERY */
.img-gallery{display:grid;gap:3px;margin:24px 0}
.img-gallery.g2{grid-template-columns:1fr 1fr}
.img-gallery.g3{grid-template-columns:1fr 1fr 1fr}
.img-gallery.g4{grid-template-columns:1fr 1fr 1fr 1fr}
.img-gallery .img-frame{margin:0}
/* TRY THIS */
.try-this{background:var(--bg3);border-left:3px solid var(--gold);padding:16px 20px;margin-top:18px;font-size:14px;line-height:1.65;color:var(--ink2)}
.try-this strong{color:var(--gold);font-family:var(--ff-d);letter-spacing:1px;font-size:12px;display:block;margin-bottom:4px}
/* VOCAB */
.vocab{background:var(--bg3);border:1px solid var(--border);padding:18px 20px;margin-top:18px}
.vocab h4{font-family:var(--ff-d);font-size:11px;letter-spacing:2px;color:var(--ink3);margin-bottom:10px}
.vocab-list{list-style:none}
.vocab-list li{font-size:13px;color:var(--ink2);padding:4px 0;line-height:1.5;border-bottom:1px solid rgba(255,255,255,.04)}
.vocab-list li:last-child{border-bottom:none}
.vocab-list li strong{color:var(--ink)}
/* CALLOUT */
.callout{background:var(--bg3);border:1px solid var(--border);padding:18px 20px;margin:20px 0;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.callout-label{font-family:var(--ff-d);font-size:12px;letter-spacing:2px;color:var(--red);flex-shrink:0}
.callout-nums{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.seq-n{font-family:var(--ff-d);font-size:28px;color:var(--gold);line-height:1}
.seq-a{color:var(--ink3);font-size:14px}
/* PREV/NEXT NAV */
.lesson-nav{display:flex;justify-content:space-between;padding:32px 64px;border-top:1px solid var(--border);background:var(--bg2)}
.lesson-nav a{text-decoration:none;padding:10px 20px;border:1px solid var(--border);color:var(--ink2);font-family:var(--ff-d);font-size:13px;letter-spacing:1px;transition:all .2s;display:flex;align-items:center;gap:8px}
.lesson-nav a:hover{border-color:var(--red);color:var(--ink)}
.lesson-nav .prev-arrow{color:var(--red)}
.lesson-nav .next-arrow{color:var(--red)}
/* DIVIDER */
hr.ruled{border:none;border-top:1px solid var(--border);margin:32px 0}
.unit-divider{height:3px;background:linear-gradient(90deg,var(--red) 0%,transparent 100%)}
/* MOBILE */
@media(max-width:900px){
  /* sidebar keeps its 280px width — only main margin collapses */
  .sidebar{width:280px;transform:translateX(-100%);transition:transform .3s;z-index:300}
  .sidebar.open{transform:translateX(0);box-shadow:4px 0 24px rgba(0,0,0,.7)}
  .main{margin-left:0}
  .lesson-hero,.content{padding:32px 20px}
  .content-grid{grid-template-columns:1fr}
  .lesson-nav{padding:20px}
  .menu-btn{display:flex;align-items:center;gap:6px;position:fixed;top:12px;right:12px;z-index:400;background:var(--red);border:none;color:#fff;padding:9px 14px;font-family:var(--ff-d);font-size:13px;letter-spacing:1px;cursor:pointer;box-shadow:0 2px 14px rgba(0,0,0,.5)}
  .img-gallery.g3,.img-gallery.g4{grid-template-columns:1fr 1fr}
  .sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:200;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}
  .sb-overlay.open{display:block}
  .sb-scroll{-webkit-overflow-scrolling:touch}
}
@media(min-width:901px){.menu-btn,.sb-overlay{display:none!important}}
/* ── LIGHTBOX ───────────────────────────────────────────────────────────── */
.lb{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.92);opacity:0;pointer-events:none;transition:opacity .25s;padding:20px}
.lb.open{opacity:1;pointer-events:all}
.lb-inner{position:relative;max-width:92vw;max-height:90vh;display:flex;flex-direction:column;align-items:center}
.lb-img{max-width:100%;max-height:80vh;object-fit:contain;display:block;border:1px solid #333;box-shadow:0 0 60px rgba(0,0,0,.8)}
.lb-cap{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:#a89880;margin-top:10px;text-align:center;max-width:600px}
.lb-close{position:fixed;top:20px;right:24px;font-size:28px;color:#a89880;cursor:pointer;line-height:1;background:none;border:none;font-family:sans-serif;z-index:9100;transition:color .2s}
.lb-close:hover{color:#fff}
.lb-arrow{position:fixed;top:50%;transform:translateY(-50%);font-size:36px;color:#a89880;cursor:pointer;background:rgba(0,0,0,.5);border:none;padding:10px 16px;line-height:1;z-index:9100;transition:color .2s,background .2s}
.lb-arrow:hover{color:#fff;background:rgba(212,32,32,.4)}
.lb-prev{left:12px}
.lb-next{right:12px}
.img-frame img{cursor:zoom-in}
