:root{--ink:#102b36;--teal:#157f82;--paper:#f4efe5;--amber:#e9aa45;--muted:#52666c;--line:#102b362b;--serif:Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.7}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:var(--teal)}a:focus-visible,button:focus-visible{outline:3px solid var(--teal);outline-offset:5px}img{max-width:100%;height:auto;display:block}.skip{position:absolute;left:20px;top:-100px;padding:10px;background:var(--ink);color:white;z-index:5}.skip:focus{top:10px}.shell{width:min(1120px,calc(100% - 80px));margin-inline:auto}.masthead{display:flex;justify-content:space-between;align-items:center;gap:28px;border-bottom:1px solid var(--line);padding:30px 0 26px;font-family:var(--sans)}.wordmark{font-size:23px;font-weight:700;letter-spacing:1px;text-decoration:none;line-height:1.2;white-space:nowrap}.wordmark span{font-weight:400}.masthead nav{display:flex;gap:28px;font-size:15px}.masthead nav a{text-decoration:none}.masthead nav a[aria-current=page]{border-bottom:2px solid var(--teal);padding-bottom:3px}.intro{display:grid;grid-template-columns:1.6fr 1fr;gap:72px;padding:55px 0 43px;align-items:end}.eyebrow,.meta,.kicker{font-family:var(--sans);font-size:13px;letter-spacing:1.5px;text-transform:uppercase}.eyebrow{color:var(--teal);font-weight:700;margin:0 0 17px}h1,h2,h3{font-weight:400;line-height:1.12;margin:0}h1{font-size:clamp(42px,5vw,66px);letter-spacing:-2px}h2{font-size:34px;letter-spacing:-.8px}h3{font-size:27px;letter-spacing:-.5px}.intro p{font-size:19px;line-height:1.65;margin:0}.intro .location{font:13px var(--sans);color:var(--muted);margin:15px 0 0}.river{width:100%;height:212px;object-fit:cover;object-position:50% 55%;margin-bottom:48px}.journal-layout{display:grid;grid-template-columns:minmax(0,1fr) 238px;gap:76px}.section-label{font:700 13px var(--sans);letter-spacing:1.6px;text-transform:uppercase;margin:0 0 24px;color:var(--teal)}.post-preview{border-top:1px solid var(--line);padding:28px 0 30px}.post-preview:first-of-type{border-top:0;padding-top:0}.meta{color:var(--muted);font-size:12px;letter-spacing:.9px;margin-bottom:12px}.post-preview h2{font-size:34px;margin-bottom:14px}.post-preview h2 a{text-decoration:none}.post-preview p{margin:0 0 15px;font-size:18px;line-height:1.65}.read-link{font:14px var(--sans);color:var(--teal);font-weight:bold}.about-aside{padding-top:41px}.avatar{width:112px;height:112px;border-radius:50%;object-fit:cover;margin-bottom:20px}.about-aside h2{font-size:28px;margin-bottom:14px}.about-aside p{font-size:17px;line-height:1.7}.aside-note{margin-top:35px;padding-top:24px;border-top:1px solid var(--line)}.aside-note h3{font-size:22px}.site-footer{border-top:1px solid var(--line);margin-top:62px;padding:24px 0 34px;display:flex;justify-content:space-between;gap:24px;font:13px/1.6 var(--sans);color:var(--muted)}.site-footer p{margin:0}.article-wrap{max-width:740px;margin:55px auto 0}.back{display:inline-block;font:14px var(--sans);margin-bottom:35px;color:var(--teal)}.article-head h1{font-size:clamp(40px,4.4vw,56px);letter-spacing:-1.6px;line-height:1.12;margin-bottom:24px}.deck{font-size:23px;line-height:1.5;color:#405b65;margin:0 0 24px}.byline{display:flex;gap:12px;align-items:center;font:13px/1.5 var(--sans);color:var(--muted);padding-bottom:30px;border-bottom:1px solid var(--line);margin-bottom:33px}.byline img{width:38px;height:38px;border-radius:50%}.prose p{margin:0 0 24px;font-size:20px;line-height:1.78}.prose h2{font-size:29px;line-height:1.3;margin:40px 0 20px}.prose ul{padding-left:24px}.prose li{margin-bottom:12px}.prose .note{font:15px/1.7 var(--sans);color:var(--muted)}.prose table{width:100%;border-collapse:collapse;font:16px/1.5 var(--sans);margin:30px 0}.prose th,.prose td{border-bottom:1px solid var(--line);padding:13px 10px;text-align:left}.prose th{background:#102b3609}.related{margin-top:45px;padding:27px 0;border-top:1px solid var(--line);font-family:var(--sans)}.related p{font-size:13px;color:var(--muted);margin:0 0 10px}.related a{font-size:17px}.about-header{display:grid;grid-template-columns:1fr 170px;gap:40px;align-items:center;margin-bottom:38px}.about-header img{width:170px;border-radius:50%}.portrait-label{font:12px/1.5 var(--sans);color:var(--muted);margin-top:10px;text-align:center}.project{padding:32px 0;border-top:1px solid var(--line)}.project h2{font-size:31px;margin:0 0 20px}.project p{font-size:19px}.download{display:inline-block;padding:12px 18px;border:1px solid var(--teal);color:var(--teal);text-decoration:none;font:15px/1.3 var(--sans);border-radius:3px;margin:5px 0 18px}.download:hover{background:var(--teal);color:white}.project .status{font:13px var(--sans);color:var(--muted);margin:0 0 16px}.source-list{font:14px/1.7 var(--sans);border-top:1px solid var(--line);padding-top:22px;margin-top:35px}.source-list a{overflow-wrap:anywhere}.not-found{text-align:center;padding:70px 0}@media(max-width:800px){.shell{width:calc(100% - 40px)}.masthead{align-items:start;gap:22px;flex-direction:column;padding:24px 0 20px}.masthead nav{gap:23px}.intro{grid-template-columns:1fr;gap:24px;padding:35px 0 30px}.intro h1{max-width:650px}.intro p{max-width:600px}.river{height:170px;margin-bottom:34px}.journal-layout{grid-template-columns:1fr;gap:15px}.about-aside{padding:26px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:90px 1fr;gap:20px}.about-aside .avatar{width:90px;height:90px}.about-aside .aside-note{grid-column:2;margin-top:5px}.about-aside p{margin-top:8px}.post-preview h2{font-size:31px}.article-wrap{margin-top:32px}.article-head h1{font-size:43px}.prose p{font-size:19px}.deck{font-size:21px}.about-header{grid-template-columns:1fr 115px;gap:20px}.about-header img{width:115px}.site-footer{flex-direction:column;gap:8px;margin-top:45px}}@media(max-width:440px){.masthead nav{font-size:14px;gap:20px}.intro h1{font-size:43px}.article-head h1{font-size:38px;letter-spacing:-1px}.about-header{grid-template-columns:1fr}.about-header figure{margin:0}.about-header img{width:115px}.portrait-label{text-align:left}.post-preview h2{font-size:29px}.article-wrap{width:100%}.river{height:145px}}

.intro .intro-followup{margin-top:16px;font-size:17px;line-height:1.6;color:var(--muted)}

/* Journal-only concert strip. Space is measured again after fonts/layout settle. */
.has-concert-rail{padding-bottom:var(--concert-rail-space,180px)}
html{scroll-padding-bottom:var(--concert-rail-space,0px)}
.concert-rail{position:fixed;inset:auto 0 0;z-index:20;background:var(--ink);color:var(--paper);font-family:var(--sans);border-top:3px solid var(--amber);box-shadow:0 -8px 30px #102b361c;padding:10px 0 calc(10px + env(safe-area-inset-bottom))}
.concert-rail-head{max-width:1120px;width:calc(100% - 40px);margin:0 auto 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.concert-heading-group{display:flex;align-items:baseline;gap:18px;min-width:0}
.concert-rail h2{font:23px/1.2 var(--serif);letter-spacing:-.3px;white-space:nowrap}
.concert-checked{font-size:11px;line-height:1.3;color:#b7c8cb;margin:0}
.concert-controls{display:flex;align-items:center;gap:5px;flex-shrink:0}
.concert-controls[hidden]{display:none}
.concert-controls button{font:12px/1 var(--sans);min-width:36px;min-height:32px;padding:7px 10px;border:1px solid #ffffff45;border-radius:3px;background:transparent;color:var(--paper);cursor:pointer}
.concert-controls button:first-child{min-width:55px}
.concert-controls button:hover{background:#ffffff16}
.concert-rail :focus-visible{outline:2px solid var(--amber);outline-offset:-2px}
.concert-track{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;padding:2px max(20px,calc((100vw - 1120px)/2)) 8px;scrollbar-width:thin;scrollbar-color:#698188 transparent;-webkit-overflow-scrolling:touch}
.concert-track::-webkit-scrollbar{height:4px}
.concert-track::-webkit-scrollbar-thumb{background:#698188;border-radius:3px}
.concert-card{display:flex;align-items:center;gap:12px;flex:0 0 310px;min-width:0;min-height:84px;padding:8px 10px;background:#ffffff08;border:1px solid #ffffff25;border-radius:4px;color:var(--paper);text-decoration:none;line-height:1.25}
.concert-card:hover{color:var(--paper);background:#ffffff12;border-color:#e9aa45aa}
.concert-card img{width:64px;height:64px;flex-shrink:0;object-fit:cover;border-radius:2px;background:#f4efe5}
.concert-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.concert-venue{font-size:10px;line-height:1.2;letter-spacing:.25px;color:#b7c8cb}
.concert-title{font-size:14px;line-height:1.2;font-weight:700}
.concert-date{font-size:11px;line-height:1.2;color:var(--amber)}
@media(max-width:650px){.concert-rail-head{width:calc(100% - 24px);margin-bottom:6px}.concert-rail h2{font-size:21px;white-space:normal}.concert-checked{display:none}.concert-track{padding-inline:12px}.concert-card{flex-basis:286px;gap:10px}.concert-controls button{min-height:36px}.concert-rail{padding-top:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
