:root{color-scheme:light;--paper:#eeeee7;--ink:#20392d;--muted:#5f6a61;--forest:#192b22;--cream:#f2f0e5;--line:#c6cbc0;--timing:220ms;--ease:cubic-bezier(.2,.7,.2,1)}
*{box-sizing:border-box}html{font-size:16px}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible{outline:3px solid #b99d67;outline-offset:6px}.skip-link{position:fixed;top:1rem;left:1rem;transform:translateY(-180%);background:var(--paper);padding:1rem;z-index:20}.skip-link:focus{transform:none}.masthead{display:flex;justify-content:center;padding:34px 24px 0}.masthead a{display:block}.masthead img{display:block;width:126px;height:auto}main{max-width:1384px;margin:auto;padding:0 48px}.intro{text-align:center;padding:35px 0 39px}h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,3.5vw,3.65rem);font-weight:400;letter-spacing:-.04em;line-height:1.17;margin:0 0 20px}h1 em{font-weight:400}.eyebrow,.index,.discipline,.microcopy{font-family:Arial,Helvetica,sans-serif;text-transform:uppercase}.eyebrow{font-size:.75rem;letter-spacing:.24em;margin:0}.paths{display:grid;grid-template-columns:1fr 1fr;gap:20px}.path{position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:440px;padding:30px 36px 32px;overflow:hidden;text-decoration:none;color:var(--cream);background:var(--forest);border:1px solid #536154;transition:opacity var(--timing) var(--ease),border-color var(--timing),background-color var(--timing)}.path-image,.shade{position:absolute;inset:0;z-index:-2;pointer-events:none}.path-image{background:url('assets/labs-foliage.png') center/cover no-repeat;transition:transform var(--timing) var(--ease),filter var(--timing);filter:brightness(.8)}.shade{z-index:-1;background:linear-gradient(90deg,rgba(12,27,20,.76),rgba(12,27,20,.18)),linear-gradient(0deg,rgba(12,27,20,.72),transparent 80%)}.path-ab{background:#23392e}.path-top{display:flex;align-items:center;justify-content:space-between}.index{font-family:'Courier New',monospace;font-size:.8125rem;letter-spacing:.15em;color:#d0d6c6;transition:color var(--timing)}.registration{font-family:'Courier New',monospace;font-size:1.1rem;color:#8f9b87;font-weight:400}.path-content{margin-top:74px}h2{font-size:clamp(1.5rem,2.2vw,2rem);font-weight:400;letter-spacing:-.025em;line-height:1.3;margin:0 0 17px}h2 span{font-weight:650;letter-spacing:-.045em}.discipline{font-size:.75rem;line-height:1.65;letter-spacing:.10em;max-width:365px;min-height:40px;margin:0 0 19px;color:#d5d9cd}.description{font-family:Georgia,'Times New Roman',serif;font-size:1.2rem;line-height:1.5;max-width:340px;margin:0;color:#eeeee3}.path-bottom{margin-top:auto;padding-top:34px}.microcopy{font-family:'Courier New',monospace;font-size:.75rem;letter-spacing:.055em;line-height:1.5;margin:0 0 24px;opacity:0;transform:translateY(4px);transition:opacity var(--timing),transform var(--timing) var(--ease)}.enter{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #b9c4b04d;padding-top:19px;font-size:.875rem;letter-spacing:.03em}.enter span{font-size:1.4rem;line-height:1;transition:transform var(--timing) var(--ease)}.path:focus-visible,.path.is-visible{border-color:#b7bfa8}.path:focus-visible .microcopy,.path.is-visible .microcopy{opacity:1;transform:none}.path:focus-visible .enter span{transform:translateX(4px)}.paths:has(.path:focus-visible) .path:not(:focus-visible){opacity:.78}.path:focus-visible .path-image{transform:scale(1.018);filter:brightness(.95)}footer{max-width:1384px;margin:0 auto;padding:25px 48px 28px;display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.1em;color:var(--muted)}footer span:first-child{font-size:.75rem;letter-spacing:.15em}.transition-panel{position:fixed;z-index:50;background:#23392e;pointer-events:none;transform-origin:top left}.transition-panel.labs{background:#172c20 url('assets/labs-foliage.png') center/cover}.transition-panel::after{content:'';position:absolute;inset:0;background:#12261d55}.detail-page{min-height:100svh}.detail-header{max-width:1384px;margin:auto;padding:32px 48px;display:flex;align-items:center;justify-content:space-between}.detail-header img{width:90px;height:auto}.back{font-size:.875rem;text-underline-offset:5px;padding:12px 0}.ab-main{max-width:1000px;padding-top:90px;padding-bottom:120px}.ab-main h1{font-size:clamp(2.8rem,6vw,5rem);max-width:890px;margin:36px 0 48px}.ab-main .discipline{color:var(--ink);font-size:.875rem;max-width:600px;line-height:1.8}.ab-main .index{color:var(--muted)}.ab-main .microcopy{opacity:1;transform:none;color:var(--muted);margin-top:60px}
@media(hover:hover) and (pointer:fine){.path:hover{border-color:#b7bfa8}.path-ab:hover{background:#1d3126}.path:hover .microcopy{opacity:1;transform:none}.path:hover .enter span{transform:translateX(4px)}.path:hover .path-image{transform:scale(1.018);filter:brightness(.95)}.path:hover .index{color:#fff}.paths:has(.path:hover) .path:not(:hover):not(:focus-visible){opacity:.78}}
@media(min-width:1600px){.masthead{padding-top:50px}.intro{padding-top:42px;padding-bottom:48px}.path{min-height:500px}.path-content{margin-top:90px}}
@media(max-width:760px){main{padding:0 24px}.masthead{padding-top:28px}.masthead img{width:108px}.intro{padding:32px 4px}h1{font-size:2.5rem;max-width:400px;margin:0 auto 19px}.eyebrow{font-size:.75rem;letter-spacing:.15em}.paths{grid-template-columns:1fr;gap:16px}.path{padding:26px;min-height:440px}.path-content{margin-top:66px}h2{font-size:1.75rem}.discipline{min-height:0;max-width:320px}.description{max-width:320px}.path-bottom{padding-top:30px}.microcopy{letter-spacing:0;font-size:.75rem}.paths:has(.path:focus-visible) .path:not(:focus-visible){opacity:1}footer{padding:24px}.detail-header{padding:28px 24px}.ab-main{padding-top:55px;padding-bottom:70px}.ab-main h1{font-size:3rem}}
@media(max-width:360px){main{padding:0 16px}.path{padding:24px 20px}h2{font-size:1.5rem}.intro h1{font-size:2.15rem}.microcopy{font-size:.75rem;max-width:220px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.path-image,.microcopy,.enter span{transform:none!important}.transition-panel{display:none}}
/* AB photographic reference: keep the work objects visible and text in shadow. */
.path-ab .path-image{background-image:url('assets/ab-workspace.png');background-position:right center;filter:brightness(.85)}
.path-ab .shade{background:linear-gradient(90deg,rgba(12,27,20,.65),rgba(12,27,20,.12) 75%),linear-gradient(0deg,rgba(12,27,20,.60),transparent 45%)}
.transition-panel.ab{background:#172c20 url('assets/ab-workspace.png') right center/cover}
@media(max-width:760px){.path-ab .path-image{background-position:right center}.path-ab .shade{background:linear-gradient(90deg,rgba(12,27,20,.82),rgba(12,27,20,.30)),linear-gradient(0deg,rgba(12,27,20,.65),transparent 45%)}}
/* AB introduction and contact */
.ab-profile{max-width:1280px;padding-top:45px;padding-bottom:60px}.ab-brand{font-size:1.25rem;margin:18px 0 0}.ab-profile h1{max-width:1000px;margin:30px 0 54px;font-size:clamp(2.8rem,5.4vw,4.8rem)}.ab-introduction{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:start}.ab-copy p{font-size:1.0625rem;line-height:1.8;margin:0 0 22px;max-width:580px}.ab-photo{display:block;width:100%;height:520px;object-fit:cover;object-position:right center}.ab-contact{margin-top:35px;padding-top:28px;border-top:1px solid var(--line)}.ab-contact h2{font-family:Georgia,'Times New Roman',serif;font-size:1.65rem;line-height:1.35;max-width:450px;letter-spacing:-.025em}.contact-link{display:inline-flex;gap:35px;align-items:center;background:var(--ink);color:var(--cream);padding:16px 24px;margin-top:8px;text-decoration:none;font-size:1rem;transition:background-color 220ms}.contact-link:hover{background:#34533f}.contact-address{display:block;color:var(--muted);font-size:.875rem;margin-top:13px}.ab-profile .microcopy{margin-top:45px}
@media(max-width:760px){.ab-profile{padding-top:28px}.ab-profile h1{font-size:2.8rem;margin-bottom:32px}.ab-introduction{grid-template-columns:1fr;gap:32px}.ab-photo{height:auto;aspect-ratio:3/2;object-fit:cover}.ab-copy p{font-size:1rem}.ab-contact h2{font-size:1.5rem}}
/* AB: the selected photographic world remains the page background. */
.ab-immersive{background:#102018;color:#fff;isolation:isolate;min-height:100svh}
.ab-immersive::before{content:'';position:fixed;inset:0;z-index:-2;background:#102018 url('assets/ab-workspace.png') right center/cover no-repeat;pointer-events:none}
.ab-immersive::after{content:'';position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,20,14,.93) 0%,rgba(7,20,14,.83) 35%,rgba(7,20,14,.32) 66%,rgba(7,20,14,.10));pointer-events:none}
.ab-immersive .detail-header{max-width:none;padding:28px clamp(24px,5vw,88px);gap:24px}
.ab-immersive .detail-header img{filter:brightness(0) invert(1);width:90px}
.ab-immersive .back{color:#fff;line-height:1.5}
.ab-immersive .ab-profile{max-width:none;margin:0;padding:22px clamp(24px,5vw,88px) 36px}
.ab-immersive .ab-brand{color:#fff}
.ab-immersive .ab-profile h1{max-width:650px;font-size:clamp(2.4rem,3.7vw,3.6rem);line-height:1.12;margin:22px 0 30px;color:#fff}
.ab-immersive .ab-introduction{display:block;max-width:590px}
.ab-immersive .ab-copy p{color:#fff;font-size:1rem;line-height:1.7;margin-bottom:18px}
.ab-immersive .index,.ab-immersive .microcopy,.ab-immersive .contact-address,.ab-immersive footer{color:#e2e9df}
.ab-immersive .ab-contact{margin-top:26px;padding-top:22px;border-color:#ffffff45}
.ab-immersive .ab-contact h2{font-size:1.45rem;color:#fff}
.ab-immersive .contact-link{background:#f2f0e5;color:#173023}
.ab-immersive .contact-link:hover{background:#fff}
.ab-immersive footer{max-width:none;padding:22px clamp(24px,5vw,88px)}
@media(max-width:760px){.ab-immersive::before{background-position:78% center}.ab-immersive::after{background:rgba(7,20,14,.78)}.ab-immersive .detail-header{padding-top:24px}.ab-immersive .detail-header img{width:76px}.ab-immersive .back{font-size:.8rem;max-width:150px}.ab-immersive .ab-profile h1{font-size:2.5rem;margin-left:0;margin-right:0}.ab-immersive .ab-profile{padding-top:24px}.ab-immersive .ab-introduction{max-width:100%}}
