
:root {
  --teal:#0f7c6e;--teal-lt:#e0f5f2;--teal-md:#5bbfb0;
  --teal-dark:#0b5c52;--teal-600:#1a9485;--teal-300:#9fd4ce;--teal-50:#f2faf9;--teal-900:#0b5c52;
  --blue:#1a5fa8;--blue-lt:#e6f0fb;
  --amber:#c47a1a;--amber-lt:#fdf3e0;--amber-50:#fffbf0;--amber-600:#a85f10;
  --coral:#c74d36;--coral-lt:#fdeae6;
  --purple:#5a3fa0;--purple-lt:#eeebfb;
  --gray-900:#1a1a1a;--gray-700:#444;--gray-500:#888;--gray-200:#e8e8e8;--gray-100:#f5f5f3;
  --green-600:#16A34A;--green-100:#DCFCE7;
  --rose-500:#F43F5E;--rose-100:#FFE4E6;
  --warm-900:#1C1917;--warm-700:#44403C;--warm-500:#78716C;--warm-300:#D6D3D1;--warm-100:#F5F5F4;--warm-50:#FAFAF9;
  --white:#FFFFFF;
  --shadow-sm:0 1px 4px rgba(0,0,0,.07);
  --shadow-md:0 4px 16px rgba(0,0,0,.10);
  --shadow-lg:0 8px 28px rgba(0,0,0,.13);
  --radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-xl:28px;
  --font-kr:'Noto Sans KR',sans-serif;--font-serif:'Noto Serif KR',serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{font-size:15px;}
body{font-family:var(--font-kr);background:#f4f3ef;min-height:100vh;display:flex;flex-direction:column;color:var(--warm-900);}
.top-bar{background:var(--white);border-bottom:1px solid var(--gray-200);display:flex;align-items:center;padding:0 24px;height:56px;gap:12px;flex-shrink:0;box-shadow:var(--shadow-sm);}
.sidebar-toggle-btn{display:none;align-items:center;justify-content:center;width:34px;height:34px;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);background:transparent;color:var(--gray-500);font-size:1.15rem;cursor:pointer;flex-shrink:0;transition:all .2s;}
.sidebar-toggle-btn:hover{border-color:var(--teal);color:var(--teal);}
.sidebar-backdrop{display:none;position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:499;}
.level-tabs{display:flex;gap:3px;}
.level-btn{padding:5px 14px;border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);font-size:12px;font-weight:700;font-family:var(--font-kr);cursor:pointer;color:var(--gray-500);background:transparent;transition:all .2s;}
.level-btn.active{background:var(--teal);border-color:var(--teal);color:#fff;}
.level-btn:hover:not(.active){border-color:var(--teal);color:var(--teal);}
.level-btn-basis{color:var(--amber)!important;border-color:var(--amber-lt)!important;}
.level-btn-basis.active{background:var(--amber)!important;border-color:var(--amber)!important;color:#fff!important;}
.school-title{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;line-height:1;}
.kq-logo{font-family:Impact,'Arial Black',sans-serif;font-size:22px;font-weight:normal;letter-spacing:0.03em;}
.kq-logo .kq-k{color:var(--teal-dark);}
.kq-logo .kq-q{color:#5a8c3c;}
.index-btn{padding:6px 16px;background:var(--teal-lt);color:var(--teal);border:1px solid var(--teal-300);border-radius:var(--radius-xl);font-size:11.5px;font-family:var(--font-kr);text-decoration:none;cursor:pointer;transition:all .2s;}
.index-btn:hover{background:rgba(255,255,255,0.32);}
.main-layout{display:flex;flex:1;min-height:0;}
.sidebar{width:230px;flex-shrink:0;background:#fff;border-right:1px solid var(--warm-300);padding:20px 12px;display:flex;flex-direction:column;gap:3px;box-shadow:2px 0 8px rgba(0,0,0,0.04);}
.sidebar-hdr{font-size:10px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--teal-lt);}
.ep-item{display:flex;align-items:flex-start;gap:10px;padding:10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border:1.5px solid transparent;}
.ep-item:hover{background:var(--teal-50);border-color:var(--teal-lt);}
.ep-item.active{background:var(--teal-lt);border-color:var(--teal-300);}
.ep-num{font-size:10px;font-weight:800;color:#fff;background:var(--teal-md);width:22px;height:22px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;}
.ep-item.active .ep-num{background:var(--teal);}
.ep-name{font-size:12.5px;color:var(--warm-500);line-height:1.35;}
.ep-item.active .ep-name{color:var(--teal-900);font-weight:700;}
.lt-item{display:flex;align-items:center;gap:10px;padding:10px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border:1.5px solid transparent;margin-top:10px;background:linear-gradient(135deg,#fffbec,#fff8e1);border-color:#f0d070;}
.lt-item:hover{background:linear-gradient(135deg,#fff3cc,#ffebb0);border-color:#e8b830;}
.lt-item.active{background:linear-gradient(135deg,#ffe066,#ffd700);border-color:#d4a000;}
.lt-num{font-size:14px;width:22px;height:22px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lt-name{font-size:12.5px;color:#7a6000;font-weight:700;line-height:1.35;}
.lt-item.active .lt-name{color:#5a4000;}
.lt-page{padding:4px 0;}
.lt-header{background:linear-gradient(135deg,#fffbe6,#fff3cc);border:2px solid #f0d070;border-radius:var(--radius-md);padding:18px 22px;margin-bottom:20px;}
.lt-title{font-size:20px;font-weight:900;color:#7a5000;font-family:var(--font-serif);}
.lt-subtitle{font-size:12px;color:#a07820;margin-top:4px;}
.lt-prog-bar{background:var(--gray-200);border-radius:20px;height:8px;margin:14px 0 6px;}
.lt-prog-fill{background:linear-gradient(90deg,#f5b800,#e08000);height:8px;border-radius:20px;transition:width .4s;}
.lt-prog-label{font-size:11px;color:var(--warm-400);text-align:right;}
.lt-ep-badge{display:inline-block;font-size:10px;font-weight:700;background:var(--teal-lt);color:var(--teal-dark);border-radius:20px;padding:2px 9px;margin-bottom:10px;letter-spacing:.04em;}
.lt-q-text{font-size:15px;font-weight:700;color:var(--warm-900);margin-bottom:6px;line-height:1.5;}
.lt-q-en{font-size:12px;color:var(--warm-400);margin-bottom:14px;}
.lt-listen-btn{background:var(--teal-lt);border:1.5px solid var(--teal-300);color:var(--teal-dark);border-radius:var(--radius-md);padding:10px 20px;font-size:14px;cursor:pointer;margin-bottom:14px;font-weight:700;}
.lt-listen-btn:hover{background:var(--teal-300);}
.lt-opts{display:flex;flex-direction:column;gap:8px;}
.lt-opt{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);padding:11px 15px;font-size:13.5px;cursor:pointer;transition:all .15s;text-align:left;}
.lt-opt:hover{border-color:var(--teal-300);background:var(--teal-50);}
.lt-opt.correct{background:#e8faf0;border-color:#4caf80;color:#1a6640;font-weight:700;}
.lt-opt.wrong{background:#fdecea;border-color:#e57373;color:#b71c1c;}
.lt-exp{background:var(--amber-50);border:1px solid var(--amber-lt);border-radius:var(--radius-sm);padding:9px 13px;font-size:12.5px;color:var(--amber-600);margin-top:10px;line-height:1.6;}
.lt-next-btn{margin-top:16px;background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-md);padding:11px 28px;font-size:14px;font-weight:700;cursor:pointer;width:100%;}
.lt-next-btn:hover{background:var(--teal);}
.lt-score-wrap{text-align:center;padding:28px 16px;}
.lt-grade{font-size:64px;font-weight:900;line-height:1;}
.lt-grade-lbl{font-size:18px;font-weight:700;margin:8px 0 4px;}
.lt-score-sub{font-size:13px;color:var(--warm-500);}
.lt-score-detail{display:flex;justify-content:center;gap:20px;margin:18px 0;flex-wrap:wrap;}
.lt-score-box{background:var(--warm-100);border-radius:var(--radius-md);padding:12px 18px;text-align:center;}
.lt-score-box-num{font-size:22px;font-weight:900;color:var(--teal-md);}
.lt-score-box-lbl{font-size:11px;color:var(--warm-400);margin-top:2px;}
.lt-retry-btn{background:linear-gradient(135deg,#f5b800,#e08000);color:#fff;border:none;border-radius:var(--radius-md);padding:12px 32px;font-size:14px;font-weight:700;cursor:pointer;margin-top:8px;}
.content-area{flex:1;min-width:0;padding:22px 26px 32px;overflow-y:auto;display:flex;flex-direction:column;gap:16px;}
.ep-header{background:var(--teal);border-radius:var(--radius-lg);padding:20px 24px;color:#fff;display:flex;align-items:center;gap:16px;box-shadow:var(--shadow-md);}
.ep-num-badge{background:rgba(255,255,255,0.2);border:1px solid rgba(255,255,255,0.35);border-radius:var(--radius-xl);padding:4px 13px;font-size:11px;font-weight:700;white-space:nowrap;letter-spacing:0.06em;}
.ep-title-wrap{flex:1;}
.ep-title-kr{font-family:var(--font-serif);font-size:20px;font-weight:700;letter-spacing:0.02em;line-height:1.3;}
.ep-title-en{font-size:11.5px;opacity:0.7;margin-top:3px;}
.ep-goal-badge{display:inline-block;background:var(--teal-lt);color:var(--teal-dark);border:1.5px solid var(--teal-300);padding:2px 11px;border-radius:11px;font-size:10.5px;font-weight:600;margin-left:6px;opacity:1;letter-spacing:0.01em;vertical-align:middle;line-height:1.6;}
.ep-scene-badge{background:rgba(251,191,36,0.25);border:1px solid rgba(251,191,36,0.4);border-radius:var(--radius-xl);padding:6px 15px;font-size:12px;white-space:nowrap;color:#FDE68A;}
.tab-bar{display:flex;border-bottom:2px solid var(--warm-300);flex-wrap:wrap;background:#fff;border-radius:var(--radius-md) var(--radius-md) 0 0;padding:0 6px;}
.tab-btn{padding:11px 15px;border:none;background:none;font-size:12.5px;font-weight:500;color:var(--warm-500);cursor:pointer;font-family:var(--font-kr);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .18s;white-space:nowrap;}
.tab-btn:hover{color:var(--teal-600);}
.tab-btn.active{color:var(--teal);font-weight:700;border-bottom-color:var(--amber);border-bottom-width:3px;}
.tab-panels{min-height:300px;background:#fff;border-radius:0 0 var(--radius-md) var(--radius-md);padding:18px 20px 22px;box-shadow:var(--shadow-sm);}
.tab-panel{display:none;}
.tab-panel.active{display:block;}
.scene-wrap{display:flex;flex-direction:column;gap:14px;max-width:640px;}
.scene-col{display:flex;flex-direction:column;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md);}
.scene-panel{background:#B8DDD5 center/cover no-repeat;height:380px;position:relative;flex-shrink:0;}
.scene-loc{display:none;}
.scene-caption{background:#fff;border-top:2px solid var(--teal-lt);padding:14px 54px 14px 16px;display:flex;gap:12px;align-items:flex-start;animation:fadeUp .2s ease-out;position:relative;}
@keyframes fadeUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
.caption-avatar{width:42px;height:42px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:21px;flex-shrink:0;border:2px solid var(--warm-300);}
.caption-name{font-size:9px;font-weight:700;color:var(--warm-500);margin-top:2px;text-align:center;line-height:1;}
.caption-body{flex:1;}
.caption-kr{font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--warm-900);line-height:1.55;}
.caption-en{font-size:11px;color:var(--warm-500);margin-top:3px;}
.caption-tag{display:inline-block;margin-top:6px;font-size:9.5px;font-weight:700;padding:2px 9px;border-radius:10px;}
.tag-banmal{background:#FFE4E6;color:var(--rose-500);}
.tag-jondaemal{background:var(--teal-lt);color:var(--teal);}
.scene-nav{background:#fff;border-top:1px solid var(--warm-300);padding:10px 14px;display:flex;align-items:center;gap:8px;position:relative;}
.nav-btn{width:34px;height:34px;border-radius:50%;border:none;background:var(--teal-md);color:#fff;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.nav-btn:disabled{opacity:.3;cursor:default;}
.nav-btn:not(:disabled):hover{background:var(--teal);}
.nav-progress{flex:1;}
.nav-steps{display:flex;gap:3px;}
.nav-step{height:4px;flex:1;background:var(--warm-300);border-radius:4px;transition:background .2s;}
.nav-step.done{background:var(--amber);}
.nav-count{font-size:10px;color:var(--warm-500);white-space:nowrap;margin-top:3px;text-align:center;}
.nav-speak-btn{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--warm-300);background:#fff;cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .15s;flex-shrink:0;}
.nav-speak-btn:hover{background:var(--teal-50);border-color:var(--teal-300);}
#speak-btn{position:absolute;right:12px;top:-48px;background:rgba(255,255,255,.95);box-shadow:0 1px 5px rgba(0,0,0,.15);}
.script-toggle-btn{width:100%;background:var(--warm-50);border:none;border-top:2px dashed var(--warm-200);padding:9px 14px;font-size:12px;font-weight:700;color:var(--warm-400);cursor:pointer;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px;transition:all .2s;font-family:var(--font-kr);border-radius:0 0 12px 12px;letter-spacing:.02em;}
.script-toggle-btn:hover{background:var(--teal-50);color:var(--teal-500);border-top-color:var(--teal-200);}
.script-toggle-btn .strip-chevron{display:inline-block;transition:transform .2s;font-style:normal;}
.script-toggle-btn.open .strip-chevron{transform:rotate(180deg);}
.script-strip{display:none;max-height:160px;overflow-y:auto;background:var(--warm-50);border-top:1px solid var(--warm-300);}
.script-strip.open{display:block;}
.strip-row{display:flex;gap:8px;align-items:flex-start;padding:6px 14px;border-bottom:1px solid var(--warm-100);cursor:pointer;transition:background .1s;}
.strip-row:last-child{border:none;}
.strip-row:hover{background:var(--teal-50);}
.strip-row.current{background:var(--teal-lt);}
.strip-avatar{font-size:13px;flex-shrink:0;margin-top:1px;}
.strip-kr{font-family:var(--font-serif);font-size:12px;font-weight:700;color:var(--warm-900);line-height:1.45;}
.strip-en{font-size:10px;color:var(--warm-500);margin-top:1px;}
.vocab-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;}
.vocab-card{background:#fff;border-radius:var(--radius-md);border:2px solid var(--warm-300);padding:16px 10px;text-align:center;cursor:pointer;transition:all .2s;box-shadow:var(--shadow-sm);}
.vocab-card:hover{border-color:var(--teal-300);box-shadow:var(--shadow-md);transform:translateY(-3px);}
.vocab-group{margin-bottom:20px;}
.vocab-group-title{font-size:13px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.05em;padding:6px 4px 8px;border-bottom:2px solid var(--teal-lt);margin-bottom:10px;}
.vc-hint{font-size:9.5px;color:var(--warm-300);margin-top:7px;}
.vocab-card.flipped .vc-front{display:none;}
.vocab-card.flipped .vc-back{display:block;}
.vc-back{display:none;}
.vc-emoji{font-size:30px;margin-bottom:7px;line-height:1;}
.vc-kr{font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--warm-900);}
.vc-rom{font-size:9.5px;color:var(--warm-500);margin-top:3px;}
.vc-en{font-size:12.5px;color:var(--teal-600);font-weight:700;margin-top:5px;}
.vc-speak{background:none;border:none;font-size:15px;cursor:pointer;margin-top:6px;opacity:.4;transition:opacity .15s;}
.vc-speak:hover{opacity:1;}
.gram-card{background:#fff;border-radius:var(--radius-md);border:1.5px solid var(--warm-300);padding:20px 22px;margin-bottom:14px;box-shadow:var(--shadow-sm);border-top:4px solid var(--amber);}
.gram-title{font-family:var(--font-serif);font-size:16.5px;font-weight:700;color:var(--warm-900);margin-bottom:12px;}
.gram-exp{font-size:13px;line-height:1.85;color:var(--warm-700);margin-bottom:13px;}
.gram-rule{background:var(--amber-50);border:1.5px solid var(--amber-lt);border-radius:var(--radius-sm);padding:9px 14px;font-size:12px;font-weight:700;color:var(--amber-600);margin-bottom:14px;}
.gram-ex-list{list-style:none;margin-bottom:12px;}
.gram-ex{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--warm-100);align-items:flex-start;}
.gram-ex:last-child{border:none;}
.gram-ko{font-family:var(--font-serif);font-size:13.5px;font-weight:700;color:var(--warm-900);min-width:150px;flex-shrink:0;}
.gram-en{font-size:11.5px;color:var(--warm-500);line-height:1.55;}
.gram-tip{background:var(--teal-50);border:1.5px solid var(--teal-lt);border-radius:var(--radius-md);padding:10px 14px;font-size:12.5px;color:var(--teal);font-weight:600;margin-bottom:12px;}
.gram-usage{display:flex;flex-direction:column;gap:6px;}
.gram-usage-row{background:var(--warm-50);border:1px solid var(--warm-300);border-radius:var(--radius-sm);padding:9px 13px;display:flex;gap:10px;align-items:center;}
.gram-usage-ctx{font-size:10.5px;color:var(--warm-500);min-width:80px;}
.gram-usage-text{flex:1;}
.gram-usage-kr{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--warm-900);}
.gram-usage-en{font-size:11px;color:var(--warm-500);margin-top:2px;}
.quiz-wrap{max-width:580px;}
.quiz-q{background:#fff;border-radius:var(--radius-md);border:1.5px solid var(--warm-300);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow-sm);}
.q-num{font-size:10.5px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.08em;margin-bottom:7px;}
.q-text{font-family:var(--font-serif);font-size:14.5px;font-weight:700;color:var(--warm-900);margin-bottom:13px;line-height:1.5;}
.q-options{list-style:none;display:flex;flex-direction:column;gap:7px;}
.q-opt{padding:10px 15px;background:var(--warm-50);border:2px solid var(--warm-300);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-family:var(--font-serif);color:var(--warm-700);transition:all .15s;text-align:left;}
.q-opt:hover{border-color:var(--teal-300);background:var(--teal-50);color:var(--teal-900);}
.q-opt.correct{background:var(--green-100);border-color:var(--green-600);color:var(--green-600);font-weight:700;pointer-events:none;}
.q-opt.wrong{background:#FFE4E6;border-color:var(--rose-500);color:var(--rose-500);pointer-events:none;}
.q-exp{display:none;margin-top:11px;background:var(--teal-50);border-left:3px solid var(--teal-md);padding:9px 13px;font-size:12px;color:var(--teal-900);border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.65;}
.q-exp.show{display:block;}
.quiz-reset{margin-top:4px;padding:11px 32px;background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-xl);font-size:13px;font-weight:700;font-family:var(--font-kr);cursor:pointer;transition:all .2s;box-shadow:var(--shadow-md);}
.quiz-reset:hover{background:var(--teal);}
.rl-card{background:#fff;border-radius:var(--radius-md);border:1.5px solid var(--warm-300);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow-sm);}
.rl-title{font-size:14px;font-weight:700;color:var(--warm-900);margin-bottom:4px;}
.rl-setup{font-size:11.5px;color:var(--warm-500);margin-bottom:13px;line-height:1.5;}
.rl-dialogue{display:flex;flex-direction:column;gap:8px;}
.rl-line{display:flex;gap:10px;align-items:flex-start;}
.rl-spk{font-size:11px;font-weight:700;color:var(--teal-600);min-width:58px;padding-top:4px;}
.rl-bubble{flex:1;background:var(--warm-50);border:1px solid var(--warm-300);border-radius:4px 14px 14px 14px;padding:8px 13px;}
.rl-kr{font-family:var(--font-serif);font-size:13px;font-weight:700;color:var(--warm-900);}
.rl-en{font-size:10.5px;color:var(--warm-500);margin-top:2px;}
.rl-speak{background:none;border:none;font-size:14px;cursor:pointer;opacity:.45;transition:opacity .15s;flex-shrink:0;}
.rl-speak:hover{opacity:1;}
.rl-tip{background:var(--amber-50);border:1.5px solid var(--amber-lt);border-radius:var(--radius-md);padding:15px 18px;font-size:13px;line-height:1.8;color:var(--amber-600);margin-bottom:14px;}
.rl-tip-body{font-size:13px;color:var(--amber-600);line-height:1.8;margin-top:6px;}
.loading{padding:50px;text-align:center;color:var(--warm-500);font-size:13px;}
.video-wrap{display:flex;flex-direction:column;gap:20px;padding:16px;}
.video-wrap video{width:100%;border-radius:14px;max-height:420px;background:#000;box-shadow:0 4px 20px rgba(0,0,0,0.15);}
.video-script-panel{background:var(--warm-50);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;}
.video-script-header{font-size:13px;font-weight:700;color:var(--warm-500);margin-bottom:4px;border-bottom:1px solid var(--warm-200);padding-bottom:8px;}
.video-script-line{display:flex;align-items:flex-start;gap:12px;padding:10px 8px;border-radius:10px;transition:background .15s;}
.video-script-line:hover{background:var(--warm-100);}
.video-script-body{flex:1;display:flex;flex-direction:column;gap:3px;}
.video-script-name{font-size:11px;font-weight:700;color:var(--warm-500);margin-bottom:2px;}
.video-script-kr{font-size:15px;font-weight:600;color:var(--warm-900);line-height:1.4;}
.video-script-en{font-size:12px;color:var(--warm-500);line-height:1.3;}
.video-script-tts{background:none;border:1px solid var(--warm-300);border-radius:20px;padding:3px 10px;font-size:11px;cursor:pointer;color:var(--warm-600);margin-top:4px;width:fit-content;}
.video-script-tts:hover{background:var(--warm-100);}
.anno-mark{background:rgba(255,180,0,0.15);border-bottom:2px solid var(--amber,#F59E0B);border-radius:3px;cursor:pointer;padding:0 2px;font-weight:700;}
.anno-mark:hover{background:rgba(255,180,0,0.28);}
.anno-hl{color:var(--coral);font-weight:700;}
.anno-tooltip{position:fixed;background:#1e293b;color:#f8fafc;border-radius:12px;padding:11px 15px;font-size:13px;max-width:270px;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,0.25);line-height:1.55;pointer-events:none;}
.anno-tooltip-tag{font-weight:700;color:#fbbf24;font-size:12px;margin-bottom:4px;}
.anno-tooltip-note{color:#e2e8f0;white-space:pre-line;line-height:1.6;}

/* ── 색인 모달 ─────────────────────────────────────────── */
.idx-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:900;display:none;align-items:flex-start;justify-content:center;padding:40px 16px;}
.idx-overlay.open{display:flex;}
.idx-modal{background:#fff;border-radius:var(--radius-lg);width:100%;max-width:760px;max-height:82vh;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.25);overflow:hidden;}
.wu-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:950;display:none;align-items:center;justify-content:center;padding:24px 16px;}
.wu-overlay.open{display:flex;}
.wu-modal{background:#fff;border-radius:20px;width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.3);padding:36px 32px;}
.fc-overlay{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:960;display:none;align-items:center;justify-content:center;padding:24px 16px;}
.fc-overlay.open{display:flex;}
.fc-modal{background:#fff;border-radius:20px;width:100%;max-width:480px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px rgba(0,0,0,.3);padding:32px 28px;}
.fc-scene{perspective:700px;width:100%;height:210px;cursor:pointer;user-select:none;-webkit-user-select:none;}
.fc-card{width:100%;height:100%;transform-style:preserve-3d;transition:transform 0.45s;position:relative;}
.fc-card.flipped{transform:rotateY(180deg);}
.fc-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;text-align:center;}
.fc-front{background:linear-gradient(135deg,#f0fdfa,#ccfbf1);border:2px solid var(--teal);}
.fc-back{background:linear-gradient(135deg,#fefce8,#fef9c3);border:2px solid var(--amber);transform:rotateY(180deg);}
.fc-sidebar-btn{width:100%;padding:11px 14px;background:linear-gradient(135deg,var(--teal),#0d9488);color:#fff;border:none;border-radius:10px;font-size:13px;font-weight:700;cursor:pointer;text-align:left;display:flex;align-items:center;gap:8px;transition:opacity 0.2s;margin-top:8px;}
.fc-sidebar-btn:hover{opacity:0.88;}
.fc-chip{padding:5px 11px;border:1.5px solid var(--gray-200);border-radius:20px;font-size:12px;cursor:pointer;background:#fff;color:var(--warm-600);font-weight:700;transition:all 0.15s;}
.fc-chip.on{background:var(--teal);color:#fff;border-color:var(--teal);}
.ep-item .ep-done{font-size:10px;margin-left:auto;color:var(--teal);flex-shrink:0;}
.fc-srs-row{display:flex;gap:10px;margin-bottom:12px;}
.fc-srs-btn{flex:1;padding:11px 8px;border:2px solid;border-radius:12px;font-size:13px;font-weight:700;cursor:pointer;transition:all 0.15s;}
.fc-srs-yes{background:#f0fdf4;border-color:#22c55e;color:#15803d;}
.fc-srs-yes:hover{background:#dcfce7;}
.fc-srs-no{background:#fff7ed;border-color:#f97316;color:#c2410c;}
.fc-srs-no:hover{background:#fed7aa;}
.fc-card-badge{position:absolute;top:10px;right:12px;font-size:11px;font-weight:700;padding:2px 8px;border-radius:20px;}
.fc-badge-review{background:#fed7aa;color:#c2410c;}
.fc-badge-known{background:#dcfce7;color:#15803d;}
.idx-header{background:var(--teal-md);color:#fff;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.idx-header h2{font-size:15px;font-weight:700;margin:0;}
.idx-close{background:none;border:none;color:#fff;font-size:20px;cursor:pointer;padding:0 4px;line-height:1;}
.idx-tabs{display:flex;border-bottom:2px solid var(--warm-300);flex-shrink:0;background:#fafafa;}
.idx-tab{padding:10px 20px;font-size:12.5px;font-weight:700;cursor:pointer;color:var(--warm-500);border-bottom:3px solid transparent;margin-bottom:-2px;transition:all .15s;}
.idx-tab.active{color:var(--teal-600);border-bottom-color:var(--teal-md);}
.idx-search{padding:10px 16px;border-bottom:1px solid var(--warm-300);flex-shrink:0;}
.idx-search input{width:100%;padding:8px 12px;border:1.5px solid var(--warm-300);border-radius:var(--radius-md);font-size:13px;font-family:var(--font-kr);outline:none;box-sizing:border-box;}
.idx-search input:focus{border-color:var(--teal-300);}
.idx-body{overflow-y:auto;padding:16px 20px;flex:1;}
.idx-jump-bar{display:flex;flex-wrap:wrap;gap:4px;padding:8px 16px 6px;border-bottom:1px solid var(--warm-200);flex-shrink:0;min-height:36px;}
.idx-jump-btn{padding:3px 9px;border:1.5px solid var(--warm-300);border-radius:6px;background:#fff;font-size:14px;font-weight:700;cursor:pointer;color:var(--warm-700);font-family:var(--font-kr);transition:all .12s;}
.idx-jump-btn:hover{border-color:var(--teal-300);color:var(--teal-600);background:var(--teal-50);}
.idx-page-ctrl{display:flex;align-items:center;justify-content:center;gap:10px;padding:6px 16px;border-bottom:1px solid var(--warm-200);flex-shrink:0;min-height:0;}
.idx-page-btn{padding:3px 13px;border:1.5px solid var(--warm-300);border-radius:6px;background:#fff;cursor:pointer;font-size:13px;font-family:var(--font-kr);}
.idx-page-btn:disabled{opacity:.3;cursor:default;}
.idx-page-info{font-size:12px;color:var(--warm-500);}

.idx-section-hdr{font-size:10.5px;font-weight:700;color:var(--warm-500);text-transform:uppercase;letter-spacing:.08em;margin:16px 0 6px;padding-bottom:4px;border-bottom:1px solid var(--warm-300);}
.idx-section-hdr:first-child{margin-top:0;}
.idx-vocab-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--warm-100);}
.idx-vocab-kr{font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--warm-900);min-width:90px;}
.idx-vocab-en{font-size:12px;color:var(--warm-500);flex:1;}
.idx-ep-badge{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:10px;background:var(--teal-lt);color:var(--teal-600);flex-shrink:0;}
.idx-gram-row{padding:9px 0;border-bottom:1px solid var(--warm-100);}
.idx-gram-title{font-size:13px;font-weight:700;color:var(--warm-900);}
.idx-gram-rule{font-size:11.5px;color:var(--teal);margin-top:2px;}
.idx-pron-row{padding:9px 0;border-bottom:1px solid var(--warm-100);}
.idx-pron-word{font-family:var(--font-serif);font-size:14px;font-weight:700;color:var(--warm-900);}
.idx-pron-note{font-size:12px;color:var(--coral);margin-top:2px;}

/* ── 퀴즈 재설계 ───────────────────────────────────── */
.quiz-mode-bar{display:flex;gap:8px;margin-bottom:18px;}
.quiz-mode-btn{flex:1;padding:9px 0;border:2px solid var(--warm-300);border-radius:var(--radius-md);background:#fff;font-size:12.5px;font-weight:700;font-family:var(--font-kr);cursor:pointer;color:var(--warm-500);transition:all .2s;}
.quiz-mode-btn.active{border-color:var(--teal-md);background:var(--teal-md);color:#fff;}
.quiz-progress{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.quiz-prog-dots{display:flex;gap:5px;}
.quiz-prog-dot{width:9px;height:9px;border-radius:50%;background:var(--warm-300);transition:all .3s;}
.quiz-prog-dot.done{background:var(--teal-md);}
.quiz-prog-dot.current{background:var(--teal-md);transform:scale(1.2);}
.spq-char{display:inline-block;padding:1px 0;}
.spq-gap{display:inline-block;min-width:16px;height:34px;vertical-align:middle;cursor:pointer;}
.spq-gap:hover{background:rgba(129,199,132,0.35);border-radius:3px;}
.quiz-card{background:#fff;border:2px solid var(--warm-300);border-radius:var(--radius-lg);padding:20px;box-shadow:var(--shadow-sm);}
.quiz-q-num{font-size:11px;font-weight:700;color:var(--teal-md);text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px;}
.quiz-q-text{font-size:15px;font-weight:700;color:var(--warm-900);line-height:1.6;margin-bottom:4px;font-family:var(--font-serif);}
.quiz-q-en{font-size:11.5px;color:var(--warm-500);margin-bottom:14px;}
.quiz-opts{display:flex;flex-direction:column;gap:7px;margin-bottom:12px;}
.quiz-opt{padding:11px 15px;background:var(--warm-50);border:2px solid var(--warm-300);border-radius:var(--radius-sm);cursor:pointer;font-size:13px;font-family:var(--font-serif);color:var(--warm-700);transition:all .15s;text-align:left;}
.quiz-opt:hover:not(.locked){border-color:var(--teal-300);background:var(--teal-50);}
.quiz-opt.correct{background:#EDF7F2;border-color:var(--teal-md);color:#2E7D52;font-weight:700;}
.quiz-opt.wrong{background:#FFF0F0;border-color:var(--coral);color:var(--coral);}
.quiz-opt.locked{pointer-events:none;}
.quiz-exp{background:var(--teal-50);border-left:3px solid var(--teal-300);padding:10px 14px;font-size:12.5px;color:var(--teal-900);border-radius:0 var(--radius-sm) var(--radius-sm) 0;line-height:1.7;margin-bottom:12px;display:none;}
.quiz-exp.show{display:block;}
.quiz-next-btn{width:100%;padding:12px;background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-md);font-size:13.5px;font-weight:700;font-family:var(--font-kr);cursor:pointer;transition:all .2s;display:none;}
.quiz-next-btn.show{display:block;}
.quiz-next-btn:hover{background:var(--teal);}
.quiz-listen-wrap{background:var(--teal-50);border-radius:var(--radius-md);padding:14px 16px;margin-bottom:14px;text-align:center;}
.quiz-listen-btn{background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-xl);padding:10px 24px;font-size:13px;font-weight:700;font-family:var(--font-kr);cursor:pointer;}
.quiz-write-input{width:100%;padding:11px 14px;border:2px solid var(--warm-300);border-radius:var(--radius-md);font-size:15px;font-family:var(--font-serif);outline:none;box-sizing:border-box;margin-bottom:8px;}
.quiz-write-input:focus{border-color:var(--teal-300);}
.quiz-check-btn{width:100%;padding:11px;background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:700;font-family:var(--font-kr);cursor:pointer;margin-bottom:10px;}
.quiz-score-wrap{text-align:center;padding:24px 16px;}
.quiz-score-num{font-size:52px;font-weight:900;color:var(--teal-md);}
.quiz-score-lbl{font-size:14px;color:var(--warm-500);margin-top:4px;}
.quiz-retry-btn{margin-top:18px;padding:12px 36px;background:var(--teal-md);color:#fff;border:none;border-radius:var(--radius-xl);font-size:13.5px;font-weight:700;font-family:var(--font-kr);cursor:pointer;}

/* ── 발음 탭 ───────────────────────────────────────── */
.pron-card{background:#fff;border:2px solid var(--warm-300);border-radius:var(--radius-lg);padding:18px 20px;margin-bottom:14px;box-shadow:var(--shadow-sm);}
.pron-title{font-size:14px;font-weight:700;color:var(--warm-900);margin-bottom:4px;}
.pron-rule{font-size:12.5px;color:var(--coral);font-weight:600;margin-bottom:8px;}
.pron-ex{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--warm-100);}
.pron-before{font-family:var(--font-serif);font-size:14px;color:var(--warm-500);text-decoration:line-through;min-width:80px;}
.pron-arrow{color:var(--warm-500);font-size:12px;}
.pron-after{font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--coral);}
.pron-note{font-size:11px;color:var(--warm-500);flex:1;}

/* ── 문법 패턴 공식 박스 ─────────────────────────────── */
.gram-pattern{background:#EEF3FF;border:1.5px solid #A8C0F0;border-radius:var(--radius-md);padding:12px 18px;margin-bottom:12px;font-family:var(--font-serif);font-size:15px;font-weight:700;color:var(--blue);letter-spacing:0.01em;}
/* ── 문법 테이블 ──────────────────────────────────────── */
.gram-table-wrap{overflow-x:auto;margin-bottom:12px;}
.gram-table{width:100%;border-collapse:collapse;font-size:12.5px;}
.gram-table th{background:var(--teal-lt);color:var(--teal-dark);font-weight:700;padding:7px 12px;text-align:left;border-bottom:2px solid var(--teal-300);}
.gram-table td{padding:7px 12px;border-bottom:1px solid var(--warm-100);color:var(--warm-700);font-family:var(--font-serif);}
.gram-table tr:hover td{background:var(--teal-50);}
.gram-table td:first-child{color:var(--warm-500);font-family:var(--font-kr);}
/* ── Fill in the blanks ───────────────────────────────── */
.gram-fill{background:var(--warm-100);border-radius:var(--radius-md);padding:14px 16px;margin-top:14px;}
.gram-fill-title{font-size:11.5px;font-weight:700;color:var(--teal);margin-bottom:10px;display:flex;align-items:center;gap:5px;}
.gram-fill-item{font-size:13.5px;color:var(--warm-900);margin-bottom:8px;font-family:var(--font-serif);display:flex;align-items:baseline;gap:0;flex-wrap:wrap;line-height:2;}
.gram-blank{border:none;border-bottom:2.5px solid var(--blue);background:transparent;width:65px;text-align:center;font-family:var(--font-serif);font-size:13px;color:var(--blue);outline:none;padding:0 2px;transition:border-color .2s;}
.gram-blank:focus{border-bottom-color:var(--teal);}
.gram-fill-actions{display:flex;gap:8px;margin-top:10px;align-items:center;}
.gram-fill-check{padding:6px 18px;background:var(--teal);color:#fff;border:none;border-radius:var(--radius-xl);font-size:12px;font-weight:700;font-family:var(--font-kr);cursor:pointer;transition:background .2s;}
.gram-fill-check:hover{background:var(--teal-600);}
.gram-fill-result{font-size:12px;font-weight:700;padding:4px 10px;border-radius:var(--radius-xl);}
.gram-fill-result.ok{color:#16A34A;background:#DCFCE7;}
.gram-fill-result.ng{color:var(--coral);background:var(--coral-lt);}
/* ── VERB DRILL ─────────────── */
.vd-wrap{margin-top:20px;border:2px solid var(--teal-lt);border-radius:var(--radius-md);overflow:hidden;}
.vd-header{background:linear-gradient(135deg,var(--teal),var(--blue));padding:12px 18px;}
.vd-header-title{color:#fff;font-family:var(--font-kr);font-weight:700;font-size:1rem;}
.vd-header-sub{color:rgba(255,255,255,.8);font-size:11px;margin-top:2px;}
.vd-body{padding:18px;}
.vd-start-btn,.vd-restart-btn{background:var(--teal);color:#fff;border:none;border-radius:var(--radius-xl);padding:10px 28px;font-size:14px;font-weight:700;font-family:var(--font-kr);cursor:pointer;transition:opacity .15s;display:block;margin:12px auto 0;}
.vd-start-btn:hover,.vd-restart-btn:hover{opacity:.85;}
.vd-prog-bar{height:6px;background:var(--warm-200);border-radius:3px;margin-bottom:4px;overflow:hidden;}
.vd-prog-fill{height:100%;background:linear-gradient(90deg,var(--teal),var(--blue));border-radius:3px;transition:width .4s;}
.vd-prog-label{font-size:11px;color:var(--warm-500);text-align:right;margin-bottom:12px;}
.vd-q-box{background:var(--warm-50);border:1.5px solid var(--warm-300);border-radius:var(--radius-md);padding:16px 18px;text-align:center;margin-bottom:14px;}
.vd-verb{font-family:var(--font-serif);font-size:2rem;font-weight:700;color:var(--warm-900);line-height:1.2;}
.vd-verb-rom{font-size:12px;color:var(--warm-500);margin-top:2px;}
.vd-tense-badge{display:inline-block;margin-top:8px;background:var(--blue);color:#fff;border-radius:20px;font-size:12px;font-weight:700;padding:3px 14px;}
.vd-tag{display:inline-block;background:var(--amber-lt);color:var(--amber-600);border-radius:20px;font-size:10px;font-weight:700;padding:2px 8px;margin-top:6px;}
.vd-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:10px;}
.vd-opt{width:100%;padding:11px 16px;border:2px solid var(--warm-300);border-radius:var(--radius-md);background:#fff;font-family:var(--font-serif);font-size:1rem;font-weight:700;color:var(--warm-900);cursor:pointer;text-align:left;transition:all .15s;display:flex;align-items:center;gap:10px;}
.vd-opt:hover:not(:disabled){border-color:var(--teal);background:var(--teal-lt);}
.vd-opt.correct{border-color:#16A34A;background:#DCFCE7;color:#16A34A;}
.vd-opt.wrong{border-color:var(--coral);background:var(--coral-lt);color:var(--coral);}
.vd-opt:disabled{cursor:default;}
.vd-opt-lbl{min-width:18px;font-size:14px;}
.vd-exp{background:#FFFBF0;border:1.5px solid #F0C940;border-radius:var(--radius-md);padding:10px 14px;font-size:12.5px;color:#7A5500;margin-bottom:12px;display:none;}
.vd-exp.show{display:block;}
.vd-next-btn{background:var(--teal);color:#fff;border:none;border-radius:var(--radius-xl);padding:9px 28px;font-size:13px;font-weight:700;font-family:var(--font-kr);cursor:pointer;display:none;margin-top:4px;}
.vd-next-btn.show{display:inline-block;}
.vd-score-wrap{text-align:center;padding:12px 0;}
.vd-score-num{font-family:var(--font-serif);font-size:2.5rem;font-weight:700;}
.vd-score-label{font-size:13px;color:var(--warm-500);margin-top:4px;}
.vd-grade{font-size:2rem;margin:8px 0 4px;}
.vd-grade-label{font-size:1rem;font-weight:700;}

/* ── SPEAKING PRACTICE ─────────────────────────────────── */
.speak-btn{display:flex;align-items:center;gap:6px;padding:8px 18px;background:var(--amber);color:#fff;border:none;border-radius:var(--radius-xl);font-size:12.5px;font-weight:700;font-family:var(--font-kr);cursor:pointer;transition:all .2s;box-shadow:0 2px 6px rgba(0,0,0,0.15);margin:8px 0 4px;}
.speak-btn:hover{background:var(--amber-600);}
.speak-btn:disabled{background:var(--warm-300);cursor:default;}
.speak-btn.listening{background:var(--coral)!important;animation:pulse .8s ease-in-out infinite;}
.nav-speak-btn.rec-on{background:var(--coral)!important;color:#fff;border-color:var(--coral);animation:pulse .8s ease-in-out infinite;}
.nav-speak-btn.rec-done{background:#2ecc71!important;color:#fff;border-color:#27ae60;}
.shad-result{display:none;background:linear-gradient(135deg,#E8F5E9,#F9FBE7);border:1.5px solid #A5D6A7;border-radius:10px;padding:10px 14px;margin:8px 12px 0;font-family:var(--font-kr);}
.shad-said{font-size:16px;font-weight:700;color:#1B5E20;margin:2px 0 4px;}
.shad-label{font-size:10px;color:#81C784;font-weight:600;letter-spacing:.5px;text-transform:uppercase;}
.shad-orig{font-size:11px;color:#aaa;margin-top:4px;padding-top:4px;border-top:1px solid #E8F5E9;}
.shad-strip-btn{font-size:12px;background:none;border:1px solid #A5D6A7;border-radius:6px;padding:2px 7px;cursor:pointer;color:#388E3C;margin-left:6px;flex-shrink:0;}
.shad-strip-btn.rec-on{background:var(--coral);color:#fff;border-color:var(--coral);}
.shad-strip-result{font-size:13px;color:#1B5E20;font-weight:600;background:#F1F8E9;border-radius:6px;padding:4px 8px;margin-top:4px;display:none;}

@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.7;}}




/* ── BASICS SIDEBAR ─────────────────────────────────── */
.basics-topic-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer;transition:all .15s;border:1.5px solid transparent;min-height:50px;}
.basics-topic-item:hover{background:var(--amber-50);border-color:var(--amber-lt);}
.basics-topic-item.active{background:var(--amber-lt);border-color:#e8b86a;}
.basics-topic-icon{font-size:17px;width:28px;text-align:center;flex-shrink:0;}
.basics-topic-name{font-size:12px;color:var(--warm-500);line-height:1.35;}
.basics-topic-name-en{font-size:10px;color:var(--warm-300);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.basics-topic-item.active .basics-topic-name{color:var(--amber-600);font-weight:700;}
.sidebar-hdr-amber{font-size:10px;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:12px;padding-bottom:8px;border-bottom:2px solid var(--amber-lt);}
/* ── BASICS CONTENT ──────────────────────────────────── */
.basics-header{background:linear-gradient(135deg,var(--amber-lt),var(--amber-50));border:1.5px solid #f0d090;border-radius:var(--radius-md);padding:18px 22px;margin-bottom:20px;display:flex;align-items:center;gap:14px;}
.basics-icon-big{font-size:36px;line-height:1;flex-shrink:0;width:52px;height:52px;display:flex;align-items:center;justify-content:center;}
.basics-title-kr{font-family:var(--font-serif);font-size:20px;font-weight:700;color:var(--amber-600);}
.basics-title-en{font-size:13px;color:var(--warm-500);margin-top:3px;}
.basics-intro{font-size:13px;color:var(--warm-700);background:var(--warm-100);border-radius:var(--radius-sm);padding:10px 14px;margin-bottom:18px;line-height:1.6;}
/* ── BASICS SUBTABS ─────────────────────────────────── */
.btab-bar{display:flex;gap:6px;margin-bottom:18px;flex-wrap:wrap;}
.btab{padding:7px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-xl);font-size:12px;font-weight:700;cursor:pointer;background:#fff;color:var(--warm-500);transition:all .2s;font-family:var(--font-kr);}
.btab:hover{border-color:var(--amber-lt);color:var(--amber);}
.btab.active{background:var(--amber);border-color:var(--amber);color:#fff;}
.btab-panel{display:none;}.btab-panel.active{display:block;}
/* ── HANGUL CARDS ───────────────────────────────────── */
.hangul-section-title{font-size:12px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.1em;margin:16px 0 8px;}
.hangul-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:7px;margin-bottom:18px;}
.hcard{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:10px 4px;text-align:center;cursor:pointer;transition:all .18s;user-select:none;}
.hcard:hover,.hcard.playing{border-color:var(--teal-md);background:var(--teal-50);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.hcard-kr{font-size:28px;font-weight:700;color:var(--gray-900);line-height:1.1;}
.hcard-name{font-size:9.5px;color:var(--warm-400);font-weight:600;margin-top:2px;}
.hcard-rom{font-size:10px;color:var(--teal);font-weight:700;margin-top:2px;}
.hcard-ex{font-size:9px;color:#a8a29e;margin-top:1px;}
/* ── SYLLABLE BUILDER ───────────────────────────────── */
.syl-builder{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:20px;margin-bottom:20px;}
.syl-builder-title{font-size:13px;font-weight:700;color:var(--amber-600);margin-bottom:4px;}
.syl-builder-desc{font-size:11.5px;color:var(--warm-500);margin-bottom:14px;}
.syl-slots-row{display:flex;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap;}
.syl-slot-group{text-align:center;}
.syl-slot{width:66px;height:66px;border:2.5px dashed var(--gray-200);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:700;color:var(--gray-900);background:var(--gray-100);cursor:pointer;transition:all .2s;}
.syl-slot.filled{border-style:solid;border-color:var(--teal-md);background:#fff;color:var(--teal-dark);}
.syl-slot.optional{border-color:var(--gray-200);opacity:.5;}
.syl-slot.optional.filled{opacity:1;}
.syl-slot-label{font-size:9px;color:var(--warm-500);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-top:4px;}
.syl-plus{font-size:20px;color:var(--gray-200);font-weight:300;margin-top:-20px;}
.batchim-groups{display:flex;flex-direction:column;gap:12px;margin:12px 0;}
.batchim-group{border:1.5px solid var(--warm-200);border-radius:12px;overflow:hidden;}
.batchim-group-hdr{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--teal-50);border-bottom:1px solid var(--warm-200);}
.batchim-group-sound{font-size:28px;font-weight:900;color:var(--teal-dark);min-width:36px;font-family:var(--font-kr);}
.batchim-group-rom{font-size:13px;font-weight:700;color:var(--teal);min-width:80px;font-family:monospace;}
.batchim-group-ex{font-size:12px;color:var(--warm-600);flex:1;}
.batchim-group-tts{padding:5px 12px;border:none;border-radius:7px;background:var(--teal);color:#fff;font-size:14px;cursor:pointer;font-weight:700;}
.batchim-group-tts:hover{background:var(--teal-dark);}
.batchim-members{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;background:#fff;}
.batchim-member{display:flex;flex-direction:column;align-items:center;padding:8px 12px;border-radius:8px;background:var(--warm-50);border:1.5px solid var(--warm-200);min-width:52px;}
.batchim-member-kr{font-size:24px;font-weight:900;color:var(--warm-800);font-family:var(--font-kr);}
.batchim-member-ex{font-size:10px;color:var(--warm-500);margin-top:2px;}
.syl-result-box{text-align:center;padding:18px 24px;background:var(--teal-50);border-radius:var(--radius-md);border:2px solid var(--teal-lt);min-width:100px;}
.syl-result-char{font-size:72px;font-weight:900;color:var(--teal-dark);line-height:1;}
.syl-result-rom{font-size:13px;color:var(--teal);margin-top:4px;font-weight:600;}
.syl-picker-label{font-size:11px;font-weight:700;color:var(--warm-700);margin:12px 0 6px;}
.syl-picker{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:4px;}
.spick{padding:5px 10px;border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);font-size:15px;font-weight:700;cursor:pointer;background:#fff;transition:all .15s;color:var(--gray-900);}
.spick:hover{border-color:var(--teal-md);background:var(--teal-50);}
.spick.sel{border-color:var(--teal);background:var(--teal-lt);color:var(--teal-dark);}
.syl-clear-btn{margin-top:12px;padding:7px 18px;background:var(--gray-100);border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);font-size:12px;cursor:pointer;color:var(--warm-500);font-family:var(--font-kr);}
.syl-clear-btn:hover{background:var(--gray-200);}
/* ── SENTENCE STRUCTURE ─────────────────────────────── */
.structure-compare{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:20px;}
.structure-box{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:14px;}
.structure-box-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:10px;padding-bottom:6px;border-bottom:1px solid var(--gray-200);}
.structure-box.english .structure-box-title{color:var(--blue);}
.structure-box.korean .structure-box-title{color:var(--teal);}
.chunk-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px;align-items:center;}
.chunk{display:inline-flex;flex-direction:column;align-items:center;padding:6px 12px;border-radius:var(--radius-sm);font-size:15px;font-weight:700;color:#fff;min-width:50px;}
.chunk sub{font-size:9px;font-weight:400;color:rgba(255,255,255,.85);display:block;text-align:center;margin-top:1px;}
.chunk-arrow{font-size:18px;color:var(--gray-200);}
.c-subj{background:var(--teal);}
.c-obj{background:var(--amber);}
.c-verb{background:var(--coral);}
.c-time{background:var(--purple);}
.structure-note{background:var(--amber-50);border:1.5px solid var(--amber-lt);border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;color:var(--amber-600);margin-bottom:16px;}
.structure-ex-table{width:100%;border-collapse:collapse;margin-bottom:18px;background:#fff;border-radius:var(--radius-md);overflow:hidden;border:2px solid var(--gray-200);}
.structure-ex-table th{background:var(--gray-100);font-size:11px;font-weight:700;color:var(--warm-500);text-transform:uppercase;padding:8px 12px;text-align:left;}
.structure-ex-table td{padding:10px 12px;font-size:13.5px;border-top:1px solid var(--gray-200);}
.structure-ex-table td:first-child{font-weight:700;color:var(--teal-dark);}
/* ── GREETINGS ──────────────────────────────────────── */
.greet-card{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:all .18s;}
.greet-card:hover{border-color:var(--teal-md);background:var(--teal-50);transform:translateX(4px);}
.greet-emoji{font-size:26px;width:36px;text-align:center;flex-shrink:0;}
.greet-body{flex:1;}
.greet-kr{font-size:18px;font-weight:700;color:var(--gray-900);}
.greet-rom{font-size:10.5px;color:var(--teal);font-weight:600;margin-top:2px;}
.greet-en{font-size:12px;color:var(--warm-500);margin-top:2px;}
.greet-ctx{font-size:10.5px;color:var(--amber-600);background:var(--amber-50);border-radius:6px;padding:2px 8px;margin-left:auto;flex-shrink:0;white-space:nowrap;}
.greet-usage{font-size:10.5px;color:var(--amber-600);background:var(--amber-50);border-radius:6px;padding:2px 8px;margin-left:auto;flex-shrink:0;text-align:right;max-width:140px;line-height:1.4;}
.greet-speak-icon{font-size:13px;opacity:.6;}
.farewell-tip{background:var(--teal-50);border-left:3px solid var(--teal);border-radius:var(--radius-sm);padding:10px 14px;font-size:12.5px;color:var(--teal-dark);margin-bottom:14px;line-height:1.6;}
/* ── CLASSROOM 2-COL ─────────────────────────────────── */
.class-cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:520px){.class-cols{grid-template-columns:1fr;}}

/* ── MOBILE RESPONSIVE ───────────────────────────────── */
@media(max-width:700px){
  /* 상단 바 */
  .top-bar{padding:0 12px;height:50px;gap:8px;}
  .school-title{font-size:14px;}
  .kq-logo{font-size:17px;}
  .level-btn{padding:4px 10px;font-size:11px;}
  .index-btn{padding:5px 10px;font-size:11px;}

  /* 사이드바 → 슬라이드 드로어 */
  .sidebar-toggle-btn{display:flex;}
  .main-layout{flex-direction:column;}
  .sidebar{display:none;}
  body.mobile-sidebar-open .sidebar{
    display:flex;
    position:fixed;
    top:0; left:0; bottom:0;
    width:78%; max-width:280px;
    height:100vh;
    z-index:500;
    box-shadow:4px 0 18px rgba(0,0,0,0.2);
    overflow-y:auto;
  }
  body.mobile-sidebar-open .sidebar-backdrop{display:block;}

  /* 콘텐츠 영역 */
  .content-area{padding:14px 12px 24px;}

  /* 슬라이드 높이 축소 */
  .scene-panel{height:220px;}

  /* 탭 버튼 작게 */
  .tab-btn{padding:9px 10px;font-size:11.5px;}

  /* 어휘 그리드 */
  .vocab-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));}

  /* 에피소드 헤더 */
  .ep-header{padding:14px 16px;gap:10px;}
  .ep-title-kr{font-size:16px;}
  .ep-scene-badge{font-size:11px;padding:5px 10px;}

  /* 문법 테이블 가로 스크롤 */
  .grammar-table-wrap, table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;}
}
.class-col-hdr{font-size:13px;font-weight:800;border-radius:var(--radius-sm);padding:8px 12px;margin-bottom:8px;text-align:center;line-height:1.5;}
.teacher-hdr{background:var(--teal-50);color:var(--teal-dark);border:1.5px solid var(--teal-lt);}
.student-hdr{background:var(--amber-50);color:var(--amber-600);border:1.5px solid var(--amber-lt);}
.class-card{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:9px 12px;margin-bottom:7px;cursor:pointer;transition:all .15s;}
.class-card:hover{border-color:var(--teal-md);background:var(--teal-50);}
.class-kr{font-size:15px;font-weight:700;color:var(--gray-900);}
.class-rom{font-size:10px;color:var(--teal);font-weight:600;margin-top:2px;}
.class-en{font-size:11.5px;color:var(--warm-500);margin-top:2px;}
/* ── NUMBERS ────────────────────────────────────────── */
.num-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-bottom:18px;}
.num-card{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:10px 8px;text-align:center;cursor:pointer;transition:all .18s;}
.num-card:hover{border-color:var(--amber-lt);background:var(--amber-50);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.num-card-num{font-size:20px;font-weight:900;color:var(--amber-600);}
.num-card-kr{font-size:19px;font-weight:700;color:var(--gray-900);margin-top:3px;}
.num-card-rom{font-size:10px;color:var(--warm-500);margin-top:1px;}
.num-card-hint{font-size:10px;color:var(--teal);margin-top:2px;font-style:italic;}
.num-usage-box{background:var(--teal-50);border:1.5px solid var(--teal-lt);border-radius:var(--radius-sm);padding:12px 16px;font-size:13px;color:var(--teal-dark);margin-bottom:16px;line-height:1.8;}
/* ── BIG NUMBERS ────────────────────────────────────── */
.bignum-key-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:6px;}
.bignum-key-card{border-radius:var(--radius-md);padding:12px 10px;text-align:center;border:2px solid;}
.bignum-key-card.teal{background:var(--teal-50);border-color:var(--teal-lt);}
.bignum-key-card.purple{background:#f3f0ff;border-color:#c4b5fd;}
.bignum-key-card.coral{background:#fff5f2;border-color:#fca89a;}
.bignum-key-num{font-size:9px;color:var(--warm-400);margin-bottom:3px;font-family:monospace;}
.bignum-key-kr{font-size:26px;font-weight:900;cursor:pointer;}
.bignum-key-card.teal .bignum-key-kr{color:var(--teal-dark);}
.bignum-key-card.purple .bignum-key-kr{color:#7c3aed;}
.bignum-key-card.coral .bignum-key-kr{color:var(--coral);}
.bignum-key-en{font-size:10px;font-weight:700;margin-top:2px;color:var(--warm-500);}
.bignum-key-sub{font-size:9.5px;color:var(--warm-400);margin-top:4px;line-height:1.5;}
.bignum-table td,.bignum-table th{font-size:12px!important;padding:6px 8px!important;}
.bignum-row-man td{background:var(--teal-50);font-weight:700;color:var(--teal-dark);}
.bignum-row-eok td{background:#f3f0ff;font-weight:700;color:#7c3aed;}
.bignum-compare{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:center;margin-bottom:16px;}
.bignum-compare-col{border-radius:var(--radius-md);padding:14px 12px;text-align:center;}
.en-col{background:#f0f4ff;border:1.5px solid #bfcbff;}
.kr-col{background:var(--teal-50);border:1.5px solid var(--teal-lt);}
.bignum-compare-hdr{font-size:11px;font-weight:700;margin-bottom:6px;color:var(--warm-500);}
.bignum-compare-num{font-size:20px;font-weight:900;margin-bottom:4px;font-family:monospace;}
.en-col .bignum-compare-num{color:#3b4cc0;}
.kr-col .bignum-compare-num{color:var(--teal-dark);}
.bignum-compare-break{font-size:13px;margin-bottom:4px;color:var(--warm-600);}
.bignum-compare-read{font-size:12px;color:var(--warm-500);font-style:italic;}
.bignum-compare-arrow{font-size:22px;color:var(--warm-400);text-align:center;}
.bignum-unit-badge{display:inline-block;border-radius:4px;padding:1px 5px;font-size:11px;font-weight:700;margin:0 1px;}
.en-badge{background:#dde4ff;color:#3b4cc0;}
.kr-badge{background:var(--teal-50);color:var(--teal-dark);border:1px solid var(--teal-lt);}
.bignum-converter{background:#fff;border:1.5px solid var(--gray-200);border-radius:var(--radius-md);padding:14px 16px;}
.bignum-input{width:100%;box-sizing:border-box;border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:9px 12px;font-size:16px;outline:none;margin-bottom:10px;}
.bignum-input:focus{border-color:var(--teal);}
.bignum-result{min-height:48px;font-size:14px;line-height:1.8;}
.bignum-result-row{display:flex;gap:8px;align-items:baseline;margin-bottom:4px;}
.bignum-result-label{font-size:11px;color:var(--warm-400);width:90px;flex-shrink:0;}
.bignum-result-val{font-weight:700;font-family:monospace;}
.bignum-result-kr{color:var(--teal-dark);font-size:16px;}
.bignum-result-read{font-size:13px;color:var(--warm-600);cursor:pointer;}
/* ── WRITING ────────────────────────────────────────── */
.writing-chars{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.wchar-btn{padding:7px 12px;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:22px;font-weight:700;cursor:pointer;background:#fff;transition:all .18s;color:var(--gray-900);}
.wchar-btn:hover,.wchar-btn.active{border-color:var(--teal);background:var(--teal-lt);color:var(--teal-dark);}
.writing-canvas-wrap{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:18px;}
.writing-canvas-box{flex:1;min-width:200px;}
.writing-canvas{border:2px solid var(--gray-200);border-radius:var(--radius-md);background:#fff;display:block;cursor:crosshair;touch-action:none;}
.writing-guide-box{width:156px;background:var(--teal-50);border:2px solid var(--teal-lt);border-radius:var(--radius-md);padding:14px;text-align:center;}
.writing-guide-char{font-size:80px;font-weight:900;color:var(--teal-dark);line-height:1;}
.writing-guide-rom{font-size:13px;color:var(--teal);font-weight:600;margin-top:4px;}
.writing-guide-strokes{font-size:11px;color:var(--warm-500);margin-top:4px;}
.writing-btns{display:flex;gap:8px;flex-wrap:wrap;}
.writing-btn{padding:7px 16px;border:1.5px solid var(--gray-200);border-radius:var(--radius-xl);font-size:12px;cursor:pointer;background:#fff;color:var(--warm-700);font-family:var(--font-kr);transition:all .2s;}
.writing-btn:hover{border-color:var(--teal);color:var(--teal);}
/* ── VERBS ──────────────────────────────────────────── */
.rule-examples span{display:block;}
.verb-rule-box{background:var(--teal-50);border:2px solid var(--teal-lt);border-radius:var(--radius-md);padding:14px 18px;margin-bottom:18px;}
.verb-rule-title{font-size:12px;font-weight:700;color:var(--teal);text-transform:uppercase;letter-spacing:.08em;margin-bottom:8px;}
.verb-rule-text{font-size:13px;color:var(--teal-dark);line-height:1.7;}
.verb-rule-formula{background:var(--teal-lt);border-radius:var(--radius-sm);padding:8px 14px;font-size:14px;font-weight:700;color:var(--teal-dark);text-align:center;margin-top:8px;}
.verb-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(196px,1fr));gap:10px;margin-bottom:18px;}
.verb-card{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:12px 14px;cursor:pointer;transition:all .18s;}
.verb-card:hover{border-color:var(--teal-md);transform:translateY(-2px);box-shadow:var(--shadow-sm);}
.verb-dict{font-size:18px;font-weight:900;color:var(--teal-dark);}
.verb-dict-rom{font-size:10px;color:var(--teal);font-weight:600;margin-bottom:4px;}
.verb-mean{font-size:12px;color:var(--warm-500);margin-bottom:10px;}
.verb-forms{display:grid;grid-template-columns:1fr 1fr;gap:6px;}
.verb-form-box{background:var(--teal-50);border:1px solid var(--teal-lt);border-radius:var(--radius-sm);padding:6px 8px;text-align:center;}
.verb-form-label{font-size:9px;color:var(--teal);font-weight:700;text-transform:uppercase;}
.verb-form-kr{font-size:14px;font-weight:700;color:var(--teal-dark);}
.verb-form-rom{font-size:10px;color:var(--warm-500);}
.verb-game-box{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-lg);padding:20px;margin-bottom:18px;}
.verb-game-title{font-size:13px;font-weight:700;color:var(--amber-600);margin-bottom:14px;}
.verb-game-q{font-size:28px;font-weight:900;color:var(--teal-dark);text-align:center;padding:16px;background:var(--teal-50);border-radius:var(--radius-md);border:2px solid var(--teal-lt);margin-bottom:16px;}
.verb-game-hint{font-size:12px;color:var(--warm-500);text-align:center;margin-top:4px;}
.verb-game-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.verb-choice{padding:12px 16px;border:2px solid var(--gray-200);border-radius:var(--radius-md);font-size:18px;font-weight:700;cursor:pointer;background:#fff;transition:all .18s;text-align:center;color:var(--gray-900);font-family:var(--font-kr);}
.verb-choice:hover{border-color:var(--teal-md);background:var(--teal-50);}
.verb-choice.correct{background:var(--green-100);border-color:var(--green-600);color:var(--green-600);}
.verb-choice.wrong{background:var(--rose-100);border-color:var(--rose-500);color:var(--rose-500);}
.verb-game-result{text-align:center;padding:10px;font-size:14px;font-weight:700;min-height:24px;}
.verb-game-next{display:none;margin:10px auto 0;padding:8px 22px;background:var(--amber);border:none;border-radius:var(--radius-xl);color:#fff;font-size:13px;font-weight:700;cursor:pointer;font-family:var(--font-kr);}
/* ── VERB CONJUGATION EXPANDED ─────────────────────── */
.vconj-section-title{font-size:15px;font-weight:800;color:var(--teal-dark);margin:18px 0 10px;display:flex;align-items:center;gap:8px;border-bottom:2px solid var(--teal-lt);padding-bottom:6px;}
.vconj-concept-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;}
.vconj-concept-card{background:#fff;border:2px solid var(--teal-lt);border-radius:var(--radius-md);padding:14px 16px;}
.vconj-concept-icon{font-size:22px;margin-bottom:6px;}
.vconj-concept-label{font-size:13px;font-weight:800;color:var(--teal-dark);margin-bottom:4px;}
.vconj-concept-label-en{font-size:11px;color:var(--teal);font-weight:500;display:block;margin-bottom:6px;}
.vconj-concept-desc{font-size:12px;color:var(--warm-500);line-height:1.6;}
.vconj-formula{background:var(--teal-lt);border-radius:var(--radius-sm);padding:8px 14px;font-size:13px;font-weight:700;color:var(--teal-dark);text-align:center;margin-top:8px;}
.vconj-verb-card{background:#fff;border:2px solid var(--gray-200);border-radius:var(--radius-md);padding:16px 18px;margin-bottom:14px;}
.vconj-verb-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.vconj-verb-emoji{font-size:32px;}
.vconj-verb-title{font-size:18px;font-weight:900;color:var(--teal-dark);}
.vconj-verb-title-en{font-size:12px;color:var(--warm-400);font-weight:500;}
.vconj-verb-rule{background:var(--teal-50);border:1.5px solid var(--teal-lt);border-radius:var(--radius-sm);padding:8px 12px;font-size:12px;color:var(--teal-dark);margin-bottom:12px;line-height:1.6;}
.vconj-tense-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
.vconj-tense-box{background:var(--warm-50);border:1.5px solid var(--gray-200);border-radius:var(--radius-sm);padding:10px;text-align:center;}
.vconj-tense-label{font-size:10px;font-weight:700;color:var(--warm-400);text-transform:uppercase;margin-bottom:4px;}
.vconj-tense-formal{font-size:15px;font-weight:800;color:var(--teal-dark);}
.vconj-tense-informal{font-size:13px;font-weight:600;color:var(--coral);margin-top:2px;}
.vconj-tense-formula{font-size:10px;color:var(--warm-400);margin-top:3px;}
.vconj-irreg-badge{display:inline-block;background:var(--coral);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;margin-left:8px;vertical-align:middle;}
.vconj-regular-badge{display:inline-block;background:var(--teal);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:99px;margin-left:8px;vertical-align:middle;}
.vconj-caution{background:var(--amber-50);border:1.5px solid var(--amber-lt);border-radius:var(--radius-sm);padding:10px 14px;font-size:12px;color:var(--amber-600);margin-top:14px;line-height:1.7;}
.vconj-overview-img{display:block;max-width:70%;margin:0 auto 14px;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1.5px solid var(--gray-200);}
/* ── SPEAKING BASICS ────────────────────────────────── */

.speak-tts-btn{padding:6px 14px;background:var(--teal-lt);border:1.5px solid var(--teal-300);border-radius:var(--radius-xl);font-size:12px;cursor:pointer;color:var(--teal);font-family:var(--font-kr);transition:all .2s;}
.speak-tts-btn:hover{background:var(--teal-50);border-color:var(--teal);}

/* ── SITE FOOTER ────────────────────────────────────── */
.hq-footer{margin-top:48px;padding:26px 24px 0;border-top:1px solid var(--gray-200);background:#fff;flex-shrink:0;}
.hq-footer-inner{max-width:980px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-bottom:16px;}
.hq-footer-brand{display:flex;align-items:center;gap:9px;}
.hq-footer-name{font-size:12.5px;font-weight:700;color:var(--warm-900);letter-spacing:.01em;}
.hq-footer-links{display:flex;flex-wrap:wrap;gap:5px 20px;}
.hq-footer-links a{font-size:12px;color:var(--warm-500);text-decoration:none;transition:color .15s;white-space:nowrap;}
.hq-footer-links a:hover{color:var(--teal);}
.hq-footer-copy{max-width:980px;margin:0 auto;padding:14px 0 22px;border-top:1px solid var(--gray-100);text-align:center;font-size:10.5px;color:var(--warm-300);letter-spacing:.03em;line-height:1.8;}
@media (max-width:640px){.hq-footer-inner{flex-direction:column;align-items:flex-start;}}

