:root{--ink:#18352f;--muted:#5b7069;--green:#12644f;--deep:#104e40;--mint:#e6f3e9;--paper:#fafbf7;--line:#d9e4dd;--orange:#b44823;--white:#fff;--radius:16px;font-family:system-ui,-apple-system,"Segoe UI","Microsoft JhengHei","PingFang TC",sans-serif;color:var(--ink);background:var(--paper);font-size:16px;line-height:1.7}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--green)}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--orange);outline-offset:4px}a,button{ -webkit-tap-highlight-color:transparent}::selection{background:#c1e7cd}[hidden]{display:none!important}.skip{position:fixed;inset-block-start:-100px;inset-inline-start:16px;padding:12px 20px;background:var(--ink);color:white;z-index:50}.skip:focus{inset-block-start:12px}.wrap{max-width:1320px;margin-inline:auto;padding-inline:32px}.topbar{border-block-end:1px solid var(--line);background:var(--paper)}.header-inner{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:12px;font-size:1.2rem;font-weight:800;letter-spacing:.04em}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--green);border-radius:10px;color:var(--green);font-size:1.3rem;transform:rotate(-5deg)}.brand small{font-size:.62rem;font-weight:650;letter-spacing:.18em;display:block;color:var(--muted);line-height:1.3}.nav{display:flex;align-items:center;gap:26px;font-size:.9rem;font-weight:600}.nav a{padding-block:10px}.nav .tag{padding:7px 12px;border:1px solid var(--line);border-radius:30px;color:var(--green);font-size:.75rem}.hero{padding-block:64px 44px;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:72px;align-items:center}.eyebrow{font-size:.74rem;letter-spacing:.13em;font-weight:750;color:var(--green);display:flex;align-items:center;gap:9px}.eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green)}h1,h2,h3,p{margin-block-start:0}h1{font-size:clamp(2.3rem,4.3vw,4rem);line-height:1.22;letter-spacing:-.04em;margin-block:18px 22px;font-weight:800}h1 span{color:var(--green)}.lead{color:var(--muted);font-size:1rem;max-width:590px;margin-block-end:25px}.search{display:flex;border:1px solid #bacfc1;border-radius:12px;background:white;padding:7px;gap:8px;box-shadow:0 4px 16px #163c2910}.search input{border:0;background:transparent;min-width:0;flex:1;padding:9px 12px;color:var(--ink);font-size:.94rem}.search button,.button{border:0;background:var(--green);color:white;border-radius:8px;padding:10px 23px;font-size:.9rem;font-weight:650;display:inline-flex;align-items:center;justify-content:center;gap:10px}.button:hover{background:var(--deep);color:white}.search-label{display:block;font-size:.85rem;font-weight:650;margin-block-end:7px}.search-hints{display:flex;gap:15px;flex-wrap:wrap;font-size:.8rem;color:var(--muted);margin-block-start:13px}.search-hints a{text-decoration:underline;text-underline-offset:4px}.hero-note{background:var(--mint);border-radius:24px;padding:30px 32px;position:relative}.note-top{display:flex;justify-content:space-between;align-items:center;border-block-end:1px solid #bed8c5;padding-block-end:16px;font-size:.8rem}.edition{letter-spacing:.14em;font-size:.66rem}.big-number{font-size:4.2rem;line-height:1.2;font-weight:750;letter-spacing:-.06em;margin-block:23px 8px}.big-number small{font-size:.88rem;letter-spacing:0;font-weight:500;margin-inline-start:12px}.note-title{font-size:1.14rem;font-weight:700;margin-block-end:10px}.note-copy{font-size:.87rem;color:#3d5e4e;margin:0}.note-bottom{display:flex;justify-content:space-between;align-items:center;margin-block-start:27px;font-size:.75rem;color:#3d5e4e}.star{color:var(--orange);font-size:1.7rem;line-height:1}.divider{border:0;border-block-start:1px solid var(--line);margin:0}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-block-end:20px}.section-heading h2{font-size:1.3rem;margin-block-end:3px;letter-spacing:-.02em}.section-heading p{font-size:.86rem;color:var(--muted);margin:0}.section-heading .small-link{font-size:.83rem;color:var(--green);white-space:nowrap}.featured{padding-block:30px 40px}.featured-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.featured-card{background:white;border:1px solid var(--line);border-radius:13px;padding:19px 16px;transition:border-color .15s,transform .15s}.featured-card:hover{border-color:var(--green);transform:translateY(-2px)}.monogram{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;color:var(--green);background:var(--mint);font-size:1.1rem;font-weight:750;flex:none}.featured-card:nth-child(3n) .monogram{background:#fbede2;color:#984127}.featured-card h3{font-size:.94rem;margin-block:12px 3px;line-height:1.5;overflow-wrap:anywhere}.featured-card p{font-size:.76rem;color:var(--muted);margin:0}.directory{display:grid;grid-template-columns:208px minmax(0,1fr);gap:36px;padding-block:36px 60px;align-items:start}.sidebar{position:sticky;inset-block-start:20px;max-height:calc(100vh - 40px);overflow:auto;scrollbar-width:thin}.sidebar-title{font-size:.72rem;letter-spacing:.1em;color:var(--muted);font-weight:700;margin:0 12px 14px}.category-nav{display:flex;flex-direction:column;gap:3px}.category-nav a{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.85rem;padding:9px 12px;border-radius:8px}.category-nav a[aria-current="location"]{background:var(--mint);color:var(--green);font-weight:700}.category-nav a:hover{background:#edf3ec}.category-nav .count{font-size:.74rem;color:var(--muted);font-variant-numeric:tabular-nums}.sidebar-note{border-block-start:1px solid var(--line);margin:20px 12px;padding-block-start:18px;font-size:.75rem;color:var(--muted)}.catalog-section{scroll-margin-block-start:24px;margin-block-end:32px}.catalog-heading{display:flex;align-items:center;gap:12px;margin-block-end:13px}.category-symbol{width:32px;height:32px;display:grid;place-items:center;border-radius:8px;background:var(--mint);font-size:.91rem;font-weight:700;color:var(--green)}.catalog-heading h2{font-size:1.07rem;margin:0;line-height:1.4}.catalog-heading p{font-size:.75rem;color:var(--muted);margin:0}.catalog-count{margin-inline-start:auto;font-size:.76rem;color:var(--muted)}.site-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:white}.site-card{padding:14px 16px;min-width:0;border-block-end:1px solid var(--line);border-inline-end:1px solid var(--line);display:flex;align-items:center;gap:12px}.site-card:hover{background:#f0f6ef}.site-text{min-width:0;flex:1}.site-card h3{font-size:.94rem;margin:0;font-weight:650;line-height:1.6;overflow-wrap:anywhere}.site-card p{margin:2px 0 0;font-size:.77rem;color:var(--muted);overflow-wrap:anywhere}.site-arrow{font-size:.85rem;color:#678775;flex:none}.status-line{font-size:.8rem;color:var(--muted);margin-block-end:22px;min-height:1.7em}.empty{border:1px dashed var(--line);padding:40px;text-align:center;border-radius:14px;background:white}.empty h2{font-size:1.3rem}.empty p{color:var(--muted)}.back-top{display:inline-flex;font-size:.82rem;align-items:center;padding:10px 0;color:var(--green)}footer{border-block-start:1px solid var(--line);padding-block:30px;background:#f1f5ee}.footer-inner{display:flex;justify-content:space-between;align-items:start;gap:30px}.footer-brand{font-size:1rem;font-weight:750;margin-block-end:7px}.footer-copy{font-size:.77rem;color:var(--muted);max-width:560px;margin:0}.footer-links{display:flex;gap:20px;font-size:.8rem;flex-wrap:wrap}.footer-meta{font-size:.72rem;color:var(--muted);margin-block-start:18px}.breadcrumb{display:flex;flex-wrap:wrap;gap:9px;font-size:.8rem;color:var(--muted);padding-block:24px}.breadcrumb a{text-decoration:underline;text-underline-offset:3px}.article-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:48px;padding-block:14px 60px;align-items:start}.article-title{font-size:clamp(2rem,3.5vw,3.2rem);overflow-wrap:anywhere;line-height:1.35;margin-block:12px 17px}.article-deck{font-size:1.09rem;color:var(--muted)}.article-body h2{font-size:1.28rem;margin-block:32px 14px}.article-body h3{font-size:1rem;margin-block:20px 7px}.article-body p,.article-body li{font-size:.98rem;line-height:1.95}.article-body ul,.article-body ol{padding-inline-start:24px}.article-body li{margin-block:9px}.article-body a:not(.button){color:var(--green);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}.domain{font-family:ui-monospace,Consolas,monospace;font-size:.85rem;overflow-wrap:anywhere}.article-sidebar{position:sticky;inset-block-start:24px}.visit-card{padding:25px;background:var(--mint);border-radius:16px;border:1px solid #c9dfce}.visit-card h2{font-size:1.1rem;margin-block-end:14px}.visit-card .button{width:100%;margin-block:18px 12px;white-space:normal;text-align:center}.visit-card p{font-size:.81rem;margin-block-end:0;color:#3d5e4e}.site-facts{margin:0}.site-facts div{border-block-end:1px solid #c9dfce;padding-block:12px}.site-facts dt{font-size:.73rem;color:#3d5e4e}.site-facts dd{margin:4px 0 0;font-size:.86rem;overflow-wrap:anywhere}.chips{display:flex;gap:7px;flex-wrap:wrap;margin-block:15px}.chip{background:#edf3e9;border-radius:6px;padding:4px 9px;font-size:.76rem;color:var(--green)}.source-box{border:1px solid var(--line);border-radius:12px;padding:20px;margin-block:28px;background:white}.source-box h2{margin-block-start:0}.source-box p{font-size:.85rem;margin-block-end:8px}.related{margin-block-start:25px}.related h2{font-size:1rem}.related a{display:block;border-block-end:1px solid var(--line);padding-block:12px;font-size:.9rem}.reading-nav{display:flex;flex-wrap:wrap;gap:8px 20px;border-block:1px solid var(--line);padding-block:14px;font-size:.85rem}.reading-nav a{color:var(--green)}.prose{max-width:850px;padding-block:18px 60px}.prose h1{font-size:2.7rem}.prose h2{font-size:1.3rem;margin-block:32px 12px}.prose p,.prose li{line-height:1.95}.prose a{color:var(--green);text-decoration:underline;overflow-wrap:anywhere}.notice{padding:15px 20px;background:#f9efe3;border-radius:10px;font-size:.85rem;color:#71452b;margin-block:22px}.result-form{max-width:680px;margin-block:20px 35px}body:has(.article-title) .topbar{background:white}
@media(min-width:1440px){.wrap{padding-inline:40px}}@media(max-width:1100px){.hero{gap:32px}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.directory{grid-template-columns:180px minmax(0,1fr);gap:24px}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.article-layout{grid-template-columns:minmax(0,1fr) 280px;gap:28px}}@media(max-width:780px){.wrap{padding-inline:24px}.hero{padding-block:40px 32px;gap:25px}.hero-note{padding:24px}.big-number{font-size:3.2rem}.directory{grid-template-columns:1fr;padding-block-start:22px}.sidebar{position:static;max-height:none;overflow:visible}.sidebar-title,.sidebar-note{display:none}.category-nav{flex-direction:row;flex-wrap:wrap;gap:7px}.category-nav a{border:1px solid var(--line);padding:7px 11px;background:white;font-size:.8rem}.category-nav .count{font-size:.69rem}.article-layout{grid-template-columns:1fr;gap:24px}.article-sidebar{position:static;order:-1}.visit-card{padding:20px}.site-facts{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.nav{gap:18px}.nav .tag{display:none}.footer-inner{flex-direction:column;gap:20px}}@media(max-width:560px){.wrap{padding-inline:18px}.header-inner{min-height:76px;gap:12px}.brand{font-size:1.02rem;gap:8px}.brand-mark{width:32px;height:32px;font-size:1.1rem}.nav{font-size:.76rem;gap:12px}.nav a:last-child{display:none}.hero{grid-template-columns:1fr;padding-block-start:30px;gap:23px}h1{font-size:2.55rem;margin-block:14px 17px}.lead{font-size:.94rem}.hero-note{padding:20px 24px;border-radius:16px}.note-top{padding-block-end:10px}.big-number{font-size:2.9rem;margin-block:14px 4px}.note-title{font-size:1rem}.note-copy{font-size:.8rem}.note-bottom{margin-block-start:15px}.featured{padding-block:24px}.featured-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.featured-card{padding:13px 10px}.featured-card h3{font-size:.8rem}.featured-card p{font-size:.68rem}.monogram{width:30px;height:30px;font-size:.9rem}.section-heading h2{font-size:1.15rem}.section-heading p{font-size:.76rem}.site-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-card{padding:12px 10px;gap:6px;align-items:start}.site-card h3{font-size:.86rem}.site-card p{font-size:.73rem}.catalog-heading p{font-size:.7rem}.catalog-heading h2{font-size:1rem}.catalog-count{font-size:.7rem}.search button{padding:9px 17px}.search input{padding:9px 8px;font-size:.86rem}.footer-links{gap:16px}.article-title{font-size:2.1rem}.article-deck{font-size:1rem}.site-facts{grid-template-columns:1fr}.prose h1{font-size:2rem}.reading-nav{font-size:.8rem}.empty{padding:28px 18px}}@media(max-width:350px){.brand small{letter-spacing:.1em}.nav{gap:7px}.site-grid{grid-template-columns:1fr}.featured-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:2.2rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media print{.nav,.sidebar,.search,.hero-note,.featured,footer,.article-sidebar,.back-top{display:none}.wrap{max-width:none;padding:0}.article-layout,.directory{display:block}.site-grid{grid-template-columns:repeat(3,1fr)}a{color:#000}.catalog-section{break-inside:avoid}body{background:white}}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hero>*,.article-layout>*,.brand,.brand>span:last-child{min-width:0}.brand-mark{flex:none}.eyebrow{overflow-wrap:anywhere}.section-heading{flex-wrap:wrap}
.article-body p,.article-body li,.prose p,.prose li,.chip{overflow-wrap:anywhere}.chip{max-width:100%}
.site-icon{position:relative;display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--mint);color:var(--green);font-weight:750;flex:none;overflow:hidden}.icon-initial{font-size:16px;line-height:1}.site-icon img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:white;border-radius:inherit;padding:2px}.featured-card .site-icon{width:38px;height:38px}.visit-card .site-icon{width:48px;height:48px;margin-block-end:12px}.site-card .site-icon{width:28px;height:28px}

/* Local Lucide category icons and larger navigation labels. */
.category-nav a{font-size:1.125rem;font-weight:600;gap:10px;min-height:50px;max-width:100%}.category-label{display:flex;align-items:center;gap:10px;min-width:0}.category-label>span{overflow-wrap:anywhere}.category-icon{width:1.375rem;height:1.375rem;flex:none;vertical-align:middle}.category-nav .count{font-size:.8125rem;flex:none;margin-inline-start:auto}.catalog-heading h2{font-size:1.15rem}.category-symbol .category-icon{width:1.5rem;height:1.5rem}.big-number small{display:block;margin-inline-start:0;margin-block-start:8px;line-height:1.6}
@media(max-width:780px){.category-nav a{font-size:1rem;min-height:44px;padding:8px 12px;gap:9px}.category-label{gap:8px}.category-nav .category-icon{width:1.15rem;height:1.15rem}.catalog-heading h2{font-size:1.1rem}}
@media(min-width:781px){.directory{grid-template-columns:228px minmax(0,1fr)}}

.featured-card{position:relative}.featured-rank{position:absolute;inset-block-start:14px;inset-inline-end:14px;font-size:.8rem;font-weight:650;color:var(--muted)}img.brand-mark{object-fit:contain;background:var(--green)}
.mobile-category-toggle{border:1px solid var(--line);background:white;color:var(--green);border-radius:8px;padding:8px 10px;white-space:nowrap;font-weight:650}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;padding-block:40px;align-items:center}.hero>div{width:100%;min-width:0}.hero h1{font-size:clamp(2.3rem,3.5vw,3.2rem);margin-block:0 16px}.hero .lead{margin:0}.hero-search .search-label{font-size:1rem;margin-block-end:10px}.hero-search .search{padding:8px}.hero-search .search-hints{margin-block-start:16px}
@media(max-width:780px){.hero{grid-template-columns:minmax(0,1fr);gap:24px;padding-block:30px}.hero h1{font-size:2.55rem}.hero-search .search-label{font-size:.9rem}}
@media(max-width:780px){
  .js .topbar:has(.mobile-category-toggle:not([hidden])){position:sticky;inset-block-start:0;z-index:30}
  .js .header-inner{min-height:76px}
  .js .nav:has(.mobile-category-toggle:not([hidden])) .desktop-category-link{display:none}
  .js .sidebar{display:none;position:fixed;inset-block-start:77px;inset-inline:12px;z-index:29;max-height:calc(100dvh - 89px);overflow:auto;background:var(--paper);border:1px solid var(--line);border-radius:0 0 14px 14px;padding:16px;box-shadow:0 12px 24px #18352f20}
  .js .sidebar.is-open{display:block}
  .js .category-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .js .category-nav a{padding:8px;min-width:0;font-size:.9rem}
  .js .category-label{gap:6px}
  .js .category-nav .count{font-size:.72rem}
  .js .catalog-section{scroll-margin-block-start:100px}
}
@media(max-width:350px){.js .category-nav{grid-template-columns:1fr}}

.hero-search{position:relative;inset-block-start:-8px}
.hk-featured{grid-template-columns:repeat(6,minmax(0,1fr))}@media(max-width:1100px){.hk-featured{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:560px){.hk-featured{grid-template-columns:repeat(2,minmax(0,1fr))}}

.mobile-back-top{display:none}@media(max-width:780px){.mobile-back-top{position:fixed;inset-inline-end:16px;inset-block-end:calc(18px + env(safe-area-inset-bottom,0px));z-index:25;width:44px;height:44px;display:grid;place-items:center;background:rgba(230,243,233,.65);color:var(--green);border:1px solid rgba(18,100,79,.12);border-radius:50%;box-shadow:0 2px 8px #18352f0d;font-size:1.4rem;line-height:1}.mobile-back-top:hover{background:rgba(230,243,233,.85);color:var(--deep)}}@media print{.mobile-back-top{display:none}}

/* Transparent email image, centred within a compact footer line. */
.footer-meta{display:flex;align-items:center;gap:12px}.footer-description{min-width:0;overflow-wrap:anywhere}.footer-contact{display:flex;align-items:center;flex:0 0 160px;width:160px;height:24px;overflow:hidden;background:transparent}.footer-contact img{display:block;width:100%;height:auto;flex-shrink:0}@media(max-width:560px){.footer-description{flex:1}.footer-contact{flex-basis:132px;width:132px}}

/* White school wordmarks need a dark tile to remain visible. */
.site-icon img.light-site-logo{background:#12644f;border-radius:8px}

.related a{display:flex;align-items:center;gap:10px}.related .site-icon{width:30px;height:30px;flex:none}.related-name{flex:1;min-width:0;overflow-wrap:anywhere}.related-arrow{flex:none;color:var(--muted)}
