/* Experience sheets. Brand color stays in the light, rules, and small details. */
.work-screen .experience-stage{perspective:1400px}
.work-screen .experience-card{
 padding:32px 34px 0;border-radius:16px;isolation:isolate;overflow:hidden;
 border:1px solid color-mix(in srgb,var(--brand) 13%,var(--border));
 background:radial-gradient(ellipse at 100% 0%,rgba(var(--brand-rgb),.085),transparent 58%),var(--panel);
 box-shadow:0 20px 60px -35px #0009,0 1px 0 #ffffff06 inset;
 transform-origin:50% 85%;
}
.work-screen .experience-card:hover{box-shadow:0 24px 65px -35px #000a,0 1px 0 #ffffff09 inset;border-color:color-mix(in srgb,var(--brand) 27%,var(--border))}
.work-screen .experience-card::before{content:'';position:absolute;left:34px;right:34px;top:0;height:1px;opacity:.8;background:linear-gradient(90deg,var(--brand),rgba(var(--brand-rgb),.1) 75%,transparent);transform-origin:left}
.work-screen .experience-card::after{content:'';position:absolute;pointer-events:none;z-index:-1;inset:0;background:linear-gradient(110deg,transparent 25%,rgba(var(--brand-rgb),.09) 48%,transparent 70%);opacity:0}
.work-screen .experience-head{gap:17px;align-items:center}
.work-screen .company-icon{width:54px;height:54px;border-radius:12px}
.work-screen .brand-zyp .company-icon img{width:48px;height:48px}
.work-screen .brand-next .company-icon img{width:54px;height:54px}
.work-screen .brand-osu .company-icon img{width:30px;height:38px}
.work-screen .experience-title h3{font-size:29px;font-weight:550;letter-spacing:-.8px;line-height:1.15}
.work-screen .experience-title p{font-size:12px;margin-top:8px;color:var(--secondary)}
.work-screen .period{font-size:9px;letter-spacing:.35px;max-width:160px}
.work-screen .experience-summary{margin:25px 0 0;font-size:14px;line-height:1.85;max-width:650px}
.work-screen .experience-foot{margin:20px 0 26px;gap:16px}
.work-screen .experience-foot .tags{gap:6px}
.work-screen .experience-foot .tags span{background:transparent;border:1px solid var(--border);border-radius:5px;padding:5px 7px;color:var(--secondary);font-size:9px}
.work-screen .experience-card details{border-top:1px solid color-mix(in srgb,var(--brand) 10%,var(--border))}
.work-screen .experience-card summary{padding:17px 0;font-size:10px;letter-spacing:.5px}
.work-screen .contribution-body{display:grid;grid-template-columns:124px minmax(0,1fr);gap:28px;padding:10px 0 29px;animation:none}
.work-screen .proof{display:flex;flex-direction:column;align-items:flex-start;gap:9px;padding:0;margin:0;border:0;border-radius:0;background:none}
.work-screen .proof strong{font-size:42px;font-weight:500;letter-spacing:-1.7px;line-height:1.1;color:color-mix(in srgb,var(--brand) 38%,var(--ink));font-variant-numeric:tabular-nums}
.work-screen .proof span{font-size:11px;line-height:1.65;color:var(--muted);max-width:120px}
.work-screen .contribution-list{border-left:1px solid rgba(var(--brand-rgb),.2);padding-left:22px}
.work-screen .contribution{margin:0 0 19px;position:relative}
.work-screen .contribution::before{content:'';position:absolute;left:-26px;top:5px;width:6px;height:6px;background:color-mix(in srgb,var(--brand) 50%,var(--muted));border-radius:50%;box-shadow:0 0 0 4px var(--panel)}
.work-screen .contribution h4{font-size:12px;font-weight:550;line-height:1.5}
.work-screen .contribution p{font-size:12px;line-height:1.75;margin-top:5px;color:var(--secondary)}
.work-screen .contribution-list>.subtle-link{font-size:10px;text-decoration:underline;text-decoration-color:rgba(var(--brand-rgb),.45);text-underline-offset:5px}
.work-screen .section-heading{margin-bottom:25px}
.work-screen .section-heading h2{font-size:13px;font-weight:500;color:var(--secondary);letter-spacing:.2px}
.work-screen .section-heading:after{display:none}
.work-screen .section-total{font-variant-numeric:tabular-nums;letter-spacing:1px}
/* Finite entrance choreography; no pointer physics or animation loop. */
@media(prefers-reduced-motion:no-preference){
 .screens-ready .work-screen>.experience-stage{opacity:1;transform:none;transition:none}
 .screens-ready .experience-stage .experience-card{opacity:0;transform:translate3d(0,88px,0) rotateX(7deg) rotateZ(-1deg) scale(.95);transition:opacity .25s}
 .screens-ready .experience-stage.is-present .experience-card{animation:sheet-arrive 1s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .experience-card::before{animation:sheet-rule .95s .25s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .experience-card::after{animation:sheet-light 1.3s .1s ease-out both}
 .screens-ready .experience-stage.is-present .experience-head{animation:sheet-content .8s .13s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .company-icon{animation:logo-settle .9s .18s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .experience-summary{animation:sheet-content .85s .23s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .experience-foot{animation:sheet-content .8s .3s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .proof{animation:metric-arrive .9s .38s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .contribution{animation:sheet-content .8s cubic-bezier(.16,1,.3,1) both}
 .screens-ready .experience-stage.is-present .contribution:nth-child(1){animation-delay:.4s}
 .screens-ready .experience-stage.is-present .contribution:nth-child(2){animation-delay:.5s}
 .screens-ready .experience-stage.is-present .contribution:nth-child(3){animation-delay:.6s}
 .screens-ready #projects.is-in-view .has-preview{animation:sheet-content .8s cubic-bezier(.16,1,.3,1) both}
 .screens-ready #projects.is-in-view .has-preview:nth-child(2){animation-delay:.1s}
 .screens-ready #projects.is-in-view .has-preview:nth-child(3){animation-delay:.2s}
 .screens-ready .experience-stage:focus-within .experience-card{opacity:1;transform:none}
}
@keyframes sheet-arrive{from{opacity:0;transform:translate3d(0,88px,0) rotateX(7deg) rotateZ(-1deg) scale(.95)}to{opacity:1;transform:none}}
@keyframes sheet-content{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:none}}
@keyframes logo-settle{from{transform:translateY(12px) rotate(-12deg) scale(.8)}to{transform:none}}
@keyframes metric-arrive{from{opacity:0;transform:translateX(-20px)}to{opacity:1;transform:none}}
@keyframes sheet-rule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes sheet-light{0%{opacity:0;transform:translateX(-65%)}35%{opacity:1}100%{opacity:0;transform:translateX(65%)}}
.motion-paused .experience-stage .experience-card,.motion-paused .experience-stage .experience-card *{animation:none!important;opacity:1!important;transform:none!important}
.motion-paused .experience-card::before{animation:none!important;transform:none!important}.motion-paused .experience-card::after{animation:none!important;opacity:0!important}
[data-theme=light] .work-screen .experience-card{box-shadow:0 18px 45px -32px #0003}
[data-theme=light] .work-screen .proof strong{color:color-mix(in srgb,var(--brand) 40%,#252525)}
@media(max-width:1000px){.work-screen .experience-card{padding:26px 24px 0}.work-screen .contribution-body{grid-template-columns:102px minmax(0,1fr);gap:20px}.work-screen .proof strong{font-size:35px}.work-screen .experience-title h3{font-size:25px}}
@media(max-width:720px){
 .work-screen .experience-card{padding:23px 20px 0;border-radius:13px}
 .work-screen .experience-head{gap:12px}.work-screen .company-icon{width:44px;height:44px}.work-screen .brand-next .company-icon img{width:44px;height:44px}.work-screen .brand-zyp .company-icon img{width:40px;height:40px}.work-screen .brand-osu .company-icon img{width:25px;height:31px}
 .work-screen .experience-title h3{font-size:23px}.work-screen .experience-title p{font-size:11px}.work-screen .period{margin-left:56px;max-width:none;font-size:8px}
 .work-screen .experience-summary{font-size:12px;margin-top:21px}.work-screen .experience-foot{margin:17px 0 20px}.work-screen .experience-foot .tags span{font-size:8px}
 .work-screen .contribution-body{grid-template-columns:1fr;gap:22px;padding-bottom:24px}.work-screen .proof{flex-direction:row;gap:15px;align-items:center}.work-screen .proof strong{font-size:34px}.work-screen .proof span{max-width:165px;font-size:10px}.work-screen .contribution-list{margin-left:3px;padding-left:19px}.work-screen .contribution::before{left:-23px}.work-screen .contribution p{font-size:11px}.work-screen .contribution{margin-bottom:17px}
}

/* A single reading flow, with dates beside the role and technologies at the end. */
.work-screen .experience-head{align-items:flex-start}
.work-screen .experience-head>.company-icon{margin-top:3px}
.work-screen .experience-title{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:8px 16px}
.work-screen .experience-title h3{grid-column:1/-1}
.work-screen .experience-title p{margin:0;line-height:1.6}
.work-screen .experience-title .period{display:block;margin:0;padding:0;text-align:left;max-width:none;line-height:1.6}
.work-screen .experience-summary{margin:25px 0 25px;max-width:66ch;line-height:1.8}
.work-screen .contribution-body{display:flex;flex-direction:column;gap:23px;padding:3px 0 0}
.work-screen .proof{flex-direction:row;align-items:center;gap:16px;padding:0 0 21px;border-bottom:1px solid var(--border)}
.work-screen .proof strong{font-size:34px;letter-spacing:-1px;flex-shrink:0}
.work-screen .proof span{font-size:12px;max-width:none;line-height:1.6;color:var(--secondary)}
.work-screen .contribution-list{padding-left:20px;margin-left:3px}
.work-screen .contribution{display:grid;grid-template-columns:145px minmax(0,1fr);column-gap:20px;margin:0 0 19px}
.work-screen .contribution::before{left:-24px;top:6px}
.work-screen .contribution h4{font-size:12px;line-height:1.75}
.work-screen .contribution p{margin:0;line-height:1.75}
.work-screen .contribution-list>.subtle-link{display:inline-block;margin:0 0 5px}
.work-screen .experience-foot{padding:18px 0 22px;margin:23px 0 0;border-top:1px solid var(--border)}
@media(prefers-reduced-motion:no-preference){.screens-ready .experience-stage.is-present .experience-foot{animation-delay:.65s}}
@media(max-width:1000px){.work-screen .contribution{grid-template-columns:128px minmax(0,1fr);column-gap:17px}.work-screen .experience-title{grid-template-columns:1fr;gap:6px}.work-screen .experience-title h3{grid-column:auto}.work-screen .experience-title .period{font-size:8px}}
@media(max-width:720px){.work-screen .experience-head{flex-wrap:nowrap}.work-screen .experience-title{min-width:0}.work-screen .experience-summary{margin:22px 0}.work-screen .contribution-body{gap:21px}.work-screen .proof{gap:13px;padding-bottom:19px}.work-screen .proof strong{font-size:30px}.work-screen .proof span{font-size:11px}.work-screen .contribution{grid-template-columns:1fr;gap:5px;margin-bottom:19px}.work-screen .contribution-list{padding-left:17px}.work-screen .contribution::before{left:-21px}.work-screen .experience-foot{margin-top:20px;padding:17px 0 21px}}

/* Critic review: readable detail text and reachable controls on short windows. */
.work-screen .contribution h4,.work-screen .contribution p{font-size:13px;line-height:1.75}
.work-screen .experience-title .period{font-size:10px;letter-spacing:.15px}
.work-screen .experience-title p{font-size:13px}
.work-screen .experience-card summary{font-size:11px}
.work-screen .experience-foot .tags span{font-size:10px}
.work-screen .contribution-list>.subtle-link{font-size:11px}
@media(min-width:721px){.sidebar{max-height:100svh;overflow-y:auto;scrollbar-width:thin}}
@media(min-width:721px) and (max-height:780px){
 .sidebar{padding-top:24px;padding-bottom:16px}
 .identity .avatar{margin-bottom:13px}
 .socials{margin-top:14px}
 .section-nav{padding:14px 0;margin-bottom:14px;gap:2px}
 .sidebar-bottom{margin-top:16px;gap:8px}
 .sidebar-school{margin-bottom:9px}
}
@media(max-width:720px){
 .work-screen .contribution h4,.work-screen .contribution p{font-size:13px;line-height:1.7}
 .work-screen .experience-summary{font-size:13px}
 .work-screen .experience-title p{font-size:12px}
 .work-screen .experience-title .period{font-size:10px}
 .work-screen .proof span{font-size:12px}
 .work-screen .experience-foot .tags span{font-size:10px}
}
