/* Work keeps the Events palette and controls; projects provide the visual lead. */
.events-refreshed-site.portfolio-page .safari-wrapper { overflow:visible; }
.events-refreshed-site.portfolio-page .safari-wrapper > .work-index { --work-toolbar-top:104px; padding-top:132px; }
.work-index .work-heading { padding:28px 0 32px; }
.work-index .category-header__description { margin:18px 0 0; color:var(--ev-muted); font:400 18px/1.5 'Satoshi-Variable',sans-serif; }
.work-filter-toolbar { position:relative; z-index:20; padding:12px; border:1px solid #ffffffb0; border-radius:16px; background:#eeebf7e8; -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); box-shadow:0 4px 20px #3e275008; }
.work-filter-row { display:flex; align-items:center; gap:10px; }
.work-filter-menu { position:relative; min-width:0; }
.work-filter-menu summary { display:flex; align-items:center; gap:12px; padding:12px 16px; min-height:46px; border:1px solid #bca4d650; border-radius:10px; background:#ffffff80; color:var(--ev-ink); font:600 15px/1.25 'Satoshi-Variable',sans-serif; cursor:pointer; list-style:none; }
.work-filter-menu summary::-webkit-details-marker { display:none; }
.work-filter-menu summary svg { width:18px; height:18px; flex:0 0 18px; transition:transform .3s; }
.work-filter-menu[open] summary { background:#fff; border-color:#7540cc80; }
.work-filter-menu[open] summary svg { transform:rotate(180deg); }
.work-filter-selection { max-width:135px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; color:var(--ev-accent); font-weight:500; }
.work-filter-popover { position:absolute; top:calc(100% + 12px); left:0; width:360px; max-height:calc(var(--site-viewport-height,100vh) - 220px); max-height:calc(100dvh - 220px); overflow:auto; padding:18px; border:1px solid #fff; border-radius:16px; background:#f7f4ff; box-shadow:0 16px 44px #3d245126; }
.work-filter-popover fieldset { border:0; margin:0; padding:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
.work-filter-option span { overflow-wrap:anywhere; }
.work-filter-popover legend { padding:0 4px 12px; color:var(--ev-muted); font:600 13px/1.3 'Satoshi-Variable',sans-serif; }
.work-filter-option { display:flex; align-items:center; gap:9px; min-height:44px; padding:9px 7px; margin:0; border-radius:7px; font:400 14px/1.3 'Satoshi-Variable',sans-serif; cursor:pointer; }
.work-filter-option:hover { background:#7540cc0c; }
.work-filter-option input { appearance:auto; display:block; width:17px; height:17px; margin:0; flex:0 0 17px; accent-color:var(--ev-accent); }
.work-filter-option:is(.is-selected,:has(input:checked)) { color:var(--ev-accent); background:#7540cc0c; }
.work-filter-done { display:block; width:100%; min-height:44px; margin:14px 0 0; padding:10px 16px; border:0; border-radius:8px; background:var(--ev-accent); color:white; font:600 14px/1.3 'Satoshi-Variable',sans-serif; cursor:pointer; }
.work-result-count { margin:0 6px 0 auto; color:var(--ev-muted); font:500 14px/1.3 'Satoshi-Variable',sans-serif; font-variant-numeric:tabular-nums; white-space:nowrap; }
.work-active-filters { display:flex; flex-wrap:wrap; gap:8px; padding-top:12px; }
.work-active-filters[hidden] { display:none; }
.work-filter-chip,.work-filter-clear { display:inline-flex; align-items:center; gap:10px; min-height:32px; padding:6px 10px; border:1px solid #7540cc35; border-radius:7px; background:#7540cc0b; color:var(--ev-accent); font:500 13px/1.3 'Satoshi-Variable',sans-serif; cursor:pointer; }
.work-filter-chip span { font-size:17px; line-height:1; }
.work-filter-clear { border-color:transparent; background:transparent; color:var(--ev-muted); }
.events-refreshed-site .portfolio-listing.work-feed { display:block; margin:28px 0 0; }
.work-page { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:32px 24px; overflow-anchor:none; }
.work-page + .work-page { margin-top:32px; }
.work-page[aria-hidden=true] { display:block; }
.events-refreshed-site .work-card { gap:14px; scroll-margin-top:var(--work-feed-top,180px); }
.work-card .video-container { box-shadow:0 0 0 1px #ffffff80; }
.work-card-info { display:grid; grid-template-columns:1fr auto; grid-template-rows:auto auto; align-content:start; align-items:center; gap:10px 8px; min-height:78px; padding:0 4px; }
.work-card-title { grid-column:1/-1; margin:0; color:var(--ev-ink); font:600 18px/1.3 'Satoshi-Variable',sans-serif; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; min-height:2.6em; }
.work-card-platforms { display:flex; align-items:center; gap:8px; list-style:none; padding:0; margin:0; }
.work-card-platforms img { display:block; width:19px; height:19px; object-fit:contain; }
.work-card-link { justify-self:end; color:var(--ev-accent); display:inline-flex; align-items:center; gap:8px; font:500 13px/1.3 'Satoshi-Variable',sans-serif; text-decoration:none; }
.work-card-link span { display:inline-block; font-size:18px; transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.work-card-link:hover span { transform:translate(2px,-2px); }
@media(min-width:701px) {
  .events-refreshed-site .work-card { gap:8px; }
  .work-card .video-container { position:relative; min-height:0; }
  .work-card .video-container > .lt-video-player,
  .work-card .video-container > video { position:absolute; inset:0; }
  .work-card-info {
    box-sizing:border-box; flex:0 0 var(--project-caption-height); height:var(--project-caption-height); min-height:var(--project-caption-height); max-height:var(--project-caption-height);
    grid-template-columns:minmax(0,1fr) auto; grid-template-rows:20px 24px;
    align-content:start; align-items:start; gap:4px 12px; padding:var(--project-caption-padding);
    border:1px solid var(--project-caption-border); border-radius:var(--project-caption-radius); background:var(--project-caption-background);
  }
  .work-card-title { display:block; min-width:0; min-height:0; font-size:16px; line-height:20px; white-space:nowrap; text-overflow:ellipsis; }
  .work-card-platforms { min-width:0; gap:6px; flex-wrap:nowrap; align-self:center; }
  .work-card-link { align-self:center; }
  .work-card-platforms img { width:17px; height:17px; }
}
.work-feed-footer { text-align:center; padding:32px 0 64px; }
.work-feed-footer p { min-height:22px; margin:0 0 16px; color:var(--ev-muted); font:400 14px/1.5 'Satoshi-Variable',sans-serif; }
.work-load-more { display:inline-flex; align-items:center; gap:18px; min-height:48px; padding:12px 20px; border:0; border-radius:10px; background:var(--ev-accent); color:white; font:600 15px/1.4 'Satoshi-Variable',sans-serif; cursor:pointer; }
.work-load-more[hidden] { display:none; }
.work-load-more:disabled { opacity:.55; cursor:wait; }
.work-feed.is-replacing[aria-busy=true] { opacity:.65; transition:opacity .18s; }
.work-empty { padding:64px 20px; text-align:center; color:var(--ev-muted); }
.work-index :is(button,summary,a,input):focus-visible { outline:2px solid var(--ev-accent); outline-offset:4px; }
.work-to-filters { position:fixed; right:max(20px,calc((100vw - 1180px)/2)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:30; width:46px; height:46px; display:grid; place-items:center; padding:0; border:1px solid #ffffffb0; border-radius:50%; background:var(--ev-accent); color:white; box-shadow:0 6px 22px #3c1e572b; cursor:pointer; opacity:1; visibility:visible; transform:translateY(0); transition:opacity .2s,visibility .2s,transform .4s cubic-bezier(.34,1.56,.64,1),background .2s; }
.work-to-filters svg { width:22px; height:22px; transition:transform .35s cubic-bezier(.34,1.56,.64,1); }
.work-to-filters:hover { background:#6030ae; }
.work-to-filters:hover svg { transform:translateY(-3px); }
.work-to-filters[aria-hidden=true] { opacity:0; visibility:hidden; pointer-events:none; transform:translateY(10px); }
.work-to-filters:focus-visible { outline:2px solid var(--ev-accent); outline-offset:4px; }
@media(max-width:1100px) { .work-page { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(min-width:701px) and (max-width:860px) { .work-page { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:960px) { .events-refreshed-site.portfolio-page .safari-wrapper > .work-index { padding-top:104px; } }
@media(max-width:700px) {
  html:is(.has-work-feed,:has(.work-index)) { scroll-padding-top:0; }
  html.work-feed-browsing { scroll-snap-type:y mandatory; }
  /* iOS viewport snapping can retain the previous item after browser chrome moves.
     Touch paging follows the finger and settles explicitly on the next card. */
  html.has-work-feed.work-feed-touch-paging { scroll-behavior:auto; }
  html.work-feed-browsing.work-feed-touch-paging { scroll-snap-type:none; }
  html.work-feed-browsing .main-header { opacity:0; visibility:hidden; pointer-events:none; }
  .events-refreshed-site.portfolio-page .safari-wrapper > .work-index { width:100%; padding-top:90px; }
  .work-index .work-heading { padding:20px 18px 24px; }
  .work-index .category-header__description { margin-top:14px; font-size:16px; }
  .work-filter-toolbar { margin-inline:12px; padding:8px; border-radius:12px; }
  .work-filter-row { gap:6px; }
  .work-filter-menu summary { min-height:42px; padding:10px; gap:7px; font-size:13px; }
  .work-filter-selection { max-width:70px; }
  .work-filter-menu summary svg { width:15px; height:15px; flex-basis:15px; }
  .work-result-count { font-size:12px; margin-inline:3px; }
  .work-filter-popover { position:fixed; top:calc(100% + 8px); left:0; width:100%; max-height:calc(var(--site-viewport-height,100vh) - var(--work-feed-top,150px) - 24px); max-height:calc(100dvh - var(--work-feed-top,150px) - 24px); padding:16px; }
  .work-active-filters { padding-top:8px; gap:6px; }
  .work-filter-chip,.work-filter-clear { font-size:12px; }
  .events-refreshed-site .portfolio-listing.work-feed { margin-top:16px; }
  .work-page { grid-template-columns:minmax(0,1fr); gap:0; }
  .work-page + .work-page { margin-top:0; }
  .events-refreshed-site .work-feed .work-card { position:relative; isolation:isolate; height:var(--site-viewport-height,100vh); height:100dvh; min-height:0; display:block; padding:0; scroll-snap-align:start; scroll-snap-stop:always; scroll-margin-top:0; overflow:hidden; }
  .events-refreshed-site .work-feed .work-card .video-container { width:100%; height:100%; min-height:0; aspect-ratio:auto; border-radius:0; box-shadow:none; }
  .work-card .lt-video-player,.work-card .video-container video { width:100%; height:100%; border-radius:0; object-fit:cover; }
  .work-card .work-card-poster { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; pointer-events:none; }
  .work-card .work-card-poster[hidden] { display:none; }
  .work-card .lt-video-player:is(:fullscreen,:-webkit-full-screen,.is-expanded) > video { object-fit:contain; }
  .work-card-info { position:absolute; z-index:5; left:14px; right:76px; bottom:calc(64px + env(safe-area-inset-bottom)); min-height:0; gap:8px; padding:10px 12px; border-radius:10px; background:#14101fbf; color:white; transition:opacity .35s ease,transform .35s ease,visibility .35s; }
  .work-caption-hidden .work-card-info { opacity:0; visibility:hidden; transform:translateY(6px); pointer-events:none; }
  .work-card-title { color:white; font-size:16px; line-height:1.3; min-height:0; }
  .work-card-platforms img { width:17px; height:17px; filter:brightness(0) invert(1); }
  .work-card-link { color:white; font-size:12px; }
  /* Keep the same player actions, arranged for the mobile feed. */
  .work-card .lt-video-player :is(.lt-video-center,.lt-video-unmute) { display:none; }
  .work-card .lt-video-player .lt-video-controls { inset:0; padding:0; background:none; opacity:1; visibility:visible; transform:none; pointer-events:none; }
  .work-card .lt-video-toolbar { position:absolute; inset:0; display:flex; flex-direction:column; align-items:flex-end; justify-content:flex-end; gap:10px; padding:0 max(12px,env(safe-area-inset-right)) calc(80px + env(safe-area-inset-bottom)) 0; pointer-events:none; }
  .work-card .lt-video-player .lt-video-button { width:46px; height:46px; background:#14101f66; box-shadow:inset 0 0 0 1px #ffffff35; pointer-events:auto; }
  .work-card .lt-video-player .lt-video-button:active { background:#7540ccdd; }
  .work-card .lt-video-player [data-video-fullscreen] { display:none; }
  .work-card .lt-video-player :is([data-video-toggle],[data-video-mute]) > svg { opacity:1; }
  .work-card .lt-video-spacer { display:none; }
  .work-card .lt-video-time { position:absolute; left:14px; bottom:calc(34px + env(safe-area-inset-bottom)); font-size:11px; }
  .work-card .lt-video-player .lt-video-timeline { position:absolute; bottom:calc(6px + env(safe-area-inset-bottom)); left:14px; width:calc(100% - 90px); height:28px; margin:0; pointer-events:auto; }
  .work-feed-footer { padding-bottom:40px; scroll-snap-align:start; }
  .work-to-filters { right:max(12px,env(safe-area-inset-right)); bottom:calc(20px + env(safe-area-inset-bottom)); }
}
@media(max-width:360px) {
  .work-filter-menu summary { gap:5px; padding-inline:8px; }
  .work-filter-selection { max-width:44px; }
  .work-result-count { font-size:11px; }
}
@media(prefers-reduced-motion:reduce) {
  html:is(.has-work-feed,:has(.work-index)) { scroll-snap-type:none; }
  .work-index * { transition:none !important; animation:none !important; scroll-behavior:auto !important; }
  .work-to-filters,.work-to-filters svg { transition:none !important; }
}
