:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#181818;background:#f8f8f5;font-synthesis:none;text-rendering:optimizeLegibility;--teaching: #00C9D9;--ai: #FFE02E;--creative: #ED3B9A;--education-ai: #26B65F;--ai-creative: #EC4B43;--education-creative: #355FE5;--near-black: #181818;--muted: #777770;--line: #deded8;--paper: #f8f8f5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{min-width:320px;margin:0}body,button,a{font-family:inherit}a,button{color:inherit}:focus-visible{outline:3px solid #355FE5;outline-offset:4px}.site-header{height:82px;max-width:1440px;padding:0 7.2%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:baseline;gap:12px;text-decoration:none}.brand-name{font-size:15px;font-weight:700;letter-spacing:-.035em}.brand-role{color:var(--muted);font-size:12px}.site-header nav{display:flex;gap:34px}.site-header nav a{color:#55554f;font-size:12px;text-decoration:none;transition:color .18s ease}.site-header nav a:hover,.footer-links a:hover{color:#181818}main{width:100%;margin:0 auto}.work-section{max-width:1440px;margin:0 auto}.featured-section{width:100%;padding:74px 7.2% 66px;border-bottom:1px solid var(--line)}.featured-inner{max-width:1440px;margin:0 auto}.featured-heading-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:22px}.featured-heading-row h2{font-size:clamp(36px,5vw,54px)}.featured-count{padding-bottom:5px;color:var(--muted);font-size:10px;letter-spacing:.12em}.featured-viewport{display:flex;width:100%;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}.featured-viewport::-webkit-scrollbar{display:none}.featured-slide{position:relative;display:block;flex:0 0 100%;aspect-ratio:2.25 / 1;overflow:hidden;color:#fff;background:color-mix(in srgb,var(--project-color) 20%,#e8e8e1);scroll-snap-align:start;text-decoration:none}.featured-slide img,.featured-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.featured-placeholder{display:grid;place-items:center;background:linear-gradient(125deg,color-mix(in srgb,var(--project-color) 24%,#f2f2ed),#e8e8e1)}.featured-placeholder-mark{color:var(--project-color);font-size:clamp(80px,15vw,200px);font-weight:200;line-height:1}.featured-slide-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#000000ad,#0000000d 78%),linear-gradient(0deg,rgb(0 0 0 / 28%),transparent 48%);transition:opacity .2s ease}.featured-slide-caption{position:absolute;right:9%;bottom:10%;left:7%;display:grid;gap:9px}.featured-slide-title{max-width:780px;font-size:clamp(32px,5vw,64px);font-weight:600;line-height:1;letter-spacing:-.055em}.featured-slide-description{max-width:590px;font-size:clamp(12px,1.4vw,15px);line-height:1.6}.featured-slide-arrow{position:absolute;top:28px;right:32px;font-size:26px;transition:transform .2s ease}.featured-slide:hover .featured-slide-arrow{transform:translate(3px,-3px)}.featured-pagination{display:flex;justify-content:center;gap:11px;padding-top:18px}.featured-pagination button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:#c8c8c1;cursor:pointer;transition:background .2s ease,transform .2s ease}.featured-pagination button.active{background:var(--near-black);transform:scale(1.25)}.hero{width:100%;min-height:535px;padding:84px 0 75px 11.5%;position:relative;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--line);container-type:inline-size}.hero-layout{--hero-title-size: clamp(48px, 6.1vw, 82px);position:relative;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:100%}.hero-title{grid-column:1 / 4;grid-row:1;position:relative;z-index:1;min-width:0}.hero-details{grid-column:1 / 4;grid-row:2;position:relative;z-index:1;min-width:0}.eyebrow{margin:0 0 25px;color:var(--muted);font-size:10px;font-weight:600;letter-spacing:.13em;text-transform:uppercase}.eyebrow-mark{display:inline-block;width:7px;height:7px;margin-right:8px;border-radius:50%;background:var(--creative);vertical-align:1px}h1{max-width:100%;margin:0;font-size:var(--hero-title-size);line-height:.99;letter-spacing:-.075em;font-weight:600}.heading-period{color:var(--creative)}.hero-subtitle{width:100%;max-width:100%;display:grid;gap:7px;margin:22px 0 19px;padding:0;list-style:none;font-size:calc(var(--hero-title-size) / 2);font-family:inherit}.hero-subtitle li{max-width:100%;padding:1px 0;color:#363631;font-size:1em;font-weight:550;line-height:1.2}.hero-subtitle li span{padding:.04em .12em;background:color-mix(in srgb,var(--subtitle-color) 25%,var(--paper));-webkit-box-decoration-break:clone;box-decoration-break:clone}.hero-description{max-width:600px;margin:27px 0 24px;color:#66665f;font-size:15px;line-height:1.8}.hero-art{grid-column:4 / 6;grid-row:1 / 3;align-self:center;justify-self:end;position:relative;z-index:0;display:flex;flex-direction:column;width:min(40cqi,100%);min-width:0;background:transparent}.hero-art .dreamcatcher-canvas{width:100%;aspect-ratio:1;flex:0 0 auto}.hero-art .hero-description{max-width:100%;margin:14px 0 0;color:#66665f;font-size:12px;line-height:1.65}.dreamcatcher-canvas,.dreamcatcher-canvas canvas{display:block;width:100%!important;height:100%!important;margin:0!important;padding:0!important}@container (max-width: 760px){.hero-layout{grid-template-columns:minmax(0,1fr);row-gap:24px}.hero-title,.hero-art,.hero-details{grid-column:1}.hero-title{grid-row:1}.hero-art{grid-row:2;justify-self:center}.hero-details{grid-row:3}.hero-subtitle{margin-top:0}}.work-section{padding:80px 7.2% 100px}.section-heading{margin-bottom:30px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}h2{margin:0;font-size:clamp(64px,8vw,47px);font-weight:550;line-height:1.1;letter-spacing:-.06em}.work-legend{max-width:650px;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,max-content));gap:12px 22px;list-style:none}.work-legend li{display:flex;align-items:center;gap:8px;color:#363631;font-size:11px;font-weight:550;white-space:nowrap}.legend-dot{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--legend-color)}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 18px;padding-top:28px}.project-card{min-width:0;overflow:hidden;border:1px solid #e1e1db;border-top:3px solid var(--project-color);background:#fff;transition:box-shadow .2s ease,transform .2s ease}.project-card-link{display:block;color:inherit;text-decoration:none}.project-card-link:focus-visible{outline-offset:6px}.project-card:hover{transform:translateY(-3px);box-shadow:0 10px 28px #18181812}.project-visual{height:190px;position:relative;overflow:hidden;background:#f0f0eb}.visual-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(135deg,#f2f2ed,#e8e8e1)}.visual-shape{width:112px;height:112px;border:1px solid color-mix(in srgb,var(--project-color) 70%,transparent);background:color-mix(in srgb,var(--project-color) 20%,transparent);border-radius:50%;transform:translate(-24px,1px)}.visual-cross{position:absolute;top:26px;right:29%;color:var(--project-color);font-size:33px;font-weight:200}.project-visual img{width:100%;height:100%;object-fit:cover}.card-content{padding:17px 17px 20px}.card-meta{min-height:17px;margin-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px}.status{display:flex;align-items:center;gap:6px;color:#76766f;font-size:9px;line-height:1.3}.status-dot{width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:var(--project-color)}.category-markers{display:flex;gap:4px}.category-marker{width:7px;height:7px;border:1px solid color-mix(in srgb,var(--marker-color) 78%,#222);border-radius:50%;background:var(--marker-color)}h3{min-height:43px;margin:0 0 9px;font-size:17px;font-weight:600;line-height:1.25;letter-spacing:-.035em}.project-description{min-height:74px;margin:0;color:#6f6f68;font-size:11px;line-height:1.65}.card-link{display:inline-block;margin-top:13px;font-size:10px;font-weight:600;text-decoration-thickness:1px;text-underline-offset:3px}.card-link span{margin-left:3px;color:var(--project-color)}.site-footer{max-width:1440px;min-height:86px;padding:20px 7.2%;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);color:#777770;font-size:10px}.footer-name{color:#181818;font-size:12px;font-weight:650;text-decoration:none}.footer-links{display:flex;gap:20px}.footer-links a{text-decoration:none}.site-footer p{margin:0}.resume-section{padding:82px 7.2% 96px;border-top:1px solid var(--line)}.resume-inner{max-width:1440px;margin:0 auto}.resume-title-row{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:40px}.resume-title-row .eyebrow{margin-bottom:10px}.resume-title-row h2{font-size:clamp(44px,6vw,64px)}.resume-sections{border-top:1px solid var(--line)}.resume-group{display:grid;grid-template-columns:minmax(180px,.75fr) minmax(0,2fr);gap:32px;padding:32px 0 36px;border-bottom:1px solid var(--line)}.resume-group-heading{display:flex;align-items:baseline;gap:13px}.resume-group-index{color:var(--creative);font-size:10px;letter-spacing:.1em}.resume-group-heading h3{min-height:0;margin:0;font-size:18px;font-weight:600}.resume-entries{display:grid;gap:26px}.resume-entry{display:grid;grid-template-columns:minmax(120px,.5fr) minmax(0,1.5fr);gap:28px}.resume-entry-dates{width:fit-content;height:fit-content;margin:2px 0 0;padding:6px 9px;border:1px solid var(--line);color:#55554f;font-size:10px;font-variant-numeric:tabular-nums;letter-spacing:.035em}.resume-entry-title{margin:0;font-size:18px;font-weight:600;line-height:1.3;letter-spacing:-.025em}.resume-entry-subtitle{margin:5px 0 0;color:#8e2d62;font-size:11px;font-weight:600;letter-spacing:.045em}.resume-entry-description{max-width:700px;margin:10px 0 0;color:#6f6f68;font-size:13px;line-height:1.7}.resume-entry-dates-current{padding:7px 10px;border-color:color-mix(in srgb,var(--creative) 50%,var(--line));background:color-mix(in srgb,var(--creative) 13%,var(--paper));color:#8e2d62;font-size:11px;font-weight:700;letter-spacing:.055em}.resume-empty{margin:0;color:#898981;font-size:12px}.resume-empty code{padding:2px 5px;background:#eeeee8;font-size:11px}.project-page{min-height:70vh;padding:56px 7.2% 100px}.project-page-inner{max-width:1120px;margin:0 auto}.project-back{display:inline-block;margin-bottom:58px;color:#62625b;font-size:12px;text-decoration-thickness:1px;text-underline-offset:4px}.project-page-header{max-width:850px;padding-bottom:56px}.project-header-image{height:clamp(220px,38vw,480px);position:relative;overflow:hidden;margin:0 0 54px;background:color-mix(in srgb,var(--project-color) 16%,#eeeee8)}.project-header-image img{display:block;width:100%;height:100%;object-fit:cover}.project-header-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;background:linear-gradient(125deg,color-mix(in srgb,var(--project-color) 20%,#f2f2ed),#e8e8e1)}.project-header-placeholder:before,.project-header-placeholder:after{content:"";position:absolute;width:min(32vw,360px);aspect-ratio:1;border:1px solid color-mix(in srgb,var(--project-color) 70%,transparent);border-radius:50%}.project-header-placeholder:after{transform:translate(35%,22%)}.project-header-placeholder span{position:relative;z-index:1;max-width:75%;color:#181818;font-size:clamp(24px,5vw,56px);font-weight:600;letter-spacing:-.05em;text-align:center}.project-header-image figcaption{position:absolute;right:12px;bottom:10px;left:12px;width:fit-content;padding:4px 7px;background:#f8f8f5db}.project-page-header .eyebrow{margin-bottom:20px}.project-page h1{max-width:900px;font-size:clamp(48px,8vw,104px);line-height:.98}.project-page-intro{max-width:700px;margin:26px 0 22px;color:#66665f;font-size:clamp(17px,2vw,22px);line-height:1.6}.project-page-categories{display:flex;flex-wrap:wrap;gap:10px 20px;margin:0;padding:0;list-style:none}.project-page-categories li{display:flex;align-items:center;gap:7px;color:#66665f;font-size:11px}.project-feature-image,.project-media figure{margin:0 0 38px}.project-feature-image img,.project-media img,.project-media video{display:block;width:100%;max-height:760px;object-fit:cover;background:#eeeee8}.project-page figcaption{margin-top:10px;color:var(--muted);font-size:11px;line-height:1.5}.project-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 60px;padding:30px 0 50px;border-top:1px solid var(--line)}.project-story-section h2,.project-resources h2{margin:0 0 16px;font-size:clamp(24px,3vw,36px);letter-spacing:-.045em}.project-story-section p{max-width:620px;margin:0 0 14px;color:#66665f;font-size:15px;line-height:1.8}.project-content{padding-top:30px;border-top:1px solid var(--line)}.project-content .project-article{max-width:850px}.project-content h1,.project-content h2,.project-content h3{margin:36px 0 14px;font-size:clamp(24px,3vw,36px);line-height:1.15;letter-spacing:-.045em}.project-content p,.project-content li{color:#66665f;font-size:15px;line-height:1.8}.project-content p{margin:0 0 18px}.project-content ul,.project-content ol{padding-left:22px}.project-content hr{height:1px;margin:36px 0;border:0;background:var(--line)}.project-content img,.project-content video{display:block;max-width:100%;height:auto;margin:24px auto}.project-content a{text-underline-offset:4px}.project-media{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.project-embed{position:relative;aspect-ratio:16 / 9;background:#eeeee8}.project-embed iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.project-resources{padding:30px 0;border-top:1px solid var(--line)}.project-resources ul{display:flex;flex-wrap:wrap;gap:14px 30px;margin:0;padding:0;list-style:none}.project-resources a{font-size:13px;text-underline-offset:4px}.project-resources a span{color:var(--project-color)}.project-not-found{min-height:65vh;max-width:1120px;padding:90px 7.2%;margin:0 auto}.project-not-found h1{max-width:650px;font-size:clamp(48px,8vw,90px)}.project-not-found a{display:inline-block;margin-top:24px;font-size:13px}@media(max-width:1100px){.hero{min-height:0;padding:70px 0 75px 8%}.work-section{padding-right:6%;padding-left:6%}.section-heading{align-items:flex-start;flex-direction:column;gap:18px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.project-description{min-height:60px}}@media(max-width:640px){html{scroll-padding-top:65px}.site-header{height:68px;padding:0 6%}.brand{display:block}.brand-name{display:block;font-size:13px}.brand-role{display:block;margin-top:2px;font-size:10px}.site-header nav{gap:17px}.site-header nav a{font-size:10px}.hero{min-height:0;padding:70px 0 66px 7%}.eyebrow{font-size:8px;line-height:1.7}.hero-layout{--hero-title-size: clamp(43px, 13vw, 64px)}.hero-subtitle{gap:6px;margin:18px 0 16px}.hero-description{max-width:440px;margin-top:22px;font-size:13px;line-height:1.7}.work-section{padding:62px 6% 70px}.featured-section{padding:52px 6% 48px}.featured-slide{aspect-ratio:1.15 / 1}.featured-slide-caption{right:8%;bottom:9%;left:7%}.featured-slide-description{max-width:100%}.featured-slide-arrow{top:18px;right:18px}.resume-section{padding:60px 6% 72px}.resume-title-row{margin-bottom:28px}.resume-group{grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 0 28px}.resume-entry{grid-template-columns:minmax(0,1fr);gap:11px}.section-heading{margin-bottom:23px;align-items:flex-start;flex-direction:column;gap:20px}.work-legend{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;gap:10px 16px}.work-legend li{white-space:normal;font-size:10px}.gallery{grid-template-columns:minmax(0,1fr);gap:17px;padding-top:20px}.project-visual{height:200px}.project-description,h3{min-height:0}.site-footer{padding:22px 6%;flex-wrap:wrap;gap:14px}.project-page{padding:38px 6% 70px}.project-back{margin-bottom:42px}.project-page-header{padding-bottom:38px}.project-story,.project-media{grid-template-columns:minmax(0,1fr)}.site-footer p{width:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
