:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ink:#142019;--muted:#637067;--paper:#f4f2ec;--panel:#fffdf8;--line:#d8ddd5;--green:#174f3b;--green-deep:#0e3b2c;--orange:#d66a2d;--shadow:0 18px 60px #2630281c}*{box-sizing:border-box}html{background:var(--paper);min-width:320px}body{color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(circle at 8% 4%,#d66a2d14,#0000 26rem),linear-gradient(#f7f5ef 0%,#f0f2ed 100%);margin:0;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,Arial,sans-serif}@keyframes fullscreen-page-old{to{opacity:.18;filter:blur(2px);transform:scale(.985)}}@keyframes fullscreen-page-new{0%{opacity:.18;filter:blur(2px);transform:scale(1.012)}}@keyframes fullscreen-part-old{to{opacity:.22;filter:blur(1.5px)}}@keyframes fullscreen-part-new{0%{opacity:.3;filter:blur(1.2px)}}@keyframes fullscreen-legend-expand{0%{opacity:0;clip-path:inset(0 0 92% 86% round 10px);transform:translate(12px,-18px)scale(.08)}to{opacity:1;clip-path:inset(0 round 20px);transform:translate(0)scale(1)}}::view-transition-group(root){animation-duration:.52s;animation-timing-function:cubic-bezier(.2,.82,.3,1)}::view-transition-old(root){animation:.42s cubic-bezier(.4,0,.7,.2) both fullscreen-page-old}::view-transition-new(root){animation:.52s cubic-bezier(.2,.82,.3,1) both fullscreen-page-new}::view-transition-group(campus-map){z-index:20;animation-duration:.58s;animation-timing-function:cubic-bezier(.18,.86,.28,1)}html[data-fullscreen-transition=entering]::view-transition-group(campus-map){animation-timing-function:cubic-bezier(.18,.86,.28,1);animation-delay:0s}::view-transition-old(campus-map){mix-blend-mode:normal}::view-transition-new(campus-map){mix-blend-mode:normal}::view-transition-old(campus-legend){mix-blend-mode:normal}::view-transition-new(campus-legend){mix-blend-mode:normal}::view-transition-old(legend-toggle){mix-blend-mode:normal}::view-transition-new(legend-toggle){mix-blend-mode:normal}::view-transition-old(campus-map){animation:.39s both fullscreen-part-old}::view-transition-old(campus-legend){animation:.39s both fullscreen-part-old}::view-transition-old(legend-toggle){animation:.39s both fullscreen-part-old}::view-transition-new(campus-map){animation:.56s cubic-bezier(.18,.86,.28,1) both fullscreen-part-new}::view-transition-new(campus-legend){animation:.56s cubic-bezier(.18,.86,.28,1) both fullscreen-part-new}::view-transition-new(legend-toggle){animation:.56s cubic-bezier(.18,.86,.28,1) both fullscreen-part-new}::view-transition-group(campus-legend){z-index:21;animation-duration:.24s;animation-timing-function:cubic-bezier(.12,.82,.22,1)}html[data-fullscreen-transition=entering]::view-transition-group(campus-legend){animation-timing-function:cubic-bezier(.12,.82,.22,1);animation-delay:0s}::view-transition-old(campus-legend){animation:.19s cubic-bezier(.42,0,.75,.2) both fullscreen-part-old}::view-transition-new(campus-legend){animation:.28s cubic-bezier(.2,.82,.3,1) both fullscreen-part-new}html[data-fullscreen-transition=entering]::view-transition-old(campus-legend){transform-origin:100% 0;animation:.32s cubic-bezier(.72,0,.82,.14) reverse both fullscreen-legend-expand}html[data-fullscreen-transition=entering]::view-transition-new(campus-legend){opacity:0;animation:none}html[data-fullscreen-transition=exiting]::view-transition-new(campus-legend){transform-origin:100% 0;animation:.32s cubic-bezier(.18,.86,.28,1) .17s both fullscreen-legend-expand}::view-transition-group(legend-toggle){z-index:22;animation-duration:.32s;animation-timing-function:cubic-bezier(.2,.82,.3,1)}button,input{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline-offset:2px;outline:3px solid #d66a2d5c}main{min-height:100vh;padding:32px clamp(18px,3.2vw,56px) 24px}.topbar{max-width:1840px;margin:0 auto 22px}.eyebrow{color:var(--green);letter-spacing:.16em;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;font-weight:800;display:flex}.eyebrow-dot{border:2px solid var(--green);border-radius:50%;width:9px;height:9px;box-shadow:0 0 0 4px #174f3b1a}.title-row{justify-content:space-between;align-items:flex-end;gap:28px;display:flex}h1{color:#11281f;letter-spacing:-.035em;margin:0;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:clamp(32px,3vw,54px);font-weight:700;line-height:1.08}.title-row p{color:var(--muted);margin:11px 0 0;font-size:clamp(13px,1vw,16px);line-height:1.7}.notes-button{color:var(--green);cursor:pointer;background:#fffdf8b8;border:1px solid #174f3b2e;border-radius:999px;flex:none;align-items:center;gap:8px;padding:11px 16px;font-size:13px;font-weight:750;transition:all .18s;display:inline-flex}.notes-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px}.notes-button:hover{background:#fff;border-color:#174f3b5c;transform:translateY(-1px)}.workspace{grid-template-columns:minmax(0,1fr) minmax(320px,430px);align-items:start;gap:18px;max-width:1840px;margin:0 auto;display:grid}.workspace.is-map-fullscreen{z-index:24;background:#e9eef0;max-width:none;margin:0;display:block;position:fixed;inset:0}.map-card,.legend-panel{box-shadow:var(--shadow);background:#fffdf8eb;border:1px solid #1d392c24;border-radius:20px}.map-card{view-transition-name:campus-map;min-width:0;overflow:hidden}.map-toolbar{border-bottom:1px solid var(--line);background:linear-gradient(90deg,#174f3b0b,#0000 38%),#fffdf8;justify-content:space-between;align-items:center;gap:16px;min-height:64px;padding:10px 12px 10px 20px;display:flex}.map-actions{flex:none;align-items:center;gap:8px;display:flex}.map-caption{align-items:baseline;gap:12px;min-width:0;display:flex}.map-caption strong{white-space:nowrap;font-size:15px}.map-caption span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.zoom-controls{background:#fff;border:1px solid #d7ddd7;border-radius:12px;flex:none;align-items:center;display:flex;overflow:hidden;box-shadow:0 3px 12px #1e2d250f}.zoom-controls button,.zoom-controls span{background:0 0;border:0;border-right:1px solid #e1e5e1;height:36px}.zoom-controls button{cursor:pointer;min-width:38px;font-size:21px;transition:background .15s}.zoom-controls button:hover{background:#f0f5f1}.zoom-controls span{color:#516159;place-items:center;min-width:58px;font-size:11px;font-weight:750;display:grid}.zoom-controls .reset-button{min-width:52px;color:var(--green);border-right:0;font-size:12px;font-weight:750}.fullscreen-button{height:38px;color:var(--green);cursor:pointer;background:#fff;border:1px solid #d4dcd6;border-radius:11px;justify-content:center;align-items:center;gap:6px;padding:0 11px;font-size:10px;font-weight:800;transition:all .16s;display:inline-flex;box-shadow:0 3px 12px #1e2d250f}.fullscreen-button:hover{background:#f3f7f4;border-color:#174f3b5c}.fullscreen-button.is-active{color:#fff;background:#174f3b;border-color:#174f3b}.fullscreen-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:16px}.map-frame{aspect-ratio:2.0714;background:linear-gradient(135deg,#174f3b0a,#d66a2d08),#eef2f3;min-height:430px;position:relative;overflow:hidden}.is-map-fullscreen .map-card{box-shadow:none;background:#eef2f3;border:0;border-radius:0;flex-direction:column;display:flex;position:absolute;inset:0}.is-map-fullscreen .map-toolbar{z-index:14;flex:none;box-shadow:0 5px 18px #182b2217}.is-map-fullscreen .map-frame{aspect-ratio:auto;flex:1;min-height:0}.map-svg{cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.map-svg:active{cursor:grabbing}.map-svg.is-panning{cursor:grabbing;shape-rendering:optimizespeed;text-rendering:optimizespeed}.map-svg.is-panning .interactive-dots,.map-svg.is-panning .interactive-labels{pointer-events:none}.map-svg.is-panning .school-dot,.map-svg.is-panning .map-label,.map-svg.is-panning .dot-core,.map-svg.is-panning .city-proximity-ring{transition:none}.map-svg.is-panning .map-label-box,.map-svg.is-panning .map-label-bullet,.map-svg.is-panning .dot-core,.map-svg.is-panning .dot-halo,.map-svg.is-panning .city-proximity-ring,.map-svg.is-panning .compare-selection-ring{filter:none}.school-dot{transition:opacity .18s}.school-dot.is-dimmed{opacity:.14}.school-dot.is-city-distant:not(.is-selected),.map-label.is-city-distant:not(.is-selected){opacity:.18}.school-dot.is-city-distant.is-dimmed:not(.is-selected){opacity:.08}.school-dot.is-city-distant:hover,.school-dot.is-city-distant:focus-within,.map-label.is-city-distant:hover,.map-label.is-city-distant:focus-within{opacity:1}.school-dot.is-compared,.map-label.is-compared,.school-dot.is-selected,.map-label.is-selected{opacity:1!important}.map-svg.has-selection .school-dot:not(.is-selected):not(.is-compared):not(.is-dimmed):not(:hover):not(:focus-within){opacity:.5}.map-svg.has-selection .map-label:not(.is-selected):not(.is-compared):not(.is-city-distant):not(:hover):not(:focus-within){opacity:.58}.dot-core{transition:r .16s,filter .16s}.school-dot:hover .dot-core,.school-dot:focus-within .dot-core,.school-dot.is-selected .dot-core{filter:drop-shadow(0 0 7px #111f186b);r:12px}.school-dot.is-selected .dot-halo{opacity:.42;filter:drop-shadow(0 0 6px color-mix(in srgb, var(--school-color) 62%, transparent))}.school-dot.is-selected .dot-core{r:13px;stroke-width:3.5px}.city-proximity-ring{pointer-events:none;filter:drop-shadow(0 1px 2px #0f2a1e4d);transition:stroke-width .16s,filter .16s}.school-dot:hover .city-proximity-ring,.school-dot:focus-within .city-proximity-ring,.school-dot.is-selected .city-proximity-ring{filter:drop-shadow(0 0 5px color-mix(in srgb, var(--proximity-color) 70%, transparent));stroke-width:4px}.compare-selection-ring{fill:#7652a814;stroke:#7652a8;stroke-dasharray:5 3;stroke-width:3px;pointer-events:none;filter:drop-shadow(0 0 4px #7652a861)}.school-hit{cursor:pointer;outline:none}.map-label{transition:opacity .18s}.map-label-hit{fill:#0000;cursor:pointer;pointer-events:all;outline:none}.map-label-box{fill:#fffffff0;stroke:#d8dee5;stroke-width:1.2px;pointer-events:none}.map-label.is-city-mode:not(.is-city-distant) .map-label-box{stroke:var(--proximity-color);stroke-width:2px}.map-label.is-selected .map-label-box,.map-label:hover .map-label-box,.map-label:focus-within .map-label-box{fill:#fff;filter:drop-shadow(0 3px 5px #132a1f2e);stroke-width:2.7px}.map-label.is-compared .map-label-box{fill:#fff;stroke:#7652a8;stroke-width:3px;filter:drop-shadow(0 3px 6px #52347938)}.map-label.is-selected .map-label-box{fill:#fff;stroke:var(--school-color);stroke-width:3.6px;filter:drop-shadow(0 0 3px color-mix(in srgb, var(--school-color) 34%, transparent)) drop-shadow(0 5px 7px #132a1f33)}.map-label.is-selected .map-label-bullet{r:8px;filter:drop-shadow(0 0 3px color-mix(in srgb, var(--school-color) 50%, transparent))}.map-label.is-selected .map-label-text{fill:#14221a;font-weight:850}.map-label-bullet,.map-label-text{pointer-events:none}.map-label-text{fill:#26323d;font-family:Microsoft YaHei,Noto Sans CJK SC,Arial,sans-serif;font-size:22px;font-weight:650}.locator-ring{fill:none;stroke-width:6px;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:50%;opacity:0}.ring-one{animation:1.15s cubic-bezier(.18,.86,.3,1) both locator-pulse}.ring-two{animation:1.15s cubic-bezier(.18,.86,.3,1) .34s both locator-pulse}.locator-center{stroke:#fff;stroke-width:3px;vector-effect:non-scaling-stroke;filter:drop-shadow(0 2px 5px #0c1d1461);animation:.52s .65s both center-pop}.selected-anchor-ring-back,.selected-anchor-ring{fill:none;vector-effect:non-scaling-stroke}.selected-anchor-ring-back{stroke:#fffffff5;stroke-width:8px;filter:drop-shadow(0 2px 5px #0c1d143d)}.selected-anchor-ring{stroke-width:3.5px}@keyframes locator-pulse{0%{opacity:0;transform:scale(7.5)}18%{opacity:.92}82%{opacity:.78}to{opacity:0;transform:scale(.65)}}@keyframes center-pop{0%{opacity:0;transform:scale(.3)}70%{opacity:1;transform:scale(1.35)}to{opacity:1;transform:scale(1)}}.map-hint{color:#66736b;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffdf8e0;border:1px solid #1f382c1f;border-radius:999px;align-items:center;gap:8px;padding:7px 10px;font-size:10px;font-weight:700;display:flex;position:absolute;bottom:12px;right:14px;box-shadow:0 5px 18px #1f332a17}.map-hint i{background:#94a098;border-radius:50%;width:3px;height:3px}.legend-panel{view-transition-name:campus-legend;flex-direction:column;min-height:0;max-height:calc(100vh - 190px);display:flex;overflow:hidden}.is-map-fullscreen .legend-panel{z-index:15;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);clip-path:inset(0 round 20px);transform-origin:100% 0;background:#fffdf8f5;border-color:#1d392c33;width:min(410px,100vw - 36px);max-height:none;transition:opacity .19s,transform .26s cubic-bezier(.2,.82,.3,1),clip-path .26s cubic-bezier(.2,.82,.3,1),filter .21s,visibility linear;position:absolute;top:112px;bottom:18px;right:18px;box-shadow:0 24px 65px #12231b3d,0 3px 14px #12231b1f}.is-map-fullscreen .legend-panel.is-fullscreen-collapsed{visibility:hidden;opacity:0;pointer-events:none;clip-path:inset(0 0 94% 88% round 12px);filter:blur(1.5px);transition:opacity .14s,transform .22s cubic-bezier(.55,0,.75,.25),clip-path .22s cubic-bezier(.55,0,.75,.25),filter .17s,visibility 0s linear .22s;transform:translate(8px,-20px)scale(.08)}.fullscreen-legend-toggle{z-index:17;height:31px;color:var(--green);cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);view-transition-name:legend-toggle;background:#fffdf8f2;border:1px solid #1c3a2c33;border-radius:10px;align-items:center;gap:6px;padding:0 9px;font-size:9px;font-weight:800;transition:all .16s;display:inline-flex;position:absolute;top:73px;right:18px;box-shadow:0 7px 18px #14261d26}.fullscreen-legend-toggle:hover,.fullscreen-legend-toggle.is-collapsed{background:#fff;border-color:#174f3b6b}.fullscreen-legend-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:15px}.fullscreen-legend-toggle em{color:#245a46;background:#e7efea;border-radius:999px;place-items:center;min-width:17px;height:17px;font-size:7px;font-style:normal;display:grid}.legend-sticky{z-index:2;border-bottom:1px solid var(--line);background:linear-gradient(#174f3b0d,#fffdf800),#fffdf8;flex:none;padding:16px 16px 12px}.search-box{background:#fff;border:1px solid #cfd7d0;border-radius:13px;align-items:center;height:46px;transition:all .18s;display:flex;position:relative;box-shadow:0 5px 18px #1f332a0f,inset 0 0 0 1px #ffffffb3}.search-box:focus-within{border-color:#174f3b8c;box-shadow:0 0 0 4px #174f3b14}.search-box svg{fill:none;stroke:#66746c;stroke-linecap:round;stroke-width:1.8px;width:18px;margin-left:14px}.search-box input{width:100%;height:100%;color:var(--ink);background:0 0;border:0;outline:0;padding:0 10px;font-size:13px}.search-box input::placeholder{color:#89948d}.search-box button{color:#68766e;cursor:pointer;background:0 0;border:0;border-radius:50%;width:34px;height:34px;margin-right:5px;font-size:19px}.search-box button:hover{background:#eef2ef}.search-summary{justify-content:space-between;align-items:center;margin:14px 2px 9px;display:flex}.search-summary span{color:#35453c;font-size:14px;font-weight:800}.search-summary strong{color:var(--green);background:#e9efea;border-radius:999px;padding:3px 8px;font-size:11px}.legend-summary-actions{align-items:center;gap:6px;display:flex}.compare-mode-toggle{color:#5c4b71;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #d5dadd;border-radius:999px;align-items:center;gap:5px;height:28px;padding:0 8px;font-size:9px;font-weight:800;transition:all .16s;display:inline-flex}.compare-mode-toggle:hover{background:#f8f4fc;border-color:#a894bf}.compare-mode-toggle.is-active{color:#fff;background:#7652a8;border-color:#7652a8;box-shadow:0 4px 11px #59398238}.compare-mode-toggle svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:13px}.compare-mode-toggle em{color:#fff;background:#7652a8;border-radius:999px;place-items:center;min-width:16px;height:16px;font-size:8px;font-style:normal;display:grid}.compare-mode-toggle.is-active em{color:#684394;background:#fff}.region-legend{flex-wrap:wrap;gap:5px 8px;display:flex}.region-legend span{color:#6b766f;align-items:center;gap:5px;font-size:9px;font-weight:650;display:inline-flex}.region-legend i{border-radius:50%;width:7px;height:7px}.compare-guide{color:#5e427f;background:#7652a812;border:1px solid #7652a83b;border-radius:10px;grid-template-columns:27px minmax(0,1fr);align-items:center;gap:8px;margin-top:10px;padding:7px 9px;display:grid}.compare-guide>svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:18px}.compare-guide strong,.compare-guide small{display:block}.compare-guide strong{font-size:9px}.compare-guide small{color:#837690;margin-top:1px;font-size:7.5px}.compare-notice{color:#a34e35;margin:7px 1px 0;font-size:8.5px;font-weight:750;line-height:1.45}.city-mode-toggle{color:#33463c;text-align:left;cursor:pointer;background:#ffffffc7;border:1px solid #d4ddd6;border-radius:12px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;width:100%;margin-top:12px;padding:9px 10px;transition:border-color .17s,background .17s,box-shadow .17s,transform .17s;display:grid;box-shadow:0 3px 10px #192f240a}.city-mode-toggle:hover{background:#fff;border-color:#9bbdaf;transform:translateY(-1px)}.city-mode-toggle.is-active{background:linear-gradient(135deg,#147d641f,#ffffffeb);border-color:#75aa96;box-shadow:0 0 0 3px #147d6412,0 5px 15px #19433114}.city-mode-icon{color:#486158;background:#edf3ef;border-radius:9px;place-items:center;width:32px;height:32px;display:grid}.city-mode-toggle.is-active .city-mode-icon{color:#fff;background:#147d64}.city-mode-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:17px}.city-mode-copy{min-width:0}.city-mode-copy strong,.city-mode-copy small{display:block}.city-mode-copy strong{font-size:11.5px;font-weight:850}.city-mode-copy small{color:#748079;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:8.5px;overflow:hidden}.city-mode-toggle em{color:#23634e;white-space:nowrap;background:#e7efea;border-radius:999px;padding:4px 7px;font-size:9px;font-style:normal;font-weight:850}.city-mode-toggle.is-active em{color:#fff;background:#147d64}.city-proximity-legend{flex-wrap:wrap;gap:5px 6px;margin-top:8px;display:flex}.city-proximity-legend span{color:#66736b;background:#ffffffb3;border:1px solid #e0e5e1;border-radius:999px;align-items:center;gap:4px;padding:3px 6px;font-size:8px;font-weight:700;display:inline-flex}.city-proximity-legend i{border-radius:50%;width:6px;height:6px}.city-proximity-legend b{color:#32463b;font-size:8px}.school-list{overscroll-behavior:contain;scrollbar-color:#b4beb6 transparent;scrollbar-width:thin;min-height:0;padding:8px;overflow-y:auto}.school-row{text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:12px;grid-template-columns:36px minmax(0,1fr) 25px;align-items:center;gap:10px;width:100%;margin:0 0 4px;padding:10px;transition:background .15s,border-color .15s,opacity .15s,transform .15s;display:grid;position:relative;overflow:hidden}.school-row:before{background:var(--school-color);content:"";opacity:0;border-radius:0 4px 4px 0;width:3px;transition:all .16s;position:absolute;inset:7px auto 7px 0;transform:scaleY(.4)}.school-row:hover{background:#f5f7f3;border-color:#1e403014;transform:translate(2px)}.school-row.is-active{border-color:color-mix(in srgb, var(--school-color) 34%, #d7ddd7);background:color-mix(in srgb, var(--school-color) 8%, #fff)}.school-row:hover:before,.school-row.is-active:before{opacity:1;transform:scaleY(1)}.school-row.is-city-mode:before{background:var(--proximity-color)}.school-row.is-city-mode.is-active{border-color:color-mix(in srgb, var(--proximity-color) 40%, #d7ddd7);background:color-mix(in srgb, var(--proximity-color) 8%, #fff)}.school-row.is-city-distant:not(.is-active):not(.is-compared){opacity:.48}.school-row.is-city-distant:hover,.school-row.is-city-distant:focus-visible{opacity:1}.school-row.is-city-mode .school-number{border-color:color-mix(in srgb, var(--proximity-color) 80%, #fff);background:color-mix(in srgb, var(--proximity-color) 10%, #fff);color:color-mix(in srgb, var(--proximity-color) 84%, #111)}.school-row.is-compared{opacity:1;background:#7652a814;border-color:#7652a85c}.school-row.is-compared:before{opacity:1;background:#7652a8;transform:scaleY(1)}.school-row.is-compare-mode{cursor:cell}.school-row.is-compare-mode:hover{background:#7652a80e;border-color:#7652a847}.school-row.is-active{border-color:color-mix(in srgb, var(--school-color) 58%, #d7ddd7);background:linear-gradient(90deg, color-mix(in srgb, var(--school-color) 17%, #fff), #fff 88%);opacity:1;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--school-color) 12%, transparent), 0 5px 14px color-mix(in srgb, var(--school-color) 13%, transparent);transform:translate(2px)}.school-row.is-active:before{background:var(--school-color);width:4px}.school-row.is-active .school-number{border-color:color-mix(in srgb, var(--school-color) 78%, #fff);background:var(--school-color);color:#fff;box-shadow:0 4px 10px color-mix(in srgb, var(--school-color) 27%, transparent)}.school-row.is-active .school-primary-name{color:#17271e;font-weight:850}.school-number{border:2px solid color-mix(in srgb, var(--school-color) 78%, #fff);background:color-mix(in srgb, var(--school-color) 11%, #fff);width:32px;height:32px;color:color-mix(in srgb, var(--school-color) 82%, #111);letter-spacing:.03em;border-radius:50%;place-items:center;font-size:10px;font-weight:850;display:grid}.school-row-text{min-width:0}.school-row-text strong{color:#1e2c24;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:7px;font-size:12px;font-style:normal;display:flex;overflow:hidden}.school-primary-name{text-overflow:ellipsis;min-width:0;overflow:hidden}.school-abbreviation{color:#52665b;letter-spacing:.01em;font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:10.5px;font-weight:800}.school-row-text strong em{color:#5b6961;background:#edf1ed;border-radius:5px;flex:none;padding:2px 5px;font-size:9px;font-style:normal;font-weight:800}.school-row-text>span{color:#77827b;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:9.5px;display:block;overflow:hidden}.school-row-text>span i{color:#b2bab5;margin:0 5px;font-style:normal}.school-city-profile{color:var(--proximity-color);font-size:9px;font-weight:850}mark{color:inherit;background:#ffe3a8;border-radius:2px;padding:0 1px}.locate-icon{color:#9ba69f;opacity:0;border-radius:50%;place-items:center;width:24px;height:24px;transition:all .16s;display:grid;transform:translate(4px)}.locate-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:15px}.school-row:hover .locate-icon,.school-row.is-active .locate-icon{color:var(--school-color);opacity:1;transform:translate(0)}.school-row.is-active .locate-icon{background:var(--school-color);color:#fff;box-shadow:0 4px 9px color-mix(in srgb, var(--school-color) 25%, transparent)}.compare-check{color:#0000;background:#fff;border:1.5px solid #b8adc4;border-radius:7px;place-items:center;width:22px;height:22px;transition:all .15s;display:grid}.compare-check svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;width:14px}.compare-check.is-checked{color:#fff;background:#7652a8;border-color:#7652a8;box-shadow:0 3px 8px #5939823d}.compare-tray{z-index:3;background:linear-gradient(#7652a80f,#0000 75%),#fffdf8;border-top:1px solid #ded8e5;flex:none;padding:10px 12px 12px;box-shadow:0 -8px 20px #2d23370f}.compare-tray-heading{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.compare-tray-heading strong{color:#49365f;font-size:9.5px}.compare-tray-heading button{color:#897b96;cursor:pointer;background:0 0;border:0;padding:0;font-size:8.5px}.compare-chips{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.compare-chips button{border:1px solid color-mix(in srgb, var(--school-color) 30%, #ddd);color:#4e4358;cursor:pointer;background:#fff;border-radius:999px;align-items:center;gap:5px;max-width:126px;height:25px;padding:0 5px 0 7px;font-size:8px;font-weight:800;display:inline-flex;overflow:hidden}.compare-chips i{background:var(--school-color);border-radius:50%;flex:none;width:6px;height:6px}.compare-chips span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.compare-chips b{color:#765c8b;background:#f0ecf3;border-radius:50%;flex:none;place-items:center;width:14px;height:14px;font-size:10px;display:grid}.open-compare-button{color:#fff;cursor:pointer;background:#7652a8;border:0;border-radius:9px;justify-content:center;align-items:center;gap:7px;width:100%;height:34px;font-size:9.5px;font-weight:850;display:flex;box-shadow:0 6px 14px #59398233}.open-compare-button:disabled{color:#83798b;cursor:default;box-shadow:none;background:#d8d0df}.open-compare-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:15px}.empty-search{color:#849087;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:300px;padding:30px;display:flex}.empty-search svg{fill:none;stroke:#a4afa7;stroke-linecap:round;stroke-width:1.4px;width:34px;margin-bottom:13px}.empty-search strong{color:#3e4d44;font-size:14px}.empty-search span{margin:6px 0 15px;font-size:11px}.empty-search button{color:var(--green);cursor:pointer;background:#fff;border:1px solid #d4dbd5;border-radius:8px;padding:7px 13px;font-size:11px;font-weight:750}.school-tooltip{z-index:8;border:1px solid #1b342829;border-top:4px solid var(--school-color);pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#fffefaf7;border-radius:16px;width:min(370px,100% - 28px);max-height:calc(100% - 28px);animation:.16s ease-out both tooltip-in;position:absolute;overflow:auto;box-shadow:0 22px 55px #14231b3d,0 3px 12px #14231b1a}@keyframes tooltip-in{0%{opacity:0;transform:translateY(7px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.tooltip-header{background:linear-gradient(135deg, color-mix(in srgb, var(--school-color) 9%, #fff), #fff 62%);border-bottom:1px solid #e3e7e2;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:16px 16px 13px;display:grid;position:relative}.region-badge{color:#66736b;align-items:center;gap:5px;margin-bottom:7px;font-size:9px;font-weight:750;display:inline-flex}.region-badge i{border-radius:50%;width:7px;height:7px}.tooltip-header h2{color:#15251c;letter-spacing:-.02em;margin:0;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:20px;line-height:1.2}.tooltip-header .tooltip-school-en{color:#2d4136;letter-spacing:-.01em;margin:6px 0 0;font-size:14px;font-weight:750;line-height:1.32}.tooltip-school-en span{color:color-mix(in srgb, var(--school-color) 80%, #1d3026);white-space:nowrap;font-size:.92em;font-weight:850}.rank-stamp{border:1px solid color-mix(in srgb, var(--school-color) 24%, #e2e5e2);text-align:center;background:#fffc;border-radius:11px;align-self:start;min-width:58px;padding:7px 8px}.rank-stamp span{color:#879189;letter-spacing:.06em;font-size:7px;font-weight:800;display:block}.rank-stamp strong{color:var(--school-color);margin-top:1px;font-family:Georgia,serif;font-size:22px;line-height:1;display:block}.tooltip-body{gap:10px;padding:13px 16px 8px;display:grid}.info-row{grid-template-columns:28px minmax(0,1fr);gap:9px;display:grid}.info-icon{background:color-mix(in srgb, var(--school-color) 10%, #f4f6f2);width:27px;height:27px;color:var(--school-color);border-radius:8px;place-items:center;display:grid}.info-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:15px}.info-label{color:#8a948d;letter-spacing:.08em;margin-bottom:3px;font-size:8px;font-weight:800;display:block}.info-value{color:#2e3b33;font-size:10px;line-height:1.5}.info-value strong{color:#15251c;font-size:12px;display:block}.info-value small{color:#879189;margin-top:1px;font-size:8px;display:block}.tooltip-city-profile{border:1px solid color-mix(in srgb, var(--proximity-color) 32%, #dfe5e0);background:color-mix(in srgb, var(--proximity-color) 8%, #fff);color:var(--proximity-color);border-radius:999px;margin-top:5px;padding:3px 7px;font-size:8.5px;font-weight:850;display:table}.strength-tags{flex-wrap:wrap;gap:4px;display:flex}.strength-tags span{border:1px solid color-mix(in srgb, var(--school-color) 18%, #e2e5e1);background:color-mix(in srgb, var(--school-color) 5%, #fff);color:#425148;border-radius:6px;padding:3px 6px;font-size:8px;font-weight:650}.source-link{color:var(--green);border-top:1px dashed #dde2dd;justify-content:space-between;align-items:center;margin:4px 16px 14px 53px;padding-top:8px;font-size:9px;font-weight:750;text-decoration:none;display:flex}.source-link:hover{color:var(--orange)}.page-footer{color:#7b867e;flex-wrap:wrap;gap:8px 22px;max-width:1840px;margin:14px auto 0;font-size:10px;display:flex}.page-footer span{position:relative}.page-footer span:not(:last-child):after{content:"";background:#a8b0aa;border-radius:50%;width:3px;height:3px;position:absolute;top:50%;right:-12px}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#0c1d158f;place-items:center;padding:22px;animation:.16s both fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.notes-modal{background:linear-gradient(135deg,#174f3b0b,#0000 35%),#fffdf8;border:1px solid #ffffff80;border-radius:22px;width:min(820px,100%);max-height:calc(100vh - 44px);padding:clamp(24px,4vw,42px);animation:.22s cubic-bezier(.2,.8,.3,1) both modal-in;position:relative;overflow:auto;box-shadow:0 38px 100px #05140d59}@keyframes modal-in{0%{opacity:0;transform:translateY(16px)scale(.98)}}.modal-close{color:#405047;cursor:pointer;background:#eef2ee;border:0;border-radius:50%;width:34px;height:34px;font-size:22px;position:absolute;top:15px;right:15px}.modal-kicker{color:var(--orange);letter-spacing:.18em;font-size:10px;font-weight:850}.notes-modal h2{color:#173328;margin:7px 0 24px;font-family:Georgia,Noto Serif SC,serif;font-size:31px}.notes-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 28px;display:grid}.notes-grid div{border-left:3px solid #dfe6e0;padding-left:14px}.notes-grid strong{color:#26392f;font-size:13px}.notes-grid p{color:#68746c;margin:6px 0 0;font-size:11px;line-height:1.75}.modal-primary{background:var(--green);color:#fff;cursor:pointer;border:0;border-radius:10px;margin:28px 0 0 auto;padding:10px 20px;font-size:12px;font-weight:800;display:block;box-shadow:0 8px 18px #174f3b38}.compare-backdrop{z-index:36}.compare-modal{background:#fbfaf7;border:1px solid #ffffff7a;border-radius:22px;flex-direction:column;width:min(1220px,100%);max-height:calc(100vh - 44px);animation:.22s cubic-bezier(.2,.8,.3,1) both modal-in;display:flex;overflow:hidden;box-shadow:0 38px 100px #05140d61}.compare-modal-header{background:radial-gradient(circle at 82% 20%,#7652a81c,#0000 22rem),#fffdf9;border-bottom:1px solid #e3dfe7;flex:none;justify-content:space-between;align-items:flex-end;gap:24px;padding:24px 26px 18px;display:flex}.compare-modal-header h2{color:#2e203f;margin:5px 0 0;font-family:Georgia,Noto Serif SC,Songti SC,serif;font-size:clamp(24px,2.3vw,34px);line-height:1.08}.compare-modal-header p{color:#776d7f;margin:7px 0 0;font-size:10px}.compare-modal-close{color:#614a79;cursor:pointer;background:#fff;border:1px solid #d9cfdf;border-radius:10px;flex:none;padding:9px 14px;font-size:10px;font-weight:800}.compare-table-scroll{overscroll-behavior:contain;scrollbar-color:#b9adc4 transparent;scrollbar-width:thin;min-height:0;overflow:auto}.compare-table{border-collapse:separate;border-spacing:0;table-layout:fixed;color:#374139;width:100%;min-width:850px;font-size:10px}.compare-field-col{width:150px}.compare-school-col{width:300px}.compare-table th,.compare-table td{vertical-align:top;border-bottom:1px solid #e5e1e7;border-right:1px solid #e5e1e7;padding:14px 16px;line-height:1.55}.compare-table tr>:last-child{border-right:0}.compare-table thead th{z-index:3;background:linear-gradient(180deg, color-mix(in srgb, var(--school-color,#7652a8) 8%, #fff), #fff 80%);text-align:left;height:145px;position:sticky;top:0}.compare-table thead th:not(:first-child){border-top:4px solid var(--school-color)}.compare-table .compare-field-heading{z-index:5;color:#766c79;letter-spacing:.08em;border-top:4px solid #0000;font-size:9px}.compare-table tbody th{z-index:2;color:#594c61;text-align:left;background:#f4f1f5;font-size:9px;position:sticky;left:0}.compare-table thead .compare-field-heading{left:0}.compare-table thead th>strong,.compare-table thead th>small{display:block}.compare-school-index{border:2px solid color-mix(in srgb, var(--school-color) 75%, #fff);background:color-mix(in srgb, var(--school-color) 10%, #fff);width:28px;height:28px;color:var(--school-color);border-radius:50%;place-items:center;margin-bottom:7px;font-size:8px;font-weight:850;display:grid}.compare-table thead th>strong{color:#231a2c;text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.compare-table thead th>small{color:#766f79;text-overflow:ellipsis;white-space:nowrap;margin-top:3px;font-size:8px;font-weight:600;overflow:hidden}.compare-table thead th>button{color:#806b8f;cursor:pointer;background:#ffffffd1;border:1px solid #ddd5e2;border-radius:6px;margin-top:8px;padding:3px 7px;font-size:7.5px;font-weight:750}.compare-table td>strong,.compare-table td>small{display:block}.compare-table td>small{color:#818a84;margin-top:3px;font-size:8px}.compare-table td>p{color:#667069;margin:6px 0 0;font-size:9px}.compare-table td>a{color:#6d4d92;margin-top:7px;font-size:8px;font-weight:800;text-decoration:none;display:inline-block}.compare-rank{color:#694893;font-family:Georgia,serif;font-size:22px}.compare-strengths{flex-wrap:wrap;gap:4px;display:flex}.compare-strengths span,.compare-proximity{border-radius:6px;padding:3px 6px;font-size:8px;font-weight:750}.compare-strengths span{background:#f7f4f8;border:1px solid #e0dbe3}.compare-proximity{border:1px solid color-mix(in srgb, var(--proximity-color) 30%, #ddd);background:color-mix(in srgb, var(--proximity-color) 8%, #fff);color:var(--proximity-color);display:inline-flex}.compare-modal-footer{color:#817983;background:#fffdf9;flex:none;justify-content:space-between;align-items:center;gap:18px;padding:13px 18px;font-size:8.5px;display:flex}.compare-modal-footer button{color:#fff;cursor:pointer;background:#7652a8;border:0;border-radius:9px;flex:none;padding:8px 15px;font-size:9px;font-weight:800}@media (max-width:1180px){main{padding-inline:20px}.workspace{grid-template-columns:minmax(0,1fr) 340px}.map-frame{min-height:470px}}@media (max-width:920px){main{padding:22px 14px}.title-row{align-items:flex-start}.workspace{grid-template-columns:1fr}.legend-panel{max-height:640px}.map-frame{aspect-ratio:1.35;min-height:500px}.notes-grid{grid-template-columns:1fr}}@media (max-width:600px){.topbar{margin-bottom:15px}.title-row{display:block}.notes-button{margin-top:14px}.map-toolbar{align-items:flex-start;padding:10px}.map-actions{gap:5px}.fullscreen-button{width:38px;padding:0}.fullscreen-button span{display:none}.is-map-fullscreen .legend-panel{width:auto;inset:108px 8px 8px}.fullscreen-legend-toggle{top:70px;right:8px}.map-caption{display:block}.map-caption span{margin-top:2px;display:block}.zoom-controls span{display:none}.map-frame{aspect-ratio:auto;min-height:470px}.school-tooltip{width:auto;max-height:calc(100% - 20px);position:absolute;bottom:10px;right:10px;top:auto!important;left:10px!important}.map-hint{display:none}.legend-panel{max-height:580px}.search-summary{align-items:flex-start}.legend-summary-actions{flex-direction:column;align-items:flex-end}.compare-mode-toggle{height:25px}.modal-backdrop.compare-backdrop{padding:8px}.compare-modal{border-radius:16px;max-height:calc(100vh - 16px)}.compare-modal-header{padding:18px 16px 14px;display:block}.compare-modal-header p{max-width:250px}.compare-modal-close{margin-top:12px}.compare-table{min-width:780px}.compare-modal-footer{flex-direction:column;align-items:flex-start}.page-footer{line-height:1.8;display:block}.page-footer span{display:block}.page-footer span:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}::view-transition-group(root){animation-duration:.01ms!important}::view-transition-group(campus-map){animation-duration:.01ms!important}::view-transition-group(campus-legend){animation-duration:.01ms!important}::view-transition-group(legend-toggle){animation-duration:.01ms!important}::view-transition-old(root){animation-duration:.01ms!important}::view-transition-new(root){animation-duration:.01ms!important}::view-transition-old(campus-map){animation-duration:.01ms!important}::view-transition-new(campus-map){animation-duration:.01ms!important}::view-transition-old(campus-legend){animation-duration:.01ms!important}::view-transition-new(campus-legend){animation-duration:.01ms!important}::view-transition-old(legend-toggle){animation-duration:.01ms!important}::view-transition-new(legend-toggle){animation-duration:.01ms!important}}
