/* Shared rhythm: compact openings, distinct page compositions. */
:root{--forest-day:url('/assets/forest-day.png');--forest-night:url('/assets/forest-night.png')}
body{font-size:16px}.wrap{width:min(1120px,calc(100% - 96px))}.site-header{height:82px}.wordmark{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap;letter-spacing:0;font-size:23px}.wordmark i{font-size:20px;font-family:Georgia,serif;font-weight:400}.nav-right{gap:26px}nav{gap:30px}.page-main{padding-bottom:35px}.page-heading{padding:32px 0 32px}.page-heading h1{font-size:clamp(32px,3.2vw,44px);margin-top:13px}.lede{font-size:16px;margin-top:15px}.eyebrow{font-size:11px;letter-spacing:.14em}.site-footer{padding-top:24px;padding-bottom:26px}.site-footer .wordmark{font-size:18px}.site-footer .wordmark i{font-size:17px}.site-footer p{font-family:Georgia,serif;font-size:13px;letter-spacing:.025em}.home .site-header{color:var(--ink)}
.home-opening{position:relative;isolation:isolate;min-height:365px;display:flex;align-items:center;overflow:hidden;margin-top:4px;background:#edf2e9}.opening-landscape{position:absolute;inset:0;z-index:-1}.opening-landscape:before,.opening-landscape:after{content:'';position:absolute;inset:0;background-position:center 56%;background-size:cover;transition:opacity .65s}.opening-landscape:before{background-image:linear-gradient(90deg,rgba(246,250,241,.9),rgba(246,250,241,.45) 42%,transparent 75%),var(--forest-day)}.opening-landscape:after{background-image:linear-gradient(90deg,rgba(15,30,40,.93),rgba(15,30,40,.45) 44%,transparent 78%),var(--forest-night);opacity:0}html[data-theme=dark] .opening-landscape:after{opacity:1}html[data-theme=dark] .opening-landscape:before{opacity:0}.opening-copy{padding:39px 40px;max-width:660px}.opening-copy h1{font-size:clamp(34px,3.2vw,44px);line-height:1.4;margin:18px 0 19px;letter-spacing:0}.opening-copy h1 em{font-family:Georgia,serif;font-weight:400;white-space:nowrap}.opening-intro{max-width:415px;font-size:15px;line-height:1.9}.opening-copy .hero-links{margin-top:24px;gap:27px}.opening-quote{margin-top:27px;font-family:Georgia,serif;font-size:13px;color:var(--muted);line-height:1.6}.opening-quote span{font-size:10px;margin-left:9px}.home-index{padding-top:36px;padding-bottom:40px;gap:30px}.index-meta{margin-bottom:16px}.index-item h2{font-size:27px}.index-item p{font-size:13px;max-width:265px;line-height:1.8}.index-item+.index-item{padding-left:28px}.index-item h2 span{font-size:21px}
/* About: an asymmetric portrait, personal marginalia and a quiet pull quote. */
.portrait-intro{display:grid;grid-template-columns:1fr 1.14fr;gap:70px;align-items:center;padding:32px 0 52px}.portrait-intro h1{font-size:44px;line-height:1.3;letter-spacing:.02em;margin:15px 0 17px}.portrait-intro h1 em{font-family:Georgia,serif;font-size:43px;letter-spacing:-.02em}.portrait-deck{font-size:17px}.portrait-bio{font-size:15px;line-height:1.95;color:var(--muted);margin-top:23px}.personal-facts{margin:18px 0 24px;font-size:12px;color:var(--muted)}.season-scene{position:relative;overflow:hidden;aspect-ratio:3/2;background:var(--panel)}.season-scene img{display:block;width:100%;height:100%;object-fit:cover;transition:opacity .65s}.season-scene .scene-night{position:absolute;inset:0;opacity:0}html[data-theme=dark] .scene-night{opacity:1}html[data-theme=dark] .scene-day{opacity:0}.portrait-scene{aspect-ratio:5/4}.portrait-scene img{object-position:73% center}.portrait-caption{display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.08em;color:var(--muted);margin-top:12px}.personality-spread{display:grid;grid-template-columns:200px 1fr;gap:70px;padding:38px 0;border-top:1px solid var(--line)}.margin-number{font:italic 34px Georgia,serif;color:var(--accent)}.personality-margin p{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.9}.personality-notes{display:grid;grid-template-columns:1fr 1fr;gap:38px 50px}.personality-note>p:last-child{font-size:15px;line-height:1.95;margin-top:13px;color:var(--ink)}.personal-compass{display:grid;grid-template-columns:1.5fr 1fr;gap:100px;margin:24px 0 50px;padding-top:38px;border-top:1px solid var(--line)}.compass-quote{font-family:'Songti SC',serif;font-size:30px;line-height:1.65;margin:22px 0 18px}.personal-compass .muted{font-size:14px;max-width:400px}.interests{padding-left:30px;border-left:1px solid var(--line)}.interests>p:not(.eyebrow){font-size:15px;line-height:1.95;margin:14px 0 24px}.interests .practice-text{font-size:13px!important;color:var(--muted)}.editorial-pair{margin-top:30px}.editorial-pair>a{padding-top:25px;padding-bottom:16px}.editorial-pair h2{font-size:24px;margin:14px 0 19px}
/* Experience: year anchors and a readable, progressively disclosed timeline. */
.experience-opening{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:30px}.experience-opening .page-heading{padding-bottom:0}.year-jumps{gap:22px;padding-bottom:6px}.year-jumps a{font:14px Georgia,serif;color:var(--muted)}.timeline-year{display:grid;grid-template-columns:180px 1fr;gap:40px;padding-top:35px;border-top:1px solid var(--line);scroll-margin-top:25px}.timeline-year-anchor h2{font:italic 64px Georgia,serif;letter-spacing:-.045em;line-height:1.1;color:var(--accent)}.timeline-year-anchor{padding-top:4px}.timeline-events{border-left:1px solid var(--line);padding-left:37px}.timeline-entry{position:relative;display:grid;grid-template-columns:150px 1fr;gap:25px;padding:0 0 32px;margin-bottom:30px;border-bottom:1px solid var(--line);scroll-margin-top:35px}.timeline-entry:last-child{border-bottom:0;margin-bottom:6px}.timeline-entry:before{content:'';position:absolute;left:-42px;top:9px;width:7px;height:7px;border:1px solid var(--accent);background:var(--bg);border-radius:50%}.timeline-date{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:6px}.timeline-copy h3{font-size:23px;line-height:1.6}.timeline-role{font-size:13px;color:var(--accent);margin-top:5px}.timeline-body{font-size:14px;color:var(--muted);line-height:1.95;margin-top:15px;max-width:580px}.experience-notes{margin-top:17px}.experience-notes summary{font-size:12px;color:var(--accent);cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:17px;padding:5px 0;border-bottom:1px solid var(--line)}.experience-notes summary::-webkit-details-marker{display:none}.experience-notes summary:focus-visible{outline:2px solid var(--accent);outline-offset:5px}.detail-symbol{font:18px Georgia,serif;transition:transform .2s}.experience-notes[open] .detail-symbol{transform:rotate(45deg)}.experience-notes-body{display:grid;gap:17px;padding:21px 20px 2px 0;max-width:580px}.experience-notes-body p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:1.95}.experience-notes-body .eyebrow{margin-bottom:8px}.timeline-project{display:inline-flex;font-size:13px;gap:18px;margin-top:16px}.timeline-outro{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:30px 0 8px;margin-top:10px}.timeline-outro p{font:22px/1.6 'Songti SC',serif}
/* Work: staggered image plates, with only enough text to invite a click. */
.portfolio-opening{display:flex;justify-content:space-between;align-items:center;gap:35px}.portfolio-opening .page-heading{padding-bottom:25px}.portfolio-intro{font-size:14px;color:var(--muted);padding-top:28px}.portfolio-intro .text-link{margin-top:13px;font-size:12px}.portfolio-note{font-size:12px;color:var(--muted);padding-bottom:25px}.portfolio-piece{width:86%;margin-bottom:80px}.portfolio-piece.align-right{margin-left:auto}.portfolio-image{display:block;overflow:hidden}.portfolio-image .project-art{height:auto;aspect-ratio:16/9;padding:32px}.portfolio-image .art-number{font-size:clamp(140px,22vw,280px);right:60px;top:-12px;opacity:.11}.portfolio-image:hover .project-art{transform:scale(1.015)}.portfolio-cover{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;transition:transform .4s}.portfolio-image:hover .portfolio-cover{transform:scale(1.015)}.portfolio-caption{display:grid;grid-template-columns:125px 1fr auto;gap:24px;margin-top:25px;align-items:start}.portfolio-caption>.eyebrow{padding-top:8px}.portfolio-caption h2{font-size:28px;line-height:1.5}.portfolio-caption p:not(.eyebrow){font-size:14px;color:var(--muted);margin-top:12px;max-width:440px}.portfolio-caption>.text-link{font-size:12px;white-space:nowrap;margin-top:9px}.case-page .page-heading{padding:24px 0}.case-page .page-heading h1{font-size:38px}.case-page .project-art{height:300px}.case-page .detail-grid{margin-top:38px;grid-template-columns:200px 1fr;gap:65px}.case-page .project-story section{padding-bottom:23px;margin-bottom:25px}.case-page .project-story h2{font-size:28px}.case-page .closing{padding:28px 0 12px}.case-page .closing p{font-size:23px}.case-page .related-section:has(>p:only-child){display:none}
/* Empty sections keep their page character without fabricated content. */
.thoughts-page .journal-index{min-height:360px;border-top:1px solid var(--line);margin-top:15px}.journal-row{display:grid;grid-template-columns:125px 1.2fr 1fr 20px;gap:30px;padding:30px 0;border-bottom:1px solid var(--line);align-items:center;transition:transform .25s}.journal-row:hover{transform:translateX(5px)}.journal-meta{display:grid;font-size:12px;color:var(--muted)}.journal-row h2{font-size:25px}.journal-row>p{font-size:14px;color:var(--muted)}.life-blank{position:relative}.life-empty-space{height:40px}.life-empty-space.small{height:30px}.life-vignette{width:42%;margin-left:auto;aspect-ratio:2/1}.contact-ending{min-height:calc(100svh - 225px);display:flex;flex-direction:column;justify-content:center}.contact-ending .page-heading{padding:0 0 110px}.contact-ending h1{font-size:clamp(45px,6vw,70px)}.article-page .reading{max-width:700px}.article-page .reading .page-heading h1{font-size:38px}.article-page .article-body{font-size:17px;line-height:2}.article-page .article-body p{margin-block:26px}.article-page .article-body blockquote{margin-block:40px}
@media(min-width:1100px){.timeline-year-anchor h2{position:sticky;top:30px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.portrait-intro{gap:40px;grid-template-columns:1fr 1fr}.portrait-intro h1,.portrait-intro h1 em{font-size:37px}.personality-spread{grid-template-columns:145px 1fr;gap:40px}.personality-notes{gap:30px}.personal-compass{gap:45px}.timeline-year{grid-template-columns:110px 1fr;gap:25px}.timeline-year-anchor h2{font-size:52px}.timeline-entry{grid-template-columns:1fr;gap:7px}.timeline-events{padding-left:28px}.timeline-entry:before{left:-33px}.portfolio-piece{width:94%}.portfolio-caption{grid-template-columns:90px 1fr;gap:20px}.portfolio-caption>.text-link{grid-column:2}.opening-copy{max-width:570px}.opening-copy h1{font-size:38px}.opening-intro{max-width:375px}.case-page .detail-grid{gap:35px;grid-template-columns:160px 1fr}}
@media(max-width:600px){.wrap{width:calc(100% - 40px)}.site-header{height:108px;padding-top:17px}.wordmark{font-size:21px}.wordmark i{font-size:18px}.site-header nav{bottom:12px}.nav-right{display:contents}.home-opening{width:100%;min-height:350px;margin-top:0}.opening-copy{padding:28px 20px;max-width:100%;width:100%}.opening-copy .eyebrow{font-size:10px}.opening-copy h1{font-size:32px;margin:20px 0 17px;max-width:345px}.opening-intro{max-width:300px;font-size:14px}.opening-copy .hero-links{flex-direction:row;align-items:center;gap:22px;margin-top:22px}.opening-copy .hero-links a{font-size:12px;gap:12px}.opening-quote{font-size:12px;margin-top:25px}.opening-quote span{display:block;margin:4px 0 0;font-size:10px}.opening-landscape:before{background-image:linear-gradient(90deg,rgba(246,250,241,.95),rgba(246,250,241,.75) 55%,rgba(246,250,241,.23)),var(--forest-day);background-position:62% center}.opening-landscape:after{background-image:linear-gradient(90deg,rgba(15,30,40,.96),rgba(15,30,40,.78) 55%,rgba(15,30,40,.15)),var(--forest-night);background-position:62% center}.home-index{padding-top:7px;padding-bottom:24px}.index-item{padding:23px 0!important}.index-item h2{font-size:25px}.index-item p{max-width:none;font-size:13px}.index-meta{font-size:10px}.site-footer .wordmark{font-size:17px}.site-footer .wordmark i{font-size:16px}.site-footer p{font-size:12px}.site-footer{gap:10px 18px}.page-heading{padding:22px 0 28px}.page-heading h1{font-size:33px}.portrait-intro{grid-template-columns:1fr;gap:28px;padding:20px 0 32px}.portrait-intro h1,.portrait-intro h1 em{font-size:38px}.portrait-bio{margin-top:20px}.personal-facts{margin-top:15px;margin-bottom:20px}.portrait-scene{aspect-ratio:3/2}.portrait-caption{font-size:9px}.personality-spread{grid-template-columns:1fr;gap:22px;padding:25px 0}.personality-margin{display:flex;justify-content:space-between;align-items:center}.personality-margin p{margin:0;font-size:12px}.margin-number{font-size:29px}.personality-notes{grid-template-columns:1fr;gap:25px}.personality-note>p:last-child{font-size:15px;margin-top:8px}.personal-compass{grid-template-columns:1fr;gap:28px;margin:8px 0 28px;padding-top:27px}.compass-quote{font-size:27px;margin:15px 0}.interests{border-left:0;border-top:1px solid var(--line);padding:22px 0 0}.interests>p:not(.eyebrow){margin-top:12px}.editorial-pair h2{font-size:23px}.editorial-pair>a,.editorial-pair>a+a{padding:23px 0}.experience-opening{display:block;padding-bottom:22px}.year-jumps{position:static;justify-content:flex-start;gap:27px;padding:16px 0 0}.timeline-year{grid-template-columns:1fr;gap:23px;padding-top:24px}.timeline-year-anchor h2{font-size:47px}.timeline-events{margin-left:5px;padding-left:22px}.timeline-entry{padding-bottom:25px;margin-bottom:23px}.timeline-entry:before{left:-27px}.timeline-copy h3{font-size:22px}.timeline-body{font-size:14px;margin-top:13px}.timeline-role{font-size:12px}.timeline-outro{flex-direction:column;align-items:flex-start;gap:15px;padding-top:25px}.timeline-outro p{font-size:22px}.experience-notes-body{padding-right:0}.portfolio-opening{display:block}.portfolio-intro{padding:0 0 17px;font-size:14px}.portfolio-intro br{display:none}.portfolio-opening .page-heading{padding-bottom:15px}.portfolio-note{padding-bottom:20px}.portfolio-piece{width:100%;margin-bottom:45px}.portfolio-caption{grid-template-columns:1fr;gap:10px;margin-top:16px}.portfolio-caption>.eyebrow{padding:0}.portfolio-caption h2{font-size:26px}.portfolio-caption p:not(.eyebrow){font-size:14px;margin-top:10px}.portfolio-caption>.text-link{grid-column:auto;justify-self:start;margin-top:5px}.portfolio-image .project-art{padding:20px;aspect-ratio:4/3}.portfolio-image .art-number{font-size:180px;right:25px;top:0}.portfolio-cover{aspect-ratio:4/3}.case-page .page-heading h1{font-size:32px}.case-page .project-art{height:235px}.case-page .detail-grid{grid-template-columns:1fr;gap:25px}.case-page .detail-grid aside dl{display:grid;grid-template-columns:1fr 1fr;gap:10px}.case-page .project-story h2{font-size:26px}.thoughts-page .journal-index{min-height:340px}.journal-row{grid-template-columns:1fr 20px;gap:12px}.journal-row .journal-meta,.journal-row>p{grid-column:1}.journal-row>span{grid-column:2;grid-row:2}.journal-row h2{font-size:24px}.life-vignette{width:78%;aspect-ratio:3/2;margin-top:40px}.life-empty-space{height:22px}.life-empty-space.small{height:55px}.contact-ending{min-height:calc(100svh - 250px)}.contact-ending h1{font-size:48px}.contact-ending .page-heading{padding-bottom:75px}.article-page .reading .page-heading h1{font-size:31px}}
@media(prefers-reduced-motion:reduce){.opening-landscape:before,.opening-landscape:after,.season-scene img,.journal-row{transition:none}.journal-row:hover{transform:none}}

/* Coastal opening: one background shared with the header. */
.home .site-header{position:relative;z-index:2}
.home-opening{width:100%;margin-top:-82px;padding-top:82px;min-height:480px;background:transparent}
.opening-copy{width:min(1120px,calc(100% - 96px));max-width:1120px;padding:34px 0 42px}
.opening-landscape:before{background-image:linear-gradient(90deg,rgba(238,248,249,.7),rgba(238,248,249,.25) 65%,transparent),url('/assets/day.png');background-position:center 88%}
.opening-landscape:after{background-image:linear-gradient(90deg,rgba(10,28,43,.65),rgba(10,28,43,.24) 65%,transparent),url('/assets/night.png');background-position:center 88%}
.opening-intro{max-width:900px;text-wrap:pretty;line-height:2}
.intro-sentence{display:block}
.opening-copy h1{margin-top:15px;margin-bottom:17px}
.opening-copy .hero-links{margin-top:22px}
.opening-quote{margin-top:24px}
.text-link,.quiet-link{display:inline-flex;align-items:center;justify-content:center;gap:16px;padding:10px 17px;border:1px solid var(--line);border-radius:5px;background:color-mix(in srgb,var(--bg) 87%,var(--accent));color:var(--ink);font-size:13px;line-height:1.5;text-decoration:none;opacity:1;transition:background .2s,transform .2s}
.text-link:hover,.quiet-link:hover{background:color-mix(in srgb,var(--bg) 75%,var(--accent));transform:translateY(-1px)}
.primary-action{background:var(--ink);border-color:var(--ink);color:var(--bg)}
.primary-action:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}
.site-header nav a{padding:8px 13px;border-radius:4px}
.site-header nav a:hover,.site-header nav a[aria-current=page]{background:color-mix(in srgb,var(--bg) 75%,transparent)}
.site-header nav a[aria-current=page]:after{display:none}
.theme-toggle{background:color-mix(in srgb,var(--bg) 75%,transparent);border:1px solid var(--line);border-radius:50%}
.experience-notes summary{padding:8px 12px;border:1px solid var(--line);border-radius:4px;background:color-mix(in srgb,var(--bg) 90%,var(--accent))}
.year-jumps a{padding:6px 10px;background:color-mix(in srgb,var(--bg) 87%,var(--accent));border-radius:3px}
.portrait-bio,.timeline-body,.personality-note>p:last-child,.portfolio-caption p,.portfolio-intro,.compass-quote{text-wrap:pretty}
.index-item p{max-width:none;text-wrap:pretty}
@media(max-width:1000px){.opening-copy{width:calc(100% - 64px)}.site-header nav{gap:12px}.opening-intro{max-width:800px}}
@media(max-width:600px){.home-opening{margin-top:-108px;padding-top:108px;min-height:495px}.opening-copy{width:calc(100% - 40px);padding:30px 0 34px}.opening-copy h1{font-size:31px;max-width:none}.opening-intro{max-width:none;font-size:14px}.intro-sentence+.intro-sentence{margin-top:5px}.opening-landscape:before{background-image:linear-gradient(90deg,rgba(238,248,249,.88),rgba(238,248,249,.55)),url('/assets/day.png');background-position:76% 85%}.opening-landscape:after{background-image:linear-gradient(90deg,rgba(10,28,43,.86),rgba(10,28,43,.5)),url('/assets/night.png');background-position:76% 85%}.opening-copy .hero-links{gap:10px;flex-wrap:wrap}.opening-copy .hero-links a{padding:10px 12px;gap:8px;font-size:12px}.site-header nav{gap:4px}.site-header nav a{padding:7px 10px}.opening-quote span{display:inline;margin-left:7px}.year-jumps{gap:12px}}
@media(prefers-reduced-motion:reduce){.text-link,.quiet-link{transition:none}.text-link:hover,.quiet-link:hover{transform:none}}
