.academic-projects-main{padding-top:calc(var(--header-height) + 65px);padding-bottom:110px}.academic-projects-intro{border-bottom:1px solid var(--line-strong);padding-bottom:60px}.academic-projects-intro h1{max-width:1050px;font-family:var(--font-display);letter-spacing:-.06em;margin:18px 0 24px;font-size:clamp(48px,7vw,92px);font-weight:500;line-height:1.03}.academic-projects-intro h1 em{color:var(--acid);font-style:normal}.academic-projects-intro>p:last-of-type{max-width:820px;color:var(--muted);margin:0;font-size:16px}.academic-projects-toc{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.academic-projects-toc a{border:1px solid var(--line-strong);font-family:var(--font-mono);color:var(--text);padding:10px 14px;font-size:11px;text-decoration:none;display:inline-flex}.academic-projects-toc a:hover,.academic-projects-toc a:focus-visible{border-color:var(--acid);color:var(--acid)}.academic-project-entry{border-bottom:1px solid var(--line-strong);padding:68px 0;scroll-margin-top:110px}.academic-project-entry h2{max-width:950px;font-family:var(--font-display);letter-spacing:-.045em;margin:13px 0 20px;font-size:clamp(34px,4.6vw,58px);font-weight:500;line-height:1.12}.academic-project-entry>p{max-width:900px;color:var(--muted)}.academic-project-entry>p.section-code{color:var(--acid)}.academic-project-entry h3{font-family:var(--font-display);margin:30px 0 10px;font-size:23px;font-weight:500}.academic-project-summary{border:1px solid var(--line-strong);grid-template-columns:repeat(3,minmax(0,1fr));margin:30px 0;display:grid}.academic-project-summary div{border-right:1px solid var(--line-strong);padding:21px}.academic-project-summary div:last-child{border-right:0}.academic-project-summary dt{color:var(--acid);font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;font-size:10px}.academic-project-summary dd{font-size:17px;font-family:var(--font-display);margin:8px 0 0}.academic-project-note{border-left:2px solid var(--acid);background:var(--panel);padding:17px 20px;color:var(--text)!important}.academic-project-entry ul{max-width:900px;color:var(--muted);padding-left:22px}.academic-project-entry li{margin:7px 0}.academic-project-entry a{color:var(--acid)}.academic-projects-return{color:var(--acid);margin-top:40px;text-decoration:none;display:inline-flex}@media (width<=780px){.academic-projects-main{padding-top:calc(var(--header-height) + 28px)}.academic-project-summary{grid-template-columns:1fr}.academic-project-summary div{border-right:0;border-bottom:1px solid var(--line-strong)}.academic-project-summary div:last-child{border-bottom:0}.academic-project-entry{padding:46px 0}}@supports (min-height:100svh){.hero{min-height:100svh}}.contact-link strong,.project-result strong,.qualification-action span:first-child{overflow-wrap:anywhere;min-width:0}@media (width<=860px){.nav-links{height:calc(100vh - var(--header-height));max-height:calc(100vh - var(--header-height));overscroll-behavior:contain;padding-bottom:max(20px, env(safe-area-inset-bottom));-webkit-overflow-scrolling:touch;overflow-y:auto}@supports (height:100dvh){.nav-links{height:calc(100dvh - var(--header-height));max-height:calc(100dvh - var(--header-height))}}}@media (width<=640px){.contact-link{grid-template-columns:minmax(0,1fr) auto}.crisisops-contact-actions{width:100%;display:grid}.crisisops-contact-actions .button{justify-content:space-between;width:100%}.crisisops-frame-bar{flex-direction:column;align-items:flex-start;padding-block:12px}}@media (width<=420px){.support-status{width:fit-content;margin-top:14px;display:inline-flex;position:static}.support-card h3,.selected-projects-grid .support-card h3{margin-top:34px}.support-card{padding:22px}.case-meta span,.support-status,.tech-pills li{overflow-wrap:anywhere;max-width:100%}}@media (width<=380px){.system-map{min-height:470px}.tech-node{border-radius:9px;width:34px;height:34px}.tech-node img{width:19px;height:19px}.orbit-track-outer .orbit-position{transform:rotate(var(--node-angle)) translateX(min(32vw, 122px))}.orbit-track-middle .orbit-position,.orbit-track-inner .orbit-position{transform:rotate(var(--node-angle)) translateX(min(21vw, 80px))}.system-core{width:100px;height:100px;padding:6px 5px 8px}.system-core strong{font-size:14px}.core-brand-logo{width:17px;height:17px;margin-bottom:1px}.core-eyebrow{margin-bottom:3px;font-size:5px}.core-count{letter-spacing:.06em;margin-top:2px;font-size:4px}}:root{--dim:#788276}.sr-only{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}main [id]{scroll-margin-top:calc(var(--header-height) + 24px)}body :is(a,button,[tabindex]:not([tabindex="-1"])):focus-visible{outline:2px solid var(--bg)!important;outline-offset:2px!important;box-shadow:0 0 0 5px var(--acid)!important}.skip-link:focus-visible{outline-offset:1px!important}.ticker.has-motion-toggle{position:relative}.ticker.has-motion-toggle .ticker-track{padding-right:154px}.motion-toggle{z-index:3;background:var(--acid);color:#080a07;min-width:126px;min-height:35px;font-family:var(--font-mono);letter-spacing:.07em;text-transform:uppercase;cursor:pointer;border:1px solid #080a07;justify-content:center;align-items:center;padding:0 12px;font-size:9px;font-weight:700;display:inline-flex;position:absolute;top:7px;right:12px}.motion-toggle:hover,.motion-toggle[aria-pressed=true]{background:#edf2e9}body.motion-paused .ticker-track,body.motion-paused .orbit-track,body.motion-paused .tech-node-inner{animation-play-state:paused!important}body.motion-paused .hero-orbit{transform:none!important}body.motion-paused .cursor-glow{display:none}@media (width<=520px){.ticker.has-motion-toggle .ticker-track{padding-right:120px}.motion-toggle{min-width:104px;padding-inline:8px;font-size:8px;right:8px}}@media (prefers-reduced-motion:reduce){.ticker-track,.orbit-track,.tech-node-inner,.hero-orbit{animation:none!important;transform:none!important}}@media (forced-colors:active){body :is(a,button,[tabindex]:not([tabindex="-1"])):focus-visible{outline-offset:3px!important;box-shadow:none!important;outline:3px solid highlight!important}.motion-toggle{color:buttontext;background:buttonface;border:1px solid buttontext}}
