:root{--bg:#f6f7fb;--card:#fff;--ink:#1c2433;--muted:#5f6b7c;--line:#e4e8ef;--brand:#2456e6;--brand-2:#1b3fb3;--brand-soft:#e8efff;--accent:#ff8a3d;--ok:#1f9d55;--ok-soft:#e3f6ea;--warn:#e6a300;--warn-soft:#fff5d6;--bad:#d64545;--bad-soft:#fde8e8;--radius:14px;--shadow:0 6px 24px rgba(20,30,60,.06)}
*{box-sizing:border-box}[hidden]{display:none!important}html{font-size:16px}
body{margin:0;background:var(--bg) linear-gradient(180deg,#f6f8ff 0%,#eef3ff 45%,#e3edff 100%) fixed;color:var(--ink);font-family:"Inter","PingFang SC","Microsoft YaHei","Segoe UI",system-ui,-apple-system,sans-serif;line-height:1.55}
a{color:var(--brand);text-decoration:none}a:hover{text-decoration:underline}
h1,h2,h3{line-height:1.2;margin:0 0 .5rem}h1{font-size:1.9rem}h2{font-size:1.25rem}h3{font-size:1.05rem}.h2{font-size:1.25rem}
p{margin:.4rem 0 .8rem}.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}.eyebrow{text-transform:uppercase;letter-spacing:.06em;font-size:.75rem;color:var(--muted);margin:0 0 .3rem}
.wrap{max-width:1120px;margin:0 auto;padding:0 1.2rem}
main.wrap{padding-top:1.5rem;padding-bottom:3rem;min-height:70vh}
.topbar{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.topbar .wrap{display:flex;align-items:center;gap:1.2rem;height:62px}
.brand{display:flex;align-items:center;gap:.5rem;font-weight:800;font-size:1.1rem;color:var(--ink)}.brand .logo{font-size:1.5rem}
.nav{display:flex;gap:.2rem;margin-left:auto}.nav a{padding:.45rem .7rem;border-radius:8px;color:var(--ink);font-weight:500}.nav a.active,.nav a:hover{background:var(--brand-soft);color:var(--brand);text-decoration:none}
.nav-right{display:flex;align-items:center;gap:.7rem}.lang-form select{border:1px solid var(--line);border-radius:8px;padding:.3rem .4rem;background:#fff}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:700}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;font-size:1.2rem;padding:.2rem .5rem}
.banner{font-size:.9rem;padding:.45rem 0}.banner.trial{background:#fff7ec;color:#7a4b00}.banner.expired{background:var(--bad-soft);color:#7a1f1f}.banner a{font-weight:600;margin-left:.4rem}
.footer{border-top:1px solid var(--line);padding:1.2rem 0;color:var(--muted);font-size:.85rem}.footer .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.5rem}
.messages{margin-bottom:1rem}.msg{padding:.7rem 1rem;border-radius:10px;margin-bottom:.5rem;background:var(--brand-soft);color:var(--brand-2)}.msg.success{background:var(--ok-soft);color:#155d34}.msg.error{background:var(--bad-soft);color:#7a1f1f}.msg.info{background:var(--warn-soft);color:#6b4a00}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem 1.3rem;margin-bottom:1.2rem;box-shadow:var(--shadow)}
.card-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem}
.callout{background:var(--brand-soft);border-color:#cdd9ff}.callout.small{padding:.7rem 1rem;font-size:.92rem}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}.gap>.card{margin-bottom:0}.grid-2.gap,.grid-3.gap{margin-bottom:1.2rem}.span-2{grid-column:span 2}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.55rem 1rem;border-radius:10px;border:1px solid transparent;font-weight:600;cursor:pointer;font-size:.95rem;background:#eef1f6;color:var(--ink);transition:.15s;text-decoration:none!important;line-height:1.2}
.btn:hover{filter:brightness(.97)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-2)}.btn-ghost{background:#fff;border-color:var(--line)}.btn-success{background:var(--ok);color:#fff}
.btn-lg{padding:.8rem 1.4rem;font-size:1.05rem}.btn-sm{padding:.4rem .75rem;font-size:.85rem}.btn-xs{padding:.25rem .55rem;font-size:.78rem}.btn-block{width:100%}.btn[disabled]{opacity:.5;cursor:not-allowed}
.row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}.stack{display:flex;flex-direction:column;gap:.5rem}.inline{display:inline}
.link{font-weight:600}
.form .field{margin-bottom:.9rem}.form label{display:block;font-weight:600;margin-bottom:.3rem;font-size:.92rem}
.form input[type=text],.form input[type=email],.form input[type=password],.form input[type=date],.form input[type=number],.form select,.form textarea{width:100%;padding:.6rem .7rem;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}
.form textarea{resize:vertical}.form .error{color:var(--bad);font-size:.85rem;margin-top:.25rem}.form .hint{color:var(--muted);font-size:.85rem;margin-top:.3rem}.form fieldset{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem}.form legend{font-weight:600;padding:0 .3rem}.check{display:block;font-weight:400!important;margin:.3rem 0}
.auth-card{max-width:460px;margin:1.5rem auto;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1.8rem;box-shadow:var(--shadow)}.auth-card.wide{max-width:760px}
.page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}
.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:2rem;align-items:center;padding:2.5rem 0 3rem}.hero h1{font-size:2.4rem;letter-spacing:-.02em}.lead{font-size:1.1rem;color:var(--muted)}.cta-row{display:flex;gap:.8rem;flex-wrap:wrap;margin:1.2rem 0 .5rem}.fineprint{color:var(--muted);font-size:.85rem}
.hero-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:1.4rem;box-shadow:0 20px 60px rgba(36,86,230,.12);transform:rotate(-1.5deg)}
.mini-dash .mini-row{display:flex;justify-content:space-between;margin-top:.7rem;font-size:.95rem}.mini-task{margin-top:1rem;background:var(--brand-soft);padding:.6rem .8rem;border-radius:10px;font-size:.9rem}
.features,.facts,.pricing{padding:1.5rem 0}.features h2,.facts h2,.pricing h2{text-align:center;font-size:1.6rem;margin-bottom:1.2rem}.card .icon{font-size:1.8rem;margin-bottom:.4rem}
.price{text-align:center}.price .amount{font-size:2rem;font-weight:800;margin:.3rem 0}.price .amount span{font-size:.9rem;font-weight:500;color:var(--muted)}.price.featured{border-color:var(--brand);box-shadow:0 12px 40px rgba(36,86,230,.15)}.ticks{list-style:none;padding:0}.ticks li{padding-left:1.4rem;position:relative;margin:.35rem 0}.ticks li:before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:700}
.prose{max-width:800px;margin:0 auto;background:#fff;padding:2rem;border:1px solid var(--line);border-radius:var(--radius)}.prose h2{margin-top:1.6rem}
.table{width:100%;border-collapse:collapse;font-size:.95rem}.table th,.table td{text-align:left;padding:.5rem .6rem;border-bottom:1px solid var(--line);vertical-align:middle}.table th{font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.table.compact td,.table.compact th{padding:.35rem .5rem}
.bar{height:10px;background:#e9edf4;border-radius:999px;overflow:hidden}.bar span{display:block;height:100%;background:var(--brand);border-radius:999px;transition:width .4s}.bar span.high,.high{background:var(--ok)}.bar span.mid,.mid{background:var(--warn)}.bar span.low,.low{background:var(--bad)}strong.high{background:none;color:var(--ok)}strong.mid{background:none;color:var(--warn)}strong.low{background:none;color:var(--bad)}.bar.big{height:16px}.bar.slim{height:6px;border-radius:0}
.pct{font-weight:700;padding:.1rem .5rem;border-radius:999px;color:#fff;font-size:.85rem}.pct.high{background:var(--ok)}.pct.mid{background:var(--warn)}.pct.low{background:var(--bad)}
.dash-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.streak-chip{background:#fff;border:1px solid var(--line);border-radius:999px;padding:.5rem 1rem;font-weight:700}.streak-chip span{font-weight:500;color:var(--muted)}
.hero-cta{display:flex;justify-content:space-between;align-items:center;gap:1rem;background:linear-gradient(135deg,#e8efff,#fff);flex-wrap:wrap}
.task-list{list-style:none;padding:0;margin:0}.task{display:flex;align-items:center;gap:.8rem;padding:.7rem 0;border-bottom:1px solid var(--line)}.task:last-child{border-bottom:0}.task-icon{font-size:1.4rem}.task-body{flex:1}.task-title{font-weight:600}.task-meta{color:var(--muted);font-size:.85rem}.task.done .task-title{text-decoration:line-through;color:var(--muted)}.task-list.compact .task{padding:.4rem 0}
.pill{display:inline-block;padding:.15rem .6rem;border-radius:999px;background:#eef1f6;font-size:.8rem;font-weight:600}.pill.done{background:var(--ok-soft);color:#155d34}.pill.badge-new{background:var(--warn-soft);color:#6b4a00}
.week-progress{display:flex;align-items:center;gap:.8rem;margin-top:.8rem;font-size:.9rem;color:var(--muted)}.week-progress .bar{flex:1}
.overdue{margin-top:.8rem}.overdue summary{cursor:pointer;font-weight:600;color:#7a4b00}
.gauge{text-align:center;padding:.6rem 0 1rem}.gauge-v{font-size:2.6rem;font-weight:800;line-height:1}.gauge.high .gauge-v{color:var(--ok)}.gauge.mid .gauge-v{color:var(--warn)}.gauge.low .gauge-v{color:var(--bad)}.gauge-l{color:var(--muted);font-weight:600}.gauge{background:none}
.topic-list{list-style:none;padding:0;margin:0 0 .8rem}.topic-list li{display:flex;justify-content:space-between;align-items:center;padding:.45rem 0;border-bottom:1px solid var(--line)}.topic-list li:last-child{border-bottom:0}
.badge-strip{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.6rem}.badge-strip span{background:var(--warn-soft);padding:.2rem .6rem;border-radius:999px;font-size:.85rem}
.stat-row{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.2rem}.stat{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem;text-align:center}.stat-v{font-size:1.7rem;font-weight:800}.stat-l{color:var(--muted);font-size:.85rem}
.level-bar{margin-bottom:1.2rem}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.badge{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:1rem;text-align:center}.badge.locked{opacity:.5;filter:grayscale(1)}.badge-icon{font-size:2.2rem}.badge-name{font-weight:700;margin-top:.3rem}.badge-desc{font-size:.85rem;color:var(--muted)}.badge-date{font-size:.78rem;margin-top:.4rem;color:var(--brand)}
.subject-title{margin:1.4rem 0 .6rem;font-size:1.3rem}.topic-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.8rem}.topic-card{border:1px solid var(--line);border-radius:12px;padding:.8rem;display:flex;flex-direction:column;gap:.45rem}.topic-name{font-weight:600;min-height:2.6em}.topic-meta{font-size:.8rem;color:var(--muted)}.topic-meta .weak{color:var(--bad);font-weight:600}.topic-meta .strong{color:var(--ok);font-weight:600}.topic-meta .developing{color:var(--warn);font-weight:600}
.phases{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1rem}.phase{background:#fff;border:1px solid var(--line);border-radius:10px;padding:.6rem .8rem;font-size:.85rem;display:flex;flex-direction:column}.phase.current{border-color:var(--brand);background:var(--brand-soft)}.phase span{color:var(--muted)}
.week-nav{display:flex;align-items:center;gap:.8rem;margin:.6rem 0 1rem;flex-wrap:wrap}
.week-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:.6rem}.day{background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem;min-height:140px}.day.today{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.day.past{opacity:.75}.day.exam{background:var(--warn-soft)}.day-head{font-weight:700;margin-bottom:.4rem;font-size:.9rem}.day-head span{color:var(--muted);font-weight:500;font-size:.8rem}
.task-chip{border-radius:9px;padding:.45rem .5rem;margin-bottom:.4rem;background:#f3f6fb;border-left:4px solid var(--brand);font-size:.82rem}.task-chip.mock{border-left-color:var(--accent);background:#fff3ea}.task-chip.review{border-left-color:var(--ok)}.task-chip.writing{border-left-color:#8a4ddb}.task-chip.done{opacity:.6}.task-chip.skipped{opacity:.45}.chip-title{font-weight:600}.chip-meta{color:var(--muted);font-size:.75rem}.chip-actions{display:flex;gap:.3rem;margin-top:.3rem}.chip-done{color:var(--ok);font-weight:600;font-size:.78rem;margin-top:.2rem}
.xp-chart{display:flex;gap:4px;align-items:flex-end;height:120px}.xp-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%}.xp-col span{width:100%;background:#dfe5f0;border-radius:4px 4px 0 0;min-height:2px}.xp-col span.on{background:var(--brand)}.xp-col em{font-style:normal;font-size:.65rem;color:var(--muted);margin-top:.2rem}
.strand{margin:.9rem 0 .3rem;font-size:.95rem;color:var(--muted)}.table.mastery td{border-bottom:0;padding:.3rem .4rem}.tname{width:38%}.tbar{width:30%}.tpct{width:8%;font-weight:700}.tmeta{color:var(--muted);font-size:.82rem}
.result-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.score-ring{width:120px;height:120px;border-radius:50%;display:grid;place-items:center;text-align:center;border:8px solid var(--brand);flex-shrink:0}.score-ring.high{border-color:var(--ok)}.score-ring.mid{border-color:var(--warn)}.score-ring.low{border-color:var(--bad)}.score-v{font-size:1.6rem;font-weight:800;line-height:1}.score-l{font-size:.8rem;color:var(--muted)}
.reward-strip{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center;margin:0 0 1.2rem;font-weight:600}
.review-list details{border:1px solid var(--line);border-radius:10px;padding:.6rem .9rem;margin-bottom:.6rem}.review summary{cursor:pointer;font-weight:600;display:flex;gap:.6rem;align-items:center}.review .mark{width:24px;height:24px;border-radius:50%;display:inline-grid;place-items:center;color:#fff;font-size:.85rem}.review.ok .mark{background:var(--ok)}.review.bad .mark{background:var(--bad)}.review .topic{color:var(--muted);font-weight:400;font-size:.85rem}.review .stem{margin:.6rem 0}.opts{padding-left:1.4rem}.opts li{padding:.15rem .3rem;border-radius:6px}.opts li.right{background:var(--ok-soft);font-weight:600}.opts li.wrong{background:var(--bad-soft);text-decoration:line-through}.explanation{background:#fffbea;border-radius:8px;padding:.6rem .8rem;margin-top:.5rem;font-size:.93rem}
.fig{display:block;margin:.6rem 0;max-width:100%}table.pg{border-collapse:collapse;margin:.6rem 0;font-size:.92rem}table.pg td,table.pg th{border:1px solid #c9d2e0;padding:.25rem .6rem;text-align:left}
/* quiz */
body.quiz-mode .footer{display:none}.quiz{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.quiz-top{display:flex;justify-content:space-between;align-items:center;padding:.8rem 1.1rem;gap:1rem;flex-wrap:wrap}.quiz-status{display:flex;gap:1rem;align-items:center;font-weight:600}.timer{font-variant-numeric:tabular-nums;background:#eef1f6;padding:.25rem .6rem;border-radius:8px}.timer.warn{background:var(--bad-soft);color:var(--bad)}
.quiz-body{display:grid;grid-template-columns:200px 1fr;min-height:60vh}.palette{border-right:1px solid var(--line);padding:.9rem;display:grid;grid-template-columns:repeat(5,1fr);gap:.35rem;align-content:start}.palette button{aspect-ratio:1;border-radius:8px;border:1px solid var(--line);background:#fff;font-size:.8rem;cursor:pointer;font-weight:600}.palette button.answered{background:var(--brand-soft);border-color:#b9c9ff}.palette button.current{outline:2px solid var(--brand)}.palette button.ok{background:var(--ok-soft);border-color:#9fd8b6}.palette button.bad{background:var(--bad-soft);border-color:#f2b3b3}.palette .sec{grid-column:1/-1;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-top:.4rem}
.question-area{padding:1.2rem 1.4rem}.section-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin-bottom:.4rem}.question .stem{font-size:1.12rem;margin-bottom:1rem}.passage{background:#f8f9fc;border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;margin-bottom:1rem;max-height:320px;overflow:auto;font-size:.97rem}.passage strong{display:block;margin-bottom:.3rem}
.options{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.options button{text-align:left;padding:.7rem .9rem;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font:inherit;display:flex;gap:.7rem;align-items:flex-start;width:100%}.options button .letter{width:26px;height:26px;border-radius:50%;background:#eef1f6;display:inline-grid;place-items:center;font-weight:700;font-size:.85rem;flex-shrink:0}.options button.selected{border-color:var(--brand);background:var(--brand-soft)}.options button.right{border-color:var(--ok);background:var(--ok-soft)}.options button.wrong{border-color:var(--bad);background:var(--bad-soft)}.options button[disabled]{cursor:default}
.short-answer input{width:100%;max-width:340px;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:1.05rem}.short-answer .hint{font-size:.85rem;color:var(--muted);margin-top:.4rem}
.feedback{margin-top:1rem;padding:.9rem 1rem;border-radius:10px}.feedback.ok{background:var(--ok-soft)}.feedback.bad{background:var(--bad-soft)}.feedback .fb-title{font-weight:700;margin-bottom:.3rem}.feedback details{margin-top:.4rem;font-size:.9rem}
.quiz-actions{display:flex;gap:.6rem;margin-top:1.4rem;flex-wrap:wrap}.quiz-actions #finish{margin-left:auto}
.modal{position:fixed;inset:0;background:rgba(20,30,60,.45);display:grid;place-items:center;z-index:50}.modal-box{background:#fff;border-radius:14px;padding:1.4rem;max-width:420px;width:92%}.modal-box .row{justify-content:flex-end;margin-top:1rem}
@media print{.topbar,.footer,.banner,.no-print,.btn{display:none!important}body{background:#fff}.card{box-shadow:none;break-inside:avoid}}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:1fr 1fr}.hero{grid-template-columns:1fr}.hero-card{transform:none}.week-grid{grid-template-columns:repeat(2,1fr)}.stat-row{grid-template-columns:1fr 1fr}.quiz-body{grid-template-columns:1fr}.palette{border-right:0;border-bottom:1px solid var(--line);grid-template-columns:repeat(10,1fr)}.span-2{grid-column:span 2}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.span-2{grid-column:auto}.nav{display:none;position:absolute;top:62px;left:0;right:0;background:#fff;flex-direction:column;padding:.6rem 1rem;border-bottom:1px solid var(--line)}body.nav-open .nav{display:flex}.menu-btn{display:block;margin-left:auto}.nav-right{margin-left:auto}.topbar .wrap{gap:.6rem}.hero h1{font-size:1.8rem}.week-grid{grid-template-columns:1fr}.phases{grid-template-columns:1fr}.palette{grid-template-columns:repeat(8,1fr)}}

.qr-box{display:inline-block;background:#fff;padding:.6rem;border:1px solid var(--line);border-radius:12px;margin:.6rem 0}.qr-box svg{width:260px;height:260px;display:block}.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.06em}.steps{padding-left:1.3rem}.steps li{margin:.4rem 0}
.btn-wechat{background:#07c160;color:#fff}.btn-wechat:hover{background:#06ad56}
.nav-logout{display:inline}.nav-logout button{background:none;border:0;font:inherit;font-weight:500;color:var(--muted);padding:.45rem .7rem;border-radius:8px;cursor:pointer}.nav-logout button:hover{background:var(--bad-soft);color:var(--bad)}

/* Singapore skyline backdrop */
body::before{content:"";position:fixed;left:0;right:0;bottom:0;height:min(32vh,260px);background:url("../img/skyline.70790c35f5fa.svg") center bottom/auto 100% repeat-x;pointer-events:none;z-index:0;opacity:.9}
body>*{position:relative;z-index:1}
.footer{background:rgba(255,255,255,.7);backdrop-filter:blur(4px)}
.hero{position:relative}.hero::after{content:"";position:absolute;inset:auto -30vw -3.5rem;height:180px;background:url("../img/skyline.70790c35f5fa.svg") center bottom/auto 100% repeat-x;opacity:.55;pointer-events:none;z-index:-1}
.eyebrow{color:#c8102e}.eyebrow::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:#c8102e;margin-right:.45rem;vertical-align:middle}
body.quiz-mode::before{opacity:.35}
@media print{body::before{display:none}}
.vocab{max-width:720px;margin:0 auto}.vocab-top{display:flex;justify-content:space-between;margin-bottom:.8rem}.vocab-word{font-size:2.2rem;font-weight:800;margin:.4rem 0 .2rem;letter-spacing:-.01em}.vocab-reveal{margin-top:1rem;padding:1rem;border-radius:12px;background:#f8f9fc;border:1px solid var(--line)}.vocab-def{font-size:1.05rem;margin:.4rem 0}.vocab-ex{margin:.4rem 0 .8rem;color:#333}.stem-preview{color:var(--muted);font-weight:400;font-size:.9rem}.review summary input{margin-right:.3rem}
.contact-block{display:flex;gap:.5rem;flex-wrap:wrap;align-items:center;justify-content:inherit}.btn-whatsapp{background:#25d366;color:#fff}.btn-whatsapp:hover{background:#1ebe5b}.wechat-qr{position:relative;display:inline-block}.wechat-qr summary{list-style:none;cursor:pointer}.wechat-qr summary::-webkit-details-marker{display:none}.qr-pop{position:absolute;top:110%;left:0;background:#fff;border:1px solid var(--line);border-radius:12px;padding:.6rem;box-shadow:var(--shadow);z-index:30;text-align:center}.qr-pop img{width:200px;height:200px;display:block}.contact-section{padding:1.5rem 0;text-align:center}.contact-section h2{font-size:1.6rem}.contact-section .contact-block{justify-content:center}
.level-row{border-top:1px solid var(--line);padding:.8rem 0}.level-row h3{margin-bottom:.3rem}.topic-card.center{text-align:center;align-items:center;text-decoration:none;color:var(--ink)}
