:root {
  font-family: "Courier New", Courier, monospace;
  color: #171717;
  --page-bg: #eee;
  --fresh-page-bg: var(--page-bg);
  background: var(--page-bg);
  font-size: 13px;
  font-synthesis: none;
  --accent: #0100FE;
  --media-caption-color: #999;
  --media-caption-size: 10px;
  /* Tracks measured from the 1462w reference; descendants use subgrid. */
  --page-gutter: clamp(24px, 2.53vw, 64px);
  --editorial-columns: minmax(154px, 162fr) minmax(16px, 32fr) minmax(116px, 118fr) minmax(20px, 32fr) minmax(210px, 230fr) minmax(24px, 40fr) minmax(0, 774fr);
  --project-font-size: clamp(12px, .88vw, 14px);
  --header-height: clamp(94px, 7.39vw, 130px);
  --content-offset: 46px;
  --project-row-height: 31px;
  /* Equal whitespace after the name and after the final project text line. */
  --project-region: calc(6 * var(--project-row-height) + var(--header-height) - var(--media-top));
  --media-top: 32px;
}
.white-project-page { --page-bg: #fff; }
* { box-sizing: border-box; scrollbar-width: none; }
*::-webkit-scrollbar { display: none; width: 0; height: 0; }
html { height: 100%; overflow: clip; overscroll-behavior: none; }
body { margin: 0; min-width: 1024px; height: 100dvh; overflow: clip; display: grid; grid-template-columns: var(--editorial-columns); padding-inline: var(--page-gutter); grid-template-rows: var(--header-height) minmax(0, 1fr); }
button, a { font: inherit; color: inherit; }
a, button { text-decoration: none; }
button { border: 0; padding: 0; background: none; text-align: left; cursor: pointer; }
button:disabled { cursor: default; }
:focus-visible { outline: none; }
/* Keyboard focus is monochrome; the accent is exclusively cursor proximity. */
a:focus-visible, button:focus-visible { font-weight: 700; }
[hidden] { display: none !important; }
p, h1, h2, h3, ol, dl, dd, figure { margin: 0; }
h1, h2, h3 { font-size: inherit; font-weight: 400; }
.header { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; align-items: start; padding-top: var(--media-top); font-size: 12px; }
.name { line-height: 18px; grid-column: 1 / 3; width: fit-content; white-space: nowrap; letter-spacing: .035em; }
.header-nav { grid-column: 3 / 6; display: flex; align-items: baseline; justify-content: space-between; margin-left: clamp(24px, 5.2vw, 100px); }
.unavailable { cursor: default; }
.archive { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; grid-template-rows: var(--content-offset) var(--project-region) minmax(0, 1fr); min-height: 0; }
.index { grid-column: 1 / 4; grid-row: 1 / -1; display: grid; grid-template-columns: subgrid; grid-template-rows: subgrid; min-height: 0; }
.index > .section-label { grid-column: 1 / -1; grid-row: 1; }
.index > nav { grid-column: 1 / -1; grid-row: 2; display: grid; grid-template-columns: subgrid; align-content: start; }
.section-label { font-weight: 700; font-size: 12px; line-height: 18px; letter-spacing: .035em; }
.project-list { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; padding: 0; list-style: none; }
.project-list > li { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; }
.project-row { --rest-opacity: .28; grid-column: 1 / -1; width: 100%; display: grid; grid-template-columns: subgrid; align-items: baseline; height: var(--project-row-height); font-size: var(--project-font-size); font-weight: 400; line-height: 18px; padding: 0; }
.project-name { grid-column: 1; }
.project-type { grid-column: 3; }
.project-row[aria-current="true"] { --rest-opacity: 1; font-weight: 400; }
.project-row:focus-visible { font-weight: 400; opacity: 1; }
.project-row[data-related="true"] { --rest-opacity: .76; }
.project-name { width: fit-content; white-space: nowrap; }
.project-type { font-size: 12px; }
.filters { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: subgrid; align-content: start; align-items: baseline; }
.filters > h2 { grid-column: 1; }
#filters { grid-column: 3; display: grid; justify-items: start; row-gap: 13px; min-width: 0; }
.filter-line { display: block; white-space: nowrap; }
.filter, .internal-filter, .work-filter { --rest-opacity: .28; font-size: 12px; line-height: 1.5; }
.filter[aria-pressed="true"], .internal-filter[aria-pressed="true"], .work-filter[aria-pressed="true"] { --rest-opacity: 1; }
/* Only the text glows. Proximity is continuous, including between nearby rows. */
[data-proximity], .project-row {
  color: color-mix(in srgb, #171717, var(--accent) calc(var(--proximity, 0) * 100%));
  opacity: calc(var(--rest-opacity, 1) + (1 - var(--rest-opacity, 1)) * var(--proximity, 0) * .8);
  transition: color 130ms ease-out, opacity 130ms ease-out;
}
.header [data-proximity] { --rest-opacity: .8; font-size: 12px; }
.decoration { grid-column: 1; grid-row: 3; pointer-events: none; align-self: start; margin-top: 64px; min-height: 0; overflow: clip; }
.decoration img { display: block; width: 96px; height: 96px; object-fit: contain; }
.info-column { grid-column: 5; grid-row: 2; min-width: 0; }
#project-info { font-size: var(--project-font-size); line-height: 1.35; }
.project-intro { margin-bottom: 25px; }
.project-facts > div { margin-bottom: 23px; }
.project-facts dt, .project-facts dd { display: inline; }
.project-facts dt::after { content: ' '; }
.stage { grid-column: 7; grid-row: 1 / -1; position: relative; height: 100dvh; margin-top: calc(-1 * var(--header-height)); padding-top: var(--media-top); padding-bottom: 26px; min-width: 0; overflow-y: auto; overflow-x: clip; overscroll-behavior: none; scrollbar-gutter: auto; scroll-behavior: auto; }
#media-stage { min-height: 100%; }
.composition { display: grid; gap: 20px; align-items: start; padding-bottom: 8px; }
.media-item { min-width: 0; }
.media-frame { aspect-ratio: var(--ratio); overflow: hidden; }
.media-frame img, .media-frame video { display: block; width: 100%; height: 100%; object-fit: var(--fit, cover); object-position: var(--position, center); }
figcaption { font-size: 11px; line-height: 1.5; margin-top: 12px; }
/* One caption style across project layouts and viewport sizes. */
:is(figcaption, .media-heading, .citydrive-caption, .nml-caption, .nml-caption-aside, .solar-station-name) {
  text-align: left !important;
  text-align-last: left !important;
  color: var(--media-caption-color) !important;
  font-size: var(--media-caption-size) !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  opacity: 1 !important;
}
:is(figcaption, .media-heading, .citydrive-caption, .nml-caption) span {
  color: inherit !important;
  font-size: inherit !important;
  opacity: 1 !important;
}
.layout-stacked { grid-template-columns: minmax(0, 1fr); gap: 20px; }
.layout-editorial { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0; }
.layout-editorial .slot-lead { grid-column: 1 / 8; grid-row: 1 / 3; }
.layout-editorial .slot-accent { grid-column: 8 / 13; grid-row: 1; width: 80%; justify-self: end; padding: 12px 8px 18px; }
.layout-editorial .slot-support { grid-column: 7 / 13; grid-row: 2 / 4; z-index: 1; background:var(--page-bg); margin-top: 6px; }
.layout-editorial .media-item:not(.slot-lead,.slot-support,.slot-accent) { grid-column: span 6; margin-top: 24px; }
.layout-collage { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 20px 12px; }
.layout-collage .slot-accent { grid-column: 2 / 9; grid-row: 1; }
.layout-collage .slot-lead { grid-column: 1 / 11; grid-row: 2; margin-top: -8px; }
.layout-collage .slot-support { grid-column: 5 / 13; grid-row: 3; margin-top: 8px; }
.layout-collage .media-item:not(.slot-lead,.slot-support,.slot-accent) { grid-column: span 6; }
.layout-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.empty-state, .about-content { font-size: 14px; line-height: 1.6; max-width: 510px; padding: 0 12px 36px 0; }
.about-content h2 { margin-bottom: 40px; font-size: 14px; }
.about-content p + p { margin-top: 24px; }
.about-content .contact-notice { margin-top: 42px; font-size: 12px; --rest-opacity: .6; }
.return-link { margin-top: 42px; font-size: 12px; }
.media-error { display: grid; place-content: center; height: 100%; font-size: 12px; line-height: 1.5; color: #737373; }
.sr-only, .skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; top: 4px; left: var(--page-gutter); background: white; z-index: 5; }
@media (max-height: 740px) { :root { --header-height: 94px; --content-offset: 40px; --project-row-height: 28px; --media-top: 24px; }  #filters { row-gap: 9px; } .decoration img { width: 76px; height: 76px; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

/* Internal navigation shares the type-filter baseline, below metadata.
   It is outside the media scroll root and never overlaps the pictures. */
.media-controls { grid-column: 5; grid-row: 3; align-self: start; min-width: 0; }
.internal-filters { display: grid; justify-items: end; row-gap: 13px; width: 100%; }
.internal-filter { --rest-opacity: .4; white-space: nowrap; text-align: right; }
@media (max-height: 740px) { .internal-filters { row-gap: 9px; } }
.internal-content { min-width: 0; }
.internal-copy { margin-bottom: 24px; font-size: 13px; line-height: 1.5; }

.work-list { display: flex; flex-wrap: wrap; gap: 14px 24px; margin-bottom: 30px; }
.type-overview { display: grid; gap: 36px; }
.work-preview { min-width: 0; }
.work-title { display: block; font-size: 12px; line-height: 1.5; margin-bottom: 16px; }

/* The dialog catches the backdrop; only the asset occupies up to 86vw × 82vh. */
img[data-viewable] { cursor: zoom-in; }
img[data-viewable]:focus-visible { outline: 1px dotted currentColor; outline-offset: 3px; }
.image-viewer { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; color: #171717; overflow: hidden; }
.image-viewer[open] { display: grid; place-items: center; }
.image-viewer::backdrop { background: rgb(23 23 23 / .16); -webkit-backdrop-filter: blur(1px); backdrop-filter: blur(1px); }
.viewer-content { display: grid; justify-items: center; gap: 14px; }
.viewer-frame { width: min(86vw, calc(82dvh * var(--viewer-ratio, 1.77778))); aspect-ratio: var(--viewer-ratio, 1.77778); }
.viewer-asset { display: block; width: 100%; height: 100%; object-fit: contain; cursor: pointer; }
.viewer-navigation { display: flex; gap: 22px; align-items: center; font-size: 12px; line-height: 20px; }
.viewer-navigation button { padding: 2px 5px; }
.viewer-navigation button:hover { color: var(--accent); }

/* Optional data-driven placements extend the existing editorial pattern. */
.layout-editorial:has(> [data-module]) { gap: 22px 14px; }
.layout-editorial .media-item[data-module] { grid-column: var(--module-column); grid-row: var(--module-row); width: 100%; margin: 0; padding: 0; align-self: start; }
.layout-editorial .media-item[data-module] figcaption { opacity: .5; margin-top: 8px; font-size: 10px; }
.layout-editorial .media-item[data-module]:has(+ [data-module]) { margin-bottom: 12px; }

/* Covers belong to the scrolling media stage, not the fixed editorial shell. */
.poster-intro { position: relative; height: calc(100dvh - var(--media-top)); min-height: 440px; width: 100%; overflow: hidden; margin-bottom: 32px; }
.poster-canvas, .poster-hit { position: absolute; inset: 0; width: 100%; height: 100%; }
.poster-canvas { display: block; pointer-events: none; }
.poster-canvas:focus-visible { outline: 1px dotted #999; outline-offset: -12px; }
.poster-canvas.pointer-focus { outline: none; }
.poster-hit { cursor: grab; touch-action: none; user-select: none; }
.poster-hit.grabbing { cursor: grabbing; }
.poster-fallback { position: absolute; inset: 12% 15%; width: 70%; height: 72%; object-fit: contain; }
.poster-hint { position: absolute; bottom: 26px; inset-inline: 0; text-align: center; font-size: 11px; opacity: .42; pointer-events: none; }

.viewer-close { display: none; }
@media (max-width: 1023px) {
  :root { --page-gutter: clamp(16px, 4.5vw, 32px); --project-font-size: 13px; }
  html { height: auto; overflow-x: clip; overflow-y: auto; overscroll-behavior-y: auto; }
  body { display: block; min-width: 0; height: auto; min-height: 100dvh; overflow: visible; }
  html[data-viewer-open], html[data-viewer-open] body { overflow: hidden; }
  .header { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-top: max(22px, env(safe-area-inset-top)); padding-bottom: 22px; }
  .name { font-size: 12px; letter-spacing: 0; }
  .header-nav { margin: 0; gap: 28px; justify-content: flex-start; width: 100%; }
  .header-nav a, .header-nav > span { display: inline-flex; align-items: center; min-height: 44px; }
  .archive { display: flex; flex-direction: column; min-height: 0; }
  .index { display: block; margin-bottom: 28px; }
  .index > .section-label, .decoration { display: none; }
  .index > nav, .index > .filters { display: none; }
  .project-list, .project-list > li { display: block; }
  .project-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(90px, .65fr); gap: 16px; height: auto; min-height: 44px; align-items: center; --rest-opacity: .48; }
  .project-name { grid-column: 1; }
  .project-type { grid-column: 2; }
  .filters > h2 { grid-column: 1; padding-top: 12px; }
  #filters { grid-column: 2; row-gap: 0; }
  .filter { min-height: 44px; padding-block: 10px; --rest-opacity: .48; }
  .info-column { width: 100%; max-width: 560px; margin-bottom: 24px; }
  #project-info { line-height: 1.55; }
  .project-intro { margin-bottom: 16px; }
  .project-facts > div { margin-bottom: 10px; }
  .media-controls { margin-bottom: 24px; }
  .internal-filters { display: flex; flex-wrap: wrap; gap: 0 22px; justify-content: flex-start; }
  .internal-filter, .work-filter { min-height: 44px; text-align: left; --rest-opacity: .5; }
  .stage { width: 100%; height: auto; margin: 0; padding: 0 0 max(28px, env(safe-area-inset-bottom)); overflow: visible; overscroll-behavior: auto; }
  #media-stage { min-height: 0; }
  .poster-intro { height: min(66svh, 560px); min-height: 320px; margin-bottom: 26px; }
  .poster-hit { touch-action: none; }
  .poster-hint { bottom: 12px;z-index:2; }
  .composition, .layout-editorial:has(> [data-module]) { gap: 18px 10px; }
  .layout-editorial .media-item[data-module] { grid-column: 1 / -1; grid-row: auto; margin: 0; }
  .layout-editorial .media-item[data-module]:has(+ [data-module]) { margin-bottom: 0; }
  .layout-editorial .slot-lead { grid-column: 1 / 9; grid-row: 1 / 3; }
  .layout-editorial .slot-accent { grid-column: 9 / 13; padding: 0; width: 100%; }
  .layout-editorial .slot-support { grid-column: 6 / 13; grid-row: 2 / 4; }
  .layout-editorial .media-item:not(.slot-lead,.slot-support,.slot-accent):not([data-module]) { grid-column: 1 / -1; margin: 0; }
  .layout-grid { grid-template-columns: minmax(0, 1fr); }
  .layout-collage .media-item:not(.slot-lead,.slot-support,.slot-accent) { grid-column: 1 / -1; }
  .about-content, .empty-state { font-size: 13px; padding-right: 0; }
  .work-list { gap: 0 20px; margin-bottom: 20px; }
  .viewer-frame { width: min(92vw, calc(76dvh * var(--viewer-ratio, 1.77778))); }
  .viewer-navigation { gap: 14px; }
  .viewer-navigation button { min-width: 44px; min-height: 44px; }
  .viewer-close { display: block; }
  .image-viewer { touch-action: none; }
}

/* Exhibition grid: ordered rows, never masonry or dense reordering. */
.curated-gallery { --gallery-gap: 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--gallery-gap); align-items: start; }
.curated-gallery > .media-item { grid-column: auto; grid-row: auto; width: 100%; margin: 0; padding: 0; }
.curated-gallery > .gallery-wide, .gallery-series { grid-column: 1 / -1; }
.curated-gallery .media-frame { aspect-ratio: 1; }
.curated-gallery .gallery-wide .media-frame { aspect-ratio: var(--ratio); }
.curated-gallery .media-frame img, .curated-gallery .media-frame video { object-fit: var(--gallery-fit, contain); }
.curated-gallery figcaption { margin-top: 8px; color: #999; font-size: 10px; line-height: 1.5; min-height: 30px; opacity: 1; --proximity: 0 !important; }
.gallery-series-items { display: grid; grid-template-columns: repeat(var(--series-count), minmax(0, 1fr)); gap: var(--gallery-gap); }
.gallery-series .media-frame { aspect-ratio: 1056 / 1489; }
@media (max-width: 1023px) {
  .curated-gallery { --gallery-gap: 20px; grid-template-columns: minmax(0, 1fr); }
  .curated-gallery > .media-item { grid-column: 1 / -1; }
  .curated-gallery .media-frame { aspect-ratio: var(--ratio); }
  .gallery-series-items { grid-template-columns: minmax(0, 1fr); }
}

/* Project facts and internal navigation share the same right-hand edge. */
#project-info:has(.project-facts) { text-align: right; }

/* The lower navigation follows the taller of metadata and the project index.
   Its shared baseline is separated by the same whitespace as name → Projects. */
@media (min-width: 1024px) {
  .archive {
    --section-space: calc(var(--header-height) - var(--media-top) - 18px);
    grid-template-rows: var(--content-offset) max-content minmax(0, 1fr);
  }
  .index > nav, .info-column { padding-bottom: var(--section-space); }
  .project-list > li:last-child .project-row { height: 18px; }
  .project-facts > div:last-child { margin-bottom: 0; }
}

/* Only the deformed cloth polygon receives pointer input. */
.poster-viewport { position: fixed; inset: 0; z-index: 20; pointer-events: none; }
.poster-viewport .poster-hit { pointer-events: auto; clip-path: polygon(0 0, 0 0, 0 0); }
@media(max-width:1023px) {
  .poster-intro { overflow:visible; }
  .poster-intro > .poster-viewport { position:absolute;inset:-100svh calc(-1 * var(--page-gutter));z-index:20; }
}

.comparison { margin-bottom: 24px; }
.comparison-frame { --split: 50%; position: relative; overflow: hidden; width: 100%; touch-action: pan-y pinch-zoom; cursor: ew-resize; user-select: none; -webkit-user-select: none; }
.comparison-frame img { display: block; width: 100%; height: 100%; object-fit: contain; }
.comparison-before { position: absolute; inset: 0; clip-path: inset(0 calc(100% - var(--split)) 0 0); }
.comparison-divider { position: absolute; inset-block: 0; left: var(--split); width: 1px; background: white; pointer-events: none; }
.comparison-handle { position: absolute; top: 50%; left: 0; transform: translate(-50%, -50%); width: 40px; height: 40px; display: grid; place-items: center; background: #fff; color: #171717; border-radius: 50%; font-size: 20px; }
.comparison-range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; pointer-events: none; }
.comparison-labels { position: absolute; inset: 16px 16px auto; display: flex; justify-content: space-between; pointer-events: none; color: white; font-size: 11px; text-shadow: 0 1px 3px #171717; }
.comparison figcaption { color: #999; font-size: 10px; line-height: 1.5; margin-top: 8px; }
.comparison-frame:has(input:focus-visible) .comparison-handle { outline: 2px solid var(--accent); outline-offset: 3px; }

.comparison-shared { position: absolute; inset: 0; pointer-events: none; }

.comparison figcaption.media-heading { display: flex; justify-content: space-between; align-items: baseline; gap: 12px 24px; margin: 0 0 12px; }
.media-heading-category { text-align: right; }
.project-media-heading { display: flex; justify-content: space-between; gap: 12px 24px; margin: 0; font-size: 10px; color: #999; line-height: 1.5; }
.technical-cursor { position: fixed; top: 0; left: 0; z-index: 2147483647; pointer-events: none; white-space: nowrap; padding: 10px 0 0 13px; color: #777; font: 10px/1.4 "Courier New", Courier, monospace; text-shadow: 0 0 3px #fff, 0 0 3px #fff; will-change: transform; }
.technical-cursor::before { content: '+'; position: absolute; left: -3px; top: -7px; font-size: 10px; }
.technical-cursor.is-left { margin-left: -146px; }
.technical-cursor.is-left::before { left: 143px; }
.technical-cursor.is-above { margin-top: -32px; }
.technical-cursor.is-above::before { top: 25px; }
.technical-feedback { position: fixed; left: var(--page-gutter); bottom: 28px; z-index: 2147483646; display: grid; gap: 4px; max-width: calc(100vw - 36px); padding: 10px 14px; pointer-events: none; color: #777; background: var(--page-bg); font: 10px/1.4 "Courier New", Courier, monospace; }
@media (hover: hover) and (pointer: fine) {
  html.has-technical-cursor, html.has-technical-cursor * { cursor: none !important; }
}
.stage-presentation > .project-media-heading:not(:first-child) { margin-top: 20px; }
.sticker-pack > .project-media-heading, .poster-wall > .project-media-heading { margin-bottom: 12px; }
.comparison-hint { position: absolute; bottom: 16px; inset-inline: 16px; text-align: center; color: white; font-size: 10px; text-shadow: 0 1px 3px #171717; pointer-events: none; }
@media (max-width: 600px) {
  .comparison figcaption.media-heading { font-size: 9px; gap: 12px; }
  .media-heading > span { flex: 1; min-width: 0; }
}

/* A quiet, non-interactive layer beneath the editorial interface. */
body { isolation: isolate; }
.archive-background { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }

.registration-content { display: grid; gap: 36px; margin-top: 36px; }
.registration-content .media-heading { display: flex; justify-content: space-between; gap: 24px; font-size: 10px; color: #999; margin: 0 0 12px; line-height: 1.5; }
.registration-video-anchor { display: none; }
.registration-video-layer { position: fixed; inset: 0 auto auto 0; z-index: 12; pointer-events: none; }
.registration-video-layer video { display: block; width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1023px) {
  .registration-video-anchor { display: block; width: 65%; aspect-ratio: 1; }
  .registration-content { gap: 24px; }
}

/* Four objects suspended directly from the registration photo's lower edge. */
.hanging-badges { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; padding: 0 0 28px; }
.hanging-badge { position: relative; display: block; width: 64%; justify-self: center; padding: 0; background: none; border: 0; perspective: 900px; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.badge-assembly { position: absolute; inset: 0; display: block; transform-origin: 50% 0; transform-style: preserve-3d; }
.badge-strap { position: absolute; left: 0; right: 0; top: 0; overflow: hidden; }
.hanging-badge img { position: absolute; display: block; max-width: none; height: auto; top: 0; pointer-events: none; user-select: none; }
.badge-card { position: absolute; left: 0; width: 100%; display: block; transform-origin: 50% 5%; transform-style: preserve-3d; }
.badge-face { position: absolute; inset: 0; display: block; overflow: hidden; border-radius: 6%; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.badge-back { transform: rotateY(180deg); }
.registration-realization > .media-item { margin-bottom: 0; }
.hanging-badge:focus-visible { outline: 1px dotted currentColor; outline-offset: 6px; }

.registration-realization .hanging-badges { margin-top: -10px; }
.registration-realization > figure { position: relative; z-index: 1; }

@media (min-width: 1024px) {
  /* Let suspended objects cross either media edge without moving its content.
     The transparent overflow space must not intercept the fixed index. */
  .stage:has(.hanging-badges, .sticker-pack, .poster-wall, .image-marquee, .citydrive-guide) {
    margin-inline: -100vw;
    padding-inline: 100vw;
    pointer-events: none;
  }
  .stage:has(.hanging-badges, .sticker-pack, .poster-wall, .image-marquee, .citydrive-guide) > #media-stage { pointer-events: auto; }
}

.badge-documentation { margin-top: 28px; }
.badge-documentation > .media-heading { display: flex; justify-content: space-between; gap: 24px; font-size: 10px; color: #999; margin: 0 0 12px; line-height: 1.5; }
.badge-documentation .media-frame { aspect-ratio: 3 / 4; }

.navigation-stickers { container-type: inline-size; margin-top: 48px; margin-bottom: 36px; --sticker-gap: clamp(12px, 2vw, 28px); }
.navigation-stickers > .media-heading { display: flex; justify-content: space-between; gap: 24px; font-size: 10px; color: #999; margin: 0 0 20px; line-height: 1.5; }
.navigation-sticker-row { --sticker-height: calc((100cqw - var(--sticker-gap)) / (var(--max-sticker-ratio) + 1)); display: grid; grid-template-columns: var(--sticker-height) minmax(0, 1fr); gap: var(--sticker-gap); height: var(--sticker-height); align-items: start; }
.navigation-sticker-image { display: block; position: relative; height: 100%; overflow: hidden; }
.navigation-sticker-image img { display: block; position: absolute; max-width: none; }
.navigation-sticker-label { position: relative; height: 100%; width: 100%; padding: 0; background: none; }

.navigation-sticker-label:focus-visible { outline: 1px dotted #999; outline-offset: 6px; }

.navigation-documentation { margin-top: 36px; }
.stage-presentation { display: grid; gap: clamp(10px, 1vw, 16px); margin-top: 36px; }
.stage-screen-layouts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1vw, 16px); }
.navigation-documentation > .media-heading { display: flex; justify-content: space-between; gap: 24px; font-size: 10px; color: #999; margin: 0 0 12px; line-height: 1.5; }
.navigation-documentation .curated-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(10px, 1vw, 16px); }
.navigation-documentation .media-frame { aspect-ratio: 3 / 4; }
@media (max-width: 1023px) {
  .navigation-documentation .curated-gallery { grid-template-columns: minmax(0, 1fr); }
}

.photowall-content { display: grid; gap: clamp(16px, 2vw, 28px); margin-top: 36px; }
.photowall-content > .media-heading { margin: 0; font-size: 10px; color: #999; }
.photowall-slideshow { min-width: 0; }
.photowall-slideshow .media-frame { aspect-ratio: 3 / 2; }
.photowall-model { padding: 18px 0; }
.photowall-model .media-frame { aspect-ratio: 4 / 3; overflow: visible; background: transparent; }
.photowall-model .photowall-slide { transform-origin: center 70%; will-change: transform; }
.photowall-model img { object-fit: contain; user-select: none; }

.sticker-pack { margin-top: 64px; padding-bottom: 20px; }
.sticker-pack-pill { display: block; width: 100%; padding: 0; background: transparent; border: 0; cursor: pointer; }
.sticker-pack-pill img { display: block; width: 100%; height: 100%; object-fit: contain; }
.sticker-pack-pill:focus-visible { outline: 1px dotted #171717; outline-offset: 5px; border-radius: 999px; }
.sticker-pack-collage { position: relative; width: min(184%, calc(100vw - 2 * var(--page-gutter))); margin-left: max(-84%, calc(100% - 100vw + 2 * var(--page-gutter))); aspect-ratio: 714 / 430; }
.sticker-pack-illustration { position: absolute; z-index: 2; margin: 0; transform: rotate(var(--sticker-angle, 0deg)); }
.sticker-spotlight { left: 1%; top: 1.5%; width: 18.5%; --sticker-angle: -5deg; }
.sticker-door { left: 24.6%; top: 0; width: 17.1%; }
.sticker-sunrise { left: 45.1%; top: 5.5%; width: 28.4%; --sticker-angle: -10deg; }
.sticker-pitch { left: 78%; top: 7.7%; width: 19.3%; --sticker-angle: 15deg; }
.sticker-prism { left: 1.9%; top: 46%; width: 25%; --sticker-angle: -8deg; }
.sticker-earth { left: 29.8%; top: 54.4%; width: 17.2%; }
.sticker-radio { left: 53.8%; top: 57%; width: 20.2%; --sticker-angle: -12deg; }
.sticker-keyhole { left: 77%; top: 47.4%; width: 20%; }
.sticker-pack-phrases { display: grid; gap: 28px; margin-top: 54px; }
.sticker-pack .media-frame { background: transparent; }
.sticker-pack-star { width: 80%; margin: -15% auto 0; position: relative; z-index: 2; }
.poster-wall { position: relative; z-index: 2; container-type: inline-size; width: calc(100vw - 2 * var(--page-gutter)); margin-left: calc(100% - 100vw + 2 * var(--page-gutter)); margin-top: 72px; padding-bottom: 24px; }
.poster-wall-grid { display: grid; align-items: start; }
.poster-wall-top { grid-template-columns: repeat(5, minmax(0, 1fr)); column-gap: 9%; row-gap: 3.2cqw; }
.poster-wall-bottom { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 3.5%; margin-top: 3.2cqw; }
.poster-wall-slot { min-width: 0; }
.poster-wall-slot.is-glitch-hidden { visibility: hidden; }
.poster-wall-slot .media-item { margin: 0; }
.poster-wall-top .media-frame { aspect-ratio: 3508 / 4961; }
.poster-wall-bottom .media-frame { aspect-ratio: 867 / 1612; }
.poster-wall img { object-fit: contain; }
.poster-documentation { display: grid; gap: clamp(16px, 2vw, 28px); margin-top: 48px; }
.poster-documentation-photos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.poster-documentation-photos .media-frame { aspect-ratio: 3 / 4; }
.poster-documentation-photos img { object-fit: cover; }
.poster-documentation-photos > :last-child img { object-position: center 40%; }
@media (max-width: 1023px) {
  .sticker-pack { margin-top: 40px; }
  .sticker-pack-collage { width: 100%; margin: 24px 0 0; }
  .sticker-pack-phrases { gap: 18px; margin-top: 36px; }
  .poster-wall { width: 100%; margin: 48px 0 0; }
  .poster-wall-top { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
  .poster-wall-bottom { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
}

/* The deadline shares the Projects heading baseline. */
.info-column { position: relative; }
.project-deadline { position: absolute; top: calc(-1 * var(--content-offset)); right: 0; color: #ff4b48; font-size: var(--project-font-size); white-space: nowrap; }
.advertalyze-films { width: 100%; padding-bottom: 64px; }
.advertalyze-film-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
.advertalyze-film-strip .media-frame { aspect-ratio: 1; }
.advertalyze-phone { position: relative; width: 46%; margin: 72px 0 0 26%; transform: rotate(6deg); transform-origin: 50% 0; }
.advertalyze-phone .media-frame { position: relative; background: transparent; overflow: visible; }
.advertalyze-phone video { position: relative; }
@media (max-width: 1023px) {
  .project-deadline { position: static; margin-bottom: 22px; white-space: normal; }
  .advertalyze-films { width: 100%; margin-left: 0; padding-bottom: 40px; }
  .advertalyze-phone { width: 58%; margin: 48px 0 0 20%; }
}

.project-name, .project-type { white-space: nowrap; font-kerning: none; }
.advertalyze-rbi { padding-top: 24px; padding-bottom: 110px; }
.advertalyze-exam { width: 96%; margin-inline: auto; margin-bottom: 76px; }
.rbi-cover { width: 100%; margin-bottom: 74px; }
.rbi-staircase { padding-block: 28px 80px; }
.rbi-step { position: relative; width: 52%; }
.rbi-step:nth-child(even) { margin-left: 44%; }
.rbi-step + .rbi-step { margin-top: -13%; }
.rbi-parallax { transform: translate3d(0, var(--parallax-y, 0px), 0); }
.rbi-phone-anchor { width: 46%; margin: 72px 0 0 26%; }
.rbi-phone { transform: translate3d(0, var(--parallax-y, 0px), 0) rotate(-6deg); transform-origin: 50% 0; }
.rbi-phone .media-frame { background: transparent; overflow: visible; }
@media (prefers-reduced-motion: no-preference) {
  .rbi-parallax { will-change: transform; }
}
@media (max-width: 1023px) {
  .advertalyze-rbi { padding-top: 0; padding-bottom: 64px; }
  .advertalyze-exam { width: 100%; margin-bottom: 48px; }
  .rbi-cover { margin-bottom: 32px; }
  .rbi-step { width: 62%; }
  .rbi-step:nth-child(even) { margin-left: 38%; }
  .rbi-step + .rbi-step { margin-top: -5%; }
  .rbi-staircase { padding-bottom: 32px; }
  .rbi-phone-anchor { width: 58%; margin: 48px 0 0 20%; }
}

/* Equal groups make the last-to-first transition continuous at any viewport size. */
.image-marquee { position: relative; background:var(--page-bg); width: 100vw; margin-left: calc(100% - 100vw + var(--page-gutter)); overflow: clip; padding-bottom: 36px; }
.image-marquee-track { display: flex; width: max-content; animation: image-marquee var(--marquee-duration, 80s) linear infinite; animation-play-state: paused; }
.image-marquee-group { display: flex; flex: none; gap: 16px; padding-right: 16px; }
.image-marquee .media-item { flex: none; width: clamp(220px, 24vw, 360px); }
.image-marquee[data-running="true"] .image-marquee-track { animation-play-state: running; }

@keyframes image-marquee { to { transform: translate3d(-50%, 0, 0); } }
@media (max-width: 1023px) {
  .image-marquee { margin-left: calc(-1 * var(--page-gutter)); }
}
@media (prefers-reduced-motion: reduce) {
  .image-marquee { overflow-x: auto; }
  .image-marquee-track { animation: none; }
  .image-marquee-group[aria-hidden="true"] { display: none; }
}

.advertalyze-photodump { padding-top: 44px; padding-bottom: 110px; }
.advertalyze-photodump-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.advertalyze-photodump-phone { width: 46%; margin: 72px 0 0 26%; transform: rotate(6deg); transform-origin: 50% 0; }
.advertalyze-photodump-phone .media-frame { background: transparent; overflow: visible; }
@media (max-width: 1023px) {
  .advertalyze-photodump { padding-top: 24px; padding-bottom: 64px; }
  .advertalyze-photodump-grid { gap: 8px; }
  .advertalyze-photodump-phone { width: 58%; margin: 48px 0 0 20%; }
}

.advertalyze-vacuum { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; padding: 24px 0 96px; }
.advertalyze-vacuum-art { display: grid; gap: 18px; }
.advertalyze-vacuum-sticker { width: 88%; justify-self: center; }
.advertalyze-vacuum .media-frame { background: transparent; }
.advertalyze-vacuum-phone { width: 100%; transform: none; }
.image-marquee:focus-visible { outline: 1px dotted #999; outline-offset: -2px; }
@media (max-width: 1023px) {
  .advertalyze-vacuum { gap: 16px; padding: 16px 0 64px; }
  .advertalyze-vacuum-art { gap: 10px; }
}

.advertalyze-video-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-bottom: 64px; }
@media (max-width: 1023px) {
  .advertalyze-video-pair { gap: 12px; padding-bottom: 40px; }
}

.advertalyze-news { padding-top: 32px; padding-bottom: 64px; }
 .advertalyze-news-staircase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; padding-bottom: 48px; }
.advertalyze-news-video { width: 100%; }
@media (max-width: 1023px) {
  .advertalyze-news { padding-top: 16px; padding-bottom: 40px; }
  .advertalyze-news-staircase { gap: 12px; padding-bottom: 32px; }
}
.document-archive { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 12px 0 64px; }
.archive-file { display: flex; flex-direction: column; min-width: 0; padding: 14px; border: 1px solid #d8d8d8; text-align: left; background: #fafafa; transition: border-color .18s, background .18s; }
.archive-file:hover, .archive-file:focus-visible { border-color: #ff4b48; background: #fff; outline-offset: 3px; }
.archive-file-meta { width: 100%; padding-bottom: 10px; border-bottom: 1px dashed #d8d8d8; font-size: 9px; color: #999; }
.archive-file img { display: block; width: 100%; height: 142px; object-fit: contain; margin: 14px 0; }
.archive-file-title { font-size: 12px; line-height: 1.45; min-height: 3em; }
.archive-file-count { font-size: 9px; color: #999; margin-top: auto; padding: 12px 0; }
.archive-file-action { width: 100%; font-size: 9px; line-height: 1.5; color: #ff4b48; border-top: 1px dashed #d8d8d8; padding-top: 10px; }
.advertalyze-finale { padding-bottom: 0; }
.advertalyze-ending { width: 100%; margin-top: 120px; }
.advertalyze-ending .media-frame { background: #fff; }
.viewer-document-title { margin: 0; max-width: 90vw; font-size: 12px; text-align: center; }
.viewer-document-title[hidden], .viewer-zoom[hidden] { display: none; }
.image-viewer.is-document { touch-action: auto; }
.image-viewer.is-document .viewer-viewport { width: min(90vw, calc(74dvh * var(--document-ratio, .5625))); height: min(74dvh, calc(90vw / var(--document-ratio, .5625))); max-width: 94vw; overflow: auto; overscroll-behavior: contain; background: #e8e8e8; }
.image-viewer.is-document .viewer-frame { display: grid; gap: 12px; width: 100%; aspect-ratio: auto; }
.image-viewer.is-document .viewer-asset { height: auto; background: #fff; cursor: default; }
.image-viewer.is-document.is-zoomed .viewer-viewport { width: min(90vw, 1000px); height: 74dvh; }
.image-viewer.is-document.is-zoomed .viewer-frame { width: min(90vw, 1000px); }
.image-viewer.is-document .viewer-close { display: block; }
.image-viewer.is-document .viewer-navigation { gap: 12px; }
@media (max-width: 1023px) {
  .document-archive { gap: 8px; padding-bottom: 40px; }
  .archive-file { padding: 8px; }
  .archive-file img { height: 90px; margin: 10px 0; }
  .archive-file-meta, .archive-file-count, .archive-file-action { font-size: 8px; }
  .archive-file-title { font-size: 10px; overflow-wrap: anywhere; }
  .advertalyze-ending { margin-top: 72px; }
  .image-viewer.is-document.is-zoomed .viewer-frame { width: 720px; }
  .image-viewer.is-document .viewer-navigation { gap: 6px; font-size: 10px; }
}

/* Archive artwork floats into the left column; its transparent pixels do not catch input. */
.advertalyze-archive-composition { position: relative; }
.advertalyze-clown { position: absolute; right: calc(100% + 30px); top: 0; width: min(43vw, 580px); pointer-events: none; }
.advertalyze-clown .media-frame { background: transparent; }
.citydrive-content { padding-bottom: 64px; }
.citydrive-intro { font-size: var(--project-font-size); line-height: 1.45; margin-bottom: 36px; }
.citydrive-intro ul { padding-left: 1.25em; margin: 0; }
.citydrive-caption, .citydrive-content figcaption { font-size: 11px; line-height: 1.5; margin: 0 0 12px; }
.citydrive-postcard, .citydrive-postcard-life { width: 58%; margin-bottom: 44px; }
.postcard-scene { perspective: 1200px; aspect-ratio: 2019 / 2854; }
.postcard-turn { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transition: transform 950ms cubic-bezier(.4,0,.2,1); }
.postcard-turn.is-back { transform: rotateY(180deg); }
.postcard-turn .media-item { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.postcard-turn .media-item:nth-child(2) { transform: rotateY(180deg); }
.postcard-control { margin-top: 8px; font-size: 10px; color: #888; }
.citydrive-guide { width: calc(100vw - 2 * var(--page-gutter)); margin-left: calc(100% - 100vw + 2 * var(--page-gutter)); padding: 28px 0 0; position: relative; z-index: 2; pointer-events: none; }
.citydrive-guide > .citydrive-caption { margin-bottom: 18px; }
.citydrive-guide-pages { display: grid; grid-template-columns: repeat(7, minmax(0,1fr)); align-items: start; gap: 18px; }
.citydrive-cone { margin: 56px 0 100px; }

.citydrive-process { padding: 20px 0 60px; }
.citydrive-process-step { width: 57%; margin-bottom: 8%; }
.citydrive-process-step:nth-child(even) { margin-left: 43%; }
.citydrive-process-step + .citydrive-process-step { margin-top: -12%; }
.citydrive-outline-hero { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 22px; padding: 38px 5% 90px; }
.citydrive-outline-art { transform: rotate(-7deg); margin-top: 22px; }
.citydrive-outline-phone { width: 85%; justify-self: end; transform: rotate(11deg); }
.citydrive-outline-phone .media-frame { background: transparent; overflow: visible; }
.citydrive-outline-hero > .citydrive-caption { grid-column: 1 / -1; margin: 0 0 12px; }
.citydrive-outline .image-marquee > .citydrive-caption { margin: 0 var(--page-gutter) 18px; }
.citydrive-outline .image-marquee .media-item { width: clamp(160px, 15vw, 260px); }
.citydrive-outline-pack { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 28px; align-items: start; margin: 50px 0 56px; }
.citydrive-sticker { margin: 36px 0; }
.citydrive-badge { width: 72%; margin-inline: auto; }
@media (max-width: 1023px) {
  .advertalyze-clown { position: relative; top: auto; right: auto; width: 65%; margin: -30px 0 30px; }
  .citydrive-intro { margin-bottom: 26px; }
  .citydrive-guide { width: calc(100vw - 2 * var(--page-gutter)); margin-left: 0; }
  .citydrive-guide-pages { gap: 8px; }
  .citydrive-postcard, .citydrive-postcard-life { width: 70%; }
  .citydrive-outline-hero { padding: 18px 4% 60px; gap: 14px; }
  .citydrive-outline-pack { gap: 16px; }
  .citydrive-process-step { width: 64%; }
  .citydrive-process-step:nth-child(even) { margin-left: 36%; }
}
@media (max-width: 600px) {
  .citydrive-guide-pages { grid-template-columns: repeat(7, minmax(110px,1fr)); overflow-x: auto; padding-bottom: 12px; }
}
@media (prefers-reduced-motion: reduce) { .postcard-turn { transition: none; } }
.citydrive-cones-video { width: calc(100vw - 2 * var(--page-gutter)); margin-left: calc(100% - 100vw + 2 * var(--page-gutter)); background:var(--page-bg); }
.citydrive-cones-video .media-frame { aspect-ratio: 16 / 9; }
@media (max-width: 1023px) { .citydrive-cones-video { margin-left: 0; } }

/* The tall itinerary stays above the wide cone row, as in the layout reference. */
.citydrive-guide .media-item { pointer-events: auto; }
.citydrive-cones-video { position: relative; z-index: 1; }
.citydrive-process-step figcaption { max-width: 72%; min-height: 0; }
.citydrive-process-step:nth-child(even) figcaption { text-align: right; margin-left: auto; }
@media (min-width: 1024px) {
  .citydrive-cones-video { margin-top: calc(-1.9 * ((100vw - 2 * var(--page-gutter) - 108px) / 7) + 28px); }
}
@media (max-width: 1023px) {
  .citydrive-cones-video { margin-top: 28px; }
  .citydrive-process-step figcaption { max-width: 52%; }
}

.citydrive-guide > .citydrive-caption { background:var(--page-bg); padding-block: 6px; }
@media (min-width: 1024px) {
  .citydrive-guide::before { content: ''; position: absolute; inset: 0 0 calc(1.9 * ((100vw - 2 * var(--page-gutter) - 108px) / 7) - 28px); z-index: -1; background:var(--page-bg); }
}

/* Finish at the viewport edges, including the bottom of the scroll area. */
.advertalyze-ending { width: 100%; margin-left: var(--page-gutter); margin-bottom: 0; }
.advertalyze-ending .media-frame video { object-fit: cover; transform: scale(1.012); }
.stage:has(.advertalyze-ending) { padding-bottom: 0; }
.citydrive-cones-video video, .citydrive-cone video { border: 0; outline: 0; }
.citydrive-other-stands, .citydrive-other-wide-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; width: calc(100vw - 2 * var(--page-gutter)); margin-left: calc(100% - 100vw + 2 * var(--page-gutter)); margin-bottom: 28px; }
.citydrive-other-stands { align-items: end; margin-top: -60px; }
.citydrive-other-stands .media-frame { height: min(65vw,700px); aspect-ratio: auto; }
.citydrive-other-layouts { display: grid; grid-template-columns: 1fr 2fr; gap: 22px; align-items: start; margin-bottom: 48px; }
.citydrive-other-single { width: 58%; margin-block: 48px; }
.citydrive-other-wide-pair { margin-top: 48px; }
.citydrive-other-last { width: calc((100vw - 2 * var(--page-gutter) - 24px) / 2); margin-left: auto; }
@media (min-width: 1024px) {
  .stage:has(.citydrive-other) { margin-inline: -100vw; padding-inline: 100vw; pointer-events: none; }
  .stage:has(.citydrive-other) > #media-stage { pointer-events: auto; }
}
@media (max-width: 1023px) {
  .advertalyze-ending { margin-left: var(--page-gutter); margin-bottom: 0; }
  .citydrive-other-stands, .citydrive-other-wide-pair { margin-left: 0; gap: 12px; }
  .citydrive-other-stands { margin-top: 0; }
  .citydrive-other-layouts { gap: 12px; }
}
.citydrive-other-stands img { object-position: center bottom; }

.next-case { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 24px; margin-top: 48px; padding: 24px 0 32px; border-top: 1px solid #ddd; font-size: var(--project-font-size); line-height: 1.5; }
.next-case-label { font-size: 11px; color: #888; }
@media (max-width: 600px) { .next-case { margin-top: 28px; padding-bottom: 48px; } }

/* F Date&Eat: presentations and synchronized colour variations. */
.f-date-intro { font-size: var(--project-font-size); line-height: 1.45; margin-bottom: 56px; }
.f-date-intro p + p { margin-top: 18px; }
.f-date-partner-slides { display: grid; gap: 32px; }
.f-date-partner-slides .media-item { display: flex; flex-direction: column-reverse; }
.f-date-partner-slides figcaption { font-size: 10px; color: #888; margin: 0 0 10px; }
.comparison-after-first .comparison-before { clip-path: inset(0 0 0 var(--split)); }
.f-date-content .comparison-handle { width: 30px; height: 30px; font-size: 16px; }
.f-date-content .comparison-hint { inset-inline: auto 18px; padding: 5px 8px; background: #fff; color: #222; text-shadow: none; }
.f-date-ambassador-slides { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
.f-date-ambassador-slides figcaption { font-size: 10px; color: #888; margin-top: 10px; }
.f-date-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; margin-top: 20px; }
.f-date-card { position: relative; aspect-ratio: 1; }
.f-date-card > .media-item { position: absolute; inset: 0; opacity: 0; pointer-events: none; transition: opacity 400ms ease; }
.f-date-card > .is-active { opacity: 1; pointer-events: auto; }
@media (max-width: 600px) {
  .f-date-intro { margin-bottom: 32px; }
  .f-date-cards { gap: 8px; margin-top: 12px; }
  .f-date-ambassador-slides { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) { .f-date-card > .media-item { transition: none; } }

.f-date-content .media-heading .comparison-hint { position: static; padding: 0; margin-left: auto; color: #666; white-space: nowrap; }

/* Fresh expands selected rows across the archive, as in the project layouts. */

.fresh-content { padding-bottom: 32px; }
.fresh-block { margin-bottom: 28px; }
.fresh-stack { display: grid; gap: 24px; }
.fresh-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px; align-items: start; }
.fresh-wide { width: calc(100vw - 2 * var(--page-gutter)); margin-left: calc(100% - 100vw + 2 * var(--page-gutter)); }
.fresh-liquids { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: center; gap: 18px; margin-top: 56px; }
.fresh-liquids .media-frame { height: min(36vw,510px); aspect-ratio: auto; }
.fresh-service-board { display: grid; grid-template-columns: 23% 20% minmax(0,1fr); column-gap: 2.25%; row-gap: 26px; }
.fresh-service-board > :nth-child(-n+3) { width: 65%; align-self: center; }
.fresh-service-board > :nth-child(1) { grid-column: 1; grid-row: 1; justify-self: center; }
.fresh-service-board > :nth-child(2) { grid-column: 2; grid-row: 2; }
.fresh-service-board > :nth-child(3) { grid-column: 1; grid-row: 3 / 5; justify-self: center; }
.fresh-service-board > :nth-child(n+4) { grid-column: 3; }
.fresh-service-board > :nth-child(4) { grid-row: 1; }
.fresh-service-board > :nth-child(5) { grid-row: 2; }
.fresh-service-board > :nth-child(6) { grid-row: 3; }
.fresh-service-board > :nth-child(7) { grid-row: 4; }
.fresh-uniform { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: end; gap: 30px; }
.fresh-collateral { row-gap: 48px; }
.fresh-charts { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.fresh-car-hero { margin-top: 64px; }
.fresh-car-hero .media-frame { aspect-ratio: 2.25; }
.fresh-car-hero img { object-fit: cover; }
@media (min-width: 1024px) {
  .stage:has(.fresh-content) { margin-inline: -100vw; padding-inline: 100vw; pointer-events: none; }
  .stage:has(.fresh-content) > #media-stage { pointer-events: auto; }
}
@media (max-width: 1023px) {
  .fresh-wide { width: 100%; margin-left: 0; }
  .fresh-block { margin-bottom: 20px; }
  .fresh-liquids { margin-top: 0; gap: 8px; }
  .fresh-service-board { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px 12px; }
  .fresh-service-board > :nth-child(-n+3) { order: 1; grid-column: auto; grid-row: 5; width: 100%; align-self: start; }
  .fresh-service-board > :nth-child(-n+3) > figcaption { min-height: 3em; }
  .fresh-service-board > :nth-child(n+4) { grid-column: 1 / -1; width: 100%; }
  .fresh-pair, .fresh-uniform, .fresh-charts { gap: 12px; }
  .fresh-collateral { grid-template-columns: minmax(0,1fr); gap: 24px; }
  .fresh-car-hero { margin-top: 28px; }
}
.fresh-four { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 20px; }
@media (max-width: 1023px) { .fresh-four { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; } }
/* Transparent decorative splashes must not intercept the section filters beneath. */
.fresh-liquids { pointer-events: none; }

.fresh-template .fresh-wide { background: var(--page-bg); }
.fresh-boxes .media-frame { aspect-ratio: 4 / 3; }
.fresh-posters .media-frame { aspect-ratio: 1 / 2; }
.fresh-boxes img, .fresh-posters img { object-fit: cover; }
.fresh-posters img { object-fit: contain; }
.fresh-posters > :last-child .media-frame { background: #013dff; }
/* Oversized transparent splashes bleed beyond both page edges. */
.fresh-liquids { width: 100vw; overflow-x: clip; margin-left: calc(100% - 100vw + var(--page-gutter)); margin-top: -28px; gap: 0; }
.fresh-liquids .media-frame { height: min(42vw,660px); overflow: visible; }
.fresh-liquids > :nth-child(1) img { transform: translateX(-8%) scale(1.18); }
.fresh-liquids > :nth-child(2) img { transform: translate(-10%,-7%) scale(1.65); }
.fresh-liquids > :nth-child(3) img { transform: translateX(10%) scale(1.35); }
@media (max-width: 1023px) {
  .fresh-liquids { margin-top: 0; margin-bottom: 36px; }
  .fresh-liquids .media-frame { height: 45vw; }
}

/* Fresh motion: captions belong to the material, above its image. */
.fresh-content figcaption { margin: 0 0 12px; font-size: 10px; line-height: 1.5; color: #888; }
.fresh-content .media-item { position: relative; }
.fresh-liquids { margin-top: 24px; padding-top: 64px; }
.fresh-liquids figcaption { position: relative; z-index: 1; padding-inline: var(--page-gutter); }
.fresh-luma-defs { position: absolute; pointer-events: none; }
.fresh-variant-header { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.fresh-variant-toggle { flex: none; border: 0; padding: 0; background: transparent; color: #888; font: inherit; font-size: 10px; cursor: pointer; }
.fresh-variant-toggle:hover { color: #111; }
.fresh-variant-toggle:focus-visible { outline: 1px dotted currentColor; outline-offset: 5px; }
.fresh-variant-layers { position: relative; }
.fresh-variant-layers > .media-item { position: absolute; inset: 0; opacity: 0; transition: opacity 400ms ease; pointer-events: none; }
.fresh-variant-layers > .media-item.is-active { opacity: 1; pointer-events: auto; }
.fresh-garment.is-pointer-driven > .media-item { transition-duration:80ms;transition-timing-function:linear; }
.fresh-variant-layers .media-frame { width: 100%; height: 100%; aspect-ratio: auto; }
.fresh-garment img { object-fit: cover; }
.fresh-uniform { align-items: start; gap: clamp(24px, 6vw, 100px); padding-block: 32px; }
.fresh-car-variants { display: grid; grid-template-columns: minmax(0,1fr); gap: 64px; margin-block: 40px 64px; }
.fresh-car { aspect-ratio: 3.2; }
.fresh-car img { position: absolute; max-width: none; object-fit: fill; }
.fresh-car .media-frame { position: relative; background: transparent; }
.fresh-presentation-marquee { background: transparent; margin-block: 40px; padding-bottom: 0; }
.fresh-presentation-marquee > .media-heading { margin: 0 var(--page-gutter) 16px; }
.fresh-presentation-marquee .media-item { width: clamp(260px, 30vw, 460px); }
.fresh-presentation-marquee figcaption { font-size: 9px; }
@media (max-width: 1023px) {
  .fresh-liquids { padding-top: 28px; }
  .fresh-liquids figcaption { padding-inline: 10px; font-size: 8px; }
  .fresh-uniform { gap: 16px; padding-block: 16px; }
  .fresh-variant-header { align-items: start; flex-direction: column; gap: 6px; min-height: 45px; }
  .fresh-variant-header .media-heading, .fresh-variant-toggle { font-size: 9px; }
  .fresh-car-variants { gap: 32px; margin-block: 24px; }
  .fresh-presentation-marquee { margin-block: 28px; }
}
@media (prefers-reduced-motion: reduce) {
  .fresh-variant-layers > .media-item { transition: none; }
}
.fresh-liquids figcaption { transform: translateY(-40px); }
/* Wide transparent artwork must not block the project filters. */
.archive:has(.fresh-content) .media-controls { position: relative; z-index: 3; pointer-events: none; }
.archive:has(.fresh-content) .internal-filter { pointer-events: auto; }
@media (max-width: 1023px) { .fresh-liquids figcaption { transform: translateY(-20px); } }
.fresh-presentation-marquee { background: var(--page-bg); }

/* Types: one shared work archive, separate from the case index. */
#filters .filter{max-width:100%;text-align:left;overflow-wrap:normal}
.work-archive-header{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:30px;font-size:11px;color:#888}
.work-archive-header > span{margin-left:auto}
.type-overview{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding-top:0}
.work-preview{display:flex;width:100%;text-align:left;align-self:stretch;background:#fff}
.work-preview.is-pending:hover{border-color:#d8d8d8;background:#fff}
.work-preview.is-pending .archive-file-action{color:#999}
.work-cover{display:flex;position:relative;align-items:center;justify-content:center;aspect-ratio:1;width:100%;overflow:hidden;background:transparent;margin:14px 0}
.work-cover img,.work-cover video{display:block;width:100%;height:100%;object-fit:cover;margin:0;pointer-events:none}
.work-cover.is-presentation{aspect-ratio:16/9}
.work-cover.is-placeholder{border:1px solid #e5e5e5}
.work-cover.is-frame-cover canvas{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;opacity:0}
.work-cover.is-frame-ready canvas{opacity:1}
.work-cover.is-frame-ready > img{opacity:0}
.work-preview .work-title{margin:0 0 5px;font-size:12px;line-height:1.5}
.work-source{display:block;color:#888;font-size:10px;line-height:1.5}
.work-preview:focus-visible{outline:1px solid #171717;outline-offset:5px}
.work-detail-header{margin-bottom:36px;font-size:12px;line-height:1.6}
.work-back{font-size:11px;color:#777;margin-bottom:30px}
.work-detail-title{font-size:20px;line-height:1.3;font-weight:400;margin:0 0 24px}
.work-detail-title:focus{outline:none}
.work-meta{display:grid;gap:8px;margin-bottom:22px}
.work-meta>div{display:grid;grid-template-columns:65px minmax(0,1fr);gap:14px}
.work-meta dt{color:#888}.work-meta dd{margin:0}
.work-description{max-width:560px;margin-bottom:20px}
.work-project-link{display:inline-block;border-bottom:1px solid #bbb;padding-bottom:2px}
.work-detail .media-item{min-width:0}
.work-detail .media-frame{background:transparent}
@media(max-width:600px){.type-overview{gap:12px}.work-detail-title{font-size:18px}}

/* Each garment side occupies an identical, alpha-trimmed silhouette box. */
.fresh-uniform{--garment-height:min(32vw,480px)}
.fresh-garment{height:var(--garment-height);width:calc(var(--garment-height) * var(--garment-ratio));max-width:100%;margin-inline:auto}
.fresh-garment .media-frame{position:relative;background:transparent;overflow:hidden}
.fresh-garment img{position:absolute;max-width:none;object-fit:fill}
.fresh-garment>.media-item{transition:none;visibility:hidden}
.fresh-garment>.media-item.is-active{visibility:visible}
.fresh-car-variants{width:100%;margin-left:0}

.citydrive-other-fishing { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(12px,1.6vw,24px); margin-top: 48px; }

/* Standalone digital work: art-directed rows sharing the media/viewer system. */

.digital-work { display:grid; gap:clamp(20px,2.2vw,36px); }
.digital-row { display:grid; gap:clamp(12px,1.6vw,24px); align-items:start; }
.digital-row-one { grid-template-columns:minmax(0,1fr); }
.digital-row-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.digital-row-three,.digital-row-phones-poster { grid-template-columns:repeat(3,minmax(0,1fr)); }
.digital-row-wide-four { grid-template-columns:repeat(4,minmax(0,1fr)); width:calc(100vw - 2 * var(--page-gutter)); margin-left:calc(100% - 100vw + 2 * var(--page-gutter)); }
.digital-work .media-frame { background:transparent; }
.digital-work img,.digital-work video { object-fit:contain; }
.digital-work-phoenix-online .digital-row-wide-four { width:140%;margin-left:-40%; }
.digital-row-phone { grid-template-columns:minmax(0,1fr); }
.digital-row-phone .digital-phone { width:38%; justify-self:center; }
.digital-row-phones-poster { align-items:center; }
.digital-phone .media-frame { clip-path:inset(1% 5% round 14% / 7%); }
.digital-banners.image-marquee { background:transparent; padding-bottom:0; }
.digital-banners .media-item { width:clamp(240px,27vw,440px); }
.digital-row-three .media-frame { height:100%; }
.digital-row-equal-height > .media-item { display:grid;grid-template-rows:subgrid;grid-row:span 2;gap:12px; }
.digital-row-equal-height .media-frame { aspect-ratio:var(--equal-media-ratio);height:auto; }
.digital-row-equal-height img { object-fit:contain; }
.digital-work-perekrestok figcaption,.digital-work-phoenix-online figcaption { margin:0 0 12px; }
.digital-row-equal-height figcaption { margin:0; }
.digital-object-model > .media-heading { margin-bottom:12px; }
.work-detail-custom .work-detail-header { margin-bottom:32px; }
.work-detail-custom .work-meta { font-size:10px;gap:4px; }
.work-detail-custom .work-back { margin-bottom:16px; }
.work-detail-custom .work-detail-title { margin-bottom:14px; }
@media(min-width:1024px) {
  .stage:has(.digital-work) { margin-inline:-100vw; padding-inline:100vw; pointer-events:none; }
  .stage:has(.digital-work) > #media-stage { pointer-events:auto; }
}
@media(max-width:1023px) {
  .digital-row-wide-four,.digital-work-phoenix-online .digital-row-wide-four { width:100%;margin-left:0; }
}
@media(max-width:600px) {
  .digital-row { gap:10px; }
  .digital-row-wide-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .digital-row-phone .digital-phone { width:55%; }
  .work-detail-custom .work-detail-header { margin-bottom:24px; }
}

/* Archive cases: quiet controls and motion contained by each physical medium. */
.digital-row-half,.case-half { width:50%; }
.digital-row-four { grid-template-columns:repeat(4,minmax(0,1fr)); }
.digital-row-wide-three { grid-template-columns:repeat(3,minmax(0,1fr));width:calc(100vw - 2 * var(--page-gutter));margin-left:calc(100% - 100vw + 2 * var(--page-gutter)); }
.digital-row-wide-three .media-frame { aspect-ratio:4/3; }
.digital-row-wide-three img { object-fit:cover; }
.case-controls { display:flex;align-items:center;gap:12px;font-size:10px;line-height:1.5;color:#999;margin-block:12px;flex-wrap:wrap; }
.case-controls-label { margin-right:auto; }
.case-controls button { background:none;border:0;padding:4px 0;font:inherit;color:#999;cursor:pointer; }
.case-controls button[aria-pressed="true"] { color:#111; }
.case-controls button:focus-visible { outline:1px dotted currentColor;outline-offset:4px; }
.case-cycle-stage { display:grid; }
.case-cycle-stage > .media-item { grid-area:1/1; }
.case-cycle-stage > [hidden] { display:none; }
.case-comparison .comparison-frame { background:#fff; }
.case-comparison .media-heading { font-size:10px; }
.digital-work-29di .digital-banners .media-item { width:clamp(140px,17vw,260px); }
.digital-work-29di .digital-banners .media-frame { aspect-ratio:1; }
.digital-work-29di > .digital-row-one:has(video[data-autoplay]:not([controls])) { width:62%;justify-self:center; }
.digital-work-29di video:not([data-autoplay]) { cursor:auto; }
.solar-inspection { min-width:0; }
.solar-inspection-frame { position:relative;overflow:hidden;background:#111; }
.solar-base,.solar-sharp { display:block;width:100%;height:100%;object-fit:cover!important; }
.solar-base { transition:filter .6s ease,opacity .6s ease; }
.solar-detections { position:absolute;inset:0;opacity:0;transition:opacity .5s;pointer-events:none; }
.solar-sharp { position:absolute;inset:0; }
.is-inspecting .solar-base { filter:blur(7px) saturate(.55);opacity:.65; }
.is-inspecting .solar-detections { opacity:1; }
.solar-target { position:absolute;border:1px solid #e2ffef;box-shadow:0 0 0 1px #0002; }
.solar-target::before,.solar-target::after { content:'';position:absolute;width:9px;height:9px;border:2px solid #d4ffec; }
.solar-target::before { left:-2px;top:-2px;border-right:0;border-bottom:0; }
.solar-target::after { right:-2px;bottom:-2px;border-left:0;border-top:0; }
.solar-target-label { position:absolute;left:-1px;top:-24px;font-size:clamp(7px,.65vw,10px);line-height:18px;background:#d4ffec;color:#13342d;padding:0 5px;white-space:nowrap; }
.solar-target-1 .solar-target-label { top:auto;bottom:-24px; }
.solar-target-2 .solar-target-label { top:-26px; }
.solar-scan { position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 3px,#c6ffe509 3px 4px); }
.solar-scan::after { content:'';position:absolute;inset:0 0 auto;height:1px;background:#baffde66;box-shadow:0 -10px 28px 8px #baffde18;animation:solar-scan 5s linear infinite; }
@keyframes solar-scan { from{top:0}to{top:100%} }
.solar-object-index { display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;gap:16px;height:160px;opacity:0;visibility:hidden;transition:opacity .4s;margin-top:14px; }
.is-inspecting .solar-object-index { opacity:1;visibility:visible; }
.solar-object { display:grid;gap:8px;min-width:0; }
.solar-object img { height:130px;width:100%;object-fit:contain;object-position:left bottom; }
.solar-object figcaption,.solar-station-name { font-size:9px;line-height:1.5;color:#888; }
.mcc-pattern { display:grid;grid-template-columns:repeat(3,1fr);aspect-ratio:16/9;overflow:hidden; }
.mcc-pattern-column { overflow:hidden; }
.mcc-pattern-column.column-0 { background:#f00069;color:white; }
.mcc-pattern-column.column-1 { background:#bbd940;color:#00936b; }
.mcc-pattern-column.column-2 { background:#8470b4;color:white; }
.mcc-pattern-track { animation:case-vertical-strip 14s linear infinite;animation-play-state:paused; }
.mcc-pattern-column:nth-child(2) .mcc-pattern-track { animation-direction:reverse; }
.mcc-pattern.is-visible .mcc-pattern-track { animation-play-state:running; }
.mcc-pattern-group { display:grid; }
.mcc-pattern svg { display:block;width:100%;height:auto; }
@keyframes case-vertical-strip { to { transform:translateY(-50%); } }
.mcc-badge-row { display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch; }
.mcc-announcement { display:grid;gap:22px; }
.mcc-announcement-variants { display:grid;grid-template-columns:repeat(3,1fr);gap:10px; }
.mcc-badge-wind { display:flex;align-items:center;justify-content:center;min-width:0; }
.mcc-badge-response { width:86%;transform:rotate(var(--badge-turn,0deg));transform-origin:50% 5%;transition:transform .65s cubic-bezier(.2,.75,.3,1); }
.mcc-badge-response .media-item { transform-origin:50% 5%;animation:club-badge-wind 5.6s ease-in-out infinite;animation-play-state:paused; }
.mcc-badge-wind.is-visible .media-item { animation-play-state:running; }
@keyframes club-badge-wind { 0%,100%{transform:rotate(-3deg)}45%{transform:rotate(3deg)}75%{transform:rotate(-1deg)} }
.digital-row-speaker { grid-template-columns:1.78fr 1fr; }
.case-qr-row { display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start; }
@media(max-width:1023px){.digital-row-wide-three{width:100%;margin-left:0}.solar-target-label{font-size:9px}}
@media(max-width:600px){.case-controls{gap:9px;font-size:9px}.solar-object-index{height:120px;gap:10px}.solar-object img{height:90px}.solar-target-label{font-size:6px;padding:0 2px;line-height:14px;top:-18px}.mcc-badge-row,.case-qr-row{gap:12px}.case-comparison .comparison-hint{display:none}.digital-row-four{gap:6px}}
@media(prefers-reduced-motion:reduce){.solar-base,.solar-detections,.solar-object-index,.mcc-badge-response{transition:none}.mcc-pattern-track,.mcc-badge-response .media-item,.solar-scan::after{animation:none!important}}
.case-comparison .comparison-hint { position:static;transform:none;background:transparent;color:#999;box-shadow:none;font-size:9px;padding:0; }
.case-comparison .media-heading { display:flex;justify-content:space-between;gap:12px;align-items:baseline; }
.mcc-announcement { grid-template-columns:repeat(2,minmax(0,1fr));align-items:start; }
.mcc-announcement-variants { display:contents; }
.mcc-announcement > .media-item { grid-column:1/-1; }
.mcc-announcement > .comparison { position:relative; }
.mcc-announcement > .comparison .media-heading { position:absolute;bottom:100%;margin-bottom:8px;white-space:nowrap; }
.mcc-announcement > .comparison .comparison-hint { display:none; }
.mcc-badge-row { margin-top:24px; }
.case-cycle-stage { position:relative; }
.case-cycle-next { position:absolute;inset:0;border:0;background:transparent;cursor:pointer; }
.case-cycle-next:focus-visible { outline:1px dashed #171717;outline-offset:5px; }
.case-comparison .comparison-hint { text-shadow:none; }

/* Archive revision: persistent case navigation and shared blue accent. */
.work-detail-title,.work-detail-custom .work-detail-title { font:700 12px/18px "Courier New",Courier,monospace;letter-spacing:.035em;margin-bottom:22px; }
#project-info .work-back { display:block;font-size:11px;margin:0 0 26px; }
.work-switcher { max-height:calc(100dvh - 420px);overflow-y:auto;padding-bottom:20px; }
.work-switcher .work-filter { text-align:right; }
.work-detail-header:empty { display:none; }
.archive-file:hover,.archive-file:focus-visible { border-color:var(--accent); }
.archive-file-action { color:var(--accent); }
.fresh-liquids > :nth-child(2) img { transform:translateY(6%) scale(1.65); }
.case-cycle-stage > .media-item { position:absolute;inset:0; }
.case-cycle-stage .media-frame { height:100%;aspect-ratio:auto; }
.case-cycle .case-controls { margin:0 0 14px; }
.solar-inspection-frame { isolation:isolate; }
.is-inspecting .solar-base { filter:blur(3px) saturate(.9);opacity:.9; }
.solar-target-1 .solar-target-label { top:-24px;bottom:auto; }
.solar-object-index { position:absolute;inset:0;display:block;height:auto;margin:0;pointer-events:none; }
.solar-object { position:absolute;top:4%;width:21%;height:28%;gap:5px; }
.solar-object:first-child { left:3%; }
.solar-object:nth-child(2) { right:3%; }
.solar-object img { height:100%;width:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 2px 6px #0002); }
.solar-object figcaption { font-size:clamp(7px,.65vw,10px);color:#13342d;background:#d4ffec;padding:2px 5px;margin:0; }
.mcc-badge-wind { align-items:stretch; }
.mcc-badge-response { position:relative;width:90%;height:100%;transform-origin:50% 50%; }
.mcc-badge-response .media-item { position:absolute;inset:0;transform-origin:50% 50%; }
.mcc-badge-response .media-frame { height:100%;aspect-ratio:auto;overflow:visible; }
.mcc-badge-response img { height:100%;object-fit:contain;object-position:center bottom; }
@media(max-width:1023px){.work-switcher{max-height:none;overflow:visible}.work-switcher .work-filter{text-align:left}#project-info:has(.work-back){position:relative}.media-controls:has(.work-switcher){position:sticky;top:0;z-index:5;background:white;padding:12px 0}.solar-object-index{height:auto}.solar-object img{height:100%}}
/* PDF pages form one open, full-screen scroll surface over the blurred site. */
.image-viewer.is-document[open] { --document-top:76px;--document-bottom:70px;display:block;overflow-y:auto;overscroll-behavior:contain;padding:var(--document-top) 0 var(--document-bottom); }
.image-viewer.is-document .viewer-content { display:block;width:min(76vw,820px);margin:0 auto; }
@media(min-width:1024px) {
  .image-viewer.is-document .viewer-content { width:min(76vw,820px,calc((100dvh - var(--document-top) - var(--document-bottom)) * var(--document-ratio,.5625))); }
}
.image-viewer.is-document .viewer-viewport { width:100%;height:auto;max-width:none;overflow:visible;background:transparent; }
.image-viewer.is-document .viewer-frame { width:100%;gap:24px; }
.image-viewer.is-document .viewer-document-title { position:fixed;top:22px;left:50%;transform:translateX(-50%);z-index:2;background:var(--page-bg);padding:6px 12px; }
.image-viewer.is-document .viewer-navigation { position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:var(--page-bg);padding:9px 16px;z-index:2; }
.image-viewer.is-document::backdrop { background:rgb(255 255 255 / .3);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px); }
@media(max-width:600px){.image-viewer.is-document .viewer-content{width:92vw}.image-viewer.is-document .viewer-document-title{width:92vw}}
.digital-phone .media-frame { clip-path:none;background:transparent; }
@media(max-width:1023px){#project-info .work-back{position:fixed;bottom:16px;left:var(--page-gutter);z-index:8;background:white;padding:8px 12px;margin:0;border:1px solid #ddd}}
.solar-target-1 .solar-target-label { left:auto;right:0; }

/* Author copy: the case heading leads; return lives with the archive filters. */
.media-controls > .work-back { display:block;width:100%;text-align:right;font:12px/18px "Courier New",Courier,monospace;margin:0 0 20px; }
.work-copy dd { white-space:pre-line; }
.section-description { margin-top:22px; }
@media(min-width:1024px){
  .info-column { min-height:0; }
  #project-info { max-height:calc(100dvh - 325px);overflow-y:auto;scrollbar-width:thin; }
  .media-controls:has(.work-switcher):not([hidden]) { display:flex;flex-direction:column;max-height:calc(100% - 20px);overflow:hidden; }
  .media-controls > .work-back { flex-shrink:0; }
  .work-switcher { min-height:0;overflow-y:auto; }
}
@media(max-width:1023px){.media-controls > .work-back { text-align:left;margin-bottom:16px; }}

/* Stable desktop archive baseline, independent of case copy length. */
@media(min-width:1024px){
  .archive { --filter-top:clamp(410px,60dvh,560px);grid-template-rows:var(--content-offset) calc(var(--filter-top) - var(--header-height) - var(--content-offset)) minmax(0,1fr); }
  .info-column { grid-row:1 / 3;align-self:start;padding-top:var(--content-offset);padding-bottom:32px; }
  #project-info { max-height:calc(var(--filter-top) - var(--header-height) - 32px); }
  .info-column .project-deadline { top:0; }
  .info-column:has(.project-deadline) #project-info { max-height:calc(var(--filter-top) - var(--header-height) - var(--content-offset) - 32px); }
}
.media-controls > .work-back { margin:20px 0 0; }
.digital-object-model { width:100%;padding:24px 8%; }
.digital-object-model .media-frame { aspect-ratio:1; }
.digital-object-model.is-model-visible { animation:apple-sway 5s ease-in-out infinite; }
@keyframes apple-sway { 0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-8px) rotate(1deg)} }
@media(prefers-reduced-motion:reduce){.digital-object-model{animation:none!important}}

/* Copy stays fully open; all cases share the tallest measured sidebar. */
.sidebar-copy-probe { position:fixed;left:-10000px;top:0;visibility:hidden;pointer-events:none;font-size:var(--project-font-size);line-height:1.35;text-align:right; }
.sidebar-copy-probe dd { white-space:pre-line; }
#project-info,.info-column:has(.project-deadline) #project-info,.work-switcher { max-height:none;overflow:visible;scrollbar-width:none; }
@media(min-width:1024px){
  html { height:100%;overflow:clip; }
  body { height:100dvh;overflow:clip; }
  .stage { align-self:start; }
  .media-controls:has(.work-switcher):not([hidden]) { height:100%;max-height:none;overflow:visible;padding-bottom:28px; }
  .media-controls > .work-back { margin-top:auto;padding-top:32px; }
  .work-switcher { flex-shrink:0;padding-bottom:0; }
}
@media(max-width:1023px){.media-controls > .work-back{margin-top:40px}}

/* The desktop index is stationary; only the media stage scrolls. */
.sidebar-nav-probe { position:fixed;left:-10000px;top:0;visibility:hidden;pointer-events:none; }
@media(min-width:1024px){
  #project-info,.sidebar-copy-probe { font-size:var(--sidebar-copy-font,var(--project-font-size)); }
  #project-info .project-intro,.sidebar-copy-probe .project-intro,
  #project-info .work-detail-title,.sidebar-copy-probe .work-detail-title,
  #project-info .project-facts > div,.sidebar-copy-probe .project-facts > div { margin-bottom:var(--sidebar-copy-gap,20px); }
  #project-info .project-facts > div:last-child,.sidebar-copy-probe .project-facts > div:last-child { margin-bottom:0; }
  #project-info .section-description,.sidebar-copy-probe .section-description { margin-top:var(--sidebar-copy-gap,20px); }
  .work-switcher { row-gap:7px; }
  .media-controls > .work-back { padding-top:20px;margin-bottom:0; }
}

@media(min-width:1024px) and (max-height:740px){
  .work-switcher { row-gap:4px; }
  .work-switcher .work-filter { line-height:16px; }
}

/* Archive cards: fixed columns, stable file indices and original video covers. */
.type-overview { grid-template-columns:repeat(2,minmax(0,1fr));gap:24px; }
.type-overview .archive-file { padding:16px;background:transparent; }
.type-overview .archive-file-title { min-height:0;margin-bottom:10px;font-size:12px; }
.type-overview .archive-file-meta { line-height:1.5; }
.type-overview .work-cover { flex-shrink:0;border:0;box-shadow:none; }
.type-overview .work-cover img,.type-overview .work-cover video { height:100%;margin:0; }
.type-overview .archive-file:focus-visible { outline:1px solid var(--accent);outline-offset:3px; }
@media(max-width:1023px) {
  .type-overview { grid-template-columns:minmax(0,1fr);gap:24px; }
  .type-overview .archive-file { padding:16px; }
  .type-overview .archive-file-meta,.type-overview .archive-file-count,.type-overview .archive-file-action { font-size:10px; }
}

/* Mobile archive index: persistent dock and an unfolding navigation sheet. */
.mobile-navigation { display:none; }
.mobile-project-description { position:fixed;inset:auto 12px calc(var(--mobile-bar-height,68px) + 12px);width:calc(100% - 24px);max-width:460px;max-height:calc(100dvh - var(--mobile-bar-height,68px) - 48px);margin:0 auto;padding:22px 24px 26px;border:0;border-top:2px solid var(--accent);background:var(--page-bg);color:#333;font:inherit;overflow-y:auto;box-shadow:0 16px 60px #00000010; }
.mobile-project-description::backdrop { background:#ffffff55;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px); }
.mobile-description-topline { display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:9px;color:#888;margin-bottom:18px; }
.mobile-description-topline button { min-height:44px;margin:-10px -8px;padding:8px;color:#555; }
.mobile-description-heading { display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px;padding-bottom:20px;border-bottom:1px solid #ddd; }
.mobile-description-heading h2 { font:inherit;font-size:26px;letter-spacing:-1px;font-weight:400; }
.mobile-description-heading > span { font-size:24px;color:var(--accent); }
.mobile-description-copy { font-size:12px;line-height:1.65;text-align:left; }
.mobile-description-copy .project-deadline { position:static;margin-bottom:20px;font-size:10px;white-space:normal;color:var(--accent); }
.mobile-description-copy .project-facts > div { display:grid;grid-template-columns:58px minmax(0,1fr);gap:10px; }
.mobile-description-copy .project-facts dt { font-size:10px;color:#999; }
.mobile-description-copy .project-intro,.mobile-description-copy .project-facts > div { margin-bottom:18px; }
.mobile-description-copy .project-facts > div:last-child { margin-bottom:0; }
.mobile-project-description[open] { animation:description-appear .22s ease-out; }
@keyframes description-appear { from {opacity:0;transform:translateY(14px)} to {opacity:1;transform:translateY(0)} }
@media(prefers-reduced-motion:reduce) { .mobile-project-description[open] {animation:none} }
.fly-home { position:relative;overflow:visible;width:100%;height:100%; }
.fly-home-challenge { position:absolute;inset:20px 8px auto;text-align:center;font-size:12px;line-height:18px;color:#888; }
.fly-home-playground { position:absolute;inset:68px 0 0;overflow:visible; }
.fly-home-status { position:absolute;inset:auto 12px 22px;z-index:2;text-align:center;pointer-events:none;font-size:11px;line-height:1.5;color:#888; }
.fly-home-swatter { position:absolute;width:var(--swatter-size);height:calc(var(--swatter-size) * 1.95);z-index:1;pointer-events:none;transform-origin:50% 25%;color:var(--accent); }
.fly-swatter-label { position:absolute;left:0;top:-20px;white-space:nowrap;font-size:9px;line-height:14px;color:#888; }
.fly-swatter-head { position:absolute;inset:0 0 auto;height:var(--swatter-size);border:2px solid currentColor;border-radius:8px;background:repeating-linear-gradient(0deg,transparent 0 9px,#0100fe55 9px 10px),repeating-linear-gradient(90deg,transparent 0 9px,#0100fe55 9px 10px);box-shadow:inset 0 0 0 4px #fff9; }
.fly-swatter-head::after { content:'+';position:absolute;inset:0;display:grid;place-items:center;font-size:24px;font-weight:400; }
.fly-swatter-handle { position:absolute;top:calc(var(--swatter-size) - 2px);left:calc(50% - 9px);width:18px;height:calc(var(--swatter-size) * .9);border:2px solid currentColor;border-radius:0 0 7px 7px;background:#fff; }
.fly-swatter-handle::after { content:'';position:absolute;bottom:7px;left:3px;right:3px;height:13px;border:1px solid currentColor;border-radius:3px; }
.is-caught .fly-home-swatter { animation:fly-swatter-strike 3.4s both; }
.is-caught .fly-home-object img,.is-caught .fly-home-object video { animation:fly-stunned 3.4s both; }
@keyframes fly-swatter-strike {
  0%{opacity:0;transform:translate(75px,-100px) rotate(-38deg) scale(1.35)}
  6%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}
  9%{transform:translate(0,3px) rotate(2deg) scale(.97)}
  12%,75%{opacity:1;transform:translate(0,0) rotate(0) scale(1)}
  91%,100%{opacity:0;transform:translate(90px,80px) rotate(32deg) scale(1.15)}
}
@keyframes fly-stunned {
  0%,6%{transform:rotate(0) scale(1)}
  9%,62%{transform:rotate(-16deg) scale(.82,.72)}
  69%,78%{transform:rotate(12deg) scale(.94)}
  82%{transform:rotate(-9deg) scale(1)}
  86%{transform:rotate(8deg)}
  91%{transform:rotate(-5deg)}
  100%{transform:rotate(0) scale(1)}
}
@media(prefers-reduced-motion:reduce) { .is-caught .fly-home-swatter,.is-caught .fly-home-object img,.is-caught .fly-home-object video { animation:none; } }
.fly-home-object { position:absolute;left:0;top:0;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent; }
.fly-home-object img,.fly-home-object video { display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none; }
.fly-home-object video { position:absolute;inset:0;opacity:0;mask:url('../assets/fly/fly.png') center/contain no-repeat;-webkit-mask:url('../assets/fly/fly.png') center/contain no-repeat; }
.fly-home-object video.is-playing { opacity:1; }
@media(max-width:1023px) {
  html.is-fly-home,html.is-fly-home body { height:100dvh;overflow:hidden; }
  .is-fly-home body { padding:0; }
  .is-fly-home .archive { display:block; }
  .is-fly-home .info-column,.is-fly-home .media-controls { display:none!important; }
  .is-fly-home .stage { margin:0;padding:max(12px,env(safe-area-inset-top)) 12px 12px;height:calc(100dvh - var(--mobile-bar-height));min-height:0;overflow:visible; }
  .is-fly-home #media-stage { height:100%;min-height:0; }
  :root { --mobile-bar-height:calc(68px + env(safe-area-inset-bottom,0px)); }
  body { padding-top:max(24px,env(safe-area-inset-top));padding-bottom:calc(var(--mobile-bar-height) + 24px); }
  body > .header { display:none; }
  .technical-feedback,.technical-cursor { display:none!important; }
  .mobile-navigation { display:block;position:fixed;inset:0;z-index:150;pointer-events:none; }
  .mobile-bottom-bar { position:absolute;inset:auto 0 0;display:grid;grid-template-columns:52px minmax(0,1fr) 52px;align-items:center;min-height:var(--mobile-bar-height);padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));background:color-mix(in srgb,var(--page-bg) 94%,transparent);border-top:1px solid #dedede;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);pointer-events:auto; }
  .mobile-bottom-bar .name { grid-column:2;grid-row:1;width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;font-size:clamp(10px,3vw,12px);line-height:1.3;text-align:center;letter-spacing:0;color:#171717;opacity:1; }
  .mobile-description-toggle { grid-column:1;grid-row:1;height:48px;width:84px;font-size:10px;white-space:nowrap;color:#555;border:1px solid #ddd;text-align:center;touch-action:manipulation; }
  .mobile-bottom-bar.has-description { grid-template-columns:84px minmax(0,1fr) 48px;column-gap:10px; }
  .mobile-bottom-bar.has-description .name { min-width:0;white-space:normal;font-size:clamp(9px,2.6vw,12px);padding:0 5px; }
  .has-mobile-description .info-column { display:none; }
  html[data-mobile-description] { overflow:hidden; }
  html[data-mobile-description] body { position:fixed;top:var(--mobile-description-scroll);width:100%;overflow:hidden; }
  .mobile-menu-toggle { grid-column:3;grid-row:1;width:48px;height:48px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px; }
  .mobile-menu-toggle span { display:block;width:23px;height:1px;background:currentColor;transition:transform .45s cubic-bezier(.2,.8,.2,1); }
  .is-open .mobile-menu-toggle span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .is-open .mobile-menu-toggle span:last-child { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-menu-panel { position:absolute;inset:0 0 var(--mobile-bar-height);overflow-y:auto;overscroll-behavior:contain;padding:max(26px,env(safe-area-inset-top)) var(--page-gutter) 28px;background:color-mix(in srgb,var(--page-bg) 97%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);visibility:hidden;clip-path:inset(100% 0 0);transform:translateY(20px);transition:clip-path .48s cubic-bezier(.22,1,.36,1),transform .48s cubic-bezier(.22,1,.36,1),visibility .48s;pointer-events:auto; }
  .is-open .mobile-menu-panel { visibility:visible;clip-path:inset(0);transform:none; }
  .mobile-menu-heading { display:flex;justify-content:space-between;gap:12px;font-size:10px;color:#888;border-bottom:1px dashed #ccc;padding-bottom:16px;margin-bottom:26px; }
  .mobile-menu-panel .index { display:block;margin:0; }
  .mobile-menu-panel .index > .section-label { display:block;margin-bottom:12px; }
  .mobile-menu-panel .index > nav { display:block; }
  .mobile-menu-panel .project-row { min-height:44px;grid-template-columns:minmax(0,1fr) minmax(100px,.65fr);gap:10px;font-size:12px;--rest-opacity:.65; }
  .mobile-menu-panel .project-type { font-size:10px;text-align:right; }
  .mobile-menu-panel .project-row[aria-current="true"], .mobile-menu-panel .filter[aria-pressed="true"], .mobile-menu-panel a[aria-current="page"] { color:var(--accent);opacity:1; }
  .mobile-menu-panel .index > .filters { display:grid;grid-template-columns:1fr;gap:8px;border-top:1px dashed #ccc;padding-top:22px;margin-top:22px; }
  .mobile-menu-panel .filters > h2 { grid-column:1;padding:0; }
  .mobile-menu-panel #filters { grid-column:1;row-gap:0; }
  .mobile-menu-panel .filter { min-height:44px;--rest-opacity:.7; }
  .mobile-menu-panel .header-nav { display:flex;justify-content:space-between;gap:16px;width:100%;margin:0 0 26px;padding:0 0 14px;border-top:0;border-bottom:1px dashed #ccc; }
  .mobile-menu-panel .header-nav a, .mobile-menu-panel .header-nav > span { font-size:11px;min-height:44px;display:inline-flex;align-items:center; }
  .mobile-menu-panel .unavailable { opacity:.4; }
  .mobile-menu-panel .project-list > li, .mobile-menu-panel .filters, .mobile-menu-panel .header-nav { opacity:0;transform:translateY(18px);transition:opacity .25s,transform .35s; }
  .is-open .project-list > li, .is-open .filters, .is-open .header-nav { opacity:1;transform:none;transition-delay:.12s; }
  .is-open .project-list > li:nth-child(2) { transition-delay:.15s; }
  .is-open .project-list > li:nth-child(3) { transition-delay:.18s; }
  .is-open .project-list > li:nth-child(4) { transition-delay:.21s; }
  .is-open .project-list > li:nth-child(5) { transition-delay:.24s; }
  .is-open .project-list > li:nth-child(6) { transition-delay:.27s; }
  .is-open .project-list > li:nth-child(7) { transition-delay:.3s; }
  .is-open .filters { transition-delay:.33s; }
  .is-open .header-nav { transition-delay:.36s; }
  html[data-mobile-menu] { overflow:hidden; }
  html[data-mobile-menu] body { position:fixed;top:var(--mobile-menu-scroll);width:100%;overflow:hidden; }
}
@media(prefers-reduced-motion:reduce) {
  .mobile-navigation *, .mobile-navigation *::before, .mobile-navigation *::after { transition:none!important; }
}

/* Mobile case reading: native scrolling and compact, single-line navigation. */
.mobile-object-hint,.mobile-scroll-hint,.back-to-top { display:none; }
@media(max-width:1023px) {
  .info-column { max-width:none;width:100%; }
  #project-info,#project-info:has(.project-facts),.project-intro,.project-facts,.section-description,.work-copy,.citydrive-intro,.about-content,.mobile-description-copy { text-align:justify;text-align-last:justify;text-justify:inter-word;max-width:none;width:100%; }
  .media-controls,.media-controls:has(.work-switcher):not([hidden]) { position:relative;top:auto;z-index:auto;display:block;width:100%;height:auto;max-height:none;background:transparent;padding:0;margin-bottom:24px; }
  .media-controls .internal-filters { display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:flex-start;align-items:center;gap:22px;max-height:none;width:100%;overflow-x:auto;overflow-y:hidden;padding:0 0 8px; }
  .media-controls .internal-filter,.media-controls .work-filter { flex:0 0 auto;white-space:nowrap;text-align:left;min-height:44px; }
  .media-controls > .work-back { position:static;width:auto;margin:12px 0 0;padding:0;min-height:44px;text-align:left;border:0;background:none; }
  .mobile-scroll-rail { touch-action:pan-x pan-y;scrollbar-width:none;overscroll-behavior-x:contain; }
  .mobile-scroll-rail::-webkit-scrollbar { display:none;width:0;height:0; }
  .mobile-scroll-hint { text-align:center; }
  .sticker-pack .sticker-scroll-hint { margin:12px 0 24px; }
  .mobile-scroll-hint,.mobile-object-hint { display:block;color:#888;font-size:10px;line-height:1.5;margin:0 0 8px; }
  .mobile-object-hint { text-align:center;margin:12px 0 0; }
  .photowall-model { touch-action:pan-y; }
  .photowall-model .photowall-slide,.photowall-model img,.hanging-badge { touch-action:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none; }
  .hanging-badge { min-width:44px;min-height:44px;touch-action:pan-y pinch-zoom; }
  .hanging-badge .badge-assembly { will-change:transform; }
  .hanging-badge .badge-card { will-change:transform; }
  .badge-touch-hint { grid-column:1 / -1; }
  .fresh-swipe-hint { grid-column:1 / -1; }
  .fresh-garment,.fresh-garment img { touch-action:pan-y pinch-zoom;user-select:none;-webkit-user-select:none;-webkit-user-drag:none; }
  .fresh-garment > .media-item { visibility:visible;transition:opacity 200ms ease; }
  @media (prefers-reduced-motion:reduce) { .fresh-garment > .media-item { transition:none; } }
  .digital-object-model { animation:none!important; }
  .stage-screen-layouts,.advertalyze-video-pair { grid-template-columns:minmax(0,1fr);gap:20px; }
  .is-square-video { grid-column:1 / -1!important;width:100%!important;max-width:none!important;margin-inline:0!important; }
  .registration-video-anchor { width:100%;height:auto;aspect-ratio:1;margin:0; }
  .registration-video-anchor .media-item { width:100%; }
  .navigation-documentation .curated-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .navigation-documentation .curated-gallery > .media-item:not(.is-square-video) { grid-column:auto; }
  .sticker-pack-collage { display:flex;gap:20px;width:calc(100% + 2 * var(--page-gutter));margin:16px calc(-1 * var(--page-gutter)) 0;aspect-ratio:auto;overflow-x:auto;align-items:center;padding:20px var(--page-gutter);scroll-padding-inline:var(--page-gutter);scroll-snap-type:x proximity; }
  .sticker-pack-collage .sticker-pack-illustration { position:relative;left:auto;top:auto;width:68vw;max-width:360px;flex:0 0 68vw;transform:none;margin:0;scroll-snap-align:start; }
  .sticker-pack-collage .media-frame { aspect-ratio:1; }
  .sticker-pack-collage img { object-fit:contain; }
  .citydrive-guide { width:100%;pointer-events:auto; }
  .citydrive-guide-pages { grid-template-columns:repeat(7,minmax(68vw,1fr));width:calc(100% + 2 * var(--page-gutter));margin-inline:calc(-1 * var(--page-gutter));padding-inline:var(--page-gutter);overflow-x:auto;scroll-padding-inline:var(--page-gutter);scroll-snap-type:x proximity;gap:16px; }
  .citydrive-guide-pages .media-item { scroll-snap-align:start; }
  .advertalyze-archive-composition { isolation:isolate; }
  .advertalyze-clown { position:relative;right:auto;top:auto;width:100%;margin:-140px 0 -48px;z-index:-1; }
  .advertalyze-news { position:relative;z-index:1; }
  .advertalyze-archive-composition .document-archive { position:relative;z-index:1; }
  .back-to-top { display:block;min-height:44px;padding:12px 0;margin:36px 0 8px;font-size:12px;color:#888; }
}

/* A caption belongs to the full row even when the phone itself is narrow. */
.digital-work-perekrestok .digital-row-phone .digital-phone { width:100%; }
.digital-work-perekrestok .digital-row-phone .media-frame { width:38%;margin-inline:auto; }
@media(max-width:600px) { .digital-work-perekrestok .digital-row-phone .media-frame { width:55%; } }

.media-heading-category { text-align:left !important; }

.hanging-badges { position:relative; }
.badge-desktop-hint { position:absolute;left:0;bottom:0;color:var(--media-caption-color);font-size:var(--media-caption-size);line-height:1.5;text-align:left;margin:0; }
@media(max-width:1023px){.badge-desktop-hint { display:none; }}
@media(max-width:1023px){.digital-work-free-collection .digital-row-two { grid-template-columns:minmax(0,1fr); }}

.digital-work-free-collection .digital-row-portrait-videos { grid-template-columns:repeat(2,minmax(0,1fr)); }
.digital-work-free-collection figcaption { margin:0 0 12px;text-align:left; }
.digital-work-free-collection .poster-sized-video video,
.digital-work-free-collection .poster-sized-video img { object-fit:cover; }

/* Recycle It!: identity, paper symbols and publication layouts. */
.digital-row-recycle-identity { grid-template-columns:1fr 1fr;align-items:center; }
.digital-row-recycle-identity > .media-item { width:90%;justify-self:center; }
.recycle-palette { display:grid;gap:clamp(18px,3vw,44px);justify-self:center; }
.recycle-color-circle { width:clamp(36px,4.5vw,66px);aspect-ratio:1;border-radius:50%; }
.recycle-color-code { font-size:10px;line-height:1.5;white-space:pre-line;color:#999;margin:8px 0 0;text-align:left; }
.digital-row-recycle-paper { grid-template-columns:repeat(4,minmax(0,1fr)); }
.digital-row-recycle-symbols { grid-template-columns:repeat(5,minmax(0,1fr)); }
.digital-row-recycle-paper .media-frame { aspect-ratio:1.5; }
.digital-row-recycle-symbols .media-frame { aspect-ratio:1.3; }
.digital-row-recycle-ending { grid-template-columns:0.398fr 1fr;align-items:stretch; }
.digital-row-recycle-ending .media-frame { height:100%; }
@media(max-width:600px) {
 .recycle-color-code { font-size:8px; }
 .recycle-palette { gap:14px; }
 .digital-work-recycle-it { gap:24px; }
}

/* A standalone resume file, sharing the archive's original header placement. */
.is-resume-page .archive > .index,
.is-resume-page .info-column,
.is-resume-page .media-controls { display:none!important; }
.is-resume-page .stage { grid-column:1/-1;height:calc(100dvh - var(--header-height));margin:0;padding:12px 0 clamp(92px,14dvh,148px);overflow:visible; }
.is-resume-page #media-stage { width:100%;height:100%; }
.resume-page { --resume-font-size:clamp(14px,min(1.3vw,2.2dvh),19px);position:relative;width:100%;height:100%;margin:0;color:#555;isolation:isolate; }
.resume-details { position:absolute;left:0;bottom:0;width:46%;min-width:0;z-index:2; }
.resume-portrait { position:absolute;right:0;bottom:0;width:var(--resume-block-height,min(22%,34dvh));aspect-ratio:1;margin:0;overflow:hidden;z-index:2; }
.resume-game { position:fixed;inset:0;pointer-events:none;z-index:3; }
.resume-game .fly-home-challenge { inset:var(--media-top) var(--page-gutter) auto auto;text-align:right;font-size:var(--resume-font-size);pointer-events:auto;color:#555; }
.resume-game .fly-home-playground { inset:0; }
.resume-game .fly-home-object { pointer-events:auto;cursor:pointer; }
.resume-game .fly-home-status { inset:auto var(--page-gutter) 20px;text-align:center; }
.resume-photo { display:block;width:100%;height:100%;object-fit:cover; }
.resume-fly { position:absolute;width:58%;aspect-ratio:1;left:24%;top:20%;pointer-events:none;animation:resume-fly-glitch 8s steps(1,end) infinite;animation-play-state:paused; }
.is-fly-moving .resume-fly { animation-play-state:running; }
.resume-fly img,.resume-fly video { display:block;width:100%;height:100%;object-fit:contain; }
.resume-fly video { position:absolute;inset:0;opacity:0;mask:url('../assets/fly/fly.png') center/contain no-repeat;-webkit-mask:url('../assets/fly/fly.png') center/contain no-repeat; }
.resume-fly video.is-playing { opacity:1; }
.resume-copy { font-size:var(--resume-font-size);line-height:1.25; }
.resume-copy p { margin:0 0 clamp(16px,2.5dvh,28px); }
.resume-download { display:inline-block;margin-top:clamp(16px,3.8dvh,42px);padding:10px 0;color:#555;font-size:inherit;line-height:1.3;transition:color .15s; }
.resume-details { font-size:var(--resume-font-size); }
.resume-download:hover,.resume-download:focus-visible { color:var(--accent);font-weight:400; }
@keyframes resume-fly-glitch {
  0%,31%,38%,67%,79%,100% { opacity:1;transform:none;filter:none;clip-path:inset(0); }
  32%,36% { transform:translate(7px,-2px);filter:drop-shadow(-7px 0 #0100fe);clip-path:inset(16% 0 24%); }
  33%,37% { transform:translate(-6px,3px);clip-path:inset(42% 0 5%); }
  34%,68%,78% { opacity:0; }
  35%,69% { opacity:1;transform:translate(4px,0);clip-path:inset(0 0 58%); }
  70% { opacity:0; }
}
@media(max-width:1023px) {
  .is-resume-page .stage { height:auto;padding:0;margin:0; }
  .is-resume-page #media-stage { height:auto; }
  .resume-page { height:auto;max-width:600px;margin:auto;padding-top:8px; }
  .resume-portrait { position:relative;width:min(100%,440px);margin:0 auto 28px; }
  .resume-details { position:relative;width:100%;font-size:15px; }
  .resume-copy { font-size:15px;line-height:1.65; }
  .resume-download { margin-top:24px; }
}
@media(prefers-reduced-motion:reduce) {
  .resume-fly { animation:none; }
  .resume-fly video { display:none; }
}
