:root{--pink-1:#ff6b9d;--pink-2:#c62b6b;--purple-1:#a78bfa;--purple-2:#6d28d9;--blue-1:#60d3ff;--blue-2:#1e88b8;--bg:#fff7fb;--card:#fff;--ink:#3a2545;--ink-soft:#6b5a76;--line:#f0d7e4;--shadow:0 10px 30px rgba(198,43,107,.14);--shadow-hi:0 18px 44px rgba(198,43,107,.24);--read:#fffdf8;--q:#6d28d9;--qbg:#f4efff;}
*{box-sizing:border-box;}html,body{margin:0;padding:0;}
body{font-family:"Varela Round","Segoe UI",Arial,sans-serif;background:radial-gradient(circle at 8% 0%,#ffe3ef 0,transparent 45%),radial-gradient(circle at 100% 10%,#e3f4ff 0,transparent 40%),var(--bg);color:var(--ink);min-height:100vh;}
a{color:inherit;}
button{font-family:inherit;}

/* hero */
header.hero{padding:50px 20px 86px;text-align:center;background:linear-gradient(135deg,var(--pink-1),var(--purple-1) 55%,var(--blue-1));color:#fff;position:relative;overflow:hidden;}
header.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.08) 0 18px,transparent 18px 36px);pointer-events:none;}
header.hero>*{position:relative;}
header.hero h1{margin:0 0 10px;font-size:clamp(1.8rem,5vw,3rem);font-weight:800;text-shadow:0 3px 12px rgba(0,0,0,.15);}
header.hero p{margin:0 auto;max-width:660px;font-size:1.08rem;opacity:.96;line-height:1.65;}
header.hero.small{padding:30px 18px 70px;}
header.hero.small h1{font-size:clamp(1.5rem,4.2vw,2.4rem);max-width:900px;margin:10px auto 8px;line-height:1.35;}
.speaker{font-size:1.1rem!important;font-weight:700;}
.crumbs{font-size:.9rem;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;opacity:.95;}
.crumbs a{text-decoration:none;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:3px 12px;font-weight:700;}
.crumbs a:hover{background:rgba(255,255,255,.35);}
.stats{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:18px;}
.stat{background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.4);border-radius:999px;padding:6px 16px;font-weight:700;font-size:.9rem;}

/* index */
.wrap{max-width:1180px;margin:-56px auto 0;padding:0 16px 60px;position:relative;}
.toolbar{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:16px;margin-bottom:24px;}
#search{width:100%;padding:13px 20px;border-radius:999px;border:2px solid #ffd7e6;font-family:inherit;font-size:1rem;outline:none;background:#fff8fb;color:var(--ink);}
#search:focus{border-color:var(--pink-1);}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;}
.chip{border:2px solid #f3dbe8;background:#fff;border-radius:999px;padding:6px 14px;font-size:.88rem;font-weight:700;color:var(--ink-soft);cursor:pointer;transition:.15s;}
.chip:hover{border-color:var(--pink-1);color:var(--pink-2);}
.chip.on{background:linear-gradient(135deg,var(--pink-1),var(--purple-1));border-color:transparent;color:#fff;box-shadow:0 4px 12px rgba(198,43,107,.25);}
.chip .n{opacity:.7;font-weight:400;margin-inline-start:4px;}
.section-title{font-size:1.1rem;color:var(--pink-2);margin:0 4px 14px;font-weight:800;}
.topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:18px;}
.topic{display:flex;flex-direction:column;background:var(--card);border-radius:22px;box-shadow:var(--shadow);text-decoration:none;overflow:hidden;transition:.2s;cursor:pointer;border:0;text-align:inherit;padding:0;color:inherit;}
.topic:hover{transform:translateY(-4px);box-shadow:var(--shadow-hi);}
.topic .band{height:96px;display:flex;align-items:center;justify-content:center;gap:14px;font-size:2.6rem;background:linear-gradient(135deg,var(--c1),var(--c2));position:relative;color:#fff;}
.topic .band::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(135deg,rgba(255,255,255,.1) 0 14px,transparent 14px 28px);}
.topic .band .cnt{font-size:1rem;font-weight:800;background:rgba(255,255,255,.25);border-radius:999px;padding:4px 12px;position:relative;}
.topic .tb{padding:14px 18px 16px;}
.topic h3{margin:0 0 8px;font-size:1.2rem;}
.topic .subs{display:flex;flex-wrap:wrap;gap:5px;}
.topic .subs span{font-size:.75rem;background:#f6f1ff;color:var(--purple-2);border-radius:8px;padding:2px 8px;}
.subtoc{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:14px 18px;margin-bottom:22px;display:flex;flex-wrap:wrap;gap:6px;align-items:center;}
.subtoc b{color:var(--purple-2);margin-inline-end:6px;}
.subtoc a{text-decoration:none;border:2px solid #ece3fb;background:#fbf8ff;border-radius:999px;padding:3px 11px;font-size:.88rem;font-weight:700;color:var(--ink-soft);}
.subtoc a:hover{border-color:var(--purple-1);color:var(--purple-2);}
.subtoc a .n{opacity:.6;font-weight:400;margin-inline-start:4px;}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:20px;}
.ph{grid-column:1/-1;margin:22px 4px 0;font-size:1.3rem;font-weight:800;color:var(--purple-2);border-bottom:3px solid #e9ddff;padding-bottom:6px;scroll-margin-top:14px;}
.ph:first-child{margin-top:0;}
.ph .n{font-size:.9rem;color:var(--ink-soft);font-weight:400;margin-inline-start:8px;}
.ph a{font-size:.8rem;font-weight:700;color:var(--ink-soft);margin-inline-start:10px;text-decoration:none;}
.card{position:relative;display:flex;flex-direction:column;background:var(--card);border-radius:22px;box-shadow:var(--shadow);text-decoration:none;overflow:hidden;transition:.2s;}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hi);}
.card .pic{aspect-ratio:16/9;overflow:hidden;background:linear-gradient(135deg,var(--c1),var(--c2));position:relative;display:grid;place-items:center;font-size:2.6rem;}
.card .pic img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s;position:absolute;inset:0;}
.card:hover .pic img{transform:scale(1.04);}
.card .parts{position:absolute;top:10px;inset-inline-start:10px;background:rgba(255,255,255,.92);color:var(--pink-2);font-weight:800;font-size:.72rem;padding:3px 10px;border-radius:999px;z-index:1;}
.card .body{padding:14px 18px 14px;display:flex;flex-direction:column;gap:7px;flex:1;}
.card h3{margin:0;font-size:1.1rem;line-height:1.4;}
.card .sp{color:var(--pink-2);font-size:.88rem;font-weight:700;}
.card p{margin:0;color:var(--ink-soft);font-size:.88rem;line-height:1.6;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.card p mark{background:#ffe08a;color:inherit;border-radius:3px;}
.cat{display:inline-block;align-self:flex-start;font-size:.75rem;font-weight:800;color:var(--c2);background:color-mix(in srgb,var(--c1) 18%,#fff);border-radius:999px;padding:3px 10px;}
.card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);font-size:.8rem;color:var(--ink-soft);}
.card .go{font-weight:800;color:var(--pink-2);}
.msg{text-align:center;color:var(--ink-soft);padding:46px 10px;font-size:1.05rem;}
.more{display:block;margin:22px auto 0;border:2px solid var(--pink-1);background:#fff;color:var(--pink-2);border-radius:999px;padding:10px 26px;font-weight:800;cursor:pointer;}
.about{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:18px 22px;margin:28px 0 0;color:var(--ink-soft);line-height:1.7;}
.about h2{margin:0 0 6px;font-size:1.1rem;color:var(--purple-2);}
noscript ul{columns:2;}

/* lesson */
.lwrap{max-width:880px;margin:-50px auto 0;padding:0 16px 50px;position:relative;}
.video-card{background:var(--card);border-radius:22px;box-shadow:var(--shadow);padding:14px;margin-bottom:22px;}
.video-card .part{font-weight:800;color:var(--purple-2);margin:8px 6px 8px;}
.video-card .part:first-child{margin-top:0;}
.video-frame{aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#1d1424;}
.video-frame button{all:unset;cursor:pointer;display:block;width:100%;height:100%;position:relative;}
.video-frame img{width:100%;height:100%;object-fit:cover;display:block;}
.video-frame iframe{width:100%;height:100%;border:0;display:block;}
.play{position:absolute;top:50%;left:50%;width:78px;height:78px;margin:-39px 0 0 -39px;border-radius:50%;background:linear-gradient(135deg,var(--pink-1),var(--purple-1));box-shadow:0 8px 24px rgba(0,0,0,.35);}
.play::after{content:"";position:absolute;top:50%;left:50%;margin:-14px 0 0 -8px;border-style:solid;border-width:14px 0 14px 24px;border-color:transparent transparent transparent #fff;}
.video-link{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 6px 2px;font-weight:700;color:var(--ink-soft);font-size:.92rem;}
.video-link a{color:var(--pink-2);text-decoration:none;font-weight:800;}
.read{background:var(--read);border-radius:22px;box-shadow:var(--shadow);padding:22px clamp(18px,4vw,46px) 26px;border-top:6px solid var(--purple-1);}
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-bottom:1px dashed var(--line);padding-bottom:12px;margin-bottom:8px;}
.tools .lbl{font-weight:800;color:var(--purple-2);margin-inline-end:auto;font-size:1.05rem;}
.tools button{border:2px solid #ece3fb;background:#fff;border-radius:999px;padding:5px 13px;font-size:.85rem;font-weight:700;color:var(--ink-soft);cursor:pointer;}
.tools button:hover{border-color:var(--purple-1);color:var(--purple-2);}
.text{font-family:"Frank Ruhl Libre","David","Times New Roman",serif;font-size:1.18rem;line-height:1.95;color:#2d1d38;}
.text p{margin:0 0 1em;text-align:justify;}
.text p:first-child::first-letter{font-size:1.15em;font-weight:700;color:var(--pink-2);}
.text .q{color:var(--q);background:var(--qbg);border-radius:6px;padding:0 3px;font-weight:500;-webkit-box-decoration-break:clone;box-decoration-break:clone;}
.credit{margin-top:14px;padding-top:12px;border-top:1px dashed var(--line);font-size:.85rem;color:var(--ink-soft);}
.credit a{color:var(--pink-2);font-weight:700;}
.pn{display:flex;justify-content:space-between;gap:14px;margin:22px 0 0;}
.pn a{flex:1;max-width:48%;background:var(--card);border-radius:18px;box-shadow:var(--shadow);padding:12px 16px;text-decoration:none;color:var(--ink-soft);font-size:.85rem;font-weight:700;}
.pn a b{display:block;color:var(--ink);font-size:1rem;margin-top:3px;line-height:1.4;}
.pn a.next{text-align:left;}
.pn a:hover{box-shadow:var(--shadow-hi);}
.sign{margin:30px auto 0;padding:14px 18px;border-radius:14px;background:#eef2ff;border:1px solid #c7d2fe;color:#312e81;line-height:1.8;text-align:center;font-size:.95rem;}
.sign a{color:#4338ca;font-weight:700;}
footer{text-align:center;color:var(--ink-soft);font-size:.85rem;padding:10px 0 40px;}
@media (max-width:640px){.pn{flex-direction:column;}.pn a{max-width:none;}.text{text-align:right;}.text p{text-align:right;}}
@media print{.video-card,.tools,.pn,.toolbar,.crumbs{display:none!important;}body{background:#fff;}
  header.hero{background:none;color:#000;padding:0 0 10px;}header.hero::before{display:none;}header.hero h1{text-shadow:none;}
  .lwrap{margin:0;max-width:none;}.read{box-shadow:none;border:0;padding:0;background:#fff;}.text .q{background:none;}}
.also{font-size:.85rem;margin-top:8px;display:flex;gap:6px;justify-content:center;flex-wrap:wrap;align-items:center;opacity:.95;}
.also a{text-decoration:none;background:rgba(255,255,255,.15);border:1px dashed rgba(255,255,255,.55);border-radius:999px;padding:2px 10px;}
