@keyframes work-wipe{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@keyframes work-depth{0%{transform:translateY(18px)scale(.985)}to{transform:translateY(0)scale(1)}}@keyframes portrait-settle{0%{transform:translateY(6px)scale(1.035)}30%,70%{transform:translateY(0)scale(1.015)}to{transform:translateY(-6px)scale(1.035)}}@keyframes frame-open{0%{opacity:.25;transform:scaleX(.88)}to{opacity:1;transform:scaleX(1)}}@keyframes card-settle{0%{transform:translateY(12px)scale(.99)}30%,75%{transform:translateY(0)scale(1)}to{transform:translateY(-6px)scale(1)}}@keyframes heading-settle{0%{translate:0 12px}30%,75%{translate:0}to{translate:0 -8px}}@keyframes scene-line{0%{opacity:.4;transform:scaleX(.35)}30%,75%{opacity:1;transform:scaleX(1)}to{opacity:.8;transform:scaleX(.8)}}@keyframes scene-arrow{0%{translate:-3px 3px}30%,75%{translate:0}to{translate:3px -3px}}@keyframes certificate-settle{0%{transform:translateY(8px)}30%,75%{transform:translateY(0)}to{transform:translateY(-4px)}}@keyframes hero-depth{0%{translate:0;scale:1.02}to{translate:0 -10px;scale:1.02}}@keyframes page-arrival{0%{opacity:.8;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.missing-page h1{animation:page-arrival .7s var(--motion-ease) both}}@keyframes timeline-progress{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.featured-image[data-motion=frame]:after{content:"";border:1px solid var(--accent);pointer-events:none;position:absolute;inset:0}.about-photo-frame{view-timeline-name:--portrait-position;view-timeline-axis:block}:is(.section,.about-intro,.thesis,.detail-story,.detail-gallery,.project-facts,.contact-body,.footer-invite,.missing-page){view-timeline-name:--reading-scene;view-timeline-axis:block}:is(.project-facts,.contact-body,.footer-invite){position:relative}:is(.project-facts,.contact-body,.footer-invite):before{content:"";background:var(--accent);transform-origin:0;pointer-events:none;height:1px;position:absolute;inset:0 0 auto}.certificate-image{transition:border-color var(--motion-hover), translate var(--motion-hover) var(--motion-ease);border:1px solid #0000}.capability-mobile{display:none}@media (hover:hover){.certificate:hover .certificate-image{border-color:var(--accent);translate:0 -2px}}@supports (animation-timeline:view()) and (animation-range:entry 0% entry 100%){@media (prefers-reduced-motion:no-preference){[data-motion=wipe]{animation:linear both work-wipe;animation-timeline:view(10%);animation-range:entry}[data-motion=depth]{animation:linear both work-depth;animation-timeline:view(10%);animation-range:entry entry 90%}[data-motion=frame]{view-timeline-name:--frame-position;view-timeline-axis:block}[data-motion=frame]:after{animation:linear both frame-open;animation-timeline:--frame-position;animation-range:entry}.about-photo-frame img{animation:linear both portrait-settle;animation-timeline:--portrait-position;animation-range:cover}.project-card{animation:linear both card-settle;animation-timeline:view(5%);animation-range:cover}:is(.section-intro h2,.education-heading h3,.thesis h4,.detail-story h2){animation:linear both heading-settle;animation-timeline:--reading-scene;animation-range:cover}.section-label>.eyebrow:first-child:before{transform-origin:0;animation:linear both scene-line;animation-timeline:--reading-scene;animation-range:cover}:is(.project-facts,.contact-body,.footer-invite):before{animation:linear both scene-line;animation-timeline:--reading-scene;animation-range:cover}.footer-heading,.about-photo>span{animation:linear both heading-settle;animation-timeline:--reading-scene;animation-range:cover}:is(.contact-socials a,.missing-actions a)>svg{animation:linear both scene-arrow;animation-timeline:--reading-scene;animation-range:cover}.contact-body:before,.contact-socials a>svg{animation-timeline:scroll(root);animation-range:0% 100%}.certificate{view-timeline-name:--certificate-position;view-timeline-axis:block}.certificate-image{animation:linear both certificate-settle;animation-timeline:--certificate-position;animation-range:cover}.hero{view-timeline-name:--hero-position;view-timeline-axis:block}.hero-photo{animation:linear both hero-depth;animation-timeline:--hero-position;animation-range:exit}.timeline-item{view-timeline-name:--experience-step;view-timeline-axis:block}.timeline-item:after{transition:none;animation:linear both timeline-progress;animation-timeline:--experience-step;animation-range:entry}}}@media (max-width:900px){.about-intro{grid-template-columns:minmax(0,1fr);gap:32px}.about-photo{width:min(100%,440px)}.about-photo img{object-position:center 80%}}@media (max-height:600px) and (orientation:landscape){.about-intro{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:6%}.about-photo-frame{aspect-ratio:4/3}.about-photo img{object-position:center 65%}}@media (max-width:700px){.capability-explorer{display:none}.capability-mobile{margin-top:28px;display:block}.capability-disclosure{border-top:1px solid var(--line)}.capability-disclosure:last-child{border-bottom:1px solid var(--line)}.capability-disclosure summary{color:var(--muted);grid-template-columns:22px minmax(0,1fr) 20px;align-items:center;gap:12px;padding:20px 0;font-size:19px;line-height:1.35;list-style:none;display:grid}.capability-disclosure summary::-webkit-details-marker{display:none}.capability-disclosure summary>svg{color:var(--accent);transition:transform var(--motion-panel) var(--motion-ease)}.capability-disclosure[open] summary{color:var(--fg)}.capability-disclosure[open] summary>svg{transform:rotate(180deg)}.capability-disclosure .capability-panel{min-height:0;padding:0 0 28px 34px}.capability-disclosure .capability-description{font-size:14px;font-weight:400}.capability-disclosure .capability-tools{padding-top:20px}}@media (prefers-reduced-motion:reduce){.certificate-image,.capability-disclosure summary>svg{transition:none}.certificate:hover .certificate-image{translate:none}}
