:root{/* Purdue University web palette: https://www.purdue.edu/brand-studio/digital/design-copy/ */--black:#000000;--gold:#CFB991;--aged:#8E6F3E;--rush:#DAAA00;--dust:#EBD99F;--steel:#555960;--railway:#9D9795;--steam:#C4BFC0;--ink:var(--black);--deep:var(--black);--text:var(--black);--muted:var(--steel);--line:var(--steam);--cream:#ffffff;--measure:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--text);background:var(--cream);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}a{color:inherit}a:focus-visible{outline:3px solid var(--aged);outline-offset:3px}h1,h2,h3,p{margin-top:0}.wrap{width:min(calc(100% - 3rem),var(--measure));margin-inline:auto}.skip-link{position:absolute;left:-10000px;top:auto;z-index:100;background:#fff;padding:.6rem 1rem}.skip-link:focus{left:1rem;top:1rem}.site-header{background:var(--deep);color:#fff;border-bottom:1px solid var(--steel)}.nav-wrap{min-height:90px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.logo{display:inline-flex;align-items:center;gap:14px;font-size:1.48rem;letter-spacing:.22em;text-decoration:none;font-weight:800}.navigation{display:flex;gap:clamp(1rem,2.5vw,2.5rem);font-size:.86rem;font-weight:600}.navigation a{text-decoration:none;color:#fff}.navigation a:hover{color:var(--gold)}.hero{background:radial-gradient(circle at 70% 25%,#2a2c30 0%,var(--deep) 48%);color:white;padding:6.25rem 0 6.75rem}.hero-grid{display:grid;grid-template-columns:minmax(0,820px);gap:5.5rem}.eyebrow,.section-label{letter-spacing:.16em;font-size:.71rem;font-weight:750}.eyebrow{color:var(--gold);text-transform:uppercase}h1{font-weight:780;font-size:clamp(3.1rem,5.7vw,5.65rem);letter-spacing:-.065em;line-height:1.065;max-width:12ch;margin:1.4rem 0}h2{font-size:clamp(2.1rem,3.7vw,3.7rem);font-weight:740;line-height:1.13;letter-spacing:-.055em;margin:.8rem 0 0;max-width:16ch}.lede{color:var(--steam);font-size:1.12rem;line-height:1.78;max-width:54ch}.hero-buttons{display:flex;gap:1.75rem;flex-wrap:wrap;align-items:center;margin-top:2.25rem}.primary-link{display:inline-flex;gap:1rem;align-items:center;background:var(--gold);color:var(--deep);padding:1rem 1.25rem;border-radius:4px;font-weight:750;text-decoration:none;font-size:.88rem}.primary-link:hover{background:var(--dust)}.text-link{color:#fff;text-decoration:none;font-weight:650;font-size:.88rem}.identity-bar{border-bottom:1px solid var(--line);background:#fff}.identity-flex{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding:1.45rem 0;color:var(--steel);letter-spacing:.1em;font-size:.64rem;font-weight:700}.identity-flex strong{display:block;color:var(--ink);font-weight:740;font-size:.88rem;letter-spacing:0;margin-top:.12rem}.section{padding:6.75rem 0}.section-label{color:var(--aged)}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:8rem;align-items:start}.two-column>div:last-child{padding-top:2rem;font-size:1.09rem;color:var(--steel);line-height:1.85}.small-note{font-size:.88rem!important;color:var(--steel)!important;line-height:1.75}.research-section{background:#fff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:3rem;margin-bottom:2.5rem}.section-heading>p{max-width:350px;color:var(--steel);font-size:.91rem}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.theme-card{background:#fff;padding:2.4rem 2.15rem;min-height:335px;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:4px}.theme-number{font-size:.76rem;letter-spacing:.11em;color:var(--aged);font-weight:700}.theme-card h3{font-size:1.43rem;line-height:1.2;letter-spacing:-.02em;margin:2.3rem 0 .75rem;color:var(--ink)}.theme-card p{font-size:.89rem;color:var(--steel);line-height:1.7}.card-rule{height:3px;width:36px;background:var(--gold);margin-top:auto}.projects-section{background:#fff}.coming-soon{display:inline-flex;align-items:center;gap:.75rem;border:1px solid var(--dust);background:#fbf6e8;color:var(--black);font-size:.81rem;font-weight:650;padding:.75rem 1rem;margin-top:1rem;border-radius:4px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--rush)}.people-section{background:var(--cream);border-top:1px solid var(--line)}.person-card{border:1px solid var(--line);background:white;border-radius:5px;padding:1.7rem;display:flex;align-items:center;gap:1.5rem;margin:2.1rem 0 1.2rem;max-width:650px}.person-card h3{margin:.15rem 0;font-size:1.3rem;color:var(--ink)}.person-card p{margin:.12rem 0;font-size:.87rem}.affiliation{color:var(--steel)}.footer{background:var(--deep);color:var(--steam);padding:3rem 0;border-top:4px solid var(--gold)}.footer-inner{display:flex;justify-content:space-between;gap:4rem}.footer-inner strong{font-size:1.1rem;color:var(--gold);letter-spacing:.2em}.footer-inner>div:last-child{text-align:right;font-size:.76rem;max-width:425px}.footer p{margin:.6rem 0;color:var(--railway);font-size:.81rem}
@media(max-width:960px){.hero-grid{gap:2.5rem}.two-column{gap:3rem}.section-heading{align-items:start}.section{padding:5rem 0}}
@media(max-width:710px){.wrap{width:min(calc(100% - 2rem),var(--measure))}.nav-wrap{min-height:80px;flex-direction:column;justify-content:center;padding:1rem 0}.navigation{gap:1.2rem;flex-wrap:wrap;justify-content:center}.hero{padding:4rem 0}.hero-grid,.two-column{grid-template-columns:1fr}.hero-grid{gap:2.4rem}.section{padding:3.7rem 0}.two-column{gap:1rem}.two-column>div:last-child{padding-top:0}.theme-grid{grid-template-columns:1fr}.theme-card{min-height:240px}.theme-card h3{margin:1.4rem 0 .75rem}.section-heading,.footer-inner{flex-direction:column;align-items:start;gap:1rem}.footer-inner>div:last-child{text-align:left}.identity-flex{gap:1.1rem}.identity-flex span{flex:1 1 40%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Small-screen reading, keyboard focus and draft status. */

.hero-grid>* , .two-column>* {min-width:0}
h1,h2,h3,p,.identity-flex strong{overflow-wrap:anywhere}
.navigation a{display:inline-block;padding:.35rem .15rem}
.site-header a:focus-visible,.hero a:focus-visible,.footer a:focus-visible{outline-color:var(--gold)}
@media(max-width:420px){.person-card{flex-direction:column;align-items:flex-start}.logo{font-size:1.3rem}h1{font-size:2.6rem}}
/* SIGNAL mark, "Broadcast": paired gold arcs ((( . ))) radiate from the core to a faint border.
   --k sets the arc line width per display size (the arcs keep a constant width as they grow). */
.logo-mark{--k:1.1;width:38px;height:38px;flex-shrink:0;overflow:visible}
.mark-ring{fill:none;stroke:var(--steam);stroke-opacity:.35;stroke-width:1.5}
.mark-arcs{fill:none;stroke:var(--gold);stroke-width:calc(2px * var(--k));stroke-linecap:round;opacity:0;transform-origin:20px 20px;animation:mark-broadcast 2.7s ease-out infinite}
.mark-arcs path{vector-effect:non-scaling-stroke}
.mark-arcs.late{animation-delay:.9s}
.mark-arcs.later{animation-delay:1.8s}
.mark-core{fill:var(--gold);transform-origin:20px 20px;animation:mark-emit .9s ease-out infinite}
.footer-brand{display:inline-flex;align-items:center;gap:10px}
.footer-brand .logo-mark{--k:.85;width:28px;height:28px}
@keyframes mark-broadcast{0%{transform:scale(.18);opacity:1}80%{opacity:.5}100%{transform:scale(1);opacity:0}}
@keyframes mark-emit{0%{transform:scale(1.45)}40%,100%{transform:scale(1)}}
/* People: official headshot. */
.person-photo{width:96px;height:96px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid var(--gold);background:var(--steam)}
/* Visitors who ask for less motion get a still, complete mark and panel. */
@media(prefers-reduced-motion:reduce){.mark-arcs,.mark-core{animation:none!important}.mark-arcs{opacity:.45;transform:scale(.45)}.mark-arcs.late{opacity:.7;transform:scale(.72)}.mark-arcs.later{opacity:1;transform:scale(1)}}
