:root { color-scheme: light; --background:#d4d4d0; --foreground:#262623; --paper:#fff; --muted:#5a5a53; --accent:#7d2024; --link:#173f91; --border:#95958c; }
* { box-sizing:border-box; }
html { scroll-padding-top:1rem; }
body { margin:0; background:var(--background); color:var(--foreground); font-family:Arial,Helvetica,sans-serif; font-size:16px; line-height:1.5; }
a { color:var(--link); text-decoration:underline; text-underline-offset:3px; }
a:visited { color:#633881; }
a:hover { color:var(--accent); text-decoration-thickness:2px; }
a:focus-visible { outline:3px solid #ad390a; outline-offset:4px; }
.site { width:calc(100% - 48px); max-width:1080px; margin:28px auto; border:1px solid #88887e; background:#f6f6f1; box-shadow:4px 4px 0 #aaa9a1; }
.topline { display:flex; justify-content:space-between; gap:12px; padding:7px 22px; background:#e7e7df; border-bottom:1px solid var(--border); font:12px/1.5 'Courier New',monospace; letter-spacing:.04em; }
.masthead { padding:24px 30px 25px; text-align:center; background:#fff; border-top:5px solid var(--accent); }
.eyebrow { margin:0 0 5px; font:bold 14px/1.5 'Courier New',monospace; letter-spacing:.12em; }
h1 { font:bold clamp(2.4rem,5.5vw,3.9rem)/1.07 Georgia,'Times New Roman',serif; letter-spacing:-.035em; color:var(--accent); margin:0; }
h1 span { color:#2e2e27; }
.masthead > p:last-child { margin:12px 0 0; font-family:'Times New Roman',serif; font-size:19px; }
.navigation { display:flex; align-items:stretch; flex-wrap:wrap; gap:6px; padding:8px 15px; border-block:1px solid #8f8f85; background:#dcdcd5; }
.navigation a { min-width:92px; padding:5px 17px; text-align:center; border:2px outset #fafaf6; background:#ebebe6; font-size:15px; color:#292923; }
.navigation a.active { background:#fafaf6; border-style:inset; font-weight:bold; }
.navigation > span { margin:auto 3px auto auto; font:12px/1.5 'Courier New',monospace; }
.board-label { display:flex; justify-content:space-between; gap:10px; margin:22px 24px 0; padding-bottom:7px; border-bottom:3px double #77776a; font:14px/1.5 'Courier New',monospace; }
.board { display:grid; grid-template-columns:minmax(0,1fr) 240px; align-items:start; gap:24px; padding:20px 24px 30px; }
.news-column { min-width:0; }
.pinned { background:#fff4bd; border:1px solid #a39b6e; border-top:4px solid var(--accent); padding:18px 22px; box-shadow:2px 3px 0 #d3d0bb; }
.notice-meta { display:flex; justify-content:space-between; gap:12px; font:13px/1.5 'Courier New',monospace; color:#703023; }
.notice-meta strong { text-decoration:underline; text-underline-offset:4px; }
.pinned h2 { font:bold 29px/1.14 Georgia,'Times New Roman',serif; margin:14px 0; }
.pinned h2 a { color:#742429; }
.pinned p { margin:12px 0; }
.notice-detail { padding-top:10px; border-top:1px dashed #aca079; }
.article-bottom { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; font-size:14px; margin-top:18px; }
.article-bottom > span { color:var(--muted); }
.article-bottom a { font-weight:bold; }
.section-heading { margin:29px 0 12px; border-bottom:1px solid #88887c; padding-bottom:7px; }
.section-heading h2 { margin:0; font:bold 20px/1.3 'Times New Roman',serif; }
.section-heading span { font-size:12px; color:var(--muted); }
.articles { display:grid; gap:14px; }
.article { background:var(--paper); border:1px solid #aeaea3; padding:17px 20px; }
.article-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 12px; font:12px/1.4 'Courier New',monospace; color:var(--muted); }
.article-meta span { color:#75402d; }
.article h3 { font:bold 23px/1.18 'Times New Roman',serif; margin:12px 0 10px; }
.article p { margin:0; }
.side-box { border:1px solid #929285; margin-bottom:20px; background:#fff; }
.side-box h2 { margin:0; padding:7px 13px; font:bold 18px/1.4 'Times New Roman',serif; background:#e3e3d9; border-bottom:1px solid #929285; }
.side-body { padding:4px 14px 17px; }
.side-body p { margin:12px 0; }
.side-intro { font:19px/1.4 'Times New Roman',serif; }
.side-intro strong { color:var(--accent); }
.side-body h3 { font-size:16px; margin:20px 0 0; text-decoration:underline; text-underline-offset:3px; }
.side-body h3 + p { margin-top:5px; }
.side-body a { font-size:14px; }
.side-body .small-note { font-size:13px; color:#5e5e54; border-top:1px dotted #96968a; padding-top:12px; }
.dates dl { margin:0; }
.dates dl > div { padding-top:14px; }
.dates dt { font:bold 14px/1.4 'Courier New',monospace; color:var(--accent); }
.dates dd { font-size:14px; margin:4px 0 0; }
.margin-note { padding:9px 15px 15px; text-align:center; color:#3c4837; }
.margin-note strong { display:block; font:italic bold 26px/1.2 Georgia,serif; transform:rotate(-3deg); }
.margin-note p { font:italic 17px/1.4 'Times New Roman',serif; }
footer { position:relative; background:#e7e7df; border-top:3px double #898980; padding:18px 24px; font-size:13px; }
footer p { margin:0 100px 4px 0; }
footer > .back-to-top { position:absolute; right:24px; top:20px; }
.footer-divider { margin-inline:6px; }
.skip { position:absolute; top:-100px; left:20px; padding:12px; background:#fff; z-index:10; }
.skip:focus { top:10px; }
@media(max-width:760px) {
 .site { width:calc(100% - 20px); margin:10px auto; }
 .topline { padding:7px 12px; flex-wrap:wrap; font-size:12px; }
 .masthead { padding:22px 12px; }
 .eyebrow { font-size:12px; }
 .navigation { padding:8px; }
 .navigation a { min-width:0; flex:1; }
 .navigation > span { flex-basis:100%; text-align:right; margin:3px 2px 0; }
 .board-label { margin:18px 14px 0; font-size:12px; }
 .board { grid-template-columns:minmax(0,1fr); padding:16px 14px 24px; gap:22px; }
 .pinned { padding:16px; }
 .pinned h2 { font-size:27px; }
 .article { padding:16px; }
 aside { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
 .side-box { margin:0; }
 .margin-note { grid-column:1/-1; }
 footer { padding:16px; }
 footer p { margin-right:0; }
 footer > .back-to-top { position:static; display:inline-block; margin-top:10px; }
}
@media(max-width:420px) { aside { grid-template-columns:1fr; } .notice-meta { flex-wrap:wrap; } .board-label span { white-space:nowrap; } }
@media print { body { background:white; } .site { width:100%; border:0; box-shadow:none; margin:0; } .navigation, .skip, footer > a { display:none; } .board { display:block; } aside { display:none; } .article,.pinned { break-inside:avoid; box-shadow:none; } }

footer > .sign-in { display:inline-block; margin-top:8px; padding:4px 0; font-size:14px; color:var(--muted); }
footer > .sign-in:hover { color:var(--accent); }
