/* GENERATED by src/build_home_new.py from the homepage mock. Do not edit by hand. */
.hn{--bg:#f3f5f9; --surface:#fff; --surface-2:#f8fafc; --sunk:#eef2f7;
  --ink:#111d31; --body:#3a475b; --muted:#647187; --faint:#97a1b2;
  --line:#e2e7ee; --line-2:#edf0f5;
  --blue:#2563eb; --blue-2:#1d4ed8; --blue-soft:#eef4ff; --blue-line:#c9dafc;
  --steel:#5b7391; --steel-soft:#e8edf4;
  --amber:#e58a1f; --amber-ink:#b4630a; --amber-soft:#fdf1e1;
  --navy:#0d1b33; --navy-2:#15284a; --navy-line:#243a61; --navy-ink:#e9eff8; --navy-muted:#97a9c7;
  --ok:#10b981; --ok-ink:#047857; --warn:#f59e0b; --orange:#f97316; --bad:#ef4444;
  --paper:#fff; --paper-line:#d6dee9;
  --sans:"DM Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --shadow-1:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);
  --shadow-2:0 1px 2px rgba(16,24,40,.05),0 16px 32px -18px rgba(16,24,40,.28);
  --shadow-paper:0 1px 1px rgba(16,24,40,.05),0 18px 36px -16px rgba(16,24,40,.32);}
html.dark .hn{--bg:#0b1324; --surface:#131e33; --surface-2:#18243b; --sunk:#0f192c;
  --ink:#eef3fa; --body:#c3cede; --muted:#93a2ba; --faint:#6d7c95;
  --line:#26344d; --line-2:#1f2c43;
  --blue:#4f86f7; --blue-2:#79a3fa; --blue-soft:rgba(79,134,247,.12); --blue-line:rgba(79,134,247,.35);
  --steel:#8ea3c0; --steel-soft:rgba(142,163,192,.12);
  --amber:#f0a040; --amber-ink:#f5b765; --amber-soft:rgba(240,160,64,.14);
  --navy:#070f1f; --navy-2:#101d36; --navy-line:#21345a;
  --paper:#f7f9fc; --paper-line:#c7d2e1;
  --shadow-1:0 1px 2px rgba(0,0,0,.3); --shadow-2:0 16px 32px -18px rgba(0,0,0,.6);
  --shadow-paper:0 18px 36px -16px rgba(0,0,0,.65);}
:where(.hn) *{box-sizing:border-box}
:where(.hn) a{color:var(--blue);text-decoration:none}
:where(.hn) a:hover{text-decoration:underline}
:where(.hn) :focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:6px}
:where(.hn) img{max-width:100%;display:block}
:where(.hn) h1,:where(.hn) h2,:where(.hn) h3,:where(.hn) h4{color:var(--ink);margin:0;line-height:1.15}
:where(.hn) p{margin:0}
.hn .ref{font-family:var(--mono);font-weight:500;color:var(--blue);letter-spacing:-.01em}
.hn .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 15px/1 var(--sans);padding:13px 20px;border-radius:10px;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.hn .btn:hover{text-decoration:none}
.hn .btn-sm{font-size:14px;padding:9px 15px;border-radius:8px}
.hn .btn-primary{background:var(--blue);color:#fff;box-shadow:0 1px 2px rgba(37,99,235,.3),0 8px 20px -10px rgba(37,99,235,.7)}
.hn .btn-primary:hover{background:var(--blue-2)}
.hn .btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.hn .btn-ghost:hover{border-color:var(--blue-line);background:var(--blue-soft)}
.hn .sec{margin-top:56px}
.hn .sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px;flex-wrap:wrap}
.hn .sec-head h2{font-size:30px;font-weight:800;letter-spacing:-.02em;max-width:22ch}
.hn .sec-head p{max-width:58ch;color:var(--muted);margin-top:8px}
.hn .sec-head .more{font-weight:600;font-size:14.5px;white-space:nowrap}
.hn .card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-1)}
.hn .hero{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-1);overflow:hidden}
.hn .hero-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);gap:8px;padding:44px 0 6px 44px;align-items:center}
.hn .hero h1{font-size:45px;font-weight:800;letter-spacing:-.028em;line-height:1.04;max-width:13ch}
.hn .lede{font-size:18px;line-height:1.6;color:var(--body);margin-top:18px;max-width:46ch}
.hn .lede strong{color:var(--ink);font-weight:700}
.hn .proof{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:9px}
.hn .proof li{display:flex;gap:11px;align-items:flex-start;font-size:15px;color:var(--body)}
.hn .proof li i{color:var(--ok);margin-top:5px;font-size:13px}
.hn .proof li b{color:var(--ink);font-weight:700}
.hn .cta-row{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}
.hn .cta-alt{font-size:13.5px;color:var(--muted);margin-top:12px}
.hn .hero-visual{position:relative;height:500px;min-width:0}
.hn .hero-visual::before{content:"";position:absolute;inset:-40px -20px -10px -40px;
  background-image:radial-gradient(circle,var(--steel) 1px,transparent 1.4px);
  background-size:22px 12.7px;opacity:.28;
  -webkit-mask-image:radial-gradient(ellipse 60% 60% at 55% 48%,#000 20%,transparent 75%);
          mask-image:radial-gradient(ellipse 60% 60% at 55% 48%,#000 20%,transparent 75%)}
.hn .stage{position:absolute;inset:0;perspective:1700px;perspective-origin:40% 40%}
.hn .stack{position:absolute;left:30px;top:40px;width:316px;height:404px;transform-style:preserve-3d;transform:rotateX(9deg) rotateY(-27deg) rotateZ(1.5deg)}
.hn .page{position:absolute;inset:0;background:var(--paper);border:1px solid var(--paper-line);border-radius:12px;box-shadow:var(--shadow-paper);padding:16px 16px 14px;display:flex;flex-direction:column;gap:9px;overflow:hidden;
  transition:transform .85s cubic-bezier(.2,.75,.2,1),opacity .85s ease,filter .85s ease;will-change:transform}
.hn .page[data-pos="0"]{transform:translate3d(0,0,0);opacity:1;z-index:5}
.hn .page[data-pos="1"]{transform:translate3d(24px,-22px,-64px);opacity:.97;filter:brightness(.985);z-index:4}
.hn .page[data-pos="2"]{transform:translate3d(48px,-44px,-128px);opacity:.92;filter:brightness(.97);z-index:3}
.hn .page[data-pos="3"]{transform:translate3d(72px,-66px,-192px);opacity:.84;filter:brightness(.955);z-index:2}
.hn .page[data-pos="4"]{transform:translate3d(96px,-88px,-256px);opacity:.72;filter:brightness(.94);z-index:1}
.hn .page.leave{transform:translate3d(-70px,46px,110px) rotateZ(-5deg)!important;opacity:0!important;z-index:6}
.hn .page.snap{transition:none!important}
.hn .pg-head{display:flex;gap:10px;align-items:center;padding-bottom:9px;border-bottom:1px solid #edf1f6}
.hn .pg-ic{width:32px;height:32px;border-radius:8px;background:#fef9c3;color:#ca8a04;display:grid;place-items:center;font-size:13px;flex:none}
.hn .pg-mod{font-size:9.5px;font-weight:600;color:#97a1b2;line-height:1.2}
.hn .pg-title{font-size:14.5px;font-weight:700;color:#111d31;margin-top:2px;line-height:1.2}
.hn .pg-title .ref{font-size:14.5px;color:#2563eb}
.hn .pg-chips{display:flex;gap:6px;flex-wrap:wrap}
.hn .pg-chips span{font-size:9.5px;font-weight:600;padding:3px 8px;border-radius:99px;background:#eef4ff;color:#1d4ed8;white-space:nowrap}
.hn .pg-chips span.w{background:#fdf1e1;color:#b4630a}
.hn .pg-chips span.f{background:#ecfdf5;color:#047857}
.hn .pg-text{font-size:10.6px;line-height:1.55;color:#3a475b;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.hn .pg-fig{margin:0;border:1px solid #edf1f6;border-radius:8px;overflow:hidden;background:#fff}
.hn .pg-fig img{width:100%;aspect-ratio:1600/893;object-fit:cover}
.hn .pg-fig figcaption{font-size:9px;line-height:1.4;color:#647187;padding:5px 8px 6px;border-top:1px solid #f1f4f8}
.hn .pg-box{font-size:10px;border-radius:7px;padding:7px 9px;line-height:1.45;color:#3a475b}
.hn .pg-box b{display:block;font-size:9px;letter-spacing:.04em;margin-bottom:1px}
.hn .pg-box.formula{background:#eef2ff}
.hn .pg-box.formula b{color:#4338ca}
.hn .pg-box.formula .eq{font-family:"Times New Roman",serif;font-style:italic;font-size:14px;color:#1e1b4b}
.hn .pg-box.warn{background:#fffbeb}
.hn .pg-box.warn b{color:#b45309}
.hn .pg-box.tip{background:#eff6ff}
.hn .pg-box.tip b{color:#1d4ed8}
.hn .pg-box.ex{background:#f0fdf4}
.hn .pg-box.ex b{color:#15803d}
.hn .pg-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:9.5px;color:#97a1b2;padding-top:7px;border-top:1px solid #edf1f6}
.hn .pg-foot .go{background:#2563eb;color:#fff;font-weight:600;border-radius:6px;padding:4px 8px}
.hn .pg-fig.ws{flex:none}
.hn .page:has(.pg-fig.ws) .pg-text{-webkit-line-clamp:2;flex:none}
.hn .pg-ws{display:flex;flex-direction:column;padding:8px 10px 9px;background:linear-gradient(135deg,#fff 55%,#eaf2ff);color:#0f172a}
.hn .pg-ws .wk{display:flex;align-items:center;gap:4px;font-size:6.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#2563eb;line-height:1.2}
.hn .pg-ws .wt{display:block;font-size:10px;font-weight:800;line-height:1.2;letter-spacing:-.01em;margin-top:2px}
.hn .pg-ws svg{display:block;width:100%;height:auto;margin:7px 0 0}
.hn .pg-ws .wcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
.hn .pg-ws .wcards>div{background:#fff;border:1px solid #e2e8f0;border-top:2px solid #2563eb;border-radius:4px;padding:3px 5px 4px}
.hn .pg-ws .wcards b{display:block;font-size:7px;line-height:1.2}
.hn .pg-ws .wcards span{display:block;font-size:6px;line-height:1.3;color:#475569;margin-top:1px}
.hn .pg-ws .wcards .cur{background:#eff6ff;border-color:#93c5fd;border-top-color:#2563eb;box-shadow:0 0 0 1.5px #dbeafe}
.hn .pg-ws .wk em{margin-left:auto;font-style:normal;font-weight:600;letter-spacing:0;color:#94a3b8}
.hn .pg-ws .wk em i{color:#e58a1f;margin-right:2px}
.hn .mini{position:absolute;left:-14px;bottom:2px;z-index:20;width:236px;background:var(--navy);color:var(--navy-ink);border-radius:14px;padding:12px 14px 13px;box-shadow:0 22px 40px -18px rgba(9,18,38,.65)}
.hn .mini .top{display:flex;align-items:center;gap:10px}
.hn .mini .play{width:34px;height:34px;border-radius:99px;background:var(--amber);color:#1b1206;display:grid;place-items:center;font-size:12px;flex:none}
.hn .mini .t1{font-size:11px;color:var(--navy-muted);line-height:1.2}
.hn .mini .t2{font-size:13px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .mini .t2 .ref{color:#9cc0ff;font-size:13px}
.hn .mini .bar{height:4px;border-radius:99px;background:#2a3d63;margin-top:11px;overflow:hidden}
.hn .mini .bar i{display:block;height:100%;width:0;background:var(--amber);border-radius:99px}
.hn .mini .bar i.run{animation:fill 2s linear forwards}
@keyframes fill{to{width:100%}}
.hn .mini .meta{display:flex;justify-content:space-between;font-size:10.5px;color:var(--navy-muted);margin-top:6px}
.hn .stack-ix{position:absolute;right:26px;bottom:4px;display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.hn .stack-ix .dots{display:flex;gap:4px}
.hn .stack-ix .dots{align-items:center}
.hn .stack-ix .dots i{width:14px;height:4px;border-radius:99px;background:color-mix(in srgb,var(--faint) 60%,var(--surface));transition:background .4s,width .4s}
.hn .stack-ix .dots i.on{width:26px;background:var(--amber)}
.hn .hero-facts{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);margin-top:22px}
.hn .hero-facts div{padding:18px 24px 18px 44px;border-left:1px solid var(--line)}
.hn .hero-facts div:first-child{border-left:0}
.hn .hero-facts b{display:block;font-size:24px;font-weight:800;color:var(--ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.hn .hero-facts span{font-size:13.5px;color:var(--muted)}
.hn .hero-reg{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;padding:13px 44px;background:var(--surface-2);border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.hn .hero-reg i{color:var(--ok)}
.hn .hero-reg .chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--body);border-radius:99px;padding:3px 11px;font-weight:600;font-size:12.5px}
.hn .hero-reg .chip:hover{text-decoration:none;border-color:var(--blue-line);color:var(--blue)}
.hn .hero-reg .grow{flex:1}
.hn .struct{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:28px;align-items:start}
.hn .tree{padding:18px 18px 10px}
.hn .tree-h{display:flex;align-items:center;gap:12px;padding:2px 4px 14px;border-bottom:1px solid var(--line-2)}
.hn .tree-h img{width:56px;height:42px;object-fit:cover;border-radius:7px;border:1px solid var(--line)}
.hn .tree-h h3{font-size:16px;font-weight:700}
.hn .tree-h p{font-size:13px;color:var(--muted)}
.hn .trow{display:grid;grid-template-columns:52px minmax(0,1fr) 90px 40px;align-items:center;gap:10px;padding:8px 6px;border-bottom:1px solid var(--line-2);font-size:14px}
.hn .trow .ref{font-size:13.5px}
.hn .trow .nm{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .trow .mb{height:5px;border-radius:99px;background:var(--sunk);overflow:hidden}
.hn .trow .mb i{display:block;height:100%;border-radius:99px}
.hn .trow .tp{font-size:12px;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}
.hn .trow.open{background:var(--blue-soft);border-radius:10px 10px 0 0;border-bottom:0}
.hn .tdetail{background:var(--blue-soft);border-radius:0 0 10px 10px;padding:4px 10px 12px 68px;margin-bottom:4px;position:relative}
.hn .tdetail::before{content:"";position:absolute;left:30px;top:0;bottom:22px;border-left:1.5px dashed var(--blue-line)}
.hn .leaf{display:flex;align-items:center;gap:12px;padding:8px 0;position:relative}
.hn .leaf::before{content:"";position:absolute;left:-38px;top:50%;width:30px;border-top:1.5px dashed var(--blue-line)}
.hn .leaf .ic{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px;flex:none;background:var(--surface);border:1px solid var(--blue-line);color:var(--blue)}
.hn .leaf .ic.am{color:var(--amber-ink);border-color:#f3d2a6}
.hn .leaf .ic.ok{color:var(--ok-ink);border-color:#a7e3cb}
.hn .leaf .tx{flex:1;min-width:0;font-size:13.5px;line-height:1.35}
.hn .leaf .tx b{color:var(--ink);display:block;font-size:14px}
.hn .leaf .tx span{color:var(--muted)}
.hn .leaf .acts{display:flex;gap:6px}
.hn .pill-b{font-size:12px;font-weight:600;padding:5px 10px;border-radius:7px;background:var(--surface);border:1px solid var(--line);color:var(--ink);white-space:nowrap}
.hn .pill-b.pri{background:var(--blue);color:#fff;border-color:var(--blue)}
.hn .pill-b.am{background:var(--amber-soft);border-color:#f3d2a6;color:var(--amber-ink)}
.hn .tree-more{font-size:13px;color:var(--muted);padding:10px 6px 6px}
.hn .steps{list-style:none;margin:0;padding:0;display:grid;gap:4px;counter-reset:st}
.hn .steps li{display:grid;grid-template-columns:44px 1fr;gap:14px;padding:16px 4px;border-bottom:1px solid var(--line)}
.hn .steps li:last-child{border-bottom:0}
.hn .steps .n{width:36px;height:36px;border-radius:10px;background:var(--surface);border:1px solid var(--line);display:grid;place-items:center;font-family:var(--mono);font-weight:500;color:var(--blue);font-size:15px;box-shadow:var(--shadow-1)}
.hn .steps h3{font-size:17px;font-weight:700}
.hn .steps p{color:var(--muted);font-size:14.5px;margin-top:3px}
.hn .steps p a{font-weight:600}
.hn .band{background:var(--navy);border-radius:24px;padding:44px 40px 40px;color:var(--navy-ink);position:relative;overflow:hidden}
.hn .band::before{content:"";position:absolute;inset:0;background:radial-gradient(900px 380px at 85% -10%,rgba(79,134,247,.22),transparent 60%),radial-gradient(600px 300px at 0% 110%,rgba(229,138,31,.10),transparent 60%);pointer-events:none}
.hn .band>*{position:relative}
.hn .band .sec-head h2{color:#fff;max-width:20ch}
.hn .band .sec-head p{color:var(--navy-muted)}
.hn .band .sec-head{margin-bottom:24px}
.hn .band-points{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:4px 0 26px}
.hn .band-points div{border-top:1px solid var(--navy-line);padding-top:12px;font-size:14px;color:var(--navy-muted)}
.hn .band-points b{display:block;color:#fff;font-size:15px;margin-bottom:3px}
.hn .sample{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--navy-muted);margin-top:16px}
.hn .pwx{font-family:var(--sans);color:#111827}
.hn .pwx .pwcard{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.06),0 30px 60px -30px rgba(0,0,0,.6);display:grid;grid-template-columns:1fr 1fr}
.hn .pwx .half{padding:14px 16px;min-width:0;display:flex;flex-direction:column}
.hn .pwx .lhalf{border-right:1px solid #f3f4f6}
.hn .pwx .tiny{font-size:11px;color:#9ca3af}
.hn .pwx .ttl{font-size:14px;font-weight:700;color:#111827}
.hn .pwx .btn1{display:inline-block;background:#2563eb;color:#fff;font-size:11px;font-weight:600;padding:6px 11px;border-radius:7px;white-space:nowrap}
.hn .pwx .btn2{display:inline-block;background:#fff;border:1px solid #d1d5db;color:#374151;font-size:11px;font-weight:600;padding:5px 10px;border-radius:7px;white-space:nowrap}
.hn .pwx .bar{height:5px;background:#f3f4f6;border-radius:99px;overflow:hidden;display:block}
.hn .pwx .bar>i{display:block;height:100%;border-radius:99px}
.hn .pwx .prow{display:flex;align-items:center;gap:9px;padding:8px 0;border-top:1px solid #f3f4f6}
.hn .pwx .prow:first-of-type{border-top:none}
.hn .pwx .rmain{flex:1;min-width:0}
.hn .pwx .pill{display:flex;align-items:center;justify-content:center;width:18px;height:18px;font-size:10px;font-weight:700;border-radius:99px;flex:none}
.hn .pwx .ct{font-size:12.5px;font-weight:700;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .pwx .instgrid{display:grid;grid-template-columns:132px 1fr;gap:12px;align-items:center}
.hn .pwx .insttitle{grid-column:1/-1;order:-1;margin-bottom:2px}
.hn .pwx .examrow{grid-column:1/-1;border-top:1px solid #f3f4f6;padding:10px 16px 12px}
.hn .pwx .exgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 18px}
.hn .pwx .exline{display:flex;align-items:center;gap:9px;padding:3px 0;min-width:0}
.hn .pwx .exd{flex:none;width:58px;font-size:12px;font-weight:700;white-space:nowrap}
.hn .pwx .exd small{font-size:9px;font-weight:600;color:#9ca3af;margin-left:2px}
.hn .pwx .exn{flex:1;min-width:0;font-size:12px;font-weight:600;color:#374151;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .pwx .exbar{flex:none;width:64px;height:5px;background:#f3f4f6;border-radius:99px;overflow:hidden}
.hn .pwx .exbar i{display:block;height:100%;border-radius:99px}
.hn .pwx .expct{flex:none;width:72px;text-align:right;font-size:11px;font-weight:700;white-space:nowrap}
.hn .pwx .pt .tip{opacity:0;transition:opacity .12s;pointer-events:none}
.hn .pwx .pt:hover .tip{opacity:1}
html.dark .hn .pwx .pwcard{background:#1e293b;border-color:#334155}
html.dark .hn .pwx .lhalf{border-right-color:#334155}
html.dark .hn .pwx .ttl,html.dark .hn .pwx .ct{color:#f1f5f9}
html.dark .hn .pwx .tiny{color:#94a3b8}
html.dark .hn .pwx .tiny b{color:#e2e8f0!important}
html.dark .hn .pwx span.tiny[style*="#f3f4f6"]{background:#334155!important}
html.dark .hn .pwx .btn2{background:#1e293b;border-color:#475569;color:#e2e8f0}
html.dark .hn .pwx .bar,html.dark .hn .pwx .exbar{background:#334155}
html.dark .hn .pwx .prow,html.dark .hn .pwx .examrow{border-top-color:#334155}
html.dark .hn .pwx .exn{color:#e2e8f0}
html.dark .hn .pwx .examrow a{color:#60a5fa!important}
html.dark .hn .pwx svg circle[fill="#fffbeb"]{fill:rgba(245,158,11,.12)}
html.dark .hn .pwx svg circle[fill="#fff"]{fill:#1e293b}
html.dark .hn .pwx svg text[fill="#1f2937"]{fill:#f1f5f9}
html.dark .hn .pwx svg text[fill="#6b7280"]{fill:#94a3b8}
html.dark .hn .pwx svg [stroke="#f3f4f6"],html.dark .hn .pwx svg [stroke="#eef2f7"]{stroke:#334155}
html.dark .hn .pwx svg [stroke="#d1d5db"]{stroke:#475569}
.hn .pcp{display:grid;grid-template-columns:1.1fr 1fr 1fr;gap:16px;margin-top:16px}
.hn .pc{background:var(--navy-2);border:1px solid var(--navy-line);border-radius:14px;padding:16px 16px 14px;min-width:0}
.hn .pc h3{font-size:14px;font-weight:700;color:#fff}
.hn .pc .sub{font-size:12px;color:var(--navy-muted);margin-top:2px}
.hn .mrow{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:6px 10px;align-items:center;padding:9px 0;border-top:1px solid var(--navy-line);font-size:12.5px}
.hn .mrow:first-of-type{border-top:0;margin-top:8px}
.hn .mrow .nm{color:#e3eaf5;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .mrow .bdg{justify-self:end;font-size:10.5px;font-weight:700;padding:2px 8px;border-radius:99px;white-space:nowrap}
.hn .bdg.g{background:rgba(16,185,129,.16);color:#6ee7b7}
.hn .bdg.b{background:rgba(79,134,247,.18);color:#a9c6ff}
.hn .bdg.a{background:rgba(245,158,11,.16);color:#fcd34d}
.hn .bdg.s{background:rgba(148,163,184,.14);color:#b8c4d6}
.hn .mrow .mb{grid-column:1/-1;display:flex;align-items:center;gap:8px}
.hn .mrow .mb .t{flex:1;height:5px;border-radius:99px;background:#22365a;overflow:hidden}
.hn .mrow .mb .t i{display:block;height:100%;border-radius:99px}
.hn .mrow .mb span{font-size:11px;color:var(--navy-muted);white-space:nowrap;font-variant-numeric:tabular-nums}
.hn .cal{display:grid;grid-template-columns:repeat(8,1fr);grid-template-rows:repeat(7,1fr);grid-auto-flow:column;gap:4px;margin-top:12px;aspect-ratio:8/7;max-height:200px}
.hn .cal i{border-radius:4px;background:#1c2d4d}
.hn .cal i.l1{background:#14532d}
.hn .cal i.l2{background:#15803d}
.hn .cal i.l3{background:#22c55e}
.hn .cal i.l4{background:#86efac}
.hn .cal i.today{outline:2px solid #fff;outline-offset:1px}
.hn .leg{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:var(--navy-muted);margin-top:10px}
.hn .leg .k{display:flex;gap:3px;align-items:center}
.hn .leg .k i{width:10px;height:10px;border-radius:3px;display:block}
.hn .erow{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:4px 10px;padding:7px 0;font-size:12.5px;align-items:center}
.hn .erow .nm{color:#e3eaf5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .erow .nm em{font-style:normal;font-size:9.5px;font-weight:700;letter-spacing:.04em;padding:1px 5px;border-radius:4px;margin-left:6px;vertical-align:1px}
.hn .erow .nm em.r{background:rgba(16,185,129,.16);color:#6ee7b7}
.hn .erow .nm em.w{background:rgba(239,68,68,.16);color:#fca5a5}
.hn .erow .esh{grid-column:1/-1;height:8px;border-radius:3px;background:#1c2d4d;overflow:hidden}
.hn .erow .esh i{display:block;height:100%;background:#4f86f7;border-radius:3px}
.hn .erow .v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums;color:#e3eaf5}
.hn .pc-foot{font-size:11.5px;color:var(--navy-muted);border-top:1px solid var(--navy-line);margin-top:10px;padding-top:10px}
.hn .notes{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:36px;align-items:center}
.hn .notes-copy h2{font-size:30px;font-weight:800;letter-spacing:-.02em;max-width:18ch}
.hn .notes-copy>p{color:var(--body);margin-top:12px;max-width:50ch}
.hn .nfacts{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:20px 0 0;padding:0;list-style:none}
.hn .nfacts li{display:flex;gap:10px;font-size:14px;color:var(--body);align-items:flex-start}
.hn .nfacts li i{color:var(--steel);margin-top:4px;width:15px;text-align:center}
.hn .nfacts li b{color:var(--ink)}
.hn .price{display:flex;align-items:center;gap:14px;margin-top:22px}
.hn .price b{font-size:34px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.hn .price span{color:var(--muted);font-size:13.5px;line-height:1.4;max-width:30ch}
.hn .notes-copy .cta-row{margin-top:16px}
.hn .nwd{min-width:0}
.hn .nwd iframe{display:block;width:100%;height:560px;border:0;background:transparent;color-scheme:normal}
.hn .rw{display:inline-flex;background:var(--sunk);border:1px solid var(--line);border-radius:12px;padding:3px;margin-bottom:12px}
.hn .rw button{all:unset;cursor:pointer;display:flex;align-items:center;gap:10px;padding:7px 14px 7px 11px;border-radius:9px;font-size:13px;line-height:1.2;color:var(--muted)}
.hn .rw button i{font-size:15px}
.hn .rw button b{display:block;color:inherit;font-size:13.5px}
.hn .rw button small{font-size:11.5px}
.hn .rw button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}
.hn .rw button[aria-pressed="true"] i.fa-circle-play{color:var(--amber)}
.hn .rw button[aria-pressed="true"] i.fa-book-open{color:var(--blue)}
.hn .rw button:focus-visible{outline:2px solid var(--blue)}
.hn .player{border:1px solid var(--line);border-radius:16px;background:var(--surface);box-shadow:var(--shadow-2);overflow:hidden}
.hn .pstage,.hn .pbar{display:grid}
.hn .pstage>*,.hn .pbar>*{grid-area:1/1;transition:opacity .2s}
.hn .pstage{border-bottom:1px solid var(--line)}
.hn .slide{aspect-ratio:16/9;background:#fff;padding:5% 6% 4%;display:flex;flex-direction:column;position:relative;color:#0f172a}
.hn .slide .kick{font-size:12px;font-weight:700;letter-spacing:.08em;color:#2563eb;text-transform:uppercase}
.hn .slide h3{font-size:24px;font-weight:800;color:#0f172a;margin-top:6px;letter-spacing:-.015em}
.hn .slide .eq{margin:auto 0;text-align:center;font-family:"Times New Roman",serif;font-style:italic;font-size:52px;color:#0f172a}
.hn .slide .eq span{font-style:normal}
.hn .slide .keys{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.hn .slide .keys div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .pstage,.hn .pstage>*{min-width:0}
.hn .slide .keys div{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:8px 10px;box-shadow:0 4px 10px -6px rgba(15,23,42,.18);font-size:12.5px;color:#475569}
.hn .slide .keys b{font-family:"Times New Roman",serif;font-style:italic;font-size:18px;color:#0f172a;margin-right:6px}
.hn .slide .sf{position:absolute;right:16px;bottom:6px;font-size:10.5px;color:#94a3b8}
.hn .readv{aspect-ratio:16/9;min-height:0;background:#fff;padding:5% 6%;overflow:hidden;color:#374151;font-size:14px;line-height:1.65;-webkit-mask-image:linear-gradient(#000 80%,transparent);mask-image:linear-gradient(#000 80%,transparent)}
.hn .readv h4{font-size:17px;font-weight:600;color:#111827;padding-bottom:6px;border-bottom:1px solid #e5e7eb;margin-bottom:10px}
.hn .readv .bx{background:#eef2ff;border-radius:10px;padding:9px 12px;margin-top:10px;font-size:13px}
.hn .readv .bx b{color:#4338ca}
.hn .player .readv,.hn .player .rbar{visibility:hidden;opacity:0}
.hn .player.is-read .readv,.hn .player.is-read .rbar{visibility:visible;opacity:1}
.hn .player.is-read .slide,.hn .player.is-read .ctrl{visibility:hidden;opacity:0}
.hn .rbar{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:12.5px;color:var(--muted)}
.hn .rbar .pb{width:32px;height:32px;border-radius:99px;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:12px;flex:none}
.hn .rbar .tl{flex:1;height:5px;border-radius:99px;background:var(--sunk);position:relative}
.hn .rbar .tl i{position:absolute;left:0;top:0;bottom:0;width:22%;background:var(--blue);border-radius:99px}
.hn .rbar .tm{white-space:nowrap}
.hn .ctrl{display:flex;align-items:center;gap:12px;padding:10px 14px;font-size:12.5px;color:var(--muted)}
.hn .ctrl .pb{width:32px;height:32px;border-radius:99px;background:var(--amber);color:#1b1206;display:grid;place-items:center;font-size:12px;flex:none}
.hn .ctrl .tl{flex:1;height:5px;border-radius:99px;background:var(--sunk);position:relative}
.hn .ctrl .tl i{position:absolute;left:0;top:0;bottom:0;width:31%;background:var(--amber);border-radius:99px}
.hn .ctrl .tm{font-variant-numeric:tabular-nums;white-space:nowrap}
.hn .toc{margin-top:28px;padding:20px 22px 22px}
.hn .toc-h h3{font-size:18px;font-weight:800}
.hn .toc-h p{font-size:13.5px;color:var(--muted);margin-top:2px}
.hn .mchips{display:grid;grid-template-columns:repeat(17,minmax(0,1fr));gap:6px;margin:14px 0 16px}
.hn .mc{--c:#4b6584;height:36px;border-radius:9px;border:1px solid var(--line);background:var(--surface);display:flex;align-items:center;justify-content:center;gap:6px;font-weight:700;font-size:14px;color:var(--ink);min-width:0}
.hn .mc::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--c);flex:none}
.hn .mc:hover{text-decoration:none;border-color:color-mix(in srgb,var(--c) 50%,var(--line))}
.hn .mc[aria-selected="true"]{background:var(--c);border-color:var(--c);color:#fff}
.hn .mc[aria-selected="true"]::before{background:#fff}
.hn .toc-p{display:grid;grid-template-columns:236px minmax(0,1fr);gap:24px;align-items:start}
.hn .toc-cov img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;border:1px solid var(--line);background:#fff}
.hn .toc-cov .k{display:block;margin-top:12px;font-size:12.5px;font-weight:700;color:var(--muted)}
.hn .toc-cov h4{font-size:17px;font-weight:800;line-height:1.25;min-height:2.5em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hn .toc-l{--r:6;list-style:none;margin:0;padding:0;height:240px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:repeat(var(--r),40px);grid-auto-flow:column;column-gap:22px;align-content:start}
.hn .toc-l li{border-bottom:1px solid var(--line-2);min-width:0}
.hn .toc-l a{display:flex;align-items:center;gap:10px;height:100%;color:var(--body);font-size:14px;min-width:0}
.hn .toc-l a:hover{text-decoration:none;color:var(--ink)}
.hn .toc-l .ref{flex:none;min-width:48px;font-size:13px}
.hn .toc-l .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .toc-l .free{flex:none;margin-left:auto;font-size:11px;font-weight:700;color:var(--ok-ink);background:color-mix(in srgb,var(--ok) 14%,transparent);border-radius:99px;padding:2px 8px}
html.dark .hn .toc-l .free{color:#6ee7b7}
.hn .toc-l .more a{color:var(--blue);font-weight:700}
.hn .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hn .cats{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;font-size:13.5px;color:var(--muted)}
.hn .cats a{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:4px 12px;font-weight:700;color:var(--ink);font-size:13px}
.hn .cats a:hover,.hn .cats a.on{text-decoration:none;border-color:var(--blue);background:var(--blue-soft);color:var(--blue)}
.hn .cats .hint{margin-left:6px}
.hn .mgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.hn .mod{--c:#4b6584;display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:13px;padding:12px 14px;color:var(--body);transition:opacity .2s,border-color .2s,box-shadow .2s}
.hn .mod:hover{text-decoration:none;border-color:color-mix(in srgb,var(--c) 40%,var(--line));box-shadow:var(--shadow-2)}
.hn .mod .ic{position:relative;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:19px;color:var(--c);background:linear-gradient(145deg,color-mix(in srgb,var(--c) 17%,var(--surface)),color-mix(in srgb,var(--c) 6%,var(--surface)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 24%,transparent);transition:background .2s,color .2s}
html.dark .hn .mod .ic{color:color-mix(in srgb,var(--c) 55%,#fff);background:color-mix(in srgb,var(--c) 22%,var(--surface))}
.hn .mod .ic .flag{position:absolute;right:-7px;bottom:-6px;width:20px;height:12px;border-radius:2px;overflow:hidden;box-shadow:0 0 0 2px var(--surface),0 1px 3px rgba(16,24,40,.3)}
.hn .mod .ic .flag svg{display:block;width:100%;height:100%}
.hn .mod h3{font-size:14.5px;font-weight:700;line-height:1.25;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hn .mod p{font-size:12.5px;color:var(--muted);display:flex;gap:10px;flex-wrap:wrap;margin-top:2px}
.hn .mod-guide{grid-column:span 2;display:grid;grid-template-columns:46px minmax(0,1fr) 20px;gap:13px;align-items:center;border:1px dashed var(--blue-line);background:var(--blue-soft);border-radius:13px;padding:12px 16px;color:var(--body)}
.hn .mod-guide:hover{text-decoration:none;border-style:solid}
.hn .mod-guide .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:var(--blue);color:#fff;font-size:18px}
.hn .mod-guide b{display:block;color:var(--ink);font-size:14.5px}
.hn .mod-guide span span{display:block;font-size:13px;color:var(--muted);line-height:1.4}
.hn .mod-guide .go{color:var(--blue)}
.hn .mgrid.filtering .mod-guide{opacity:.38}
.hn .mgrid.filtering .mod{opacity:.38}
.hn .mgrid.filtering:not(.mine) .mod.hit{opacity:1;border-color:color-mix(in srgb,var(--c) 50%,var(--line))}
.hn .mgrid.filtering:not(.mine) .mod.hit .ic{background:var(--c);color:#fff;box-shadow:none}
.hn .plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
.hn .plan{--pc:#2563eb;position:relative;display:flex;flex-direction:column;overflow:hidden}
.hn .plan.p-notes{--pc:#059669}
.hn .plan.p-pdf{--pc:#d97706}
.hn .plan .pv{position:relative;height:204px;overflow:hidden;border-bottom:1px solid color-mix(in srgb,var(--pc) 20%,var(--line));
  background:radial-gradient(circle at 1px 1px,color-mix(in srgb,var(--pc) 26%,transparent) 1px,transparent 1.5px) 0 0/14px 14px,
             linear-gradient(160deg,color-mix(in srgb,var(--pc) 15%,var(--surface)),color-mix(in srgb,var(--pc) 4%,var(--surface)))}
.hn .plan .pb{padding:18px 22px 20px;display:flex;flex-direction:column;flex:1}
.hn .plan .ph{display:flex;align-items:center;gap:11px}
.hn .plan .pi{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;background:var(--pc);color:#fff;font-size:16px;flex:none;box-shadow:0 8px 16px -8px color-mix(in srgb,var(--pc) 80%,transparent)}
.hn .plan .k{font-size:12.5px;font-weight:700;color:var(--pc);display:block;line-height:1.25}
html.dark .hn .plan .k,html.dark .hn .plan .mode{color:color-mix(in srgb,var(--pc) 55%,#fff)}
.hn .plan h3{font-size:19px;font-weight:800;line-height:1.2}
.hn .plan .mode{margin-left:auto;align-self:flex-start;font-size:11.5px;font-weight:700;border-radius:99px;padding:3px 9px;background:color-mix(in srgb,var(--pc) 12%,transparent);color:var(--pc);white-space:nowrap}
.hn .plan .pr{margin-top:14px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.hn .plan .pr b{font-size:32px;font-weight:800;color:var(--ink);letter-spacing:-.02em}
.hn .plan .pr span{font-size:13.5px;color:var(--muted)}
.hn .plan .pr .from{font-size:16px;font-weight:600;align-self:baseline;margin-right:-2px}
.hn .plan .alt{font-size:13px;color:var(--muted);margin-top:4px}
.hn .plan ul{list-style:none;margin:16px 0 18px;padding:16px 0 0;border-top:1px solid var(--line-2);display:grid;gap:8px;font-size:14px}
.hn .plan li{display:flex;gap:9px}
.hn .plan li i{color:var(--pc);margin-top:5px;font-size:12px}
html.dark .hn .plan li i{color:color-mix(in srgb,var(--pc) 60%,#fff)}
.hn .plan .btn{margin-top:auto}
.hn .plan .btn-p{background:var(--pc);color:#fff;box-shadow:0 8px 18px -10px color-mix(in srgb,var(--pc) 90%,transparent)}
.hn .plan .btn-p:hover{filter:brightness(1.07)}
.hn .plan.hl{background:linear-gradient(180deg,#1d3f8f,#0f2556);border-color:#1d3f8f;color:#cfdcf5}
.hn .plan.hl .pv{border-bottom-color:rgba(255,255,255,.1);background:radial-gradient(circle at 1px 1px,rgba(147,180,255,.22) 1px,transparent 1.5px) 0 0/14px 14px,linear-gradient(160deg,#2a54b0,#183a82)}
.hn .plan.hl .pi{background:#fff;color:#1d3f8f;box-shadow:none}
.hn .plan.hl .k,html.dark .hn .plan.hl .k{color:#9fb6e6}
.hn .plan.hl .mode,html.dark .hn .plan.hl .mode{background:rgba(255,255,255,.14);color:#fff}
.hn .plan.hl h3,.hn .plan.hl .pr b{color:#fff}
.hn .plan.hl .pr .from{color:#dbe6fb}
.hn .plan.hl .pr span,.hn .plan.hl .alt{color:#a9bde4}
.hn .plan.hl ul{border-top-color:rgba(255,255,255,.12)}
.hn .plan.hl li i,html.dark .hn .plan.hl li i{color:#7dd3fc}
.hn .plan.hl .btn-p{background:#fff;color:#1d3f8f;box-shadow:none}
.hn .qz{position:absolute;left:20px;right:58px;top:18px;background:#fff;color:#3a475b;border-radius:11px;padding:11px 13px;font-size:11.5px;line-height:1.35;box-shadow:0 18px 30px -14px rgba(0,0,0,.55);transform:rotate(-2.5deg)}
.hn .qz-h{display:flex;justify-content:space-between;align-items:center;font-size:10.5px;color:#647187;font-weight:600}
.hn .qz-h .t{color:#1d4ed8;background:#eef4ff;border-radius:5px;padding:2px 6px}
.hn .qz-bar{height:3px;background:#edf0f5;border-radius:3px;margin:7px 0 8px;overflow:hidden}
.hn .qz-bar i{display:block;height:100%;width:35%;background:#2563eb}
.hn .qz p{color:#111d31;font-weight:600;margin-bottom:7px}
.hn .qz .o{display:flex;gap:6px;align-items:center;border:1px solid #e2e7ee;border-radius:6px;padding:4px 7px;margin-top:4px;font-size:11px}
.hn .qz .o.ok{border-color:#86efac;background:#ecfdf5;color:#065f46;font-weight:600}
.hn .qz .o.ok i{font-size:9.5px}
.hn .qz-acc{position:absolute;right:14px;bottom:16px;width:68px;height:68px;border-radius:50%;background:conic-gradient(#f59e0b 72%,rgba(255,255,255,.18) 0);display:grid;place-items:center;box-shadow:0 10px 22px -10px rgba(0,0,0,.6)}
.hn .qz-acc::before{content:"";position:absolute;inset:7px;border-radius:50%;background:#132f6c}
.hn .qz-acc b{position:relative;color:#fff;font-size:16px;line-height:1;text-align:center}
.hn .qz-acc b span{display:block;font-size:8.5px;font-weight:600;color:#a9bde4;margin-top:2px}
.hn .fan{position:absolute;inset:0}
.hn .fan img{position:absolute;top:30px;left:50%;width:150px;aspect-ratio:4/3;object-fit:cover;border-radius:7px;border:3px solid #fff;box-shadow:0 14px 26px -12px rgba(6,40,30,.55)}
.hn .fan .f1{transform:translateX(-118%) rotate(-11deg) translateY(10px)}
.hn .fan .f2{transform:translateX(18%) rotate(10deg) translateY(10px)}
.hn .fan .f3{transform:translateX(-50%);top:22px;z-index:2;width:160px}
.hn .rwp{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);z-index:3;display:flex;background:#fff;border-radius:99px;padding:3px;box-shadow:0 6px 16px -8px rgba(0,0,0,.4);font-size:11px;font-weight:700}
.hn .rwp span{padding:3px 11px;border-radius:99px;color:#647187}
.hn .rwp span:first-child{background:#059669;color:#fff}
.hn .sheet{position:absolute;left:50%;width:212px;background:#fff;border-radius:4px;box-shadow:0 16px 28px -14px rgba(60,35,0,.5);color:#3a475b}
.hn .sheet.s2{top:32px;height:160px;transform:translateX(-52%) rotate(5deg);background:#fbfaf7}
.hn .sheet.s1{top:22px;transform:translateX(-64%) rotate(-3deg);padding:11px 13px 14px;font-size:10.5px;line-height:1.35}
.hn .sheet .shh{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e9e4da;padding-bottom:6px;margin-bottom:7px;font-size:9.5px;color:#7c6f5b;font-weight:600}
.hn .sheet .pdf{background:#dc2626;color:#fff;border-radius:3px;padding:2px 5px;font-weight:800;font-size:9px;letter-spacing:.04em}
.hn .sheet p{color:#111d31;font-weight:600;margin-bottom:5px}
.hn .sheet .o{display:block;padding:2px 5px;border-radius:3px}
.hn .sheet .o.ok{background:#bbf7d0;color:#065f46;font-weight:700}
.hn .tchips{position:absolute;right:14px;bottom:16px;display:flex;flex-direction:column;gap:4px;z-index:2}
.hn .tchips span{font:500 10.5px/1 var(--mono);background:#fff;color:#92400e;border:1px solid #fcd9a6;border-radius:5px;padding:4px 6px;text-align:center;box-shadow:0 4px 10px -6px rgba(0,0,0,.3)}
.hn .duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch}
.hn .duo .card{padding:20px 20px 16px;display:flex;flex-direction:column}
.hn .duo .card h2{font-size:21px;font-weight:800;letter-spacing:-.015em}
.hn .duo>.sec-head{grid-column:1/-1;margin-bottom:6px}
.hn .duo>.sec-head h2{max-width:none}
.hn .duo .sub{font-size:14px;color:var(--muted);margin-top:4px}
.hn .trow2{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:12px;align-items:center;padding:8px 0;border-top:1px solid var(--line-2);color:var(--body)}
.hn .trow2:first-of-type{margin-top:12px;border-top:0}
.hn .trow2:hover{text-decoration:none}
.hn .trow2:hover b{color:var(--blue)}
.hn .trow2 .ic{width:46px;height:34px;border-radius:8px;display:grid;place-items:center;font:500 12px/1 var(--mono);letter-spacing:-.02em;color:#fff;background:linear-gradient(135deg,#1e3a8a,#3b6fe0)}
.hn .trow2 .ic.bo{background:linear-gradient(135deg,#0f5f5a,#14a39a)}
.hn .trow2 b{color:var(--ink);font-size:14.5px}
.hn .trow2 .m{font-size:12.5px;color:var(--muted);white-space:nowrap}
.hn .ctg{flex:1;display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:1fr;gap:10px;margin-top:14px}
.hn .ctt{--fc:#6d28d9;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:12px;overflow:hidden;color:var(--body);background:var(--surface)}
.hn .ctt.f-fts{--fc:#c2410c}
.hn .ctt.f-ewis{--fc:#0369a1}
.hn .ctt.f-partis{--fc:#0f766e}
.hn .ctt:hover{text-decoration:none;border-color:color-mix(in srgb,var(--fc) 45%,var(--line))}
.hn .ctt .im{position:relative;flex:1;min-height:100px;overflow:hidden;background:var(--sunk)}
.hn .ctt img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hn .ctt .tx{display:block;padding:9px 12px 10px;border-top:3px solid var(--fc)}
.hn .ctt b{display:block;color:var(--ink);font-size:14px;line-height:1.25}
.hn .ctt .tx span{font-size:12px;color:var(--muted);line-height:1.3;display:block}
.hn .ct-note{font-size:13px;color:var(--muted);margin-top:12px}
.hn .ways{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr);gap:14px}
.hn .feat{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;color:var(--body)}
.hn .feat:hover{text-decoration:none;border-color:var(--blue-line);box-shadow:var(--shadow-2)}
.hn .feat .im{display:block;aspect-ratio:16/9;background:#fff;overflow:hidden;border-bottom:1px solid var(--line-2)}
.hn .feat img{width:100%;height:100%;object-fit:cover;transform:scale(1.22)}
html.dark .hn .feat .im{background:#dfe6f0}
html.dark .hn .feat img{mix-blend-mode:multiply}
.hn .feat .ft{display:block;padding:14px 18px 18px}
.hn .feat b{display:block;color:var(--ink);font-size:16px}
.hn .feat .ft span{display:block;font-size:13.5px;color:var(--muted);line-height:1.45;margin-top:3px}
.hn .wlist{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden}
.hn .way{flex:1;padding:11px 16px;border-bottom:1px solid var(--line-2);color:var(--body);display:grid;grid-template-columns:34px 1fr;gap:12px;align-items:center}
.hn .way:last-child{border-bottom:0}
.hn .way:hover{text-decoration:none;background:var(--surface-2)}
.hn .way .ic{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;background:var(--steel-soft);color:var(--steel);font-size:14px}
.hn .way b{color:var(--ink);font-size:14.5px;display:block;line-height:1.3}
.hn .way .d{font-size:12.5px;color:var(--muted);line-height:1.4;display:block}
.hn .world{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:28px;padding:24px 26px}
.hn .world h2{font-size:21px;font-weight:800;letter-spacing:-.015em}
.hn .world p{font-size:14.5px;margin-top:8px}
.hn .world p strong{color:var(--ink)}
.hn .flags{display:grid;grid-template-columns:1fr 1fr;column-gap:22px;align-content:center}
.hn .flags a{display:grid;grid-template-columns:38px minmax(0,1fr) 12px;gap:11px;align-items:center;padding:8px 0;border-top:1px solid var(--line-2);color:var(--body)}
.hn .flags a:nth-child(-n+2){border-top:0}
.hn .flags a:hover{text-decoration:none}
.hn .flags a:hover b{color:var(--blue)}
.hn .flags .cc{height:28px;border-radius:7px;display:grid;place-items:center;font:500 11.5px/1 var(--mono);color:var(--steel);background:var(--steel-soft);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--steel) 18%,transparent)}
.hn .flags b{display:block;color:var(--ink);font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .flags .rg{display:block;font-size:12.5px;color:var(--muted);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .flags .fa-chevron-right{font-size:10px;color:var(--faint)}
.hn .comm{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.hn .comm .card{padding:18px 20px;display:flex;flex-direction:column;position:relative;overflow:hidden}
.hn .cm-h{display:flex;align-items:center;gap:11px}
.hn .cm-h .ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:16px;flex:none}
.hn .cm-h b{display:block;color:var(--ink);font-size:15.5px;line-height:1.2}
.hn .cm-h span span{display:block;font-size:12.5px;color:var(--muted);line-height:1.3}
.hn .fotd{--fc:#6366f1;background:linear-gradient(165deg,color-mix(in srgb,var(--fc) 9%,var(--surface)),var(--surface) 55%)}
.hn .fotd .cm-h .ic{background:var(--fc);color:#fff;box-shadow:0 8px 16px -8px color-mix(in srgb,var(--fc) 80%,transparent)}
.hn .fotd blockquote{margin:16px 0 18px;padding-left:14px;border-left:3px solid var(--fc);font-size:17px;line-height:1.5;font-weight:500;color:var(--ink)}
.hn .fo-mod{margin-top:auto;display:flex;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line-2);color:var(--muted);font-size:12.5px;line-height:1.3}
.hn .fo-mod:hover{text-decoration:none}
.hn .fo-mod:hover b{color:var(--blue)}
.hn .fo-mod .mi{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;font-size:13px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--surface));flex:none}
.hn .fo-mod b{display:block;color:var(--ink);font-size:13.5px}
.hn .streak .cm-h .ic{background:var(--amber-soft);color:var(--amber-ink)}
.hn .st-best{margin-top:16px;display:flex;align-items:center;gap:14px;background:var(--amber-soft);border-radius:12px;padding:10px 14px}
.hn .st-num{font-size:38px;font-weight:800;line-height:1;color:var(--amber-ink);letter-spacing:-.02em;font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px}
.hn .st-num i{font-size:24px;color:var(--orange)}
.hn .st-best span:last-child{font-size:12.5px;color:var(--amber-ink);line-height:1.35}
.hn .st-best b{display:block;color:var(--ink);font-size:14.5px}
.hn .st-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px}
.hn .st-list li{display:grid;grid-template-columns:16px 86px minmax(0,1fr) 26px;gap:9px;align-items:center;font-size:13.5px}
.hn .st-list .r{font-weight:700;color:var(--faint);font-size:12px;text-align:center}
.hn .st-list .u{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .st-list .bar{height:8px;border-radius:99px;background:var(--sunk);overflow:hidden}
.hn .st-list .bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#fbbf24,#f97316)}
.hn .st-list .n{font-weight:700;color:var(--amber-ink);text-align:right;font-variant-numeric:tabular-nums}
.hn .st-f{margin-top:auto;padding-top:14px;display:flex;align-items:center;gap:12px}
.hn .st-f .pl{font-size:12.5px;color:var(--muted);white-space:nowrap}
.hn .st-f .pl i{color:var(--faint);margin-right:4px}
.hn .st-f .btn{margin-left:auto;background:var(--amber);color:#1b1206;font-size:13.5px;padding:9px 14px;border-radius:9px}
.hn .st-f .btn:hover{filter:brightness(1.05)}
.hn.v-free .st-f .btn.only-free{display:inline-flex}
.hn .podium .cm-h .ic{background:color-mix(in srgb,#eab308 16%,var(--surface));color:#a16207}
html.dark .hn .podium .cm-h .ic{color:#facc15}
.hn .pd{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:end;flex:1}
.hn .pd>div{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0}
.hn .pd .av{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-weight:700;color:#fff;font-size:15px;position:relative;box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--pc)}
.hn .pd .p1 .av{width:48px;height:48px;font-size:17px}
.hn .pd .av .fa-crown{position:absolute;top:-17px;left:50%;transform:translateX(-50%);color:#eab308;font-size:15px}
.hn .pd b{margin-top:9px;font-size:13px;color:var(--ink);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .pd .sc{font-size:15px;font-weight:800;color:var(--ok-ink);font-variant-numeric:tabular-nums}
html.dark .hn .pd .sc{color:#6ee7b7}
.hn .pd .qn{font-size:11.5px;color:var(--faint)}
.hn .pd .blk{margin-top:8px;width:100%;border-radius:8px 8px 0 0;display:grid;place-items:center;font-weight:800;font-size:18px;color:color-mix(in srgb,var(--pc) 70%,#000);background:linear-gradient(180deg,color-mix(in srgb,var(--pc) 40%,var(--surface)),color-mix(in srgb,var(--pc) 16%,var(--surface)))}
html.dark .hn .pd .blk{color:#fff}
.hn .pd .p1{--pc:#eab308}
.hn .pd .p1 .blk{height:62px}
.hn .pd .p2{--pc:#94a3b8}
.hn .pd .p2 .blk{height:44px}
.hn .pd .p3{--pc:#ea8a4a}
.hn .pd .p3 .blk{height:30px}
.hn .pd-f{border-top:2px solid var(--line);padding-top:10px;font-size:12px;color:var(--muted);line-height:1.4}
.hn .qa{margin-top:16px;padding:16px 0 4px}
.hn .qa-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 18px 12px}
.hn .qa-h .cm-h .ic{background:var(--blue-soft);color:var(--blue)}
.hn .qa-h>a{font-size:14px;font-weight:600;white-space:nowrap}
.hn .qa-l{list-style:none;margin:0;padding:0}
.hn .qa-l a{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:11px 18px;border-top:1px solid var(--line-2);color:var(--body)}
.hn .qa-l a:hover{text-decoration:none;background:var(--surface-2)}
.hn .qa-l .mi{--c:#4b6584;width:38px;height:38px;border-radius:11px;display:grid;place-items:center;font-size:15px;color:var(--c);background:linear-gradient(145deg,color-mix(in srgb,var(--c) 17%,var(--surface)),color-mix(in srgb,var(--c) 6%,var(--surface)));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--c) 24%,transparent)}
html.dark .hn .qa-l .mi{color:color-mix(in srgb,var(--c) 55%,#fff);background:color-mix(in srgb,var(--c) 22%,var(--surface))}
.hn .qa-l .mi.gen{--c:#64748b}
.hn .qa-l .t{display:block;font-size:14.5px;font-weight:600;color:var(--ink);line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .qa-l .m{display:block;font-size:12.5px;color:var(--muted);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hn .qa-l .m .ref{font-size:12.5px;margin-right:3px}
.hn .qa-l .m b{font-weight:600;color:var(--body)}
.hn .qa-l .st{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;border-radius:99px;padding:4px 10px;white-space:nowrap}
.hn .qa-l .st.n{background:var(--sunk);color:var(--muted)}
.hn .qa-l .st.open{background:var(--amber-soft);color:var(--amber-ink)}
.hn .qa-l .st.team{background:var(--blue-soft);color:var(--blue)}
.hn .faq{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;align-items:start}
.hn .faq-col{display:flex;flex-direction:column;gap:10px;min-width:0}
.hn .faq details{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:0 16px}
.hn .faq summary{cursor:pointer;list-style:none;padding:14px 0;font-weight:700;color:var(--ink);font-size:15px;display:flex;justify-content:space-between;gap:12px}
.hn .faq summary::-webkit-details-marker{display:none}
.hn .faq summary::after{content:"+";color:var(--faint);font-weight:400;font-size:20px;line-height:1}
.hn .faq details[open] summary::after{content:"\2212"}
.hn .faq details p{font-size:14.5px;padding:0 0 14px;color:var(--body)}
.hn .only-free{display:none}
.hn.v-free .only-free{display:block}
.hn.v-free .only-visitor,.hn.v-sub .only-visitor{display:none!important}
.hn:not(.v-sub) .only-sub{display:none!important}
.hn.v-sub .not-sub{display:none!important}
.hn:not(.v-free):not(.v-sub) .signed{display:none!important}
.hn.v-notes .no-notes{display:none!important}
.hn:not(.v-notes) .only-notes{display:none!important}
.hn.v-notes .toc{margin-top:0}
.hn.v-notes .toc-l .free{display:none}
.hn.v-sub .signed-top{order:-2}
.hn.v-sub #modules{order:-1;margin-top:40px}
.hn .welcome .chips{display:flex;gap:10px;flex-wrap:wrap}
.hn .subst{--pc:var(--blue);display:flex;align-items:center;gap:11px;background:color-mix(in srgb,var(--pc) 7%,var(--surface));border:1px solid color-mix(in srgb,var(--pc) 28%,var(--line));border-radius:12px;padding:8px 16px 8px 9px;font-size:14px;color:var(--ink);line-height:1.3}
.hn .subst.n{--pc:#059669}
html.dark .hn .subst.n{--pc:#10b981}
.hn .subst .ok{width:30px;height:30px;border-radius:9px;background:var(--pc);color:#fff;display:grid;place-items:center;font-size:13px;flex:none}
.hn .subst small{display:block;font-size:12px;color:var(--muted)}
.hn .mod{position:relative}
.hn .mod .rd{display:flex;align-items:center;gap:6px;flex-wrap:nowrap;white-space:nowrap;overflow:hidden}
.hn .mod .rd .tw{font-weight:700;color:var(--tc)}
.hn .mod .gauge{position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--line-2);overflow:hidden}
.hn .mod .gauge i{display:block;height:100%;background:var(--tg)}
.hn .mod.t-ready{--tc:var(--ok-ink);--tg:var(--ok)}
.hn .mod.t-on{--tc:#b45309;--tg:#f59e0b}
.hn .mod.t-work{--tc:#b91c1c;--tg:var(--bad)}
.hn .mod.t-data{--tc:var(--faint);--tg:#94a3b8}
html.dark .hn .mod.t-ready{--tc:#6ee7b7}
html.dark .hn .mod.t-on{--tc:#fbbf24}
html.dark .hn .mod.t-work{--tc:#fca5a5}
.hn.v-rd .mod.t-ready{border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.hn.v-rd .mod.has-rd .qc{display:none}
.hn .mod .ex{position:absolute;top:8px;right:9px;font-size:11px;font-weight:700;color:var(--amber-ink);background:var(--amber-soft);border-radius:99px;padding:2px 8px;white-space:nowrap}
.hn .mod .ex i{margin-right:4px}
.hn.v-rd .mod.has-ex h3{padding-right:74px}
.hn .mod .exi{display:none;color:var(--amber-ink);font-weight:700}
.hn .mod-guide.weak .ic{background:var(--bad)}
.hn .mod-guide.weak{border-color:color-mix(in srgb,var(--bad) 35%,var(--line));background:color-mix(in srgb,var(--bad) 6%,var(--surface))}
.hn .mod-guide.weak .go{color:var(--bad)}
.hn .tie{display:flex;gap:10px;align-items:flex-start;margin-top:16px;font-size:14px;color:var(--body);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 14px}
.hn .tie i{color:var(--ok);margin-top:4px}
.hn .tie b{color:var(--ink)}
.hn .st-f .pl .me{display:block;color:var(--ink);font-weight:600}
.hn .st-f .pl .me i{color:var(--amber)}
.hn .welcome{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:14px 18px;box-shadow:var(--shadow-1);margin-bottom:16px}
.hn .welcome h1{font-size:20px;font-weight:800}
.hn .welcome p{font-size:14px;color:var(--muted)}
.hn .welcome .up{display:flex;align-items:center;gap:12px;background:var(--blue-soft);border:1px solid var(--blue-line);border-radius:12px;padding:8px 8px 8px 14px;font-size:14px;color:var(--ink)}
.hn .welcome .up b{font-weight:700}
.hn .free-widget{margin-bottom:8px}
@media (max-width:1180px){
.hn .hero-grid{grid-template-columns:1fr;padding:36px 32px 0}
.hn .hero h1{max-width:none}
.hn .hero-visual{height:480px;max-width:520px;width:100%;margin:8px auto 0}
.hn .hero-facts div{padding-left:24px}
.hn .hero-reg{padding:12px 32px}
.hn .pcp{grid-template-columns:1fr 1fr}
.hn .pcp .pc:first-child{grid-column:1/-1}
.hn .notes{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:1024px){
.hn .struct,.hn .notes,.hn .duo,.hn .world{grid-template-columns:minmax(0,1fr)}
.hn .mgrid{grid-template-columns:1fr 1fr}
.hn .mod-guide{grid-column:span 1}
.hn .toc-p{grid-template-columns:200px minmax(0,1fr)}
.hn .toc-l{grid-template-columns:1fr;height:216px;grid-template-rows:repeat(var(--r),36px)}
.hn .plans{grid-template-columns:1fr}
.hn .comm{grid-template-columns:1fr}
.hn .ways{grid-template-columns:1fr 1fr}
.hn .wlist{grid-column:1/-1}
.hn .faq{grid-template-columns:1fr}
}
@media (max-width:700px){
.hn .qa-h{flex-wrap:wrap;padding:0 14px 10px}
.hn .qa-l a{grid-template-columns:34px minmax(0,1fr);padding:11px 14px;align-items:start}
.hn .qa-l .mi{width:34px;height:34px;font-size:13.5px;border-radius:9px;grid-row:span 2}
.hn .qa-l .t{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.hn .qa-l .st{grid-column:2;justify-self:start;padding:3px 9px;font-size:11.5px}
.hn .qa-l .m{white-space:normal}
.hn .hero{border-radius:18px}
.hn .hero-grid{padding:26px 18px 0}
.hn .hero h1{font-size:32px}
.hn .lede{font-size:16.5px;margin-top:12px}
.hn .proof{display:none}
.hn .cta-row .btn{flex:1 1 100%}
.hn .hero-visual{height:350px;margin-top:4px}
.hn .hero-visual::before{inset:-20px -10px 0 -10px}
.hn .stack{left:50%;top:30px;margin-left:-146px;transform-origin:0 0;transform:scale(.68) rotateX(9deg) rotateY(-27deg) rotateZ(1.5deg)}
.hn .mini{display:none}
.hn .stack-ix{right:auto;left:50%;transform:translateX(-50%);bottom:0;white-space:nowrap}
.hn .hero-facts{grid-template-columns:1fr 1fr;margin-top:14px}
.hn .hero-facts div{padding:11px 16px;border-left:0;border-top:1px solid var(--line)}
.hn .hero-facts div:nth-child(-n+2){border-top:0}
.hn .hero-facts div:nth-child(2n){border-left:1px solid var(--line)}
.hn .hero-facts b{font-size:19px}
.hn .hero-facts span{font-size:12.5px;line-height:1.3;display:block}
.hn .hero-reg{padding:12px 18px}
.hn .hero-reg .grow{display:none}
.hn .sec{margin-top:44px}
.hn .sec-head h2,.hn .notes-copy h2{font-size:24px}
.hn .band{padding:28px 16px 22px;border-radius:18px;margin-left:-4px;margin-right:-4px}
.hn .band-points{display:none}
.hn .pwx .pwcard{grid-template-columns:1fr}
.hn .pwx .lhalf{border-right:none;border-bottom:1px solid #f3f4f6}
.hn .pwx .instgrid{grid-template-columns:1fr}
.hn .pwx .instgrid>div:first-child{justify-self:center}
.hn .pwx .prow{flex-wrap:wrap}
.hn .pwx .prow .rmain{flex:1 1 calc(100% - 27px)}
.hn .pwx .prow .ct{white-space:normal}
.hn .pwx .prow .btn1,.hn .pwx .prow .btn2{flex:1 1 auto;text-align:center}
.hn .pwx .exbar{display:none}
.hn .pcp{display:grid;grid-auto-flow:column;grid-auto-columns:86%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:6px;margin-right:-16px;padding-right:16px}
.hn .pcp .pc{scroll-snap-align:start}
.hn .pcp .pc:first-child{grid-column:auto}
.hn .trow{grid-template-columns:44px minmax(0,1fr) 40px}
.hn .trow .mb{display:none}
.hn .tdetail{padding-left:14px}
.hn .tdetail::before,.hn .leaf::before{display:none}
.hn .leaf{flex-wrap:wrap}
.hn .leaf .acts{width:100%;padding-left:42px}
.hn .nfacts{grid-template-columns:1fr}
.hn .slide h3{font-size:16px}
.hn .slide .eq{font-size:34px}
.hn .slide .keys div{font-size:10.5px;padding:6px}
.hn .slide .keys b{font-size:14px}
.hn .mgrid{grid-template-columns:1fr 1fr;gap:8px}
.hn .rw{display:flex}
.hn .rw button{flex:1;min-width:0}
.hn .toc{padding:16px}
.hn .mchips{display:flex;flex-wrap:wrap;gap:5px}
.hn .mc{flex:1 0 calc(11.1% - 5px);height:34px;font-size:13px}
.hn .mc::before{display:none}
.hn .toc-p{grid-template-columns:minmax(0,1fr);gap:12px}
.hn .toc-cov{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:center}
.hn .toc-cov img{border-radius:9px}
.hn .toc-cov .k{margin-top:0}
.hn .toc-cov h4{font-size:15px}
.hn .toc-l{height:216px;font-size:13.5px}
.hn .readv{font-size:12.5px;line-height:1.55}
.hn .readv h4{font-size:15px;margin-bottom:6px}
.hn .readv .bx{font-size:12px;padding:7px 10px}
.hn .mod-guide{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:9px 10px;align-items:start}
.hn .mod-guide .ic{width:34px;height:34px;font-size:14px;border-radius:9px}
.hn .mod-guide .go{display:none}
.hn .mod-guide b{font-size:13px}
.hn .mod-guide span span{font-size:11.5px}
.hn .mod{grid-template-columns:34px minmax(0,1fr);gap:9px;padding:9px 10px;align-items:start}
.hn .mod .ic{width:34px;height:34px;font-size:14.5px;border-radius:9px}
.hn .mod .ic .flag{width:15px;height:9px;right:-5px;bottom:-4px}
.hn .mod h3{font-size:13px}
.hn .mod p{font-size:11.5px;gap:0;flex-direction:column;line-height:1.4;margin-top:1px}
.hn .mod .rd{align-items:flex-start;gap:0}
.hn .mod .ex{display:none}
.hn .mod .exi{display:block}
.hn.v-rd .mod.has-ex h3{padding-right:0}
.hn .mod-guide.weak span span{display:none}
.hn .plan .pv{height:160px}
.hn .plans,.hn .comm{display:grid;grid-auto-flow:column;grid-auto-columns:86%;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:6px;margin-right:-16px;padding-right:16px}
.hn .plans>*,.hn .comm>*{scroll-snap-align:start}
.hn .ways{grid-template-columns:1fr;gap:10px}
.hn .feat{flex-direction:row}
.hn .feat .im{width:36%;flex:none;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line-2)}
.hn .feat .ft{padding:11px 13px 12px}
.hn .feat b{font-size:15px}
.hn .feat .ft span{font-size:12.5px}
.hn .ctg{grid-auto-rows:auto}
.hn .trow2{grid-template-columns:46px minmax(0,1fr);row-gap:0}
.hn .trow2 .ic{grid-row:span 2}
.hn .trow2 .m{grid-column:2;font-size:12px}
.hn .ctt .im{flex:none;height:96px;min-height:0}
.hn .world{padding:18px}
.hn .flags{column-gap:14px}
.hn .flags a{grid-template-columns:30px minmax(0,1fr);gap:9px}
.hn .flags .cc{height:26px;font-size:10.5px}
.hn .flags b{font-size:13.5px}
.hn .flags .rg{font-size:12px}
.hn .flags .fa-chevron-right{display:none}
.hn .welcome .up{width:100%;justify-content:space-between}
.hn .welcome .chips{width:100%;flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
.hn .page,.hn .cats a,.hn .mod{transition:none!important}
.hn .mini .bar i.run{animation:none;width:35%}
}

/* ---- hand-written: states the mock never drew ---- */
main>nav[aria-label="Breadcrumb"]{display:none}
.hn{color:var(--body);font-family:var(--sans);font-size:15.5px;line-height:1.6;-webkit-font-smoothing:antialiased}
.hn .subst.soon{--pc:var(--amber)}
.hn .subst.soon .ok{background:var(--amber-soft);color:var(--amber-ink)}
.hn .subst .renew{margin-left:10px;font-weight:700;font-size:13px;white-space:nowrap}
.hn .pd-empty{color:var(--muted);font-size:14px;text-align:center;padding:24px 0}
.hn .st-empty{color:var(--muted);font-size:14px;padding:10px 0}
.hn .st-f .done{color:var(--muted);font-size:13.5px;font-weight:600}
.hn .st-f .done i{color:var(--ok);margin-right:6px}
.hn .asbar{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0 0 18px;font-size:13px;color:var(--muted)}
.hn .asbar a{padding:4px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--body)}
.hn .asbar a.on{background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue);font-weight:700}
.hn.v-sub #modules{margin-top:40px}
/* Streaks card: Challenge | Study streaks tabs (the mock had the challenge only) */
.hn .st-tabs{margin-top:14px;display:grid;grid-template-columns:1fr 1fr;gap:3px;padding:3px;border-radius:10px;background:var(--sunk);border:1px solid var(--line)}
.hn .st-tabs button{all:unset;cursor:pointer;text-align:center;font-size:13px;font-weight:600;color:var(--muted);padding:6px 8px;border-radius:7px;line-height:1.2}
.hn .st-tabs button:hover{color:var(--ink)}
.hn .st-tabs button[aria-selected="true"]{background:var(--surface);color:var(--ink);font-weight:700;box-shadow:0 1px 2px rgba(16,24,40,.08),0 0 0 1px var(--line)}
.hn .st-tabs button:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
html.dark .hn .st-tabs{background:var(--sunk);border-color:var(--line)}
html.dark .hn .st-tabs button[aria-selected="true"]{background:var(--surface-2);box-shadow:0 0 0 1px var(--line)}
.hn .st-pan{display:flex;flex-direction:column;flex:1;min-height:0}
/* Signed in, no subscription: the subscription chip, inactive and in red, with the plans
   button inside it (owner 2026-10-12; subscribers get the same chip in blue) */
.hn .subst.off{--pc:#dc2626}
html.dark .hn .subst.off{--pc:#f87171}
.hn .subst .btn{margin-left:14px;flex:none;font-size:13px;padding:8px 13px;border-radius:8px}
.hn .subst.off .btn{background:var(--pc);color:#fff;box-shadow:0 6px 14px -8px color-mix(in srgb,var(--pc) 80%,transparent)}
.hn .subst.off .btn:hover{filter:brightness(1.06);text-decoration:none}
.hn .subst.off>span:nth-child(2){flex:1 1 0;min-width:0}
html.dark .hn .subst.off .btn{color:#1b0b0b}
@media (max-width:700px){
.hn .subst.off{flex-wrap:wrap}
.hn .subst .btn{margin-left:auto}
}
/* Signed in without the notes: the study-notes section opens with a hero-like card (copy +
   the 3D stack of note pages, owner 2026-10-12), then the Read | Watch demo in its own row */
.hn .notes-hero{margin-bottom:32px}
.hn .notes-hero .notes-copy h2{max-width:16ch}
.hn .nwd-row{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-1);padding:26px 28px;gap:32px}
.hn .nwd-intro h3{font-size:22px;font-weight:800;letter-spacing:-.01em;color:var(--ink)}
.hn .nwd-intro>p{margin-top:8px;color:var(--muted);font-size:14.5px;max-width:46ch}
.hn .nwd-modes{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:16px}
.hn .nwd-modes li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;font-size:14px;color:var(--body);line-height:1.5}
.hn .nwd-modes .ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;font-size:14px;background:var(--steel-soft);color:var(--steel)}
.hn .nwd-modes b{display:block;color:var(--ink);font-size:15px}
.hn .nwd-modes .m-watch .ic{background:var(--amber-soft);color:var(--amber-ink)}
.hn .nwd-modes .m-play{padding-top:12px;border-top:1px solid var(--line-2);color:var(--muted);font-size:13.5px;align-items:center}
.hn .nwd-modes .m-play .ic{background:var(--blue-soft);color:var(--blue)}
/* one card (owner 2026-10-12): inside the notes hero the demo row is a section under a divider */
.hn .notes-hero .nwd-row{background:none;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;margin:0;padding:30px 40px 34px}
@media (max-width:1180px){
.hn .notes-hero .nwd-row{padding:26px 32px 30px}
}
@media (max-width:700px){
.hn .notes-hero .nwd-row{padding:20px 18px 22px}
}
@media (max-width:700px){
.hn .nwd-row{padding:18px 16px;gap:18px}
}
/* phones (owner 2026-10-12): the progress mocks, the plan cards and the community cards stack
   one after another instead of scrolling sideways */
@media (max-width:700px){
.hn .pcp,.hn .plans,.hn .comm{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:minmax(0,1fr);overflow-x:visible;scroll-snap-type:none;margin-right:0;padding-right:0;padding-bottom:0}
}
/* desktop: demo on the left, capped at 470 px; with the demo-side 16:9 override it is ~380 px tall there, level with the text (was 358 px tall
   from ~420 to 560 px wide; it grows past ~600 px), text on the right takes the rest. Phones keep
   the markup order: heading first, then the demo. */
@media (min-width:1181px){
.hn .nwd-row{grid-template-columns:minmax(0,470px) minmax(0,1fr)}
.hn .nwd-row .nwd{order:-1}
}
@media (min-width:1181px){
.hn .notes-hero .hero-grid{padding:40px 0 20px 40px}
}
@media (max-width:1180px){
.hn .notes-hero .hero-grid{padding-bottom:24px}
}
/* INR prices exclude 18% GST (as on the subscription page) */
.hn .gst{font-size:12px;font-weight:600;color:var(--muted);margin:0 4px 0 3px;white-space:nowrap;letter-spacing:0}
.hn .gst-note{margin-top:14px;font-size:13px;color:var(--muted)}
.hn .plan.hl .gst{color:inherit;opacity:.72}   /* on the dark blue card the grey mark was unreadable */
.hn .qa-empty{padding:16px 20px;color:var(--muted);font-size:14px}
@media (min-width:1025px){
.hn .plans.two{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* The real progress widget renders outside .hn (so the showcase rules cannot restyle it), in a
   .hn-pw wrapper that adds back the one deliberate part of the mock's look: the deep card shadow. */
.hn-pw .pwx .pwcard{box-shadow:0 1px 3px rgba(0,0,0,.06),0 30px 60px -30px rgba(0,0,0,.6)}
.hn .mgrid.filtering .mod.hit{opacity:1}
/* Subscribers: their Settings category is the resting filter; the weak-areas tile is not a
   module and stays at full strength, and a dimmed tile lifts on hover (it is still usable) */
.hn .mgrid.mine .mod-guide{opacity:1}
.hn .mgrid.filtering .mod:not(.hit):hover{opacity:.72}
.hn .cats .hint b{color:var(--ink);font-weight:700}
.hn .cats .hint a{display:inline;border:0;background:none;padding:0;border-radius:0;color:var(--blue);font-weight:700;font-size:inherit;margin-left:2px}
.hn .cats .hint a:hover{background:none;text-decoration:underline}
/* name and bar share the row 50/50 in both tabs, so a long name is not cut at 86 px */
.hn .st-list li{grid-template-columns:16px minmax(0,1fr) minmax(0,1fr) 26px}
.hn .st-list.days li{grid-template-columns:16px minmax(0,1fr) minmax(0,1fr) 34px}
.hn .st-list.days .bar i{background:linear-gradient(90deg,#fb923c,#ef4444)}
.hn .st-list .st-load{display:block;color:var(--muted);font-size:13.5px;padding:8px 0}
.hn .st-f .rk{margin-left:auto;font-weight:600;font-size:13.5px;white-space:nowrap}
.hn .st-f .pl b{color:var(--ink)}
/* Challenge list caption and footer: who is playing above the list; you on the
   left of the footer, the action or today's result on the right */
.hn .st-cap{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-top:14px;font-size:12px;font-weight:600;color:var(--muted)}
.hn .st-cap i{color:var(--faint);margin-right:5px}
.hn .st-cap+.st-list{margin-top:8px}
.hn .st-cap+.st-empty{padding-top:6px}
.hn .st-f{min-height:52px}
.hn .st-me{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.hn .st-me i{color:var(--amber);margin-right:6px}
.hn .st-me b{color:var(--ink);font-weight:700}
.hn .st-today{margin-left:auto;display:inline-flex;align-items:center;gap:7px;padding:9px 14px;border-radius:9px;font-size:13.5px;font-weight:600;line-height:1;white-space:nowrap;
  background:color-mix(in srgb,var(--ok) 12%,var(--surface));color:var(--ok-ink);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--ok) 30%,transparent)}
.hn .st-today b{font-weight:800}
html.dark .hn .st-today{color:#6ee7b7;background:color-mix(in srgb,var(--ok) 16%,var(--surface))}

/* ---- /study-notes/ (modules/study_notes.php; owner, 2026-10-13) ---- */
/* The module covers are 4:3 artwork, shown whole: the .feat crop and zoom are for 16:9 news photos. */
.hn .feat.cov .im{aspect-ratio:4/3}
.hn .feat.cov img{transform:none;object-fit:contain}
/* Seventeen module cards in even columns: three, two on a tablet, one on a phone. */
.hn .ways.mods{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:1024px){.hn .ways.mods{grid-template-columns:1fr 1fr}}
@media (max-width:700px){.hn .ways.mods{grid-template-columns:1fr}.hn .feat.cov .im{aspect-ratio:auto}}
/* A plan card's checkout (includes/study_notes_buy.php) at the card's foot, its buttons full width. */
/* Signed in, every checkout is a button and a lock line, so the buttons line up as they are. A visitor's online card
   adds a sign-in line under its button: for a visitor every checkout keeps that height (owner: no blank space when
   signed in). */
.hn .plan .pbuy{margin-top:auto;display:grid;gap:8px;align-content:start}
@media (min-width:1025px){.hn .plans.visitor .plan .pbuy{min-height:124px}}
/* The title row holds two lines in every card (kicker 15.6px + two 22.8px lines), so the prices sit on one row
   whichever titles wrap (owner, 2026-10-13). */
.hn .plans.sn .plan .ph{min-height:62px}
@media (min-width:1025px) and (max-width:1280px){.hn .plans.sn .plan .mode{display:none}}
/* The notes chip turns amber in its last days in dark mode too (the dark notes rule outranked .soon). */
html.dark .hn .subst.n.soon{--pc:var(--amber)}
/* Where subgrid works (Chrome 117+, Safari 16+, Firefox 71+) the three cards share their rows on desktop: the titles,
   the prices, the lists and the checkouts line up whatever wraps (an India checkout label wraps to three lines at
   1025-1100 px), and nothing is kept in reserve. The min-heights above remain the fallback. */
@media (min-width:1025px){@supports (grid-template-rows:subgrid){
.hn .plans.sn{row-gap:0}
.hn .plans.sn .plan{display:grid;grid-row:span 6;grid-template-rows:subgrid}
.hn .plans.sn .plan .pv{grid-row:1}
.hn .plans.sn .plan .pb{grid-row:2/span 5;display:grid;grid-template-rows:subgrid;row-gap:0}
.hn .plans.sn .plan .pbuy{margin-top:0}
.hn .plans.sn .plan ul{align-content:start}
.hn .plans.sn.visitor .plan .pbuy{min-height:0}
.hn .plans.sn .plan .ph{min-height:0}
}}
.hn .plan .pbuy .btn{width:100%;white-space:normal;line-height:1.25;text-align:center}
/* The plan visuals: the online card's two back cards are real Watch slides (16:9); the PDF sheets carry note text. */
.hn .fan img.sl{aspect-ratio:16/9;width:168px;object-fit:cover}
.hn .sheet .ln{display:block;color:#5b6577;font-weight:400;margin-bottom:4px}
.hn .sheet .fig{float:right;width:58px;height:44px;object-fit:contain;background:#f8fafc;border-radius:3px;margin:0 0 2px 8px}
.hn .sheet.s2.fill{display:flex;flex-direction:column;justify-content:flex-end;height:170px;padding:11px 13px 10px;font-size:9.5px;line-height:1.35}
.hn .sheet .ex{display:block;border-left:3px solid #d97706;background:#fff7ed;padding:4px 6px;border-radius:2px;color:#3a475b}
.hn .sheet .ft{display:block;margin-top:6px;padding-top:5px;border-top:1px solid #e9e4da;font-size:9px;color:#7c6f5b;font-weight:600}
