@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Libre+Caslon+Display&display=swap');
:root{--paper:#f7f6f1;--ink:#203d34;--muted:#6e756e;--line:#d9ddd4;--accent:#dbe5d8}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px}a{color:inherit;text-decoration:none}button{font:inherit}header{height:110px;padding:0 6%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;gap:17px;align-items:center;font:36px 'Libre Caslon Display',Georgia,serif}.brand>span{font:600 11px/1.6 'DM Sans',sans-serif;letter-spacing:1.6px;border-left:1px solid #a8b4a8;padding-left:17px}.brand small{font-size:9px;color:var(--muted);font-weight:400}nav{display:flex;gap:36px;font-size:13px}nav a:hover,.back:hover{text-decoration:underline}.hero{display:grid;grid-template-columns:1.1fr 1fr;min-height:660px;padding:52px 6% 60px;gap:7%}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;line-height:1.8}.dot{display:inline-block;width:6px;height:6px;background:#769076;border-radius:50%;margin-right:8px}h1,h2{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}h1{font-size:clamp(48px,5.5vw,84px);line-height:1.02;letter-spacing:-2px;margin:35px 0 24px}i{font-weight:400;color:#75876b}.hero p{font-size:15px;line-height:1.7;color:var(--muted)}.button{background:var(--ink);color:white;display:inline-flex;padding:17px 22px;gap:55px;margin-top:20px;font-size:12px}.button:hover{background:#355649}.hero-credit{font-size:11px;margin-top:42px}.hero-credit span{color:var(--muted)}.hero-image{position:relative;background:linear-gradient(0deg,#102c2777,transparent 50%),url('https://images.unsplash.com/photo-1486406146926-c627a92ad1ab?auto=format&fit=crop&w=1200&q=90') center/cover;min-height:500px;margin-top:4px;border-radius:180px 180px 0 0}.image-label{position:absolute;bottom:28px;left:30px;color:#fff;font-size:9px;letter-spacing:2px;line-height:2}.image-label span{font-family:'Libre Caslon Display',Georgia,serif;font-size:29px;letter-spacing:0}.work{padding:65px 6% 80px;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:center}h2{font-size:48px;line-height:1.1;margin:16px 0 25px;letter-spacing:-.8px}.section-heading p{color:var(--muted);font-size:13px;line-height:1.8}.filters{display:flex;gap:9px;margin:18px 0 30px;flex-wrap:wrap}.filter{background:transparent;color:var(--muted);border:1px solid var(--line);padding:9px 16px;border-radius:30px;font-size:11px;cursor:pointer}.filter.active{background:var(--ink);color:#fff;border-color:var(--ink)}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}.card[hidden]{display:none}.card-image{height:255px;background-position:center;background-size:cover;position:relative;filter:saturate(.6)}.card-image>span{position:absolute;left:14px;top:14px;background:var(--paper);font-size:10px;padding:7px 10px}.card-image b{position:absolute;right:15px;bottom:15px;background:var(--paper);border-radius:50%;width:32px;height:32px;display:grid;place-items:center;font-weight:400}.card:hover .card-image b{background:var(--accent)}.card-meta{font-size:9px;letter-spacing:1px;display:flex;justify-content:space-between;margin:22px 0 12px}.card-meta span{color:var(--muted);font-size:8px}h3{font-weight:500;font-size:21px;line-height:1.35;margin:10px 0}.card h3{font:30px/1.08 'Libre Caslon Display',Georgia,serif;max-width:290px}.card p{font-size:11px;color:var(--muted)}.card-bottom{border-top:1px solid var(--line);margin-top:22px;padding-top:15px;font-size:10px;display:flex;gap:20px}.card-bottom b{margin-left:auto}.about{padding:70px 6%;background:#e9ede4;display:grid;grid-template-columns:1fr 1fr;gap:8%}.about h2{font-size:42px}.about h3 span{display:block;font-size:12px;color:var(--muted);margin-top:7px}.about p{font-size:15px;line-height:1.9}.about small{font-size:10px;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.tags span{font-size:10px;border:1px solid #c6cfc1;padding:7px 12px}footer{padding:30px 6%;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}footer em{padding:0 10px}.case-top{padding:45px 10%}.back{display:inline-block;font-size:12px;margin-bottom:40px}.case-top h1{font-size:68px;max-width:800px;margin:22px 0}.case-top p{color:var(--muted)}.case-banner{height:330px;margin:0 6%;background-position:center 45%;background-size:cover;filter:saturate(.55)}.case-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:7%;padding:70px 10%}.case-layout aside{display:flex;flex-direction:column;gap:23px;font-size:12px}.case-layout section{padding-bottom:60px;scroll-margin-top:30px}.case-layout section+section{border-top:1px solid var(--line);padding-top:50px}.case-layout h2{font-size:44px}.case-layout p,.case-layout li{color:var(--muted);line-height:1.8}.case-layout li{padding-bottom:10px}.case-layout ol{padding-left:20px}.note{font-size:11px;background:#e9ede4;padding:16px}.folder-heading{background:#e9ede4;padding:17px;display:flex;justify-content:space-between;font-size:12px;border:1px solid var(--line)}.empty,.model-empty{padding:35px;text-align:center;border:1px solid var(--line);background:#fafaf6}.empty h3,.model-empty h3{font-size:18px}.empty p,.model-empty p{font-size:13px;max-width:420px;margin:12px auto}.empty small,.model-empty small{font-size:10px;color:var(--muted)}.folder-icon{font-size:40px;color:#879b7e}.excel-icon{background:#286446;color:white;width:45px;height:49px;display:grid;place-items:center;font-size:25px;margin:0 auto 20px}.model-empty{background:repeating-linear-gradient(0deg,transparent,transparent 29px,#d9ddd444 30px),repeating-linear-gradient(90deg,#fafaf6,#fafaf6 89px,#d9ddd444 90px);padding:65px 25px}.document{display:flex;justify-content:space-between;padding:20px;border-bottom:1px solid var(--line);font-size:13px}iframe{width:100%;height:600px;border:1px solid var(--line)}.next{padding:30px 10%;background:#e9ede4}.next a{display:flex;justify-content:space-between;font-size:18px}a:focus-visible,button:focus-visible{outline:3px solid #9bab77;outline-offset:5px}@media(min-width:1500px){body{max-width:1600px;margin:auto}}@media(max-width:800px){header{height:90px}nav{gap:20px}.hero{gap:5%;min-height:550px}.hero-image{min-height:430px}.hero h1{font-size:58px}.cards{gap:16px}.card-image{height:200px}.card-meta{display:block}.card-meta span{display:block;margin-top:6px}.card h3{font-size:26px}.card-bottom{gap:10px}.case-layout{padding:50px 6%;grid-template-columns:140px 1fr;gap:5%}}@media(max-width:580px){header{padding:0 6%}.brand{font-size:30px;gap:10px}.brand>span{padding-left:10px;font-size:9px}nav{font-size:11px;gap:15px}.hero{grid-template-columns:1fr;padding-top:35px}.hero h1{font-size:60px}.hero-image{min-height:350px;margin-top:30px;border-radius:140px 140px 0 0}.hero-credit{margin-top:25px}.work{padding-top:45px}.section-heading{display:block}h2{font-size:42px}.section-heading p br{display:none}.cards{grid-template-columns:1fr;gap:40px}.card-image{height:290px}.card-meta{display:flex}.card-meta span{margin:0}.card h3{max-width:none;font-size:32px}.about{grid-template-columns:1fr;gap:20px}.about h2{font-size:38px}footer{gap:20px;line-height:1.6}.case-top{padding:35px 6%}.case-top h1{font-size:52px}.case-banner{height:230px}.case-layout{grid-template-columns:1fr}.case-layout aside{flex-direction:row;flex-wrap:wrap;gap:20px;margin-bottom:25px}.case-layout h2{font-size:38px}.empty{padding:25px}.next{padding:25px 6%}}

.about .career-goal{border-left:3px solid #879b7e;padding:12px 0 12px 20px;margin:26px 0}.career-goal strong{font-weight:600}.about>div:first-child{align-self:start}

.headshot{margin:34px 0 0;max-width:390px}.headshot img{display:block;width:100%;height:auto;border-radius:3px}.headshot figcaption{display:flex;justify-content:space-between;gap:15px;margin-top:12px;font-size:11px}.headshot figcaption span{color:var(--muted)}@media(max-width:580px){.headshot{max-width:320px;margin:28px 0 16px}}

.workbook-download{margin-left:24px}#model iframe{height:740px;background:white}@media(max-width:580px){#model iframe{height:560px}.workbook-download{margin-left:0;display:block}}

.graduation-announcement{padding:22px 6%;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:space-between;gap:28px}.graduation-announcement p{margin:0;font-size:14px;line-height:1.7;max-width:800px}.graduation-announcement strong{font-weight:600}.graduation-announcement a{font-size:12px;white-space:nowrap;text-decoration:underline;text-underline-offset:5px}.graduation-announcement a span{margin-left:12px}@media(max-width:800px){.graduation-announcement{align-items:flex-start;flex-direction:column;gap:12px}.graduation-announcement p{font-size:13px}}

.metrics-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:25px 0}.metric{background:#e9ede4;padding:22px;min-width:0}.metric-label{font-size:12px;line-height:1.5;color:var(--muted)}.metric-value{font-size:clamp(23px,2.6vw,34px);font-weight:500;margin:8px 0;overflow-wrap:anywhere}.metric small,.metrics-source{font-size:10px;color:var(--muted);line-height:1.7;overflow-wrap:anywhere}.metrics-period{font-size:12px}.case-layout aside{align-self:start;position:sticky;top:25px}@media(max-width:580px){.metrics-grid{grid-template-columns:1fr}.case-layout aside{position:static}}

.annual-metrics{overflow-x:auto;margin:22px 0}.annual-metrics table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}.annual-metrics caption{text-align:left;padding:0 0 12px;color:var(--muted)}.annual-metrics th,.annual-metrics td{padding:14px 12px;border-bottom:1px solid var(--line)}.annual-metrics thead{background:#e9ede4}.metric-methodology{font-size:12px;line-height:1.8}

.capstone-feature{background:#203d34;color:#f7f6f1;padding:40px;margin:28px 0 48px;border-top:4px solid #bcbd91}.capstone-heading{display:flex;justify-content:space-between;gap:30px;align-items:center}.capstone-heading .eyebrow{color:#c9d4bc}.capstone-heading h2{font-size:40px;max-width:500px}.capstone-heading>p{font-size:12px;line-height:1.8;color:#d7dfd2}.capstone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:20px}.capstone-card{min-width:0;border:1px solid #6e8778;padding:24px;background:#2a493d}.capstone-card h3{font:30px/1.15 'Libre Caslon Display',Georgia,serif;margin:14px 0}.capstone-card p{font-size:12px;line-height:1.7;color:#d3dece}.capstone-number{font:56px 'Libre Caslon Display',Georgia,serif;color:#c7ccab;padding-bottom:28px}.capstone-status,.capstone-link{display:block;border-top:1px solid #6e8778;padding-top:15px;margin-top:24px;font-size:10px;letter-spacing:.6px}.capstone-status{color:#c9d4bc}.capstone-image{height:200px;background-size:cover;background-position:center;position:relative;margin:-24px -24px 20px}.capstone-image span{position:absolute;top:15px;left:15px;background:var(--paper);color:var(--ink);font-size:10px;padding:8px}.capstone-card[href]:hover{background:#355747}.coursework-heading{font-size:20px;margin:0 0 20px}@media(max-width:800px){.capstone-feature{padding:26px}.capstone-heading{display:block}.capstone-grid{gap:14px}.capstone-card{padding:18px}.capstone-image{margin:-18px -18px 18px}.capstone-card h3{font-size:26px}}@media(max-width:580px){.capstone-feature{padding:24px;margin:28px -3% 40px}.capstone-grid{grid-template-columns:1fr}.capstone-heading h2{font-size:36px}.capstone-number{padding-bottom:10px}.capstone-pending{display:grid;grid-template-columns:55px 1fr;column-gap:15px}.capstone-pending .capstone-number{grid-row:1/5}.capstone-pending .capstone-status{margin-top:10px}.capstone-pending h3{margin:8px 0}}

.calculator-workspace{padding:60px 6% 80px}.calculator-intro{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;margin-bottom:25px}.calculator-intro p{color:var(--muted);line-height:1.8}.calculator-workspace iframe{height:820px;background:#fff}.calculator-actions{display:flex;align-items:center;gap:26px;margin:24px 0 45px}.calculator-actions .button,.calculator-actions .back{margin:0}.calculator-sheet-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 35px;padding-left:22px;font-size:13px;line-height:1.7}.calculator-teaser{display:grid;grid-template-columns:1fr 1fr;gap:6%;align-items:center;margin:0 6%;padding:55px 0;border-top:1px solid var(--line)}.calculator-teaser img{width:100%;height:280px;object-fit:cover}.calculator-teaser p{color:var(--muted);line-height:1.8}.calculator-teaser h2{font-size:42px}@media(max-width:580px){nav{gap:12px}.calculator-intro,.calculator-teaser{grid-template-columns:1fr}.calculator-teaser{gap:28px}.calculator-sheet-list{grid-template-columns:1fr}.calculator-actions{align-items:flex-start;flex-direction:column;gap:20px}.calculator-workspace iframe{height:620px}}

.waterfall-feature{margin:0 6% 45px;padding:42px;background:#e5ebe1;border-top:4px solid #82987b}.waterfall-heading{display:flex;justify-content:space-between;align-items:center;gap:30px}.waterfall-heading h2{font-size:44px}.waterfall-heading>p{font-size:13px;color:var(--muted);line-height:1.8}.waterfall-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:20px}.waterfall-card{background:var(--paper);min-width:0;border:1px solid #cbd5c5}.waterfall-card>img{display:block;width:100%;height:230px;object-fit:cover}.waterfall-card-body{padding:23px}.waterfall-card h3{font:31px/1.1 'Libre Caslon Display',Georgia,serif;margin:16px 0}.waterfall-card p{font-size:12px;line-height:1.7;color:var(--muted)}.waterfall-status{display:block;font-size:11px;padding-top:15px;margin-top:23px;border-top:1px solid var(--line)}.waterfall-credit{display:block;font-size:9px;line-height:1.6;margin-top:16px;color:var(--muted);text-decoration:underline;text-underline-offset:3px}@media(max-width:800px){.waterfall-feature{padding:26px}.waterfall-grid{gap:14px}.waterfall-card-body{padding:17px}.waterfall-heading{display:block}.waterfall-card>img{height:190px}}@media(max-width:580px){.waterfall-feature{padding:24px;margin:0 3% 30px}.waterfall-grid{grid-template-columns:1fr;gap:24px}.waterfall-card>img{height:250px}.waterfall-heading h2{font-size:38px}}

.contact-section{background:var(--ink);color:var(--paper);padding:75px 6%;display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center;border-top:4px solid #bcbd91;scroll-margin-top:24px}.contact-section .eyebrow{color:#c9d4bc}.contact-section h2{font-size:58px;margin:16px 0 20px}.contact-section p{max-width:420px;color:#d3dece;line-height:1.8}.contact-details a{display:grid;grid-template-columns:minmax(0,1fr) 24px;gap:8px;padding:24px 0;border-bottom:1px solid #6e8778}.contact-details a span{font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:#c9d4bc}.contact-details a strong{font-size:clamp(15px,1.6vw,23px);font-weight:500;overflow-wrap:anywhere;grid-column:1}.contact-details a b{grid-column:2;grid-row:1/3;align-self:center;font-size:24px;font-weight:400}.contact-details a:hover strong{text-decoration:underline;text-underline-offset:5px}.contact-nav{font-weight:600}header nav{align-items:center}@media(max-width:580px){header{height:auto;min-height:100px;gap:18px;flex-wrap:wrap;padding-top:20px;padding-bottom:18px}header nav{flex-wrap:wrap;gap:12px 20px}.contact-section{grid-template-columns:1fr;padding:50px 6%;gap:15px}.contact-section h2{font-size:46px}.contact-details a strong{font-size:18px}}


/* Fixed row spacing keeps the next-study link below long mobile case pages. */
.case-layout>div{min-width:0}
.next a{align-items:center;gap:20px;min-height:44px;line-height:1.5}
.next a span{flex-shrink:0}
@media(max-width:580px){
  .case-layout{row-gap:24px;column-gap:0}
  .case-layout aside{margin-bottom:0}
  .next{clear:both;padding:22px 6%;margin:0}
  .next a{font-size:16px;width:100%}
}

/* Course case studies: pointer hover and keyboard focus share the same emphasis. */
.cards .card{display:block;border-radius:3px;outline:1px solid transparent;outline-offset:10px;transition:transform .2s ease,outline-color .2s ease,box-shadow .2s ease}
.cards .card .card-image b,.cards .card .card-bottom b{transition:transform .2s ease,background-color .2s ease}
@media(hover:hover){
  .cards .card:hover{transform:translateY(-5px);outline-color:#9bad95;box-shadow:0 16px 24px -22px #203d3466}
  .cards .card:hover .card-image b{transform:translate(2px,-2px);background:var(--accent)}
  .cards .card:hover .card-bottom b{transform:translateX(4px)}
}
.cards .card:focus-visible{transform:translateY(-5px);outline:3px solid #758e68;outline-offset:10px;box-shadow:0 16px 24px -22px #203d3466}
.cards .card:focus-visible .card-image b{background:var(--accent);transform:translate(2px,-2px)}
.cards .card:focus-visible .card-bottom b{transform:translateX(4px)}
@media(prefers-reduced-motion:reduce){
  .cards .card,.cards .card .card-image b,.cards .card .card-bottom b{transition:none}
  .cards .card:hover,.cards .card:focus-visible,.cards .card:hover .card-image b,.cards .card:focus-visible .card-image b,.cards .card:hover .card-bottom b,.cards .card:focus-visible .card-bottom b{transform:none}
}

/* Make mouseover immediately visible, independently of click/focus state. */
.cards .card{transition:transform .2s ease,outline-color .2s ease,box-shadow .2s ease,background-color .2s ease}
.cards .card:hover{background:#e5ebe1;transform:translateY(-5px);outline:2px solid #82987b;outline-offset:10px;box-shadow:0 16px 24px -22px #203d3466}
.cards .card:hover .card-image b{transform:translate(2px,-2px);background:#dbe5d8}
.cards .card:hover .card-bottom b{transform:translateX(4px)}
.cards .card[hidden]{display:none}
@media(prefers-reduced-motion:reduce){.cards .card{transition:none}.cards .card:hover,.cards .card:hover .card-image b,.cards .card:hover .card-bottom b{transform:none}}
