.cv-layout .nav-wrap>header{transition:box-shadow .24s var(--ease-out), border-color .24s var(--ease-out)}.cv-layout .nav-wrap[data-scrolled=true]>header{border-color:var(--hero-rule)}.cv-layout :is(.resume-download-link,.contact-arrow){transition:transform .24s var(--ease-out), box-shadow .24s var(--ease-out), filter .24s var(--ease-out)}.cv-layout :is(.entry-action,.resume-socials a,.contact-links a,.footer-baseline a){text-decoration-thickness:1px;transition:color .18s,text-underline-offset .18s}.cv-layout .entry-action>span,.cv-layout .resume-download-link>span:last-child{transition:transform .24s var(--ease-out)}.cv-layout :is(.entry-action,.resume-socials a,.contact-links a,.footer-baseline a):focus-visible{text-underline-offset:7px}.cv-layout :is(.resume-download-link,.entry-action,.contact-links a,.nav-toggle):active{transform:translateY(1px)}@media (hover:hover) and (pointer:fine){.cv-layout :is(.entry-action,.resume-socials a,.contact-links a,.footer-baseline a):hover{text-underline-offset:7px}}@media screen and (prefers-reduced-motion:no-preference){.cv-layout .resume-heading h1 span{animation:portfolio-rise .65s var(--ease-out) both}.cv-layout .resume-heading h1 span:last-child{animation-delay:90ms}.cv-layout .resume-portrait{animation:portfolio-portrait-in .8s var(--ease-out) both}.cv-layout .resume-portrait:after{transform:rotate(calc(-35deg + var(--pointer-x,0) * 18deg));transition:transform .7s var(--ease-out)}.cv-layout .hero-orbits{animation:portfolio-orbits-in 1.4s var(--ease-out) both}.cv-layout .hero-orbits svg{transform:rotate(calc(-18deg + var(--pointer-x,0) * 12deg)) translateY(calc(var(--pointer-y,0) * 8px));transition:transform .8s var(--ease-out)}.cv-layout :is(.resume-roles,.resume-introduction,.resume-contacts){animation:portfolio-rise .56s .1s var(--ease-out) both}.cv-layout .resume-introduction{animation-delay:.16s}.cv-layout .resume-contacts{animation-delay:.22s}.cv-layout .resume-availability>span{position:relative}.cv-layout .resume-availability>span:after{content:"";border:1px solid var(--hero-accent);border-radius:50%;animation:1.6s .6s 2 both portfolio-status-pulse;position:absolute;inset:-4px}.cv-layout .motion-enter{animation:portfolio-rise .56s var(--reveal-delay,0s) var(--ease-out) both}.cv-layout .section-header.motion-enter .section-header-line:before{transform-origin:0;animation:portfolio-rule-in .7s var(--reveal-delay,0s) var(--ease-out) both}.cv-layout .mobile-menu.is-open{animation:portfolio-menu-in .22s var(--ease-out) both}.cv-layout .mobile-menu.is-open>.mobile-menu-item{animation:portfolio-rise .28s var(--ease-out) both}.cv-layout .mobile-menu.is-open>.mobile-menu-item:nth-child(2){animation-delay:20ms}.cv-layout .mobile-menu.is-open>.mobile-menu-item:nth-child(3){animation-delay:40ms}.cv-layout .mobile-menu.is-open>.mobile-menu-item:nth-child(4){animation-delay:60ms}.cv-layout .mobile-menu.is-open>.mobile-menu-item:nth-child(5){animation-delay:80ms}.cv-layout .mobile-menu.is-open>.mobile-menu-item:nth-child(6){animation-delay:.1s}@media (hover:hover) and (pointer:fine){.cv-layout .resume-download-link:is(:hover,:focus-visible){box-shadow:0 6px 16px color-mix(in srgb, var(--brand-deep) 24%, transparent);filter:brightness(1.04);transform:translateY(-2px)}.cv-layout .resume-download-link:is(:hover,:focus-visible)>span:last-child{transform:translateY(2px)}.cv-layout .entry-action:is(:hover,:focus-visible)>span{transform:translate(3px,-3px)}.cv-layout .contact-email:is(:hover,:focus-visible) .contact-arrow{transform:translate(3px,-3px)rotate(-8deg)}.cv-layout .entry-media :is(img,video){transition:transform .65s var(--ease-out)}.cv-layout .project-entry-personal:is(:hover,:focus-within) .entry-media :is(img,video){transform:scale(1.025)}}}@keyframes portfolio-rise{0%{opacity:.45;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes portfolio-portrait-in{0%{opacity:.5;transform:scale(.94)rotate(-4deg)}to{opacity:1;transform:none}}@keyframes portfolio-orbits-in{0%{opacity:0;transform:rotate(-24deg)scale(.9)}to{opacity:.16;transform:none}}@keyframes portfolio-status-pulse{0%{opacity:.65;transform:scale(.55)}to{opacity:0;transform:scale(1.8)}}@keyframes portfolio-rule-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes portfolio-menu-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.pf-btn{background:var(--pf-btn-bg);overflow-wrap:break-word;min-width:0;max-width:100%}.pf-btn[aria-disabled=true]{pointer-events:auto}.pf-btn-bubble{transition:transform var(--dur-fast) var(--ease-out)}@media (hover:hover){.pf-btn:not([aria-disabled=true]):not(:disabled):hover{background:var(--pf-btn-bg-hover)}.pf-btn:not([aria-disabled=true]):not(:disabled):hover .pf-btn-bubble{transform:translate(2px)}}.pf-btn:not([aria-disabled=true]):not(:disabled):active{transform:translateY(1px)}@media (hover:hover){.pf-icon-btn:not(:disabled):hover{background:var(--sun-200)}}.pf-icon-btn:not(:disabled):active{transform:translateY(1px)}.pf-tag{background:var(--pf-tag-bg);overflow-wrap:anywhere;max-width:100%}@media (hover:hover){.pf-tag--interactive:not(.pf-tag--active):hover{background:var(--sun-200)}}.page-shell{--pf-tint-on-light:#3420170e;--pf-tint-on-dark:#ffffff17}.page-shell.dark-mode{--pf-tint-on-light:#fff5e812}.stat-band>*,.capability,.language-row,.pf-skill-tile,.pf-contact:not(.pf-contact--link){isolation:isolate;position:relative}.stat-band>:before,.capability:before,.language-row:before,.pf-skill-tile:before,.pf-contact:not(.pf-contact--link):before{content:"";z-index:-1;border-radius:var(--radius-xs);pointer-events:none;transition:background var(--dur-fast) var(--ease-out);background:0 0;position:absolute;inset:-8px -12px}.capability:before,.language-row:before{inset:-1px -12px}@media (hover:hover){.stat-band>:hover:before,.pf-skill-tile:hover:before,.pf-contact:not(.pf-contact--link):hover:before{background:var(--pf-tint-on-dark)}.capability:hover:before,.language-row:hover:before{background:var(--pf-tint-on-light)}}.pf-card{grid-template-rows:subgrid;grid-row:span 6;row-gap:10px;min-width:0;padding-bottom:16px;display:grid;position:relative}.pf-card-media{aspect-ratio:16/10;border-radius:var(--radius-md);place-items:center;margin-bottom:6px;display:grid;position:relative;overflow:hidden}.pf-card-heading{align-items:flex-start;gap:12px;min-width:0;display:flex}.pf-card-heading h3{min-width:0;color:var(--ink-800);font:var(--weight-bold) var(--text-body-md)/1.3 var(--font-sans-stack);letter-spacing:.035em;text-transform:uppercase;margin:2px 0 0}.pf-card-index{background:var(--ink-800);height:26px;color:var(--paper-100);border-radius:var(--radius-pill);font:var(--type-mono);flex:0 0 26px;place-items:center;display:grid}.pf-card-kind{font:var(--type-body);color:var(--text-muted);margin:0 0 0 38px}.pf-card-tags{flex-wrap:wrap;align-content:flex-start;gap:6px;margin-left:38px;display:flex}.pf-card-summary{max-width:65ch;font:var(--type-body);color:var(--ink-700);text-wrap:pretty;margin:0 0 0 38px}.pf-card-action{color:var(--ink-800);font:var(--weight-bold) 13px/1.4 var(--font-sans-stack);align-items:center;gap:8px;margin:8px 0 0 38px;display:flex}.pf-card-action>[aria-hidden]{transition:transform var(--dur-fast) var(--ease-out)}@media (hover:hover) and (prefers-reduced-motion:no-preference){.pf-card:hover .pf-card-action>[aria-hidden]{transform:translate(2px,-2px)}}.pf-card-status{border-radius:var(--radius-pill);background:var(--paper-50);max-width:calc(100% - 24px);color:var(--ink-800);font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;padding:8px 10px;position:absolute;top:12px;left:12px}.pf-card-arrow{border-radius:var(--radius-pill);background:var(--paper-50);place-items:center;width:34px;height:34px;display:grid;position:absolute;bottom:10px;right:10px}.pf-card:has(.pf-card-activator){cursor:pointer}.pf-card-media{box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out)}.pf-card-media-icon{z-index:1;transition:transform var(--dur-base) var(--ease-out);position:relative}.pf-card-media-preview{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.pf-card-media:has(.pf-card-media-preview):after{content:"";pointer-events:none;background:linear-gradient(135deg,#141d230a,#141d2352);position:absolute;inset:0}.pf-card-arrow{opacity:0;transition:opacity var(--dur-fast) var(--ease-out)}.pf-card-activator{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;overflow-wrap:break-word;background:0 0;border:none;margin:0;padding:0}.pf-card-activator:after{content:"";z-index:2;border-radius:var(--radius-md);position:absolute;inset:0}.pf-card-activator:focus-visible{outline:none}.pf-card-activator:focus-visible:after{outline:3px solid var(--denim-500);outline-offset:3px}.pf-card:has(.pf-card-activator:focus-visible) .pf-card-media{box-shadow:var(--shadow-raised);transform:translateY(-3px)}.pf-card:has(.pf-card-activator:focus-visible) .pf-card-arrow{opacity:1}@media (hover:hover){.pf-card:hover .pf-card-media{box-shadow:var(--shadow-raised);transform:translateY(-3px)}.pf-card:hover .pf-card-media-icon{transform:scale(1.08)}.pf-card:hover .pf-card-arrow{opacity:1}.pf-card:hover .pf-tag{border-color:var(--ink-300)}}@media (hover:none){.pf-card-arrow{opacity:1}}.exp-item{isolation:isolate;position:relative}.exp-item:before{content:"";z-index:-1;border-radius:var(--radius-xs);pointer-events:none;transition:background var(--dur-fast) var(--ease-out);background:0 0;position:absolute;inset:2px -14px}:is(.exp-item:has(.exp-toggle),.exp-item--link){cursor:pointer}.exp-head{align-items:center;gap:10px;min-width:0;display:flex}.exp-toggle,.exp-open{appearance:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;overflow-wrap:break-word;background:0 0;border:none;border-radius:3px;min-width:0;margin:0;padding:0}.exp-toggle:after,.exp-open:after{content:"";z-index:1;position:absolute;inset:0}.exp-toggle:focus-visible,.exp-open:focus-visible{outline:3px solid var(--denim-500);outline-offset:3px}.exp-item:has(.exp-toggle:focus-visible):before{background:var(--pf-tint-on-light)}.exp-item:has(.exp-open:focus-visible):before{background:var(--pf-tint-on-light)}.exp-preview{margin-top:2px}@media (width<=768px){.exp-preview{display:none}}.exp-chevron{transition:transform var(--dur-base) var(--ease-out);flex:none;margin-left:auto}@media (width>=769px){.exp-chevron{display:none}}.exp-item[data-open=false] .exp-chevron{transform:rotate(-90deg)}.exp-details{z-index:2;cursor:auto;transition:grid-template-rows var(--dur-base) var(--ease-out), visibility 0s;grid-template-rows:1fr;display:grid;position:relative}.exp-details[data-open=false]{visibility:hidden;transition:grid-template-rows var(--dur-base) var(--ease-out), visibility 0s var(--dur-base);grid-template-rows:0fr}.exp-details-inner{min-height:0;overflow:hidden}@media (hover:hover){.exp-item--link:hover:before{background:var(--pf-tint-on-light)}.exp-item:has(.exp-toggle):hover:before{background:var(--pf-tint-on-light)}}.exp-logo{border-radius:var(--radius-pill);background:var(--skill-disc-bg);flex:none;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.pf-contact{overflow-wrap:anywhere;min-width:0;transition:transform var(--dur-fast) var(--ease-out)}.pf-contact-icon{transition:background var(--dur-fast) var(--ease-out)}@media (hover:hover){.pf-contact--link:hover{transform:translate(3px)}.pf-contact--link:hover .pf-contact-icon{background:#ffffff24}}.pf-contact--link:focus-visible .pf-contact-icon{background:#ffffff24}.pf-skill-disc{box-shadow:var(--shadow-card);transition:transform var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out)}@media (hover:hover){.pf-skill-tile:hover .pf-skill-disc{box-shadow:var(--shadow-raised);transform:translateY(-2px)}}.section-header{align-items:center;gap:var(--space-4);row-gap:var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.section-header>h2{overflow-wrap:break-word;-webkit-hyphens:none;hyphens:none;flex:auto;min-width:0}.section-header-line{flex:40px;min-width:16px;height:1px}.section-header-action{flex:none;max-width:100%}@media (width<=640px){.section-header-line{flex-basis:100%}}.pf-nav-link{cursor:pointer;font:var(--weight-bold) var(--text-caption) / 1 var(--font-sans-stack);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);transition:var(--transition-control);background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 0}@media (hover:hover){.pf-nav-link:hover{color:var(--ink-800);border-bottom-color:var(--sun-400)}}.pf-nav-link:focus-visible{color:var(--ink-800)}.pf-nav-link[aria-current=location]{color:var(--ink-800);border-bottom-color:var(--sun-400)}.pf-lang-btn{cursor:pointer;border-radius:var(--radius-pill);font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-600);transition:var(--transition-control);background:0 0;border:none;padding:5px 12px}.pf-lang-btn[aria-pressed=true]{background:var(--ink-800);color:var(--paper-100);box-shadow:var(--shadow-press)}@media (hover:hover){.pf-lang-btn[aria-pressed=false]:hover{background:var(--paper-200)}}.pf-wordmark{font:inherit;color:inherit}.nav-desktop-controls{align-items:center;gap:var(--space-4);min-width:0;display:flex}@media (width<=1100px){.nav-desktop-controls{display:none}}.nav-toggle{border:2px solid var(--ink-800);border-radius:var(--radius-pill);width:42px;height:42px;color:var(--ink-800);cursor:pointer;background:0 0;flex:none;justify-content:center;align-items:center;padding:0;display:none}@media (width<=1100px){.nav-toggle{display:inline-flex}}.mobile-menu{z-index:40;max-height:min(70dvh,520px);padding:var(--space-4);background:var(--paper-50);border:1px solid var(--border-hairline);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);opacity:0;transition:opacity var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out);gap:4px;display:none;position:absolute;top:calc(100% + 10px);left:0;right:0;overflow-y:auto;transform:translateY(-6px)}.mobile-menu.is-open{opacity:1;display:grid;transform:none}@starting-style{.mobile-menu.is-open{opacity:0;transform:translateY(-6px)}}.mobile-menu-item{justify-content:space-between;align-items:center;gap:var(--space-3);border-radius:var(--radius-xs);width:100%;min-height:46px;color:var(--ink-800);text-align:left;cursor:pointer;font:var(--weight-bold) var(--text-caption) / 1.2 var(--font-sans-stack);letter-spacing:var(--tracking-label);text-transform:uppercase;background:0 0;border:none;padding:10px 12px;display:flex}@media (hover:hover){.mobile-menu-item:hover{background:var(--paper-200)}}.mobile-menu-item:active{background:var(--sun-200)}.mobile-menu-item[aria-current=location]{background:var(--paper-200)}.mobile-menu-item[aria-current=location]>span:first-child{box-shadow:inset 0 -.14em 0 var(--sun-400)}.mobile-menu-footer{align-items:center;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-hairline);flex-wrap:wrap;margin-top:6px;display:flex}.pf-skip-link{--pf-skip-bg:var(--paper-50,#fffdf8);--pf-skip-fg:var(--ink-800,#241209);--pf-skip-ring:var(--denim-500,#396b95);--pf-skip-shadow:var(--shadow-card);z-index:80;margin:var(--shell-pad,12px);min-height:44px;max-width:calc(100vw - 2 * var(--shell-pad,12px));border:2px solid var(--pf-skip-fg);border-radius:var(--radius-pill,999px);background:var(--pf-skip-bg);color:var(--pf-skip-fg);font:var(--weight-bold,700) var(--text-caption,11px) / 1 var(--font-sans-stack);letter-spacing:var(--tracking-label,.12em);text-transform:uppercase;box-shadow:var(--pf-skip-shadow);transform:translateY(calc(-100% - var(--shell-pad,12px) - 6px));transition:transform var(--dur-fast,.14s) var(--ease-out,ease);align-items:center;padding:12px 22px;text-decoration:none;display:inline-flex;position:fixed;top:0;left:0}.pf-skip-link:focus{transform:translateY(0)}.pf-skip-link:focus-visible{outline:3px solid var(--pf-skip-ring);outline-offset:3px}html[data-theme=dark] .pf-skip-link{--pf-skip-bg:#292323;--pf-skip-fg:#fff5e8;--pf-skip-ring:#3f7096;--pf-skip-shadow:0 3px 0 #00000059, 0 8px 20px #00000038}[data-pf-skip-target]:focus{outline:none}.pf-dialog-backdrop{z-index:60;background:var(--overlay-scrim);place-items:center;padding:clamp(8px,3vw,24px);display:grid;position:fixed;inset:0}.pf-dialog{color:var(--text-body);width:min(100%, var(--pf-dialog-width,720px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:var(--paper-50);border-radius:var(--radius-lg);max-height:min(92dvh,100%);box-shadow:var(--shadow-modal);padding:clamp(18px,5vw,40px);overflow-y:auto}.pf-dialog:focus{outline:none}.pf-dialog-title{font:var(--type-display-3);color:var(--text-display);text-transform:uppercase;overflow-wrap:break-word;min-width:0;margin:0}.pf-dialog-head{align-items:flex-start;gap:var(--space-4);display:flex}@media (prefers-reduced-motion:no-preference){.pf-dialog-backdrop{animation:pf-dialog-scrim-in .18s var(--ease-out) both}.pf-dialog{animation:pf-dialog-surface-in .26s var(--ease-out) both}@keyframes pf-dialog-scrim-in{0%{opacity:0}}@keyframes pf-dialog-surface-in{0%{opacity:0;transform:translateY(10px)scale(.985)}}}@media (prefers-reduced-motion:reduce){.pf-skip-link,.mobile-menu,.pf-card-media,.pf-card-media-icon,.pf-card-arrow,.pf-contact,.pf-skill-disc,.pf-btn-bubble,.exp-item:before,.exp-chevron,.exp-details,.exp-details[data-open=false],.stat-band>:before,.capability:before,.language-row:before,.pf-skill-tile:before,.pf-contact:not(.pf-contact--link):before{transition:none}.mobile-menu{transform:none}}@media print{.exp-details,.exp-details[data-open=false]{visibility:visible!important;grid-template-rows:1fr!important}.exp-details-inner{overflow:visible!important}.exp-preview{display:block!important}.exp-chevron,.exp-item:before,.stat-band>:before,.capability:before,.language-row:before,.pf-skill-tile:before,.pf-contact:before{display:none!important}}.project-gallery{min-width:0;margin-block:8px}.project-gallery-heading{font:var(--type-label);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--text-muted);justify-content:space-between;gap:12px;margin-bottom:12px;display:flex}.project-media{border:1px solid var(--border-hairline);border-radius:var(--radius-md);margin:0;overflow:hidden}.project-media-stage{background:var(--paper-200);min-width:0}.project-media-stage>a{display:block}.project-media-stage :where(img,video){object-fit:contain;background:var(--paper-200);width:100%;max-height:58dvh;display:block}.project-media-stage>a:focus-visible{outline-offset:-4px}.project-media figcaption{color:var(--text-muted);font:var(--type-body);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:12px 16px;display:flex}.project-media figcaption a{min-height:32px;color:var(--ink-800);text-underline-offset:3px;align-items:center;gap:6px;display:inline-flex}.project-media-error{font:var(--type-body);color:var(--text-muted);margin:0;padding:32px 20px}.project-gallery-thumbnails{grid-template-columns:repeat(auto-fit,minmax(76px,1fr));gap:8px;margin-top:12px;display:grid}.project-gallery-thumbnails button{background:var(--paper-200);min-width:0;color:var(--text-muted);cursor:pointer;border:2px solid #0000;border-radius:9px;padding:4px}.project-gallery-thumbnails button[aria-pressed=true]{border-color:var(--denim-600);color:var(--ink-800)}.project-gallery-thumbnails button:hover{border-color:var(--ink-300)}.project-gallery-thumbnails img{aspect-ratio:16/10;object-fit:contain;border-radius:4px;width:100%;display:block}.project-gallery-thumbnails span{font:var(--type-mono);padding:8px 2px 4px;line-height:1.4;display:block}.pf-card-media:has(.pf-card-media-preview){background-color:var(--preview-bg)!important;background-image:none!important}.skills-intro-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px 24px;margin-top:20px;display:flex}.skills-intro-row .skills-intro{flex:420px;max-width:72ch;margin:0}.skills-motion-toggle{min-height:var(--tap-min);border:1px solid var(--rule-on-ink);border-radius:var(--radius-pill);color:var(--text-on-denim);font:var(--type-label);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:0 0;padding:10px 16px;line-height:1.4}.skills-motion-toggle:hover,.skills-motion-toggle[aria-pressed=true]{background:var(--pf-tint-on-dark)}.skills-motion-toggle:focus-visible{outline-color:var(--text-on-denim)}.skills-strips .skill-carousel{margin-block:26px 0;padding-block:18px 20px}.skills-strips .pf-skill-tile{min-width:72px}.skills-strips .pf-skill-tile>span:last-child{white-space:nowrap;line-height:1.3!important}.skills-strips[data-paused=true] .skill-track{animation-play-state:paused}.capability-tool{max-width:100%;display:inline-block}@media screen and (prefers-reduced-motion:reduce){.skills-motion-toggle{display:none}.skills-strips .skill-carousel{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.skills-strips .skill-track,.skills-strips .skill-track-group{flex-wrap:nowrap;justify-content:flex-start;width:max-content}}@media print{.skills-motion-toggle{display:none!important}.skills-strips .pf-skill-tile{width:auto;min-width:0}}.pf-card-proof{border-block:1px solid var(--border-hairline);color:var(--ink-800);font:var(--weight-semibold) 14px/1.5 var(--font-sans-stack);margin:4px 0 0;padding:12px 0}.process-preview{width:100%;color:var(--ink-800);grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;display:grid}.process-preview>span{background:var(--paper-50);border:1px solid var(--border-hairline);border-radius:var(--radius-sm);font:var(--weight-semibold) 13px/1.4 var(--font-sans-stack);gap:6px;padding:10px;display:grid}.process-preview small{color:var(--text-muted);font-size:12px}.project-overview{border-block:1px solid var(--border-hairline);grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:4px 0 8px;padding-block:20px;display:grid}.project-overview dt{font:var(--type-label);color:var(--text-muted);margin-bottom:8px}.project-overview dd{color:var(--text-body);font:var(--weight-semibold) 15px/1.5 var(--font-sans-stack);margin:0}.case-study{gap:28px;display:grid}.case-study h3,.process-diagram h3,.benchmark h3,.shader-playground h3{color:var(--text-display);font:var(--weight-semibold) 23px/1.25 var(--font-sans-stack);margin:0 0 12px}.case-study h4{font:var(--weight-semibold) 17px/1.4 var(--font-sans-stack);margin:0 0 8px}.case-study p,.process-diagram p,.benchmark p,.shader-playground p{color:var(--text-body);font:var(--type-body);margin:0}.decision-list{gap:20px;margin:0;padding-left:24px;display:grid}.decision-list li{padding-left:8px}.process-diagram ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0;list-style:none;display:grid}.process-diagram li{border:1px solid var(--border-hairline);border-radius:var(--radius-md);background:var(--paper-100);padding:18px;position:relative}.process-number{font:var(--type-label);color:var(--text-muted);margin-bottom:16px;display:block}.process-diagram strong{margin-bottom:8px;display:block}.evidence-note{color:var(--text-muted)!important;font-size:14px!important;line-height:1.6!important}.benchmark,.shader-playground,.process-diagram{min-width:0;padding-block:12px}.benchmark-chart{margin-block:24px}.benchmark-row{font:14px/1.4 var(--font-sans-stack);grid-template-columns:140px minmax(0,1fr) 62px;align-items:center;gap:12px;margin-block:16px;display:grid}.benchmark-row strong{text-align:right;font-variant-numeric:tabular-nums}.benchmark-track{background:var(--paper-200);border-radius:3px;height:24px;display:block;position:relative}.benchmark-bar{background:var(--denim-400);border-radius:3px;height:100%;display:block}.benchmark-interval{border-inline:2px solid var(--ink-800);height:8px;position:absolute;top:8px}.benchmark-interval:after{content:"";border-top:2px solid var(--ink-800);position:absolute;top:3px;left:0;right:0}.benchmark-axis{color:var(--text-muted);font:12px/1.5 var(--font-sans-stack);justify-content:space-between;margin:0 74px 0 152px;display:flex}.benchmark>a{min-height:44px;color:var(--ink-800);font:var(--type-body);text-underline-offset:4px;align-items:center;display:inline-flex}.shader-stage{border-radius:var(--radius-md);background:var(--paper-200);margin-top:16px;overflow:hidden}.shader-stage canvas,.shader-stage img{aspect-ratio:8/5;object-fit:cover;width:100%;display:block}.shader-stage canvas[hidden]{display:none}.shader-stage p{padding:16px}.shader-controls{border:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;min-width:0;margin:0;padding:20px 0 0;display:grid}.shader-controls label{color:var(--text-body);font:var(--type-body);grid-template-columns:1fr auto;gap:4px 12px;display:grid}.shader-controls output{font-variant-numeric:tabular-nums}.shader-controls input{width:100%;min-width:0;height:44px;accent-color:var(--denim-500);grid-column:1/-1;margin:0}.shader-actions{flex-wrap:wrap;grid-column:1/-1;gap:12px;display:flex}.shader-actions button,.capability-projects button{cursor:pointer;border:1px solid var(--border-hairline);border-radius:var(--radius-pill);min-height:44px;color:var(--ink-800);background:var(--paper-100);font:var(--type-body);padding:10px 16px;transition:background .16s}.shader-actions button:hover,.capability-projects button:hover{background:var(--paper-200)}.shader-controls:disabled{opacity:.6}.capability-projects{flex-wrap:wrap;gap:8px;display:flex}.capability-projects button{align-items:center;gap:10px;font-size:14px;display:inline-flex}.contact-availability{max-width:40ch;color:var(--ink-800);font:var(--type-body);margin-top:24px}@media (width<=560px){.project-overview{grid-template-columns:1fr;gap:16px}.project-overview dt{margin-bottom:4px}.benchmark-row{grid-template-columns:minmax(0,1fr) 62px;gap:6px 12px}.benchmark-row>span:first-child{grid-column:1/-1}.benchmark-axis{margin-left:0}.process-diagram ol,.shader-controls{grid-template-columns:1fr}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
