@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f6f3eb;--ink:#202c32;--blue:#234c60;--muted:#68716e;--line:#d8dbd1}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}a{color:inherit}header,footer{max-width:1280px;margin:auto;padding:28px 6%;display:flex;align-items:center;justify-content:space-between;gap:24px}header{border-bottom:1px solid var(--line)}.brand{text-decoration:none;font-size:23px;font-weight:700;letter-spacing:-1px}.brand span{color:var(--blue)}nav{display:flex;gap:28px;font-size:13px}nav a{text-decoration:none}nav a:hover{text-decoration:underline}.wrap{max-width:1280px;margin:auto;padding:0 6%}.eyebrow{text-transform:uppercase;letter-spacing:2.5px;font-size:11px;font-weight:700;color:var(--blue)}h1,h2,h3,.quote{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}h1{font-size:clamp(58px,8vw,108px);line-height:.99;letter-spacing:-2px;margin:24px 0}h2{font-size:44px;line-height:1.1}p{line-height:1.85}.intro{padding:85px 0 65px;max-width:820px}.intro p{max-width:470px;color:var(--muted);font-size:17px}.feature{display:grid;grid-template-columns:1.1fr 1fr;background:#e8ece4;margin:0 0 70px}.art{min-height:410px;background:#234c60;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.art:before,.art:after{content:'';position:absolute;width:430px;height:430px;border:1px solid #91a8a1;border-radius:50%;opacity:.5}.art:after{width:330px;height:330px}.art .number{font-family:Georgia,serif;font-size:170px;color:#e4e7d6;line-height:1}.art small{position:absolute;bottom:35px;left:35px;color:#d1dbd3;letter-spacing:3px;font-size:10px}.feature-copy{padding:50px;align-self:center}.feature h2{margin:18px 0 22px}.feature p{font-size:14px;color:#566360}.button{display:inline-block;margin-top:18px;padding:14px 20px;background:var(--blue);color:white;text-decoration:none;font-size:13px}.about{display:grid;grid-template-columns:1fr 1.4fr;gap:60px;border-top:1px solid var(--line);padding:45px 0 65px}.about h2{margin:0}.about p{margin-top:0;max-width:580px;color:var(--muted)}footer{border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.article-head{max-width:960px;margin:70px auto 45px}.article-head h1{font-size:clamp(48px,7vw,82px);line-height:1.06}.meta{font-size:12px;color:var(--muted);margin-top:25px}.article-layout{display:grid;grid-template-columns:190px minmax(0,700px);gap:65px;max-width:1040px;margin:55px auto 80px}.contents{font-size:12px;position:sticky;top:30px;align-self:start}.contents a{display:block;text-decoration:none;color:var(--muted);margin:14px 0;line-height:1.5}.story p{font-family:Georgia,serif;font-size:18px;line-height:1.9;margin:0 0 23px}.story h2{font-size:35px;margin:50px 0 20px}.story .lead{font-size:23px;line-height:1.65}.quote{font-size:35px;line-height:1.35;border-left:2px solid #9d7b48;padding:10px 0 10px 25px;margin:40px 0}.gallery{background:#e8ece4;padding:30px;margin-top:45px}.gallery h2{margin-top:0}.gallery p{font-family:'DM Sans',sans-serif;font-size:14px}.back{font-size:12px;color:var(--blue);text-decoration:none}.article-banner{height:180px;min-height:180px}.article-banner .number{font-size:100px}.article-banner:before{width:290px;height:290px}.article-banner:after{width:240px;height:240px}a:focus-visible{outline:3px solid #b28743;outline-offset:5px}@media(max-width:760px){header,footer{padding:24px 6%}nav{gap:18px}.intro{padding:55px 0 35px}.feature,.about,.article-layout{grid-template-columns:1fr}.art{min-height:300px}.feature-copy{padding:30px}.feature h2{font-size:38px}.about{gap:20px}.contents{display:none}.article-layout{margin-top:35px}.article-head{margin-top:45px}.story p{font-size:17px}.article-banner{min-height:140px;height:140px}footer{align-items:start;flex-direction:column;gap:12px}.quote{font-size:29px}}
.feature-photo{display:block;min-height:410px}.feature-photo img{display:block;width:100%;height:100%;min-height:410px;object-fit:cover}.article-cover{margin:0 auto;max-width:1040px}.article-cover img{width:100%;max-height:520px;object-fit:cover;display:block}figcaption{font-size:12px;line-height:1.6;color:var(--muted);margin-top:10px}.story-photo{margin:35px 0}.story-photo img,.story-photo video{display:block;width:100%;height:auto;border-radius:2px}.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.photo-grid img{display:block;width:100%;height:150px;object-fit:cover}.gallery{padding:24px}dialog{border:0;background:var(--paper);padding:24px;max-width:min(95vw,1100px);max-height:95vh}dialog::backdrop{background:#101c24e8}dialog>img{display:block;max-width:100%;max-height:70vh;margin:auto;object-fit:contain}dialog p{font-size:13px;text-align:center}.viewer-close{display:block;margin:0 0 12px auto;font-size:28px;background:none;border:0;cursor:pointer}.viewer-actions{display:flex;justify-content:space-between;gap:16px;align-items:center}.viewer-actions button{background:var(--blue);color:white;border:0;padding:10px;cursor:pointer}.viewer-actions a{font-size:13px}@media(max-width:760px){.feature-photo,.feature-photo img{min-height:0;height:auto}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-grid img{height:130px}.viewer-actions{gap:8px}.viewer-actions button{font-size:11px}}

.article-shortcuts{display:flex;flex-wrap:wrap;gap:20px;margin-top:22px;font-size:12px;color:var(--blue)}

/* Saint John’s article colors; the homepage retains its original palette. */
body.reunion-theme{--paper:#0d0d0d;--ink:#f7f5f1;--blue:#ff9b45;--muted:#bdb8b1;--line:#35312d;background:var(--paper);color:var(--ink)}
.reunion-theme a{color:var(--blue)}
.reunion-theme .brand{color:var(--ink)}
.reunion-theme nav a{color:var(--blue)}
.reunion-theme nav a:hover{color:var(--blue)}
.reunion-theme .gallery{background:#191714;border:1px solid var(--line)}
.reunion-theme .quote{border-color:var(--blue)}
.reunion-theme .contents a{color:var(--blue)}
.reunion-theme .contents a:hover{color:var(--blue)}
.reunion-theme .viewer-close{color:var(--ink)}
.reunion-theme .viewer-actions button{background:var(--blue);color:#0d0d0d}
.reunion-theme a:focus-visible,.reunion-theme button:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.reunion-theme video{background:#000}

/* Larger media links and controls for comfortable reading and selection. */
.reunion-theme .article-shortcuts{gap:12px 24px;font-size:18px;font-weight:700;line-height:1.5}
.reunion-theme .article-shortcuts a{display:inline-flex;align-items:center;min-height:48px;text-decoration:underline;text-underline-offset:4px}
.reunion-theme .story-photo figcaption{font-size:16px;line-height:1.7}
.reunion-theme .story-photo figcaption a{display:inline-flex;align-items:center;min-height:48px;padding:4px 8px;font-size:18px;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.reunion-theme .gallery>p{font-size:17px;line-height:1.8}
.reunion-theme .viewer-actions{flex-wrap:wrap;justify-content:center;gap:12px 20px}
.reunion-theme .viewer-actions a,.reunion-theme .viewer-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 16px;font-size:18px;font-weight:700;line-height:1.4}
.reunion-theme .viewer-actions a{text-decoration:underline;text-underline-offset:4px}
.reunion-theme dialog p{font-size:17px;line-height:1.6}
.reunion-theme .viewer-close{min-width:48px;min-height:48px;font-size:36px}
