
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#191919;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.45}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}a:hover,button:hover{color:#777}a:focus-visible,button:focus-visible{outline:1px solid #111;outline-offset:5px}aside{position:fixed;left:38px;top:39px;bottom:34px;width:214px;display:flex;flex-direction:column;z-index:2}.name{font-size:22px;letter-spacing:-.8px;font-weight:400;line-height:1.1}.roles{font-size:14px;line-height:1.5;margin:21px 0 49px;color:#777}.nav-group{margin:0 0 28px}.nav-title{font-size:13px;color:#929292;margin-bottom:9px}.nav-group a{display:block;width:fit-content;margin:5px 0;font-size:15px}.nav-group a.active{border-bottom:1px solid}.minor{margin-top:auto;font-size:12px;color:#999}.mobile-toggle{display:none}main{margin-left:288px;padding:39px 38px 25px 0;max-width:1900px}.topline{display:flex;justify-content:space-between;gap:16px;margin:0 0 30px;font-size:14px;font-weight:400}.topline span{color:#999;font-size:12px}.gallery{display:grid;grid-template-columns:1.24fr 1fr;gap:72px 36px;align-items:start}.project{min-width:0}.project:nth-child(2){margin-top:140px}.project:nth-child(3){grid-column:1 / -1;width:81%;margin:0 auto}.project:nth-child(4){width:84%;margin-left:auto}.project:nth-child(5){margin-top:100px}.project>a{display:block;width:100%;text-align:left}.frame{width:100%;aspect-ratio:4/5;background:#eee;position:relative;display:grid;place-items:center;color:#a5a5a5;transition:background .3s}.project:nth-child(2) .frame{aspect-ratio:3/4;background:#e5e5e3}.project:nth-child(3) .frame{aspect-ratio:16/9;background:#efeeec}.project:nth-child(4) .frame{aspect-ratio:3/4;background:#e8e8e8}.project:nth-child(5) .frame{aspect-ratio:1;background:#e3e3e3}.frame:before,.frame:after{content:'';position:absolute;width:15px;height:15px;border-color:#c2c2c2}.frame:before{top:18px;left:18px;border-top:1px solid;border-left:1px solid}.frame:after{bottom:18px;right:18px;border-bottom:1px solid;border-right:1px solid}.frame .format{font-size:12px;letter-spacing:.06em}.frame .number{position:absolute;bottom:15px;left:18px;font-size:12px}a:hover .frame{background:#dadada}.caption{display:flex;justify-content:space-between;gap:12px;padding-top:12px;font-size:14px;line-height:1.4}.caption small{font-size:12px;color:#888;text-align:right}.about{margin-top:130px;border-top:1px solid #ddd;padding-top:26px;display:grid;grid-template-columns:1fr 2fr;gap:30px}.about h2{font-size:14px;font-weight:400;margin:0}.intro{font-size:clamp(24px,2.8vw,42px);line-height:1.17;letter-spacing:-1.2px;margin:0 0 37px;max-width:900px}.bio{font-size:16px;max-width:580px;color:#666}.services{margin:40px 0 0}.services div{border-top:1px solid #ddd;display:grid;grid-template-columns:1fr 1.4fr;gap:20px;padding:19px 0;font-size:14px}.services p{margin:0;color:#777}.contact{padding:90px 0 70px;display:grid;grid-template-columns:1fr 2fr;gap:30px}.contact h2{font-size:14px;font-weight:400;margin:0}.contact .lead{font-size:clamp(28px,3vw,46px);letter-spacing:-1.5px;line-height:1.15;margin:0 0 20px}.contact small{color:#888;font-size:14px}footer{border-top:1px solid #ddd;padding-top:15px;display:flex;justify-content:space-between;color:#888;font-size:12px}[hidden]{display:none!important}@media(min-width:1600px){aside{left:50px;width:250px}main{margin-left:350px;padding-right:50px}.gallery{gap:90px 60px}}@media(max-width:900px){aside{left:24px;width:180px}main{margin-left:230px;padding-right:24px}.gallery{gap:45px 24px}.project:nth-child(2){margin-top:90px}.caption{display:block}.caption small{display:block;text-align:left;margin-top:4px}.about,.contact{grid-template-columns:1fr}.intro{letter-spacing:-.6px}}@media(max-width:600px){aside{position:relative;top:auto;left:auto;bottom:auto;width:auto;margin:25px 20px 0;display:block}.name{font-size:21px}.roles{margin:13px 0 25px;max-width:250px;font-size:13px}.mobile-toggle{display:block;position:absolute;right:0;top:0;font-size:14px}.navigation{display:none;padding:8px 0 20px}.navigation.open{display:block}.minor{display:none}main{margin:0;padding:18px 20px 25px}.topline{margin-bottom:22px}.gallery{gap:35px 14px;grid-template-columns:1fr 1fr}.project:nth-child(2){margin-top:70px}.project:nth-child(3){width:100%}.project:nth-child(4){width:100%}.project:nth-child(5){margin-top:60px}.caption{font-size:13px}.caption small{font-size:12px}.frame:before,.frame:after{width:10px;height:10px}.frame:before{left:10px;top:10px}.frame:after{right:10px;bottom:10px}.frame .number{left:10px;bottom:9px}.about{margin-top:80px;gap:25px}.services div{grid-template-columns:1fr;gap:8px}.contact{padding:65px 0 60px;gap:22px}.dialog-body{padding:20px}.dialog-head{padding:20px}.dialog-head h2{font-size:17px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.frame{transition:none}}

.project-heading{font-weight:400;font-size:clamp(30px,4vw,58px);letter-spacing:-1.5px;line-height:1.12;margin:35px 0 18px}.project-meta{font-size:14px;color:#777;margin:0 0 24px}.project-description{max-width:650px;font-size:17px;margin:0 0 42px}.project-media{aspect-ratio:16/10;background:#ececec;display:grid;place-items:center;color:#888;font-size:14px;width:100%;padding:24px;text-align:center}.project-pagination{display:flex;justify-content:space-between;gap:24px;padding:35px 0 65px;font-size:14px}.back-link{font-size:14px;color:#777}.project-pagination a{text-decoration:underline;text-underline-offset:4px}@media(max-width:600px){.project-heading{letter-spacing:-.7px;margin-top:27px}.project-media{aspect-ratio:4/5}.project-pagination{flex-direction:column;gap:18px;padding-bottom:45px}}
.nume-cover{aspect-ratio:auto;background:none}.nume-cover:before,.nume-cover:after{display:none}.nume-cover img{display:block;width:100%;height:auto}.nume-hero{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px;align-items:start}.nume-hero>img{width:100%;height:auto;display:block}.nume-heading h1{font-size:clamp(22px,2.5vw,38px);font-weight:400;line-height:1.2;letter-spacing:-.7px;margin:0 0 18px}.nume-heading p{font-size:14px;margin:0}.nume-award{font-size:14px;text-align:center;margin:34px 0 64px;color:#666}.nume-gallery{display:grid;gap:24px;margin-top:48px}.nume-row{display:grid;gap:24px;align-items:start}.nume-row.pair{grid-template-columns:1fr 1fr}.nume-row.mixed{grid-template-columns:1.2fr 1fr}.nume-row.wide{grid-template-columns:1fr}.nume-row img{display:block;width:100%;height:auto}.nume-credits{width:calc(50% - 12px);margin:42px 0 0 auto;font-size:14px;line-height:1.6;overflow-wrap:anywhere}.nume-credits p{margin:0}@media(max-width:600px){.nume-hero{gap:14px;margin-top:24px}.nume-heading h1{font-size:22px}.nume-heading p{font-size:13px}.nume-award{margin:25px 0 35px}.nume-gallery,.nume-row{gap:12px}.nume-credits{width:100%;margin-top:28px}}
.nume-row.single{width:calc(50% - 12px);margin-inline:auto;grid-template-columns:1fr}@media(max-width:600px){.nume-row.single{width:calc(50% - 6px)}}

.project .frame.nume-cover{aspect-ratio:auto;background:none}

/* Keep photographs fully visible, including mobile browser controls. */
#project-prosvet{--cover-height:max(1px,calc(var(--photo-viewport) - 80px))}
#project-prosvet>a{max-width:calc(var(--cover-height) * .7125)}
:root{--photo-viewport:100vh;--cover-clearance:144px;--cover-offset:0px;--hero-clearance:120px}
@supports(height:100svh){:root{--photo-viewport:100svh}}
.nume-cover img,.nume-hero>img,.nume-row img{width:auto;height:auto;min-width:0;max-width:100%;max-height:max(1px,calc(var(--photo-viewport) - 80px));object-fit:contain;justify-self:center}
#project-nume,#project-shu{--cover-height:max(1px,calc(var(--photo-viewport) - var(--cover-clearance) - var(--cover-offset)))}
#project-nume{--cover-ratio:.7125}
#project-shu{--cover-ratio:.707;--cover-offset:140px}
#project-nume>a,#project-shu>a{max-width:calc(var(--cover-height) * var(--cover-ratio))}
.nume-cover img{max-height:var(--cover-height)}
.nume-hero>img{max-height:max(1px,calc(var(--photo-viewport) - var(--hero-clearance)))}
.nume-hero,.nume-row.pair{grid-template-columns:repeat(2,minmax(0,1fr))}
.nume-row.mixed{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}
.nume-row.pair>img:first-child,.nume-row.mixed>img:first-child{justify-self:end}
.nume-row.pair>img:last-child,.nume-row.mixed>img:last-child{justify-self:start}
@media(max-width:900px){:root{--cover-clearance:160px}#project-shu{--cover-offset:90px}}
@media(max-width:600px){:root{--cover-clearance:260px;--hero-clearance:244px}#project-shu{--cover-offset:70px}}
@media(min-width:601px) and (max-height:600px){#project-shu{--cover-offset:32px;margin-top:32px}}
.about-portrait img{display:block;width:100%;height:auto;max-height:70svh;object-fit:contain;object-position:left top;margin-top:24px}.about-portrait>p{font-size:14px;color:#777;margin-top:12px}.about .intro{margin-bottom:18px}.about-role{font-size:18px;line-height:1.45;max-width:580px;margin:0 0 30px}.about .bio{line-height:1.65;margin:0 0 20px}.about .services p{line-height:1.6}@media(max-width:900px){.about-portrait img{max-width:360px}}

#project-long-shutter{--cover-height:max(1px,calc(var(--photo-viewport) - 80px))}
#project-long-shutter>a{max-width:calc(var(--cover-height) * .7125)}

.tuman-trio{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.tuman-trio img{width:100%;max-height:none}.tuman-gallery{row-gap:36px}@media(max-width:600px){.tuman-gallery{row-gap:18px}}

#project-tuman .frame.nume-cover{aspect-ratio:auto}#project-tuman .frame.nume-cover img{width:100%;height:auto;max-height:none;object-fit:contain}.tuman-opening img{width:100%;max-height:none}

.tuman-hands{grid-template-columns:minmax(0,1.25fr) minmax(0,.8fr);align-items:center}.tuman-hands img{width:100%;height:auto;max-height:none}

.tuman-intro{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(0,1.15fr);gap:36px;align-items:start;margin:32px 0 48px}.tuman-cover-image{display:block;width:100%;height:auto}.tuman-intro-copy .project-heading{margin:0 0 22px}.tuman-intro-copy p{font-size:16px;line-height:1.55;max-width:760px;margin:0 0 24px}.tuman-intro-copy h2{font-size:18px;font-weight:400;margin:34px 0 14px}.tuman-hands{grid-template-columns:minmax(0,1.875fr) minmax(0,1fr);align-items:center}.tuman-hands img{width:100%;height:auto;max-height:none}
@media(max-width:700px){.tuman-intro{grid-template-columns:1fr;gap:22px;margin-top:20px}.tuman-cover-image{max-width:420px}.tuman-intro-copy .project-heading{margin-bottom:20px}.tuman-hands{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}}

.tuman-hands{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:center}.tuman-hands img{width:100%;height:auto;aspect-ratio:4/5;object-fit:contain;max-height:none}@media(max-width:700px){.tuman-hands{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}

/* Match the Magnum Opus introduction and opening frame to the other project pages. */
.tuman-intro{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:32px 0 48px}
.tuman-cover-image{width:auto;height:auto;max-width:100%;max-height:max(1px,calc(var(--photo-viewport) - var(--hero-clearance)));justify-self:start;object-fit:contain}
.tuman-intro-copy .project-heading{font-size:clamp(22px,2.5vw,38px);font-weight:400;line-height:1.2;letter-spacing:-.7px;margin:0 0 18px}
.tuman-intro-copy p{font-size:14px;line-height:1.55;margin:0 0 20px}
.tuman-gallery>.tuman-opening{display:grid;width:100%;grid-template-columns:minmax(0,1fr);margin:0}
.tuman-gallery>.tuman-opening img{display:block;width:100%;height:auto;max-width:none;max-height:none;justify-self:stretch;object-fit:contain}
@media(max-width:700px){.tuman-intro{grid-template-columns:1fr;gap:20px;margin-top:20px}.tuman-cover-image{width:100%;height:auto;max-width:420px;max-height:none}.tuman-intro-copy .project-heading{font-size:22px;margin-bottom:18px}.tuman-intro-copy p{font-size:13px}.tuman-gallery>.tuman-opening{width:100%}}


.personal-project-list{margin:36px 0 64px}.personal-project-list a{display:inline-block;font-size:22px;line-height:1.3;border-bottom:1px solid transparent}.personal-project-list a:hover{border-bottom-color:currentColor}

.sancti-heading{margin-top:32px}.sancti-gallery{margin-top:32px}.sancti-trio{grid-template-columns:repeat(3,minmax(0,1fr))}.sancti-gallery img{width:100%;height:auto;max-height:none}@media(max-width:600px){.sancti-heading{margin-top:24px}.sancti-trio{gap:12px}}

.about-links{display:flex;flex-direction:column;align-items:flex-start;gap:9px;margin-top:28px;font-size:14px;overflow-wrap:anywhere}.about-links a{text-decoration:underline;text-underline-offset:4px}

/* Equal homepage covers and aligned title/year captions. */
#works .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
#works .gallery .project{grid-column:auto;width:100%;margin:0}
#works .gallery .project>a{width:100%;max-width:none}
#works .gallery .project .frame.nume-cover{aspect-ratio:5/7;background:none;overflow:hidden}
#works .gallery .project .frame.nume-cover img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;object-position:center;justify-self:stretch}
#works .caption{display:flex;justify-content:space-between;align-items:baseline}
#works .caption small{display:block;text-align:right;margin:0;flex-shrink:0}
/* Scale homepage photographs down while keeping equal display areas. */
#works .gallery .project .frame.nume-cover img{width:auto;height:auto;max-width:66.6667%;max-height:66.6667%;object-fit:contain;justify-self:center}

/* Homepage: staggered editorial columns, with captions matching each image edge. */
#works .gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(24px,5vw,72px);row-gap:clamp(44px,6vw,88px);align-items:start}
#works .gallery .project{grid-column:auto;grid-row:auto;width:100%;margin:0}
#works .gallery .project:nth-child(1){grid-column:1;grid-row:1}
#works .gallery .project:nth-child(2){grid-column:2;grid-row:2}
#works .gallery .project:nth-child(3){grid-column:1;grid-row:3}
#works .gallery .project:nth-child(4){grid-column:2;grid-row:4}
#works .gallery .project:nth-child(5){grid-column:1;grid-row:5}
#works .gallery .project:nth-child(6){grid-column:2;grid-row:6}
#works .gallery .project>a{width:76%;max-width:none}
#works .gallery .project:nth-child(odd)>a{margin-left:5%}
#works .gallery .project:nth-child(even)>a{margin-left:19%}
#works .gallery .project .frame.nume-cover{aspect-ratio:5/7;overflow:hidden}
#works .gallery .project .frame.nume-cover img{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center;justify-self:center}
#works .caption{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:8px;padding-top:10px}
#works .caption small{display:block;text-align:right;margin:0;flex-shrink:0}
@media(max-width:600px){
 #works .gallery{grid-template-columns:1fr;row-gap:30px}
 #works .gallery .project{grid-column:1!important;grid-row:auto!important}
 #works .gallery .project>a{width:76%}
 #works .gallery .project:nth-child(odd)>a{margin-left:3%}
 #works .gallery .project:nth-child(even)>a{margin-left:21%}
}

/* Show the next project halfway down the preceding photograph. */
@media(min-width:601px){
 #works .gallery{row-gap:0}
 #works .gallery .project:nth-child(n+2){margin-top:-53.2%}
}

/* Still Life: ordered sequence with freely placed photographs. */
.still-life-gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(12px,2vw,30px);row-gap:clamp(65px,9vw,130px);align-items:start;margin:48px 0 90px}
.still-life-photo{margin:0;min-width:0}.still-life-gallery img{display:block;width:100%;height:auto}
.still-life-chess{grid-column:1/10;grid-row:1}
.still-life-diptych{grid-column:2/12;grid-row:2;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(12px,2vw,24px);min-width:0}
.still-life-blue{grid-column:8/12;grid-row:3}
.still-life-eggs{grid-column:1/7;grid-row:4;width:90%}
.still-life-red{grid-column:9/13;grid-row:4;margin-top:38%}
.still-life-earrings{grid-column:2/6;grid-row:5}
.still-life-rope{grid-column:7/12;grid-row:5;margin-top:30%}
.still-life-white-red{grid-column:1/8;grid-row:6}
.still-life-pin{grid-column:2/6;grid-row:3;margin-top:0}
@media(max-width:600px){.still-life-gallery{display:flex;flex-direction:column;gap:36px;margin:32px 0 60px}.still-life-photo{width:78%;margin:0}.still-life-chess,.still-life-white-red{width:100%}.still-life-diptych{width:100%;gap:12px}.still-life-blue{width:72%;align-self:flex-end}.still-life-eggs{width:88%}.still-life-red{width:68%;align-self:flex-end}.still-life-earrings{width:70%;margin-left:5%}.still-life-rope{width:76%;align-self:flex-end}.still-life-pin{width:72%;align-self:flex-start;margin-left:5%}}

.still-life-trio{grid-column:1/-1;grid-row:7;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,24px);min-width:0}.still-life-trio img{width:100%;height:auto;display:block}@media(max-width:600px){.still-life-trio{width:100%;gap:10px}}

/* Teaching navigation and section pages */
.nav-group a.teaching-nav-title{font-size:13px;color:#929292;margin:0 0 9px}.teaching-main{min-height:100svh;display:flex;flex-direction:column}.teaching-main article{flex:1}.teaching-main .project-heading{font-size:clamp(22px,2.5vw,38px);font-weight:400;line-height:1.2;letter-spacing:-.7px;margin:32px 0}.teaching-section-list{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin:36px 0 64px}.teaching-section-list a{font-size:22px;line-height:1.3}.teaching-empty{color:#777;margin:0 0 64px}@media(min-width:601px){aside{overflow-y:auto}.minor{padding-top:20px}}@media(max-width:600px){.teaching-main{min-height:65svh}.teaching-main .project-heading{font-size:22px;margin:24px 0}}

/* Course listing and detail */
.course-list{max-width:900px;margin:40px 0 70px}.course-card{display:grid;grid-template-columns:40px minmax(0,1fr);gap:20px;border-top:1px solid #ddd;padding:26px 0}.course-number{color:#999;font-size:14px;padding-top:5px}.course-card h2{font-size:clamp(22px,2.1vw,30px);line-height:1.25;font-weight:400;margin:0 0 16px;max-width:650px}.course-card p{font-size:14px;color:#777;margin:0 0 12px}.course-card .course-summary{font-size:16px;max-width:560px;color:#555}.course-detail{max-width:820px;padding-bottom:70px}.course-detail .project-heading{max-width:800px}.course-institution{font-size:14px;color:#777;margin:0 0 30px}.course-intro{font-size:20px;line-height:1.5;max-width:740px;margin:0 0 42px}.course-detail section{margin:32px 0}.course-detail h2{font-size:18px;font-weight:400;margin:0 0 16px}.course-detail section p,.course-detail li{font-size:16px;line-height:1.65;color:#555}.course-detail ul{padding-left:20px;margin:0}.course-detail li{padding-left:4px;margin:6px 0}.course-source{display:inline-block;border-bottom:1px solid #aaa;font-size:14px;margin-top:20px}@media(max-width:600px){.course-card{grid-template-columns:24px minmax(0,1fr);gap:12px}.course-intro{font-size:18px}.course-card h2{font-size:22px}}
/* Full-screen photograph viewer; image proportions are never cropped. */
.photo-zoom{cursor:zoom-in}
.photo-zoom:focus,.photo-zoom:focus-visible{outline:none}
html.photo-viewer-open,html.photo-viewer-open body{overflow:hidden}
dialog.photo-viewer{position:fixed;inset:0;box-sizing:border-box;width:100%;height:100%;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:56px 24px 24px;background:rgba(0,0,0,.94);color:#fff;overflow:hidden}
dialog.photo-viewer[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}
.photo-viewer-stage{display:flex;align-items:center;justify-content:center;flex:1;min-height:0;width:100%}
.photo-viewer.has-photo-navigation .photo-viewer-stage{width:calc(100% - 88px)}
.photo-viewer-thumbnails{display:flex;flex-shrink:0;gap:4px;max-width:100%;overflow-x:auto;overscroll-behavior:contain;padding:5px 2px;scrollbar-width:thin;scrollbar-color:#666 transparent}
.photo-viewer-thumbnail{flex:0 0 31px;width:31px;height:34px;padding:1.5px;border:1px solid transparent;background:transparent;opacity:.5;cursor:pointer}
.photo-viewer-thumbnail[aria-current=true]{border-color:white;opacity:1}
.photo-viewer-thumbnail:hover,.photo-viewer-thumbnail:focus-visible{opacity:1;outline:1px solid white}
.photo-viewer-thumbnail img{display:block;width:100%;height:100%;object-fit:contain}
.photo-viewer-arrow{position:absolute;top:calc(50% - 48px);display:grid;place-items:center;width:44px;height:56px;border:0;padding:0;color:white;background:transparent;font:300 48px/1 Arial,sans-serif;cursor:pointer}
.photo-viewer-prev{left:8px}.photo-viewer-next{right:8px}
.photo-viewer-arrow:focus-visible{outline:2px solid white}
.photo-viewer-status{position:absolute;left:24px;top:24px;font-size:13px;color:#ccc}
@media(max-width:600px){.photo-viewer.has-photo-navigation .photo-viewer-stage{width:calc(100% - 48px)}.photo-viewer-thumbnail{flex-basis:24px;width:24px;height:27px}.photo-viewer-thumbnails{gap:3px}.photo-viewer-prev{left:0}.photo-viewer-next{right:0}.photo-viewer-arrow{width:32px;font-size:38px}.photo-viewer-status{top:calc(24px + env(safe-area-inset-top))}}
dialog.photo-viewer::backdrop{background:rgba(0,0,0,.85)}
.photo-viewer .photo-viewer-image{display:block;flex:0 1 auto;min-width:0;min-height:0;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.photo-viewer-close{position:absolute;top:max(8px,env(safe-area-inset-top));right:max(10px,env(safe-area-inset-right));display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;background:transparent;color:#fff;opacity:.35;cursor:pointer;box-shadow:none;outline:none}
.photo-viewer-close::before,.photo-viewer-close::after{content:'';position:absolute;width:18px;height:1px;background:currentColor;transform:rotate(45deg)}
.photo-viewer-close::after{transform:rotate(-45deg)}
.photo-viewer-close:hover,.photo-viewer-close:focus-visible{color:#fff;opacity:.7;outline:none}
@media(max-width:600px){dialog.photo-viewer{padding:calc(56px + env(safe-area-inset-top)) 12px max(16px,env(safe-area-inset-bottom))}}

/* Expandable course programme */
.course-landing{max-width:1100px;padding-bottom:70px}.course-landing-hero{padding:52px 0 58px;max-width:950px}.course-eyebrow{font-size:14px;color:#888;margin:0 0 24px}.course-landing h1{font-weight:400;font-size:clamp(32px,4.1vw,62px);line-height:1.06;letter-spacing:-.045em;margin:0 0 32px;text-wrap:balance}.course-landing-lead{font-size:clamp(21px,2.2vw,30px);line-height:1.3;margin:0 0 22px;letter-spacing:-.02em}.course-landing-description{max-width:680px;font-size:16px;line-height:1.65;color:#666;margin:0}.course-format{display:flex;flex-wrap:wrap;gap:12px 24px;margin-top:32px;font-size:14px;color:#777}.course-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:20px;margin-bottom:24px}.course-section-heading h2{font-size:22px;font-weight:400;margin:0}.course-section-heading>span{font-size:14px;color:#999}.syllabus-topic{border-top:1px solid #ddd}.syllabus-topic:last-child{border-bottom:1px solid #ddd}.syllabus-topic summary{display:grid;grid-template-columns:42px minmax(0,1fr) 28px;gap:20px;padding:26px 0;cursor:pointer;list-style:none;align-items:start}.syllabus-topic summary::-webkit-details-marker{display:none}.syllabus-topic summary:focus-visible{outline:1px solid #777;outline-offset:4px}.topic-number{font-size:14px;color:#999;padding-top:4px}.topic-heading{display:flex;flex-direction:column;gap:7px}.topic-title{font-size:clamp(20px,2vw,27px);line-height:1.2;letter-spacing:-.025em}.topic-preview{font-size:14px;color:#888;line-height:1.5}.topic-toggle{position:relative;display:block;width:24px;height:24px;margin-top:2px}.topic-toggle:before,.topic-toggle:after{content:'';position:absolute;background:#555;top:11px;left:4px;width:16px;height:1px}.topic-toggle:after{transform:rotate(90deg);transition:transform .2s}.syllabus-topic[open] .topic-toggle:after{transform:rotate(0)}.syllabus-topic summary:hover .topic-title{color:#777}.topic-body{padding:0 48px 30px 62px;max-width:850px}.topic-body ul{margin:0;padding-left:19px}.topic-body li{font-size:16px;line-height:1.65;color:#555;padding-left:4px;margin:0 0 10px}.course-result{margin-top:65px;max-width:760px}.course-result h2{font-size:clamp(25px,3vw,38px);font-weight:400;line-height:1.15;letter-spacing:-.035em;margin:0 0 22px}.course-result p{font-size:16px;color:#666;line-height:1.65;margin:0}.course-landing>.course-source{margin-top:35px}@media(max-width:600px){.course-landing-hero{padding:30px 0 42px}.course-landing h1{font-size:34px;line-height:1.08}.course-landing-lead{font-size:22px}.course-format{gap:10px 18px}.syllabus-topic summary{grid-template-columns:25px minmax(0,1fr) 22px;gap:10px;padding:22px 0}.topic-title{font-size:21px}.topic-body{padding:0 25px 24px 35px}.course-result{margin-top:45px}}@media(prefers-reduced-motion:reduce){.topic-toggle:after{transition:none}}

.composition-lesson{margin:0 0 32px}.composition-lesson h3{font-size:18px;font-weight:400;line-height:1.4;margin:0 0 16px}.composition-practice,.composition-outcome{font-size:16px;line-height:1.65;color:#555;margin:16px 0 0}.composition-practice span,.composition-outcome span{display:block;font-size:14px;color:#888;margin-bottom:4px}.composition-outcome{border-top:1px solid #eee;padding-top:20px}

.composition-banner{margin:32px 0 0}.composition-banner-row{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.composition-banner-row img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}.composition-banner figcaption{text-align:right;font-size:14px;line-height:1.5;color:#777;margin-top:12px}.composition-banner figcaption a{border-bottom:1px solid #aaa}.composition-banner figcaption a:hover{color:#111}@media(max-width:600px){.composition-banner{margin-top:24px}.composition-banner-row{gap:3px}}

.course-landing-hero>.composition-banner{margin:0 0 32px}

.course-card-with-cover{grid-template-columns:40px 160px minmax(0,1fr);align-items:start}.course-card-cover{display:block;width:100%;height:auto}.course-card-with-cover h2{font-size:clamp(22px,2.1vw,30px)}@media(max-width:600px){.course-card-with-cover{grid-template-columns:24px minmax(0,1fr)}.course-card-cover{grid-column:2;width:140px;margin-bottom:8px}.course-card-with-cover>div{grid-column:2}}

.photography-student-banner{margin:0 0 32px}.photography-student-row{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px}.photography-student-row img{display:block;width:100%;height:auto;aspect-ratio:2/3;object-fit:contain}.photography-student-banner figcaption{font-size:14px;line-height:1.5;color:#777;text-align:right;margin-top:12px}.photography-student-banner figcaption a{border-bottom:1px solid #aaa}@media(max-width:600px){.photography-student-row{grid-template-columns:repeat(9,100px);overflow-x:auto;padding-bottom:8px;gap:6px}.photography-student-banner figcaption{font-size:14px}}

.photography-student-row{grid-template-columns:repeat(7,minmax(0,1fr))}@media(max-width:600px){.photography-student-row{grid-template-columns:repeat(7,100px)}}

.poured-color-banner{margin:32px 0 0}.poured-color-row{grid-template-columns:repeat(9,minmax(0,1fr))}.poured-color-row img{aspect-ratio:900/1273;object-fit:cover;object-position:center}@media(max-width:600px){.poured-color-row{grid-template-columns:repeat(9,100px)}}

.divine-banner{margin:36px 0 0}.divine-row{grid-template-columns:repeat(6,minmax(0,1fr))}.divine-row img{aspect-ratio:900/1273;object-fit:cover}@media(max-width:600px){.divine-row{grid-template-columns:repeat(6,100px)}}

.cherry-banner{margin:36px 0 0}.cherry-row{grid-template-columns:repeat(10,minmax(0,1fr));align-items:stretch}.cherry-row .cherry-image{aspect-ratio:900/1243;width:100%;height:100%;object-fit:cover}.cherry-row .cherry-wide{grid-column:span 2;aspect-ratio:1800/1243}@media(max-width:600px){.cherry-row{grid-template-columns:repeat(10,100px)}}

.course-result:has(.dessert-banner){max-width:1100px}.dessert-banner{margin:28px 0 30px}.dessert-banner-row{display:flex;align-items:stretch;gap:6px}.dessert-banner-row img{display:block;width:0;flex:1;min-width:0;object-fit:cover;aspect-ratio:3/4;height:auto}.course-result:has(.dessert-banner)>p{max-width:760px}@media(max-width:600px){.dessert-banner-row{gap:2px}}

.gummy-banner{margin:36px 0 0}.gummy-row{display:grid;grid-template-columns:1fr 1fr 1.316fr 1fr 1fr 1.316fr 1fr 1fr 1.316fr 1fr 1fr;gap:6px;align-items:start}.gummy-row>img{width:100%;height:auto;display:block;aspect-ratio:2/3;object-fit:cover}.gummy-slice{display:block;position:relative;overflow:hidden;aspect-ratio:600/684}.gummy-slice img{position:absolute;top:0;width:300%;max-width:none;height:100%;display:block}.gummy-slice-a img{left:0}.gummy-slice-b img{left:-100%}.gummy-slice-c img{left:-200%}@media(max-width:600px){.gummy-row{grid-template-columns:100px 100px 131.6px 100px 100px 131.6px 100px 100px 131.6px 100px 100px;overflow-x:auto;padding-bottom:8px}}

.gummy-banner-copy .gummy-row{grid-template-columns:1fr 1fr 1.316fr 1fr 1.316fr 1fr 1.316fr 1fr}
@media(max-width:600px){.gummy-banner-copy .gummy-row{grid-template-columns:100px 100px 131.6px 100px 131.6px 100px 131.6px 100px}}
/* Quiet vertical scrollbars for the page and sidebar. */
html::-webkit-scrollbar,body::-webkit-scrollbar,aside::-webkit-scrollbar{width:4px}
html::-webkit-scrollbar-track,body::-webkit-scrollbar-track,aside::-webkit-scrollbar-track{background:transparent}
html::-webkit-scrollbar-thumb,body::-webkit-scrollbar-thumb,aside::-webkit-scrollbar-thumb{background:#b5b5b5;border:0;border-radius:4px}
html::-webkit-scrollbar-thumb:hover,body::-webkit-scrollbar-thumb:hover,aside::-webkit-scrollbar-thumb:hover{background:#999}
html::-webkit-scrollbar-button,body::-webkit-scrollbar-button,aside::-webkit-scrollbar-button{display:none;width:0;height:0}
html::-webkit-scrollbar-corner,body::-webkit-scrollbar-corner,aside::-webkit-scrollbar-corner{background:transparent}
@supports not selector(::-webkit-scrollbar){html,aside{scrollbar-width:thin;scrollbar-color:#b5b5b5 transparent}}
