.roadmap-timeline{padding:.75rem 0 1rem;position:relative}.roadmap-track{background:var(--line);width:2px;position:absolute;top:0;bottom:0;left:calc(50% - 1px)}.roadmap-progress{background:var(--blue);transform-origin:top;height:100%}.roadmap-stops{gap:1.75rem;list-style:none;display:grid}.roadmap-stop{grid-template-columns:minmax(0,1fr) 5rem minmax(0,1fr);display:grid;position:relative}.roadmap-marker{background:var(--paper);border:1px solid var(--blue);width:2rem;height:2rem;color:var(--blue);z-index:1;place-items:center;margin-left:-1rem;font-size:.65rem;display:grid;position:absolute;top:1.5rem;left:50%}.roadmap-card{border:1px solid var(--blue);min-width:0;box-shadow:5px 5px 0 var(--blue);background:var(--paper);grid-column:1;padding:1.75rem;position:relative}.roadmap-card:before{content:"";background:var(--blue);width:1.5rem;height:1px;position:absolute;top:2.5rem;right:-1.5rem}.roadmap-stop:nth-child(2n) .roadmap-card{grid-column:3}.roadmap-stop:nth-child(2n) .roadmap-card:before{left:-1.5rem;right:auto}.roadmap-label{color:var(--blue);margin-bottom:.75rem;font-size:.75rem}.roadmap-card h3{overflow-wrap:anywhere;font:400 clamp(1.4rem,2.2vw,1.8rem)/1.2 Georgia,Times New Roman,serif}.roadmap-stop:first-child .roadmap-card{color:var(--paper);background:var(--blue);box-shadow:5px 5px 0 var(--ink)}.roadmap-stop:first-child .roadmap-label{color:var(--blue-soft)}.roadmap-stop:first-child .roadmap-marker{background:var(--blue);color:var(--paper)}.roadmap-stop:last-child .roadmap-card{border-style:dashed}@media (max-width:760px){.roadmap-track{left:calc(1rem - 1px)}.roadmap-stop{grid-template-columns:3.5rem minmax(0,1fr)}.roadmap-marker{left:1rem}.roadmap-stop .roadmap-card,.roadmap-stop:nth-child(2n) .roadmap-card{grid-column:2;padding:1.25rem}.roadmap-stop .roadmap-card:before{left:-1.5rem;right:auto}}@media (prefers-reduced-motion:reduce){.roadmap-stop,.roadmap-progress{transform:none!important}}
.education-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem;list-style:none;display:grid}.education-item{min-width:0}.education-card{border:1px solid var(--blue);background:var(--paper);height:100%;box-shadow:5px 5px 0 var(--blue);flex-direction:column;align-items:flex-start;gap:1.75rem;padding:clamp(1.5rem,3vw,2rem);display:flex}.education-icon{width:3.25rem;height:3.25rem;color:var(--blue);border:1px solid;flex-shrink:0;place-items:center;display:grid}.education-icon svg{width:2rem;height:2rem}.education-copy{min-width:0}.education-copy h3{font:400 clamp(1.6rem,2.6vw,2rem)/1.15 Georgia,Times New Roman,serif}.education-copy p{max-width:44ch;color:var(--muted);margin-top:.85rem;font-size:.9rem;line-height:1.8}.education-item:first-child .education-card{color:var(--paper);background:var(--blue);box-shadow:5px 5px 0 var(--ink)}.education-item:first-child .education-icon,.education-item:first-child .education-copy p{color:var(--blue-soft)}.education-item--languages{grid-column:1/-1}.education-item--languages .education-card{background:var(--paper-deep);flex-direction:row;align-items:center;gap:1.5rem}.education-item--languages .education-copy h3{font-size:1.5rem}.education-item--languages .education-copy p{max-width:none;margin-top:.4rem}@media (max-width:640px){.education-cards{grid-template-columns:minmax(0,1fr);gap:1.25rem}.education-card{gap:1.25rem}.education-item--languages .education-card{align-items:flex-start;gap:1rem}}@media (prefers-reduced-motion:reduce){.education-card{opacity:1!important;transform:none!important}}
.lab-workbench{grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr);grid-template-areas:"overview lab1""overview lab2""lab3 lab4";align-items:stretch;gap:2rem;display:grid}.lab-overview{color:var(--paper);background:var(--blue);grid-area:overview;padding:1.75rem}.lab-overview h3{letter-spacing:-.04em;font:400 clamp(1.8rem,2.5vw,2.5rem)/1.08 Georgia,Times New Roman,serif}.lab-overview>p{margin-top:1rem;font-size:.85rem;line-height:1.7}.lab-topology{width:100%;height:auto;color:var(--blue-soft);margin:1.75rem 0;display:block}.lab-overview .lab-workflow-label{border-top:1px solid #ffffff50;padding-top:1.25rem;font-size:.75rem}.lab-workflow{margin-top:.8rem;list-style:none}.lab-workflow li{align-items:baseline;gap:.8rem;margin-top:.65rem;font-size:.8rem;display:flex}.lab-workflow span{color:var(--blue-soft);font:.65rem/1.4 SFMono-Regular,Consolas,monospace}.lab-entry{border:1px solid var(--blue);min-width:0;box-shadow:6px 6px 0 var(--blue);background:var(--paper);padding:1.65rem;transition:background-color .18s}.lab-entry:first-of-type{grid-area:lab1}.lab-entry:nth-of-type(2){grid-area:lab2}.lab-entry:nth-of-type(3){grid-area:lab3}.lab-entry:nth-of-type(4){grid-area:lab4}.lab-entry:hover{background:var(--blue-soft)}.lab-entry-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.8rem;display:flex}.lab-index{color:var(--blue);font-size:.65rem}.lab-status{border:1px solid var(--line-dark);color:var(--muted);padding:.2rem .5rem;font-size:.65rem}.lab-entry h3{letter-spacing:-.025em;font:400 1.55rem/1.15 Georgia,Times New Roman,serif}.lab-description{color:var(--muted);margin-top:.75rem;font-size:.85rem;line-height:1.65}.lab-tools{flex-wrap:wrap;gap:.4rem;margin-top:1rem;list-style:none;display:flex}.lab-tools li{background:var(--paper-deep);color:var(--ink);padding:.25rem .45rem;font-size:.65rem}.lab-deliverable{border-top:1px solid var(--line);margin-top:1.2rem;padding-top:1rem}.lab-deliverable>span{color:var(--blue);font-size:.65rem}.lab-deliverable p{margin-top:.3rem;font-size:.8rem;line-height:1.6}@media (max-width:1100px){.lab-workbench{grid-template-columns:1fr;grid-template-areas:"overview""lab1""lab2""lab3""lab4"}.lab-overview{grid-template-columns:1fr 1fr;gap:0 2rem;display:grid}.lab-topology{grid-area:1/2/span 4;align-self:center;margin:0}.lab-overview .lab-workflow-label{margin-top:1.25rem}}@media (max-width:580px){.lab-workbench{gap:1.25rem}.lab-overview{padding:1.5rem;display:block}.lab-topology{max-width:300px;margin:1.5rem auto}.lab-entry{padding:1.25rem}}@media (prefers-reduced-motion:reduce){.lab-entry{transition:none}}
.site-splash{z-index:1000;isolation:isolate;color:var(--paper);place-items:center;animation:0s 4.58s forwards splash-loading-timeout;display:grid;position:fixed;inset:0;overflow:hidden}.site-splash[hidden]{display:none}.site-splash:focus{outline:none}@keyframes splash-loading-timeout{to{visibility:hidden;pointer-events:none}}.splash-curtain{background:var(--blue);z-index:-1;will-change:transform;width:100%;height:calc(50% + 1px);position:absolute;left:0}.splash-curtain--top{animation:1.1s cubic-bezier(.76,0,.24,1) 3.42s forwards splash-curtain-top;top:0}.splash-curtain--bottom{animation:1.1s cubic-bezier(.76,0,.24,1) 3.48s forwards splash-curtain-bottom;bottom:0}.splash-meta{justify-content:space-between;align-items:center;gap:1rem;font-size:.8rem;animation:.35s both splash-fade-in,.25s 3.15s forwards splash-fade-out;display:flex;position:absolute;inset:clamp(1.25rem,4vw,3rem) clamp(1.25rem,5vw,5rem) auto}.splash-meta>span{opacity:.7}.splash-meta,.splash-discipline,.splash-network{will-change:opacity}.splash-stage{justify-items:center;gap:clamp(2rem,5vh,3.5rem);width:min(900px,86vw);padding:5rem 0 2rem;display:grid}.splash-copy{text-align:center;width:100%}.splash-discipline{letter-spacing:.03em;margin-bottom:1.5rem;font-size:clamp(.75rem,1.3vw,1rem);animation:.25s 3.15s forwards splash-fade-out}.splash-name{letter-spacing:-.06em;font:400 clamp(3.5rem,min(12.5vw,18vh),10rem)/.95 Georgia,Times New Roman,serif}.splash-word-window{padding:.06em .1em .12em;display:block;overflow:hidden}.splash-word{transform-origin:bottom;will-change:transform;animation:.85s cubic-bezier(.16,1,.3,1) .12s both splash-word-enter,.55s cubic-bezier(.55,.055,.675,.19) 3.2s forwards splash-word-exit-top;display:inline-block}.splash-word-window:nth-child(2) .splash-word{animation-name:splash-word-enter,splash-word-exit-bottom;animation-delay:.24s,3.26s}.splash-caption{color:#f7f6f2bf;will-change:transform, opacity;max-width:36ch;margin:1.5rem auto 0;font-size:clamp(.8rem,1.6vw,1rem);line-height:1.5;animation:.5s ease-out .6s both splash-caption-enter,.25s 3.15s forwards splash-fade-out}.splash-network{width:100%;height:auto;animation:.25s 3.15s forwards splash-fade-out;overflow:visible}.splash-network path{fill:none;stroke:#f7f6f261;stroke-width:1px;stroke-dasharray:1;animation:.9s cubic-bezier(.65,0,.35,1) .25s both splash-line-draw}.splash-network path:nth-of-type(2){animation-delay:.35s}.splash-node{transform-box:fill-box;transform-origin:50%;animation:.35s cubic-bezier(.34,1.5,.64,1) .4s both splash-node-enter}.splash-node:nth-of-type(2){animation-delay:.54s}.splash-node:nth-of-type(3){animation-delay:.68s}.splash-node rect{fill:var(--paper)}.splash-node text{fill:#f7f6f2bf;text-anchor:middle;font-family:inherit;font-size:13px}@keyframes splash-fade-in{0%{opacity:0}to{opacity:1}}@keyframes splash-fade-out{0%{opacity:1}to{opacity:0}}@keyframes splash-word-enter{0%{transform:translateY(115%)rotate(3deg)}to{transform:translate(0,0)rotate(0)}}@keyframes splash-word-exit-top{0%{transform:translate(0,0)rotate(0)}to{transform:translateY(-115%)rotate(-3deg)}}@keyframes splash-word-exit-bottom{0%{transform:translate(0,0)rotate(0)}to{transform:translateY(115%)rotate(3deg)}}@keyframes splash-caption-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translate(0,0)}}@keyframes splash-line-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}@keyframes splash-node-enter{0%{transform:scale(0)}to{transform:scale(1)}}@keyframes splash-curtain-top{0%{transform:translate(0,0)}to{transform:translateY(-102%)}}@keyframes splash-curtain-bottom{0%{transform:translate(0,0)}to{transform:translateY(102%)}}@keyframes splash-hero-enter{0%{opacity:0;translate:0 18px}to{opacity:1;translate:0}}.site-splash:not([hidden])+main .hero .wrap>*{animation:splash-hero-enter .55s cubic-bezier(.22, 1, .36, 1) calc(3.42s + var(--splash-order,0) * 65ms) both;will-change:translate, opacity}.site-splash+main .hero .wrap>:nth-child(2){--splash-order:1}.site-splash+main .hero .wrap>:nth-child(3){--splash-order:2}.site-splash+main .hero .wrap>:nth-child(4){--splash-order:3}.site-splash+main .hero .wrap>:nth-child(5){--splash-order:4}.site-splash+main .hero .wrap>:nth-child(6){--splash-order:5}.site-splash+main .hero .wrap>:nth-child(7){--splash-order:6}.site-splash+main .hero .wrap>:nth-child(8){--splash-order:7}@media (max-width:900px){.splash-node text{font-size:20px}}@media (max-width:580px){.splash-stage{gap:clamp(1.5rem,4svh,2.5rem);width:calc(100% - 3rem);padding:4rem 0 2rem}.splash-name{font-size:clamp(3.25rem,min(22vw,15svh),7rem)}.splash-discipline{margin-bottom:1.25rem;font-size:.8rem}.splash-caption{margin-top:1.25rem;font-size:.85rem}.splash-network{margin-bottom:.75rem}.splash-node text{font-size:36px;transform:translateY(18px)}}@media (max-height:600px) and (orientation:landscape){.splash-stage{gap:0;padding:4rem 0 1rem}.splash-name{font-size:clamp(2.5rem,min(12.5vw,16vh),5.5rem)}.splash-discipline{margin-bottom:.5rem}.splash-caption{margin-top:.75rem}.splash-network{display:none}}@media (prefers-reduced-motion:reduce){.site-splash{animation:.18s .24s both splash-reduced-fade,0s .42s forwards splash-loading-timeout}.site-splash *,.site-splash:not([hidden])+main .hero .wrap>*{will-change:auto;animation:none!important}}@keyframes splash-reduced-fade{0%{opacity:1}to{opacity:0}}
