@font-face{font-family:Nunito;src:url('/assets/fonts/NunitoSans.ttf') format('truetype');font-weight:200 1000;font-display:swap}:root{color-scheme:light;--bg:#faf7f4;--text:#29272c;--body:#60584f;--accent:#dc4032;--line:#d8cec5}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg) url('/assets/paper.svg');color:var(--body);font:18px/1.65 Nunito,'Trebuchet MS',Arial,sans-serif}h1,h2,h3,strong{color:var(--text)}a{color:inherit;text-underline-offset:4px;text-decoration-thickness:1px}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:6px}button{font:inherit}::selection{background:#ffd0c5;color:#29272c}.wrap{width:calc(100% - 120px);max-width:1320px;margin-inline:auto}.skip{position:fixed;top:-100px;left:20px;z-index:30;padding:12px 20px;background:var(--text);color:#fff}.skip:focus{top:10px}.header{height:116px;display:flex;align-items:center;justify-content:space-between;gap:35px}.brand{display:flex;align-items:center;gap:16px;text-decoration:none;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;font-size:27px;letter-spacing:-.09em;font-weight:900;box-shadow:0 2px 3px #c9bbb66b}.brand-name{font-size:14px;font-weight:900;text-transform:uppercase;letter-spacing:.09em}nav{display:flex;align-items:center;gap:25px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}nav a{padding:5px 0;text-decoration:none;border-bottom:3px solid transparent}nav a[aria-current=page]{color:var(--accent);border-color:var(--accent)}.menu-toggle{display:none}main.wrap{max-width:1200px}.hero{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:95px;align-items:start;padding:120px 0 130px}.hero h1{font-size:39px;line-height:1.32;font-weight:900;letter-spacing:-.025em;margin:0 0 28px}.hero h1 a{color:var(--text);text-decoration-thickness:3px;text-decoration-style:solid;text-underline-offset:6px}.hero-intro{font-size:21px;line-height:1.6;margin:0 0 34px}.hero-note{font-size:13px;color:#796f65;margin:24px 0 0}.actions{display:flex;gap:30px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;padding:13px 20px;border-radius:3px;background:var(--text);color:#fff;font-size:13px;text-transform:uppercase;font-weight:900;letter-spacing:.08em;text-decoration:none}.button:hover{background:var(--accent);color:#fff}.button span,.secondary-link span{display:none}.secondary-link{font-size:13px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;text-decoration:none}.portrait{width:265px;max-width:100%;margin:0;transform:rotate(4deg);padding:10px 10px 17px;background:#fff;border-radius:3px;box-shadow:0 8px 18px #65574b20;text-align:center}.portrait img{display:block;width:100%;height:auto;border-radius:2px}.portrait figcaption{font-size:12px;font-style:italic;color:#73685b;margin:13px 0 0;line-height:1.5}.split-section,.professional-section,.review-section{position:relative;padding:110px 0}.split-section:before,.professional-section:before,.review-section:before{content:'';position:absolute;top:0;left:0;right:0;height:9px;opacity:.65;background:repeating-linear-gradient(45deg,transparent 0 3px,#c5b9ad 3px 4px,transparent 4px 6px),repeating-linear-gradient(-45deg,transparent 0 3px,#c5b9ad 3px 4px,transparent 4px 6px)}.split-section{display:grid;grid-template-columns:1fr 2fr;gap:70px}h2{font-size:34px;line-height:1.25;font-weight:900;letter-spacing:-.025em;margin:0 0 25px}h3{font-size:24px;line-height:1.4;font-weight:800;letter-spacing:-.015em;margin:0 0 15px}.section-note{font-size:15px;line-height:1.7;max-width:260px;color:#7a6d62}.work-item{display:grid;grid-template-columns:52px minmax(0,1fr);gap:23px;margin-bottom:38px}.work-icon{width:52px;height:52px;border-radius:8px;display:grid;place-items:center;background:#425ac6;color:#fff;font-weight:900;font-size:22px}.work-icon-1{background:#755198}.work-icon-2{background:#208995}.work-item p{margin:10px 0 0;font-size:18px;line-height:1.6}.work-item details summary{list-style:none;cursor:pointer;color:var(--text);font-size:23px;font-weight:850;line-height:1.4;display:flex;align-items:start;gap:12px}.work-item details summary::-webkit-details-marker{display:none}.work-item summary>span{text-decoration:underline;text-underline-offset:4px}.work-item summary:after{content:'+';display:inline-grid;place-items:center;border:1px dashed #857b6f;width:23px;height:23px;flex-shrink:0;margin-top:4px;font-size:20px;font-weight:400;border-radius:2px;color:var(--body)}.work-item details[open] summary:after{content:'−'}.work-detail{padding:5px 0 16px}.work-detail p{font-size:16px}.work-detail .text-link{display:inline-block;margin-top:15px;font-size:16px}.professional-section{text-align:center}.section-intro{font-size:21px;margin:0 auto 55px;max-width:700px}.profile-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;text-align:left}.profile-grid article{padding:20px 0}.profile-grid p{font-size:17px;margin:0 0 20px}.mini-label{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:850;color:#7d6e62;display:block;margin-bottom:16px}.text-link{font-size:17px;font-weight:700}.text-link span{font-weight:400;font-size:17px;margin-left:6px}.expertise-row{display:grid;grid-template-columns:25px 1fr 20px;column-gap:15px;row-gap:8px;text-decoration:none;padding:0 0 35px}.expertise-row h3{margin:0;font-size:23px}.expertise-row p{grid-column:2;grid-row:2;margin:0;font-size:18px}.expertise-row .arrow{grid-column:3;grid-row:1}.number{font-size:12px;color:var(--accent);font-weight:900;line-height:2.5}.arrow{color:var(--accent);font-size:23px}.review-section{text-align:center}.review-section p{max-width:700px;margin:0 auto 30px;font-size:20px}.footer{max-width:1200px;background:#eee7e1;border-radius:5px;text-align:center;padding:65px 35px 35px;margin:0 auto 50px}.footer h2{font-size:31px;margin-bottom:25px}.footer p{font-size:18px;margin:0 0 20px}.footer-name{font-weight:800}.footer .prototype-note{font-size:13px;color:#786c61}.prototype-note a{display:inline-block;margin-top:6px}.page-title{padding:70px 0 45px;max-width:1000px}.breadcrumbs{font-size:13px;margin-bottom:30px;color:#897c70}.eyebrow{display:none}.page-title h1{font-size:46px;line-height:1.25;letter-spacing:-.03em;font-weight:900;margin:0 0 25px}.page-title .lead{font-size:22px;line-height:1.65;max-width:850px}.content{padding-bottom:100px}.content h2{font-size:30px;margin:40px 0 22px}.content p{max-width:800px}.content ul,.content ol{padding-left:24px;max-width:800px}.content li{margin-bottom:12px}.notice{font-size:15px;background:#eee6dd;border-left:3px solid #c3ad98;padding:18px 22px;color:#6a5f53;max-width:950px;margin:25px 0 45px}.two-col{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.two-col .portrait{margin:35px auto}.timeline{padding-top:20px}.timeline article{padding-bottom:35px}.timeline h3{font-size:24px;margin-bottom:10px}.timeline p{margin:0}.tag{font-size:12px;letter-spacing:.05em;color:#897464;font-weight:750;display:block;margin-bottom:16px}.case-grid{display:block}.case{margin:30px 0 65px}.case-body{display:grid;grid-template-columns:200px minmax(0,1fr);column-gap:45px}.case-body .tag{grid-column:1;grid-row:1/4}.case-body h3,.case-body p,.case-body .text-link{grid-column:2}.case-body p{margin:0 0 20px}.case-visual{display:none}.cv-section{display:grid;grid-template-columns:1fr 1.4fr;gap:70px;padding:40px 0 70px}.content .cv-section h2{margin:0}.cv-entries h3{font-size:25px}.cv-entries article{margin-bottom:40px}.document{display:grid;grid-template-columns:130px minmax(0,1fr) 25px;gap:25px;padding:25px 0 45px}.document h3{font-size:25px}.document h3 .text-link{font:inherit}.document p{margin:0}.filters{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 40px}.filters button{padding:8px 14px;color:var(--body);border:1px solid #d1c3b5;border-radius:3px;background:transparent;cursor:pointer;font-size:15px}.filters button[aria-pressed=true]{color:#fff;background:var(--accent);border-color:var(--accent)}.contact-block{display:grid;grid-template-columns:1fr 1fr;gap:60px;padding:60px 0;margin-top:50px;border-top:1px solid var(--line)}.contact-block h2{margin:0}.contact-block p{margin:0 0 25px}.contact-placeholder{padding:15px 0 30px}.contact-placeholder strong{display:block;font-size:12px;letter-spacing:.08em;margin-bottom:10px}.review-list section{padding:15px 0 30px}.review-list section h2{font-size:25px}.muted{color:#796c60}[hidden]{display:none!important}
@media(max-width:1150px){.wrap{width:calc(100% - 70px)}nav{gap:16px;font-size:11px}.brand-name{font-size:12px}.hero{gap:55px;grid-template-columns:minmax(0,1fr) 235px;padding-top:90px}.hero h1{font-size:34px}.portrait{width:235px}.hero-intro{font-size:19px}.split-section{gap:40px;grid-template-columns:1fr 2fr}.profile-grid{gap:25px}.two-col{gap:40px}.footer{width:calc(100% - 70px)}}
@media(max-width:800px){.wrap{width:calc(100% - 48px)}body{font-size:18px}.header{height:100px;position:relative}.brand-name{font-size:12px;letter-spacing:.04em}.brand-mark{width:43px;height:43px;font-size:24px}.brand{gap:12px}.menu-toggle{display:flex;flex-direction:column;gap:7px;justify-content:center;align-items:center;width:44px;height:44px;background:none;border:0}.menu-toggle span{display:block;width:25px;height:2px;background:var(--body);transition:transform .2s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4.5px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4.5px) rotate(-45deg)}nav{display:none;position:absolute;top:88px;left:-24px;right:-24px;padding:25px;background:var(--bg);box-shadow:0 8px 12px #8a796315;z-index:20;flex-direction:column;align-items:flex-start;gap:18px;font-size:14px}nav.open{display:flex}.hero{display:block;text-align:center;padding:55px 0 80px}.hero h1{font-size:27px;line-height:1.35;letter-spacing:-.02em;margin-bottom:25px}.hero h1 a{text-decoration-thickness:2px;text-underline-offset:4px}.hero-intro{font-size:18px;line-height:1.6;margin-bottom:30px}.hero-note{font-size:12px;margin-top:25px}.hero>.portrait{display:none}.actions{justify-content:center;gap:25px}.button,.secondary-link{font-size:12px}.button{padding:12px 16px}.split-section{display:block;padding:65px 0}.split-section>div:first-child{margin-bottom:35px}.split-section h2{text-align:center}.section-note{text-align:center;max-width:none;font-size:13px}.work-item{grid-template-columns:36px minmax(0,1fr);gap:15px;margin-bottom:35px}.work-icon{width:36px;height:36px;border-radius:6px;font-size:16px}.work-item details summary{font-size:20px;gap:9px}.work-item summary:after{width:20px;height:20px;font-size:18px;margin-top:4px}.work-item p{font-size:17px}.work-detail p{font-size:15px}h2{font-size:28px}h3{font-size:22px}.professional-section,.review-section{padding:65px 0}.section-intro{font-size:18px;margin-bottom:35px}.profile-grid{grid-template-columns:1fr;gap:22px;text-align:center}.profile-grid article{padding:10px 0}.profile-grid h3{font-size:23px}.profile-grid p{font-size:17px}.mini-label{font-size:11px}.review-section p{font-size:18px}.footer{width:calc(100% - 32px);padding:40px 20px 25px;margin-bottom:20px}.footer h2{font-size:26px}.footer p{font-size:16px}.footer .prototype-note{font-size:12px}.page-title{padding:40px 0 25px}.page-title h1{font-size:33px;overflow-wrap:anywhere}.page-title .lead{font-size:20px}.breadcrumbs{font-size:12px;margin-bottom:25px}.content{padding-bottom:65px}.content h2{font-size:26px;margin:30px 0 20px}.notice{font-size:14px;margin-bottom:30px;padding:15px 17px}.two-col{grid-template-columns:1fr;gap:20px}.two-col .portrait{margin:15px auto 35px;width:225px}.content,.two-col>*,.cv-entries,.case-body,.document>*,.contact-block>*{min-width:0}.content h2,.content h3{overflow-wrap:anywhere;hyphens:auto}.timeline h3{font-size:22px}.case-body{display:block}.case-body h3{font-size:24px}.case{margin-bottom:45px}.expertise-row h3{font-size:21px}.expertise-row p{font-size:17px}.expertise-row{grid-template-columns:22px minmax(0,1fr) 20px;gap:10px;padding-bottom:30px}.document{grid-template-columns:minmax(0,1fr) 20px;gap:10px;padding-bottom:35px}.document>.tag{grid-column:1/-1}.document h3{font-size:22px}.document p{font-size:17px}.filters{gap:10px}.filters button{font-size:14px;padding:7px 10px}.cv-section{grid-template-columns:1fr;gap:20px;padding:20px 0 35px}.cv-entries h3{font-size:23px}.contact-block{grid-template-columns:1fr;gap:20px;margin-top:30px;padding-top:35px}.review-list section h2{font-size:23px}.text-link{font-size:16px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.menu-toggle span{transition:none}}
/* Temporary review controls float above the retained page composition. */
.photo-dev-launch{position:fixed;right:22px;bottom:max(20px,env(safe-area-inset-bottom));z-index:25;background:#fff;color:var(--text);border:1px solid #d8cbbf;border-radius:30px;padding:10px 17px;box-shadow:0 4px 20px #4b352222;font-size:13px;font-weight:800;cursor:pointer}.photo-dev-launch>span,.photo-dev-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:#9a482d}.photo-dev-launch>span{background:#fae6d9;border-radius:4px;padding:3px 5px;margin-right:5px}.photo-dialog{border:0;border-radius:10px;background:var(--bg);color:var(--body);padding:0;width:min(94vw,800px);max-width:none;max-height:94dvh;box-shadow:0 18px 80px #0005;overflow:auto}.photo-dialog::backdrop{background:#28262caa;backdrop-filter:blur(4px)}.photo-dialog-inner{padding:20px 24px}.photo-dialog-header{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:15px;background:transparent}.photo-dialog h2{font-size:23px;margin:4px 0 0}.photo-close{border:0;background:transparent;color:var(--body);font-size:32px;line-height:1;width:44px;height:44px;cursor:pointer}.photo-stage{position:relative;display:flex;justify-content:center;align-items:center;min-height:200px;background:#eee8e2;border-radius:5px;overflow:hidden;touch-action:pan-y pinch-zoom}.photo-stage>img{display:block;width:100%;height:min(57dvh,620px);object-fit:contain;user-select:none}.photo-arrow{position:absolute;top:calc(50% - 25px);width:48px;height:50px;border:1px solid #fff8;background:#fffE;color:#37312d;font:40px/1 Arial,sans-serif;border-radius:5px;cursor:pointer;box-shadow:0 2px 7px #0002}.photo-prev{left:10px}.photo-next{right:10px}.photo-dialog-controls{display:flex;align-items:center;justify-content:center;gap:12px 18px;flex-wrap:wrap;padding-top:12px}.photo-dialog-controls>p:first-child{width:100%;font-size:14px;text-align:center;margin:0}.photo-dots{display:flex;gap:7px}.photo-dots>button{width:32px;height:32px;border:1px solid #b4a495;border-radius:50%;color:var(--body);background:transparent;cursor:pointer;font-size:13px}.photo-dots>button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff}.photo-reset{border:0;text-decoration:underline;text-underline-offset:3px;background:transparent;font-size:12px;color:var(--body);cursor:pointer}.photo-dialog-controls>.photo-local-note{width:100%;font-size:12px;text-align:center;margin:0}.portrait img{aspect-ratio:3/4;object-fit:cover}.photo-dialog .button{border:0;cursor:pointer}@media(max-width:800px){.photo-dev-launch{font-size:12px;right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:9px 12px}.photo-dialog{width:96vw;max-height:96dvh}.photo-dialog-inner{padding:14px}.photo-dialog h2{font-size:20px}.photo-stage>img{height:54dvh}.photo-arrow{width:40px;height:46px;font-size:36px}.photo-dialog-controls{gap:10px}.photo-local-note{line-height:1.5}}

/* Sourced reference catalogue, following the existing open editorial layout. */
.catalog-checked,.catalog-count{font-size:.85rem;color:var(--muted,#666);margin:1rem 0}
.catalog-downloads{display:flex;align-items:center;flex-wrap:wrap;gap:1rem;margin:2rem 0}
.catalog-downloads span{flex-basis:100%;font-size:.85rem;color:#666}
.catalog-search{display:block;max-width:650px;font-weight:800;margin:1.5rem 0 0}
.catalog-search input{display:block;width:100%;font:inherit;font-weight:400;padding:.8rem 1rem;border:1px solid #bfb9b3;background:transparent;border-radius:4px;margin-top:.5rem;color:inherit}
.standard-card{display:grid;grid-template-columns:minmax(145px,1fr) 3fr;gap:2rem;border-top:1px solid #d8d0c9;padding:2rem 0}
.standard-card[hidden]{display:none}
.standard-code{font-size:.85rem;font-weight:800;letter-spacing:.03em;padding-top:.35rem;overflow-wrap:anywhere}
.standard-card h2{font-size:1.5rem;line-height:1.3;margin:0 0 .7rem}
.standard-card p{margin:.5rem 0}
.standard-status{font-size:.85rem;font-weight:800;color:#4c6654}
.standard-status.archived{color:#a14332}
.standard-detail .two-col{margin:2rem 0}
.standard-detail a,.standard-detail li{overflow-wrap:anywhere}
.standard-detail section{min-width:0}
@media(max-width:650px){.standard-card{grid-template-columns:1fr;gap:.6rem}.standard-card h2{font-size:1.25rem}.catalog-downloads .button{width:100%;text-align:center}}
@media(max-width:800px){.hero>.portrait{display:block;width:205px;margin:42px auto 0}}

/* Source-backed contributions use the existing page rhythm. */
.source-note,.source-credit,.surname-note{font-size:15px;line-height:1.65;color:#75685c}.surname-note{border-left:2px solid var(--accent);padding-left:16px;margin:0 0 28px}.publication-content{max-width:940px}.publication-index{display:flex;flex-direction:row;align-items:center;position:static;flex-wrap:wrap;gap:12px 24px;margin:0 0 40px;padding:0;background:transparent;border:0;box-shadow:none;width:auto}.publication-index a{border:0;text-decoration:underline}.contribution{padding:38px 0;border-top:1px solid var(--line);scroll-margin-top:24px}.contribution h2{font-size:29px}.contribution p{max-width:75ch}.source-files{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin:25px 0}.source-files article{border-left:2px solid var(--line);padding-left:20px}.source-files h3{font-size:21px}.source-actions{display:flex;flex-wrap:wrap;gap:10px 20px;font-size:16px}.source-files p{font-size:16px}.publication-content a{overflow-wrap:anywhere}@media(max-width:650px){.source-files{grid-template-columns:1fr;gap:24px}.contribution h2{font-size:24px}.publication-index{font-size:12px;gap:12px 18px}.surname-note{font-size:14px}.contribution{padding:28px 0}}
