/* Education and a documented, real EVE-NG research topology. */
.about{column-gap:8%;row-gap:42px}
.about>.credentials-expanded{grid-column:1/-1;max-width:none;margin:0}
.credentials-expanded>h3{margin-bottom:24px;font-size:12px;letter-spacing:1.5px}
.education-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.education-card{position:relative;overflow:hidden;min-height:224px;border:1px solid #3e4c30;border-radius:12px;padding:25px 25px 32px;background:linear-gradient(135deg,#20271a,#181e15)}
.education-card:before{content:'';position:absolute;left:0;top:0;width:35%;height:1px;background:linear-gradient(90deg,transparent,#d4ff66,transparent);animation:education-trace 8s ease-in-out infinite}
.education-card:nth-child(2):before{animation-delay:-2.7s}.education-card:nth-child(3):before{animation-delay:-5.3s}
.education-card .credential-index{font-size:10px;letter-spacing:.8px;color:#a1b38b;position:relative;z-index:1}
.education-card h4{position:relative;font-size:25px;line-height:1.25;font-weight:500;letter-spacing:-.6px;margin:20px 0 11px;z-index:1}
.education-card p{position:relative;font-size:14px;line-height:1.75;max-width:290px;color:#b0bca2;z-index:1}
.education-level{position:absolute;right:16px;bottom:-24px;font:italic 105px/1 Georgia,serif;color:#d3ed9b09;pointer-events:none;animation:education-level 10s ease-in-out infinite alternate}
.research-strip{display:grid;grid-template-columns:1.5fr 1fr;gap:45px;margin-top:28px;padding-top:30px;border-top:1px solid #39472c}
.research-focus{padding:7px 0}
.research-focus h4{font-size:26px;line-height:1.3;font-weight:450;letter-spacing:-.7px;margin:13px 0}
.research-focus p{font-size:15px;line-height:1.85;color:#aebba1;max-width:620px}
.publication-card{position:relative;display:flex;gap:24px;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;border:1px solid #4a6033;background:radial-gradient(ellipse at 80% 0%,#374526,#1e2818);padding:20px 25px;min-height:168px}
.publication-card>strong{font-size:79px;letter-spacing:-6px;line-height:1.1;font-weight:450;color:#d8f897;z-index:1}
.publication-card>strong>span{font-size:44px;vertical-align:top;margin-left:3px;font-weight:400}
.publication-card>p{font-size:15px;line-height:1.65;color:#c7d6b6;z-index:1}
.publication-orbit{position:absolute;width:210px;height:210px;border:1px solid #c5e89318;border-radius:50%;right:-65px;top:-80px;box-shadow:0 0 0 22px #c5e89305;animation:research-orbit 18s linear infinite}
.publication-orbit:before{content:'';position:absolute;width:5px;height:5px;border-radius:50%;top:-3px;left:50%;background:#c5e89388}

.project-lab .lab-art{height:490px;background:radial-gradient(ellipse at 20% 10%,#254344,#15272a 65%);color:#d2e6d9}
.lab-art .art-label{color:#accbbc}
.lab-background-grid{position:absolute;inset:0;background-image:linear-gradient(#c1e5ce08 1px,transparent 1px),linear-gradient(90deg,#c1e5ce08 1px,transparent 1px);background-size:32px 32px;mask-image:linear-gradient(transparent,#000 20%,#000 80%,transparent);animation:lab-grid 14s ease-in-out infinite alternate}
.lab-window{position:absolute;width:88%;max-width:1060px;left:50%;top:66px;background:#fff;border:1px solid #cae7da4d;border-radius:10px;overflow:hidden;box-shadow:0 20px 55px #03181945;transform:translateX(-50%) rotate(-.5deg);animation:lab-window-float 10s ease-in-out infinite}
.lab-window-bar{display:flex;align-items:center;gap:10px;height:34px;padding:0 15px;background:#203a3c;color:#b8d5c5;border-bottom:1px solid #3e5e57}
.lab-window-bar>b{font-size:10px;font-weight:500;letter-spacing:.5px}.lab-window-bar>b>span{font-weight:400;color:#779b8b;margin-left:6px;font-size:9px}
.lab-terminal-icon{font-size:15px;color:#d0edb3}
.lab-window-dot{margin-left:auto;width:5px;height:5px;border-radius:50%;background:#c8ef9d;box-shadow:0 0 8px #c8ef9d33;animation:signal-pulse 3s ease-in-out infinite}
.lab-topology-viewport{position:relative;aspect-ratio:1183/342;overflow:hidden;background:#fff}
.lab-topology-viewport>img{width:100%;height:auto;max-width:none}
.lab-scan{position:absolute;top:0;bottom:0;width:100px;left:-110px;background:linear-gradient(90deg,transparent,#73d6b11c,transparent);border-right:1px solid #5aa78d44;animation:lab-scan 12s ease-in-out infinite;pointer-events:none}
.lab-traffic{position:absolute;inset:0;width:100%;height:100%;color:#539879;pointer-events:none}
.lab-traffic path{animation:lab-packets 4s linear infinite;opacity:.65}.lab-traffic circle{fill:#a6dfad11;stroke:#77b49a;stroke-width:1;transform-box:fill-box;transform-origin:center;animation:lab-node 5s ease-in-out infinite}.lab-traffic circle:nth-of-type(2){animation-delay:-1.7s}.lab-traffic circle:nth-of-type(3){animation-delay:-3.4s}
.lab-stages{position:absolute;bottom:46px;left:7%;right:7%;display:flex;align-items:center;justify-content:center;gap:22px;color:#91b2a0}
.lab-stages>span{display:flex;align-items:center;gap:10px;font-size:13px;letter-spacing:.2px;animation:lab-stage 12s ease-in-out infinite}
.lab-stages>span:nth-of-type(2){animation-delay:-8s}.lab-stages>span:nth-of-type(3){animation-delay:-4s}
.lab-stages small{font-size:9px;color:#688f78}.lab-stages>i{width:50px;height:1px;background:linear-gradient(90deg,#749c7b55,#b2d58f88,#749c7b55);transform-origin:left;animation:lab-link 4s ease-in-out infinite}
.lab-art .mockup-note{left:7%;bottom:13px;font-size:9px;color:#8dab98}
.project-grid.filtered .project-lab .lab-art{height:420px}
.dialog-media{margin:26px 0}
.dialog-media[hidden]{display:none}
.dialog-media>img{width:100%;height:auto;background:#fff;padding:5px;border-radius:8px;border:1px solid #4e6341}
.dialog-media figcaption{font-size:12px;line-height:1.7;color:#a6b798;margin:10px 0}
.dialog-media>a{display:inline-flex;align-items:center;gap:9px;font-size:13px;color:var(--lime);padding:5px 0}
.dialog-media>a:hover{text-decoration:underline;text-underline-offset:4px}
.dialog-media .arrow-icon{width:18px;height:18px}

@keyframes education-trace{0%,10%{opacity:0;transform:translateX(-50%)}35%{opacity:.8}90%,100%{opacity:0;transform:translateX(300%)}}
@keyframes education-level{to{transform:translateY(-8px);opacity:.6}}
@keyframes research-orbit{to{transform:rotate(360deg)}}
@keyframes lab-grid{to{opacity:.4;transform:translateY(8px)}}
@keyframes lab-window-float{50%{transform:translate(-50%,-7px) rotate(.3deg)}}
@keyframes lab-scan{0%,8%{left:-110px;opacity:0}20%{opacity:1}85%,100%{left:105%;opacity:0}}
@keyframes lab-packets{to{stroke-dashoffset:-112}}
@keyframes lab-node{50%{opacity:.2;transform:scale(1.4)}}
@keyframes lab-stage{0%,24%{color:#d6f7b1;transform:translateY(-2px)}36%,100%{color:#91b2a0;transform:none}}
@keyframes lab-link{0%{transform:scaleX(.2);opacity:.2}65%,100%{transform:scaleX(1);opacity:.8}}
@keyframes topology-tour{0%,15%{transform:translateX(0)}85%,100%{transform:translateX(calc(-730px + 90cqw - 2px))}}

@container(max-width:700px){
 .project-lab .lab-art{height:420px}.lab-window{width:90%;top:70px}.lab-topology-viewport{height:211px;aspect-ratio:auto}.lab-topology-viewport>img{width:730px;height:211px;animation:topology-tour 22s ease-in-out infinite alternate}.lab-traffic{width:730px;height:211px;animation:topology-tour 22s ease-in-out infinite alternate}.lab-stages{gap:10px;left:5%;right:5%;bottom:47px}.lab-stages>span{font-size:11px;gap:6px}.lab-stages>i{width:24px}.lab-stages small{font-size:8px}.lab-art .mockup-note{font-size:8px;left:5%}
}
@container(max-width:350px){.lab-stages{gap:6px}.lab-stages>span{font-size:10px;gap:4px}.lab-stages>i{width:10px}.lab-stages small{font-size:7px}.lab-window-bar>b{font-size:9px}.lab-window-bar>b>span{font-size:8px;margin-left:3px}}
@media(max-width:950px){.education-card{padding:23px 20px;min-height:242px}.education-card h4{font-size:23px}.education-card p{font-size:14px}.research-strip{gap:25px;grid-template-columns:1.3fr 1fr}.publication-card{padding:20px 18px;gap:16px}.publication-card>strong{font-size:65px}.publication-card>strong>span{font-size:35px}.publication-card>p{font-size:13px}}
@media(max-width:700px){.education-grid{grid-template-columns:1fr;gap:12px}.education-card{min-height:0;padding:23px 24px}.education-card h4{font-size:25px;margin:15px 0 9px}.education-card p{font-size:15px;max-width:100%;padding-right:18px}.education-level{font-size:90px;bottom:-21px}.education-card .credential-index{font-size:10px}.research-strip{grid-template-columns:1fr;gap:23px;margin-top:25px;padding-top:25px}.research-focus h4{font-size:25px}.research-focus p{font-size:15px}.publication-card{justify-content:flex-start;padding:23px 26px;gap:26px;min-height:145px}.publication-card>strong{font-size:75px}.publication-card>p{font-size:15px}.credentials-expanded>h3{font-size:11px;margin-bottom:20px}.about{row-gap:35px}}
@media(max-width:360px){.education-card{padding:22px 20px}.education-card h4{font-size:23px}.education-card p{font-size:14px;padding-right:0}.publication-card{padding:20px;gap:18px}.publication-card>strong{font-size:65px}.publication-card>p{font-size:14px}.research-focus h4{font-size:23px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.dialog-inner h2{overflow-wrap:anywhere}.dialog-stack span{max-width:100%;overflow-wrap:anywhere}

/* Separate the current dissertation from the wider publication profile. */
.research-separated{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:22px;border:0;padding:0;margin-top:26px;align-items:stretch}
.research-separated .research-focus{border:1px solid #3e4c30;border-radius:12px;padding:30px;background:linear-gradient(145deg,#1d2419,#151a13)}
.research-separated .research-focus .credential-label{font-size:10px;letter-spacing:1px;color:#b1c099}
.research-separated .research-focus h4{font-size:29px;margin:20px 0 17px;line-height:1.2}
.research-separated .research-focus p{font-size:15px;line-height:1.85;color:#b6c1aa}
.research-status{display:flex;align-items:center;gap:9px;font-size:11px;line-height:1.6;color:#d2e4b4;padding-top:23px;margin-top:22px;border-top:1px solid #3b4730}
.research-status i{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:#d4ff66}
.publication-expanded{display:block;padding:30px;border-color:#50653b;min-height:0}
.publication-heading{display:flex;align-items:center;gap:24px;position:relative;z-index:1}
.publication-heading>strong{font-size:77px;font-weight:450;line-height:1.05;letter-spacing:-5px;color:#d8f897;flex-shrink:0}
.publication-heading>strong>span{font-size:39px;vertical-align:top;margin-left:3px}
.publication-heading .credential-label{font-size:9px;letter-spacing:.9px;color:#b7c69f}
.publication-heading h4{font-size:22px;line-height:1.35;font-weight:450;letter-spacing:-.4px;margin:10px 0 0;color:#eff3e5}
.publication-expanded>p{font-size:14px;line-height:1.9;color:#becbad;margin-top:23px;position:relative;z-index:1}
.research-areas{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;position:relative;z-index:1}
.research-areas>span{font-size:10px;line-height:1.5;border:1px solid #52663d;border-radius:30px;padding:6px 11px;color:#d3debf}
@media(max-width:1000px){.research-separated{grid-template-columns:1fr 1.1fr}.research-separated .research-focus,.publication-expanded{padding:25px}.publication-heading{gap:17px}.publication-heading>strong{font-size:64px}.publication-heading>strong>span{font-size:32px}.publication-heading h4{font-size:20px}.research-separated .research-focus h4{font-size:26px}}
@media(max-width:760px){.research-separated{grid-template-columns:1fr;gap:16px}.research-separated .research-focus,.publication-expanded{padding:26px}.publication-heading>strong{font-size:76px}.publication-heading>strong>span{font-size:38px}.publication-heading h4{font-size:23px}.research-status{font-size:11px}.research-separated .research-focus h4{font-size:28px}}
@media(max-width:360px){.research-separated .research-focus,.publication-expanded{padding:22px}.publication-heading{gap:16px}.publication-heading>strong{font-size:61px}.publication-heading>strong>span{font-size:31px}.publication-heading h4{font-size:20px}.publication-heading .credential-label{font-size:8px}.research-separated .research-focus h4{font-size:25px}.research-areas>span{font-size:10px;padding:6px 9px}}
