@font-face { font-family: 'Clash Display'; src: url('/fonts/ClashDisplay-Regular.woff2') format('woff2'); font-style: normal; font-weight: 400; font-display: swap; }
:root { color-scheme: light; font-family: 'Clash Display', Arial, sans-serif; color: #181818; background: #fff; --muted: #707070; --edge: clamp(20px, 4vw, 64px); --gap: 64px; --preview-height: calc(100dvh - 140px); --expanded-height: calc(var(--preview-height) * 1.12); }
* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; overflow: hidden; overscroll-behavior: none; }
body { height: 100dvh; font-size: 14px; line-height: 1.6; font-weight: 400; letter-spacing: -.012em; -webkit-font-smoothing: antialiased; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; min-width: 44px; min-height: 44px; -webkit-tap-highlight-color: transparent; }
[hidden] { display: none !important; }
*:focus { outline: none; }
button:focus-visible, a:focus-visible { opacity: .55; }
.device-screen:focus-visible { filter: brightness(.85); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.site-header, .site-footer, .project-bar { display: flex; justify-content: space-between; align-items: center; }
.site-header { justify-content: center; position: absolute; top: max(12px, env(safe-area-inset-top)); left: var(--edge); right: var(--edge); z-index: 1; }
.wordmark { font-size: 16px; font-weight: 400; letter-spacing: -.06em; min-height: 44px; display: inline-flex; align-items: center; }
.gallery { position: absolute; inset: 55px 0 30px; padding-bottom: 32px; display: flex; align-items: center; gap: var(--gap); padding-left: max(0px, calc((100vw - var(--preview-height) * var(--first-ratio)) / 2)); padding-right: max(0px, calc((100vw - var(--preview-height) * var(--last-ratio)) / 2)); overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.gallery::-webkit-scrollbar { display: none; }
.project-card { position: relative; overflow: visible; flex: 0 0 auto; width: calc(var(--preview-height) * var(--ratio)); height: var(--preview-height); scroll-snap-align: center; scroll-snap-stop: always; }
.project-card img, .neighbor img { position: absolute; top: 0; left: calc(-100% * var(--trim) / (1 - 2 * var(--trim))); display: block; width: calc(100% / (1 - 2 * var(--trim))); height: 100%; object-fit: contain; }
.site-footer { z-index: 2; justify-content: center; position: absolute; bottom: max(6px, env(safe-area-inset-bottom)); left: var(--edge); right: var(--edge); gap: 16px; min-height: 44px; }
.site-footer > a { min-height: 44px; display: flex; align-items: center; }
dialog { border: 0; padding: 0; margin: 0; width: 100%; max-width: none; height: 100dvh; max-height: none; background: #fff; color: inherit; overflow: hidden; }
dialog::backdrop { background: #fff; }
.project-bar { position: relative; justify-content: center; height: 64px; padding: 0 var(--edge); }
.project-layout { height: calc(100% - 64px); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-width: none; }
.project-layout::-webkit-scrollbar { display: none; }
.stage { height: var(--expanded-height); position: relative; min-width: 0; min-height: 0; }
.artwork { overflow: hidden; position: absolute; left: 50%; top: 0; height: 100%; width: calc(var(--expanded-height) * var(--ratio)); transform: translateX(-50%); }
.artwork > img, .artwork > iframe { position: absolute; top: 0; left: calc(-100% * var(--trim) / (1 - 2 * var(--trim))); width: calc(100% / (1 - 2 * var(--trim))); height: 100%; object-fit: contain; border: 0; }
.artwork > iframe { pointer-events: none; opacity: 0; transition: opacity 200ms ease; }
.artwork > iframe.ready { opacity: 1; }
.neighbor { overflow: visible; position: absolute; top: 0; height: 100%; width: calc(var(--expanded-height) * var(--neighbor-ratio)); }
.neighbor-previous { right: calc(50% + var(--expanded-height) * var(--ratio) / 2 + var(--gap)); }
.neighbor-next { left: calc(50% + var(--expanded-height) * var(--ratio) / 2 + var(--gap)); }
.details { padding: 24px max(var(--edge), calc((100vw - 600px) / 2)) max(32px, env(safe-area-inset-bottom)); scrollbar-width: none; }
.details::-webkit-scrollbar { display: none; }
h1 { text-align: left; font: inherit; font-weight: 400; letter-spacing: -.02em; margin: 0 0 22px; }
.description { font: inherit; margin: 0 0 16px; }
.facts { margin: 32px 0; }
.facts:empty { display: none; }
.facts div { display: grid; grid-template-columns: 144px minmax(0, 1fr); gap: 24px; margin-bottom: 13px; }
.facts dt { color: var(--muted); }
.facts dd { margin: 0; }
figure { flex: 0 0 min(65vw, 260px); margin: 0; scroll-snap-align: start; }
.media-gallery { display: flex; gap: 16px; margin-top: 32px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.media-gallery::-webkit-scrollbar { display: none; }
figure img { display: block; width: 100%; height: auto; background: #fff; }
figcaption { color: var(--muted); font: inherit; margin-top: 16px; }
.no-script { position: absolute; top: 45%; width: 100%; text-align: center; }
@media (max-width: 700px) {
 :root { --gap: 32px; --preview-height: min(calc(100dvh - 110px), 65dvh, calc((100vw - 120px) / var(--widest-ratio) / 1.12));  }
 .details { padding-top: 24px; }
 .facts div { grid-template-columns: 1fr; gap: 5px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; } }

.device-screen { z-index: 2; position: absolute; display: flex; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; scrollbar-width: none; background: #000; }
.device-screen img { display: block; flex: 0 0 100%; width: 100%; height: 100%; object-fit: contain; scroll-snap-align: center; }
.device-screen::-webkit-scrollbar { display: none; }

.artwork-toggle { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 1; }
.artwork-toggle:focus-visible::after { content: 'Close'; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); }

.card-artwork { display: block; position: relative; width: 100%; height: 100%; overflow: hidden; }
.project-label { position: absolute; top: 100%; left: 50%; transform: translateX(-50%); margin-top: 8px; white-space: nowrap; text-align: center; font: inherit; }
.screen-cutout { position: absolute; z-index: 3; border-radius: 100px; background: #050505; pointer-events: none; }

.project-card[aria-hidden="true"] { opacity: 0; pointer-events: none; }
