@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@600;700;900&family=Work+Sans:wght@400;500;600;700&display=swap');
:root{--paper:#f3efe5;--ink:#15201d;--red:#e64125;--line:#b8b4a9;--acid:#d6e44b;--white:#fffdf7;--serif:"Noto Serif SC",serif;--sans:"Work Sans","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);line-height:1.55}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.skip-link{position:fixed;top:-60px;left:12px;background:#fff;padding:10px;z-index:20}.skip-link:focus{top:12px}.masthead{background:var(--ink);color:var(--white);overflow:hidden}.nav{height:82px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff2e}.brand{display:inline-flex;align-items:center;text-decoration:none;color:inherit;gap:10px}.brand span{width:38px;height:38px;display:grid;place-items:center;background:var(--red);color:#fff;font-weight:800}.brand b{letter-spacing:.08em}.nav-meta{display:flex;gap:32px;font-size:12px;letter-spacing:.16em}.hero{min-height:530px;display:grid;grid-template-columns:1fr 260px;gap:80px;align-items:center;position:relative}.hero:before{content:"";position:absolute;width:480px;height:480px;border:1px solid #ffffff24;border-radius:50%;right:110px;top:20px}.eyebrow,.section-title span,.region{font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:700}.eyebrow{color:var(--acid);margin-bottom:28px}.hero h1{font-family:var(--serif);font-size:clamp(48px,6.4vw,86px);line-height:1.12;letter-spacing:-.045em;margin:0}.hero h1 em{font-style:normal;color:var(--red)}.dek{max-width:700px;font-size:18px;color:#d8d9d1;margin:34px 0 0}.edition{border:1px solid #ffffff48;padding:24px;z-index:1;transform:rotate(2deg);background:#15201dd9}.edition>span{font-size:10px;letter-spacing:.14em}.edition strong{font-family:var(--serif);display:block;font-size:110px;line-height:1;color:var(--acid)}.edition p{border-top:1px solid #ffffff38;padding-top:14px;margin-bottom:0}.ticker{border-top:1px solid #ffffff2e;color:var(--acid);font-size:12px;letter-spacing:.17em;white-space:nowrap;padding:13px 0}.ticker div{animation:marquee 24s linear infinite}@keyframes marquee{to{transform:translateX(-50%)}}.finder,.method{padding:92px 0}.section-title{display:flex;justify-content:space-between;align-items:end;border-bottom:2px solid var(--ink);padding-bottom:20px;margin-bottom:28px}.section-title span{color:var(--red)}.section-title h2{font-family:var(--serif);font-size:clamp(34px,5vw,58px);line-height:1.1;margin:8px 0 0}.section-title p{font-weight:600}.tools{display:flex;justify-content:space-between;align-items:end;margin:30px 0}.search{display:grid;gap:7px;width:min(480px,100%)}.search span{font-size:11px;font-weight:700;letter-spacing:.16em}.search input{border:0;border-bottom:1px solid var(--ink);background:transparent;padding:13px 2px;font:16px var(--sans);border-radius:0}.search input:focus{outline:2px solid var(--red);outline-offset:4px}.filters{display:flex;gap:8px}.filters button{border:1px solid var(--ink);background:transparent;padding:10px 16px;font:600 13px var(--sans);cursor:pointer}.filters button.active,.filters button:hover{background:var(--ink);color:#fff}.school-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.school-card{min-height:330px;padding:26px;display:flex;flex-direction:column;position:relative;text-decoration:none;color:inherit;border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:transform .22s,box-shadow .22s,background .22s}.school-card:hover{z-index:2;transform:translate(-5px,-5px);box-shadow:9px 9px 0 var(--ink);background:var(--white)}.school-card[hidden]{display:none}.school-card.feature{grid-column:span 2}.school-card.ink{background:var(--ink);color:var(--white)}.school-card.vermilion{background:var(--red);color:white}.school-card.hk{--red:#167e66}.card-index{position:absolute;right:22px;top:18px;font-family:var(--serif);font-size:48px;opacity:.15}.region{color:var(--red);padding-right:50px}.school-card h3{font-family:var(--serif);font-size:34px;margin:34px 0 14px;line-height:1.2}.school-card p{max-width:440px;margin:0;opacity:.78}.open{margin-top:auto;font-size:12px;font-weight:700;letter-spacing:.1em}.score{margin:auto 0 10px;display:flex;align-items:baseline;gap:14px}.score b{font-family:var(--serif);font-size:42px}.score span{font-size:11px}.empty{padding:40px;text-align:center;border:1px dashed var(--line)}.method{padding-top:20px}.formula{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;border:1px solid var(--ink)}.formula span{padding:30px 20px;font-family:var(--serif);font-size:20px;text-align:center}.formula b{display:block;font:11px var(--sans);color:var(--red);letter-spacing:.15em}.formula i{font-style:normal;font-size:24px}.disclaimer{max-width:730px;margin:30px 0 0;font-size:13px;color:#505752}footer{margin-top:50px;background:var(--ink);color:#d9d9d2}footer .shell{min-height:150px;display:flex;align-items:center;gap:30px}footer p{margin-right:auto}footer a{color:var(--acid)}.inverse span{background:var(--acid);color:var(--ink)}@media(max-width:800px){.shell{width:min(100% - 24px,1180px)}.nav{height:68px}.nav-meta span:first-child{display:none}.hero{min-height:520px;grid-template-columns:1fr;gap:25px;padding:65px 0}.hero:before{right:-250px}.edition{width:180px;padding:15px;position:absolute;right:0;bottom:30px}.edition strong{font-size:62px}.edition p{font-size:12px}.dek{padding-right:110px;font-size:15px}.finder{padding:65px 0}.tools{align-items:stretch;flex-direction:column;gap:24px}.filters{overflow:auto}.filters button{white-space:nowrap}.school-grid{grid-template-columns:1fr}.school-card.feature{grid-column:span 1}.school-card{min-height:280px}.formula{grid-template-columns:1fr}.formula i{transform:rotate(90deg);text-align:center}.formula span{padding:18px}footer .shell{padding:35px 0;align-items:flex-start;flex-direction:column;gap:12px}footer p{margin:0}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.ticker div{animation:none}.school-card{transition:none}}
