@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
:root{--deep:#071f2b;--navy:#0b3447;--blue:#145a73;--river:#4f8ea0;--lake:#8bb9c2;--pine:#244f46;--moss:#557565;--fog:#dce9e7;--snow:#f2f7f6;--line:#8eaaa8;--ink:#092633;--muted:#47666c;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:17px/1.65 'IBM Plex Sans',sans-serif;background:linear-gradient(rgba(226,239,237,.88),rgba(242,247,246,.94)),url('/assets/penobscot-river-wide-2010.jpg') center top/cover fixed no-repeat}a{color:inherit}img{display:block;max-width:100%;height:auto}.shell{max-width:var(--max);margin:auto;padding-left:32px;padding-right:32px}
.site-header{position:sticky;top:0;z-index:30;background:rgba(7,31,43,.96);color:#eef7f5;border-bottom:1px solid rgba(220,233,231,.24);backdrop-filter:blur(12px)}.header-inner{max-width:var(--max);margin:auto;padding:18px 32px;display:flex;justify-content:space-between;align-items:center;gap:28px}.brand{font-family:Fraunces,Georgia,serif;font-size:26px;font-weight:500;text-decoration:none;white-space:nowrap}.nav{display:flex;gap:22px;overflow:auto}.nav a,.eyebrow,.caption,.footer-links,.pub-date{font:500 12px/1.45 'IBM Plex Sans',sans-serif;letter-spacing:.075em;text-transform:uppercase;text-decoration:none}.nav a{white-space:nowrap}.nav a:hover,.nav a[aria-current=page]{color:var(--lake)}
.hero{max-width:var(--max);margin:38px auto 54px;padding:34px 32px 52px;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(330px,.92fr);gap:72px;align-items:center;background:rgba(242,247,246,.88);backdrop-filter:blur(4px)}.hero-photo{margin:0;position:relative}.hero-photo:after{content:'';position:absolute;inset:18px -18px -18px 18px;border:1px solid var(--river);z-index:-1}.hero-photo img{width:100%;max-height:720px;object-fit:contain;object-position:center;background:var(--fog)}.caption{color:var(--muted);margin-top:10px;text-transform:none;letter-spacing:.025em}.hero-copy h1,.page-head h1,.directory-row h2,.chapter h2,.photo-essay h2,.cv-group h2{font-family:Fraunces,Georgia,serif}.hero-copy h1{font-size:clamp(68px,7.4vw,114px);font-weight:500;letter-spacing:-.05em;line-height:.82;margin:15px 0 30px;color:var(--deep)}.hero-copy .lede{font:400 24px/1.45 'IBM Plex Sans',sans-serif;max-width:29ch;margin:0}.eyebrow{color:var(--pine);font-weight:600}
.intro{background:linear-gradient(120deg,rgba(7,31,43,.98),rgba(11,52,71,.96) 60%,rgba(36,79,70,.96));color:#f3f8f7;position:relative;overflow:hidden}.intro:after{content:'';position:absolute;width:460px;height:460px;border:1px solid rgba(139,185,194,.22);border-radius:50%;right:-130px;top:-250px}.intro .shell{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:260px 1fr;gap:55px}.intro .eyebrow{color:var(--lake)}.intro p{font-family:Fraunces,Georgia,serif;font-size:28px;line-height:1.45;max-width:800px;margin:0}
.directory{padding-top:82px;padding-bottom:82px;background:rgba(242,247,246,.9)}.directory-row{display:grid;grid-template-columns:230px 1fr auto;gap:30px;align-items:baseline;border-top:1px solid var(--line);padding:30px 0;text-decoration:none}.directory-row:last-child{border-bottom:1px solid var(--line)}.directory-row h2{font-size:40px;font-weight:500;margin:0;line-height:1;color:var(--deep)}.directory-row p{color:var(--muted);margin:4px 0 0;max-width:55ch}.directory-row .arrow{font-size:28px;color:var(--blue)}.directory-row:hover h2{color:var(--blue)}
.photo-essay{padding:70px 32px 82px;background:rgba(242,247,246,.92)}.photo-essay h2{font-size:52px;font-weight:500;margin:0 0 30px}.photo-grid,.archive-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:start}.photo-grid figure,.archive-grid figure{margin:0}.photo-grid img,.archive-grid img{width:100%;object-fit:cover;background:var(--fog)}.photo-grid .small{max-width:520px;justify-self:end}.archive-grid{margin:30px 0}.archive-grid img{height:360px}.archive-grid figure:nth-child(2) img{height:280px}
.page-head{margin-top:34px;padding:70px 32px 54px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:260px 1fr;gap:55px;background:rgba(242,247,246,.92)}.page-head h1{font-size:clamp(60px,7vw,100px);font-weight:500;line-height:.9;letter-spacing:-.04em;margin:0;color:var(--deep)}.page-head p{font-size:23px;max-width:38ch;margin:12px 0 0;color:var(--muted)}
main.shell{background:rgba(242,247,246,.92);padding-bottom:1px}.chapter{display:grid;grid-template-columns:260px 1fr;gap:55px;padding:62px 0;border-bottom:1px solid var(--line)}.chapter h2{font-size:36px;font-weight:500;line-height:1.08;margin:7px 0;color:var(--deep)}.chapter-body{max-width:800px}.chapter-body>p:first-child{margin-top:0}.chapter figure{margin:0 0 30px}.chapter figure img{max-height:620px;width:100%;object-fit:cover;object-position:center;background:var(--fog)}.links{margin-top:26px}.button{display:inline-block;margin:5px 8px 5px 0;padding:11px 15px;border:1px solid var(--blue);color:var(--blue);text-decoration:none;font:600 11px 'IBM Plex Sans',sans-serif;text-transform:uppercase;letter-spacing:.07em}.button:hover{background:var(--blue);color:white}
.publication{display:grid;grid-template-columns:110px 1fr 24px;gap:18px;padding:18px 0;border-top:1px solid var(--line);text-decoration:none}.publication:last-child{border-bottom:1px solid var(--line)}.publication strong{font-family:Fraunces,Georgia,serif;font-size:21px;font-weight:500;line-height:1.3}.publication:hover strong{color:var(--blue)}.pub-date{color:var(--muted)}
.cv-group{display:grid;grid-template-columns:260px 1fr;gap:55px;padding:42px 0;border-top:1px solid var(--line)}.cv-group h2{font-size:30px;font-weight:500;margin:0;color:var(--deep)}.cv-item{margin:0 0 28px}.cv-item h3{font-family:Fraunces,Georgia,serif;font-size:22px;font-weight:500;margin:0}.cv-item p{margin:4px 0;color:var(--muted)}
.footer{margin-top:82px;background:var(--deep);color:#edf6f4;border-top:4px solid var(--river)}.footer .shell{padding-top:36px;padding-bottom:48px;display:flex;justify-content:space-between;gap:30px}.footer .caption{color:var(--lake)}.footer-links{display:flex;gap:18px;flex-wrap:wrap}.footer-links a{text-decoration:none}.footer-links a:hover{color:var(--lake)}
::selection{background:var(--lake);color:var(--deep)}
@media(max-width:820px){body{background-attachment:scroll}.header-inner{display:block}.nav{margin-top:12px;padding-bottom:3px}.hero,.page-head,.chapter,.intro .shell,.cv-group{grid-template-columns:1fr}.hero{gap:38px;padding-top:40px}.hero-photo{order:2}.hero-copy h1{font-size:66px}.directory-row{grid-template-columns:1fr auto}.directory-row .eyebrow{grid-column:1/-1}.directory-row p{grid-column:1/2}.photo-grid,.archive-grid{grid-template-columns:1fr}.photo-grid .small{justify-self:start}.archive-grid img,.archive-grid figure:nth-child(2) img{height:auto}.footer .shell{display:block}.footer-links{margin-top:20px}}
.book-cover{max-width:430px;margin:0 auto 42px!important}.book-cover img{width:100%;max-height:none!important;object-fit:contain!important;box-shadow:0 18px 45px rgba(7,31,43,.22)}

.tcc-logo{max-width:300px;margin:0 auto 36px}.tcc-logo img{width:100%;height:auto;object-fit:contain}

.dnd-logo{max-width:180px;margin:0 0 28px}.dnd-logo img{width:100%;height:auto;object-fit:contain}

.section-intro{max-width:760px;font-size:1.08rem;line-height:1.75;margin:18px 0 34px}.maine-gallery{columns:3 260px;column-gap:18px;margin-top:30px}.maine-gallery figure{break-inside:avoid;margin:0 0 18px}.maine-gallery img{display:block;width:100%;height:auto}
@media(max-width:700px){.maine-gallery{columns:2 140px;column-gap:10px}.maine-gallery figure{margin-bottom:10px}}

.fiber-gallery{columns:3 180px;column-gap:14px;margin-bottom:28px}.fiber-gallery figure{break-inside:avoid;margin:0 0 14px}.fiber-gallery img{display:block;width:100%;height:auto}@media(max-width:700px){.fiber-gallery{columns:2 130px;column-gap:10px}.fiber-gallery figure{margin-bottom:10px}}

.spotify-player{display:block;width:100%;max-width:760px;border:0;border-radius:12px;background:transparent}
.podcast-feature .chapter-body{min-width:0}

.podcast-feature{padding:72px 0;border-bottom:1px solid var(--line)}
.podcast-feature h2{font-family:Fraunces,Georgia,serif;font-size:clamp(38px,5vw,64px);font-weight:500;line-height:1.05;margin:10px 0 30px;color:var(--ink)}
.podcast-feature .spotify-player{display:block;width:100%;max-width:none;height:352px;border:0;border-radius:12px;background:#121212}
