:root{--ink:#22372b;--blue:#1325a2;--paper:#fffcf2}*{box-sizing:border-box}body{margin:0;background:#f3f1ee;color:var(--ink);font:17px/1.7 Georgia,'Times New Roman',serif}button,input{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}main{max-width:1536px;margin:auto}.scene-scroll{width:100%;overflow:auto;scrollbar-width:thin;scrollbar-color:#b9ad97 transparent}.cabinet{position:relative;width:min(100%,calc((100svh - 76px)*1.5));margin:0 auto;isolation:isolate}.scene-art{display:block;width:100%;height:auto;aspect-ratio:1.5;user-select:none;-webkit-user-drag:none}.hotspot{position:absolute;z-index:2;border:0;background:transparent;padding:0;border-radius:4px;touch-action:manipulation}.hotspot:hover{background:#fff5d50a;box-shadow:inset 0 0 0 1px #ffffff20}.hotspot:focus-visible{outline:3px solid #fffbe1;outline-offset:-4px;box-shadow:0 0 0 2px #1c3aa4}.nav-career{left:62.1%;top:2.2%;width:7.6%;height:5.6%}.nav-teaching{left:71.6%;top:2.2%;width:10%;height:5.6%}.nav-tutoring{left:82.8%;top:2.2%;width:9%;height:5.6%}.nav-search{left:94%;top:2.2%;width:4%;height:5.6%}.drawer-career{left:11.4%;top:31.6%;width:27%;height:15%}.drawer-teaching{left:40.6%;top:33.2%;width:24.5%;height:13.6%}.drawer-tutoring{left:67.8%;top:33.2%;width:26%;height:13.8%}.handle-zone:hover{box-shadow:inset 0 0 30px #fff3}.tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);translate:-50% 4px;white-space:nowrap;background:#fffdf2;color:#3e4b31;box-shadow:1px 4px 10px #30210c30;padding:5px 12px;border:1px solid #b9b08f;font:11px/1.5 Arial,sans-serif;opacity:0;pointer-events:none;transition:opacity .2s,translate .2s}.hotspot:hover .tooltip,.hotspot:focus-visible .tooltip{opacity:1;translate:-50% 0}.exhibit{left:3.2%;top:48%;width:38.5%;height:33.5%}.exhibit-cue{position:absolute;left:50%;top:10px;translate:-50% 0;white-space:nowrap;background:#fffdf3ed;color:#263a2c;border:1px solid #c8b993;padding:5px 12px;font:11px/1.5 Arial,sans-serif;opacity:0;transition:opacity .25s}.exhibit:hover .exhibit-cue,.exhibit:focus-visible .exhibit-cue{opacity:1}.exhibit-handle{left:3.2%;top:82%;width:39%;height:10%}.uni-cambridge{left:43.5%;top:51.5%;width:10.5%;height:29%}.uni-oxford{left:54.6%;top:51.5%;width:10%;height:29%}.uni-bristol{left:65.1%;top:51.5%;width:10.5%;height:29%}.specimen{left:77.7%;top:52%;width:16%;height:30%}.cabinet-caption{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1100px;margin:0 auto;padding:0 25px;font-size:13px;min-height:35px}.cabinet-caption p{margin:0;color:#6b6c5f}.chapter-tabs{display:flex;gap:20px;font:10px/1.5 Arial,sans-serif}.chapter-tabs button{border:0;padding:4px 0;background:transparent;color:#848476;border-bottom:1px solid transparent}.chapter-tabs button[aria-pressed=true]{color:var(--blue);border-bottom-color:var(--blue)}footer{max-width:1100px;margin:8px auto 0;padding:10px 25px 20px;display:flex;gap:25px;font:9px/1.5 Arial,sans-serif;color:#8c8c80}footer>span{margin-right:auto}footer a:hover{color:var(--blue)}.mobile-navigation{display:none}.scene-loading{position:absolute;z-index:3;bottom:4%;left:7%;background:#fffdf2f0;padding:7px 13px;font:10px/1.5 Arial,sans-serif;box-shadow:2px 3px 6px #0002}.scene-loading[hidden]{display:none}.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:fixed;z-index:10;top:-90px;background:var(--blue);color:white;padding:10px 18px;font:14px Arial}.skip:focus{top:0}dialog{padding:0;border:1px solid #b8a985;border-radius:2px;background:var(--paper);color:var(--ink);width:calc(100% - 40px);max-width:940px;max-height:88svh;box-shadow:10px 18px 70px #16201660;scrollbar-width:thin;scrollbar-color:#b6b49b transparent}dialog::backdrop{background:#16251e88;backdrop-filter:blur(5px)}.dialog-bar{position:sticky;top:0;z-index:4;padding:10px 20px;display:flex;align-items:center;gap:20px;min-height:48px;background:#f5f0e0;border-bottom:1px solid #d6cbb0;font:8px/1.4 Arial,sans-serif;letter-spacing:1.4px;color:#85836c}.dialog-bar>span{margin-right:auto}.dialog-bar>button{border:0;background:none}#back{font:11px Georgia;letter-spacing:0;color:#3e4f37}#back[hidden]{display:none}.close{font:28px/1 Arial!important;color:#746d55}.dialog-paper{padding:30px 45px 42px}.eyebrow{font:9px/1.5 Arial,sans-serif;letter-spacing:1.6px;color:#8e8c72;margin:0 0 9px}h2{font-size:39px;line-height:1.15;font-weight:400;letter-spacing:-1px;margin:0 0 24px}h3{font-size:23px;font-weight:400;line-height:1.3;margin:0 0 9px}p{margin:0 0 18px}.standfirst{font-size:18px;max-width:650px;color:#657359}.career-layout{display:grid;grid-template-columns:1fr 1.2fr;gap:32px;align-items:start}.career-index{display:flex;flex-direction:column;gap:7px}.career-index button{text-align:left;padding:12px 15px;background:#ede5cf;border:1px solid #d9ceb0;border-left:4px solid transparent;box-shadow:1px 2px 2px #3d361b08;transition:translate .2s}.career-index button[aria-pressed=true]{background:#fffdf5;border-left-color:var(--blue);translate:4px 0}.career-index strong{font-size:15px;font-weight:400;display:block;line-height:1.4}.career-index small{display:block;font:9px/1.6 Arial,sans-serif;color:#81856e;margin-top:4px}.role-paper{background:#fffef9;padding:22px;box-shadow:2px 5px 9px #44381915;rotate:1deg;min-height:370px}.role-picture{height:155px;background-image:url('art/career.webp?v=detail1');background-size:260%;background-position:2% 65%;margin:-5px -5px 19px;box-shadow:inset 0 0 0 1px #0001}.role-paper h3{font-size:27px}.role-paper p{font-size:15px;line-height:1.8}.role-meta{font:10px/1.8 Arial,sans-serif!important;color:#81826b;margin-bottom:20px}details{border-top:1px solid #d3cfb8;margin-top:28px}summary{cursor:pointer;list-style:none;padding:16px 0;display:flex;justify-content:space-between;font-size:18px}summary::-webkit-details-marker{display:none}summary:after{content:'+';font-size:23px}details[open] summary:after{content:'−'}.other-roles{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.other-roles h3{font-size:18px}.other-roles p{font-size:13px;color:#77816a}.project-list{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.project-card{display:flex;flex-direction:column;text-align:left;border:0;background:#fffefa;box-shadow:2px 5px 7px #44381915;padding:10px 10px 20px;rotate:-1deg;transition:rotate .3s,translate .3s}.project-card:nth-child(2){rotate:1.5deg}.project-card:hover{rotate:0deg;translate:0 -5px}.project-card .project-picture{height:150px;width:100%;display:block;overflow:hidden;position:relative;background:#18234b}.project-card .project-label{font:8px/1.5 Arial,sans-serif;letter-spacing:1px;color:#8a8d76;margin:18px 6px 9px}.project-card strong{font:22px/1.2 Georgia,serif;margin:0 6px 13px}.project-card .project-description{font:13px/1.7 Georgia,serif;color:#728064;margin:0 6px}.project-card .project-link{margin:18px 6px 0;font:10px Arial;color:#314c99}.project-picture.space{background:radial-gradient(circle at 66% 46%,#e8bc7f 0 15%,transparent 15.5%),radial-gradient(circle at 20% 25%,#d3e7f9 0 1px,transparent 2px),radial-gradient(circle at 80% 20%,#fff 0 1px,transparent 2px),radial-gradient(circle at 40% 70%,#fff 0 1px,transparent 2px),linear-gradient(140deg,#131c33,#435478)}.space:after{content:'';position:absolute;border:1px solid #dfca8c80;rotate:-24deg;border-radius:50%;width:180px;height:65px;left:35%;top:24%}.project-picture.zoo{background:#d7debd;display:grid;place-content:center}.zoo svg{height:145px;width:160px}.project-picture.mews{background-image:url('art/fieldwork.webp?v=detail1');background-size:260%;background-position:2% 65%}.prose{max-width:690px;font-size:17px;line-height:1.9}.prose p{margin-bottom:20px}.note{padding:15px 20px;border-left:2px solid #b4bd99;background:#f0f0dd;font-size:15px;margin:23px 0}.uni-view{display:grid;grid-template-columns:1fr 1.15fr;gap:35px;align-items:center}.uni-picture{aspect-ratio:.8;background-image:url('assets/universities.webp?v=detail1');background-size:300% 100%;background-position:0% center;border:10px solid #fffdf5;box-shadow:2px 5px 10px #44381925;rotate:-2deg}.uni-picture.oxford{background-position:50% center}.uni-picture.bristol{background-position:100% center}.degree-type{font:10px Arial;letter-spacing:1.2px;text-transform:uppercase;color:#7d896d;margin:0 0 12px}.degree-title{font-size:29px;line-height:1.2;margin-bottom:20px}.distinction{display:inline-block;border:1px solid #b1b995;padding:5px 13px;font:10px Arial;color:#6c7959;margin-top:5px}.degree-dates{font:11px Arial;color:#92927b;margin-top:20px}.uni-list{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.uni-list button{border:0;background:white;padding:10px 10px 20px;text-align:left;box-shadow:1px 4px 7px #0001}.uni-list .uni-picture{display:block;aspect-ratio:1;border:0;rotate:0deg;box-shadow:none}.uni-list strong{display:block;font-size:23px;font-weight:400;margin:15px 5px 8px}.uni-list small{font:11px Arial;color:#7f8a6e;margin:0 5px}.letter{position:relative;background:#fffef9;box-shadow:2px 5px 10px #44381915;max-width:690px;margin:0 auto;padding:30px 35px;rotate:-.6deg}.letter p{font-size:17px;line-height:1.9}.letter h3{font-size:25px}.letter .stamp{float:right;width:55px;height:65px;border:2px dotted #a1ae8b;display:grid;place-content:center;font-size:27px;color:#9da886;margin:0 0 15px 25px}.contact-actions{display:flex;gap:17px;flex-wrap:wrap;margin-top:25px}.primary-action{display:inline-block;background:#253e9c;color:#fffdf0;padding:12px 20px;font:13px/1.5 Arial,sans-serif}.secondary-action{display:inline-block;border-bottom:1px solid #b7bf9d;padding:10px 0;font-size:14px}.rate{font-size:24px!important;line-height:1.3!important;margin:25px 0 8px}.rate-note{font:11px/1.7 Arial,sans-serif!important;color:#8b907b}.search-input{display:block;width:100%;border:0;border-bottom:1px solid #a4ad8e;padding:12px 0;background:transparent;font-size:25px;border-radius:0;color:var(--ink);outline-offset:5px}.search-results{display:flex;flex-direction:column;margin-top:20px}.search-results button{border:0;border-bottom:1px solid #dedfce;background:none;text-align:left;padding:15px 5px}.search-results strong{display:block;font-size:20px;font-weight:400}.search-results span{display:block;font:11px Arial;color:#87917a;margin-top:5px}.search-empty{font-size:15px;color:#869179;margin-top:20px}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #3758bc;outline-offset:4px}.source-link{font:10px/1.8 Arial,sans-serif;color:#8c917e;display:inline-block;margin-top:24px;border-bottom:1px solid #c6cbb8}@media(max-width:750px){.cabinet{width:100%;min-width:710px}.scene-scroll{scroll-behavior:smooth}.cabinet-caption{display:block;padding:12px 20px 0;font-size:12px}.chapter-tabs{gap:25px;margin-top:9px}.mobile-navigation{display:flex;gap:8px;flex-wrap:wrap;padding:13px 20px 4px}.mobile-navigation button{font:10px Arial;padding:8px 10px;border:1px solid #d5d1c5;color:#69715f;background:#fbfaf5}footer{padding:16px 20px 22px;gap:15px;font-size:8px;flex-wrap:wrap}footer>span{width:100%;margin-right:0}.tooltip{display:none}dialog{width:calc(100% - 22px);max-height:92svh}.dialog-bar{padding:9px 15px;font-size:6px;letter-spacing:1px}.dialog-paper{padding:25px 24px 35px}h2{font-size:32px}.career-layout{grid-template-columns:1fr;gap:25px}.career-index{display:grid;grid-template-columns:1fr 1fr;gap:8px}.career-index button{padding:10px}.career-index strong{font-size:13px}.career-index small{font-size:8px}.role-paper{min-height:0}.role-picture{height:200px;background-size:230%}.role-paper h3{font-size:25px}.other-roles{grid-template-columns:1fr;gap:15px}.project-list{grid-template-columns:1fr;gap:25px}.project-card .project-picture{height:200px}.project-card strong{font-size:25px}.project-card .project-description{font-size:15px}.project-card .project-label{font-size:9px}.prose{font-size:16px}.uni-view{grid-template-columns:1fr;gap:30px}.uni-picture{max-width:310px;width:100%;margin:auto}.degree-title{font-size:28px}.uni-list{grid-template-columns:1fr;gap:25px}.uni-list .uni-picture{aspect-ratio:1.3;max-width:none}.letter{padding:25px 22px}.letter p{font-size:16px}.standfirst{font-size:16px}.search-input{font-size:21px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
/* Independent top drawers, with a permanently open teaching display below. */
.nav-tutoring{left:62.1%;top:2.2%;width:8%;height:5.6%}.nav-career{left:72.6%;top:2.2%;width:7.5%;height:5.6%}.nav-teaching{left:82.7%;top:2.2%;width:9.2%;height:5.6%}
.drawer-tutoring{left:11.4%;top:31.6%;width:27%;height:15%}.drawer-career{left:40.6%;top:33.2%;width:24.5%;height:13.6%}.drawer-teaching{left:67.8%;top:33.2%;width:26%;height:13.8%}
.model-visual{position:absolute;z-index:1;left:2%;top:48%;width:41%;height:45%;background-size:243.902439% 222.222222%;background-position:3.389831% 87.272727%;pointer-events:none}.model-visual[hidden]{display:none}
.drawer-open-overlay{position:absolute;z-index:4;border:0;border-radius:0;background-color:#e8dcc0;background-repeat:no-repeat;background-image:none;padding:0;cursor:pointer}.drawer-open-overlay[hidden]{display:none}.drawer-open-overlay.art-ready{background-image:url('art/drawers-open.webp?v=detail1')}.tutoring-open{left:10.8%;top:31.2%;width:28.5%;height:16.7%;background-size:350.877193% 598.802395%;background-position:15.104895% 37.454982%}.career-open{left:40.1%;top:32.5%;width:25.8%;height:15.4%;background-size:387.596899% 649.350649%;background-position:54.043127% 38.416076%}
.drawer-open-overlay .tooltip{bottom:calc(100% + 8px)}.drawer-open-overlay:hover .tooltip,.drawer-open-overlay:focus-visible .tooltip{opacity:1;translate:-50% 0}.drawer-open-overlay:focus-visible{outline:3px solid #fffbe1;outline-offset:-5px;box-shadow:0 0 0 2px #2344ac}.temporary-envelope{display:inline-block;background:#fff9e9;border:1px solid #c9bb99;box-shadow:2px 3px 4px #0002;width:65%;font-size:40px;color:#9fa98e;rotate:-5deg;line-height:1.8}.temporary-papers{display:inline-block;background:white;padding:10px 25px;font-size:27px;box-shadow:4px 5px 0 #ddd8c6,8px 9px 0 #f3edde;rotate:4deg}.art-ready .temporary-envelope,.art-ready .temporary-papers{visibility:hidden}.open-drawer-close{position:absolute;z-index:6;border:0;background:#fcf9ebd9;color:#6c6b54;width:20px;height:20px;border-radius:50%;font:16px/1 Georgia,sans-serif;box-shadow:1px 2px 4px #0003}.open-drawer-close[hidden]{display:none}.tutoring-close{left:36.8%;top:44.8%}.career-close{left:63.6%;top:45.2%}.model-switcher{position:absolute;left:14.2%;top:47.6%;width:23.5%;height:3.2%;display:flex;align-items:center;justify-content:center;gap:11%;z-index:7}.model-switcher button{position:relative;display:grid;place-content:center;height:26px;width:26px;flex-shrink:0;border:1px solid #5b442a;border-radius:50%;font:14px/1 Georgia,serif;background:radial-gradient(ellipse at 40% 25%,#f4df9e,#c7a766 58%,#92703c);color:#4d3f2c;box-shadow:inset 0 1px 2px #fff9,0 2px 2px #23160b80}.model-switcher button[aria-pressed=true]{color:#fff9e4;background:radial-gradient(ellipse at 40% 25%,#6574ba,#273f8b 68%,#15285e);border-color:#14204c;box-shadow:inset 0 1px 2px #ffffff66,0 2px 3px #23160b99}.model-switcher button:hover{filter:brightness(1.15)}.cabinet-instruction{font:10px/1.6 Arial,sans-serif;color:#888a7c}
.paper-contact-form{clear:both;display:flex;flex-direction:column;gap:0;margin-top:24px}.paper-contact-form label{font:12px/1.5 Georgia,serif;color:#76846a;margin:20px 0 5px}.paper-contact-form input:not([type=hidden]),.paper-contact-form textarea{display:block;width:100%;border:0;border-bottom:1px solid #bfc5a9;border-radius:0;padding:10px 3px;background:transparent;color:#2c402b;font:17px/1.8 Georgia,serif;resize:vertical;outline-offset:4px}.paper-contact-form textarea{background:repeating-linear-gradient(transparent 0,transparent 30px,#c9cdb74d 30px,#c9cdb74d 31px);line-height:31px;min-height:160px;padding-top:0}.paper-contact-form input:focus,.paper-contact-form textarea:focus{outline:1px solid #7a8fbd}.paper-contact-form textarea::placeholder{color:#a3a58e;font-size:14px}.paper-contact-form .primary-action{align-self:flex-start;border:0;margin-top:24px}.paper-contact-form .form-note{font:10px/1.6 Arial,sans-serif;color:#979c89;margin:12px 0 10px}.tutoring-letter{background:linear-gradient(100deg,#fffdf3,#fffffa 35%,#fffcf1);padding-bottom:30px}.tutoring-letter>.secondary-action{font-size:13px;margin-top:15px}.career-index button{background:#fffdf3;box-shadow:2px 3px 4px #53462115;border:0;border-left:3px solid transparent;position:relative}.career-index button:nth-child(even){rotate:.7deg}.career-index button:nth-child(odd){rotate:-.5deg}.career-index button[aria-pressed=true]{border-left-color:#203c9a;background:white;box-shadow:2px 4px 7px #53462125}.role-paper{position:relative;background:linear-gradient(100deg,#fffdf4,#fffefa 30%,#fffffc);box-shadow:2px 6px 10px #44381920,4px 9px 0 #eee9d9}.role-paper:before{content:'';position:absolute;right:20px;top:-8px;width:12px;height:38px;border:2px solid #acae9c;border-radius:9px;rotate:10deg;box-shadow:1px 1px 2px #0001}.cv-heading{border-bottom:1px solid #c5ccb3;padding-bottom:18px;margin-bottom:25px}.cv-heading span{display:block;font:7px/1.5 Arial,sans-serif;letter-spacing:2px;color:#9ba187}.cv-heading strong{display:block;font-size:24px;font-weight:400;color:#344a34;margin-top:6px}.role-picture{display:none}.role-paper{min-height:400px}
@media(max-width:750px){.model-switcher button{width:24px;height:24px;font-size:13px}.open-drawer-close{width:18px;height:18px;font-size:15px}.cabinet-instruction{display:block;margin-top:6px;font-size:9px}.paper-contact-form input:not([type=hidden]),.paper-contact-form textarea{font-size:16px}.paper-contact-form textarea::placeholder{font-size:12px}.cv-heading strong{font-size:24px}.role-paper{min-height:350px}.temporary-envelope{font-size:25px}.temporary-papers{font-size:20px;padding:10px 20px}}
/* Match the drawn fronts' small overhang when pulled open. */
.tutoring-open{left:9.5%;top:31.1%;width:29.5%;height:18.9%;background-size:338.983051% 529.100529%;background-position:13.475177% 38.347719%}.career-open{left:39.4%;top:30.9%;width:27.2%;height:19.1%;background-size:367.647059% 523.560209%;background-position:54.120879% 38.195303%}.model-switcher{top:49.8%}.tutoring-close,.career-close{top:47.4%}
/* A fixed oak selector panel replaces the left drawer. */
.model-switcher{left:14%;top:35.2%;width:22.5%;height:9.4%;justify-content:space-between;gap:0}.model-switcher button{width:27.5%;height:auto;aspect-ratio:1;border-radius:3px;border:2px solid #76542e;background:linear-gradient(135deg,#f0d6a3,#c4a06a 58%,#b28b52);font-size:clamp(18px,2.6vw,32px);color:#4f3e27;box-shadow:inset 0 2px 2px #fff8,inset 0 -3px 3px #81562c50,2px 4px 4px #2f1c0f77}.model-switcher button[aria-pressed=true]{border-color:#1e306d;background:linear-gradient(135deg,#5267a5,#293e7e);box-shadow:inset 0 2px 2px #ffffff55,inset 0 -3px 3px #15244c77,2px 4px 4px #2f1c0f77;color:#fff6d6}.drawer-open-overlay{cursor:default;background-image:none}.drawer-open-overlay.art-ready{background-image:url('art/career-teaching-open.webp?v=detail1')}.career-open{left:39.4%;top:30.9%;width:27.2%;height:19.8%;background-size:367.647059% 505.050505%;background-position:54.120879% 38.528678%}.teaching-open{left:66.9%;top:31.1%;width:30.7%;height:19.5%;background-size:325.732899% 512.820513%;background-position:96.536797% 38.63354%}.drawer-contents,.drawer-front-toggle{position:absolute;left:0;width:100%;z-index:1;border:0;padding:0;border-radius:0;background:transparent;cursor:pointer}.drawer-contents{top:0;height:47%}.drawer-front-toggle{bottom:0;height:53%}.drawer-contents:hover{box-shadow:inset 0 0 30px #fff3}.drawer-front-toggle:hover{box-shadow:inset 0 0 25px #ffffff16}.drawer-contents:focus-visible,.drawer-front-toggle:focus-visible{outline:3px solid #fff9d2;outline-offset:-5px}.drawer-contents .tooltip{bottom:calc(100% + 6px)}.drawer-front-toggle .tooltip{bottom:6px;background:#fffdf2ed;font-size:9px;padding:2px 7px}.drawer-front-toggle:hover .tooltip,.drawer-front-toggle:focus-visible .tooltip,.drawer-contents:hover .tooltip,.drawer-contents:focus-visible .tooltip{opacity:1;translate:-50% 0}.drawer-open-overlay .temporary-papers{margin:20px 30px;pointer-events:none}.art-ready .temporary-papers{visibility:hidden}
@media(max-width:750px){.model-switcher button{width:27.5%;height:auto;aspect-ratio:1;font-size:20px}.drawer-front-toggle .tooltip,.drawer-contents .tooltip{display:none}}
/* Reuse the closed front artwork at its original size. Only its position changes. */
.drawer-tutoring{left:67.8%;top:33.2%;width:26%;height:13.8%}.career-open{left:39.4%;top:30.9%;width:27.2%;height:23%;background:none}.tutoring-open{left:66.9%;top:31.1%;width:30.7%;height:23%;background:none}.drawer-open-overlay.art-ready{background-image:none;background-color:transparent}.drawer-tray{position:absolute;left:0;top:0;width:100%;display:block;background-color:#ae8555;background-repeat:no-repeat;pointer-events:none}.art-ready .drawer-tray{background-image:url('art/career-tutoring-open.webp?v=detail1')}.career-open .drawer-tray{height:40.869565%;background-size:367.647059% 1063.829787%;background-position:54.120879% 34.10596%}.tutoring-open .drawer-tray{height:40%;background-size:325.732899% 1086.956522%;background-position:96.536797% 34.251101%}.career-open .drawer-contents{height:40.869565%}.tutoring-open .drawer-contents{height:40%}.drawer-front-toggle{background-image:url('art/cabinet-panel-final.webp?v=detail1');background-repeat:no-repeat}.career-open .drawer-front-toggle{left:4.411765%;width:90.073529%;height:59.130435%;bottom:0;background-size:408.163265% 735.294118%;background-position:53.774834% 38.425926%}.tutoring-open .drawer-front-toggle{left:2.931596%;width:84.690554%;height:60%;bottom:0;background-size:384.615385% 724.637681%;background-position:91.621622% 38.515081%}.art-ready .temporary-envelope,.art-ready .temporary-papers{display:none}
/* University pictures are real paper cards with readable, editable captions. */
.university-card{position:absolute;z-index:3;top:51.1%;height:29.5%;border:1px solid #bfb18e;border-radius:1px;background:linear-gradient(100deg,#e8d7b7,#fbefda 38%,#eddfc5);padding:0;text-align:center;box-shadow:1px 2px 3px #25170f55;display:flex;flex-direction:column;overflow:hidden;cursor:pointer}.university-card:before{content:'';position:absolute;z-index:1;left:calc(50% - 2px);top:2px;width:4px;height:4px;border-radius:50%;background:radial-gradient(circle at 30% 20%,#ecd290,#8a6428);box-shadow:0 1px 1px #0005}.card-bristol{left:43.5%;width:10.5%}.card-cambridge{left:54.6%;width:10%}.card-oxford{left:65.1%;width:10.5%}.card-campus{height:55%;display:block;background-image:url('assets/universities.webp?v=detail1');background-size:300% 100%;flex-shrink:0;margin:8% 7% 0}.campus-bristol{background-position:100% center}.campus-cambridge{background-position:0% center}.campus-oxford{background-position:50% center}.card-education{display:flex;flex-direction:column;align-items:center;padding:4% 3% 0;flex:1;line-height:1.2;color:#243a2d}.card-education strong{font:clamp(11px,1.5vw,22px)/1.2 Georgia,serif;font-weight:400;letter-spacing:-.5px;margin-bottom:3%}.card-qualification{font:clamp(8px,.9vw,13px)/1.2 Georgia,serif}.card-subject{font:clamp(6px,.67vw,10px)/1.3 Georgia,serif;margin:4% 0 0}.card-year{font:clamp(6px,.65vw,10px)/1.2 Georgia,serif;margin-top:4%;color:#7c785e}.university-card:hover{box-shadow:0 0 0 2px #f8e3b1aa,2px 4px 6px #25170f55}
/* Career opens as several separate sheets laid side-by-side. */
dialog.is-career{max-width:1100px;background:transparent;border:0;box-shadow:none;overflow-x:hidden}.is-career .dialog-bar{background:transparent;border:0;color:#e9eddf}.is-career .dialog-bar button{color:#f6f8ed}.is-career .dialog-paper{padding:15px 10px 25px}.is-career .dialog-paper>h2{color:#fffdf1;margin-left:16px}.is-career .dialog-paper>.eyebrow{color:#d9e1cb;margin-left:16px}.is-career .standfirst{color:#dee6d5;font-size:15px;margin:0 16px 20px}.paper-shuffle-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 16px 3px;color:#e9eede;font:11px/1.5 Arial,sans-serif}.paper-shuffle-controls button{border:1px solid #e3ebd755;background:#ffffff0b;padding:8px 12px;color:#fbfff0;font:11px/1.5 Arial,sans-serif}.paper-shuffle-controls button:disabled{opacity:.3;cursor:default}.career-papers{position:relative;display:flex;gap:28px;overflow-x:auto;padding:20px 16px 35px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#a5ae93 #ffffff11;scroll-padding-inline:16px;align-items:stretch;overscroll-behavior-x:contain}.career-papers:after{content:'';display:block;width:calc(50% - 14px);flex-shrink:0}.career-sheet{position:relative;flex:0 0 calc(50% - 14px);background:linear-gradient(100deg,#fdf9ed,#fffef8 35%,#fdfbf2);min-height:465px;padding:35px 28px 60px;scroll-snap-align:start;box-shadow:2px 6px 12px #0e1b1855;rotate:-.4deg;isolation:isolate}.career-sheet:nth-child(even){rotate:.5deg}.career-sheet:after{position:absolute;content:'';inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 5px,#b2ac8003 6px 7px);pointer-events:none}.career-sheet .paperclip{position:absolute;right:23px;top:-7px;border:2px solid #adae9b;border-radius:9px;width:12px;height:39px;rotate:9deg;box-shadow:1px 1px 2px #0001}.career-sheet .cv-heading{margin:0 0 30px;padding-bottom:20px}.career-sheet .cv-heading strong{font-size:26px}.sheet-date{font:10px/1.5 Arial,sans-serif;color:#93957e;margin-bottom:14px}.career-sheet h3{font-size:29px;line-height:1.18;font-weight:400;letter-spacing:-.5px;margin-bottom:17px}.sheet-employer{font:11px/1.8 Arial,sans-serif;color:#8a907a;margin-bottom:22px}.sheet-rule{width:36px;border-top:1px solid #aab294;margin-bottom:22px}.sheet-body{font-size:16px;line-height:1.85;color:#647459}.sheet-footer{position:absolute;bottom:25px;left:28px;font:7px/1.5 Arial,sans-serif;letter-spacing:1.5px;color:#a3aa92}.is-career details{border-color:#c3d0b533;margin:15px 16px 0;color:#e7eedc}.is-career .other-roles h3{color:#f2f6e8}.is-career .other-roles p{color:#d3ddc8}.is-career .source-link{color:#d4ddc7;margin-left:16px;border-color:#b6c3a755}
/* Tutoring is one sheet of paper, with the form directly on it. */
dialog.is-tutoring{max-width:720px;background:transparent;border:0;box-shadow:none}.is-tutoring .dialog-bar{background:transparent;border:0;color:#f9f9ed;padding-inline:0}.is-tutoring .dialog-bar>span{visibility:hidden}.is-tutoring .dialog-bar button{color:#fffced}.is-tutoring .dialog-paper{position:relative;background:linear-gradient(100deg,#f9f4e6,#fffdf4 35%,#fdf9ec);padding:43px 50px 45px;box-shadow:3px 7px 20px #0003;isolation:isolate}.is-tutoring .dialog-paper:after{content:'';position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(0deg,transparent 0 4px,#a19d7903 5px 6px);pointer-events:none}.is-tutoring .dialog-paper>h2{font-size:35px}.is-tutoring .tutoring-letter{padding:0;background:none;box-shadow:none;rotate:0deg;max-width:none;margin:0}.is-tutoring .tutoring-letter>h3{font-size:25px}.is-tutoring .paper-contact-form{margin-top:28px}.is-tutoring .letter .stamp{margin-top:0}
@media(max-width:750px){.card-education strong{font-size:12px}.card-qualification{font-size:8px}.card-subject{font-size:6px}.card-year{font-size:6px}.career-sheet{flex-basis:calc(87% - 14px);min-height:470px;padding:30px 25px 60px}.career-papers{gap:22px}.career-papers:after{width:13%}.career-sheet h3{font-size:27px}.career-sheet .cv-heading strong{font-size:25px}.sheet-body{font-size:16px}.is-career .dialog-paper{padding-inline:0}.is-career .dialog-paper>h2{font-size:30px}.is-career .standfirst{font-size:13px}.paper-shuffle-controls{font-size:9px;gap:10px}.paper-shuffle-controls button{font-size:9px;padding:8px}.is-tutoring .dialog-paper{padding:30px 25px 35px}.is-tutoring .dialog-paper>h2{font-size:30px}}
/* The selector is photographed metal hardware in the cabinet art; these are its hit areas. */
.model-switcher{left:13.3%;top:35.35%;width:24%;height:9.3%;justify-content:space-between}.model-switcher button,.model-switcher button[aria-pressed=true]{position:relative;width:23.7%;height:auto;aspect-ratio:1;border:0;border-radius:2px;padding:0;background:transparent;box-shadow:none;color:transparent;font-size:0}.model-switcher button:hover{filter:none;background:#fff9db0b}.model-switcher button:active{background:#281a0c21;box-shadow:inset 1px 3px 6px #27190d44}.model-switcher button:after{content:'';position:absolute;left:calc(50% - 2px);bottom:13%;width:4px;height:4px;border-radius:50%;background:#54452e;border:1px solid #4d3a1f;box-shadow:inset 0 1px 1px #0007}.model-switcher button[aria-pressed=true]:after{background:#ffe7a2;box-shadow:inset 0 1px 1px #fff8,0 0 3px #efc77566}.model-switcher button:focus-visible{outline:2px solid #ffedbd;outline-offset:2px}.drawer-front-toggle{background-image:url('art/cabinet-metal.webp?v=detail1')}.project-picture.mews{background-image:url('art/mews-model-forward.webp?v=detail1')}
@media(max-width:750px){.model-switcher button,.model-switcher button[aria-pressed=true]{width:23.7%;height:auto;font-size:0}.model-switcher button:after{width:3px;height:3px;left:calc(50% - 1.5px)}}
.drawer-front-toggle{background-image:url('art/cabinet-specimens.webp?v=detail1')}.specimen-whitlowgrass{left:78.1%;top:51.5%;width:7.1%;height:14.8%}.specimen-ant{left:85.5%;top:51.5%;width:7%;height:14.8%}.specimen-ammonite{left:78%;top:67%;width:7.5%;height:12.5%}.specimen-globe{left:85.5%;top:66.7%;width:8.1%;height:13.5%}.specimen-detail-image{width:min(330px,100%);aspect-ratio:.8;margin:10px auto 20px;background-image:url('art/cabinet-specimens.webp?v=detail1');background-repeat:no-repeat;box-shadow:2px 5px 10px #0001}.detail-whitlowgrass{background-size:1234.567901% 625%;background-position:84.657236% 60.714286%}.detail-ant{background-size:1250% 625%;background-position:92.826087% 60.714286%}.detail-ammonite{background-size:1111.111111% 666.666667%;background-position:85.164835% 78.235294%}.detail-globe{background-size:1111.111111% 666.666667%;background-position:93.406593% 78.235294%}.is-specimen-ant #dialog-title{font-style:italic}
/* Restore the original cabinet postcards; retain the requested order and captions. */
.university-card{padding:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;background-color:transparent;background-image:url('art/cabinet-specimens.webp?v=detail1');background-repeat:no-repeat}.university-card:before{display:none}.university-card .card-campus{display:none}.card-bristol{background-size:952.380952% 338.983051%;background-position:72.73743% 72.48227%}.card-cambridge{background-size:952.380952% 338.983051%;background-position:48.603352% 72.48227%}.card-oxford{background-size:1000% 338.983051%;background-position:60.666667% 72.48227%}.card-education{position:absolute;top:70%;bottom:1.5%;left:2%;right:2%;padding:1% 2% 0;background:linear-gradient(100deg,#ecdec4,#f6e9d1 45%,#eddfc5);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;line-height:1.15}.card-education strong{font-size:clamp(11px,1.35vw,20px);margin-bottom:2%}.card-qualification{font-size:clamp(7px,.8vw,12px)}.card-subject{font-size:clamp(5.5px,.61vw,9px);line-height:1.2;margin-top:2%}.card-year{font-size:clamp(5.5px,.6vw,9px);margin-top:2%}.university-card:hover{background-color:transparent;box-shadow:inset 0 0 0 1px #fff6}
@media(max-width:750px){.card-education strong{font-size:11px}.card-qualification{font-size:7px}.card-subject,.card-year{font-size:5.5px}}
/* Complete, illustrated drawer boxes, including visible outer walls and projecting fronts. */
.career-open{left:37.6%;top:30.5%;width:29.9%;height:25%;background:none;clip-path:polygon(10% 0,92% 0,100% 43%,100% 99%,0 99%,0 43%)}.tutoring-open{left:66.9%;top:30.5%;width:32.4%;height:25%;background:none;clip-path:polygon(2% 0,84% 0,100% 43%,100% 99%,8.5% 99%,8.5% 43%)}.drawer-open-overlay.art-ready{background-image:url('art/drawers-depth.webp?v=detail1');background-color:transparent;background-repeat:no-repeat;filter:drop-shadow(0 9px 7px #17201942)}.career-open.art-ready{background-size:334.448161% 400%;background-position:53.63766% 40.666667%}.tutoring-open.art-ready{background-size:308.641975% 400%;background-position:98.964497% 40.666667%}.drawer-open-overlay .drawer-tray{display:none}.career-open .drawer-front-toggle,.tutoring-open .drawer-front-toggle{bottom:0;height:56%;background:none;box-shadow:none}.career-open .drawer-front-toggle{left:0;width:100%}.tutoring-open .drawer-front-toggle{left:8.5%;width:91.5%}.career-open .drawer-contents,.tutoring-open .drawer-contents{top:0;height:44%}.drawer-front-toggle:hover{box-shadow:inset 0 0 20px #fff1}.drawer-open-overlay .temporary-papers,.drawer-open-overlay .temporary-envelope{margin-top:25px}

/* Include the full old drawer opening, so its closed red edge cannot show. */
.tutoring-open{clip-path:polygon(0 0,84% 0,100% 43%,100% 99%,0 99%)}

/* Small watercolour vignettes leave room for the full qualifications. */
.university-card{background:linear-gradient(100deg,#eadcc2,#faf1de 45%,#eee1c9);border:1px solid #bcaa88;box-shadow:1px 2px 3px #25170f33;border-radius:2px}
.university-card:before{display:block}
.university-card .card-campus{display:block;height:43%;width:88%;margin:7% 6% 0;background-image:url('art/university-watercolours.webp?v=detail1');background-size:300% 100%;background-repeat:no-repeat}
.campus-bristol{background-position:0% center}.campus-cambridge{background-position:50% center}.campus-oxford{background-position:100% center}
.card-education{top:48%;bottom:3%;left:3%;right:3%;background:none;padding:3% 0;justify-content:space-evenly;line-height:1.15}
.card-education strong{font-size:clamp(11px,1.25vw,19px);margin:0}.card-qualification{font-size:clamp(8px,.9vw,13px)}.card-subject{font-size:clamp(7px,.72vw,11px);line-height:1.3;margin:0}.card-year{font-size:clamp(7px,.72vw,11px);margin:0}
.uni-picture{background-image:url('art/university-watercolours.webp?v=detail1');background-size:300% 100%;aspect-ratio:1;background-position:50% center}.uni-picture.bristol{background-position:0% center}.uni-picture.cambridge{background-position:50% center}.uni-picture.oxford{background-position:100% center}

/* The career papers now reveal the supplied CV. */
dialog.is-career{max-width:940px}.is-career .dialog-paper{padding:24px 28px 32px}.is-career .dialog-paper>h2{margin-bottom:18px}.cv-actions{display:flex;gap:18px;flex-wrap:wrap;margin:0 0 18px;font:13px/1.5 Georgia,serif}.cv-actions a{padding:9px 13px;background:#fff9e9;border:1px solid #c9b98d;box-shadow:1px 2px 3px #0001}.cv-actions a:focus-visible{outline:2px solid #1325a2;outline-offset:3px}.cv-document{margin:0;background:white;box-shadow:2px 5px 12px #0002}.cv-document img{display:block;width:100%;height:auto}.cv-text{margin-top:24px}.cv-text summary{font-size:16px}.cv-transcript{white-space:pre-wrap;font:15px/1.6 Georgia,serif;padding-bottom:20px}
@media(max-width:750px){.is-career .dialog-paper{padding:20px 12px 25px}.cv-actions{gap:10px;font-size:12px}}

/* Matte postcards: consistent paper, gentle contact shadow, no glossy frame. */
.university-card{background:#eee3ce;border:1px solid #b4a08080;border-radius:1px;box-shadow:1px 2px 2px #35230f45,2px 4px 5px #35230f20;isolation:isolate}
.university-card .card-campus{mix-blend-mode:multiply;filter:saturate(.77) contrast(.94);box-shadow:none;border:0}
.university-card:after{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,#fff8 0%,transparent 12%,transparent 80%,#6e4e2112 100%);opacity:.35;z-index:2}
.university-card:before{top:1.7%;width:3px;height:3px;left:calc(50% - 1.5px);background:#a98342;box-shadow:.5px 1px 1px #34230f70}
.university-card:hover{background:#eee3ce;box-shadow:1px 2px 2px #35230f45,2px 4px 5px #35230f20}
.card-cambridge .card-education{justify-content:center;gap:9%}

/* A photographed sheet with a real portrait tucked beneath a metal clip. */
.cv-document{position:relative;margin:55px 0 12px;padding:2.6% 2.8% 3%;background:transparent url('art/cv-paper.webp?v=detail1') center/110% 110% no-repeat;box-shadow:none;filter:drop-shadow(2px 5px 5px #201b1430)}
.cv-document .cv-page-image{width:100%;mix-blend-mode:multiply;clip-path:polygon(.15% .1%,99.8% 0,100% 99.6%,.1% 100%)}
.cv-portrait{position:absolute;z-index:3;right:4.5%;top:-3%;width:16%;padding:1% 1% 2.4%;background:#fffdf7;box-shadow:2px 3px 5px #211b143d;transform:rotate(6deg)}
.cv-portrait img{width:100%;height:auto;display:block}.cv-paperclip{position:absolute;width:22%;height:auto;left:10%;top:-16%;transform:rotate(-12deg);filter:drop-shadow(1px 1px 1px #0005)}
.cv-text{filter:none}

/* Postcards are physical objects in the cabinet photograph; keep only accessible hit areas. */
.cabinet.has-integrated-postcards .university-card,.cabinet.has-integrated-postcards .university-card:hover{background:transparent;border:0;box-shadow:none;border-radius:0;filter:none}
.cabinet.has-integrated-postcards .university-card:before,.cabinet.has-integrated-postcards .university-card:after,.cabinet.has-integrated-postcards .university-card .card-campus,.cabinet.has-integrated-postcards .university-card .card-education{display:none}
.cabinet.has-integrated-postcards .university-card:focus-visible{outline:2px solid #fff8da;outline-offset:-2px}

/* The photo sits on the sheet; the clip crosses their shared top edge. */
.cv-portrait{top:.5%;right:5%;width:12.5%;padding:.6% .6% 1.5%}
.cv-paperclip{left:70%;top:-5%;width:14%;transform:rotate(-4deg);overflow:visible}

/* Preserve original scene pixels. Only changed regions use subsequent artwork. */
.scene-restoration{position:absolute;inset:0;z-index:1;background-repeat:no-repeat;background-size:100% 100%;pointer-events:none}
.restore-hardware{background-image:url('art/cabinet-metal.webp?v=detail1');clip-path:polygon(11.4% 31.4%,39% 31.4%,39% 49%,11.4% 49%)}
.restore-tutoring{background-image:url('art/closed.webp?v=detail1');clip-path:polygon(67.4% 33%,94.3% 33%,94.3% 47.4%,67.4% 47.4%)}
.restore-right-top{background-image:url('art/cabinet-metal.webp?v=detail1');clip-path:polygon(87% 8%,100% 8%,100% 49%,87% 49%)}
.restore-postcards{background-image:url('art/cabinet-physical-postcards.webp?v=detail1');clip-path:polygon(43.4% 50.7%,75.8% 50.7%,75.8% 81%,43.4% 81%)}
.restore-specimens{background-image:url('art/cabinet-specimens.webp?v=detail1');clip-path:polygon(77.5% 49.3%,96.8% 49.3%,96.8% 85%,77.5% 85%)}
.restore-map{background-image:url('art/cabinet-hokkaido-unlabelled.webp?v=detail1');clip-path:polygon(44% 85.5%,99% 85.5%,99% 97%,44% 97%)}
.cabinet{width:min(100%,calc(100svh*1.5))}
/* Let the CV appear directly, without the modal labels and heading. */
dialog.is-career .dialog-bar,dialog.is-career .dialog-paper>.eyebrow,dialog.is-career .dialog-paper>h2{display:none}
/* The tutoring letter shares the photographed paper of the CV. */
dialog.is-tutoring{overflow:visible;max-height:90svh}
.is-tutoring .dialog-paper{background:transparent url('art/cv-paper.webp?v=detail1') center/110% 110% no-repeat;box-shadow:none;filter:drop-shadow(3px 9px 6px #17201950);padding:48px 55px 55px;max-height:calc(90svh - 48px);overflow:auto;scrollbar-width:thin}
.is-tutoring .dialog-paper:after{display:none}
.is-tutoring .paper-contact-form input,.is-tutoring .paper-contact-form textarea{background:#fffdf738;box-shadow:none}
@media(max-width:750px){.is-tutoring .dialog-paper{padding:35px 28px 42px}}
/* Teaching cards show the same physical models as the cabinet drawer. */
.project-card .project-picture.zoo,.project-card .project-picture.mews,.project-card .project-picture.space{display:block;background-repeat:no-repeat;background-size:243.902439% 222.222222%;background-position:3.389831% 87.272727%;height:auto;aspect-ratio:1.37}
.project-card .project-picture.zoo{background-image:url('art/zoo.webp?v=detail1')}
.project-card .project-picture.mews{background-image:url('art/mews-model-forward.webp?v=detail1')}
.project-card .project-picture.space{background-image:url('art/space.webp?v=detail1')}
.project-card .project-picture.zoo svg,.project-card .project-picture.space:after{display:none}
/* Feather the restored upper-right region instead of cutting across pale backdrop. */
.restore-right-top{clip-path:none;mask-image:linear-gradient(to right,transparent 85%,#000 89%),linear-gradient(to bottom,transparent 7%,#000 12%,#000 48.5%,transparent 50%);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent 85%,#000 89%),linear-gradient(to bottom,transparent 7%,#000 12%,#000 48.5%,transparent 50%);-webkit-mask-composite:source-in}
/* Blend only the empty outer margin into the page colour. */
.cabinet{mask-image:linear-gradient(to right,transparent,#000 1.3%,#000 98.7%,transparent),linear-gradient(to bottom,transparent,#000 1.5%,#000 97.5%,transparent);mask-composite:intersect;-webkit-mask-image:linear-gradient(to right,transparent,#000 1.3%,#000 98.7%,transparent),linear-gradient(to bottom,transparent,#000 1.5%,#000 97.5%,transparent);-webkit-mask-composite:source-in}

/* Model notes open as a worn book, with two paper leaves and a shaded binding. */
dialog.is-book{max-width:1080px;background:#4b3424;border:0;border-radius:5px;padding:9px;box-shadow:0 18px 70px #1119,2px 3px 0 #2b1b12}
.is-book .dialog-bar{background:#eadbb5;border:0;min-height:38px;padding:5px 18px;color:#655139}.is-book .dialog-bar>span{visibility:hidden}.is-book .dialog-bar button{color:#5b452c}
.is-book .dialog-paper{padding:0;background:none}.is-book .dialog-paper>.eyebrow,.is-book .dialog-paper>h2{display:none}
.book-spread{display:grid;grid-template-columns:1fr 1fr;gap:0;background:linear-gradient(90deg,#c7ae79 0%,#efe1bd 2%,#f7edcf 43%,#e0ce9e 48%,#a48a59 50%,#decb9b 52%,#f6eaca 57%,#f3e5c1 98%,#cfb986 100%);border-radius:2px;box-shadow:inset 0 -3px #baa478,inset 0 -6px #e8d9b3}
.book-left,.book-right{position:relative;padding:42px 38px 64px;min-width:0;background-image:radial-gradient(ellipse at 12% 15%,#a6793620,transparent 25%),radial-gradient(ellipse at 90% 82%,#a6793617,transparent 30%),repeating-linear-gradient(3deg,transparent 0 3px,#89714204 4px 5px)}
.book-left{padding-right:44px}.book-right{padding-left:44px}.book-chapter{font:10px/1.5 Georgia,serif;letter-spacing:1.3px;color:#776345;margin-bottom:24px}.book-left h2{font:38px/1.15 Georgia,serif;color:#3e3323;margin:0 0 36px;letter-spacing:-.5px}.book-model{width:100%;aspect-ratio:1.37;background-repeat:no-repeat;background-size:243.902439% 222.222222%;background-position:3.389831% 87.272727%;mix-blend-mode:multiply;filter:sepia(.15) saturate(.75);border:1px solid #9d845e50;box-shadow:1px 2px 3px #56401c22}.book-model-zoo{background-image:url('art/zoo.webp?v=detail1')}.book-model-fieldwork{background-image:url('art/mews-model-forward.webp?v=detail1')}.book-model-space{background-image:url('art/space.webp?v=detail1')}.book-right .prose{font:16px/1.75 Georgia,serif;color:#493a28}.book-right h3{font:22px/1.3 Georgia,serif;margin:26px 0 10px;color:#3c3021}.book-right p{margin-bottom:17px}.book-folio{position:absolute;bottom:22px;left:50%;font:12px Georgia,serif;color:#826b48}
@media(max-width:700px){dialog.is-book{width:calc(100% - 20px);padding:5px}.book-spread{grid-template-columns:1fr;background:linear-gradient(90deg,#d3bc8b,#f5e9c8 6%,#f4e7c5 96%,#cfb886)}.book-left,.book-right{padding:28px 25px 40px}.book-left{border-bottom:1px solid #bca57b70}.book-left h2{font-size:31px;margin-bottom:22px}.book-model{max-width:300px;margin:auto}.book-left .book-folio{display:none}.book-right .prose{font-size:16px}.book-right h3{margin-top:22px}}

/* Watercolour plates printed onto the left-hand book page. */
.is-book .book-model{aspect-ratio:1;background-image:url('art/book-illustrations.webp?v=detail1');background-size:300% 100%;background-repeat:no-repeat;border:0;box-shadow:none;mix-blend-mode:multiply;filter:saturate(.85);margin:10px auto 0}
.is-book .book-model-zoo{background-position:0% center}.is-book .book-model-fieldwork{background-position:50% center}.is-book .book-model-space{background-position:100% center}

/* One screen-sized spread: fit the writing to the available leaf. */
dialog.is-book{width:min(1180px,96vw);max-width:1180px;height:min(780px,94svh);max-height:94svh;overflow:hidden}
dialog.is-book[open]{display:flex;flex-direction:column}.is-book .dialog-bar{flex:0 0 34px;min-height:34px}.is-book .dialog-paper{flex:1;min-height:0;overflow:hidden}.is-book #dialog-content{height:100%}.book-spread{height:100%;min-height:0;--book-font:16px}
.book-left,.book-right{padding:25px 30px 30px;min-height:0}.book-left{display:flex;flex-direction:column;padding-right:38px}.book-right{padding-left:38px}.book-chapter{margin-bottom:14px}.book-left h2{font-size:clamp(25px,3vw,36px);margin-bottom:18px}.book-intro{font:16px/1.5 Georgia,serif;color:#493a28;margin:0 0 12px}.is-book .book-model{flex:1;min-height:0;width:100%;max-height:380px;aspect-ratio:auto;background-size:300% 100%}.book-right .prose{font-size:var(--book-font);line-height:1.45}.book-right h3{font-size:calc(var(--book-font)*1.3);margin:16px 0 7px}.book-right h3:first-child{margin-top:0}.book-right p{margin-bottom:12px}.book-folio{bottom:10px}
@media(max-width:700px){dialog.is-book{width:96vw;height:96svh;max-height:96svh}.book-spread{display:flex;flex-direction:column}.book-left{flex:0 0 auto;display:block;padding:15px 105px 12px 19px;position:relative;min-height:115px}.book-chapter{font-size:8px;letter-spacing:.6px;margin-bottom:6px}.book-left h2{font-size:23px;margin-bottom:9px}.book-intro{font-size:12px;line-height:1.35;margin-bottom:0}.is-book .book-model{position:absolute;right:12px;top:18px;width:83px;height:100px;margin:0;background-size:300% 100%}.book-right{flex:1;min-height:0;padding:14px 20px 26px}.book-right .prose{font-size:var(--book-font);line-height:1.4}.book-right h3{margin-top:13px;margin-bottom:5px}.book-right p{margin-bottom:8px}}
/* Continue the two paper leaves through the book controls. */
.is-book .dialog-bar{background:linear-gradient(90deg,#c7ae79 0%,#efe1bd 2%,#f7edcf 43%,#e0ce9e 48%,#a48a59 50%,#decb9b 52%,#f6eaca 57%,#f3e5c1 98%,#cfb986 100%);border-radius:2px 2px 0 0;box-shadow:none}
.is-book .dialog-bar .close{font:25px/1 Georgia,serif!important;color:#756142;padding:2px 5px;opacity:.8}
.is-book .dialog-bar .close:hover{color:#382b1b;opacity:1}.is-book .dialog-bar .close:focus-visible{outline:1px solid #806a46;outline-offset:2px}
@media(max-width:700px){.is-book .dialog-bar{background:linear-gradient(90deg,#d3bc8b,#f5e9c8 6%,#f4e7c5 96%,#cfb886)}}

/* Keep the street vignette; leave out the separate botanical studies. */
.is-book .book-model-fieldwork{background-size:450% 100%;background-position:42.857143% center}

.project-card .project-picture.green{display:block;background:url('art/green-seasoning-forward.webp?v=detail1') 3.389831% 87.272727%/243.902439% 222.222222% no-repeat;height:auto;aspect-ratio:1.37}
.is-book .book-model-green{background-image:url('art/green-seasoning-illustration.webp?v=detail1');background-size:100% 100%;background-position:center}

.restore-butterfly{background-image:url('art/cabinet-butterfly.webp?v=detail1');clip-path:polygon(77.7% 67%,85.5% 67%,85.5% 80.5%,77.7% 80.5%)}
.specimen-butterfly{left:77.7%;top:67%;width:7.8%;height:13.5%;z-index:3}
dialog.is-game{width:98vw;max-width:1500px;height:95svh;max-height:95svh;padding:0;overflow:hidden;background:#f1efe5}
dialog.is-game[open]{display:flex;flex-direction:column}.is-game .dialog-bar{flex:0 0 40px;min-height:40px}.is-game .dialog-bar>span{display:none}.is-game .dialog-bar:before{content:'Loop Valley · Circular economy game';margin-right:auto;font:13px Georgia,serif;letter-spacing:0;color:#40513b}.is-game .dialog-paper{padding:0;flex:1;min-height:0}.is-game .dialog-paper>.eyebrow,.is-game .dialog-paper>h2{display:none}.is-game #dialog-content{height:100%}.circular-game{display:block;width:100%;height:100%;border:0;background:#f1efe5}
.model-badge{position:absolute;z-index:2;pointer-events:none;left:15%;top:74.5%;width:18.6%;height:7.4%;background:url('art/model-badge.webp?v=detail1') center/100% 100% no-repeat;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2%;color:#17384a;padding:1% 1%;line-height:1.15;text-align:center}
.model-badge>span{font-size:clamp(7px,.85vw,13px)}.model-badge>strong{font-size:clamp(10px,1.4vw,21px);font-weight:400}.model-badge[data-exhibit=mews]{left:13.3%;width:18.5%}.model-badge[data-exhibit=green]{left:14.5%;width:19.8%}
.model-badge{background-size:100% 120%}

/* Separate whole text leaves from their facing illustration leaves. */
.book-separated .book-text{display:block;min-height:0}.book-text h2{font:clamp(24px,2.7vw,34px)/1.15 Georgia,serif;color:#3e3323;margin:0 0 22px;letter-spacing:-.5px}.book-text .prose{font:var(--book-font)/1.5 Georgia,serif;color:#493a28}.book-text .prose p{margin-bottom:16px}.book-text .book-chapter{margin-bottom:16px}
.book-separated .book-art{display:flex;align-items:center;justify-content:center;min-height:0;padding:30px 28px 38px}.book-separated .book-art .book-model{flex:0 1 auto;position:static;margin:0;width:100%;height:min(58svh,540px);max-height:100%}
@media(max-width:700px){.book-separated .book-text{flex:1;min-height:0;padding:18px 22px 28px}.book-text h2{font-size:24px;margin-bottom:12px}.book-text .book-chapter{margin-bottom:9px}.book-text .prose{line-height:1.4}.book-text .prose p{margin-bottom:10px}.book-separated .book-art{flex:0 0 25%;min-height:0;max-height:25%;padding:10px 30px}.book-separated .book-art .book-model{width:125px;height:100%;max-height:150px}.book-separated .book-art .book-folio{display:none}}

.restore-bristol-caption{background-image:url('art/cabinet-bristol-line.webp?v=detail1');clip-path:polygon(43.8% 70%,53.8% 70%,53.8% 80.2%,43.8% 80.2%)}
.model-visual[data-modelname=mews],.project-card .project-picture.mews{background-size:231.707317% 222.222222%;background-position:3.1375% 87.272727%}
.model-badge[data-exhibit=mews]{left:12.1%;top:76.5%;width:17.3%;height:6.4%;padding:.5% 1%}
.model-badge[data-exhibit=green]{left:14.2%;top:75.7%;width:20.5%;height:6.7%;padding:.5% 1%}
/* Show only the drawer interior; retain the original foreground lip and sidewall. */
.model-visual[data-modelname=mews],.model-visual[data-modelname=green]{clip-path:polygon(0 0,96% 0,96% 77%,0 77%);background-size:231.707317% 222.222222%;background-position:3.1375% 87.272727%}
.project-card .project-picture.green{background-size:231.707317% 222.222222%;background-position:3.1375% 87.272727%}
.model-badge[data-exhibit=green]{left:13.6%;width:19.6%}

/* Photographic comparison draft: one consistent photographic cabinet surface. */
.scene-restoration{display:none}.model-badge{display:none}
.drawer-open-overlay.art-ready{background-image:url('art/photo-drawers.webp?v=detail1')}
.model-visual[data-modelname=mews],.model-visual[data-modelname=green]{background-size:243.902439% 222.222222%;background-position:3.389831% 87.272727%;clip-path:polygon(0 0,96% 0,96% 77%,0 77%)}
.project-card .project-picture.zoo{background-image:url('art/photo-cabinet.webp?v=detail1')}.project-card .project-picture.mews{background-image:url('art/photo-mews.webp?v=detail1')}.project-card .project-picture.green{background-image:url('art/photo-green.webp?v=detail1')}
.project-card .project-picture.zoo,.project-card .project-picture.mews,.project-card .project-picture.green{background-size:243.902439% 222.222222%;background-position:3.389831% 87.272727%}
dialog.is-book{background:transparent url('art/photo-book.webp?v=detail1') center/100% 100% no-repeat;box-shadow:none;filter:drop-shadow(2px 8px 12px #15100b66);border-radius:0}
.is-book .dialog-bar,.is-book .book-spread{background:transparent;box-shadow:none}.is-book .book-left,.is-book .book-right{background-image:none}
@media(max-width:700px){dialog.is-book{background-size:200% 100%;background-position:left center}}
.model-visual[data-modelname=mews],.model-visual[data-modelname=green]{clip-path:polygon(0 0,97.7% 0,97.7% 77%,0 77%)}

/* Keep all printing and plates inside the usable leaf, clear of spine and cover. */
.is-book .book-left{padding:34px 76px 46px 52px;overflow:hidden}
.is-book .book-right{padding:34px 52px 46px 76px;overflow:hidden}
.is-book .book-model{max-width:100%;min-width:0;overflow:hidden;clip-path:inset(0)}
.is-book h2,.is-book h3,.is-book .prose,.is-book .book-intro{max-width:100%;overflow-wrap:break-word}
.is-book .book-chapter{letter-spacing:.8px}.is-book .book-intro{font-size:calc(var(--book-font)*.95)}
.additional-degree{padding-bottom:19px;margin-bottom:22px;border-bottom:1px solid #cabc9c}.additional-degree .degree-dates{margin-bottom:0}
/* The ant is a drawing on physical paper, consistently across cabinet states. */
.photo-ant-drawing{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/photo-ant-drawing.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(85.5% 51.4%,92.5% 51.4%,92.5% 66.3%,85.5% 66.3%)}
/* Give the CV and letter an actual paper silhouette and contact shadow. */
dialog.is-career{background:transparent;border:0;box-shadow:none}.is-career .dialog-paper{background:transparent;padding:28px 30px 35px}
.cv-document{padding:5% 5.5% 6%;background:transparent url('art/photo-writing-paper.webp?v=detail1') center/100% 100% no-repeat;filter:drop-shadow(3px 10px 7px #17100a55);transform:rotate(-.35deg)}
.cv-document .cv-page-image{mix-blend-mode:multiply;background:transparent;opacity:.94;clip-path:inset(0)}
.cv-portrait{top:2.2%;right:8%;width:12.5%}
.is-tutoring .dialog-paper{background:transparent url('art/photo-writing-paper.webp?v=detail1') center/100% 100% no-repeat;padding:52px 65px 62px;filter:drop-shadow(3px 10px 7px #17100a55);border-radius:0;box-shadow:none}
.is-tutoring .paper-contact-form input,.is-tutoring .paper-contact-form textarea{background:transparent}
/* All cabinet objects that do something share the drawer's gentle hover cue. */
.cabinet button{transition:box-shadow .18s ease,background-color .18s ease}
.cabinet button:hover{box-shadow:inset 0 0 30px #ffffff33;background-color:#ffffff05}
.cabinet button:focus-visible{box-shadow:inset 0 0 30px #ffffff33;outline:2px solid #fff7d7;outline-offset:-2px}
.cabinet.has-integrated-postcards .university-card:hover{box-shadow:inset 0 0 30px #ffffff33;background-color:#ffffff05}
@media(max-width:700px){.is-book .book-left,.is-book .book-right{padding:20px 30px 30px}.is-book .book-left:not(.book-text):not(.book-art){padding-right:120px}.is-book .book-left:not(.book-art) .book-model{right:30px;width:74px}.is-book .book-separated .book-art{padding:12px 32px}.is-book .book-separated .book-art .book-model{width:125px}.is-tutoring .dialog-paper{padding:38px 37px 46px}.is-career .dialog-paper{padding:20px 10px 28px}}
@media(prefers-reduced-motion:reduce){.cabinet button{transition:none}}
.is-book .dialog-bar{padding:10px 50px 0;flex-basis:44px;min-height:44px}
@media(max-width:700px){.is-book .dialog-bar{padding:8px 28px 0;flex-basis:38px;min-height:38px}}

/* A fixed usable print area, inset beyond the photographed cover and binding. */
.is-book .book-spread{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.is-book .book-left,.is-book .book-right{padding:36px 90px 54px 88px;overflow:hidden}
.is-book .book-folio{bottom:38px}.is-book .book-model{width:100%;max-width:100%;min-width:0;box-sizing:border-box;mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent),linear-gradient(to bottom,transparent,#000 4%,#000 96%,transparent);mask-composite:intersect}
/* Smooth professional stationery with clean cut edges. */
.cv-document{background-image:url('art/crisp-writing-paper.webp?v=detail1');padding:5% 5.5% 6%;transform:none;clip-path:polygon(1% 1%,99% 1%,99% 98.5%,98% 99.5%,1% 99.5%)}
/* Muted sage and ochre on closed fronts; matching paint in open atlas. */
.drawer-colour-patch{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/photo-sage-ochre.webp?v=detail1') center/100% 100% no-repeat}.drawer-colour-patch[hidden]{display:none}
.patch-career{clip-path:polygon(40.6% 33.2%,65.2% 33.2%,65.2% 46.8%,40.6% 46.8%)}.patch-tutoring{clip-path:polygon(67.4% 33.2%,94.3% 33.2%,94.3% 47.1%,67.4% 47.1%)}
.drawer-open-overlay.art-ready{background-image:url('art/photo-sage-ochre-open.webp?v=detail1')}.photo-ant-drawing{background-image:url('art/photo-sage-ochre.webp?v=detail1')}
/* A single compact contact sheet, sized to the viewport. */
dialog.is-tutoring{width:min(900px,96vw);max-width:900px;height:min(650px,94svh);max-height:94svh;overflow:hidden;--tutor-font:15px}
dialog.is-tutoring[open]{display:flex;flex-direction:column}.is-tutoring .dialog-bar{flex:0 0 34px;min-height:34px;padding:0 18px}.is-tutoring .dialog-paper{flex:1;min-height:0;max-height:none;overflow:hidden;display:flex;flex-direction:column;padding:38px 52px 45px;background-image:url('art/crisp-writing-paper.webp?v=detail1');clip-path:polygon(1% 1%,99% 1%,99% 98.5%,98% 99.5%,1% 99.5%)}
.is-tutoring .dialog-paper>.eyebrow{display:none}.is-tutoring .dialog-paper>h2{font-size:calc(var(--tutor-font)*2);margin:0 0 22px;line-height:1.15}.is-tutoring #dialog-content{flex:1;min-height:0}.is-tutoring .tutoring-letter{display:grid;grid-template-columns:.9fr 1.1fr;gap:30px;font-size:var(--tutor-font);line-height:1.45;padding:0;background:none;box-shadow:none;max-width:none;margin:0}.tutoring-info p{margin-bottom:14px}.tutoring-info .secondary-action{font-size:.85em;margin-top:8px}
.is-tutoring .paper-contact-form{margin:0;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:12px}.contact-field{min-width:0}.contact-field-wide{grid-column:1/-1}.is-tutoring .paper-contact-form label{display:block;font:inherit;font-size:.9em;margin:0 0 5px}.is-tutoring .paper-contact-form input,.is-tutoring .paper-contact-form textarea{width:100%;font:inherit;font-size:.95em;padding:7px 8px;margin:0;border:0;border-bottom:1px solid #8f947e;box-shadow:none;background:#ffffff20;border-radius:0}.is-tutoring .paper-contact-form input{height:35px}.is-tutoring .paper-contact-form textarea{height:clamp(55px,11svh,95px);min-height:0;resize:none}.is-tutoring .paper-contact-form .primary-action{grid-column:1/-1;margin:4px 0 0;padding:9px 14px;font-size:.95em;justify-self:start}
/* More legible, consistent affordance for every interactive cabinet object. */
.cabinet button:hover,.cabinet.has-integrated-postcards .university-card:hover{background-color:#fff7d51f;box-shadow:inset 0 0 24px #fff4bd88,0 0 0 1px #ffe7a7b3,0 0 12px #ffe8a744}
.cabinet button:focus-visible{background-color:#fff7d51f;box-shadow:inset 0 0 24px #fff4bd88,0 0 0 2px #ffe7a7;outline:2px solid #fff2bc;outline-offset:1px}
@media(max-width:700px){.is-book .book-left,.is-book .book-right{padding:24px 46px 38px}.is-book .book-left:not(.book-text):not(.book-art){padding-right:140px}.is-book .book-left:not(.book-art) .book-model{right:45px;width:74px}.is-book .book-separated .book-art{padding:12px 46px}.is-book .book-folio{bottom:18px}dialog.is-tutoring{height:min(760px,96svh);max-height:96svh}.is-tutoring .dialog-paper{padding:28px 31px 32px}.is-tutoring .dialog-paper>h2{margin-bottom:14px}.is-tutoring .tutoring-letter{grid-template-columns:1fr;gap:14px;line-height:1.35}.tutoring-info p{margin-bottom:8px}.tutoring-info .secondary-action{margin-top:0}.is-tutoring .paper-contact-form{gap:9px}.is-tutoring .paper-contact-form input{height:31px}.is-tutoring .paper-contact-form textarea{height:clamp(50px,9svh,75px)}}
.patch-career{clip-path:polygon(40.5% 33.1%,65.3% 33.1%,65.3% 46.9%,40.5% 46.9%)}.patch-tutoring{clip-path:polygon(67.2% 33.1%,94.4% 33.1%,94.4% 47.2%,67.2% 47.2%)}
.cv-document,.is-tutoring .dialog-paper{background-color:#fff;background-size:104% 104%;clip-path:none;border-radius:1px}

/* Purple and muted ochre, retaining the photographed paint and brass. */
.patch-career{background-image:url('art/photo-cabinet.webp?v=detail1')}
.career-open.art-ready{background-image:url('art/photo-drawers.webp?v=detail1')}
/* Restore the softly shaded stock, cropping the deckled perimeter off the sheet. */
.cv-document,.is-tutoring .dialog-paper{background-image:url('art/photo-writing-paper.webp?v=detail1');background-size:110% 110%;background-position:center;background-color:#fbfaf6;border-radius:1px;clip-path:none}
/* The portrait meets the CV's top edge, and the clip crosses both layers. */
.cv-portrait{top:-1.1%;right:8%;transform:rotate(3deg)}
.cv-paperclip{left:18%;top:-9%;width:17%;transform:rotate(-3deg);z-index:4;overflow:visible}
/* A feathered light cue, without a rectangular outline or halo. */
.cabinet button:hover,.cabinet.has-integrated-postcards .university-card:hover{background-color:transparent;background-image:radial-gradient(ellipse at center,#fff4cc30 0%,#fff4cc18 38%,transparent 72%);box-shadow:none}
.cabinet button:focus-visible{background-color:transparent;background-image:radial-gradient(ellipse at center,#fff4cc30,transparent 72%);box-shadow:none;outline:2px solid #f5e3af;outline-offset:-4px}
.cabinet #cabinet-navigation button:hover{background-image:none;text-decoration:none;box-shadow:inset 0 -2px 0 #c4a45b80}
.cabinet .model-switcher button:hover{background-image:radial-gradient(ellipse at center,#fff4cc40,transparent 72%);box-shadow:none}
.cabinet .drawer-front-toggle:hover{background-image:radial-gradient(ellipse at center,#fff4cc30,transparent 72%)}
.cabinet.has-integrated-postcards .card-bristol{left:43.6%;top:51.2%;width:10.4%;height:29.1%}
.cabinet.has-integrated-postcards .card-cambridge{left:54.5%;top:51.2%;width:10.3%;height:29.1%}
.cabinet.has-integrated-postcards .card-oxford{left:65.2%;top:51.1%;width:10.5%;height:29.5%}

/* A concise introduction, kept within the clear wall beneath the name. */
.site-introduction{position:absolute;left:4%;top:9.2%;width:35%;margin:0;z-index:3;color:#243a48;font:clamp(9px,1.02vw,15px)/1.3 Georgia,serif;pointer-events:none}
.career-overview{background:#fbfaf6 url('art/photo-writing-paper.webp?v=detail1') center/110% 110% no-repeat;padding:40px 45px;filter:drop-shadow(3px 8px 7px #17100a40);color:#22372b}
.career-overline{font:10px/1.4 Arial,sans-serif;letter-spacing:1.5px;color:#6a665e;margin:0 0 12px}.career-overview h2{font-size:34px;margin-bottom:18px}.career-intro{font-size:16px;line-height:1.65;max-width:740px;margin-bottom:26px}.career-highlights{display:grid;grid-template-columns:1fr 1fr;gap:25px 35px}.career-highlights article{border-top:1px solid #b8aa8b80;padding-top:15px}.career-highlights h3{font-size:23px;line-height:1.25;margin:0 0 8px}.career-highlights p{font-size:14px;line-height:1.6;margin:0}.career-highlights .highlight-employer{font:11px/1.5 Arial,sans-serif;color:#6b665e;margin-bottom:9px}
.is-career .full-cv{margin:20px 0 0;border:0;color:#22372b}.is-career .full-cv>summary{background:#fbfaf6;padding:14px 22px;font-size:18px;box-shadow:2px 4px 8px #17100a25}.is-career .full-cv>.cv-actions{margin-top:20px}
@media(max-width:700px){.site-introduction{font-size:clamp(8px,1.6vw,11px);width:40%;top:9.2%}.career-overview{padding:28px 25px}.career-overview h2{font-size:28px}.career-intro{font-size:15px}.career-highlights{grid-template-columns:1fr;gap:20px}.career-highlights h3{font-size:22px}}

/* Colour only the painted front; keep the original photograph's joinery. */
.patch-tutoring{background-image:url('art/photo-cabinet.webp?v=detail1');clip-path:polygon(67.45% 33.25%,94.2% 33.25%,94.2% 46.85%,67.45% 46.85%);filter:hue-rotate(35deg) saturate(.55) brightness(1.12)}
.tutoring-open.art-ready{background-image:url('art/photo-drawers.webp?v=detail1')}
.tutoring-open.art-ready:before{content:'';position:absolute;inset:0;pointer-events:none;background-image:inherit;background-size:inherit;background-position:inherit;background-repeat:no-repeat;clip-path:polygon(11.9% 42.4%,99.2% 42.4%,99.2% 91.7%,11.9% 91.7%);filter:hue-rotate(35deg) saturate(.55) brightness(1.12)}

/* Follow the actual tutoring box silhouette, excluding the postcard below it. */
.tutoring-open{clip-path:polygon(0 0,84% 0,100% 42%,100% 92%,11.8% 92%,11.8% 88%,9.2% 88%,0 4%)}
.tutoring-open.art-ready:before{display:none}
.patch-tutoring{filter:none;clip-path:polygon(67.25% 33.05%,94.5% 33.05%,94.5% 47.2%,67.25% 47.2%)}

.patch-career,.patch-tutoring{background-image:url('art/teacher-ochre-closed.webp?v=detail1');filter:none}
.career-open.art-ready,.tutoring-open.art-ready{background-image:url('art/teacher-ochre-open.webp?v=detail1')}
/* Replace the old closed front beneath the projecting drawer as well. */
.cabinet:has(#tutoring-open:not([hidden])) .patch-tutoring[hidden]{display:block;background-image:url('art/teacher-ochre-open.webp?v=detail1')}
/* Tutor label, in the same position and paint treatment in both states. */
.patch-tutoring{background-image:url('art/teacher-tutor-closed.webp?v=detail1')}
.tutoring-open.art-ready{background-image:url('art/teacher-tutor-open.webp?v=detail1')}
.cabinet:has(#tutoring-open:not([hidden])) .patch-tutoring[hidden]{background-image:url('art/teacher-tutor-open.webp?v=detail1')}

/* A welcoming note, laid on a clean-edged sheet of paper. */
dialog.is-welcome{width:min(620px,92vw);max-width:620px;background:transparent;border:0;box-shadow:none;overflow:auto;max-height:92svh}
.is-welcome .dialog-bar{background:transparent;border:0;padding:0 8px;min-height:36px}.is-welcome .dialog-bar>span,.is-welcome #back{display:none}.is-welcome .dialog-bar .close{margin-left:auto;color:#fff9ea}
.is-welcome .dialog-paper{background:#fbfaf6 url('art/photo-writing-paper.webp?v=detail1') center/110% 110% no-repeat;padding:42px 46px 44px;border-radius:1px;filter:drop-shadow(3px 8px 8px #17100a40)}
.is-welcome .eyebrow{display:none}.is-welcome h2{font-size:34px;line-height:1.16;margin-bottom:24px}.welcome-note{font-size:18px;line-height:1.65}.welcome-note p{margin-bottom:18px}.welcome-note .primary-action{margin-top:6px}
@media(max-width:600px){.is-welcome .dialog-paper{padding:30px 28px 34px}.is-welcome h2{font-size:29px}.welcome-note{font-size:16px}}
.top-navigation-art{position:absolute;inset:0;z-index:1;pointer-events:none;background:url('art/tutor-teacher-navigation.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(61% 2%,92% 2%,92% 7.5%,61% 7.5%)}

.welcome-note .primary-action{font:inherit;letter-spacing:normal;text-transform:none}

/* Decoded image elements make each visual state an atomic swap. */
.drawer-open-overlay,.drawer-open-overlay.art-ready,.career-open.art-ready,.tutoring-open.art-ready{background-image:none;background-color:transparent}
.drawer-raster{position:absolute;display:block;max-width:none;pointer-events:none;user-select:none;height:400%;top:-122%;object-fit:fill}
.career-open .drawer-raster{width:334.448161%;left:-125.75251%}
.tutoring-open .drawer-raster{width:308.641975%;left:-206.48148%}
.model-visual .model-raster{position:absolute;display:block;max-width:none;width:243.902439%;height:222.222222%;left:-4.878049%;top:-106.666667%;object-fit:fill;pointer-events:none}
/* Use the smooth centre of the photographed stock: no folds or rough edges. */
.cv-document,.is-tutoring .dialog-paper,.is-welcome .dialog-paper{background-image:url('art/photo-writing-paper.webp?v=detail1');background-size:110% 150%;background-position:center 15%;background-color:#fbfaf6;border-radius:1px;clip-path:none}

.top-navigation-art{background-image:url('art/teacher-tutor-projects-navigation.webp?v=detail1')}

/* The Teacher overview uses the same clean, unfolded paper. */
.career-overview{background-size:110% 150%;background-position:center 15%;background-color:#fbfaf6}
.welcome-portrait{display:block;float:right;width:110px;height:110px;object-fit:cover;margin:0 0 18px 22px;border:6px solid #fffdf7;box-shadow:2px 3px 6px #211b1430;transform:rotate(3deg)}
.welcome-note:after{content:'';display:block;clear:both}.welcome-note .primary-action{clear:both}
@media(max-width:600px){.welcome-portrait{width:86px;height:86px;border-width:5px;margin:0 0 14px 16px}}
/* Only the display interior changes; the cabinet sides and drawer lip stay fixed. */
.model-visual[data-modelname=mews],.model-visual[data-modelname=green]{clip-path:polygon(3% 2%,95% 2%,95% 76%,3% 76%)}
.model-drawer-frame{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/photo-cabinet.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(2.2% 82.6%,42% 82.1%,42% 92.4%,2.2% 92.4%)}
/* Keep the open painted fronts as tall as their closed counterparts. */
.career-open,.tutoring-open{height:27%}
.drawer-raster{height:407.407407%;top:-124.259259%}
.career-open{clip-path:polygon(10% 0,92% 0,100% 43%,100% 94%,5% 94%,2% 91.5%,2% 43%)}
.tutoring-open{clip-path:polygon(0 0,84% 0,100% 43%,100% 94%,11.8% 94%,11.8% 91.5%,9.2% 91.5%,0 4%)}
.career-open .drawer-front-toggle,.tutoring-open .drawer-front-toggle{bottom:6%;height:51%}
.career-open .drawer-contents,.tutoring-open .drawer-contents{height:43%}

/* Two objects in the right-hand collection: the game butterfly and globe. */
.photo-ant-drawing{display:none}
.right-collection{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/butterfly-globe-collection.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(77.7% 50%,96.8% 50%,96.8% 85.3%,77.7% 85.3%)}
.specimen-butterfly{left:78%;top:55%;width:8.5%;height:21%;z-index:3}
.specimen-butterfly{left:78.2%;top:61.2%;width:8.1%;height:13.4%}
.right-collection{background-image:url('art/butterfly-globe-larger.webp?v=detail1')}
.specimen-butterfly{left:77.8%;top:53.3%;width:10.3%;height:21.2%}
.right-collection{background-image:url('art/jersey-tiger-square.webp?v=detail1')}
.specimen-butterfly{left:77.7%;top:53.2%;width:10.9%;height:16.8%}
.right-collection{background-image:url('art/jersey-tiger-centred.webp?v=detail1')}
.specimen-butterfly{left:80.7%;top:52.2%;width:10.9%;height:16.4%}

.specimen-powerzambia{left:88%;top:64.5%;width:7.7%;height:17%;z-index:3;border-radius:45%}
.is-game .dialog-bar:before{content:attr(data-game-title)}

.globe-zambia-art{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/zambia-facing-globe.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(87.9% 64.5%,96.3% 64.5%,96.3% 81.5%,87.9% 81.5%)}

/* Real cartographic outlines stay crisp at every display density. */
.globe-map-face{position:absolute;left:88.15%;top:65.55%;width:6.85%;height:10.275%;object-fit:contain;z-index:2;pointer-events:none;border-radius:50%}

/* Rotate the antique paper sphere while retaining its original brass hardware. */
.globe-antique-face{position:absolute;left:88.15%;top:65.55%;width:6.85%;height:10.275%;object-fit:contain;z-index:2;pointer-events:none;border-radius:50%}
.globe-antique-face{transform:rotate(10deg)}
.redrawn-globe{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/redrawn-antique-globe.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(91% 63.7%,93% 63.7%,93% 64.9%,95% 65.4%,96.4% 68.5%,96.4% 76%,94.3% 78%,94.3% 79%,95% 80%,95% 82.5%,88.5% 82.5%,88.5% 80%,90% 78.5%,90% 77%,87.4% 75%,87.4% 69.2%,88.5% 66.8%,91% 64.9%)}
.specimen-powerzambia{left:87.5%;top:63.8%;width:8.7%;height:18.2%}

/* Cover the entire opening, including the former zoo's rightmost edge. */
.model-visual[data-modelname=mews],.model-visual[data-modelname=green]{clip-path:polygon(3% 2%,100% 2%,100% 76.6%,3% 76.6%)}
.completion-year-art{position:absolute;inset:0;z-index:2;pointer-events:none;background:url('art/university-completion-years.webp?v=detail1') center/100% 100% no-repeat;clip-path:polygon(54.5% 75.3%,64.7% 75.3%,64.7% 79.1%,54.5% 79.1%,54.5% 75.3%,65.3% 77.3%,75.3% 77.3%,75.3% 80.1%,65.3% 80.1%,65.3% 77.3%,54.5% 75.3%)}

.completion-year-cambridge{clip-path:polygon(54.5% 75.3%,64.7% 75.3%,64.7% 79.1%,54.5% 79.1%)}
.completion-year-oxford{clip-path:polygon(65.3% 77.3%,75.3% 77.3%,75.3% 80.1%,65.3% 80.1%)}

.mobile-navigation a{display:inline-block;font:inherit;color:inherit}.drawer-contents[href]{display:block}.hotspot[href]{display:block}

/* Compact, consistent fallback navigation for smaller screens. */
.mobile-navigation{display:none}
@media(max-width:700px){
.mobile-navigation{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px 16px}
.mobile-navigation>a,.mobile-navigation>button{appearance:none;display:flex;align-items:center;justify-content:center;min-height:44px;margin:0;padding:9px 6px;border:1px solid #cfc7d1;border-radius:3px;background:#fbfaf6;color:#675071;font:13px/1.2 Georgia,serif;text-align:center;text-decoration:none;box-shadow:none;cursor:pointer}
.mobile-navigation>a:hover,.mobile-navigation>button:hover{background:#eee8f0}
.mobile-navigation>a:focus-visible,.mobile-navigation>button:focus-visible{outline:2px solid #675071;outline-offset:3px}
}

.mobile-library{display:none}

.mobile-close-label{display:none}

/* Preserve the photographed glyphs: treat only strongly blue ink inside text areas. */
.cabinet-render-filters{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}

