/* Personal portfolio shell. Legacy writing pages keep their existing layout. */
.portfolio-site {
  --bg: #faf9f3;
  --bg-elevated: #fffef9;
  --bg-code: #f0f1e9;
  --border: #d9dfd3;
  --border-strong: #b9c5b5;
  --text: #233a2e;
  --text-muted: #536353;
  --text-subtle: #5c6b5b;
  --accent: #315b40;
  --accent-hover: #24452f;
  --accent-bg: #e5eee1;
  --link: #315b40;
  --link-hover: #24452f;
  --highlight: #315b40;
  --page-gutter: clamp(1.15rem, 3.5vw, 3rem);
  --portfolio-width: 1160px;
  --radius: 6px;
  --radius-lg: 10px;
  color-scheme: light;
  background: var(--bg);
  color: var(--text);
  font-size: 16px;
  line-height: 1.75;
}
.portfolio-site .site-layout { display: block; min-height: 0; }
body.portfolio-site .site-main { padding: 0 var(--page-gutter); min-height: 60vh; }
body.portfolio-site .site-main-inner { width: 100%; max-width: var(--portfolio-width); margin: 0 auto; }
.portfolio-site :is(h1,h2,h3,h4) { font-family: var(--font-sans); color: var(--text); letter-spacing: -.035em; }
.portfolio-site a { text-underline-offset: .22em; }
.portfolio-site a:hover { text-decoration-thickness: 1.5px; }
.portfolio-site :focus-visible { outline: 3px solid #6c8f5e; outline-offset: 4px; }
.portfolio-site :is(section,article)[id] { scroll-margin-top: 1.5rem; }
.portfolio-site .btn { min-height: 46px; gap: .75rem; padding: .65rem 1.15rem; border-radius: 6px; box-shadow: none; font-size: .94rem; font-weight: 600; background: var(--accent); border-color: var(--accent); color: #fffef9; }
.portfolio-site .btn:hover { background: var(--accent-hover); border-color: var(--accent-hover); color: #fffef9; transform: none; }
.portfolio-site .btn.secondary { background: transparent; border-color: var(--border-strong); color: var(--text); }
.portfolio-site .btn.secondary:hover { background: var(--accent-bg); border-color: var(--accent); color: var(--text); }
.portfolio-site .text-link { color: var(--accent); font-size: .94rem; font-weight: 600; gap: .6rem; }
.portfolio-site .text-link:hover { text-decoration: underline; }
.portfolio-site .page-kicker { margin: 0 0 .85rem; font-size: .76rem; line-height: 1.5; letter-spacing: .11em; font-weight: 600; color: var(--text-muted); }

/* The same navigation remains available across home, profile, and case studies. */
.portfolio-header { padding: 0 var(--page-gutter); }
.portfolio-header-inner { max-width: var(--portfolio-width); margin: 0 auto; padding: 1.45rem 0; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; border-bottom: 1px solid var(--border); }
.portfolio-brand { display: inline-flex; flex-shrink: 0; align-items: center; gap: .75rem; color: var(--text); text-decoration: none; }
.portfolio-brand:hover { color: var(--text); }
.portfolio-site .portfolio-brand, .portfolio-site .portfolio-nav > a, .portfolio-site .direction-link, .portfolio-site .selected-project h3 a, .portfolio-site .selected-project-links a, .portfolio-site .portfolio-footer-links a, .portfolio-site .identity-contact { border-bottom: 0; }
.portfolio-wordmark { display: grid; gap: .1rem; }
.portfolio-wordmark strong { font-size: 1.1rem; line-height: 1.3; font-weight: 650; letter-spacing: -.03em; }
.portfolio-wordmark > span { font-size: .76rem; line-height: 1.4; color: var(--text-muted); letter-spacing: .08em; }
.taoson-mark { flex: 0 0 30px; width: 30px; height: 30px; position: relative; display: inline-block; border-radius: 50%; background: linear-gradient(90deg, #edf1e4 50%, #507557 50%); }
.taoson-mark::before, .taoson-mark::after { content: ""; position: absolute; left: 25%; width: 50%; height: 50%; border: 5.4px solid; border-radius: 50%; box-sizing: border-box; }
.taoson-mark::before { top: 0; border-color: #507557; background: #edf1e4; }
.taoson-mark::after { bottom: 0; border-color: #edf1e4; background: #507557; }
.portfolio-navigation { display: flex; align-items: center; justify-content: flex-end; gap: 1.5rem; }
.portfolio-nav { display: flex; align-items: center; gap: 1.4rem; }
.portfolio-nav > a { display: inline-flex; align-items: center; gap: .25rem; padding: .45rem 0; color: var(--text-muted); font-size: .89rem; line-height: 1.5; white-space: nowrap; text-decoration: none; }
.portfolio-nav > a:hover, .portfolio-nav > a[aria-current="page"] { color: var(--text); }
.portfolio-nav > a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 1.5px; }
.portfolio-nav > .portfolio-contact-link { padding: .45rem .8rem; border: 1px solid var(--border-strong); border-radius: 6px; }
.portfolio-nav > .portfolio-contact-link:hover { background: var(--accent-bg); }
.nav-external { font-size: .85em; }
.portfolio-site .language-switch { padding: 2px; border: 0; border-left: 1px solid var(--border); border-radius: 0; background: transparent; }
.portfolio-site .language-switch button { color: var(--text-muted); min-height: 36px; padding: 5px 7px; border-radius: 4px; font-size: .78rem; }
.portfolio-site .language-switch button[aria-pressed="true"] { background: var(--accent-bg); color: var(--text); }
.portfolio-menu-toggle { display: none; }
.menu-label-close { display: none; }
.portfolio-menu-toggle[aria-expanded="true"] .menu-label-open { display: none; }
.portfolio-menu-toggle[aria-expanded="true"] .menu-label-close { display: inline; }
.portfolio-menu-toggle[hidden] { display: none; }

/* A compact introduction gives the work room on the first screen. */
.identity-hero { display: grid; grid-template-columns: 1.18fr 1fr; align-items: center; gap: clamp(2rem, 5vw, 5rem); padding: clamp(2.7rem, 5vw, 4.4rem) 0 2.8rem; }
.identity-heading h1 { margin: 0 0 .8rem; font-size: clamp(2.65rem, 4.9vw, 4.25rem); font-weight: 600; line-height: 1.1; letter-spacing: -.055em; }
.identity-tagline { margin: 0; max-width: 29rem; font-size: clamp(1.15rem, 1.8vw, 1.45rem); line-height: 1.6; color: var(--text-muted); }
.identity-lead { margin: 0; max-width: 29rem; font-size: 1.06rem; line-height: 1.9; color: var(--text-muted); }
.identity-introduction { min-width: 0; }
.identity-background { max-width: 29rem; margin: .85rem 0 0; padding-left: .8rem; border-left: 2px solid var(--border-strong); color: var(--text-muted); font-size: .9rem; line-height: 1.75; overflow-wrap: anywhere; }
.identity-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.35rem; margin-top: 1.5rem; }
.identity-contact { display: inline-flex; gap: .6rem; align-items: center; min-height: 44px; font-size: .94rem; font-weight: 600; text-decoration: none; }
.identity-contact:hover { text-decoration: underline; }
.direction-guide { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; margin-bottom: 3.75rem; }
.direction-link { padding: 1.15rem 1.4rem; border-radius: 8px; background: #f1eee3; color: var(--text); text-decoration: none; }
.direction-physical { background: #e5eee1; color: #213b2c; }
.direction-link:hover { color: var(--text); box-shadow: inset 0 0 0 1px var(--border-strong); }
.direction-title { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.direction-title h2 { margin: 0; font-size: 1.12rem; line-height: 1.5; font-weight: 600; letter-spacing: -.025em; }
.direction-title h2 > .i18n { font-size: .85em; font-weight: 400; }
.direction-title > span { font-size: 1.25rem; }
.direction-link p { margin: .35rem 0 0; font-size: .88rem; line-height: 1.65; }

/* Three selected projects: one lead case, then two complementary studies. */
.home-work { margin-bottom: 4.5rem; }
.portfolio-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1.5rem; }
.portfolio-section-heading .page-kicker { margin-bottom: .4rem; }
.portfolio-section-heading h2 { margin: 0; font-size: clamp(1.6rem, 2.4vw, 2.1rem); font-weight: 600; line-height: 1.25; }
.portfolio-section-heading > a { white-space: nowrap; }
.selected-projects { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
.selected-project { display: flex; flex-direction: column; align-self: start; min-width: 0; }
.selected-project-image { margin: 0; background: #f2f3e9; border: 1px solid var(--border); border-radius: 8px; overflow: hidden; }
.selected-project-image picture, .case-cover picture { display: block; }
.selected-project-image img { display: block; width: 100%; height: auto; aspect-ratio: 30 / 19; object-fit: contain; }
.selected-project-copy { display: flex; flex-direction: column; padding: 0; }
.project-category { color: var(--text-muted); font-size: .77rem; font-weight: 500; line-height: 1.6; letter-spacing: .035em; margin: 0 0 .6rem; }
.selected-project h3 { margin: 0 0 .75rem; font-size: clamp(1.3rem, 2.1vw, 1.7rem); line-height: 1.35; font-weight: 600; }
.selected-project h3 a { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; color: var(--text); text-decoration: none; }
.selected-project h3 a:hover { text-decoration: underline; }
.project-link-arrow { flex: 0 0 auto; font-size: 1.05rem; color: var(--accent); }
.selected-project-summary { margin: 0 0 1.2rem; color: var(--text-muted); font-size: .95rem; line-height: 1.8; }
.selected-project-evidence { display: flex; align-items: baseline; flex-wrap: wrap; gap: .2rem .9rem; margin: 0; padding: .1rem 0 .45rem; }
.selected-project-evidence > strong { font-size: 1.45rem; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; }
.selected-project-evidence > span { font-size: .83rem; color: var(--text-muted); line-height: 1.7; }
.selected-project-links { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.5rem; padding-top: .35rem; }
.selected-project-links > a { font-size: .88rem; min-height: 36px; display: inline-flex; align-items: center; }
.selected-project-links > a:not(.text-link) { color: var(--text-muted); text-decoration: none; }
.selected-project-links > a:not(.text-link):hover { text-decoration: underline; }
.selected-project-lead { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.16fr; grid-template-rows: auto 1fr; align-items: start; gap: 0 2.5rem; padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.selected-project-lead .selected-project-visual { grid-column: 2; grid-row: 1 / 3; }
.selected-project-lead .selected-project-details { grid-column: 1; }
.selected-project-lead .selected-project-copy { padding: 0; }
.selected-project-lead h3 { font-size: clamp(1.6rem, 2.65vw, 2.15rem); }
.selected-project-lead .selected-project-evidence { margin-top: .2rem; }

/* A short route into the three complementary post-training cases. */
.home-training-path { display: grid; grid-template-columns: 9.5rem minmax(0, 1fr); gap: 1rem 1.4rem; align-items: center; margin-top: 2.2rem; padding-top: 1.5rem; border-top: 1px solid var(--border); }
.home-training-path > p { margin: 0; font-size: .91rem; font-weight: 600; color: var(--text-muted); }
.home-training-path > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; min-width: 0; }
.home-training-path a { display: flex; align-items: center; justify-content: space-between; gap: .6rem; min-width: 0; min-height: 54px; padding: .7rem .9rem; border: 1px solid var(--border); border-radius: 6px; color: var(--text); text-decoration: none; font-size: .9rem; line-height: 1.55; overflow-wrap: anywhere; }
.home-training-path a:hover { background: var(--accent-bg); border-color: var(--border-strong); color: var(--text); }
.home-training-path a > [aria-hidden] { flex-shrink: 0; color: var(--accent); }

.home-perspective { display: grid; grid-template-columns: 1fr 1.1fr; gap: 3rem; margin-bottom: 3.5rem; padding-top: 2.7rem; border-top: 1px solid var(--border); }
.home-perspective h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 500; line-height: 1.5; margin: 0; }
.perspective-copy p { margin: 0; font-size: 1rem; line-height: 1.9; color: var(--text-muted); }
.perspective-links { display: flex; flex-wrap: wrap; gap: 1rem 1.8rem; margin-top: 1.1rem; }
.knowledge-entry { display: grid; grid-template-columns: 1fr 1.5fr; gap: 3rem; align-items: start; padding: 2rem 0; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); color: var(--text); }
.knowledge-entry:hover { color: var(--text); }
.knowledge-entry .page-kicker { margin-bottom: .35rem; }
.knowledge-entry h2 { margin: 0 0 .35rem; font-size: 1.35rem; font-weight: 500; }
.knowledge-entry p:not(.page-kicker) { font-size: .93rem; margin: 0; color: var(--text-muted); }
.knowledge-entry-action { display: inline-flex; align-items: center; gap: 1.2rem; font-size: .93rem; color: var(--accent); white-space: nowrap; }
.knowledge-entry-action { margin-top: 1rem; }
.knowledge-entry-action:hover { text-decoration: underline; }
.featured-writing h3 { margin: .4rem 0 .7rem; font-size: 1.18rem; font-weight: 600; line-height: 1.65; }
.featured-writing h3 a { color: var(--text); text-decoration: none; }
.featured-writing h3 a:hover { text-decoration: underline; }
.knowledge-entry .writing-meta { font-size: .79rem !important; }
.home-collaboration { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 3.5rem 0 4rem; }
.home-collaboration h2 { margin: 0 0 .7rem; font-size: clamp(1.5rem, 2.5vw, 2.05rem); line-height: 1.5; font-weight: 500; }
.home-collaboration p:not(.page-kicker) { max-width: 43rem; margin: 0; font-size: .96rem; color: var(--text-muted); }
.home-collaboration > .btn { flex-shrink: 0; }

/* Shared editorial pages and existing project cases. */
.portfolio-page, .portfolio-site .post { max-width: 860px; margin: 0 auto; padding: 3.3rem 0 4rem; }
.portfolio-page-header { margin-bottom: 2.5rem; }
.portfolio-page-header h1, .portfolio-site .hero h1 { margin: 0 0 1rem; font-size: clamp(2rem, 4vw, 3rem); font-weight: 600; line-height: 1.25; }
.portfolio-site .page-lead { max-width: 46rem; font-size: 1.1rem; color: var(--text-muted); line-height: 1.85; }
.portfolio-site .page-actions, .resume-actions { display: flex; align-items: center; flex-wrap: wrap; gap: .85rem 1.3rem; margin: 1.5rem 0; }
.portfolio-site .content-section, .resume-section { margin: 2.2rem 0 0; padding-top: 1.8rem; border-top: 1px solid var(--border); }
.portfolio-site .content-section h2, .resume-section h2 { font-size: 1.4rem; font-weight: 600; margin: 0 0 1rem; }
.portfolio-site .content-section h3, .resume-section h3 { margin: 1.4rem 0 .5rem; font-size: 1.07rem; font-weight: 600; }
.portfolio-site .content-section p, .resume-section p { margin: .6rem 0; }
.portfolio-site .content-section ul, .resume-section ul { padding-left: 1.25rem; margin: .7rem 0; }
.portfolio-site .content-section li, .resume-section li { margin-bottom: .5rem; }
.resume-summary { color: var(--text-muted); font-size: 1.03rem; line-height: 1.85; }
.resume-page .resume-section article { margin: 1.35rem 0; }
.resume-page .resume-section article > :last-child { margin-bottom: 0; }
.resume-page .resume-note { font-size: .88rem; color: var(--text-muted); }
.resume-page .resume-period { margin-bottom: .25rem; font-size: .86rem; color: var(--text-muted); }
.resume-page .resume-entry h3 { margin-top: .3rem; }
.resume-contact { display: flex; flex-wrap: wrap; gap: .25rem .7rem; margin-top: .9rem; font-size: .88rem; }
.resume-contact a { overflow-wrap: anywhere; }
.resume-skills { display: grid; grid-template-columns: 10rem 1fr; gap: 1rem 1.5rem; }
.resume-skills dt { font-weight: 600; }
.resume-skills dd { margin: 0; color: var(--text-muted); }

/* Shared career and education content, with a shorter About presentation. */
.about-english-name { display: inline-block; margin-left: .4em; color: var(--text-muted); font-size: .56em; font-weight: 400; line-height: 1.5; letter-spacing: 0; white-space: nowrap; }
.resume-role { margin: -.35rem 0 .65rem; color: var(--text); font-size: 1.12rem; line-height: 1.6; font-weight: 600; }
.portfolio-site .career-timeline { display: grid; gap: 1.8rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.portfolio-site .career-timeline > .career-entry { position: relative; min-width: 0; margin: 0; padding: 0 0 0 1.3rem; border-left: 1px solid var(--border-strong); overflow-wrap: anywhere; }
.career-entry::before { content: ""; position: absolute; top: .42rem; left: -4px; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.portfolio-site .career-entry > .resume-period { margin: 0 0 .3rem; color: var(--text-muted); font-size: .88rem; line-height: 1.6; font-variant-numeric: tabular-nums; }
.portfolio-site .career-entry > h3 { margin: 0 0 .4rem; font-size: 1.15rem; line-height: 1.5; }
.portfolio-site .career-entry > .career-company { margin: 0 0 .6rem; color: var(--text-muted); font-size: .94rem; line-height: 1.75; }
.career-company strong { color: var(--text); font-weight: 600; }
.portfolio-site .career-entry > p:not(.resume-period):not(.career-company) { margin: .6rem 0; }
.portfolio-site .career-entry > ul { margin: .75rem 0 0; padding-left: 1.15rem; }
.portfolio-site .career-entry > ul > li { margin: 0 0 .65rem; padding-left: .1rem; line-height: 1.8; }
.portfolio-site .career-entry > ul > li:last-child { margin-bottom: 0; }
.portfolio-site .career-timeline-compact { gap: 1.5rem; }
.portfolio-site .career-timeline-compact > .career-entry { padding-left: 1.15rem; }
.portfolio-site .career-timeline-compact .career-company { margin-bottom: .4rem; }
.profile-education, .profile-directions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 2rem; margin: 1.1rem 0; }
.education-entry, .profile-directions > div { min-width: 0; overflow-wrap: anywhere; }
.education-entry { padding: 1.1rem 1.2rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg-elevated); }
.portfolio-site .education-entry h3, .portfolio-site .profile-directions h3 { margin: 0 0 .6rem; font-size: 1.1rem; line-height: 1.5; }
.portfolio-site .education-entry p { margin: .45rem 0 0; font-size: .94rem; line-height: 1.75; }
.portfolio-site .education-entry .resume-period { color: var(--text-muted); font-size: .88rem; }
.profile-directions > div { padding: 1.15rem 1.3rem; border-radius: 6px; background: #f1eee3; }
.profile-directions > div:nth-child(2) { background: var(--accent-bg); }
.portfolio-site .profile-directions p { margin: .6rem 0 .9rem; color: var(--text-muted); font-size: .96rem; }
.profile-directions .text-link { display: inline-flex; align-items: center; min-height: 44px; flex-wrap: wrap; }
.research-status { color: var(--text-muted); font-size: .91rem; line-height: 1.75; }
.resume-certifications, .resume-languages { color: var(--text-muted); font-size: .93rem; line-height: 1.8; overflow-wrap: anywhere; }
.resume-certifications strong { color: var(--text); }
.resume-updated { margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--border); color: var(--text-muted); font-size: .88rem; line-height: 1.7; }
.contact-topics { display: grid; grid-template-columns: 10rem 1fr; gap: 1.4rem 2rem; }
.contact-topics dt { font-weight: 600; }
.contact-topics dd { margin: 0; color: var(--text-muted); }
.portfolio-site .hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.portfolio-site .hero-actions .btn-ghost { background: transparent; color: var(--text); border-color: var(--border-strong); }
.portfolio-site .hero-actions .btn-ghost:hover { background: var(--accent-bg); }
.portfolio-site .work-name a { color: var(--text); }
.portfolio-site .hero { margin-bottom: 2.3rem; padding: 3.3rem 0 2rem; border-bottom: 1px solid var(--border); }
.portfolio-site .hero p { max-width: 48rem; }
.portfolio-site .labs-section { margin: 2.5rem 0 3.5rem; }
.portfolio-site .labs-section-header { margin-bottom: 1.5rem; }
.portfolio-site .project-domain { scroll-margin-top: 1.5rem; }
.portfolio-site .project-domain-intro { max-width: 48rem; color: var(--text-muted); margin: .75rem 0 1.6rem; }
.portfolio-site .project-state { color: var(--text-muted); font-size: .79rem; }
.portfolio-site .project-links { display: flex; align-items: center; flex-wrap: wrap; gap: .7rem 1.2rem; margin-top: .5rem; font-size: .9rem; }
.portfolio-site .project-links a { display: inline-flex; align-items: center; min-height: 40px; }
.portfolio-site .work-grid { gap: 1.4rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.portfolio-site .work-card { background: var(--bg-elevated); border-radius: 8px; }
.portfolio-site .work-card:hover { border-color: var(--border-strong); transform: none; }
.portfolio-site .work-grid .work-card:only-child { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1.15fr; grid-template-rows: auto 1fr; align-items: start; }
.portfolio-site .work-grid .work-card:only-child .work-figure { grid-column: 2; grid-row: 1 / 3; align-self: center; }
.portfolio-site .work-grid .work-card:only-child .work-card-details { grid-column: 1; }
.portfolio-site .work-grid .work-card:only-child .work-figure { border-bottom: 0; }
.portfolio-site .work-figure { background: #f2f3e9; aspect-ratio: 14 / 11; }
.portfolio-site .work-figure-compact .work-open { display: none; }
.portfolio-site .work-caption { padding: 1.35rem; }
.portfolio-site .work-card-intro { padding-bottom: 1rem; }
.portfolio-site .work-card-intro .work-summary { margin-bottom: 0; }
.portfolio-site .work-card-details { padding-top: 1rem; }
.portfolio-site .work-card-details .work-evidence { border-top: 0; padding-top: 0; }
.portfolio-site .work-eyebrow { color: var(--text-muted); font-size: .8rem; }
.portfolio-site .work-name { font-size: 1.25rem; font-weight: 600; }
.portfolio-site .work-summary { font-size: .94rem; }
.portfolio-site .work-evidence > span { font-size: .8rem; }
.portfolio-site .work-read { font-size: .9rem; }
.portfolio-site .work-evidence > strong { font-weight: 600; }
.portfolio-site .work-grid .work-card-text { display: flex; flex-direction: column; }
.portfolio-site .work-card-text { align-self: start; }
.portfolio-site .work-card-text .work-card-intro, .portfolio-site .work-card-text .work-card-details { flex: 0 0 auto; }
.portfolio-site .work-card-text .work-card-details { margin-top: auto; }
.portfolio-site .work-grid .work-card.work-card-text:only-child { display: flex; }
.portfolio-site .work-artifacts { min-width: 0; margin: 0 1.35rem 1rem; padding: 1rem 1.1rem; border-radius: 6px; background: var(--accent-bg); overflow-wrap: anywhere; }
.portfolio-site .work-artifacts h4 { margin: 0 0 .5rem; font-size: .88rem; font-weight: 600; line-height: 1.6; letter-spacing: 0; }
.portfolio-site .work-artifacts p { margin: 0; color: var(--text-muted); font-size: .92rem; line-height: 1.8; }
.portfolio-site .work-metric-context { margin: .2rem 0 .8rem; color: var(--text-muted); font-size: .875rem; line-height: 1.75; overflow-wrap: anywhere; }
.portfolio-site .labs-grid { gap: 1rem; }
.portfolio-site .project-card { background: var(--bg-elevated); border-color: var(--border); border-radius: 8px; box-shadow: none; }
.portfolio-site .project-card:hover { border-color: var(--border-strong); box-shadow: none; transform: none; }
.portfolio-site .project-card .project-icon { color: var(--accent); }
.portfolio-site .post-header { padding-bottom: 1.5rem; border-bottom: 1px solid var(--border); }
.portfolio-site .post-header .prompt { color: var(--text-muted); font-size: .8rem; }
.portfolio-site .post-header h1 { font-size: clamp(1.9rem, 3.5vw, 2.7rem); font-weight: 600; line-height: 1.35; }
.portfolio-site .post-description { font-size: 1.05rem; color: var(--text-muted); }
.portfolio-site .post-content { font-size: 1rem; line-height: 1.9; }
.portfolio-site .post-content h2 { font-weight: 600; font-size: 1.5rem; }
.portfolio-site .case-cover { max-width: 100%; border-radius: 8px; }
.portfolio-site .case-contact { padding-bottom: 2rem; }
/* Sharing stays a small utility row; native details works without JavaScript. */
.case-share { display: flex; align-items: start; flex-wrap: wrap; gap: 0 1.25rem; margin: 1rem 0 1.7rem; color: var(--text-muted); font-size: .83rem; }
.case-share-copy, .case-share-details > summary { min-height: 44px; padding: .6rem 0; line-height: 1.6; color: var(--accent); cursor: pointer; }
.case-share-copy { flex: 0 0 auto; border: 0; background: transparent; font: inherit; text-align: left; }
.case-share-copy[hidden] { display: none; }
.case-share-copy:hover, .case-share-details > summary:hover { text-decoration: underline; text-underline-offset: .22em; }
.case-share-details { min-width: 0; }
.case-share-details[open] { flex: 1 1 100%; }
.case-share-details > summary { width: fit-content; max-width: 100%; }
.case-share-panel { display: grid; grid-template-columns: minmax(0, 1fr) 164px; gap: 1rem 1.5rem; max-width: 650px; padding: 1rem; border: 1px solid var(--border); border-radius: 6px; background: var(--bg-elevated); }
.case-share-address { min-width: 0; }
.case-share-address label { display: block; margin-bottom: .45rem; color: var(--text); font-weight: 500; }
.case-share-url { display: block; width: 100%; box-sizing: border-box; min-height: 5.8em; padding: .65rem; border: 1px solid var(--border-strong); border-radius: 4px; background: var(--bg); color: var(--text); font: inherit; font-size: .8rem; line-height: 1.7; resize: vertical; overflow-wrap: anywhere; word-break: break-all; }
.case-share-address p { margin: .6rem 0 0; font-size: .78rem; line-height: 1.7; }
.case-share-qr { min-width: 0; }
.case-share-qr img { display: block; width: 164px; height: 164px; max-width: 100%; object-fit: contain; background: #fff; }
.case-share-qr a { display: inline-flex; align-items: center; min-height: 44px; border: 0; font-size: .8rem; }
.case-share-status { flex-basis: 100%; margin: 0; font-size: .8rem; }
.case-share-status:not(:empty) { margin-top: .4rem; }
@media (max-width: 540px) {
  .case-share-panel { grid-template-columns: minmax(0, 1fr); }
  .case-share-qr { display: flex; align-items: center; flex-wrap: wrap; gap: .3rem 1rem; }
}
.portfolio-site .contact-panel { background: transparent; border: 0; padding: 0; }
.portfolio-site .contact-email { color: var(--accent); font-size: clamp(1rem, 3vw, 1.6rem); font-weight: 600; }
.portfolio-site table { width: 100%; font-size: .95rem; border-collapse: collapse; }
.portfolio-site th, .portfolio-site td { padding: .65rem .8rem; border-color: var(--border); overflow-wrap: anywhere; }
.portfolio-site th { background: var(--bg-code); }
.portfolio-site .post-content table { display: table; table-layout: fixed; }
.portfolio-site .post-content pre { background: var(--bg-code); border-color: var(--border); }

/* Concrete artifacts stay readable before their aggregate measurements. */
.selected-project-visual { min-width: 0; }
.selected-project-details { padding-top: 1.1rem; }
.evidence-kind { margin: 0 0 .45rem; color: var(--text-muted); font-size: .78rem; font-weight: 600; }
.evidence-context { margin: 0 0 .45rem; color: var(--text-muted); font-size: .82rem; line-height: 1.7; }
.selected-project-image figcaption, .case-cover figcaption { padding: .85rem 1rem; border-top: 1px solid var(--border); color: var(--text-muted); font-size: .82rem; line-height: 1.75; background: var(--bg-elevated); }
.case-summary { margin: 1.7rem 0; }
.case-summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; margin: 0; }
.case-summary dt { font-size: .83rem; font-weight: 600; margin: 0 0 .35rem; }
.case-summary dd { margin: 0; font-size: .92rem; line-height: 1.8; color: var(--text-muted); }
.case-summary dd a { white-space: nowrap; font-size: .85rem; }
.portfolio-site .contact-copy-status { min-height: 1.7em; margin: -.45rem 0 0; font-size: .88rem; color: var(--text-muted); }
.contact-intent-action a { display: inline-flex; align-items: center; min-height: 44px; font-size: .92rem; font-weight: 600; }
.resume-skill-evidence { display: block; margin-top: .35rem; font-size: .83em; }
.eda-example, .rewardlens-example { min-width: 0; padding: 1.3rem; border: 1px solid var(--border); border-radius: 8px; background: var(--bg-elevated); }
.eda-example p, .rewardlens-example p { margin: 0 0 .65rem; }
.eda-example .section-label { margin: 0 0 .8rem; font-size: .73rem; color: var(--text-muted); letter-spacing: .03em; }
.eda-example h2 { margin-top: 0; }
.eda-example-question, .eda-example-result, .eda-example-action { font-size: .93rem; line-height: 1.8; }
.eda-example-question { padding-bottom: .9rem; border-bottom: 1px solid var(--border); margin-bottom: .9rem; }
.eda-example-question > p, .eda-example-result > p:first-child, .eda-example-action > p:first-child { font-size: .8rem; margin-bottom: .25rem; color: var(--text-muted); }
.portfolio-site .eda-example blockquote { margin: 0; padding: 0; border: 0; background: transparent; font-style: normal; color: var(--text); font-size: inherit; }
.eda-example-action { margin-top: 1rem; padding: .8rem 1rem; background: #edf2e7; border-radius: 5px; }
.eda-example .eda-example-context { color: var(--text-muted); font-size: .79rem; line-height: 1.7; margin: .6rem 0; }
.eda-example-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1rem 0; }
.eda-example-metrics dt { color: var(--text-muted); font-size: .8rem; }
.eda-example-metrics dd { margin: .25rem 0 0; font-size: 1.3rem; font-weight: 600; }
.eda-example .eda-example-links { display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: .8rem 0 0; font-size: .8rem; }
.eda-example-links a { display: inline-flex; align-items: center; min-height: 34px; }
.eda-example-capture { margin-top: .8rem; font-size: .9rem; }
.eda-example-capture img { display: block; width: 100%; height: auto; margin-top: 1rem; }
.eda-example summary, .rewardlens-example summary { cursor: pointer; }
.rewardlens-example [hidden] { display: none !important; }
.rewardlens-example .page-kicker { font-size: .72rem; margin-bottom: .4rem; }
.portfolio-site .rewardlens-example-heading > :is(h2,h4) { margin: 0 0 .55rem; font-size: 1.13rem; font-weight: 600; line-height: 1.55; }
.rewardlens-example-heading > p:last-child { font-size: .88rem; color: var(--text-muted); }
.rewardlens-example-compact .rewardlens-example-heading > .page-kicker,
.rewardlens-example-compact .rewardlens-example-heading > p:last-child { display: none; }
.rewardlens-example-question { margin: 1rem 0 .8rem; font-size: .91rem; }
.rewardlens-example-question p { margin: .2rem 0; }
.rewardlens-example-candidates { color: var(--text-muted); font-size: .82rem; }
.rewardlens-example-candidate { white-space: nowrap; }
.rewardlens-example-tabs { display: flex; flex-wrap: wrap; gap: .35rem; padding: .3rem; margin: .8rem 0 1rem; background: var(--bg-code); border-radius: 6px; }
.rewardlens-example-tabs button { flex: 1 1 auto; min-height: 44px; padding: .45rem .55rem; border: 1px solid transparent; border-radius: 4px; background: transparent; color: var(--text-muted); font: inherit; font-size: .82rem; line-height: 1.4; cursor: pointer; }
.rewardlens-example-tabs button[aria-selected="true"] { color: var(--text); border-color: var(--border-strong); background: var(--bg-elevated); font-weight: 600; }
.rewardlens-example-panel { display: grid; grid-template-columns: 1.1fr 1fr; align-items: center; gap: 1rem; margin: 0 0 1rem; }
.rewardlens-example-panel img { display: block; width: 100%; height: auto; object-fit: contain; border-radius: 4px; }
.portfolio-site .rewardlens-example-panel :is(h3,h5) { font-size: .91rem; margin: 0 0 .4rem; font-weight: 600; }
.rewardlens-example-panel figcaption { text-align: left; font-size: .84rem; line-height: 1.7; }
.rewardlens-example-change { color: var(--text-muted); }
.rewardlens-example-answers { margin: .65rem 0; }
.rewardlens-example-answers > div { margin-top: .6rem; }
.rewardlens-example-answers dt { font-size: .75rem; color: var(--text-muted); }
.rewardlens-example-answers dd { margin: .15rem 0 0; font-size: .95rem; color: var(--text); }
.rewardlens-example-result { display: inline-block; padding: .15rem .45rem; border-radius: 4px; font-size: .76rem; font-weight: 600; background: #e5eee1; color: #315b40; }
.rewardlens-example-result.is-incorrect { background: #f5e6da; color: #7b3c1e; }
.rewardlens-example-takeaway { font-size: .86rem; line-height: 1.8; }
.rewardlens-example .example-caption { font-size: .76rem; line-height: 1.7; color: var(--text-muted); margin-top: .8rem; }
.rewardlens-example-provenance { font-size: .79rem; color: var(--text-muted); }
.rewardlens-example-provenance > p { margin-top: .75rem; }
.rewardlens-example-provenance ul { padding-left: 1.2rem; margin: .6rem 0 0; }
@media (max-width: 640px) {
  .case-summary dl { grid-template-columns: 1fr; gap: 1.2rem; }
  .eda-example, .rewardlens-example { padding: 1rem; }
  .rewardlens-example-panel { grid-template-columns: 1fr; gap: .75rem; }
  .rewardlens-example-panel img { width: min(100%, 320px); margin: 0 auto; }
  .rewardlens-example-answers { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; }
  .rewardlens-example-answers > div { margin-top: 0; }
  .eda-example-links a { min-height: 44px; }
}

.portfolio-footer { padding: 0 var(--page-gutter); }
.portfolio-footer-inner { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; max-width: var(--portfolio-width); margin: 0 auto; padding: 1.3rem 0 1.75rem; border-top: 1px solid var(--border); font-size: .82rem; color: var(--text-muted); }
.portfolio-footer-inner p { margin: 0; }
.portfolio-footer-links { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: center; }
.portfolio-footer-links a, .portfolio-footer-links button { color: var(--text-muted); text-decoration: none; }
.portfolio-footer-links button { padding: 0; border: 0; background: transparent; font: inherit; cursor: pointer; }
.portfolio-footer-links a:hover, .portfolio-footer-links button:hover { color: var(--text); text-decoration: underline; }

@media (max-width: 1080px) and (min-width: 901px) {
  .portfolio-navigation { gap: 1rem; }
  .portfolio-nav { gap: .9rem; }
  .portfolio-wordmark strong { font-size: 1rem; }
  .portfolio-brand { gap: .6rem; }
  .taoson-mark { flex-basis: 26px; width: 26px; height: 26px; }
  .taoson-mark::before, .taoson-mark::after { border-width: 4.7px; }
}
@media (max-width: 900px) {
  .portfolio-header-inner { flex-wrap: wrap; gap: 1rem; padding: 1rem 0; }
  .portfolio-header.nav-ready .portfolio-menu-toggle { display: inline-flex; align-items: center; gap: .75rem; min-height: 44px; padding: .45rem .2rem .45rem .65rem; background: transparent; color: var(--text); border: 0; font: inherit; font-size: .88rem; cursor: pointer; }
  .portfolio-menu-toggle { margin-left: auto; }
  .menu-lines { width: 18px; height: 12px; border-top: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; }
  .portfolio-navigation { flex-basis: 100%; align-items: stretch; justify-content: flex-start; gap: 1rem; }
  .portfolio-header.nav-ready .portfolio-navigation[aria-hidden="true"] { display: none; }
  .portfolio-header.nav-ready .portfolio-navigation { flex-direction: column; padding: .2rem 0 .6rem; }
  .portfolio-nav { flex-wrap: wrap; gap: .4rem 1.2rem; }
  .portfolio-header.nav-ready .portfolio-nav { flex-direction: column; align-items: stretch; gap: 0; }
  .portfolio-header.nav-ready .portfolio-nav > a { min-height: 46px; font-size: 1rem; padding: .7rem 0; border-bottom: 1px solid var(--border); }
  .portfolio-header.nav-ready .portfolio-nav > .portfolio-contact-link { border: 0; border-bottom: 1px solid var(--border); border-radius: 0; }
  .portfolio-site .language-switch { border: 0; padding: 0; }
  .portfolio-site .language-switch button { min-width: 44px; min-height: 44px; padding: .35rem .8rem; font-size: .88rem; }
  .identity-hero { grid-template-columns: 1fr; gap: 1.5rem; padding: 2.7rem 0 2rem; }
  .identity-heading h1 { font-size: clamp(2.55rem, 7vw, 4.15rem); }
  .identity-lead { max-width: 43rem; }
  .identity-introduction { display: grid; grid-template-columns: minmax(0, 1fr) max-content; column-gap: 1.8rem; row-gap: .65rem; align-items: start; }
  .identity-introduction .identity-lead { grid-column: 1; grid-row: 1; }
  .identity-background { grid-column: 1; grid-row: 2; max-width: 43rem; margin-top: 0; }
  .identity-actions { grid-column: 2; grid-row: 1 / 3; align-self: center; margin-top: 0; gap: .8rem; flex-direction: column; align-items: start; }
  .direction-guide { margin-bottom: 3rem; }
  .selected-project-lead { gap: 0 1.6rem; grid-template-columns: 1fr 1fr; }
  .selected-project-lead h3 { font-size: 1.55rem; }
  .selected-projects { gap: 1.8rem; }
  .selected-project-image.has-compact-evidence img { aspect-ratio: 14 / 11; }
  .home-training-path { grid-template-columns: minmax(0, 1fr); gap: .75rem; }
  .portfolio-site .work-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portfolio-site .work-card { display: flex; }
  .portfolio-site .work-figure { border-bottom: 1px solid var(--border); }
}
@media (max-width: 640px) {
  .portfolio-site { --page-gutter: 1.15rem; }
  .portfolio-wordmark strong { font-size: 1rem; }
  .identity-hero { gap: .9rem; padding: 1.55rem 0 1.3rem; }
  .identity-heading h1 { font-size: clamp(2.35rem, 9.5vw, 3.6rem); letter-spacing: -.045em; }
  .identity-tagline { font-size: 1.12rem; }
  .identity-introduction { display: block; }
  .identity-lead { font-size: .97rem; line-height: 1.75; }
  .identity-background { margin-top: .8rem; font-size: .875rem; }
  .identity-actions { flex-direction: row; margin-top: .9rem; gap: 1.3rem; }
  .direction-guide { grid-template-columns: 1fr 1fr; gap: .6rem; margin-bottom: 1.8rem; }
  .direction-link { padding: .8rem .85rem; }
  .direction-title { gap: .4rem; }
  .direction-title h2 > .i18n { display: none; }
  .direction-title h2 { font-size: .97rem; }
  .direction-link p { font-size: .82rem; line-height: 1.55; margin-top: .35rem; }
  .portfolio-section-heading { align-items: start; gap: .55rem; flex-direction: column; margin-bottom: 1.1rem; }
  .portfolio-section-heading h2 { font-size: 1.6rem; }
  .portfolio-section-heading > .text-link { font-size: .88rem; }
  .selected-projects { grid-template-columns: 1fr; gap: 2.3rem; }
  .selected-project-lead { display: flex; padding: 0 0 1.8rem; }
  .selected-project-lead .selected-project-copy, .selected-project-copy { padding: 0; }
  .selected-project h3, .selected-project-lead h3 { font-size: 1.45rem; }
  .selected-project-summary { font-size: .96rem; }
  .selected-project-links > a { min-height: 44px; }
  .home-work { margin-bottom: 3rem; }
  .home-training-path { margin-top: 1.7rem; padding-top: 1.25rem; }
  .home-training-path > div { grid-template-columns: minmax(0, 1fr); gap: .55rem; }
  .home-training-path a { min-height: 46px; padding: .7rem .85rem; }
  .home-perspective { grid-template-columns: 1fr; gap: 1.4rem; padding-top: 2rem; margin-bottom: 2.5rem; }
  .home-perspective h2 { font-size: 1.65rem; }
  .perspective-copy p { font-size: .96rem; }
  .knowledge-entry { grid-template-columns: 1fr; gap: 1.5rem; }
  .knowledge-entry h2 { font-size: 1.25rem; }
  .knowledge-entry-action { white-space: normal; }
  .home-collaboration { display: block; padding: 2.5rem 0 3rem; }
  .home-collaboration .btn { margin-top: 1.4rem; }
  .home-collaboration h2 { font-size: 1.6rem; }
  .portfolio-page, .portfolio-site .post { padding: 2.4rem 0 3rem; }
  .portfolio-site .hero { padding-top: 2.4rem; }
  .portfolio-site .hero h1, .portfolio-page-header h1 { font-size: 2.1rem; }
  .portfolio-site .page-lead { font-size: 1rem; }
  .resume-skills, .contact-topics { grid-template-columns: 1fr; gap: .45rem; }
  .resume-skills dd, .contact-topics dd { margin-bottom: .8rem; }
  .profile-education, .profile-directions { grid-template-columns: minmax(0, 1fr); gap: 1rem; }
  .education-entry, .profile-directions > div { padding: 1rem 1.1rem; }
  .portfolio-site .career-timeline { gap: 1.6rem; }
  .portfolio-site .career-timeline > .career-entry { padding-left: 1rem; }
  .portfolio-site .career-entry > h3 { font-size: 1.08rem; }
  .portfolio-site .career-entry > ul { padding-left: 1rem; }
  .resume-role { font-size: 1.03rem; }
  .portfolio-site .work-grid, .portfolio-site .labs-grid { grid-template-columns: 1fr; }
  .portfolio-site .work-grid .work-card:only-child { display: flex; }
  .portfolio-site .work-grid .work-card:only-child .work-figure { align-self: stretch; }
  .portfolio-site .work-grid .work-card:only-child .work-figure { border-bottom: 1px solid var(--border); }
  .portfolio-site .work-caption { padding: 1.2rem; }
  .portfolio-site .work-artifacts { margin-right: 1.2rem; margin-left: 1.2rem; padding: .9rem; }
  .portfolio-site .post-header h1 { font-size: 1.8rem; }
  .portfolio-site .post-content { font-size: .98rem; }
  .portfolio-site .post-content table { font-size: .84rem; }
  .portfolio-site th, .portfolio-site td { padding: .6rem .5rem; }
  .portfolio-footer-inner { align-items: start; gap: .6rem; font-size: .8rem; }
  .portfolio-footer-links { gap: 1.2rem; }
  .portfolio-footer-links > * { display: inline-flex; min-height: 44px; align-items: center; }
}
@media (max-width: 380px) {
  .portfolio-wordmark strong { font-size: .88rem; }
  .portfolio-header-inner { gap: .5rem; }
  .portfolio-header.nav-ready .portfolio-menu-toggle { gap: .5rem; }
  .identity-actions { gap: .75rem; }
  .portfolio-site .career-entry > ul { padding-left: .9rem; }
  .portfolio-site .work-artifacts { margin-right: 1rem; margin-left: 1rem; }
}
@media print {
  @page { margin: 12mm 14mm; }
  html { background: #fff; background-image: none; }
  .portfolio-header, .portfolio-footer, .skip-link, .pagefind-modal, .resume-actions, .resume-page .page-actions, .case-share { display: none !important; }
  body.portfolio-site { --bg: #fff; --bg-elevated: #fff; background: #fff; background-image: none; color: #111; font-size: 10pt; line-height: 1.5; }
  body.portfolio-site::before, body.portfolio-site::after { display: none; }
  body.portfolio-site .site-layout, body.portfolio-site .site-main, body.portfolio-site .site-main-inner, .resume-page { background: #fff; background-image: none; }
  body.portfolio-site .site-main { padding: 0; min-height: 0; }
  body.portfolio-site .site-main-inner, .resume-page { max-width: none; width: 100%; padding: 0; }
  .resume-page :is(h1,h2,h3,p,li,a) { color: #111; }
  .resume-page .portfolio-page-header { margin-bottom: .65rem; }
  .resume-page .portfolio-page-header .page-kicker { display: none; }
  .resume-page .portfolio-page-header h1 { margin: 0 0 .3rem; font-size: 23pt; }
  .resume-page .page-lead, .resume-page .resume-summary { font-size: 10pt; line-height: 1.5; }
  .resume-section { margin-top: 1rem; padding-top: .7rem; }
  .resume-section h2 { font-size: 13pt; break-after: avoid; }
  .resume-section h3 { font-size: 11pt; break-after: avoid; }
  .resume-section li { margin-bottom: .25rem; }
  .resume-page a { text-decoration: none; }
  .resume-page .resume-project, .resume-page #research > .resume-entry, .resume-page .education-entry { break-inside: avoid; page-break-inside: avoid; }
  .resume-page .resume-role { margin: 0 0 .4rem; font-size: 11pt; line-height: 1.5; }
  .resume-page .about-english-name { font-size: 13pt; color: #111; }
  .resume-page .resume-contact, .resume-page .resume-note, .resume-page .resume-period,
  .resume-page .research-status, .resume-page .resume-certifications, .resume-page .resume-languages,
  .resume-page .resume-updated, .resume-page .resume-skills :is(dt,dd) { font-size: 10pt; line-height: 1.5; color: #111; }
  .resume-page .career-timeline { display: block; margin: .7rem 0 0; padding: 0; }
  .resume-page .career-timeline > .career-entry { margin: 0 0 1rem; padding: 0; border: 0; break-inside: auto; page-break-inside: auto; }
  .resume-page .career-entry::before { display: none; }
  .resume-page .career-entry > .resume-period,
  .resume-page .career-entry > h3,
  .resume-page .career-entry > .career-company { break-after: avoid; page-break-after: avoid; }
  .resume-page .career-entry > h3 { margin: .15rem 0; font-size: 11pt; line-height: 1.5; }
  .resume-page .career-entry > .career-company { margin: 0 0 .35rem; font-size: 10pt; line-height: 1.5; color: #111; }
  .resume-page .career-entry > p, .resume-page .career-entry > ul > li { font-size: 10pt; line-height: 1.5; orphans: 3; widows: 3; }
  .resume-page .career-entry > ul { margin: .4rem 0 0; padding-left: 1rem; }
  .resume-page .career-entry > ul > li { margin-bottom: .3rem; padding-left: 0; break-inside: avoid; page-break-inside: avoid; }
  .resume-page .profile-education { display: block; margin: .7rem 0; }
  .resume-page .education-entry { margin: 0 0 .7rem; padding: 0; border: 0; border-radius: 0; background: transparent; }
  .resume-page .education-entry h3 { font-size: 11pt; margin: 0 0 .2rem; }
  .resume-page .education-entry p { margin: .2rem 0; font-size: 10pt; line-height: 1.5; }
  .resume-page .resume-project p { font-size: 10pt; line-height: 1.5; orphans: 3; widows: 3; }
  .resume-page .resume-updated { margin-top: 1rem; padding-top: .5rem; }
  .resume-section:has(.resume-skills) > .resume-note { break-after: avoid; }
  /* Keep a complete public CV compact without reducing its 10pt body type. */
  .resume-page .resume-role { margin: 0 0 .2rem; }
  .resume-page .page-lead { margin: .2rem 0; }
  .resume-page .resume-contact { margin: .3rem 0 0; }
  .resume-page .resume-section { margin-top: .65rem; padding-top: .45rem; }
  .resume-page .resume-section h2 { margin-bottom: .4rem; font-size: 12pt; }
  .resume-page .resume-section p { margin: .3rem 0; }
  /* The printed CV puts experience and projects before the repeated skill list. */
  .resume-page .resume-skills { display: none; }
  .resume-page .resume-summary, .resume-page .resume-section p,
  .resume-page .career-entry > p, .resume-page .resume-project p { line-height: 1.4; }
  .resume-page .resume-section article { margin: .45rem 0; }
  .resume-page .resume-section h3 { margin-bottom: .2rem; }
  .resume-page .career-timeline > .career-entry { margin-bottom: .6rem; }
  .resume-page .career-entry > p:not(.resume-period):not(.career-company) { margin: .3rem 0; }
  .resume-page .career-entry > ul { margin-top: .25rem; }
  .resume-page .career-entry > ul > li { margin-bottom: .2rem; line-height: 1.4; }
  .resume-page .career-entry:last-child > ul { display: none; }
  .resume-page #selected-projects { break-before: page; page-break-before: always; margin-top: 0; }
  .resume-page .profile-education { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; margin: .5rem 0; }
  .resume-page .education-entry { margin: 0; }
  .resume-page .education-entry h3 { font-size: 10.5pt; }
  .resume-page .resume-updated { margin-top: .6rem; padding-top: .35rem; }
}

/* The work directory also reveals its cards without a second landing-page hero. */
.portfolio-site .labs-hero-compact {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: .5rem 1.5rem; max-width: none;
  margin: 0; padding: 1rem 0 .8rem; border-bottom: 1px solid var(--border);
}
.portfolio-site .labs-hero-compact h1 {
  margin: 0; font-size: clamp(1.6rem, 2.6vw, 2.1rem);
  line-height: 1.35; font-weight: 650; letter-spacing: -.04em;
}
.portfolio-site .labs-shortcuts { display: flex; flex-wrap: wrap; gap: .3rem 1.25rem; }
.portfolio-site .labs-shortcuts a {
  display: inline-flex; align-items: center; gap: .25rem;
  min-height: 36px; border: 0; color: var(--accent);
  font-weight: 600; font-size: .85rem; text-decoration: none;
}
.portfolio-site .labs-shortcuts a:hover { text-decoration: underline; }
.portfolio-site .labs-section.project-domain { margin: 1.45rem 0 3.1rem; }
.portfolio-site .labs-section.project-domain .selected-work-head { margin-bottom: .35rem; }
.portfolio-site .labs-section.project-domain .project-domain-intro { margin: .3rem 0 .95rem; }
@media (max-width: 640px) {
  .portfolio-site .labs-hero-compact { padding: .6rem 0 .65rem; }
  .portfolio-site .labs-section.project-domain { margin: .85rem 0 2.3rem; }
}

/* Make the whole featured card a case-study destination; GitHub stays distinct. */
.portfolio-site .project-domain .work-card { position: relative; }
.portfolio-site .project-domain .work-name a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.portfolio-site .project-domain .work-figure,
.portfolio-site .project-domain .project-links a { position: relative; z-index: 2; }
.portfolio-site .project-domain .work-card:hover { border-color: #88a58d; }
.portfolio-site .project-card-target { color: var(--accent); font-size: .85rem; font-weight: 680; margin: .35rem 0 .6rem; }
