:root { --red:#B31B1B; --red-dark:#222222; --ink:#222222; --text:#222222; --muted:#222222; --line:rgba(34,34,34,0.16); --soft:#F7F7F7; --rose:#F7F7F7; --white:#fff; --max:1240px; --sans:"freight-sans-pro","Freight Sans Pro",Arial,Helvetica,sans-serif;--serif:Palatino,"Palatino Linotype","Book Antiqua",Georgia,serif; --shadow:0 18px 48px rgba(34,34,34,0.12); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--white); color:var(--ink); font:16px/1.55 var(--sans); }
img { display:block; max-width:100%; }
a { color:inherit; }
button { font:inherit; }
h1,h2,h3,h4,p { margin-top:0; }
h1,h2,h3,h4 { line-height:1.12; }
h1 { margin-bottom:1.4rem; font-size:clamp(3rem,6.4vw,5.8rem); letter-spacing:-.05em; }
h2 { margin-bottom:1rem; font-size:clamp(2.15rem,4vw,3.5rem); letter-spacing:-.035em; }
h3 { margin-bottom:.65rem; font-size:1.35rem; letter-spacing:-.02em; }
h4 { margin-bottom:.35rem; font-size:1rem; }
.content-width { width:min(var(--max),calc(100% - 2.5rem)); margin-inline:auto; }
.skip-link { position:fixed; top:-5rem; left:1rem; z-index:100; padding:.8rem 1rem; background:#fff; color:var(--red); border:2px solid var(--red); }
.skip-link:focus { top:1rem; }
:focus-visible { outline:3px solid #006699; outline-offset:3px; }
.site-header { position:sticky; top:0; z-index:50; min-height:84px; display:flex; align-items:center; justify-content:space-between; gap:2rem; padding:5px max(3.5vw,1.25rem) 0; background:rgba(255,255,255,.97); border-bottom:1px solid rgba(34,34,34,0.1); box-shadow:0 8px 30px rgba(34,34,34,0.05); backdrop-filter:blur(16px); }
.site-header::before { content:""; position:absolute; inset:0 0 auto; height:5px; background:var(--red); }
.brand { display:inline-flex; align-items:center; color:var(--ink); text-decoration:none; white-space:nowrap; }
.cornell-logo { width:154px; height:auto; }
.brand-divider { width:1px; height:34px; margin:0 1rem; background:rgba(34,34,34,0.16); }
.site-name { font-size:1.08rem; font-weight:800; letter-spacing:-.02em; }
nav { display:flex; align-items:center; gap:.2rem; padding:.3rem; background:var(--soft); border:1px solid rgba(34,34,34,0.16); border-radius:999px; }
nav a { padding:.58rem .78rem; color:#222222; border-radius:999px; font-size:.86rem; font-weight:700; text-decoration:none; transition:color .16s ease,background .16s ease; }
nav a:hover,nav a:focus-visible { color:#fff; background:var(--red); }
.menu-button { display:none; padding:.58rem .85rem; background:var(--red); border:0; border-radius:7px; color:#fff; font-weight:800; }
.hero { position:relative; min-height:690px; display:grid; align-items:center; overflow:hidden; color:#fff; }
.hero-photo,.hero-overlay { position:absolute; inset:0; }
.hero-photo { background:url("assets/che-apparel-2023-1038-018.jpg") center 40%/cover no-repeat; }
.hero-overlay { background:linear-gradient(90deg,rgba(34,34,34,0.9) 0%,rgba(34,34,34,0.66) 48%,rgba(34,34,34,0.26) 100%),linear-gradient(0deg,rgba(34,34,34,0.75),transparent 55%); }
.hero-inner { position:relative; z-index:2; width:min(var(--max),calc(100% - 2.5rem)); margin-inline:auto; padding:5.5rem 0 3.5rem; }
.hero-kicker { margin-bottom:1rem; color:#fff; font-size:.82rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.hero-intro { max-width:650px; margin-bottom:2.6rem; font-size:clamp(1.08rem,2vw,1.35rem); }
.photo-credit { position:absolute; right:1rem; bottom:.55rem; z-index:2; margin:0; font-size:.72rem; opacity:.76; }
.entry-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.9rem; }
.entry-card { min-height:150px; display:grid; grid-template-columns:48px 1fr auto; gap:.9rem; align-items:start; padding:1.35rem; background:#fff; color:var(--ink); border:1px solid rgba(255,255,255,.65); border-radius:12px; text-decoration:none; box-shadow:0 16px 38px rgba(34,34,34,0.22); transition:transform .18s ease,box-shadow .18s ease; }
.entry-card:hover,.entry-card:focus-visible { transform:translateY(-5px); box-shadow:0 22px 48px rgba(34,34,34,0.28); }
.entry-card.entry-primary { background:var(--red); color:#fff; }
.entry-icon { width:44px; height:44px; display:grid; place-items:center; color:#fff; background:var(--red); border-radius:9px; }
.entry-icon svg { width:25px; height:25px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.entry-primary .entry-icon { color:#fff; }
.entry-card strong { display:block; margin:.1rem 0 .4rem; }
.entry-card small { display:block; color:#222222; font-size:.84rem; line-height:1.4; }
.entry-primary small { color:rgba(255,255,255,.82); }
.entry-card b { font-size:1.35rem; }
.page-heading { scroll-margin-top:72px; padding:4.2rem 0; color:#fff; background:var(--red); }
.page-heading .section-label { color:#fff; }
.page-heading h2 { max-width:770px; margin-bottom:0; font-size:clamp(1.15rem,2vw,1.45rem); font-weight:500; letter-spacing:0; }
.section-label { margin-bottom:.7rem; font-size:.78rem; font-weight:800; letter-spacing:.13em; text-transform:uppercase; }
.section-label.red { color:var(--red); }
.getting-started { padding:clamp(4rem,8vw,7rem) 0; }
.lead { max-width:790px; margin:0 auto 3.6rem; color:var(--ink); font-size:clamp(1.25rem,2.4vw,1.65rem); }
.lead strong { color:var(--red); }
.journey-list { max-width:790px; margin-inline:auto; }
.journey-list article { display:grid; grid-template-columns:40px 1fr; gap:1rem; padding:.2rem 0 2.2rem 1.4rem; margin-bottom:2rem; border-left:3px solid var(--red); }
.journey-list p { margin-bottom:.65rem; color:var(--text); }
.journey-list a { color:var(--red); font-weight:800; text-decoration:none; }
.journey-icon { width:38px; height:38px; display:grid; place-items:center; color:var(--red); background:var(--rose); border-radius:50%; }
.journey-icon svg,.mini-icon,.fact-icon { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.journey-icon svg { width:21px; height:21px; }
.spaces-section { scroll-margin-top:84px; padding:clamp(4rem,8vw,7rem) 0; background:var(--soft); }
.section-heading-row { display:flex; justify-content:space-between; gap:2rem; align-items:end; margin-bottom:2.5rem; }
.section-heading-row h2 { margin-bottom:0; }
.section-intro { max-width:680px; margin:.75rem 0 0; color:var(--muted); font-size:1.05rem; }
.carousel-controls { display:flex; gap:.6rem; }
.carousel-controls button { width:46px; height:46px; color:var(--red); background:#fff; border:1px solid var(--line); border-radius:50%; cursor:pointer; font-weight:800; }
.space-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(320px,32%); gap:1.35rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:inline mandatory; padding:.2rem .1rem 1.3rem; scrollbar-color:var(--red) rgba(34,34,34,0.16); }
.directory-card { position:relative; scroll-snap-align:start; min-height:360px; overflow:hidden; color:#fff; background:#222222; border:0; border-radius:14px; box-shadow:var(--shadow); }
.directory-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 24%,rgba(34,34,34,0.92) 100%); }
.directory-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .35s ease; }
.directory-card:hover img { transform:scale(1.035); }
.directory-card>div { position:absolute; inset:auto 0 0; z-index:2; padding:1.6rem; }
.directory-card p { margin-bottom:.5rem; color:#fff; font-size:.75rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.directory-card h3 { font-size:1.55rem; }
.directory-card span { display:block; min-height:auto; color:rgba(255,255,255,.78); }
.directory-card a { display:inline-flex; margin-top:1rem; color:#fff; font-weight:800; text-underline-offset:4px; }
.directory-card.no-photo { min-height:360px; display:flex; align-items:end; background:linear-gradient(145deg,#B31B1B,var(--red-dark)); color:#fff; }
.directory-card.no-photo>div { width:100%; }
.directory-card.no-photo p,.directory-card.no-photo span,.directory-card.no-photo a { color:#fff; }
.make-section { scroll-margin-top:84px; padding:clamp(4rem,8vw,7rem) 0; background:#fff; }
.center-heading { max-width:760px; margin:0 auto 2.7rem; text-align:center; }
.center-heading h2 { margin-bottom:.7rem; }
.center-heading>p:last-child { color:var(--muted); font-size:1.08rem; }
.carousel-shell { position:relative; }
.project-carousel { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(330px,32%); gap:1.25rem; overflow-x:auto; overscroll-behavior-inline:contain; scroll-snap-type:inline mandatory; padding:.3rem .2rem 1rem; scrollbar-width:none; }
.project-carousel::-webkit-scrollbar { display:none; }
.project-card { position:relative; min-height:310px; overflow:hidden; scroll-snap-align:start; color:#fff; border-radius:14px; box-shadow:var(--shadow); }
.project-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 36%,rgba(34,34,34,0.93) 100%); }
.project-card img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.project-card:nth-child(2) img,.project-card:nth-child(4) img { object-position:center 38%; }
.project-card>div { position:absolute; inset:auto 0 0; z-index:2; padding:1.55rem; }
.project-card h3 { margin-bottom:.35rem; font-size:1.55rem; }
.project-card p { margin:0; color:rgba(255,255,255,.8); }
.carousel-edge { position:absolute; top:50%; z-index:4; width:50px; height:50px; display:grid; place-items:center; color:var(--ink); background:#fff; border:1px solid var(--line); border-radius:50%; box-shadow:0 12px 28px rgba(34,34,34,0.16); cursor:pointer; transform:translateY(-50%); }
.carousel-edge.previous { left:-25px; }
.carousel-edge.next { right:-25px; }
.temporary-note { margin:1rem 0 0; color:var(--muted); font-size:.8rem; text-align:center; }
.profile-section { padding:clamp(4rem,8vw,7rem) 0; }
.space-profile { scroll-margin-top:95px; display:grid; grid-template-columns:.78fr 1.15fr .82fr; gap:2rem; margin-bottom:2rem; padding:1.4rem; border:1px solid var(--line); border-radius:14px; }
.profile-image { width:100%; height:100%; min-height:430px; object-fit:cover; border-radius:10px; }
.profile-main { padding:1rem 0; }
.profile-main h3 { font-size:clamp(1.8rem,3vw,2.4rem); }
.profile-main p { color:var(--text); }
.space-college { color:var(--red)!important; font-size:.78rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.location { display:flex; align-items:center; gap:.45rem; color:var(--text); font-weight:700; }
.mini-icon { width:19px; height:19px; flex:0 0 19px; color:var(--red); }
.profile-main h4 { margin-top:1.35rem; }
.button { display:inline-flex; margin-top:.8rem; padding:.75rem 1rem; color:#fff; background:var(--red); border-radius:8px; font-weight:800; text-decoration:none; }
.button:hover,.button:focus-visible { background:var(--red-dark); }
.profile-facts { display:grid; align-content:start; gap:1rem; }
.profile-facts>div { padding:1.35rem; background:var(--soft); border-radius:10px; }
.profile-facts h4 { display:flex; align-items:center; gap:.55rem; margin-bottom:1rem; }
.fact-icon { width:21px; height:21px; color:var(--red); }
.profile-facts ul { padding-left:1.1rem; margin:0; color:var(--text); }
.profile-facts li { margin-bottom:.45rem; }
.profile-facts li::marker { color:var(--red); }
.profile-facts .open-to { background:var(--rose); }
.profile-facts p { margin-bottom:0; color:var(--text); }
.resources-section { scroll-margin-top:72px; padding:clamp(4rem,8vw,7rem) 0; color:#fff; background:var(--red); }
.resources-layout { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(3rem,7vw,7rem); align-items:start; }
.resources-layout>div:first-child p:last-child { color:rgba(255,255,255,.85); }
.resource-list { border-top:1px solid rgba(255,255,255,.45); }
.resource-list a { display:grid; grid-template-columns:140px 1fr auto; gap:1rem; padding:1.25rem 0; border-bottom:1px solid rgba(255,255,255,.45); text-decoration:none; }
.resource-list span { color:rgba(255,255,255,.72); font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; }
.resource-list a:hover strong,.resource-list a:focus-visible strong { text-decoration:underline; text-underline-offset:4px; }
.community-section { scroll-margin-top:72px; display:grid; grid-template-columns:110px 1fr; gap:2rem; padding:clamp(4rem,8vw,7rem) 0; }
.community-icon { width:96px; height:96px; display:grid; place-items:center; color:#fff; background:var(--red); border-radius:50%; }
.community-icon svg { width:42px; height:42px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.community-section>div:last-child { max-width:820px; }
.community-section p:not(.section-label) { color:var(--text); font-size:1.08rem; }
.community-section a { color:var(--red); font-weight:800; text-decoration:none; }
.faq-section { scroll-margin-top:72px; padding:clamp(4rem,8vw,7rem) 0; background:var(--soft); }
.faq-list { margin-top:2rem; }
.faq-list details { margin-bottom:.8rem; background:#fff; border:1px solid var(--line); border-radius:9px; }
.faq-list summary { position:relative; padding:1.3rem 3.3rem 1.3rem 1.4rem; list-style:none; cursor:pointer; font-weight:800; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:""; position:absolute; right:1.5rem; top:50%; width:8px; height:8px; margin-top:-6px; border-right:2px solid var(--red); border-bottom:2px solid var(--red); transform:rotate(45deg); }
.faq-list details[open] summary::after { transform:rotate(-135deg); margin-top:-2px; }
.faq-list details p { max-width:820px; padding:0 1.4rem 1.3rem; margin:0; color:var(--text); }
.prefooter { padding:clamp(3.5rem,7vw,6rem) 0; color:#fff; background:linear-gradient(135deg,var(--red),#B31B1B 68%,#B31B1B); }
.prefooter-inner { display:grid; grid-template-columns:1fr auto; gap:3rem; align-items:center; }
.prefooter h2 { max-width:760px; margin:0; }
.prefooter-button { display:inline-flex; align-items:center; gap:.8rem; padding:1rem 1.25rem; color:var(--red); background:#fff; border-radius:8px; font-weight:800; text-decoration:none; white-space:nowrap; }
footer { padding:4.4rem 0 1.8rem; color:#fff; background:#222222; border-top:0; }
.footer-top { display:grid; grid-template-columns:1.05fr 1.6fr; gap:clamp(3rem,8vw,7rem); padding-bottom:3rem; }
.footer-name { display:flex; align-items:center; gap:.75rem; margin-bottom:1rem; }
.footer-name svg { width:28px; height:28px; fill:none; stroke:var(--red); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.footer-identity strong { display:block; font-size:1.3rem; }
.footer-identity p { max-width:370px; color:rgba(255,255,255,.75); }
.footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.footer-links h3 { color:#fff; font-size:1rem; }
.footer-links a { display:block; margin:.7rem 0; color:rgba(255,255,255,.8); text-decoration:none; }
.footer-links a:hover,.footer-links a:focus-visible { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.footer-bottom { display:flex; justify-content:space-between; gap:2rem; padding-top:1.6rem; border-top:1px solid rgba(255,255,255,.12); }
.footer-bottom p { margin:0; color:rgba(255,255,255,.7); font-size:.82rem; }
@media (max-width:1100px) { .site-header{gap:1rem}.cornell-logo{width:132px}.brand-divider{margin-inline:.7rem}nav a{padding:.55rem .58rem;font-size:.8rem} }
@media (max-width:980px) { .entry-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.space-carousel,.project-carousel{grid-auto-columns:minmax(285px,48%)}.space-profile{grid-template-columns:.8fr 1.2fr}.profile-facts{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.site-name{font-size:.9rem}.brand-divider{margin-inline:.55rem} }
@media (max-width:760px) { .site-header{min-height:72px}.cornell-logo{width:142px}.site-name{display:inline}.brand-divider{display:block}.menu-button{display:block}nav{position:absolute;top:71px;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:.1rem;padding:1rem 1.25rem 1.25rem;background:#fff;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:0 18px 32px rgba(34,34,34,0.12)}nav.open{display:flex}nav a{padding:.8rem}.hero{min-height:auto}.hero-inner{padding-top:5rem}.entry-grid{grid-template-columns:1fr}.entry-card{min-height:116px}.space-carousel,.project-carousel{grid-auto-columns:minmax(275px,82%)}.carousel-edge{display:none}.space-profile{grid-template-columns:1fr}.profile-image{min-height:300px;max-height:440px}.profile-facts{grid-column:auto;grid-template-columns:1fr}.resources-layout,.community-section,.prefooter-inner,.footer-top{grid-template-columns:1fr}.community-icon{width:72px;height:72px}.prefooter-button{justify-self:start}.footer-bottom{flex-direction:column} }
@media (max-width:520px) { .content-width,.hero-inner{width:min(var(--max),calc(100% - 2rem))}.hero h1{font-size:clamp(2.8rem,15vw,4.6rem)}.section-heading-row{align-items:start}.resource-list a{grid-template-columns:1fr auto}.resource-list span{grid-column:1/-1}.footer-links{grid-template-columns:1fr}.cornell-logo{width:120px}.site-name{font-size:.82rem}.brand-divider{height:28px;margin-inline:.45rem} }
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto}.entry-card{transition:none} }

/* Presentation-video direction */
.site-header { min-height:64px; padding:0 max(8vw,1.25rem); border-bottom:1px solid rgba(34,34,34,0.16); box-shadow:none; backdrop-filter:none; }
.site-header::before { display:none; }
.brand { gap:.55rem; }
.makerspace-mark { width:25px; height:25px; fill:none; stroke:var(--red); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.site-name { font-size:1rem; }
nav { gap:1.35rem; padding:0; background:transparent; border:0; border-radius:0; }
nav a { padding:1.35rem 0; border-radius:0; font-size:.82rem; font-weight:500; }
nav a:hover,nav a:focus-visible { color:var(--red); background:transparent; }
.hero { min-height:650px; align-items:start; color:#fff; background:linear-gradient(135deg,#B31B1B 0%,#B31B1B 62%,#B31B1B 100%); }
.hero::after { content:""; position:absolute; inset:auto 0 0; z-index:0; height:215px; background:#fff; }
.hero-photo { inset:64px 14% auto auto; z-index:1; width:300px; height:300px; border:8px solid rgba(255,255,255,.14); border-radius:50%; background:url("assets/che-apparel-2023-1038-018.jpg") center 42%/cover no-repeat; box-shadow:0 18px 38px rgba(179,27,27,0.3); }
.hero-overlay { inset:0; z-index:0; background:radial-gradient(circle at 77% 24%,transparent 0 51px,rgba(255,255,255,.13) 52px 54px,transparent 55px),radial-gradient(circle at 59% 55%,transparent 0 36px,rgba(255,255,255,.12) 37px 39px,transparent 40px); }
.hero-inner { padding:75px 0 28px; }
.hero-inner>h1,.hero-intro { position:relative; z-index:2; max-width:500px; }
.hero h1 { margin-bottom:1rem; font-size:clamp(3rem,5vw,4.6rem); }
.hero-intro { margin-bottom:0; font-size:1.08rem; }
.entry-grid { position:relative; z-index:3; margin-top:110px; }
.entry-card,.entry-card.entry-primary { min-height:145px; color:var(--ink); background:#fff; border:1px solid rgba(34,34,34,0.16); border-radius:10px; box-shadow:0 9px 24px rgba(34,34,34,0.11); }
.entry-card small,.entry-primary small { color:#222222; }
.entry-card:hover,.entry-card:focus-visible { box-shadow:0 14px 30px rgba(34,34,34,0.16); }
.spaces-section .section-heading-row { justify-content:center; text-align:center; }
.spaces-section .section-intro { margin-inline:auto; }
.spaces-section .content-width { position:relative; }
.spaces-section .carousel-controls { position:absolute; top:2rem; right:0; opacity:1; }
.space-carousel { scrollbar-width:none; }
.space-carousel::-webkit-scrollbar { display:none; }
.prefooter { padding:3rem 0; background:#222222; }
.prefooter-inner { display:block; }
.prefooter h2 { margin-bottom:.75rem; font-size:1.7rem; }
.prefooter p { max-width:760px; color:rgba(255,255,255,.85); }
.audience-tags { display:flex; flex-wrap:wrap; gap:.65rem; margin-top:1rem; }
.audience-tags span { padding:.42rem .75rem; color:#fff; background:#222222; border-radius:5px; font-size:.82rem; }

@media (max-width:760px) {
  .site-header { min-height:72px; padding-inline:1rem; }
  .site-name { display:inline; }
  nav { gap:.1rem; padding:1rem 1.25rem 1.25rem; background:#fff; border-bottom:1px solid var(--line); box-shadow:0 18px 32px rgba(34,34,34,0.12); }
  nav a { padding:.8rem; color:var(--ink); }
  .hero { min-height:auto; padding-bottom:2rem; }
  .hero::after { display:none; }
  .hero-photo { position:relative; inset:auto; width:190px; height:190px; margin:2rem auto 0; }
  .hero-inner { padding-top:2.5rem; }
  .entry-grid { margin-top:3rem; }
  .spaces-section .carousel-controls { position:static; }
}
