/* Edit bay: the work supplies the colour. Vision Red marks only what is active. */
@font-face{font-family:"Archivo";src:url(/fonts/archivo.woff2) format("woff2");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Plex Mono";src:url(/fonts/plex-mono.woff2) format("woff2");font-weight:400;font-display:swap}
:root{
  --ink:#0B0A0C;--panel:#151317;--line:#2A262D;--paper:#F4F2F3;--muted:#A9A3AB;--red:#E50C41;
  --sans:"Archivo","Arial Narrow",Arial,sans-serif;--mono:"Plex Mono",Consolas,monospace;
  --gap:clamp(6px,.8vw,12px);--edge:max(clamp(10px,1.4vw,22px),env(safe-area-inset-left,0px));--bar:64px;
  --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{background:var(--ink);-webkit-text-size-adjust:100%}
html:has(dialog[open]){overflow:hidden}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:15px;line-height:1.3;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
:focus-visible{outline:2px solid var(--red);outline-offset:3px}
[hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.bar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:clamp(18px,3vw,44px);min-height:var(--bar);padding:env(safe-area-inset-top,0px) var(--edge) 0;background:color-mix(in srgb,var(--ink) 86%,transparent);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
.brand{display:flex;align-items:center;gap:7px;flex:none;font-stretch:125%;font-weight:800;font-size:18px;letter-spacing:.05em}
.mark{width:26px;height:19px;fill:var(--red)}
.filter{flex:1;display:flex;gap:clamp(16px,2.2vw,32px);overflow-x:auto;scrollbar-width:none;min-width:0;padding:8px 2px;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.filter::-webkit-scrollbar{display:none}
.filter button{position:relative;flex:none;padding:6px 0;color:var(--muted);font-weight:600;font-stretch:108%;font-size:14px;white-space:nowrap;transition:color .2s}
.filter button:last-child{margin-right:24px}
.w-contact{flex:none;margin-left:auto;font-weight:600;font-stretch:108%;font-size:14px;color:var(--paper)}
.w-contact:hover{color:var(--red)}
.filter button::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--red);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.filter button:hover,.filter button[aria-pressed=true]{color:var(--paper)}
.filter button[aria-pressed=true]::after{transform:scaleX(1)}
.filter sup{margin-left:3px;font-family:var(--mono);font-size:10px;font-weight:400;color:var(--muted);vertical-align:.5em;line-height:0}

.progress{position:fixed;inset:0 0 auto;height:2px;z-index:11;background:var(--red);transform:scaleX(0);transform-origin:left}

.wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:calc(var(--gap)*2.4) var(--gap);padding:10px var(--edge) 120px}
@media (min-width:720px){.wall{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (min-width:1040px){.wall{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (min-width:1400px){.wall{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media (min-width:1900px){.wall{grid-template-columns:repeat(6,minmax(0,1fr))}}

.tile{display:flex;flex-direction:column;min-width:0;--o:0px;--d:0px;translate:0 var(--o)}
.tile.wide{grid-column:span 2}
.frame{position:relative;display:block;flex:1;min-height:0;aspect-ratio:9/16;overflow:hidden;background:var(--panel)}
.tile.wide .frame{aspect-ratio:auto;flex:1 0 auto}
.tile.wide .frame::before{content:"";display:block;padding-top:56.25%}
.frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.live{opacity:0;transition:opacity .4s}
.live.on{opacity:1}
.frame::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 0 var(--red);transition:box-shadow .2s}
.tile:hover .frame::after,.tile:focus-visible .frame::after{box-shadow:inset 0 0 0 2px var(--red)}
.meta{display:grid;gap:3px;padding:9px 1px 0}
.name{font-weight:700;font-stretch:112%;font-size:clamp(13px,1.05vw,16px);line-height:1.2;text-wrap:balance}
.kind{font-family:var(--mono);font-size:11px;color:var(--muted)}

@media (prefers-reduced-motion:no-preference){
  .poster{animation:settle 1.1s var(--ease) both;animation-delay:calc(var(--i)*40ms)}
  @keyframes settle{from{scale:1.07}to{scale:1}}
  @supports (animation-timeline:scroll()){
    .progress{animation:grow linear both;animation-timeline:scroll(root)}
    @keyframes grow{to{transform:scaleX(1)}}
    .tile{animation:drift linear both;animation-timeline:scroll(root)}
    @keyframes drift{from{translate:0 var(--o)}to{translate:0 calc(var(--o) + var(--d))}}
    .frame{animation:rise linear both;animation-timeline:view();animation-range:entry 0% entry 55%}
    @keyframes rise{from{opacity:.15;transform:translateY(56px) scale(.96)}to{opacity:1;transform:none}}
  }
  ::view-transition-group(*){animation-duration:.5s;animation-timing-function:var(--ease)}
}

/* Player */
dialog{position:fixed;inset:0;width:100%;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--ink);color:var(--paper);overflow:hidden}
dialog::backdrop{background:var(--ink)}
.p-bg{position:absolute;inset:-8%;width:116%;height:116%;max-width:none;object-fit:cover;filter:blur(60px) brightness(.32) saturate(1.3)}
.p-layout{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(28px,5vw,88px);align-items:center;justify-content:center;height:100%;padding:clamp(16px,3vh,32px) clamp(24px,6vw,110px)}
.p-stage{height:calc(100dvh - clamp(32px,6vh,64px));aspect-ratio:9/16;max-width:46vw;background:#000;transform-origin:top left}
.p-stage iframe{display:block;width:100%;height:100%;border:0;outline:0}
.p-side{display:grid;gap:14px;max-width:760px;min-width:0}
.p-kind{margin:0;font-family:var(--mono);font-size:13px;color:var(--muted)}
.p-title{margin:0;font-weight:800;font-stretch:125%;font-size:clamp(34px,5vw,84px);line-height:1;letter-spacing:-.015em;text-wrap:balance;overflow-wrap:anywhere}
.p-nav{display:flex;gap:22px;margin-top:14px}
.p-nav button,.p-close{font-family:var(--mono);font-size:13px;padding:10px 0;color:var(--paper);border-bottom:1px solid var(--line);transition:border-color .2s}
.p-nav button:hover,.p-close:hover{border-color:var(--red)}
.p-close{position:absolute;top:max(14px,env(safe-area-inset-top,0px));right:clamp(16px,3vw,36px)}
@media (max-width:860px),(max-aspect-ratio:1/1){
  .p-layout{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr) auto;gap:10px;padding:max(52px,calc(env(safe-area-inset-top,0px) + 46px)) 12px max(12px,env(safe-area-inset-bottom,0px))}
  .p-stage{height:100%;max-width:100%;justify-self:center;min-height:0}
  .p-side{gap:4px;max-width:none}
  .p-title{font-size:clamp(19px,5.4vw,30px);font-stretch:112%}
  .p-kind{font-size:11px}
  .p-nav{justify-content:space-between;margin-top:4px}
  .p-close{top:max(8px,env(safe-area-inset-top,0px))}
}
