/* Final shared layer: scoped to the maintained portfolio shell. */
.portfolio-page { --portfolio-space:clamp(32px,5vw,64px); }
.portfolio-page .portfolio-header { position:sticky;top:0;z-index:50;border-bottom:1px solid var(--color-border)!important; }
.portfolio-header-inner { max-width:1320px;margin:auto;min-height:76px;padding:12px 28px;display:flex;align-items:center;gap:24px; }
.portfolio-brand { font-weight:700;letter-spacing:-.5px;color:var(--color-text-primary);text-decoration:none;white-space:nowrap; }
.portfolio-brand span { color:var(--color-accent);padding-left:8px;font-size:24px; }
.portfolio-primary-nav { display:flex;align-items:center;gap:18px;margin-left:auto; }
.portfolio-primary-nav a,.portfolio-menu summary,.portfolio-language { display:inline-flex;align-items:center;min-height:44px;font-size:13px;font-weight:600;color:var(--color-text-primary);text-decoration:none; }
.portfolio-primary-nav a:hover,.portfolio-menu a:hover { color:var(--color-accent); }
.portfolio-menu { position:relative; }
.portfolio-menu summary { cursor:pointer;list-style:none;gap:8px; }
.portfolio-menu summary::-webkit-details-marker { display:none; }
.portfolio-menu summary::after { content:'+';font-size:18px;color:var(--color-accent); }
.portfolio-menu[open] summary::after { content:'−'; }
.portfolio-menu nav { position:absolute;right:0;top:calc(100% + 10px);min-width:210px;display:grid;padding:12px;background:var(--color-bg);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 12px 32px #0002; }
.portfolio-menu nav a { display:flex;align-items:center;min-height:44px;padding:0 12px;text-decoration:none;color:var(--color-text-primary);font-size:14px; }
.portfolio-preferences { display:flex;align-items:center;gap:8px; }
.portfolio-language,.portfolio-theme { justify-content:center;min-width:44px;border-radius:50%;background:var(--color-bg-secondary); }
.portfolio-page .portfolio-theme { width:44px;height:44px;padding:0;display:grid;place-items:center;border:0;color:var(--color-text-primary);cursor:pointer; }
.portfolio-page .combined-layout { max-width:1320px;gap:56px;grid-template-columns:240px minmax(0,1fr);padding:0 28px; }
.portfolio-page .combined-content { min-width:0; }
.portfolio-page .mini-column { min-width:0; }
.portfolio-page .mini-stage { top:100px; }
.portfolio-page .mini-art { height:300px; }
.portfolio-page .mini-controls { display:flex;flex-wrap:wrap;gap:8px;padding:8px 0; }
.mini-options summary { cursor:pointer;color:var(--color-text-secondary);font-size:12px;min-height:44px;display:flex;align-items:center;gap:8px; }
.mini-options summary::before { content:'+';color:var(--color-accent);font-size:18px; }
.mini-options[open] summary::before { content:'−'; }
.mini-options summary::-webkit-details-marker { display:none; }
.portfolio-page .mini-controls #mini-label { flex:1 0 100%; }
.portfolio-page .mini-controls button { min-height:44px;padding:8px;color:var(--color-accent); }
.portfolio-page .mini-scene-title { max-width:240px;line-height:1.5; }
.portfolio-page .mini-progress { margin-top:4px; }
.portfolio-page .combined-content .hero-section { padding:52px 0 48px!important; }
.portfolio-eyebrow { display:block;font-size:12px;color:var(--color-accent);font-weight:600;line-height:1.5;margin-bottom:12px; }
.portfolio-page .portfolio-hero .hero-headline { margin:0 0 20px;font-size:clamp(38px,4.2vw,62px)!important;letter-spacing:-2px!important; }
.portfolio-position { font-size:clamp(20px,2vw,26px);line-height:1.45;font-weight:600;max-width:760px;margin:0 0 16px;color:var(--color-text-primary); }
.portfolio-page .portfolio-hero .hero-lead { font-size:15px!important;line-height:1.8!important;max-width:720px; }
.portfolio-evidence { display:flex;flex-wrap:wrap;gap:8px 20px;list-style:none;padding:0;margin:22px 0;color:var(--color-text-secondary);font-size:12px; }
.portfolio-evidence li::before { content:'—';margin-right:8px;color:var(--color-accent); }
.portfolio-page .hero-actions { align-items:center;gap:12px; }
.portfolio-text-link { display:inline-flex;align-items:center;min-height:44px;color:var(--color-accent);font-size:14px;font-weight:600;text-underline-offset:5px; }
.portfolio-page .hero-actions .portfolio-text-link { padding:10px!important;border:0; }
.portfolio-page .portfolio-section { padding:var(--portfolio-space) 0!important; }
.portfolio-section > h2 { font-size:clamp(24px,2.4vw,32px);font-weight:600;letter-spacing:-.8px;margin:0 0 20px;line-height:1.35; }
.portfolio-section > p { font-size:15px;line-height:1.8;color:var(--color-text-secondary);max-width:760px; }
.portfolio-section .portfolio-section-lead { color:var(--color-text-primary);font-weight:600;font-size:18px; }
.work-list { margin-top:28px; }
.work-item { display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1fr);gap:28px;padding:28px 0;border-top:1px solid var(--color-border);scroll-margin-top:110px; }
.work-item:first-child { border-top:0;padding-top:0; }
.work-figure { align-self:start;background:#fff;border-radius:12px;overflow:hidden;display:block; }
.portfolio-page .work-figure img { display:block;width:100%;height:auto;max-height:300px;object-fit:contain;aspect-ratio:1.15;padding:12px;box-sizing:border-box; }
.portfolio-page .work-software .work-figure img { padding:0;object-fit:cover;object-position:top; }
.work-copy { min-width:0; }
.work-copy h3 { font-size:22px;font-weight:600;line-height:1.35;letter-spacing:-.6px;margin:0 0 14px; }
.work-copy h3 a { color:var(--color-text-primary);text-decoration:none; }
.work-copy h3 a:hover { text-decoration:underline;text-underline-offset:4px; }
.work-copy p { font-size:14px;line-height:1.75;color:var(--color-text-secondary);margin:0 0 14px; }
.work-copy .work-question { color:var(--color-text-primary); }
.work-copy dl { margin:0; }
.work-copy dt { font-size:12px;font-weight:700;color:var(--color-text-primary);margin:12px 0 4px; }
.work-copy dd { margin:0;font-size:14px;line-height:1.75;color:var(--color-text-secondary); }
.work-copy .work-limit,.work-limit { font-size:12px;line-height:1.7;color:var(--color-text-muted);margin:14px 0 0; }
.work-copy .work-stack { font-size:12px;color:var(--color-accent); }
.work-links,.record-links { display:flex;flex-wrap:wrap;gap:8px 24px; }
.method-list { margin:24px 0 0;display:grid;gap:0; }
.method-list > div { display:grid;grid-template-columns:minmax(100px,.35fr) 1fr;gap:24px;border-top:1px solid var(--color-border);padding:14px 0; }
.method-list dt { font-size:14px;font-weight:600;color:var(--color-text-primary); }
.method-list dd { margin:0;font-size:14px;line-height:1.7;color:var(--color-text-secondary); }
.portfolio-education { list-style:none;padding:0;margin:24px 0;display:grid;gap:22px; }
.portfolio-education li { padding-left:18px;border-left:2px solid var(--color-accent); }
.portfolio-education h3 { font-size:16px;line-height:1.5;margin:0 0 4px;font-weight:600; }
.portfolio-education p { margin:0;font-size:14px;color:var(--color-text-secondary);line-height:1.7; }
.portfolio-page .education-meta { font-size:12px;color:var(--color-text-muted); }
.portfolio-skills { display:grid;gap:24px;margin-top:24px; }
.portfolio-skills article { border-top:1px solid var(--color-border);padding-top:22px; }
.portfolio-skills h3 { font-size:20px;font-weight:600;margin:0 0 12px; }
.portfolio-skills p,.case-decisions dd { color:var(--color-text-secondary);font-size:14px;line-height:1.8;margin:0; }
.portfolio-skills details { margin-top:8px; }
.portfolio-skills summary,.evidence-gaps summary { min-height:44px;cursor:pointer;display:list-item;list-style-position:inside;color:var(--color-text-primary);font-size:13px;line-height:1.7;padding:10px 0; }
.portfolio-skills details p,.evidence-gaps p { padding:8px 0 16px; }
.case-decisions { margin:28px 0;display:grid;gap:20px; }
.case-decisions dt { font-size:17px;font-weight:600;margin-bottom:8px;color:var(--color-text-primary); }
.case-decisions dd { margin:0; }
.portfolio-case .combined-content p a { color:var(--color-accent);text-underline-offset:4px; }
.portfolio-case .combined-content p a:hover { color:var(--color-accent-hover); }
.portfolio-page .portfolio-footer { max-width:1320px;margin:auto;padding:28px;display:flex;flex-wrap:wrap;gap:12px 28px;border-top:1px solid var(--color-border);font-size:12px;color:var(--color-text-muted); }
.portfolio-footer a { color:var(--color-text-secondary);min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px; }
.portfolio-footer span { min-height:44px;display:inline-flex;align-items:center; }
.portfolio-page .combined-content section { scroll-margin-top:100px!important; }
.portfolio-research .mini-art { height:240px; }
.portfolio-page .evidence-gaps { margin-top:18px;border-top:1px solid var(--color-border); }
.portfolio-page .evidence-gaps p { font-size:14px;line-height:1.8;color:var(--color-text-secondary); }
.portfolio-page .record-links { margin-top:20px; }
.portfolio-page .skip-link { position:fixed;left:16px;top:-120px;z-index:100;min-height:44px;padding:12px 18px;color:var(--color-text-primary);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:8px;text-decoration:none; }
.portfolio-page .skip-link:focus { top:12px;outline:2px solid var(--color-accent);outline-offset:3px; }
@media(max-width:1100px) {
 .portfolio-page .combined-layout { grid-template-columns:180px minmax(0,1fr);gap:30px; }
 .portfolio-header-inner { gap:18px; }
 .portfolio-page .mini-art { height:245px; }
 .portfolio-page #mini-character { width:175px;height:175px;left:calc(50% - 87px); }
 .work-item { gap:22px; }
}
@media(max-width:900px) {
 .portfolio-primary-nav { gap:12px; }
 .portfolio-brand { font-size:14px; }
 .portfolio-menu summary { font-size:12px; }
 .work-item { grid-template-columns:1fr; }
 .work-figure { max-width:480px; }
 .portfolio-page .work-figure img { aspect-ratio:1.7;max-height:240px; }
}
@media(max-width:750px) {
 .portfolio-header-inner { flex-wrap:wrap;gap:0 12px;padding:8px 20px;min-height:96px; }
 .portfolio-brand { flex:1;font-size:15px; }
 .portfolio-preferences { order:1;gap:4px; }
 .portfolio-primary-nav { order:2;flex:1 0 auto;margin:0;gap:20px; }
 .portfolio-menu { order:3; }
 .portfolio-menu summary { font-size:12px; }
 .portfolio-page .combined-layout { display:flex;flex-direction:column;padding:0 20px;gap:0; }
 .portfolio-page .mini-column { position:relative!important;top:auto!important;margin:0;padding:0;border:0;order:2;background:transparent; }
 .portfolio-page .combined-content { order:1;width:100%; }
 .portfolio-page .mini-stage { top:0!important;min-height:0;height:auto!important;padding:16px 0 24px; }
 .portfolio-page .mini-art { display:none; }
 .portfolio-page .mini-stage:has(.mini-options[open]) .mini-art { display:block;height:180px;max-width:360px; }
 .portfolio-page .mini-scene-title,.portfolio-page .mini-progress { display:none; }
 .portfolio-page .mini-options { max-width:400px; }
 .portfolio-page .portfolio-hero { position:relative;padding:30px 0 32px!important; }
 .portfolio-home .portfolio-hero::after { content:'';width:62px;height:62px;position:absolute;right:0;top:20px;background:url('/portfolio-assets/mini-preview.webp') center/contain no-repeat;pointer-events:none; }
 .portfolio-home .portfolio-hero>.portfolio-eyebrow { padding-right:72px;min-height:30px;margin-bottom:8px; }
 .portfolio-page .portfolio-hero .hero-headline { font-size:36px!important;letter-spacing:-1.7px!important;line-height:1.1!important;margin-bottom:18px; }
 .portfolio-position { font-size:21px;line-height:1.45; }
 .portfolio-page .portfolio-hero .hero-lead { font-size:14px!important;line-height:1.75!important; }
 .portfolio-evidence { gap:6px 14px;font-size:11px;margin:18px 0; }
 .portfolio-page .hero-actions { gap:8px 10px; }
 .portfolio-page .hero-actions a { font-size:12px!important;padding:11px 16px!important; }
 .portfolio-page .hero-actions .portfolio-text-link { padding:8px!important; }
 .portfolio-page .portfolio-section { padding:32px 0!important; }
 .work-item { gap:20px;padding:24px 0; }
 .work-copy h3 { font-size:22px; }
 .portfolio-page .portfolio-footer { padding:20px;gap:4px 18px; }
 .portfolio-page .combined-content section,.work-item { scroll-margin-top:120px!important; }
 .portfolio-research .combined-content .hero-section,.portfolio-case .combined-content .hero-section { padding-top:28px!important; }
 .portfolio-page .method-list>div { grid-template-columns:1fr;gap:4px; }
}
@media(max-width:360px) {
 .portfolio-header-inner { padding-inline:14px; }
 .portfolio-page .combined-layout { padding-inline:16px; }
 .portfolio-primary-nav { gap:12px; }
 .portfolio-primary-nav a { font-size:12px; }
 .portfolio-menu summary { font-size:11px; }
 .portfolio-page .portfolio-hero .hero-headline { font-size:32px!important; }
 .portfolio-position { font-size:19px; }
}
@media(prefers-reduced-motion:reduce) { .portfolio-page * { scroll-behavior:auto!important; } }

/* Reserve a separate diagram row above every sprite, including held objects.
   The gap also contains the sprite's small bob/rotation and SVG motion. */
.portfolio-page .mini-art { --mini-size:230px;height:calc(var(--mini-size) + 130px); }
.portfolio-page #mini-character { width:var(--mini-size)!important;height:var(--mini-size)!important;left:calc(50% - var(--mini-size)/2)!important;bottom:15px!important; }
.portfolio-page .mini-prop { top:8px!important;right:12px!important;width:100px!important; }
.portfolio-page .mini-floor { left:50%!important;right:auto!important;bottom:12px!important;width:calc(var(--mini-size)*.62);height:12px!important;transform:translateX(calc(-50% + var(--mini-ground-x, 0px)));z-index:0; }
.portfolio-page #mini-character { z-index:1; }
.portfolio-page .mini-stage { height:auto;min-height:480px; }
@media(max-width:1100px) {
 .portfolio-page .mini-art { --mini-size:175px; }
}
@media(max-width:750px) {
 .portfolio-page .mini-art { --mini-size:145px; }
 .portfolio-page .mini-stage:has(.mini-options[open]) .mini-art { height:calc(var(--mini-size) + 130px)!important; }
}

/* A consistent action group instead of a pill and unrelated text links. */
.portfolio-page .hero-actions { display:flex;flex-wrap:wrap;gap:10px; }
.portfolio-page .hero-actions a { display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;box-sizing:border-box;padding:12px 18px!important;border:1px solid var(--color-border)!important;border-radius:8px!important;background:transparent;color:var(--color-text-primary);font-family:var(--font-sans);font-size:13px!important;font-weight:600;line-height:1.4;text-decoration:none!important;box-shadow:none;transition:background .18s,border-color .18s; }
.portfolio-page .hero-actions .btn-primary { background:var(--color-accent);border-color:var(--color-accent)!important;color:var(--color-bg); }
.portfolio-page .hero-actions a::after { content:'↗';font-size:15px;line-height:1; }
.portfolio-page .hero-actions a[href^='#']::after { content:'→'; }
.portfolio-page .hero-actions a:hover { background:var(--color-bg-secondary);border-color:var(--color-accent)!important;transform:none; }
.portfolio-page .hero-actions .btn-primary:hover { background:var(--color-accent-hover);color:var(--color-bg); }
.portfolio-page .hero-actions a:focus-visible { outline:2px solid var(--color-accent);outline-offset:4px; }
.portfolio-page .work-software .careeros-brand-figure { display:flex;align-items:center;justify-content:center;min-height:300px;background:#29483e;border:1px solid #527263; }
.portfolio-page .work-software .careeros-brand-figure img { width:112px;height:112px;max-height:none;aspect-ratio:1;object-fit:contain;padding:0; }
@media(max-width:900px) { .portfolio-page .work-software .careeros-brand-figure { min-height:240px; } }
.portfolio-page .portfolio-footer { align-items:center;font-family:var(--font-sans);font-size:12px;font-weight:400;line-height:1.6;color:var(--color-text-muted); }
.portfolio-page .portfolio-footer a,.portfolio-page .portfolio-footer span { display:inline-flex;align-items:center;min-height:44px;font:inherit;letter-spacing:0;color:inherit;text-decoration:none; }
.portfolio-page .portfolio-footer a:hover { color:var(--color-accent); }
.portfolio-page .portfolio-footer a:focus-visible { outline:2px solid var(--color-accent);outline-offset:4px;border-radius:2px; }
.portfolio-research .scientific-figure { box-sizing:border-box;width:100%;margin:24px 0!important;padding:16px!important; }
.portfolio-research .scientific-figure img { display:block;width:100%!important;max-width:100%!important;height:auto!important;object-fit:contain;box-sizing:border-box; }
.portfolio-research .scientific-figure figcaption { margin:14px 0 0!important;font-family:var(--font-sans);font-size:13px!important;line-height:1.7!important;color:var(--color-text-secondary); }
/* Microscope and tablet rows contain stray shoe pixels from the preceding row.
   Their hair starts below this narrow gutter; other poses remain untouched. */
.portfolio-page #mini-character[data-sprite-row="work-1"],
.portfolio-page #mini-character[data-sprite-row="work-3"] { clip-path:inset(1% 0 0); }
@media(max-width:750px) {
 .portfolio-page .combined-layout { --mini-strip-gutter:20px; }
 .portfolio-page .mini-column { order:0;position:sticky!important;top:calc(var(--header-height,96px) - 1px)!important;z-index:35;background:var(--color-bg);border-bottom:1px solid var(--color-border);margin:0 calc(-1 * var(--mini-strip-gutter))!important;padding:0 var(--mini-strip-gutter)!important; }
 .portfolio-page .mini-stage { position:relative;display:grid;grid-template-columns:140px minmax(0,1fr);grid-template-rows:auto 1fr;gap:0 12px;align-items:center;padding:0;max-width:400px;margin:auto;min-height:0!important;height:auto!important; }
 .portfolio-page .mini-stage .mini-art,
 .portfolio-page .mini-stage:has(.mini-options[open]) .mini-art { grid-column:1;grid-row:1 / 3;display:block;--mini-size:85px;width:140px;height:110px!important;max-width:140px;margin:0; }
 .portfolio-page #mini-character { left:4px!important;bottom:8px!important; }
 .portfolio-page .mini-floor { left:46.5px!important;bottom:5px!important;height:8px!important; }
 .portfolio-page .mini-prop { width:40px!important;right:0!important;top:25px!important; }
 .portfolio-page .mini-terminal { font-size:5px;line-height:1.2;padding:3px; }
 .portfolio-page .mini-scene-title { position:absolute;left:152px;right:0;top:25px;display:flex;align-items:center;min-height:40px;box-sizing:border-box;margin:0;padding:0;font-size:11px;pointer-events:none; }
 .portfolio-page .mini-options { grid-column:2;grid-row:2;align-self:end;margin:0 0 4px;min-width:0;max-height:180px;overflow-y:auto; }
 .portfolio-page .mini-options summary { justify-content:center;width:44px;margin-left:auto;gap:0;font-size:0; }
 .portfolio-page .combined-content section,.portfolio-page .work-item { scroll-margin-top:calc(var(--header-height,96px) + var(--mini-height,110px) + 16px)!important; }
 .portfolio-home .portfolio-hero::after { content:none; }
 .portfolio-home .portfolio-hero>.portfolio-eyebrow { padding-right:0; }
}
@media(max-width:360px) { .portfolio-page .combined-layout { --mini-strip-gutter:16px; } }
.meta-link-row { display:inline-flex;align-items:baseline;gap:6px; }
.copy-email-btn { display:inline-flex;align-items:center;justify-content:center;padding:0 2px;margin:0;border:0;background:transparent;color:var(--color-accent);font-family:var(--font-mono);font-size:.85rem;line-height:1;cursor:pointer;opacity:.85;transition:color .15s,opacity .15s; }
.copy-email-btn:hover { color:var(--color-accent-hover);opacity:1; }
.copy-email-btn:focus-visible { outline:2px solid var(--color-accent);outline-offset:2px;border-radius:2px; }
