@charset "UTF-8";
:root {
  --page:#f6f8fc;
  --surface:#ffffff;
  --heading:#183653;
  --text:#405973;
  --muted:#5b6f84;
  --brand:#176acb;
  --brand-hover:#1057ad;
  --focus:#176acb;
  --hero:#e7f2ff;
  --hero-deep:#d8eefe;
  --line:#dfe7f0;
  --control-border:#758ca4;
  --learning:#e9f3ff;
  --reading:#eaf6ef;
  --writing:#fff0e8;
  --math:#fff7dc;
  --yellow:#ffcc4c;
  --sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei",Arial,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:28px; }
body { margin:0; color:var(--heading); background:var(--page); font:16px/1.65 var(--sans); -webkit-font-smoothing:antialiased; }
h1,h2,h3,p { margin:0; }
a { color:inherit; text-decoration:none; }
button,input { font:inherit; }
button { color:inherit; cursor:pointer; }
button,a { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
img,svg { display:block; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
::selection { background:#c6e2ff; color:var(--heading); }
[hidden] { display:none!important; }
.page-width { width:min(1200px,calc(100% - 80px)); margin-inline:auto; }
.svg-sprite { position:absolute; width:0; height:0; overflow:hidden; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link { position:fixed; z-index:100; top:12px; left:12px; padding:12px 20px; color:white; background:var(--brand); border-radius:8px; transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
main:focus { outline:none; }
.site-header { background:var(--surface); border-bottom:1px solid #e7edf4; }
.header-inner { min-height:88px; display:flex; justify-content:space-between; align-items:center; gap:32px; }
.brand { display:flex; align-items:center; gap:22px; min-height:44px; flex-shrink:0; }
.brand img { width:145px; height:auto; }
.brand-caption { font-size:12px; color:var(--muted); letter-spacing:.4px; border-left:1px solid var(--line); padding-left:22px; }
.primary-nav { display:flex; align-items:center; gap:10px; font-size:14px; font-weight:550; }
.primary-nav>a { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:10px 15px; border-radius:9px; transition:color .18s,background .18s; white-space:nowrap; }
.primary-nav>a:hover,.primary-nav .nav-learning { color:var(--brand); background:#edf5ff; }
.primary-nav .nav-explore { margin-left:12px; color:var(--brand); border:1px solid #b9d4f2; background:transparent; padding-inline:18px; gap:18px; }
.primary-nav .nav-explore:hover { background:#edf5ff; }
.nav-explore>span { font-size:19px; line-height:1; }
.menu-toggle { display:none; }
.hero { position:relative; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); align-items:center; gap:24px; margin-top:28px; padding:44px 54px; background:var(--hero); border:1px solid #d7e8fa; border-radius:26px; overflow:hidden; }
.hero-copy { position:relative; z-index:1; }
.hero-kicker { display:inline-flex; align-items:center; gap:8px; font-size:13px; line-height:1.5; font-weight:550; color:#3a6187; margin-bottom:20px; }
.hero-kicker svg { flex-shrink:0; }
.hero h1 { font-size:clamp(39px,4vw,52px); font-weight:750; line-height:1.35; letter-spacing:-1.5px; }
.hero-highlight { position:relative; white-space:nowrap; isolation:isolate; }
.hero-highlight svg { position:absolute; width:100%; height:12px; left:0; bottom:0; stroke:var(--yellow); stroke-width:7; stroke-linecap:round; fill:none; z-index:-1; }
.hero-description { font-size:16px; color:var(--text); line-height:1.8; margin-top:18px; }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:14px; margin-top:26px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:48px; padding:11px 20px; border-radius:10px; font-size:15px; font-weight:600; transition:background .18s,transform .18s,box-shadow .18s; }
.button-primary { color:white; background:var(--brand); box-shadow:0 4px 10px #176acb20; }
.button-primary:hover { background:var(--brand-hover); transform:translateY(-2px); box-shadow:0 6px 15px #176acb28; }
.button-secondary { background:#ffffffdb; color:var(--heading); border:1px solid #c3d9ee; }
.button-secondary:hover { background:white; border-color:#8fb7df; }
.button>span { font-size:20px; line-height:1; }
.hero-illustration { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; isolation:isolate; }
.hero-illustration>img { width:min(100%,460px); height:auto; position:relative; z-index:1; }
.hero-orbit { position:absolute; border-radius:50%; pointer-events:none; z-index:-1; }
.orbit-one { width:340px; height:340px; background:#ffffff50; top:calc(50% - 176px); left:calc(50% - 154px); }
.orbit-two { width:400px; height:400px; border:1px solid #ffffffb0; top:calc(50% - 206px); left:calc(50% - 184px); }
.illustration-caption { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:6px; font-size:12px; color:#466685; letter-spacing:.3px; }
.illustration-caption>span { color:#9c721d; font-size:17px; }
.explore-directions { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:18px; }
.direction { display:flex; align-items:center; gap:13px; min-height:90px; padding:16px 19px; background:var(--surface); border:1px solid var(--line); border-radius:14px; transition:border-color .18s,transform .18s,box-shadow .18s; }
.direction:hover { transform:translateY(-2px); border-color:#a8c6e7; box-shadow:0 6px 18px #18365307; }
.direction-icon { display:flex; align-items:center; justify-content:center; flex-shrink:0; width:42px; height:44px; }
.direction-tools .direction-icon { color:#996345; background:#fff3e9; border-radius:12px; }
.direction-games .direction-icon { background:#fff7dc; border-radius:12px; }
.direction strong { display:block; font-size:15px; line-height:1.5; font-weight:650; }
.direction small { display:block; font-size:11px; color:var(--muted); line-height:1.5; margin-top:4px; }
.direction-arrow { margin-left:auto; font-size:17px; color:var(--muted); }
.learning-section { margin-top:46px; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; margin-bottom:24px; }
.section-kicker { font-size:10px; font-weight:650; letter-spacing:1.3px; color:var(--muted); line-height:1.5; margin-bottom:8px; }
.section-heading h2 { font-size:28px; font-weight:700; line-height:1.45; letter-spacing:-.5px; }
.section-description { font-size:15px; color:var(--muted); line-height:1.7; margin-top:8px; }
.section-more { display:inline-flex; align-items:center; gap:14px; min-height:44px; color:var(--brand); font-size:14px; font-weight:550; white-space:nowrap; }
.section-more>span { font-size:19px; transition:transform .18s; }
.section-more:hover>span { transform:translateX(3px); }
.learning-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
.course-card { position:relative; min-width:0; padding:24px; border:1px solid #d4e4f5; border-radius:18px; background:var(--learning); overflow:hidden; transition:transform .2s,box-shadow .2s; }
.course-card:hover { transform:translateY(-4px); box-shadow:0 10px 24px #1836530c; }
.course-junior { background:var(--reading); border-color:#d6e9de; }
.course-writing { background:var(--writing); border-color:#f0dfd5; }
.course-math { background:var(--math); border-color:#efdfac; }
.course-label { position:relative; z-index:1; display:inline-block; font-size:11px; font-weight:550; color:#285c95; line-height:1.7; }
.course-junior .course-label { color:#276247; }
.course-writing .course-label { color:#934f32; }
.course-math .course-label { color:#795c16; }
.course-illustration { position:absolute; top:16px; right:15px; width:90px; height:99px; }
.course-card h3 { position:relative; z-index:1; font-size:24px; font-weight:700; letter-spacing:-.5px; line-height:1.5; margin-top:15px; }
.course-card p { position:relative; z-index:1; font-size:14px; color:var(--text); line-height:1.75; margin-top:23px; }
.course-footer { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:20px; padding-top:17px; border-top:1px solid #18365312; color:var(--text); font-size:11px; line-height:1.5; }
.course-footer strong { font-size:20px; line-height:1; font-weight:650; color:var(--heading); margin-right:2px; }
.course-arrow { display:flex; justify-content:center; align-items:center; width:28px; height:28px; flex-shrink:0; background:#ffffffc7; border-radius:50%; font-size:18px; color:var(--heading); }
.directory-section { margin-top:54px; }
.collection-count { font-size:12px; color:var(--muted); white-space:nowrap; padding-bottom:8px; }
.collection-count strong { font-size:18px; font-weight:650; color:var(--heading); }
.collection-count>span { padding:0 7px; }
.directory-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:10px; background:var(--surface); border:1px solid var(--line); border-radius:14px; }
.category-filters { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.filter-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:44px; padding:9px 14px; color:var(--text); background:transparent; border:1px solid transparent; border-radius:9px; font-size:13px; font-weight:550; line-height:1.4; white-space:nowrap; transition:background .15s,color .15s; }
.filter-button>span { color:var(--muted); font-size:11px; font-weight:400; }
.filter-button:hover { background:#edf5ff; color:var(--brand); }
.filter-button.is-active { background:var(--brand); color:white; }
.filter-button.is-active>span { color:white; }
.search-form { position:relative; display:flex; align-items:center; min-width:218px; max-width:266px; flex:1; height:44px; background:#f8fafd; border:1px solid var(--control-border); border-radius:9px; }
.search-form input { min-width:0; width:100%; height:100%; color:var(--heading); background:transparent; border:0; border-radius:9px; padding:10px 43px 10px 39px; font-size:13px; outline:0; }
.search-form input::placeholder { color:var(--muted); opacity:1; }
.search-form input::-webkit-search-cancel-button { display:none; }
.search-form:focus-within { outline:3px solid var(--focus); outline-offset:3px; }
.search-form input:focus-visible { outline:0; }
.search-icon { position:absolute; left:15px; top:14px; width:12px; height:12px; border:1.5px solid var(--muted); border-radius:50%; pointer-events:none; }
.search-icon:after { content:""; position:absolute; width:5px; height:1.5px; background:var(--muted); right:-4px; bottom:-2px; transform:rotate(45deg); }
.search-clear { position:absolute; right:-1px; top:-1px; width:44px; height:44px; color:var(--muted); background:transparent; border:0; border-radius:8px; font-size:22px; }
.directory-meta { display:flex; justify-content:space-between; align-items:flex-start; gap:16px; margin:17px 2px 16px; font-size:11px; color:var(--muted); }
.directory-meta p { min-width:0; overflow-wrap:anywhere; }
.directory-meta>span { text-align:right; flex-shrink:0; }
.directory-meta>span>span { margin-left:5px; }
.project-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; padding:0; margin:0; list-style:none; }
.project-item { min-width:0; }
.project-item>a { position:relative; display:grid; grid-template-columns:45px minmax(0,1fr); align-items:start; gap:15px; min-height:182px; height:100%; padding:24px 22px 30px; background:var(--surface); border:1px solid var(--line); border-radius:15px; transition:transform .18s,border-color .18s,box-shadow .18s; }
.project-item>a:hover { border-color:#98bce3; transform:translateY(-2px); box-shadow:0 8px 22px #18365308; }
.project-glyph { display:flex; align-items:center; justify-content:center; width:45px; height:48px; padding:3px; border-radius:12px; background:#edf4ff; }
.project-glyph svg { width:38px; height:42px; }
.glyph-industry { background:#edf4ff; }
.glyph-tools { background:#fff3e7; }
.glyph-games { background:#fff7dd; }
.project-content { min-width:0; }
.project-type { display:block; color:var(--muted); font-size:10px; line-height:1.6; }
.project-content h3 { color:var(--heading); font-size:17px; line-height:1.55; font-weight:650; letter-spacing:-.2px; margin-top:5px; overflow-wrap:anywhere; }
.project-content p { color:var(--text); font-size:14px; line-height:1.75; margin-top:9px; }
.project-item>a:hover h3 { color:var(--brand); }
.project-arrow { position:absolute; right:19px; bottom:12px; color:#59748f; font-size:19px; line-height:1; }
.experimental-label { color:#835413; background:#fff1d4; padding:1px 5px; border-radius:4px; }
.empty-state { padding:44px 24px; background:var(--surface); border:1px dashed #a8bdd2; border-radius:15px; text-align:center; }
.empty-state>span { font-size:38px; line-height:1; color:#557591; }
.empty-state h3 { font-size:21px; font-weight:650; margin-top:16px; }
.empty-state p { color:var(--text); font-size:15px; margin-top:10px; }
.reset-filters { min-height:44px; padding:11px 18px; margin-top:22px; color:white; background:var(--brand); border:0; border-radius:9px; font-size:14px; font-weight:550; }
.reset-filters:hover { background:var(--brand-hover); }
.reset-filters>span { margin-left:12px; }
.noscript-note { color:var(--text); font-size:14px; line-height:1.8; padding:15px 18px; background:#e9f3ff; border:1px solid #c5dcf4; border-radius:10px; margin-bottom:18px; }
html:not(.directory-ready) .directory-toolbar { display:none; }
.about-section { display:grid; grid-template-columns:1fr 1.3fr; align-items:center; gap:60px; padding:34px 40px; margin-top:48px; background:#eaf2fb; border:1px solid #d6e4f4; border-radius:18px; }
.about-heading { display:flex; align-items:center; gap:17px; }
.about-icon { flex-shrink:0; width:48px; height:48px; }
.about-heading .section-kicker { font-size:9px; margin-bottom:6px; }
.about-section h2 { font-size:25px; line-height:1.5; font-weight:700; letter-spacing:-.6px; }
.about-copy p { color:var(--text); font-size:14px; line-height:1.85; }
.about-copy .section-more { margin-top:8px; font-size:13px; }
.site-footer { display:flex; justify-content:space-between; align-items:center; gap:28px; padding-top:30px; padding-bottom:34px; margin-top:30px; border-top:1px solid var(--line); }
.footer-brand { display:flex; align-items:center; gap:22px; }
.footer-brand>img { width:110px; height:auto; }
.footer-brand>span { color:var(--muted); font-size:12px; }
.site-footer>p { text-align:right; font-size:10px; line-height:1.8; color:var(--muted); }
@media(min-width:1600px) {
  .hero { padding-top:54px; padding-bottom:54px; }
}
@media(max-width:1150px) {
  .page-width { width:calc(100% - 64px); }
  .brand-caption { display:none; }
  .hero { padding:40px; gap:16px; }
  .hero h1 { font-size:47px; }
  .hero-description { font-size:15px; }
  .direction { padding:15px; gap:10px; }
  .direction-arrow { display:none; }
  .direction strong { font-size:14px; }
  .direction small { font-size:10px; }
  .course-card { padding:21px; }
  .course-card h3 { font-size:22px; }
  .course-illustration { width:80px; height:88px; top:18px; right:12px; }
  .course-card p { font-size:14px; }
  .course-footer { font-size:10px; }
  .filter-button { padding-inline:11px; font-size:12px; }
  .search-form { min-width:205px; }
  .project-item>a { padding:22px 18px 30px; gap:12px; grid-template-columns:40px minmax(0,1fr); }
  .project-glyph { width:40px; height:45px; }
  .project-glyph svg { width:35px; height:39px; }
  .project-content h3 { font-size:16px; }
  .about-section { padding:30px; gap:32px; }
  .about-section h2 { font-size:23px; }
}
@media(max-width:1000px) {
  .learning-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course-card { padding:24px; }
  .course-card h3 { font-size:25px; }
  .course-illustration { width:110px; height:121px; right:26px; top:20px; }
  .course-card p { margin-top:17px; }
  .course-footer { margin-top:20px; font-size:12px; }
  .course-card p br { display:none; }
  .project-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .project-item>a { min-height:175px; padding:24px 22px 30px; grid-template-columns:45px minmax(0,1fr); gap:16px; }
  .project-glyph { width:45px; height:48px; }
  .project-content h3 { font-size:18px; }
  .directory-toolbar { flex-wrap:wrap; }
  .search-form { min-width:220px; }
}
@media(max-width:850px) {
  .page-width { width:calc(100% - 48px); }
  .header-inner { min-height:78px; gap:20px; }
  .brand img { width:132px; }
  .primary-nav { gap:3px; font-size:13px; }
  .primary-nav>a { padding-inline:12px; }
  .primary-nav .nav-explore { padding-inline:13px; margin-left:5px; gap:10px; }
  .hero { padding:34px; grid-template-columns:1.2fr 1fr; gap:12px; }
  .hero h1 { font-size:40px; letter-spacing:-1px; }
  .hero-kicker { font-size:11px; gap:6px; margin-bottom:16px; }
  .hero-description { font-size:15px; line-height:1.75; }
  .hero-description br { display:none; }
  .hero-actions { gap:10px; margin-top:22px; }
  .button { font-size:13px; gap:12px; padding:11px 14px; min-height:46px; }
  .button>span { font-size:18px; }
  .hero-orbit { transform:scale(.78); }
  .illustration-caption { font-size:9px; gap:5px; }
  .explore-directions { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:16px; }
  .direction { min-height:78px; padding:14px 18px; gap:14px; }
  .direction strong { font-size:15px; }
  .direction small { font-size:11px; }
  .direction-arrow { display:block; }
  .learning-section { margin-top:38px; }
  .section-heading h2 { font-size:26px; }
  .course-illustration { width:96px; height:106px; right:18px; }
  .course-card p br { display:block; }
  .directory-section { margin-top:42px; }
  .directory-toolbar { display:block; }
  .search-form { max-width:none; margin-top:10px; height:46px; }
  .search-form input { font-size:16px; }
  .search-clear { top:0; }
  .search-icon { top:15px; }
  .category-filters { gap:6px; }
  .filter-button { flex:1; font-size:12px; padding-inline:9px; }
  .project-list { gap:14px; }
  .project-item>a { padding:22px 20px 30px; gap:13px; }
  .project-content h3 { font-size:17px; }
  .about-section { grid-template-columns:1fr; gap:18px; padding:28px; margin-top:38px; }
  .about-section h2 { font-size:25px; }
  .about-copy .section-more { margin-top:10px; }
  .footer-brand { gap:16px; }
  .footer-brand>span { font-size:11px; }
}
@media(max-width:680px) {
  .page-width { width:calc(100% - 40px); }
  .header-inner { min-height:74px; flex-wrap:wrap; gap:0; }
  .brand img { width:130px; }
  .primary-nav { flex-basis:100%; width:100%; display:grid; grid-template-columns:1fr 1fr; gap:6px 10px; padding:8px 0 14px; border-top:1px solid var(--line); font-size:14px; }
  .primary-nav>a { justify-content:flex-start; padding:10px 12px; }
  .primary-nav .nav-explore { margin:0; border:0; padding:10px 12px; background:#edf5ff; justify-content:space-between; }
  .js .primary-nav[data-open="false"] { display:none; }
  .js .menu-toggle { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-width:76px; min-height:44px; padding:10px 0 10px 10px; border:0; background:transparent; font-size:12px; }
  .menu-lines { position:relative; width:18px; height:12px; border-top:1.5px solid var(--heading); border-bottom:1.5px solid var(--heading); transition:transform .2s; }
  .menu-lines:after { content:""; position:absolute; top:4px; left:0; width:18px; border-top:1.5px solid var(--heading); }
  .menu-toggle[aria-expanded="true"] .menu-lines { border:0; transform:rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-lines:before { content:""; position:absolute; top:5px; left:0; width:18px; border-top:1.5px solid var(--heading); }
  .menu-toggle[aria-expanded="true"] .menu-lines:after { top:5px; transform:rotate(90deg); }
  .hero { display:flex; flex-direction:column; align-items:stretch; gap:8px; margin-top:20px; padding:28px 28px 20px; border-radius:20px; }
  .hero h1 { font-size:40px; line-height:1.32; letter-spacing:-1px; }
  .hero-kicker { font-size:12px; margin-bottom:16px; }
  .hero-description { max-width:390px; margin-top:16px; font-size:15px; line-height:1.7; }
  .hero-description br { display:none; }
  .hero-actions { gap:12px; margin-top:22px; }
  .button { font-size:14px; min-height:46px; padding:11px 17px; gap:14px; }
  .hero-illustration { width:min(100%,340px); margin:4px auto 0; }
  .hero-illustration>img { width:100%; }
  .hero-orbit { display:none; }
  .illustration-caption { margin-top:-2px; font-size:11px; }
  .explore-directions { gap:10px; margin-top:14px; }
  .direction { min-height:82px; gap:10px; padding:13px 14px; border-radius:12px; }
  .direction-icon { width:33px; height:38px; }
  .direction-icon svg { max-width:33px; }
  .direction strong { font-size:14px; }
  .direction small { font-size:10px; line-height:1.6; margin-top:3px; }
  .direction-arrow { display:none; }
  .learning-section { margin-top:34px; }
  .section-heading { flex-wrap:wrap; gap:6px 18px; align-items:flex-start; margin-bottom:20px; }
  .section-kicker { font-size:9px; letter-spacing:1px; margin-bottom:7px; }
  .section-heading h2 { font-size:26px; }
  .section-description { font-size:14px; line-height:1.75; margin-top:7px; }
  .section-more { min-height:44px; font-size:13px; gap:10px; }
  .learning-grid { gap:12px; }
  .course-card { padding:20px; border-radius:15px; }
  .course-label { font-size:10px; }
  .course-illustration { width:72px; height:80px; top:13px; right:10px; }
  .course-card h3 { font-size:22px; line-height:1.4; margin-top:38px; }
  .course-card p { font-size:14px; line-height:1.6; margin-top:10px; }
  .course-card p br { display:none; }
  .course-footer { padding-top:13px; margin-top:15px; font-size:10px; gap:3px; }
  .course-footer strong { font-size:17px; }
  .course-arrow { width:23px; height:23px; font-size:16px; }
  .directory-section { margin-top:36px; }
  .collection-count { padding-bottom:4px; margin-top:8px; font-size:11px; }
  .collection-count strong { font-size:17px; }
  .directory-toolbar { padding:9px; border-radius:12px; }
  .category-filters { gap:6px; }
  .filter-button { flex:0 0 auto; min-height:44px; padding-inline:11px; font-size:12px; border-color:#d8e5f2; gap:6px; }
  .filter-button.is-active { border-color:var(--brand); }
  .filter-button>span { font-size:10px; }
  .search-form { margin-top:10px; min-width:0; height:46px; }
  .search-form input { font-size:16px; }
  .directory-meta { margin-top:15px; margin-bottom:14px; font-size:10px; gap:14px; }
  .directory-meta>span { max-width:150px; }
  .project-list { grid-template-columns:1fr; gap:12px; }
  .project-item>a { min-height:142px; grid-template-columns:45px minmax(0,1fr); gap:16px; padding:21px 21px 27px; border-radius:13px; }
  .project-type { font-size:10px; }
  .project-content h3 { font-size:18px; line-height:1.5; margin-top:4px; }
  .project-content p { font-size:14px; line-height:1.75; margin-top:8px; }
  .project-arrow { right:18px; bottom:12px; font-size:18px; }
  .empty-state { padding:32px 20px; }
  .empty-state h3 { font-size:20px; }
  .empty-state p { font-size:14px; }
  .about-section { padding:24px; margin-top:34px; border-radius:15px; gap:16px; }
  .about-heading { gap:13px; }
  .about-icon,.about-icon svg { width:39px; height:39px; }
  .about-section h2 { font-size:22px; }
  .about-copy p { font-size:14px; line-height:1.8; }
  .site-footer { align-items:flex-start; flex-direction:column; gap:20px; margin-top:26px; padding-top:24px; padding-bottom:28px; }
  .footer-brand { width:100%; justify-content:space-between; gap:16px; }
  .footer-brand>img { width:106px; }
  .footer-brand>span { font-size:11px; }
  .site-footer>p { text-align:left; font-size:10px; }
}
@media(max-width:430px) {
  .hero { padding:26px 23px 17px; }
  .hero h1 { font-size:37px; }
  .hero-kicker { font-size:11px; }
  .hero-illustration { width:270px; max-width:100%; }
  .illustration-caption { font-size:10px; }
  .direction { gap:8px; padding:12px 11px; }
  .direction strong { font-size:13px; }
  .direction small { font-size:9px; }
  .direction-icon { width:30px; }
  .direction-icon svg { max-width:30px; }
  .course-card { padding:17px 16px; }
  .course-card h3 { font-size:21px; }
  .course-card p { font-size:14px; }
  .course-illustration { width:65px; height:72px; right:8px; }
  .course-footer { font-size:9px; }
  .course-footer strong { font-size:17px; }
  .course-arrow { width:22px; height:22px; }
  .section-heading h2 { font-size:25px; }
}
@media(max-width:374px) {
  .page-width { width:calc(100% - 32px); }
  .hero { padding:24px 19px 16px; gap:6px; }
  .hero h1 { font-size:31px; line-height:1.4; letter-spacing:-.8px; }
  .hero-kicker { font-size:10px; margin-bottom:13px; }
  .hero-kicker svg { width:20px; height:20px; }
  .hero-description { font-size:14px; line-height:1.75; margin-top:14px; }
  .hero-actions { gap:9px; margin-top:18px; }
  .button { font-size:13px; padding-inline:13px; gap:9px; min-height:44px; }
  .button>span { font-size:17px; }
  .hero-illustration { width:238px; }
  .illustration-caption { font-size:9px; gap:5px; }
  .explore-directions { gap:9px; }
  .direction { padding:11px 9px; gap:7px; min-height:76px; }
  .direction-icon { width:25px; }
  .direction-icon svg { max-width:25px; }
  .direction strong { font-size:12px; }
  .direction small { font-size:8px; }
  .learning-section { margin-top:30px; }
  .section-heading h2 { font-size:22px; }
  .section-description { font-size:14px; }
  .course-card { padding:16px 13px; }
  .course-label { font-size:9px; }
  .course-card h3 { margin-top:37px; font-size:20px; }
  .course-illustration { width:59px; height:65px; top:13px; right:7px; }
  .course-card p { font-size:14px; }
  .course-footer { font-size:9px; margin-top:13px; padding-top:12px; gap:2px; }
  .course-footer strong { font-size:16px; }
  .course-arrow { width:20px; height:20px; font-size:15px; }
  .filter-button { font-size:11px; padding-inline:9px; gap:5px; }
  .directory-meta>span { max-width:125px; }
  .project-item>a { grid-template-columns:38px minmax(0,1fr); gap:12px; padding:19px 16px 28px; }
  .project-glyph { width:38px; height:43px; }
  .project-glyph svg { width:32px; height:36px; }
  .project-content h3 { font-size:17px; }
  .project-type { font-size:9px; }
  .about-section { padding:21px; }
  .about-heading { gap:10px; }
  .about-section h2 { font-size:20px; }
  .about-icon,.about-icon svg { width:32px; height:32px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { transition:none!important; animation:none!important; }
}

:root {
  --page:#f8f9f6;
  --surface:#fff;
  --heading:#19334f;
  --text:#465e73;
  --muted:#64788b;
  --brand:#1766c2;
  --brand-hover:#0d529f;
  --hero:#f5f9ff;
  --line:#dfe7ec;
}
html { scroll-padding-top:22px; }
body { background:linear-gradient(180deg,#fff 0,#f8f9f6 500px); }
.page-width { width:min(1280px,calc(100% - 72px)); }
.site-header { position:relative; z-index:10; box-shadow:0 1px 18px #1d3d5a08; }
.header-inner { min-height:78px; }
.brand { gap:19px; }
.brand img { width:146px; }
.brand-caption { color:#78899a; font-size:11px; padding-left:19px; }
.primary-nav { gap:5px; }
.primary-nav>a { font-size:13px; font-weight:650; }
.primary-nav .nav-learning { background:transparent; color:var(--heading); }
.primary-nav .nav-learning:hover { background:#eef5ff; color:var(--brand); }
.primary-nav .nav-explore { background:#e9f2ff; border-color:transparent; margin-left:7px; padding-inline:18px; gap:12px; }
.hero {
  grid-template-columns:minmax(0,1fr) minmax(0,.99fr);
  gap:clamp(24px,4vw,62px);
  min-height:510px;
  margin-top:22px;
  padding:48px clamp(32px,4.8vw,68px);
  border:1px solid #dbe8f2;
  border-radius:30px;
  background:
    radial-gradient(circle at 23% 12%,#fff 0,#ffffff00 37%),
    radial-gradient(circle at 90% 90%,#d9ebff88 0,#d9ebff00 38%),
    linear-gradient(117deg,#f8fbff 0%,#eff6ff 100%);
  box-shadow:0 18px 44px #2443640b;
}
.hero:before {
  content:""; position:absolute; inset:0;
  background-image:linear-gradient(#bdcfe544 1px,transparent 1px),linear-gradient(90deg,#bdcfe544 1px,transparent 1px);
  background-size:32px 32px; mask-image:linear-gradient(90deg,#0005,transparent 72%);
  pointer-events:none;
}
.hero:after {
  content:""; position:absolute; width:250px; height:250px; right:-95px; top:-120px;
  border:48px solid #fff9; border-radius:50%; pointer-events:none;
}
.hero-kicker { margin-bottom:24px; color:#39729c; font-size:12px; font-weight:750; letter-spacing:.7px; }
.hero-kicker svg { width:27px; height:27px; }
.hero h1 { font-size:clamp(50px,5vw,70px); font-weight:780; line-height:1.17; letter-spacing:-3px; }
.hero-highlight svg { height:15px; bottom:-5px; }
.hero-description { max-width:480px; margin-top:27px; font-size:16px; line-height:1.85; }
.hero-actions { margin-top:31px; gap:12px; }
.button { min-height:52px; border-radius:12px; padding:12px 21px; font-weight:700; }
.button-primary { box-shadow:0 9px 20px #1766c229; }
.button-secondary { background:#fff9; }
.hero-footnote { display:flex; align-items:center; gap:9px; margin-top:35px; color:#68849c; font-size:12px; }
.footnote-dot { width:6px; height:6px; background:#f5c24b; border-radius:50%; box-shadow:0 0 0 4px #f5c24b35; }
.hero-practice { position:relative; z-index:1; min-width:0; padding:22px; border:1px solid #d5e4ee; border-radius:24px; background:#fffc; box-shadow:0 20px 35px #25436315; backdrop-filter:blur(6px); }
.practice-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:0 4px 16px; }
.practice-eyebrow { display:block; color:#557894; font-size:11px; font-weight:700; letter-spacing:1px; }
.practice-heading h2 { font-size:21px; line-height:1.35; letter-spacing:-.4px; margin-top:3px; }
.practice-spark { color:#e6af36; font-size:26px; }
.practice-card { position:relative; display:flex; align-items:center; justify-content:space-between; min-height:150px; padding:20px 23px; border:1px solid #c6e6d9; border-radius:17px; overflow:hidden; background:linear-gradient(112deg,#eaf8f1,#ddf3ea); transition:transform .2s,box-shadow .2s,border-color .2s; }
.practice-card:hover { transform:translateY(-3px); box-shadow:0 10px 20px #1d654a18; border-color:#7ebda4; }
.practice-card:focus-visible { outline-offset:2px; }
.practice-sword { margin-top:12px; border-color:#f0d6c8; background:linear-gradient(112deg,#fff5ee,#ffece0); }
.practice-sword:hover { border-color:#e2af91; box-shadow:0 10px 20px #a3532f17; }
.practice-card-copy { position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; }
.practice-index { color:#387d67; font-size:11px; line-height:1.4; font-weight:700; letter-spacing:.5px; }
.practice-sword .practice-index { color:#ab694d; }
.practice-card-copy strong { margin-top:4px; font-size:25px; letter-spacing:-.7px; line-height:1.3; }
.practice-card-description { margin-top:4px; color:#4f6877; font-size:12px; }
.practice-card-action { margin-top:14px; font-size:12px; font-weight:750; color:#21745b; }
.practice-sword .practice-card-action { color:#a35839; }
.practice-card-action span { padding-left:8px; font-size:16px; }
.practice-card>svg { width:clamp(100px,11vw,155px); height:auto; margin-right:-6px; flex-shrink:0; filter:drop-shadow(0 8px 7px #19334f12); }
.learning-section { margin-top:59px; }
.section-heading { margin-bottom:22px; }
.section-kicker { color:#3171b4; font-size:11px; font-weight:780; letter-spacing:1.8px; margin-bottom:7px; }
.section-heading h2 { font-size:33px; line-height:1.3; letter-spacing:-1px; }
.section-description { color:#64788a; margin-top:7px; }
.section-more { font-weight:700; }
.learning-grid { gap:15px; }
.course-card { min-height:254px; padding:23px; border-radius:19px; box-shadow:0 3px 0 #19334f06; }
.course-card:hover { transform:translateY(-5px); box-shadow:0 16px 28px #19334f13; }
.course-primary { background:linear-gradient(145deg,#e8f3ff,#f4f9ff); }
.course-junior { background:linear-gradient(145deg,#e6f5ec,#f5fbf5); }
.course-writing { background:linear-gradient(145deg,#fff0e9,#fff9f4); }
.course-math { background:linear-gradient(145deg,#fff4d8,#fffbee); }
.course-label { padding:3px 9px; border-radius:100px; background:#ffffffad; font-size:11px; font-weight:700; letter-spacing:.2px; }
.course-illustration { width:96px; height:105px; top:20px; right:12px; filter:drop-shadow(0 9px 5px #19334f15); }
.course-card h3 { margin-top:37px; font-size:25px; letter-spacing:-.7px; }
.course-card p { margin-top:10px; max-width:175px; font-size:13px; line-height:1.65; }
.course-footer { margin-top:17px; padding-top:11px; font-size:12px; font-weight:600; }
.course-footer strong { font-size:17px; }
.course-arrow { width:30px; height:30px; color:var(--brand); background:#fff; font-size:17px; }
.explore-directions { margin-top:34px; gap:11px; }
.direction { min-height:75px; border-radius:13px; box-shadow:0 2px 0 #19334f04; }
.direction-icon { width:40px; height:40px; }
.direction strong { font-weight:700; }
.direction small { margin-top:0; }
.directory-section { margin-top:73px; }
.directory-toolbar { padding:9px; border-color:#d8e3ed; box-shadow:0 5px 20px #18365306; }
.filter-button.is-active { box-shadow:0 3px 8px #1766c22d; }
.project-list { gap:13px; }
.project-item>a { min-height:168px; padding:22px 21px 30px; border-radius:16px; box-shadow:0 2px 0 #19334f04; }
.project-item>a:hover { box-shadow:0 14px 28px #19334f12; }
.project-content h3 { font-size:17px; }
.project-content p { font-size:13px; line-height:1.6; }
.about-section { background:#edf5fa; margin-top:58px; border-radius:21px; }
.site-footer { margin-top:35px; }
@media(max-width:1150px) {
  .page-width { width:calc(100% - 56px); }
  .hero { padding:38px; gap:25px; }
  .hero h1 { font-size:clamp(47px,5vw,60px); }
  .practice-card { padding:17px; }
  .practice-card>svg { width:112px; }
}
@media(max-width:950px) {
  .hero { grid-template-columns:1fr; min-height:0; }
  .hero-copy { max-width:700px; }
  .hero-practice { display:grid; grid-template-columns:1fr 1fr; gap:12px; padding:17px; }
  .practice-heading { grid-column:1/-1; margin-bottom:0; }
  .practice-card { min-height:175px; }
  .practice-sword { margin-top:0; }
  .practice-card>svg { position:absolute; right:5px; bottom:5px; width:100px; opacity:.9; }
  .practice-card-copy strong { font-size:23px; }
  .practice-card-description { max-width:135px; }
  .hero-footnote { margin-top:24px; }
  .learning-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .course-illustration { right:24px; }
}
@media(max-width:680px) {
  .page-width { width:calc(100% - 32px); }
  .header-inner { min-height:70px; }
  .brand img { width:132px; }
  .primary-nav { padding-bottom:12px; }
  .hero { margin-top:14px; padding:30px 21px 21px; border-radius:21px; gap:26px; }
  .hero h1 { font-size:clamp(41px,10vw,54px); line-height:1.19; letter-spacing:-2px; }
  .hero-kicker { margin-bottom:18px; font-size:11px; }
  .hero-description { margin-top:21px; font-size:14px; line-height:1.75; }
  .hero-actions { margin-top:22px; }
  .button { font-size:13px; min-height:46px; padding:11px 15px; }
  .hero-footnote { margin-top:20px; font-size:11px; }
  .hero-practice { display:block; padding:13px; border-radius:18px; }
  .practice-heading { margin:2px 5px 11px; }
  .practice-heading h2 { font-size:18px; }
  .practice-card { min-height:124px; padding:16px; border-radius:13px; }
  .practice-sword { margin-top:9px; }
  .practice-card>svg { width:105px; right:7px; bottom:0; }
  .practice-card-copy strong { font-size:21px; }
  .practice-card-description { max-width:none; font-size:11px; }
  .practice-card-action { margin-top:8px; font-size:11px; }
  .learning-section { margin-top:42px; }
  .section-heading h2 { font-size:27px; }
  .section-kicker { font-size:10px; }
  .learning-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .course-card { min-height:224px; padding:17px; }
  .course-card h3 { margin-top:47px; font-size:21px; }
  .course-card p { font-size:12px; line-height:1.55; margin-top:8px; }
  .course-illustration { width:72px; height:80px; right:5px; top:24px; }
  .course-footer { font-size:10px; }
  .course-footer strong { font-size:15px; }
  .explore-directions { margin-top:21px; }
  .direction { min-height:76px; }
  .directory-section { margin-top:47px; }
  .project-item>a { min-height:136px; }
  .about-section { margin-top:38px; }
}
@media(max-width:390px) {
  .hero { padding:27px 17px 17px; }
  .hero h1 { font-size:39px; }
  .hero-actions { gap:8px; }
  .button { padding-inline:11px; font-size:12px; gap:8px; }
  .practice-card>svg { width:90px; opacity:.77; }
  .practice-card-description { max-width:160px; }
  .learning-grid { grid-template-columns:1fr; }
  .course-card { min-height:185px; }
  .course-card h3 { margin-top:26px; }
  .course-illustration { width:94px; height:100px; right:18px; top:18px; }
  .course-card p { font-size:13px; }
}
