/* Basic type, white pages, and color from the things being made. */
:root{--ink:#23383c;--muted:#607074;--accent:#315e61;--line:#dce2df}
body,button,input,textarea{font-family:Arial,Helvetica,sans-serif}
body{background:#fff}
main{overflow-x:clip}
.wrap{max-width:1180px;width:calc(100% - 112px)}
.project-research{--project-marker:#ffba70}
.project-puzzle,.project-next{--project-marker:#ffe15a}
.menu-toggle{border:1px solid #e3e7e4;box-shadow:0 3px 12px #23383c0a;border-radius:4px;width:47px;height:45px}
.menu-toggle:hover{border-color:var(--accent)}
.menu-toggle span{height:2px;width:25px!important;border-radius:0}
.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(8px) rotate(45deg)}
.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-8px) rotate(-45deg)}
.menu-pages{border:1px solid var(--line);border-radius:4px;box-shadow:4px 7px 0 #23383c0c;padding:22px 15px 18px}
.menu-page{padding:12px 10px;transition:color .2s}
.menu-page:hover{color:#17292d}
.menu-page:hover .menu-mark{transform:rotate(-4deg) scale(1.16)}
.menu-mark{transition:transform .2s}
.menu-extras{font-size:.9rem;justify-content:space-between}
.btn{border:1px solid var(--ink);box-shadow:none;border-radius:3px;padding:13px 20px;font-size:.92rem;display:inline-flex;gap:20px;transition:box-shadow .2s,transform .2s}
.btn:hover{transform:translateY(-2px);box-shadow:3px 4px 0 #b5d36990}
.btn-ghost{border-color:var(--line);border-style:solid}
.eyebrow{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;color:var(--muted)}
.project-illustration{width:min(360px,100%);height:auto;margin:auto}
.story-note{max-width:none;margin:0;padding:0;background:transparent;box-shadow:none;clip-path:none;border:0}
.story-note h2{font-size:clamp(1.8rem,3vw,2.7rem);margin-bottom:16px}
.story-note>p:not(.eyebrow){max-width:63ch;margin-top:0}
.story-note>p+p:not(.eyebrow){margin-top:14px}
.story-section + .story-section{border-top:1px solid var(--line)}
@media(min-width:801px){
 .story-section:not(.volleyball-story)>.story-note{display:flow-root}
 .story-section:not(.volleyball-story)>.story-note h2{float:left;width:34%;margin:0}
 .story-section:not(.volleyball-story)>.story-note>p:not(.eyebrow){margin-inline-start:42%}
}
.story-note .tape{display:none}
.page-turn{border-top:1px solid var(--line)}
.page-turn a{border:0;box-shadow:none;padding-inline:0;background:transparent;font-size:.95rem}
.page-turn a:hover{text-decoration:underline;text-underline-offset:4px}
.project-hero h1{font-size:clamp(3rem,6.6vw,6rem);overflow-wrap:normal}
.project-sketch{min-width:0}
.project-hero .project-sketch:before{inset:0 -2%;transform:rotate(-4deg)}
.lab-link{display:grid;justify-items:center;gap:14px;padding:16px;font-weight:700}
.lab-link img{width:clamp(108px,13vw,150px);height:auto}
.lab-link>span{text-decoration:underline;text-underline-offset:4px}
.site-footer{border-top:1px solid var(--line);padding-block:28px 35px}
.site-footer .scribble{font-size:.8rem;color:var(--muted)}
.footer-home{font-size:.9rem!important}

/* Home: simple type, blue accents, and six photo-led project cards. */
.home-page{--ink:#192e38;--muted:#5c6a73;--accent:#2055d5;--line:#d3dce1;background:#faf9f5}
.home-page main{padding-top:74px}
.home-page .dot{color:var(--accent)}
.home-page .hero{grid-template-columns:1.15fr .85fr;gap:94px;padding-block:38px 86px;min-height:620px}
.hero-kicker{font-size:.77rem;letter-spacing:.035em;color:var(--muted);display:flex;align-items:center;gap:13px;margin-bottom:18px}
.kicker-dots{display:inline-flex;gap:4px}.kicker-dots i{width:8px;height:8px;border-radius:50%;background:#2055d5}
.kicker-dots i:nth-child(2){background:#a3c3ef}.kicker-dots i:nth-child(3){background:#e8b498}
.home-page .hero h1{font-size:clamp(4.7rem,7.4vw,7rem);line-height:.96;letter-spacing:-.055em;margin:0 0 30px}
.home-page .hero .lead{font-size:1rem;line-height:1.85;max-width:510px}
.home-page .hero-actions{margin-top:28px;gap:12px}
.home-page .hero .btn:first-child{background:#2055d5;color:#fff!important;border-color:#2055d5}
.home-page .hero .btn:hover{box-shadow:3px 4px 0 #cedcf5}
.home-page .hero-photo{max-width:410px;width:100%;margin:12px 0 0;isolation:isolate}
.home-page .hero-photo:before{inset:14px -12px -12px 18px;background:#dce7f7;transform:rotate(3deg);mask:none;-webkit-mask:none;border-radius:34% 12px 26% 12px}
.home-page .hero-photo .blob{aspect-ratio:4/4.5;transform:none;clip-path:none;border:0;border-radius:31% 12px 23% 12px;padding:0;box-shadow:none;overflow:hidden}
.home-page .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:58% 46%;clip-path:none;border-radius:0;transform:none}
.home-page .hero-photo .sticker{bottom:20px;right:-28px;border:1px solid var(--line);background:#fff;transform:none;box-shadow:0 4px 15px #192e380c;padding:13px 20px 13px 35px;font-size:.8rem;border-radius:3px}
.home-page .hero-photo .sticker-dot{position:absolute;left:17px;top:50%;width:7px;height:7px;border-radius:50%;background:#2055d5;transform:translateY(-50%)}.home-page .doodle-star{display:none}
.home-page .section{padding-block:80px}
.home-page .projects-section{background:#edf2f5;border-block:1px solid #dce3e7;padding-block:92px 96px}
.project-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:35px;margin-bottom:52px}
.project-section-heading .eyebrow{font-size:.78rem;color:#2055d5;letter-spacing:.13em;margin-bottom:24px}
.project-section-heading h2{font-size:clamp(2.7rem,4.7vw,4.3rem);line-height:1.05;letter-spacing:-.055em}
.projects-intro{font-size:1.06rem;line-height:1.65;color:var(--muted);max-width:320px;margin-bottom:2px}
.home-page .project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px clamp(20px,3vw,42px)}
.home-page .project-link:nth-child(n){margin:0;transform:none}
.home-page .project-link{display:flex;flex-direction:column;min-width:0;background:transparent;border:0;border-radius:12px;box-shadow:none;transition:transform .2s}
.home-page .project-link:before,.home-page .project-link:after,.home-page .project-link h3:before{display:none}
.home-page .project-link:hover,.home-page .project-link:focus-visible{transform:translateY(-4px)}
.home-page .project-link:focus-visible{outline-offset:7px}
.project-media{position:relative;aspect-ratio:1.42;overflow:hidden;background:#dce6f1;border-radius:12px 12px 30px 12px}
.project-link:nth-child(3n+2) .project-media{border-radius:12px 30px 12px 12px}
.project-link:nth-child(3n+3) .project-media{border-radius:30px 12px 12px 12px}
.project-media>img{width:100%;height:100%;object-fit:cover;transition:transform .35s;clip-path:none;border:0;transform:none}
.home-page .project-link:hover .project-media>img{transform:scale(1.035)}
.project-botanical .project-media>img{object-position:50% 64%}
.project-volleyball .project-media>img{object-position:50% 50%}
.project-robotics .project-media>img{object-position:50% 49%}
.project-media.illustrated>img{object-fit:contain;width:100%;height:100%;padding:14px}
.project-senior .project-media{background:#ffe3cd}.project-research .project-media{background:#e0e8dc}.project-puzzle .project-media{background:#e7e0f4}
.project-number{position:absolute;z-index:1;top:15px;left:15px;display:grid;place-items:center;min-width:30px;height:30px;background:#fff;color:#192e38;font-size:.74rem;border:0;border-radius:8px;padding:0 6px}
.project-body{display:flex;flex-direction:column;flex:1;padding:19px 2px 2px}
.home-page .project-body h3{font-size:1.55rem;line-height:1.15;letter-spacing:-.035em;margin:0 0 9px;padding:0;color:#192e38}
.home-page .project-body>p{font-size:.96rem;line-height:1.65;color:#5c6a73;margin:0 0 14px;max-width:33ch}
.home-page .project-body .project-open{display:flex;justify-content:flex-start;align-items:center;gap:9px;margin-top:auto;font-size:.85rem;font-weight:700;color:#2055d5}
.home-page .project-open:before{display:none}
.project-body .open-arrow{font-size:1.35rem;line-height:1;color:#2055d5;transition:transform .2s}
.project-link:hover .open-arrow{transform:translate(2px,-2px)}
.home-page .about{display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;padding-block:90px}
.home-page .about h2{font-size:clamp(2.2rem,4vw,3.5rem)}.home-page .tilt{transform:none}
.home-page .about .note{background:transparent;border:0;box-shadow:none;transform:none;padding:0;clip-path:none}
.home-page .about .note .tape{display:none}.home-page .about .note p{font-size:.96rem;line-height:1.85}
.home-page .about .note .scribble{font-size:.8rem;color:var(--muted);margin-bottom:0}
.home-page .contact{border-top:1px solid var(--line);margin-top:15px;padding-block:65px 80px}
.home-page .contact h2{font-size:clamp(2.2rem,4vw,3.5rem)}.home-page .contact .lead{font-size:1rem;margin:18px 0 28px}
.home-page .contact-links{gap:16px}.home-page .contact-chip{border:1px solid var(--line);border-radius:32px;box-shadow:none;background:#fff;transform:none;padding:13px 22px;font-size:.9rem}
.home-page .chip-label{font-size:.69rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.home-page .contact-chip:hover{border-color:#2055d5}.home-page .site-footer{background:transparent}

/* A closer look at the real work. Links still open photos without JavaScript. */
.photo-section .section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:32px}
.photo-section .section-heading h2{font-size:clamp(2rem,3.6vw,3rem)}
.photo-section .section-heading>p{max-width:340px;color:var(--muted);font-size:.93rem;line-height:1.7}
.photo-section .eyebrow{margin-bottom:17px}
.photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:30px clamp(20px,3vw,38px)}
.project-robotics .photo-grid{grid-template-columns:1.18fr 1fr}
.photo-grid figure{margin:0;min-width:0}
.gallery-photo{position:relative;display:block;overflow:hidden;border-radius:14px;background:#edf1f1}
.gallery-photo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;transition:transform .3s}
@media(min-width:801px){
 .project-robotics .photo-grid figure:nth-child(2){margin-top:36px}
 .project-robotics .photo-grid figure:nth-child(-n+2) img{aspect-ratio:4/4.4}
 .theme-botanical .photo-grid{grid-template-columns:repeat(12,minmax(0,1fr))}
 .theme-botanical .photo-grid figure{grid-column:span 3}
 .theme-botanical .photo-grid figure:nth-child(-n+2){grid-column:span 6}
}
.gallery-photo .indoor-action{object-position:50% 64%}
.gallery-photo:hover img{transform:scale(1.025)}
.photo-zoom{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:31px;height:31px;background:#fff;color:#23383c;border-radius:50%;font-size:1.1rem}
.photo-grid figcaption{font-family:Arial,Helvetica,sans-serif;font-size:.8rem;line-height:1.6;color:var(--muted);margin-top:10px}
.project-hero .project-cover{margin:0;min-width:0}
.project-cover img{width:100%;height:auto;max-height:490px;aspect-ratio:4/4.5;object-fit:cover;object-position:50% 48%;border-radius:40px 12px 12px 12px}
.project-hero .project-cover figcaption{font-family:Arial,Helvetica,sans-serif;font-size:.85rem;line-height:1.6;margin:12px 0 0;color:var(--muted)}
.animation-paper{margin:0;padding:0;background:transparent;box-shadow:none}
.animation-paper:before{display:none}
.animation-paper img{border-radius:14px 40px 14px 14px}
.animation-paper figcaption{padding-inline:0}
.photo-lightbox{position:fixed;inset:0;margin:auto;width:min(1080px,calc(100% - 48px));max-width:1080px;max-height:calc(100% - 40px);padding:14px 56px 18px;border:1px solid #d3dce1;border-radius:5px;background:#fff;color:#192e38;overflow:auto;box-shadow:0 20px 90px #0005}
.photo-lightbox:not([open]){display:none}
.photo-lightbox::backdrop{background:#10222ddd;backdrop-filter:blur(5px)}
.lightbox-toolbar{display:flex;justify-content:space-between;align-items:center;margin:0 -41px 10px}
.lightbox-counter{font-size:.78rem;letter-spacing:.06em;color:#5c6a73}
.lightbox-close,.lightbox-prev,.lightbox-next{display:grid;place-items:center;border:1px solid #d3dce1;border-radius:3px;background:#fff;color:#192e38;cursor:pointer;width:36px;height:36px;font-size:1.4rem;line-height:1}
.lightbox-close{font-size:1.7rem}.lightbox-prev,.lightbox-next{position:absolute;top:50%;transform:translateY(-50%)}
.lightbox-prev{left:10px}.lightbox-next{right:10px}.photo-lightbox button:hover{background:#edf2f5}
.photo-lightbox button:disabled{opacity:.35;cursor:default}
.lightbox-image{width:100%;height:min(70vh,740px);object-fit:contain;background:#f5f6f5}
.lightbox-caption{font-size:.85rem;line-height:1.6;margin-top:12px;max-width:90%}
body.gallery-open{overflow:hidden}

.project-volleyball .project-hero .hero-photo{margin-inline:0;width:100%}
.project-volleyball .project-hero .blob-photo{aspect-ratio:1.28;transform:none;clip-path:none;border-radius:16px 44px 16px 16px;padding:0;overflow:hidden}
.project-volleyball .project-hero .blob-photo img{clip-path:none;transform:none}
.project-volleyball .project-hero figcaption{margin-inline:0;font-size:.9rem;color:var(--muted)}
.volleyball-story,.volleyball-photo-feature{display:grid;align-items:center;gap:clamp(24px,5vw,64px)}
.volleyball-story .story-note,.volleyball-photo-feature .section-heading{margin:0}
.volleyball-photo-feature .section-heading{display:block}
.volleyball-photo-feature .section-heading p{margin-top:16px}
.story-photo{min-width:0;width:100%;max-width:580px;margin:0}
.story-photo .gallery-photo{border-radius:14px 36px 14px 14px}
.volleyball-story-reversed .gallery-photo{border-radius:36px 14px 14px 14px}
.story-photo img{aspect-ratio:auto}
.story-photo .indoor-action{aspect-ratio:4/5}
.story-photo figcaption{font-size:.8rem;line-height:1.6;color:var(--muted);margin-top:10px}
@media(min-width:801px){
 .volleyball-story{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr)}
 .volleyball-story-reversed{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
 .volleyball-story-reversed>.story-note{grid-area:1/2}
 .volleyball-story-reversed>.story-photo{grid-area:1/1}
 .volleyball-photo-feature{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
}
.vb-layout{align-items:start;gap:clamp(28px,6vw,78px)}
.vb-card{padding:0;border:0;background:transparent;box-shadow:none}
.vb-card .tape{display:none}
.vb-video{min-width:0}
.vb-video .eyebrow{margin-bottom:8px}
.vb-video h3{margin-bottom:16px}
.vb-video iframe{display:block;width:100%;height:auto;min-height:200px;aspect-ratio:16/9;border:0;border-radius:14px;background:#172a35}
.vb-video-caption{margin-top:10px;color:var(--muted);font-size:.88rem}
.vb-video-actions{display:flex;align-items:center;flex-wrap:wrap;gap:6px 18px;margin-top:14px}
.vb-shuffle{min-height:44px;padding:8px 13px;border:1px solid var(--accent);border-radius:4px;background:var(--accent);color:#fff;font-size:.88rem;font-weight:700}
.vb-shuffle:hover{filter:brightness(.88)}
.vb-video a{display:inline-flex;align-items:center;gap:6px;min-height:44px;color:var(--accent);font-size:.88rem;font-weight:700;text-decoration:underline;text-underline-offset:3px}
.vb-channel{margin-top:5px}

@media(min-width:801px) and (max-width:1050px){
 .wrap{width:calc(100% - 72px)}
 .home-page .hero{gap:50px;min-height:570px}.home-page .hero h1{font-size:5.5rem}
 .home-page .project-body h3{font-size:1.36rem}
}
@media(max-width:800px){
 .wrap{width:calc(100% - 64px)}
 .home-page .hero{grid-template-columns:1.1fr .9fr;gap:35px;min-height:530px;padding-block:25px 70px}
 .home-page .hero h1{font-size:4.7rem}.home-page .hero .lead{font-size:.94rem}.home-page .hero-actions{gap:10px}.home-page .hero .btn{font-size:.8rem;padding:11px 13px;gap:12px}
 .home-page .hero-photo .sticker{right:-12px;font-size:.7rem;padding:10px 14px 10px 29px}
 .home-page .project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 22px}
 .home-page .projects-section{padding-block:70px}.project-section-heading{gap:25px;margin-bottom:36px}.project-section-heading h2{font-size:3.2rem}.projects-intro{font-size:.92rem;max-width:270px}
 .home-page .project-body h3{font-size:1.45rem}
 .home-page .about{gap:35px;grid-template-columns:.65fr 1.35fr;padding-block:70px}
 .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-section .section-heading{gap:25px}.photo-section .section-heading>p{max-width:260px;font-size:.85rem}
}
@media(max-width:600px){
 .wrap{width:calc(100% - 42px)}
 .home-page main{padding-top:82px}.home-page .hero{grid-template-columns:1fr;gap:42px;padding-block:20px 65px;min-height:0}
 .home-page .hero h1{font-size:clamp(4rem,18vw,6rem);margin-bottom:26px}.home-page .hero .lead{font-size:1rem}
 .home-page .hero-photo{width:80%;max-width:330px;margin:0 auto 12px}.home-page .hero-photo .sticker{bottom:16px;right:-20px;font-size:.78rem}
 .home-page .hero .btn{font-size:.86rem;padding:12px 15px}.home-page .hero-actions{gap:12px;margin-top:24px}
 .home-page .projects-section{padding-block:54px 60px}.project-section-heading{display:block;margin-bottom:30px}.project-section-heading .eyebrow{font-size:.66rem;margin-bottom:19px}.project-section-heading h2{font-size:3rem}.projects-intro{margin-top:22px;font-size:.96rem;max-width:100%}
 .home-page .project-grid{grid-template-columns:1fr;gap:32px}
 .home-page .project-body h3{font-size:1.6rem}.home-page .project-body>p{font-size:1rem}
 .home-page .about{display:block;padding-block:60px}.home-page .about h2{margin-bottom:20px}
 .home-page .contact{padding-block:48px 60px;margin-top:0}.home-page .contact-chip{width:100%;padding:15px 18px;overflow-wrap:anywhere}
 .photo-section .section-heading{display:block}.photo-section .section-heading>p{max-width:100%;font-size:.93rem;margin-top:20px}
 .photo-grid,.project-robotics .photo-grid{grid-template-columns:1fr;gap:25px}.photo-grid figcaption{font-size:.84rem}
 .project-cover img{max-height:450px}.photo-lightbox{width:calc(100% - 20px);padding:10px 42px 15px;max-height:calc(100% - 20px)}
 .lightbox-toolbar{margin:0 -30px 10px}.lightbox-image{height:65vh}.lightbox-prev{left:5px}.lightbox-next{right:5px}.lightbox-prev,.lightbox-next{width:31px;height:36px}.lightbox-caption{font-size:.8rem;max-width:100%}
 .site-footer{display:block}.site-footer p{margin-top:16px;font-size:.75rem!important}
}
@media(prefers-reduced-motion:reduce){
 .home-page .project-link,.project-media>img,.open-arrow,.gallery-photo img{transition:none!important}
 .home-page .project-link:hover,.home-page .project-link:focus-visible,.home-page .project-link:hover .project-media>img,.project-link:hover .open-arrow,.gallery-photo:hover img{transform:none!important}
}
