:root{--paper:#fff;--ink:#202020;--muted:#666;--line:#e7e7e7;--sans:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #527563;outline-offset:5px}::selection{background:#e2eade}.wrap,.header{width:min(1040px,calc(100% - 96px));margin:auto}.header{display:flex;justify-content:space-between;align-items:center;padding:33px 0}.brand{font-weight:600;font-size:19px;letter-spacing:-.5px}.header nav{display:flex;gap:28px;font-size:15px}.header a:hover,.text-link:hover{color:#527563}.nav-github span{margin-left:4px}.menu-toggle{display:none}.skip{position:fixed;top:-80px;left:20px;background:#202020;color:white;padding:10px;z-index:10}.skip:focus{top:10px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:var(--sans);font-weight:500;letter-spacing:-1px;line-height:1.15}h1{font-size:clamp(52px,7vw,88px);letter-spacing:-4px;margin:0 0 25px}h2{font-size:35px;margin:0}h3{font-size:21px;letter-spacing:-.4px}p{margin-bottom:20px}.hero{padding:100px 0 105px;display:block}.hero-intro{font-size:23px;line-height:1.6;color:var(--muted);max-width:730px;margin:0}.hero-actions{display:flex;gap:27px;margin-top:32px;align-items:center}.button{display:inline-flex;align-items:center;gap:20px;padding:10px 18px;font-size:15px;border-radius:4px;background:#202020;color:#fff}.button:hover{background:#444}.text-link{font-size:15px;text-decoration:underline;text-underline-offset:5px}.section,.about-section,.certificate-section{padding:65px 0;border-top:1px solid var(--line)}.section-top{display:flex;justify-content:space-between;gap:40px;margin-bottom:30px;align-items:flex-start}.section-intro{color:var(--muted);max-width:420px;font-size:16px;margin:0}.section-intro:empty{display:none}.section-intro p{margin-bottom:12px}.filters{display:flex;gap:20px;flex-wrap:wrap;margin:0 0 15px}.filters button{padding:8px 0;background:none;border:0;border-bottom:2px solid transparent;font-size:15px;color:var(--muted)}.filters button.active{color:var(--ink);border-color:var(--ink)}.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.project-card{padding:27px 0;border-bottom:1px solid var(--line)}.project-card h3{margin:0 0 10px}.project-card h3 button{font:inherit;color:inherit;border:0;background:none;text-align:left;padding:0}.project-card h3 button:after{content:' ↗';font-size:17px;color:#888}.project-card h3 button:hover{color:#527563}.project-card p{font-size:16px;color:var(--muted);line-height:1.7;margin:0;max-width:440px}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:70px}.about-story p{color:var(--muted);font-size:17px;line-height:1.8}.about-story .lead{color:var(--ink);font-size:22px;line-height:1.55;margin-bottom:24px}.about-story p:last-child{margin:0}.credentials{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin:35px 0}.credentials>div{display:flex;flex-direction:column}.credentials strong{font-size:38px;font-weight:500;letter-spacing:-1px;line-height:1.2;margin-bottom:12px}.credentials span{font-size:16px}.credentials small{font-size:15px;color:var(--muted);margin-top:5px}.award-strip{display:flex;align-items:center;gap:20px;padding-top:25px;border-top:1px solid var(--line)}.award-strip h3{font-size:20px;margin:0 0 8px}.award-strip p{font-size:15px;margin:0;color:var(--muted)}.round-link{font-size:23px;margin-left:auto}.archive-toolbar{display:flex;gap:18px;align-items:flex-end;padding:10px 0 20px}.search{display:flex;align-items:center;flex:1;border:1px solid #ddd;border-radius:4px}.search span{display:none}.search input{width:100%;padding:12px;border:none;background:none;min-width:0;font-size:16px}.select-label{font-size:14px;color:var(--muted);display:flex;flex-direction:column;gap:5px}select{padding:11px 30px 11px 10px;border:1px solid #ddd;border-radius:4px;background:white;color:var(--ink);font-size:15px}.archive-heading{color:var(--muted);font-size:15px}.archive-heading p{margin:0 0 15px}.certificate-row{display:grid;grid-template-columns:1fr 100px 20px;gap:20px;align-items:center;border-top:1px solid var(--line);padding:20px 0}.certificate-row h3{font-size:17px;letter-spacing:0;font-weight:500;line-height:1.5;margin:0 0 5px}.certificate-row p,.certificate-row time{font-size:15px;color:var(--muted);margin:0}.certificate-row:hover h3{color:#527563}.cert-award{display:none}.archive-note{font-size:15px;color:var(--muted);margin-top:25px}.no-results{padding:30px 0}.no-results button{background:none;border:0;text-decoration:underline}.now-section{display:grid;grid-template-columns:1fr 1fr;gap:75px}.now-description{font-size:17px;color:var(--muted);margin:25px 0 18px}.now-note{font-size:16px;color:var(--muted)}.itinerary h3{font-size:18px;margin:0 0 20px}.itinerary ol{list-style:none;margin:0;padding:0}.itinerary li{display:flex;justify-content:space-between;font-size:17px;border-top:1px solid var(--line);padding:9px 0}.itinerary small{font-size:15px;color:var(--muted)}.itinerary>p{font-size:15px;color:var(--muted);margin:20px 0 0}.footer{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:30px;padding-bottom:35px;font-size:15px;color:var(--muted)}dialog{width:min(620px,calc(100% - 32px));border:1px solid #ddd;border-radius:6px;background:white;color:var(--ink);padding:40px;max-height:85vh;overflow:auto}dialog::backdrop{background:#0006}.dialog-close{position:absolute;right:15px;top:10px;font-size:30px;background:none;border:0;color:#555}dialog h2{font-size:34px;margin:15px 0 25px}dialog h3{font-size:18px;margin:28px 0 12px}dialog p{font-size:17px;line-height:1.7;color:var(--muted)}.project-detail-meta{margin:0;font-size:15px}.dialog-note{font-size:15px;border-top:1px solid var(--line);padding-top:20px;margin-top:25px}.hidden{display:none!important}@media(max-width:760px){.wrap,.header{width:calc(100% - 40px)}.header{padding:25px 0;position:relative}.brand{font-size:18px}.menu-toggle{display:block;background:none;border:0;color:var(--ink);font-size:15px}.header nav{display:none;position:absolute;left:0;right:0;top:65px;background:white;border:1px solid var(--line);border-radius:5px;padding:20px;z-index:5;flex-direction:column;gap:18px}.header nav.open{display:flex}.hero{padding:65px 0 70px}h1{font-size:56px;letter-spacing:-2.5px}.hero-intro{font-size:20px}.hero-intro br{display:none}.hero-actions{gap:23px}.section,.about-section,.certificate-section{padding:45px 0}.section-top{display:block;margin-bottom:25px}h2{font-size:30px}.section-intro{font-size:16px;margin-top:20px}.projects-grid{grid-template-columns:1fr;gap:0}.project-card{padding:24px 0}.filters{gap:20px}.filters button{font-size:14px}.about-grid{grid-template-columns:1fr;gap:28px}.about-story .lead{font-size:21px}.credentials{grid-template-columns:1fr 1fr;gap:30px}.credentials strong{font-size:34px}.credentials span,.credentials small{font-size:15px}.award-strip{align-items:flex-start}.award-strip h3{font-size:18px}.archive-toolbar{flex-wrap:wrap;gap:15px}.search{flex-basis:100%}.select-label{flex:1;min-width:0}.select-label select{width:100%;min-width:0}.certificate-row{grid-template-columns:1fr 18px;gap:10px}.certificate-row time{display:none}.certificate-row h3{font-size:17px}.certificate-row p{font-size:15px}.now-section{grid-template-columns:1fr;gap:25px}.footer{font-size:14px}dialog{padding:35px 24px}dialog h2{font-size:30px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Soft green palette */
:root{--paper:#fbfcf8;--ink:#244333;--muted:#647365;--line:#dce4d7}
.header a:hover,.text-link:hover,.project-card h3 button:hover,.certificate-row:hover h3{color:#457352}
.button{background:#2b503b;color:#fff}.button:hover{background:#3c6349}
.about-section,.certificate-section{background:#edf3e7}
.search,select{background:#fbfcf8;border-color:#d2ddcb}
.filters button.active{color:#244333;border-color:#52794d}
.certificate-row p,.certificate-row time,.now-description,.now-note,.itinerary small,.itinerary>p,.archive-note,.footer{color:var(--muted)}
dialog{background:#fbfcf8;border-color:#d2ddcb}
::selection{background:#d8e6ca}
@media(max-width:760px){.header nav{background:#fbfcf8}}
.project-art{display:block;width:100%;padding:0;margin:0 0 23px;border:0;background:#e5e9de;border-radius:4px;overflow:hidden;aspect-ratio:1.5}
.project-art svg,.project-art img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s}
.project-art:hover svg,.project-art:hover img{transform:scale(1.025)}
.project-art img{object-position:center 50%}
@media(prefers-reduced-motion:reduce){.project-art svg,.project-art img{transition:none}}
.certificate-tabs{display:flex;gap:22px;overflow-x:auto;margin:15px 0 20px;border-bottom:1px solid var(--line)}
.certificate-tabs button{flex-shrink:0;white-space:nowrap;font-size:16px;border:0;border-bottom:2px solid transparent;padding:12px 0;background:none;color:var(--muted)}
.certificate-tabs button[aria-selected="true"]{border-bottom-color:var(--ink);color:var(--ink)}
button.certificate-row{width:100%;text-align:left;background:none;border:0;border-top:1px solid var(--line);color:var(--ink);font:inherit}
.certificate-summary{display:flex;flex-direction:column;gap:5px}.certificate-summary strong{font-size:17px;font-weight:500;line-height:1.5}.certificate-summary>span{font-size:15px;color:var(--muted)}
button.certificate-row:hover .certificate-summary strong{color:#457352}
#certificate-dialog{width:min(1000px,calc(100% - 32px));padding:35px;max-height:92vh}
#certificate-dialog h2{padding-right:25px;font-size:26px;margin:5px 0 12px}
.certificate-close{position:absolute;right:14px;top:10px;background:none;border:0;color:var(--ink);font-size:30px}
.certificate-details{font-size:15px;margin-bottom:15px}.certificate-award{font-size:16px;color:var(--ink)}
.certificate-document{width:100%;height:65vh;border:0;display:block;background:#fff}.certificate-image{display:block;max-width:100%;max-height:68vh;margin:auto;object-fit:contain}
.certificate-unavailable{padding:45px 25px;background:#edf3e7;border-radius:4px}.certificate-unavailable p{font-size:17px}.certificate-unavailable p:last-child{font-size:15px;margin:0}.certificate-download{display:inline-block;margin-top:20px}
@media(max-width:760px){.certificate-tabs{gap:20px}.certificate-tabs button{font-size:15px}#certificate-dialog{padding:30px 20px}#certificate-dialog h2{font-size:23px}.certificate-document{height:60vh}.certificate-unavailable{padding:25px 18px}}
.certificate-pages{background:#e6ebe1;padding:12px;border-radius:4px}
.certificate-pages .certificate-image{width:100%;max-height:none;height:auto;margin:0 auto 12px;background:#fff}
.certificate-pages .certificate-image:last-child{margin-bottom:0}
.hero{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:55px;padding:70px 0 80px}
.hero h1{font-size:clamp(48px,5.8vw,76px)}
.hero-intro{font-size:21px}
.hero-illustration{margin:0}.hero-illustration img{display:block;width:100%;border-radius:50% 50% 4px 4px}
button.round-link{border:0;background:none;color:var(--ink);padding:5px;cursor:pointer}
@media(max-width:760px){.hero{grid-template-columns:1fr;gap:35px;padding:45px 0}.hero h1{font-size:56px}.hero-illustration{max-width:450px}.hero-intro{font-size:20px}}
.project-gallery{display:grid;gap:22px;margin:28px 0}.project-gallery figure{margin:0}.project-gallery img{display:block;width:100%;height:auto;border-radius:4px}.project-gallery figcaption,.workshop-photo figcaption{font-size:15px;color:var(--muted);margin-top:8px}
.workshop-photo{float:right;width:180px;margin:0 0 24px 28px}.workshop-photo img{width:100%;display:block;border-radius:4px}.about-story:after{content:'';display:block;clear:both}
@media(max-width:760px){.workshop-photo{width:130px;margin-left:20px}}@media(max-width:390px){.workshop-photo{float:none;width:180px;margin:0 0 25px}}
.dialog-illustration{margin:25px 0}.dialog-illustration svg,.dialog-illustration>img{display:block;width:100%;max-height:330px;object-fit:cover;border-radius:4px}.dialog-illustration figcaption{font-size:15px;color:var(--muted);margin-top:8px}
.award-preview{width:145px;flex-shrink:0;padding:0;border:0;background:none}.award-preview img{display:block;width:100%;border-radius:3px}
.now-photos{grid-column:1/-1;display:grid;grid-template-columns:1.5fr 1fr;gap:24px;margin-top:8px}.now-photos figure{margin:0}.now-photos img{display:block;width:100%;height:350px;object-fit:cover;border-radius:4px}.now-photos figcaption{font-size:15px;color:var(--muted);margin-top:8px}
@media(max-width:760px){.award-preview{width:95px}.now-photos{gap:18px;grid-template-columns:1fr}.now-photos img{height:auto;max-height:440px;object-fit:contain;object-position:left}}
.now-photos{grid-template-columns:1fr}.now-photos img{height:auto;max-height:650px;object-fit:cover;width:100%}
.hero-portrait img{border-radius:5px;aspect-ratio:4/5;object-fit:cover;object-position:center 56%}.project-links{margin-top:20px}
@media(max-width:760px){.hero-portrait{max-width:390px}.hero-portrait img{max-height:480px}}
.hero-portrait{overflow:hidden;border-radius:5px;aspect-ratio:4/5}.hero-portrait img{height:100%;width:100%;object-fit:cover;transform:scale(1.4);transform-origin:40% 74%;border-radius:0}
.project-art>img{object-fit:cover;object-position:center 42%}.project-gallery img{max-height:620px;object-fit:contain;background:#edf3e7}
.about-page-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:65px;align-items:start;padding:70px 0 80px}.about-page-intro h1{font-size:60px;letter-spacing:-2px}.about-page-intro .lead{font-size:23px;color:var(--ink)}.about-page-intro p{color:var(--muted)}.about-page-portrait{width:100%;border-radius:5px;max-height:600px;object-fit:cover}.about-gallery-section{padding:55px 0 70px;border-top:1px solid var(--line)}.photo-gallery{columns:3;column-gap:25px;margin-top:25px}.photo-gallery figure{margin:0 0 28px;break-inside:avoid}.photo-gallery button{padding:0;width:100%;border:0;background:none;display:block}.photo-gallery img{display:block;width:100%;height:auto;border-radius:4px}.photo-gallery figcaption{color:var(--muted);font-size:15px;margin-top:8px}#photo-viewer{padding:20px;width:min(1050px,calc(100% - 25px));text-align:center}#full-photo{max-width:100%;max-height:76vh;object-fit:contain;display:block;margin:auto}.photo-close{position:absolute;right:10px;top:5px;border:0;background:#fbfcf8;border-radius:50%;font-size:30px;width:40px;height:40px;color:var(--ink)}#photo-caption{font-size:16px;margin:15px 0 0}
@media(max-width:760px){.about-page-intro{grid-template-columns:1fr;gap:30px;padding:40px 0}.about-page-intro h1{font-size:48px}.about-page-portrait{max-width:380px}.photo-gallery{columns:2;column-gap:18px}.about-gallery-section{padding:40px 0}}@media(max-width:450px){.photo-gallery{columns:1}}

.progress-label{display:block;font-size:18px;font-weight:400;color:#5d735e;margin-top:10px}.project-status{font-size:18px;color:#526c55;margin:10px 0 24px}#startup-grid,#capstone-grid{max-width:650px}

#photo-gallery{columns:initial;display:block}.gallery-activity{margin:36px 0 64px}.gallery-activity h3{font-size:28px;font-weight:500;margin:0 0 24px}.activity-media-grid{columns:3;column-gap:24px}.activity-media-grid figure{break-inside:avoid;margin:0 0 28px}.activity-media-grid button{position:relative}.video-play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#244d38e6;color:white;font-size:22px;padding-left:3px}.activity-filters{flex-wrap:wrap;gap:12px 22px}.media-type-filters{border-top:1px solid #dce1d8;padding-top:18px;margin-top:10px}#full-video{display:block;width:100%;max-height:75vh;background:#17251b}#full-video[hidden],#full-photo[hidden]{display:none}.gallery-empty{padding:40px 0;color:#637363}#startup-grid,#capstone-grid{grid-template-columns:1fr;max-width:620px}@media(max-width:900px){.activity-media-grid{columns:2}}@media(max-width:600px){.activity-media-grid{columns:1}.activity-filters{overflow:visible;white-space:normal}.gallery-activity h3{font-size:25px}}

#additional-grid{grid-template-columns:1fr;max-width:620px}.project-credit{font-size:17px;color:#526c55;margin-top:12px}.case-study-gallery{display:block}.case-study-gallery figure{margin:32px 0}.case-study-gallery img{width:100%;max-height:none;height:auto;object-fit:contain}.case-study-gallery figcaption{font-size:17px;margin-top:12px}

#project-dialog.wide-case-study{width:min(1120px,calc(100% - 32px));max-height:90vh}.wide-case-study .project-summary{max-width:780px}.wide-case-study .project-status{margin-bottom:20px}

.gallery-toolbar{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:40px 0 48px;padding:0 0 30px;border-bottom:1px solid #dce4d6}.activity-picker{display:flex;flex-direction:column;gap:12px;font-size:18px;color:#3b5843}.activity-picker select{appearance:auto;width:280px;max-width:100%;min-height:52px;padding:10px 16px;border:1px solid #cad8c4;border-radius:8px;background:#fbfcf8;color:#254d38;font:inherit;cursor:pointer}.media-switch{display:flex;gap:4px;padding:5px;border-radius:10px;background:#eaf0e3;flex-shrink:0}.media-switch button{font:inherit;font-size:17px;line-height:1.4;min-height:42px;padding:9px 21px;border:0;border-radius:7px;color:#61725e;background:transparent;white-space:nowrap}.media-switch button.active{background:#fff;color:#254d38;box-shadow:0 1px 4px #254d3814}.media-switch button:hover{color:#254d38}.gallery-activity:first-child{margin-top:0}@media(max-width:650px){.gallery-toolbar{align-items:stretch;flex-direction:column;gap:24px;margin:30px 0 36px;padding-bottom:24px}.activity-picker select{width:100%}.media-switch{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.media-switch button{padding:10px 8px}}
