/* source: styles.css */
:root{--ink:#122846;--blue:#1954d1;--teal:#13a78f;--sky:#eaf2ff;--cream:#fff8e9;--line:#dce5ec;--muted:#65758a;--bg:#f7f9fc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:"DM Sans","Noto Sans SC",sans-serif;background:#fff}.container{width:min(1180px,calc(100% - 40px));margin:auto}button,input,select{font:inherit}button,a{transition:.22s ease}button{cursor:pointer}.nav-wrap{height:76px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(18,40,70,.08);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.nav{height:100%;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink);font-weight:800;font-size:21px;letter-spacing:-1px}.brand em{font-style:normal;font-size:9px;letter-spacing:2px;margin:10px 0 0 8px;color:#8794a6}.brand-mark{position:relative;width:34px;height:34px;border-radius:9px;background:var(--blue);margin-right:10px;display:block;overflow:hidden}.brand-mark i{position:absolute;width:16px;height:20px;border:2px solid white;transform:skewY(-24deg);top:6px}.brand-mark i:first-child{left:6px}.brand-mark i:last-child{right:6px;opacity:.65}.nav-links{display:flex;gap:38px}.nav-links a{color:#506179;text-decoration:none;font-size:14px}.nav-links a:hover,.nav-links a.active{color:var(--blue);font-weight:600}.nav-actions{display:flex;align-items:center;gap:12px}.text-btn{border:0;background:none;color:#34455d}.text-btn b{display:inline-grid;place-items:center;background:#e7efff;color:var(--blue);font-size:11px;width:19px;height:19px;border-radius:20px}.primary{border:0;background:var(--blue);color:#fff;font-weight:700;border-radius:8px;padding:16px 24px;box-shadow:0 10px 24px rgba(25,84,209,.22)}.primary:hover{background:#0f45bd;transform:translateY(-2px)}.primary.small{padding:11px 20px}.menu-btn{display:none;background:none;border:0;font-size:24px}.hero{position:relative;overflow:hidden;background:linear-gradient(116deg,#f3f8ff 0%,#e9f4f5 55%,#f7fbf3 100%);padding:85px 0 0}.hero:before{content:"";position:absolute;width:500px;height:500px;border-radius:50%;background:rgba(37,111,233,.06);left:-180px;top:-260px}.hero-inner{min-height:510px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:90px}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:700;color:var(--blue);display:flex;align-items:center;gap:10px}.eyebrow span{width:28px;height:2px;background:currentColor}.hero-copy h1{font-size:58px;line-height:1.18;letter-spacing:-3px;margin:20px 0 22px}.hero-copy h1 strong{color:var(--blue)}.hero-copy>p{font-size:17px;line-height:1.9;color:#54667e;max-width:550px}.hero-actions{display:flex;gap:14px;margin:32px 0}.ghost{padding:15px 22px;border:1px solid #b7c5d8;border-radius:8px;color:var(--ink);text-decoration:none;font-weight:600;background:rgba(255,255,255,.55)}.ghost:hover{background:#fff}.hero-actions span{margin-left:18px}.trust-row{display:flex;align-items:center;gap:14px;margin-top:32px}.avatar-stack{display:flex}.avatar-stack span{width:33px;height:33px;border:3px solid #f1f7fa;border-radius:50%;display:grid;place-items:center;margin-left:-7px;background:#6d86a8;color:white;font-size:11px}.avatar-stack span:nth-child(2){background:#d49b74}.avatar-stack span:nth-child(3){background:#6ab5a2}.avatar-stack span:last-child{background:#fff;color:var(--blue)}.trust-row p{font-size:11px;line-height:1.5;color:#718198}.trust-row b{font-size:14px;color:var(--ink)}.hero-panel{position:relative;background:white;border-radius:24px;padding:26px 30px 30px;box-shadow:0 30px 70px rgba(44,80,112,.16);transform:rotate(1.5deg);border:1px solid rgba(255,255,255,.8)}.panel-top{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;border-bottom:1px solid #edf0f5;padding-bottom:18px}.panel-top i{font-style:normal;color:var(--teal);background:#e7f8f2;padding:5px 8px;border-radius:20px;margin-left:auto;font-size:10px}.mini-logo{display:grid;place-items:center;background:var(--blue);color:white;border-radius:6px;width:26px;height:26px}.score-ring{width:122px;height:122px;border-radius:50%;margin:24px auto 17px;background:conic-gradient(var(--blue) 0 86%,#e8eef7 86%);display:grid;place-items:center}.score-ring:before{content:"";width:96px;height:96px;background:white;border-radius:50%;position:absolute}.score-ring span{position:relative;text-align:center}.score-ring b{display:block;font-size:31px}.score-ring small{color:#8190a2}.match-school{display:flex;gap:15px;background:#f6f9ff;padding:15px;border-radius:12px}.school-icon{width:47px;height:47px;display:grid;place-items:center;border-radius:9px;color:#fff;font-weight:700;flex:none}.blue{background:linear-gradient(145deg,#1542a1,#3377ee)}.match-school small,.match-school p{color:#7b899a;font-size:10px}.match-school h3{margin:3px 0;font-size:16px}.match-school p{margin:0}.fit-bars{margin-top:20px}.fit-bars label{display:grid;grid-template-columns:74px 1fr 34px;align-items:center;font-size:11px;color:#6e7d90;gap:8px;margin:12px 0}.fit-bars i{height:6px;background:#e8edf3;border-radius:9px;position:relative}.fit-bars i:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);border-radius:9px;background:linear-gradient(90deg,var(--blue),#45b4da)}.fit-bars b{color:var(--ink)}.floating-tag{position:absolute;padding:10px 14px;background:white;border-radius:9px;box-shadow:0 13px 30px rgba(33,65,97,.15);font-size:11px;font-weight:700}.tag-a{left:-54px;top:125px;color:var(--teal)}.tag-b{right:-34px;bottom:90px;color:var(--blue)}.hero-orbit{position:absolute;border:1px solid rgba(25,84,209,.12);border-radius:50%}.orbit-one{width:560px;height:560px;right:-100px;top:20px}.orbit-two{width:390px;height:390px;right:-15px;top:105px}.hero-stats{background:#fff;display:grid;grid-template-columns:repeat(4,1fr);box-shadow:0 16px 44px rgba(35,66,99,.09);transform:translateY(36px);border-radius:12px;position:relative;z-index:2}.hero-stats div{padding:24px 36px;border-right:1px solid #e7edf3;display:flex;align-items:center;gap:16px}.hero-stats div:last-child{border:0}.hero-stats b{font-size:26px}.hero-stats sup{color:var(--teal)}.hero-stats span{font-size:12px;color:#76869a}.school-section{padding:130px 0 110px}.section-heading{display:flex;justify-content:space-between;align-items:end}.section-heading h2{font-size:36px;letter-spacing:-1.5px;margin:13px 0 8px}.section-heading p{margin:0;color:var(--muted)}.section-heading>a{color:var(--blue);text-decoration:none;font-weight:700;font-size:13px}.type-tabs{display:flex;margin-top:42px;border-bottom:1px solid var(--line);gap:35px}.type-tabs button{border:0;background:none;padding:15px 3px;color:#66768a;position:relative}.type-tabs button.active{color:var(--blue);font-weight:700}.type-tabs button.active:after{content:"";height:3px;background:var(--blue);position:absolute;left:0;right:0;bottom:-1px}.type-tabs b{font-size:10px;background:#edf2f8;padding:2px 5px;border-radius:7px}.filter-bar{margin:22px 0;display:grid;grid-template-columns:2fr repeat(3,1fr) auto;gap:10px}.filter-bar select,.search-box{border:1px solid var(--line);height:48px;border-radius:7px;background:#fff;color:#526377}.filter-bar select{padding:0 12px}.search-box{display:flex;align-items:center;padding:0 14px;gap:8px}.search-box input{border:0;outline:0;width:100%;color:var(--ink)}.reset-btn{border:0;background:none;color:#64768c}.result-meta{display:flex;justify-content:space-between;align-items:center;margin:26px 0 17px}.result-meta p{margin:0}.result-meta span{color:#8a97a7;font-size:12px}.school-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.school-card{border:1px solid var(--line);border-radius:13px;padding:22px;background:#fff;position:relative;overflow:hidden;transition:.25s}.school-card:hover{transform:translateY(-5px);box-shadow:0 18px 44px rgba(28,58,95,.1);border-color:#c4d5f7}.card-top{display:flex;gap:13px;align-items:center;padding-bottom:16px;border-bottom:1px solid #eef2f5}.school-logo{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--logo);color:#fff;font-weight:800}.card-top h3{font-size:16px;margin:0 0 5px}.card-top p{margin:0;color:#7a899c;font-size:11px}.save{margin-left:auto;align-self:start;border:0;background:none;font-size:20px;color:#8090a2}.save.saved{color:#ed6969}.badges{display:flex;gap:6px;margin:15px 0}.badges span{font-size:10px;color:#3d689f;background:#edf5ff;padding:4px 7px;border-radius:3px}.badges span:last-child{color:#377b67;background:#edf8f3}.program-name{font-weight:600;font-size:14px;min-height:42px}.card-data{display:grid;grid-template-columns:repeat(3,1fr);margin:14px 0 18px}.card-data div{border-right:1px solid #e8edf1}.card-data div:last-child{border:0;padding-left:13px}.card-data small{display:block;color:#8290a0;font-size:10px;margin-bottom:4px}.card-data b{font-size:12px}.card-bottom{display:flex;justify-content:space-between;align-items:center}.card-bottom span{font-size:12px;color:#67788d}.card-bottom span b{font-size:17px;color:var(--ink)}.card-bottom button{border:1px solid #cbd7e4;background:#fff;border-radius:6px;padding:8px 12px;color:var(--ink)}.card-bottom button:hover{color:white;background:var(--blue);border-color:var(--blue)}.load-more{display:block;margin:35px auto 0;border:1px solid #c7d3df;background:#fff;padding:13px 26px;border-radius:7px;color:#40546d}.guide{background:#14305b;color:#fff;position:relative;overflow:hidden}.guide:after{content:"HOZON";position:absolute;font-size:190px;font-weight:800;color:rgba(255,255,255,.025);right:-20px;bottom:-60px}.guide-inner{padding:80px 0;display:grid;grid-template-columns:1fr 1fr;gap:100px}.eyebrow.light{color:#81d7c7}.guide h2{font-size:38px;line-height:1.4;margin:18px 0}.guide-copy>p{line-height:1.9;color:#b8c5d5}.cream-btn{border:0;background:#f0c568;color:#173052;padding:14px 20px;border-radius:7px;font-weight:700;margin-top:18px}.steps article{display:grid;grid-template-columns:55px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid rgba(255,255,255,.15)}.steps article>b{font-size:13px;color:#6f8db2}.steps h3{margin:0 0 7px}.steps p{margin:0;color:#9fb0c4;font-size:13px}.about{padding:100px 0;display:grid;grid-template-columns:1.3fr 1fr;gap:90px;align-items:center}.quote{font-family:serif;font-size:80px;line-height:.5;color:#b6c8de}.about blockquote{margin:20px 0;font-size:30px;font-weight:700}.about>div>p{color:var(--muted);line-height:1.8}.source-card{background:var(--cream);padding:30px;border-radius:10px;display:grid;gap:15px}.source-card span{color:#a37a21;font-size:12px;font-weight:700}.source-card b{font-size:13px;font-weight:500;border-bottom:1px solid #eadfca;padding-bottom:13px}footer{background:#0d1f37;color:#d4dbe4;padding:65px 0 22px}.brand.inverse{color:#fff}.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.5fr;gap:50px}.footer-main h4{color:#fff;font-size:13px}.footer-main a{display:block;color:#aebac8;text-decoration:none;font-size:12px;margin:12px 0}.footer-main p{font-size:12px;line-height:1.8;color:#91a1b4}.copyright{border-top:1px solid rgba(255,255,255,.1);margin-top:45px;padding-top:20px;font-size:10px;color:#6f8196;display:flex;justify-content:space-between}.modal{position:fixed;inset:0;background:rgba(8,25,48,.62);z-index:50;display:none;place-items:center;padding:20px;backdrop-filter:blur(5px)}.modal.open{display:grid}.modal-card{width:min(430px,100%);background:#fff;padding:34px;border-radius:18px;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.25)}.modal-close{position:absolute;right:16px;top:12px;border:0;background:none;font-size:25px;color:#8492a3}.modal-icon{width:45px;height:45px;display:grid;place-items:center;background:#eaf1ff;color:var(--blue);border-radius:12px}.modal-card h2{margin:17px 0 8px}.modal-card>p{color:var(--muted);font-size:13px}.modal form{display:grid;gap:14px;margin-top:22px}.modal label{font-size:12px;font-weight:600}.modal input,.modal select{display:block;width:100%;height:45px;margin-top:6px;border:1px solid var(--line);border-radius:7px;padding:0 12px}.toast{position:fixed;z-index:60;bottom:28px;left:50%;transform:translate(-50%,30px);background:#132e54;color:white;padding:12px 20px;border-radius:8px;opacity:0;pointer-events:none;transition:.3s}.toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:900px){.nav-links{display:none}.hero-inner{grid-template-columns:1fr;padding-bottom:70px}.hero-copy{text-align:center}.eyebrow,.hero-copy>p,.hero-actions,.trust-row{justify-content:center;margin-left:auto;margin-right:auto}.hero-panel{max-width:500px;margin:auto}.hero-stats{grid-template-columns:repeat(2,1fr)}.hero-stats div:nth-child(2){border-right:0}.school-grid{grid-template-columns:repeat(2,1fr)}.filter-bar{grid-template-columns:1fr 1fr}.search-box{grid-column:1/-1}.guide-inner,.about{grid-template-columns:1fr}.footer-main{grid-template-columns:2fr 1fr 1fr}.footer-main>div:last-child{display:none}}@media(max-width:620px){.container{width:min(100% - 28px,1180px)}.nav-wrap{height:66px}.nav-actions{display:none}.menu-btn{display:block}.hero{padding-top:50px}.hero-inner{display:block;min-height:0}.hero-copy h1{font-size:42px;letter-spacing:-2px}.hero-copy>p{font-size:15px}.hero-actions{flex-direction:column}.hero-panel{margin-top:50px;padding:22px}.tag-a{left:-5px}.tag-b{right:-5px}.hero-stats{grid-template-columns:1fr 1fr}.hero-stats div{padding:18px 15px;display:block}.hero-stats b,.hero-stats span{display:block}.school-section{padding-top:100px}.section-heading{display:block}.section-heading>a{display:inline-block;margin-top:15px}.type-tabs{overflow:auto;gap:22px}.type-tabs button{white-space:nowrap}.filter-bar{grid-template-columns:1fr}.search-box{grid-column:auto}.school-grid{grid-template-columns:1fr}.guide-inner{padding:60px 0;gap:40px}.guide h2{font-size:30px}.about{padding:70px 0;gap:40px}.about blockquote{font-size:25px}.footer-main{grid-template-columns:1fr 1fr}.footer-main>div:first-child{grid-column:1/-1}.copyright span{display:none}}
.catalog-boundary{margin:14px 0 24px;padding:12px 16px;border:1px solid #d7e3f3;border-radius:12px;background:#f6f9fd;color:#60728a;font-size:14px;line-height:1.7}

/* source: layout-fixes.css */
/* Layout corrections kept separate from the original minified stylesheet. */
.hero {
  padding-bottom: 56px;
}

/* Prevent one-character school marks from being squeezed into an oval. */
.card-top .school-logo {
  flex: 0 0 48px;
  min-width: 48px;
  aspect-ratio: 1;
}

.hero-stats {
  min-height: 108px;
  margin-top: 44px;
  transform: none;
  overflow: hidden;
  border: 1px solid rgba(18, 40, 70, .07);
  box-shadow: 0 18px 48px rgba(35, 66, 99, .11);
}

.hero-stats div {
  min-width: 0;
  padding: 26px 30px;
  justify-content: center;
}

.hero-stats b {
  flex: 0 0 auto;
  line-height: 1;
  white-space: nowrap;
}

.hero-stats span {
  min-width: 0;
  line-height: 1.5;
  white-space: normal;
}

.school-section {
  padding-top: 92px;
}

.result-meta > div {
  display: flex;
  align-items: center;
  gap: 16px;
}

.result-meta strong {
  color: #31547e;
  font-size: 12px;
}

.project-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  margin-top: 35px;
}

.project-pagination[hidden] {
  display: none;
}

.project-pagination .load-more {
  margin: 0;
}

.show-all-projects {
  border: 0;
  background: transparent;
  padding: 13px 12px;
  color: #1954d1;
  font-weight: 700;
}

.show-all-projects:hover {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.path-explainer {
  padding: 88px 0;
  background: #f4f8fb;
  border-bottom: 1px solid #e2eaf0;
}

.explainer-heading { margin-bottom: 30px; }
.explainer-heading > div { max-width: 850px; }
.explainer-heading p { max-width: 800px; line-height: 1.85; }
.axis-strip {
  display: grid;
  grid-template-columns: auto 1fr 44px auto 1fr;
  align-items: center;
  gap: 14px;
  margin-bottom: 18px;
  padding: 16px 20px;
  border-radius: 12px;
  background: #122846;
  color: #fff;
}
.axis-strip b { color: #91c6ff; font-size: 13px; white-space: nowrap; }
.axis-strip span { color: #d7e3f2; font-size: 12px; line-height: 1.6; }
.axis-strip i { color: #36c3aa; font-size: 24px; font-style: normal; text-align: center; }
.explainer-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
.explainer-grid article {
  position: relative;
  min-height: 182px;
  padding: 26px 28px 24px;
  border: 1px solid #dce6ee;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 30px rgba(26, 55, 83, .05);
}
.explainer-grid article > span { color: #1d61d7; font-size: 11px; font-weight: 800; letter-spacing: 1px; }
.explainer-grid h3 { margin: 10px 0 9px; color: #132c4d; font-size: 17px; line-height: 1.45; }
.explainer-grid p { margin: 0; color: #5c6e82; font-size: 12px; line-height: 1.85; }
.explainer-grid .warning { border-color: #ead7a5; background: #fffaf0; }
.explainer-grid .warning > span { color: #a66c00; }
.official-check {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: 18px;
  padding: 20px 22px;
  border-radius: 12px;
  background: #e7f5f1;
}
.official-check div { display: grid; gap: 5px; }
.official-check b { color: #156c60; font-size: 13px; }
.official-check span { color: #496d68; font-size: 12px; line-height: 1.6; }
.official-check a { color: #0c7464; font-size: 12px; font-weight: 700; white-space: nowrap; }
.explainer-sources { margin: 14px 2px 0; color: #7a8795; font-size: 10px; line-height: 1.7; }
.explainer-sources a { color: #496b96; text-decoration: underline; text-underline-offset: 2px; }

@media (max-width: 900px) {
  .hero { padding-bottom: 44px; }
  .hero-stats { margin-top: 28px; }
  .hero-stats div { min-height: 88px; padding: 20px 24px; }
  .hero-stats div:nth-child(-n+2) { border-bottom: 1px solid #e7edf3; }
  .school-section { padding-top: 76px; }
  .path-explainer { padding: 72px 0; }
  .axis-strip { grid-template-columns: 1fr; }
  .axis-strip i { text-align: left; }
}

@media (max-width: 620px) {
  .hero { padding-bottom: 34px; }
  .hero-stats {
    margin-top: 38px;
    border-radius: 12px;
  }
  .hero-stats div {
    min-height: 92px;
    padding: 18px 16px;
    text-align: center;
  }
  .hero-stats div:nth-child(2) { border-right: 0; }
  .hero-stats div:nth-child(-n+2) { border-bottom: 1px solid #e7edf3; }
  .hero-stats b { margin-bottom: 7px; }
  .school-section { padding-top: 64px; }
  .result-meta { align-items: flex-start; gap: 10px; }
  .result-meta > div { align-items: flex-end; flex-direction: column; gap: 3px; }
  .project-pagination { align-items: stretch; flex-direction: column; }
  .project-pagination button { width: 100%; }
  .path-explainer { padding: 58px 0; }
  .explainer-grid { grid-template-columns: 1fr; }
  .explainer-grid article { min-height: 0; padding: 22px; }
  .official-check { align-items: flex-start; flex-direction: column; }
  .official-check a { white-space: normal; }
}

/* Production-safety and mobile-navigation overrides. */
body {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif;
}
body.modal-open { overflow: hidden; }
button:disabled { cursor: not-allowed; }
/* Decorative hero layers must never block touch/click targets on narrow screens. */
.hero::before,
.hero-orbit { pointer-events: none; }
.legal {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  padding: 0 0 90px;
}
.legal details {
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #f8fafc;
}
.legal summary { cursor: pointer; color: var(--ink); font-weight: 700; }
.legal details div { padding-top: 10px; color: var(--muted); font-size: 12px; line-height: 1.8; }
.legal details p { margin: 8px 0; }
.copyright .icp-link {
  color: #aebac8;
  text-decoration: none;
}
.copyright .icp-link:hover,
.copyright .icp-link:focus-visible {
  color: #fff;
  text-decoration: underline;
}

@media (max-width: 620px) {
  .nav-wrap.menu-open { height: auto; }
  .nav-wrap.menu-open .nav {
    height: auto;
    min-height: 66px;
    flex-wrap: wrap;
    padding: 12px 0;
  }
  .nav-wrap.menu-open .nav-links {
    order: 3;
    display: grid;
    width: 100%;
    gap: 0;
    margin-top: 10px;
    border-top: 1px solid var(--line);
  }
  .nav-wrap.menu-open .nav-links a { padding: 13px 4px; border-bottom: 1px solid #edf1f5; }
  .nav-wrap.menu-open .nav-actions {
    order: 4;
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
    gap: 10px;
    padding-top: 12px;
  }
  .nav-wrap.menu-open .nav-actions button { min-height: 44px; }
  .legal { grid-template-columns: 1fr; padding-bottom: 65px; }
}

/* source: school-level.css */
.school-level-legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-top: 20px;
  padding: 13px 15px;
  border: 1px solid #d8e4f4;
  border-radius: 9px;
  background: #f7faff;
}
.school-level-legend div { display: grid; gap: 3px; }
.school-level-legend b { color: #254d86; font-size: 11px; }
.school-level-legend span { color: #65758a; font-size: 10px; line-height: 1.6; }
.school-level-legend a { flex: none; color: #1954d1; font-size: 10px; font-weight: 700; text-decoration: none; }
.badges { flex-wrap: wrap; margin-bottom: 10px; }
.badges .level-985 { color: #9b1c2c; background: #fff0f1; }
.badges .level-211 { color: #855b00; background: #fff6dc; }
.badges .level-syl { color: #15705f; background: #e9f8f4; }
.badges .level-other { color: #65758a; background: #f0f3f6; }
.school-introduction {
  min-height: 38px;
  margin: 0 0 10px;
  color: #65758a;
  font-size: 10px;
  line-height: 1.65;
}
@media (max-width: 620px) {
  .school-level-legend { align-items: flex-start; flex-direction: column; }
}

/* source: project-detail.css */
.project-detail-card {
  width: min(820px, 100%);
  padding: 34px 38px 38px;
}

.detail-heading {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-right: 34px;
}

.detail-heading .school-logo {
  width: 56px;
  height: 56px;
  flex: 0 0 auto;
}

.detail-kicker {
  color: var(--blue);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 1.5px;
}

.detail-heading h2 {
  margin: 4px 0 3px;
  font-size: 24px;
}

.detail-heading p {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
}

.detail-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 19px 0 14px;
}

.detail-badges > span {
  padding: 5px 9px;
  border-radius: 5px;
  font-size: 10px;
  font-weight: 700;
}

.detail-badges .path-badge { color: #315d9f; background: #edf4ff; }
.detail-badges .level-985 { color: #9b1c2c; background: #fff0f1; }
.detail-badges .level-211 { color: #855b00; background: #fff6dc; }
.detail-badges .level-syl { color: #15705f; background: #e9f8f4; }
.detail-badges .level-other { color: #65758a; background: #f0f3f6; }
.detail-badges .verification-badge { color: #6c7684; background: #f2f4f7; }
.detail-badges .verification-badge.is-verified { color: #14715f; background: #e6f7f2; }

.badges .resource-status,
.detail-badges .resource-status { font-weight: 750; }
.badges .resource-status.is-good,
.detail-badges .resource-status.is-good { color: #14715f; background: #e6f7f2; }
.badges .resource-status.is-corrected,
.detail-badges .resource-status.is-corrected { color: #2457a8; background: #eaf2ff; }
.badges .resource-status.is-pending,
.detail-badges .resource-status.is-pending { color: #8b6418; background: #fff5d9; }
.badges .resource-status.is-closed,
.detail-badges .resource-status.is-closed { color: #616b78; background: #edf0f3; }
.badges .resource-status.is-blocked,
.detail-badges .resource-status.is-blocked { color: #9a3341; background: #fff0f2; }
.badges .quality-tier { color: #1f5d55; background: #e8f7f2; font-weight: 800; }
.badges .quality-tier.quality-A { color: #8a5b08; background: #fff3d3; }

.public-boundary {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border: 1px solid #cddcf4;
  border-radius: 9px;
  background: #f5f8ff;
}

.public-boundary b { color: #214d9b; font-size: 11px; white-space: nowrap; }
.public-boundary span { color: #62738b; font-size: 10px; line-height: 1.6; }

.detail-section { padding: 22px 0 18px; }
.detail-section small { color: #8a97a7; font-size: 10px; }
.detail-section h3 { margin: 7px 0 8px; font-size: 18px; line-height: 1.55; }
.detail-section p { margin: 0; color: #5e6f83; font-size: 11px; line-height: 1.75; }

.detail-facts {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}

.detail-facts > div {
  min-width: 0;
  min-height: 80px;
  padding: 15px 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.detail-facts > div:nth-child(3n) { border-right: 0; }
.detail-facts > div:nth-last-child(-n+3) { border-bottom: 0; }
.detail-facts small { display: block; margin-bottom: 7px; color: #8a97a7; font-size: 9px; }
.detail-facts b { display: block; color: #243a58; font-size: 11px; line-height: 1.55; overflow-wrap: anywhere; }

.detail-copy-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-top: 16px;
}

.detail-copy-grid section {
  padding: 17px 18px;
  border-radius: 10px;
  background: #f7f9fc;
}

.detail-copy-grid h3,
.detail-sources h3,
.detail-paid-boundary h3 { margin: 0 0 7px; font-size: 13px; }
.detail-copy-grid p,
.detail-sources p,
.detail-paid-boundary p { margin: 0; color: #627287; font-size: 10px; line-height: 1.75; }

.resource-assessment {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  margin-top: 14px;
  padding: 14px 15px;
  border: 1px solid #e4e9ef;
  border-radius: 9px;
  background: #fbfcfe;
}
.resource-assessment b { color: #233b5b; font-size: 10px; }
.resource-assessment p { margin: 0; color: #66768a; font-size: 10px; line-height: 1.7; }
.resource-assessment small { display: block; margin-top: 3px; color: #909baa; font-size: 9px; }

.public-verification-fields {
  display: grid;
  grid-template-columns: .8fr 1.4fr;
  gap: 20px;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid #dce5ec;
  border-radius: 10px;
}
.public-verification-fields h3 { margin: 0 0 7px; font-size: 13px; }
.public-verification-fields > div:first-child p { margin: 0; color: #6b798b; font-size: 10px; line-height: 1.7; }
.public-verification-fields .verification-field-list { display: grid; gap: 8px; }
.public-verification-fields article { padding: 10px 12px; border-left: 3px solid #d3a33d; background: #fffaf0; }
.public-verification-fields article.is-field-verified { border-left-color: #24a285; background: #f2fbf8; }
.public-verification-fields small { color: #6c7a8a; font-size: 9px; font-weight: 800; }
.public-verification-fields article p { margin: 4px 0 0; color: #4f6075; font-size: 10px; line-height: 1.65; }
.verification-caution { grid-column: 1 / -1; padding: 12px 14px; border-left: 3px solid #d4a431; background: #fff9ea; }
.verification-caution b { color: #916512; font-size: 10px; }
.verification-caution p { margin: 4px 0 0; color: #796b4d; font-size: 10px; line-height: 1.7; }

.detail-warning {
  display: grid;
  gap: 4px;
  margin-top: 14px;
  padding: 13px 15px;
  border-left: 3px solid #d4a431;
  background: #fff9ea;
}

.detail-warning b { color: #916512; font-size: 10px; }
.detail-warning span { color: #796b4d; font-size: 9px; line-height: 1.7; }

.detail-sources {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 22px;
  align-items: start;
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.source-links { display: grid; gap: 7px; }
.source-links a {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 11px;
  border: 1px solid #dbe4ec;
  border-radius: 7px;
  color: #2457a8;
  font-size: 10px;
  font-weight: 700;
  text-decoration: none;
}
.source-links a:hover { border-color: #9eb9e8; background: #f6f9ff; }

.detail-paid-boundary {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 20px;
  align-items: center;
  margin-top: 20px;
  padding: 18px;
  border: 1px solid #efd28e;
  border-radius: 11px;
  background: linear-gradient(120deg, #fffaf0, #fff4d9);
}

.detail-paid-boundary > div > span { display: block; margin-bottom: 5px; color: #9b690b; font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.detail-paid-boundary .primary { padding: 12px 16px; font-size: 11px; white-space: nowrap; }

@media (max-width: 700px) {
  .project-detail-card { padding: 28px 20px; }
  .detail-heading h2 { font-size: 20px; }
  .public-boundary { align-items: flex-start; flex-direction: column; gap: 4px; }
  .detail-facts { grid-template-columns: repeat(2, 1fr); }
  .detail-facts > div:nth-child(3n) { border-right: 1px solid var(--line); }
  .detail-facts > div:nth-child(2n) { border-right: 0; }
  .detail-facts > div:nth-last-child(-n+3) { border-bottom: 1px solid var(--line); }
  .detail-facts > div:nth-last-child(-n+2) { border-bottom: 0; }
  .detail-copy-grid,
  .resource-assessment,
  .public-verification-fields,
  .detail-sources,
  .detail-paid-boundary { grid-template-columns: 1fr; }
  .detail-paid-boundary .primary { width: 100%; }
}

/* source: accessibility.css */
:where(a, button, input, select, summary):focus-visible {
  outline: 3px solid #f0a11a;
  outline-offset: 3px;
}

.skip-link {
  position: fixed;
  left: 16px;
  top: 10px;
  z-index: 100;
  transform: translateY(-150%);
  background: #fff;
  color: var(--ink);
  padding: 10px 14px;
  border-radius: 7px;
  box-shadow: 0 8px 24px rgba(8, 25, 48, 0.2);
  font-weight: 700;
  text-decoration: none;
}

.skip-link:focus {
  transform: translateY(0);
}

.match-school-name {
  display: block;
  margin: 3px 0;
  font-size: 16px;
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* source: brand.css */
.guide::after {
  content: "HORIZON";
  font-size: clamp(96px, 13vw, 190px);
}

.brand.inverse em {
  color: #91a1b4;
}

.footer-main .brand-slogan {
  margin: 18px 0 0;
  line-height: 1.5;
}

.footer-main .brand-slogan strong,
.footer-main .brand-slogan span {
  display: block;
}

.footer-main .brand-slogan strong {
  color: #fff;
  font-size: 14px;
  letter-spacing: 0.08em;
}

.footer-main .brand-slogan span {
  margin-top: 6px;
  color: #7f91a8;
  font-size: 9px;
  letter-spacing: 0.12em;
}

@media (max-width: 620px) {
  .footer-main .brand-slogan strong {
    font-size: 13px;
  }

  .footer-main .brand-slogan span {
    max-width: 260px;
    font-size: 8px;
  }
}
