/* A staged collection: one lead spread, with the next chapter in view. */
.work { --spread-width: 76%; --spread-gap: 26px; background: #070a10; }
.work .work-sticky { padding: 101px 0 26px; overflow: visible; }
.work.scroll-gallery .work-sticky { height: 100svh; min-height: 0; display: flex; flex-direction: column; }
.work .work-heading-row { display: flex; justify-content: space-between; align-items: end; gap: 36px; flex: 0 0 auto; }
.work .work-heading-row .eyebrow { margin: 0 0 10px; font-size: 12px; line-height: 1.6; letter-spacing: .09em; color: #94a9c7; }
.work .work-heading-row h2 { margin: 0; max-width: none; font-size: clamp(32px, 3.5vw, 52px); line-height: 1.12; letter-spacing: -.045em; font-weight: 400; }
.work .work-heading-row h2 > span:not(.heading-stop) { font-family: inherit; font-style: normal; color: #879dbd; }
.work .work-intro { max-width: 295px; margin: 0; padding-bottom: 3px; color: #aebbd0; font-size: 16px; line-height: 1.7; }
.work .gallery-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 28px; flex: 0 0 auto; padding: 20px 0 18px; margin: 0; border: 0; }
.work .filters { display: flex; flex-wrap: wrap; gap: 9px 28px; }
.work .filters button { padding: 10px 0; font-size: 13px; line-height: 1.5; color: #8fa1bd; white-space: nowrap; }
.work .filters button.is-active, .work .filters button:hover { color: #eff5ff; }
.work .filters button::after { height: 1px; background: #8bb4fb; }
.work .gallery-instruction { display: block; font-size: 12px; line-height: 1.6; color: #8498b8; }
.work .project-ribbon { position: relative; display: flex; gap: var(--spread-gap); width: 100%; height: 550px; min-height: 0; padding: 0; margin: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; isolation: isolate; }
.work .project-ribbon::-webkit-scrollbar { display: none; }
.work .project-panel, .work .project-panel.is-active { position: relative; flex: 0 0 var(--spread-width); min-width: 0; height: 100%; overflow: hidden; background: #0a101b; border: 0; border-radius: 0; filter: none; scroll-snap-align: start; transition: none; }
.work .project-panel::before { content: none; }
.work .project-panel::after { content: ''; position: absolute; inset: 0; pointer-events: none; z-index: 2; background: linear-gradient(0deg, #070a10 0, #070a1000 47%); opacity: .9; }
.work .project-art { position: absolute; inset: 0 0 132px; min-width: 0; width: 100%; height: auto; overflow: hidden; transform: none; transition: transform 800ms cubic-bezier(.2,.7,.2,1), opacity 600ms; }
.work .project-art > svg { width: 100%; height: 100%; }
.work .project-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(0deg, #070a10 0%, transparent 42%), linear-gradient(90deg, #03091120, transparent 75%); pointer-events: none; }
.work .panel-select { position: absolute; z-index: 5; left: 0; top: 0; bottom: auto; width: 72px; height: 64px; color: #d7e7ff; padding: 0; cursor: pointer; background: transparent; text-align: left; }
.work .panel-number { position: absolute; top: 22px; left: 28px; font-size: 12px; line-height: 1.5; letter-spacing: .06em; color: #d0e2fe; }
.work .panel-spine, .work .panel-preview-hint { display: none; }
.work .panel-content { position: absolute; z-index: 4; left: 29px; right: 29px; bottom: 24px; min-width: 0; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); gap: 10px 35px; opacity: 1; transform: none; pointer-events: auto; transition: opacity 350ms ease; }
.work .panel-meta { grid-column: 1 / -1; display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 15px; margin: 0 0 3px; font-size: 12px; line-height: 1.5; letter-spacing: .025em; color: #a8bddb; }
.work .panel-meta > span:first-child { color: #c8d9f2; }
.work .project-status { display: inline; padding-left: 15px; margin: 0; border-left: 1px solid #496181; font-size: 12px; line-height: 1.5; letter-spacing: 0; color: #9faec4; }
.work .panel-content h3 { grid-column: 1; grid-row: 2 / 4; margin: 0; font-size: clamp(34px, 3.6vw, 52px); line-height: 1.04; font-weight: 400; letter-spacing: -.05em; color: #f1f5fb; }
.work .panel-content > p { grid-column: 2; margin: 0; max-width: 29ch; align-self: start; font-size: 17px; line-height: 1.65; color: #bfcde0; }
.work .project-open { grid-column: 2; display: flex; justify-content: space-between; align-items: center; gap: 20px; width: 100%; min-height: 41px; margin: 0; padding: 9px 0 6px; border: 0; border-bottom: 1px solid #4d668c; border-radius: 0; color: #dceaff; font-size: 14px; line-height: 1.4; text-align: left; background: transparent; }
.work .project-open::after { content: '↗'; font-size: 19px; line-height: 1; transition: transform .2s; }
.work .project-open:hover { color: #fff; border-color: #b2d0ff; }
.work .project-open:hover::after { transform: translate(2px,-2px); }
.work .project-open:focus-visible, .work .panel-select:focus-visible { outline: 2px solid #aacbff; outline-offset: -4px; }
.work .gallery-bottom, .work.scroll-gallery .gallery-bottom { display: flex; flex: 0 0 auto; align-items: center; justify-content: space-between; gap: 25px; padding: 19px 0 0; margin: 0; }
.work .gallery-bottom p { display: flex; gap: 23px; margin: 0; max-width: none; color: #91a8c8; font-size: 13px; line-height: 1.6; font-variant-numeric: tabular-nums; }
.work .gallery-bottom p span { display: inline; margin: 0; color: #d7e0ee; }
.work .gallery-controls { display: flex; align-items: center; gap: 28px; }
.work .gallery-controls button { display: flex; align-items: center; gap: 14px; min-height: 42px; padding: 8px 0; font-size: 13px; line-height: 1.5; color: #d2dff2; }
.work .gallery-controls button:disabled { opacity: .35; }
.work .gallery-controls button > span { font-size: 19px; line-height: 1; }

/* The artwork is deliberately evidence-aware: no charts imply measured results. */
.work .art-annotation { top: 24px; right: 27px; max-width: 60%; z-index: 3; font-size: 10px; line-height: 1.6; letter-spacing: .095em; color: #b2c9ea; text-align: right; }
.work .art-taxi { background: radial-gradient(ellipse at 62% 33%, #1d5799 0, #0d2748 53%, #081525 100%); }
.work .city-grid { inset: -125% -50%; background-size: 72px 72px; opacity: .53; transform: perspective(950px) rotateX(56deg) rotateZ(-24deg); }
.work .taxi-lines { top: -8%; left: 9%; width: 86%!important; height: 115%!important; opacity: .9; transform: perspective(900px) rotateX(18deg) rotateZ(-4deg); }
.work .taxi-data { top: 76px; right: 30px; gap: 32px; font-size: 11px; line-height: 1.6; color: #9bb9e1; }
.work .taxi-data b { font-size: 14px; font-weight: 400; color: #e0ecff; margin-top: 2px; }
.work .art-agent { background: radial-gradient(ellipse at 45% 27%, #264877 0, #0d213e 59%, #081421 100%); }
.work .art-agent svg { top: -5%; left: -4%; width: 94%; height: 107%; opacity: .9; transform: perspective(950px) rotateY(-19deg) rotateZ(-8deg) scale(.92); }
.work .agent-equation { top: 73px; right: 7%; font-size: clamp(62px, 8vw, 118px); line-height: 1; letter-spacing: -.07em; color: #c1d9ff65; }
.work .agent-equation span { font-size: .54em; color: #c1d9ff70; margin-left: .08em; }
.work .art-swift { background: radial-gradient(ellipse at 48% 0, #3b609752 0, #142b4a 36%, #091624 77%); }
.work .concert-ring { width: 610px; height: 310px; top: -25px; left: 47%; border-color: #a2c5f478; transform: translateX(-50%) perspective(700px) rotateX(40deg) rotateZ(-17deg); box-shadow: 0 0 54px #76b2ff16, inset 0 0 46px #8fbeff10; }
.work .ring-two { width: 470px; height: 235px; top: 12px; opacity: .7; }
.work .ring-three { width: 340px; height: 170px; top: 42px; opacity: .7; }
.work .concert-beam { left: 32%; top: -525px; width: 235px; transform: rotate(33deg); filter: blur(22px); opacity: .65; }
.work .swift-location { top: 74px; right: 30px; font-size: 11px; line-height: 1.8; color: #bbd1ef; }
.work .art-evals { background: radial-gradient(ellipse at 68% 0, #294a765c, #0d213c 46%, #081522); }
.work .eval-stack { top: 8%; left: 19%; width: 60%; max-width: 565px; font-size: 21px; transform: perspective(900px) rotateX(29deg) rotateY(-14deg) rotateZ(-9deg); }
.work .eval-stack div { padding: 11px 12px; gap: 28px; border-bottom-color: #92b7ee4a; }
.work .eval-stack span { font-size: 12px; opacity: .75; }
.work .eval-stack i { width: 52px; height: 2px; }
.work .art-playbook { background: radial-gradient(ellipse at 34% 5%, #234875, #0d2542 55%, #081725); }
.work .playbook-type { top: 1%; left: 16%; font-size: clamp(115px, 14vw, 205px); line-height: .77; transform: perspective(900px) rotateY(-14deg) rotateZ(-9deg); color: #d6e6ff; text-shadow: 6px 10px 0 #507fc21f; }
.work .playbook-type span { -webkit-text-stroke: 1px #aac9f2; }
.work .lecture-note { top: 82px; right: 31px; font-size: 11px; line-height: 1.8; color: #b8cceb; }

/* Desktop staging follows .is-active, without altering the application's scroll state. */
.work.scroll-gallery .project-ribbon { display: block; flex: 1 1 auto; height: auto; min-height: 0; overflow: hidden; scroll-snap-type: none; --current-spread: 0; --final-offset: 0%; }
.work.scroll-gallery .project-panel { position: absolute; left: var(--final-offset); top: 0; width: var(--spread-width); height: 100%; visibility: hidden; pointer-events: none; transform: translateX(calc((var(--spread-slot) - var(--current-spread)) * 100% + (var(--spread-slot) - var(--current-spread)) * var(--spread-gap))); transition: transform 750ms cubic-bezier(.22,.68,.18,1), left 750ms cubic-bezier(.22,.68,.18,1), opacity 450ms ease, visibility 750ms; }
.work.scroll-gallery .project-panel:nth-child(1 of .project-panel:not([hidden])) { --spread-slot: 0; }
.work.scroll-gallery .project-panel:nth-child(2 of .project-panel:not([hidden])) { --spread-slot: 1; }
.work.scroll-gallery .project-panel:nth-child(3 of .project-panel:not([hidden])) { --spread-slot: 2; }
.work.scroll-gallery .project-panel:nth-child(4 of .project-panel:not([hidden])) { --spread-slot: 3; }
.work.scroll-gallery .project-panel:nth-child(5 of .project-panel:not([hidden])) { --spread-slot: 4; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(1 of .project-panel:not([hidden]))) { --current-spread: 0; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(2 of .project-panel:not([hidden]))) { --current-spread: 1; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(3 of .project-panel:not([hidden]))) { --current-spread: 2; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(4 of .project-panel:not([hidden]))) { --current-spread: 3; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(5 of .project-panel:not([hidden]))) { --current-spread: 4; }
.work.scroll-gallery .project-panel.is-active,
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(1 of .project-panel:not([hidden]))) > .project-panel:nth-child(2 of .project-panel:not([hidden])),
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(2 of .project-panel:not([hidden]))) > .project-panel:nth-child(3 of .project-panel:not([hidden])),
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(3 of .project-panel:not([hidden]))) > .project-panel:nth-child(4 of .project-panel:not([hidden])),
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-child(4 of .project-panel:not([hidden]))) > .project-panel:nth-child(5 of .project-panel:not([hidden])) { visibility: visible; pointer-events: auto; }
.work.scroll-gallery .project-panel:not(.is-active) .project-art { inset: 0; transform: scale(1.05); opacity: .57; }
.work.scroll-gallery .project-panel:not(.is-active)::after { background: linear-gradient(0deg, #050a13 0%, #050a1320 80%); opacity: 1; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-content { opacity: 0; pointer-events: none; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-select { width: 100%; height: 100%; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-spine { display: block; position: absolute; left: 26px; top: auto; bottom: 78px; width: 230px; color: #e3ecfa; font-size: 28px; line-height: 1.16; font-weight: 400; letter-spacing: -.035em; writing-mode: horizontal-tb; transform: none; opacity: 1; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-preview-hint { display: flex; justify-content: space-between; align-items: center; gap: 16px; position: absolute; left: 26px; bottom: 30px; width: 215px; max-width: 28%; color: #93accf; font-size: 12px; line-height: 1.5; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-preview-hint > span { font-size: 19px; }
.work.scroll-gallery .project-panel:not(.is-active) .art-annotation,
.work.scroll-gallery .project-panel:not(.is-active) .taxi-data,
.work.scroll-gallery .project-panel:not(.is-active) .swift-location,
.work.scroll-gallery .project-panel:not(.is-active) .lecture-note { opacity: 0; }
.work.scroll-gallery .project-panel:not(.is-active) .panel-select:hover { background: #7aa9f50b; }

/* At the end of a filtered collection, the previous chapter becomes the preview. */
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) { --final-offset: 24%; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) > .project-panel:nth-last-child(2 of .project-panel:not([hidden])) { visibility: visible; pointer-events: auto; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) > .project-panel:nth-last-child(2 of .project-panel:not([hidden])) .panel-spine { left: auto; right: 25px; text-align: right; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) > .project-panel:nth-last-child(2 of .project-panel:not([hidden])) .panel-number { left: auto; right: 25px; }
.work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) > .project-panel:nth-last-child(2 of .project-panel:not([hidden])) .panel-preview-hint { left: auto; right: 25px; }
.work.scroll-gallery .project-ribbon:not(:has(> .project-panel:nth-child(2 of .project-panel:not([hidden])))) { --spread-width: 100%; --final-offset: 0%; }
.work:not(.scroll-gallery) .project-panel, .work:not(.scroll-gallery) .project-panel.is-active { flex: 0 0 var(--spread-width); }

@media (min-width: 900px) and (max-height: 790px) {
  .work .work-sticky { padding-top: 100px; padding-bottom: 18px; }
  .work .work-heading-row h2 { font-size: 37px; }
  .work .work-heading-row .eyebrow { margin-bottom: 7px; font-size: 11px; }
  .work .work-intro { font-size: 14px; max-width: 300px; }
  .work .gallery-toolbar { padding-top: 12px; padding-bottom: 12px; }
  .work .filters button { padding-block: 8px; }
  .work .panel-content { bottom: 19px; gap: 8px 28px; }
  .work .panel-content h3 { font-size: 39px; }
  .work .panel-content > p { font-size: 16px; line-height: 1.6; }
  .work .project-open { font-size: 13px; min-height: 38px; }
  .work .gallery-bottom { padding-top: 12px; }
  .work .project-art { bottom: 124px; }
  .work .concert-ring { top: -61px; }
  .work .ring-two { top: -19px; }
  .work .ring-three { top: 13px; }
  .work .eval-stack { top: 3%; font-size: 18px; }
  .work .eval-stack div { padding-block: 8px; }
  .work .playbook-type { font-size: 153px; }
}
@media (min-width: 900px) and (max-width: 1150px) {
  .work { --spread-width: 80%; --spread-gap: 21px; }
  .work .work-heading-row { gap: 25px; }
  .work .work-heading-row h2 { font-size: 36px; }
  .work .work-intro { max-width: 230px; font-size: 14px; }
  .work .filters { gap: 18px; }
  .work .gallery-instruction { display: none; }
  .work .panel-content { left: 24px; right: 24px; gap: 9px 21px; }
  .work .panel-content h3 { font-size: 38px; }
  .work .panel-content > p { font-size: 16px; }
  .work .project-status { font-size: 11px; }
  .work.scroll-gallery .project-ribbon:has(> .is-active:nth-last-child(1 of .project-panel:not([hidden]))) { --final-offset: 20%; }
  .work.scroll-gallery .project-ribbon:not(:has(> .project-panel:nth-child(2 of .project-panel:not([hidden])))) { --final-offset: 0%; }
  .work.scroll-gallery .project-panel:not(.is-active) .panel-spine { font-size: 20px; width: 115px; left: 17px; }
  .work.scroll-gallery .project-panel:not(.is-active) .panel-preview-hint { left: 17px; width: 115px; max-width: none; }
}
@media (max-width: 899px) {
  .work { --spread-width: 87%; --spread-gap: 22px; }
  .work .work-sticky { padding-top: 78px; padding-bottom: 45px; }
  .work .work-heading-row { display: block; }
  .work .work-heading-row h2 { font-size: clamp(35px, 5.4vw, 46px); }
  .work .work-intro { margin-top: 18px; max-width: 440px; font-size: 16px; }
  .work .gallery-toolbar { padding-top: 19px; padding-bottom: 20px; }
  .work .filters { gap: 8px 24px; }
  .work .gallery-instruction { display: none; }
  .work .project-ribbon { width: calc(100% + var(--gutter)); margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); height: 545px; }
  .work .project-panel { min-height: 0; }
  .work .project-art { bottom: 174px; }
  .work .panel-content { left: 24px; right: 24px; bottom: 24px; grid-template-columns: 1fr; gap: 10px; }
  .work .panel-meta { margin-bottom: 1px; }
  .work .panel-content h3 { grid-column: 1; grid-row: auto; font-size: 39px; line-height: 1.08; }
  .work .panel-content > p { grid-column: 1; font-size: 17px; max-width: none; }
  .work .project-open { grid-column: 1; margin-top: 5px; font-size: 14px; }
  .work .art-annotation { top: 24px; right: 22px; font-size: 9px; }
  .work .playbook-type { font-size: 169px; top: 4%; left: 14%; }
  .work .eval-stack { width: 75%; left: 11%; top: 9%; font-size: 20px; }
  .work .eval-stack div { gap: 18px; padding-block: 10px; }
  .work .taxi-data, .work .swift-location, .work .lecture-note { right: 24px; }
  .work .agent-equation { font-size: 85px; top: 82px; }
  .work .gallery-bottom p { font-size: 13px; gap: 15px; }
}
@media (max-width: 599px) {
  .work { --spread-width: 90%; --spread-gap: 15px; }
  .work .work-sticky { padding-top: 64px; padding-bottom: 40px; }
  .work .work-heading-row .eyebrow { font-size: 12px; margin-bottom: 17px; }
  .work .work-heading-row h2 { font-size: 39px; line-height: 1.12; max-width: 345px; }
  .work .work-intro { margin-top: 18px; font-size: 16px; line-height: 1.75; max-width: 300px; }
  .work .gallery-toolbar { padding-top: 18px; padding-bottom: 19px; }
  .work .filters { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: 5px 21px; }
  .work .filters button { padding: 8px 0; font-size: 13px; }
  .work .project-ribbon { height: 584px; }
  .work .project-art { bottom: 220px; }
  .work .project-panel::after { background: linear-gradient(0deg, #070a10 5%, transparent 64%); }
  .work .panel-content { left: 21px; right: 21px; bottom: 20px; gap: 10px; }
  .work .panel-meta { display: block; font-size: 12px; line-height: 1.6; margin: 0 0 2px; }
  .work .project-status { display: block; padding: 0; margin: 4px 0 0; border: 0; font-size: 12px; line-height: 1.55; }
  .work .panel-content h3 { font-size: 35px; letter-spacing: -.04em; }
  .work .panel-content > p { font-size: 16px; line-height: 1.65; }
  .work .project-open { min-height: 44px; font-size: 14px; margin-top: 5px; }
  .work .panel-number { top: 21px; left: 22px; }
  .work .art-annotation { top: 24px; right: 19px; max-width: 69%; font-size: 8px; }
  .work .taxi-data { top: 65px; right: 21px; gap: 15px; font-size: 10px; }
  .work .taxi-data b { font-size: 12px; }
  .work .taxi-lines { top: 2%; left: -6%; width: 115%!important; }
  .work .agent-equation { right: 9%; top: 80px; font-size: 76px; }
  .work .art-agent svg { top: 3%; left: -35%; width: 140%; }
  .work .concert-ring { left: 42%; width: 480px; height: 260px; top: -20px; }
  .work .ring-two { width: 365px; height: 200px; top: 7px; }
  .work .ring-three { width: 250px; height: 135px; top: 39px; }
  .work .swift-location { top: 61px; right: 20px; font-size: 10px; }
  .work .eval-stack { top: 16%; left: 8%; width: 82%; font-size: 15px; }
  .work .eval-stack div { padding: 12px 6px; gap: 13px; }
  .work .eval-stack span { font-size: 10px; }
  .work .eval-stack i { width: 26px; }
  .work .playbook-type { font-size: 146px; left: 10%; top: 8%; }
  .work .lecture-note { top: 70px; right: 18px; font-size: 9px; }
  .work .gallery-bottom, .work.scroll-gallery .gallery-bottom { align-items: flex-start; padding-top: 17px; gap: 18px; }
  .work .gallery-bottom p { display: block; max-width: 180px; font-size: 12px; }
  .work .gallery-bottom p span { display: block; margin-top: 4px; line-height: 1.55; }
  .work .gallery-controls { gap: 18px; padding-top: 0; }
  .work .gallery-controls button { font-size: 12px; gap: 8px; }
  .work .gallery-controls button > span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .work .project-panel, .work .project-art, .work .panel-content, .work .project-open::after { transition: none!important; }
}

/* The supplied event poster anchors the teaching chapter. */
.work .art-playbook{background:radial-gradient(ellipse at 52% 46%,#173f62,#080e18 65%)}
.work .playbook-poster-art{position:absolute;left:38%;top:3%;width:auto;height:112%;max-width:none;object-fit:contain;transform:perspective(1000px) rotateY(-11deg) rotateZ(7deg);box-shadow:15px 15px 45px #0009;border:1px solid #ffffff33}
.work .project-panel.is-active .project-art{transform:perspective(1100px) rotateX(var(--art-tilt-y,0deg)) rotateY(var(--art-tilt-x,0deg));transform-origin:50% 50%;transition:transform .5s cubic-bezier(.2,.7,.2,1),opacity .6s}
@media(max-width:899px){.work .playbook-poster-art{left:26%;height:104%;top:9%}}
@media(max-width:599px){.work .playbook-poster-art{left:22%;top:12%;height:105%}.work .art-playbook .lecture-note{display:none}}
html.reduced-motion .work .project-panel.is-active .project-art{transform:none}
