.hub-gate{color:var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);transition:opacity .35s var(--ease-out), transform .35s var(--ease-out);background:#fff;gap:.9rem;padding:1.6rem 1.5rem;display:grid}.hub-gate h2{color:var(--primary-800);font-size:var(--fs-600)}.hub-gate p{color:var(--ink-soft);font-size:var(--fs-300)}.hub-gate label{font-weight:700;font-size:var(--fs-300);color:var(--primary-800);gap:.35rem;display:grid}.hub-gate input[type=text]{font:inherit;letter-spacing:.04em;border:2px solid var(--line);border-radius:var(--radius-sm);min-block-size:48px;width:100%;padding:.8rem .95rem;font-size:1.1rem}.hub-gate input[type=text]:focus{outline:3px solid var(--teal-600);outline-offset:1px;border-color:var(--teal-600)}.hub-gate .remember{color:var(--ink-soft);align-items:center;gap:.5rem;font-weight:500;display:flex}.hub-gate .remember input{block-size:1.15rem;inline-size:1.15rem;accent-color:var(--teal-600)}.hub-gate .gate-error{background:var(--coral-100);color:#6b3d00;border-radius:var(--radius-sm);font-size:var(--fs-300);padding:.65rem .85rem;font-weight:600}.hub-gate.shake{animation:hub-shake .4s var(--ease-out)}.hub-gate.is-unlocking{opacity:0;pointer-events:none;transform:translateY(-6px)}@keyframes hub-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-5px)}80%{transform:translate(5px)}}[data-hub].is-unlocked .hub-gate,[data-hub].is-unlocked .hub-locked-only,[data-hub]:not(.is-unlocked) .hub-unlocked-only{display:none}.hub-planner{border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);background:#fff;gap:.8rem;padding:1.2rem 1.4rem;display:grid}@media (width>=760px){.hub-planner{grid-template-columns:auto 1fr;align-items:center;gap:1.4rem}}.hub-planner label{color:var(--primary-800);font-weight:700;font-size:var(--fs-300);gap:.35rem;display:grid}.hub-planner input[type=date]{font:inherit;border:2px solid var(--line);border-radius:var(--radius-sm);min-block-size:44px;min-inline-size:12rem;padding:.6rem .8rem}.hub-planner-text{font-size:var(--fs-500);color:var(--primary-800);font-weight:650}.hub-planner-clear{font-size:var(--fs-300);color:var(--primary-700);cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;text-decoration:underline}.hub-progress{gap:.4rem;display:grid}.hub-progress-track{background:var(--teal-100);border-radius:999px;block-size:10px;overflow:hidden}.hub-progress-bar{background:linear-gradient(90deg, var(--teal-600), var(--primary-700));block-size:100%;inline-size:0;transition:inline-size 1.1s var(--ease-out);border-radius:999px}.hub-progress-label{font-size:var(--fs-300);color:var(--ink-soft)}.phase-rail{scrollbar-width:thin;gap:.5rem;padding-block:.4rem .6rem;display:flex;overflow-x:auto}.phase-rail a{border:1px solid var(--line);color:var(--primary-800);font-family:var(--font-display);font-weight:700;font-size:var(--fs-300);min-block-size:44px;transition:background .2s var(--ease-out), border-color .2s var(--ease-out), transform .2s var(--ease-out);background:#fff;border-radius:999px;flex:none;align-items:center;gap:.45rem;padding:.55rem .95rem;text-decoration:none;display:inline-flex}.phase-rail a:hover{background:var(--mist);transform:translateY(-1px)}.phase-rail a.is-current{background:var(--primary-700);color:#fff;border-color:var(--primary-700)}.phase-rail a.is-current:before{content:"";background:var(--coral-500);border-radius:50%;block-size:.5rem;inline-size:.5rem}.hub-phase{scroll-margin-top:calc(var(--header-h) + 1rem);padding-block:1.6rem .4rem}.hub-phase.is-current .hub-phase-head{border-color:var(--coral-500)}.hub-phase-head{border-left:4px solid var(--teal-100);transition:border-color .4s var(--ease-out);padding-left:1rem}.hub-phase-head .now{letter-spacing:.1em;text-transform:uppercase;color:#6b3d00;background:var(--coral-100);vertical-align:middle;font-size:.72rem;font-family:var(--font-display);border-radius:999px;margin-left:.6rem;padding:.2rem .6rem;font-weight:800;display:none}.hub-phase.is-current .hub-phase-head .now{display:inline-block}.hub-phase-head p{color:var(--ink-soft);max-width:62rem;margin-top:.3rem}.hub-cards{gap:.9rem;margin-top:1.1rem;display:grid}@media (width>=700px){.hub-cards{grid-template-columns:repeat(2,1fr)}}@media (width>=1100px){.hub-cards{grid-template-columns:repeat(3,1fr)}}.hub-card{border:1px solid var(--line);border-radius:var(--radius-lg);color:inherit;box-shadow:var(--shadow-sm);transition:transform .25s var(--ease-out), box-shadow .25s var(--ease-out), border-color .25s var(--ease-out);background:#fff;grid-template-columns:auto 1fr;align-items:start;gap:.9rem;padding:1.1rem 1.15rem;text-decoration:none;display:grid;position:relative}.hub-card:hover{box-shadow:var(--shadow);border-color:var(--teal-600);color:inherit;transform:translateY(-3px)}.hub-card .icon-chip{block-size:2.6rem;inline-size:2.6rem}.hub-card .icon-chip svg{block-size:1.4rem;inline-size:1.4rem}.hub-card h3{font-size:var(--fs-400);color:var(--primary-800);line-height:1.25}.hub-card p{font-size:var(--fs-300);color:var(--ink-soft);margin-top:.3rem}.hub-summary-locked{opacity:.75;font-style:italic}[data-hub].is-unlocked .hub-summary{animation:.4s both hub-in}.hub-card-meta{color:var(--ink-soft);flex-wrap:wrap;gap:.4rem .8rem;margin-top:.5rem;font-size:.78rem;font-weight:600;display:flex}.hub-card-meta .tag{background:var(--teal-100);color:var(--primary-700);border-radius:999px;padding:.1rem .55rem}.hub-card.is-read:after{content:"✓ read";color:var(--teal-600);font-size:.72rem;font-weight:800;font-family:var(--font-display);position:absolute;top:.8rem;right:.9rem}[data-hub]:not(.is-unlocked) .hub-card .lock{color:var(--ink-soft);position:absolute;top:.8rem;right:.9rem}[data-hub].is-unlocked .hub-card .lock{display:none}.hub-chapter-meta{font-size:var(--fs-300);color:var(--ink-soft);flex-wrap:wrap;gap:.5rem 1.2rem;font-weight:600;display:flex}.hub-toc{background:var(--mist);border-radius:var(--radius);margin-bottom:1.6rem;padding:1rem 1.2rem}.hub-toc p{font-family:var(--font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-600);margin-bottom:.4rem;font-size:.78rem;font-weight:800}.hub-toc ul{gap:.25rem;padding:0;list-style:none;display:grid}.hub-toc a{font-weight:600;text-decoration:none}.hub-toc a:hover{text-decoration:underline}.hub-body{min-block-size:10rem}.hub-body h2,.hub-body h3{scroll-margin-top:calc(var(--header-h) + 1rem)}.hub-body .hub-in{animation:hub-in .6s var(--ease-out) both;animation-delay:calc(var(--i,0) * 45ms)}@keyframes hub-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.hub-skeleton{gap:.8rem;display:grid}.hub-skeleton span{background:linear-gradient(90deg, var(--mist), #fff, var(--mist));background-size:200% 100%;border-radius:6px;block-size:1rem;animation:1.4s linear infinite hub-shimmer;display:block}.hub-skeleton span:nth-child(2){inline-size:92%}.hub-skeleton span:nth-child(3){inline-size:70%}@keyframes hub-shimmer{to{background-position:-200% 0}}[data-hub].is-unlocked .hub-skeleton{display:none}.hub-pager{gap:.8rem;margin-top:2.4rem;display:grid}@media (width>=700px){.hub-pager{grid-template-columns:1fr 1fr}}.hub-pager a{border:1px solid var(--line);border-radius:var(--radius);color:inherit;min-block-size:44px;transition:border-color .2s var(--ease-out), transform .2s var(--ease-out);background:#fff;gap:.2rem;padding:1rem 1.15rem;text-decoration:none;display:grid}.hub-pager a:hover{border-color:var(--teal-600);color:inherit;transform:translateY(-2px)}.hub-pager a span{letter-spacing:.1em;text-transform:uppercase;color:var(--teal-600);font-size:.75rem;font-family:var(--font-display);font-weight:800}.hub-pager a strong{color:var(--primary-800)}.hub-pager .next{text-align:right}.hub-actions{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.hub-actions .btn{min-block-size:44px}.callout{border-radius:var(--radius);border:1px solid var(--line);background:var(--mist);border-left-width:5px;margin-block:1.4rem;padding:1rem 1.2rem}.callout>*+*{margin-block-start:.6rem}.callout ul,.callout ol{padding-inline-start:1.2rem}.callout--glance{border-left-color:var(--teal-600);background:var(--teal-100)}.callout--glance:before,.callout--warning:before,.callout--call:before,.callout--tip:before,.callout--note:before{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;margin-bottom:.5rem;font-size:.74rem;font-weight:800;display:block}.callout--glance:before{content:"At a glance";color:var(--primary-700)}.callout--warning{background:#fff4ec;border-left-color:#c2410c}.callout--warning:before{content:"Important";color:#9a3412}.callout--call{border-left-color:var(--coral-500);background:var(--coral-100)}.callout--call:before{content:"Who to call";color:#6b3d00}.callout--tip{border-left-color:var(--teal-600)}.callout--tip:before{content:"Tip";color:var(--teal-600)}.callout--note{border-left-color:var(--ink-soft);background:#fff}.callout--note:before{content:"Note";color:var(--ink-soft)}.hub-check-count{font-size:var(--fs-300);color:var(--teal-600);margin-block:1.2rem .4rem;font-weight:700}.hub-check-count.is-complete{color:#157347;animation:hub-pop .5s var(--ease-out)}.hub-check-count.is-complete:before{content:"✓ "}.hub-check input:checked{animation:hub-pop .35s var(--ease-out)}@keyframes hub-pop{0%{transform:scale(1)}45%{transform:scale(1.12)}to{transform:scale(1)}}ul.hub-checklist{gap:.5rem;padding:0;list-style:none;display:grid}.hub-check label{cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-sm);transition:background .25s var(--ease-out), border-color .25s var(--ease-out);background:#fff;grid-template-columns:auto 1fr;align-items:start;gap:.75rem;padding:.7rem .85rem;display:grid}.hub-check label:hover{background:var(--mist)}.hub-check input{block-size:1.35rem;inline-size:1.35rem;accent-color:var(--teal-600);cursor:pointer;margin-top:.1rem}.hub-check span{transition:color .3s var(--ease-out);position:relative}.hub-check span:after{content:"";background:var(--ink-soft);block-size:2px;inline-size:0;transition:inline-size .35s var(--ease-out);position:absolute;top:55%;left:0}.hub-check.is-done label{background:var(--teal-100);border-color:var(--teal-100)}.hub-check.is-done span{color:var(--ink-soft)}.hub-check.is-done span:after{inline-size:100%}.hub-fjs-row{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.hub-fjs-row input{font:inherit;border:2px solid var(--line);border-radius:var(--radius-sm);min-block-size:44px;inline-size:7rem;padding:.55rem .8rem}.hub-fjs-row output{color:var(--primary-800);flex:16rem;font-weight:650}.hub-callbar{gap:.6rem;margin-top:2rem;display:grid}@media (width>=760px){.hub-callbar{grid-template-columns:repeat(3,1fr)}}.hub-callbar a,.hub-callbar div{border-radius:var(--radius);color:inherit;border:1px solid var(--line);background:#fff;gap:.15rem;min-block-size:44px;padding:.9rem 1rem;text-decoration:none;display:grid}.hub-callbar span{letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-family:var(--font-display);color:var(--teal-600);font-weight:800}.hub-callbar strong{color:var(--primary-800);font-size:var(--fs-500)}.hub-callbar .er{background:#fff5f5;border-color:#fecaca}.hub-callbar .er span{color:#b91c1c}.hub-hero .kicker--light,.chapter-hero .kicker--light{color:var(--aqua)}.hub-hero .lede--light,.chapter-hero .lede--light{color:#c9dcf0;margin-block-start:1rem}.hub-hero .chips{flex-wrap:wrap;gap:.5rem;margin-block-start:1.3rem;padding:0;list-style:none;display:flex}.hub-hero .chips li{font-family:var(--font-display);font-size:var(--fs-300);color:#e6eff8;background:#ffffff1a;border:1px solid #ffffff40;border-radius:999px;padding:.35rem .9rem;font-weight:700}.chapter-hero .hub-chapter-meta{margin-top:1rem}.hub-welcome{color:var(--ink);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:hub-in .6s var(--ease-out) both;background:#fff;gap:.75rem;padding:1.5rem;display:grid}.hub-welcome .eyebrow{font-family:var(--font-display);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-600);font-size:.74rem;font-weight:800}.hub-welcome h2{font-size:var(--fs-600);color:var(--primary-800)}.hub-welcome p{color:var(--ink-soft);font-size:var(--fs-300)}.hub-welcome .next-link{border-radius:var(--radius);background:var(--teal-100);color:var(--primary-800);min-block-size:44px;transition:transform .2s var(--ease-out), background .2s var(--ease-out);gap:.2rem;padding:.9rem 1rem;text-decoration:none;display:grid}.hub-welcome .next-link:hover{color:var(--primary-800);background:#d4e2fa;transform:translateY(-2px)}.hub-welcome .next-link span{letter-spacing:.1em;text-transform:uppercase;font-size:.74rem;font-weight:800;font-family:var(--font-display);color:var(--teal-600)}.hub-welcome .next-link strong{font-size:var(--fs-500)}.hub-welcome .quick{flex-wrap:wrap;gap:.5rem;display:flex}.hub-welcome .quick a{font-size:var(--fs-300);font-weight:650}.hub-actions .btn{padding:.55rem 1.05rem;font-size:.92rem}@media (prefers-reduced-motion:reduce){.hub-body .hub-in,.hub-gate.shake,.hub-welcome,.hub-check-count.is-complete,.hub-check input:checked{animation:none}.hub-progress-bar,.hub-card,.hub-pager a,.phase-rail a,.hub-check span:after{transition:none}}@media print{.hub-gate,.hub-planner,.hub-progress,.phase-rail,.hub-actions,.hub-pager,.hub-toc,.hub-callbar,.page-hero .hero-actions{display:none!important}.callout{break-inside:avoid}}
