:root{color-scheme:light dark;--festival-accent:#007c62;--festival-accent-text:color-mix(in srgb, var(--festival-accent) 72%, #111118 28%)}*{box-sizing:border-box;margin:0;padding:0}html,body{max-width:100%;overflow-x:hidden}body{color:#e8e8ea;background:#0e0e10;font:15px/1.6 system-ui,sans-serif}.interactive-image-grid{z-index:0;pointer-events:none;grid-template-rows:repeat(8,minmax(0,1fr));grid-template-columns:repeat(8,minmax(0,1fr));gap:0;padding:0;display:grid;position:fixed;inset:0;overflow:hidden}.interactive-image-grid-tile{transform-origin:50%;will-change:transform;min-width:0;min-height:0;transition:transform .12s linear;overflow:hidden}.interactive-image-grid-tile img{object-fit:cover;width:100%;height:100%;display:block}.interactive-image-grid-mirror{clip-path:inset(0 100% 0 0);transition:clip-path .9s cubic-bezier(.45,0,.2,1);position:absolute;inset:0}.interactive-image-grid-tile.is-mirroring .interactive-image-grid-mirror{clip-path:inset(0)}.interactive-image-grid-mirror img{transform:scaleX(-1)}.wrap{z-index:1;max-width:1000px;margin:0 auto;padding:32px 24px 64px;position:relative}h1,h2,.tagline,.prose,.official-link a,.gallery-heading p,footer{background:color-mix(in srgb, var(--festival-accent) 18%, #0e0e10f0);box-decoration-break:clone;width:fit-content;padding:1px 8px}@media (prefers-color-scheme:dark){.interactive-image-grid{filter:invert()}}header{flex-wrap:wrap;align-items:baseline;gap:16px;display:flex}h1{color:var(--festival-accent);letter-spacing:.02em;font-size:28px}.tagline{color:#9a9aa2}.tagline a{color:var(--festival-accent);border-bottom:1px dotted var(--festival-accent);cursor:pointer;text-decoration:none}.tagline a:hover{color:#fff}.preview{z-index:200;pointer-events:none;background:#17171b;border:1px solid #33333c;display:none;position:fixed;overflow:hidden;box-shadow:0 8px 24px #00000080}.preview img{filter:blur(14px);width:auto;max-width:min(560px,80vw);height:auto;max-height:min(420px,60vh);transition:filter .3s;display:block}.preview img.is-loaded{filter:none}.preview.show{display:block}section{margin-top:40px}h2{color:var(--festival-accent);margin-bottom:12px;font-size:18px;font-weight:600}.prose{color:#d9d9e0;max-width:72ch}.prose a{color:var(--festival-accent)}.official-link{margin-top:28px;font-size:14px}.official-link a{color:var(--festival-accent);border-bottom:1px solid var(--festival-accent);align-items:center;gap:7px;text-decoration:none;display:inline-flex}.official-link a:hover{color:#fff;border-color:var(--festival-accent)}.official-link img{object-fit:contain;flex:none;width:18px;height:18px}.galleries{margin-top:72px}.gallery-section+.gallery-section{margin-top:48px}.gallery-heading{justify-content:space-between;align-items:baseline;gap:16px;display:flex}.gallery-heading h2{margin-bottom:5px}.gallery-heading p{color:#777780;font-size:12px}.gallery-viewport-frame{margin:0 -24px;position:relative}.gallery-viewport{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:#454550 transparent;width:100%;height:clamp(160px,28vh,240px);padding:8px 0;position:relative;overflow:auto hidden}.gallery-track{height:100%;position:relative}.gallery-edge{pointer-events:none;display:none;position:absolute;top:0;bottom:0;overflow:hidden}.gallery-edge img{object-fit:cover;background:#17171b;border:1px solid #2f3444;max-width:none;position:absolute;transform:scaleX(-1)}.gallery-edge-left{mask-image:linear-gradient(90deg,#0000,#000 70%)}.gallery-edge-right{mask-image:linear-gradient(270deg,#0000,#000 70%)}.gallery-item{scroll-snap-align:center;scroll-snap-stop:always;width:min(68vw,320px);height:100%;padding:0 8px;position:absolute;top:0}.gallery-item-button{cursor:zoom-in;width:100%;height:100%;font:inherit;background:0 0;border:0;padding:0;display:block;position:relative}.gallery-item img{object-fit:cover;background:#17171b;border:1px solid #2f3444;width:100%;height:100%;transition:border-color .15s;display:block}.gallery-item-button:hover img,.gallery-item-button:focus-visible img{border-color:var(--festival-accent)}.gallery-item-button:focus-visible{outline:2px solid var(--festival-accent);outline-offset:3px}.gallery-open-label{color:#f4f5ff;pointer-events:none;opacity:0;visibility:hidden;background:#0e0e10cc;border:1px solid #626d88;padding:5px 8px;font-size:11px;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;bottom:12px;right:12px;transform:translateY(4px)}.gallery-item-button:hover .gallery-open-label,.gallery-item-button:focus-visible .gallery-open-label{opacity:1;visibility:visible;transform:translateY(0)}.gallery-lightbox{z-index:300;background:#000c;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.gallery-lightbox[hidden]{display:none}.gallery-lightbox-panel{color:#e8e8ea;background:#17171b;border:1px solid #454550;width:min(1100px,96vw);max-height:92vh;padding:12px;position:relative;box-shadow:0 18px 60px #000b}.gallery-lightbox-panel img{object-fit:contain;width:100%;max-height:82vh;display:block}.gallery-lightbox-media{background:#101014;width:100%;max-height:82vh;position:relative;overflow:hidden}.gallery-lightbox-media img{object-fit:contain;width:100%;height:100%;max-height:none;position:absolute;inset:0}.gallery-lightbox-placeholder{pointer-events:none;clip-path:inset(0);position:absolute;inset:0;overflow:hidden}.gallery-lightbox-placeholder-img{filter:blur(26px)saturate(1.35);background-position:50%;background-size:cover;position:absolute;inset:0;transform:scaleX(-1)scale(1.25)}.gallery-lightbox-placeholder.is-loaded{opacity:0;transition:opacity .7s}.gallery-lightbox-panel p{color:#9a9aa2;justify-content:center;align-items:center;gap:8px;margin:8px 4px 0;font-size:12px;display:flex}.gallery-author{color:inherit;cursor:help;font:inherit;background:0 0;border:0;padding:2px;font-size:16px;line-height:1;position:relative}.gallery-author:after{content:attr(data-tooltip);z-index:2;color:#f4f5ff;white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;background:#0e0e10;border:1px solid #626d88;padding:5px 8px;font-size:11px;line-height:1.2;transition:opacity .15s,transform .15s,visibility .15s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%,4px)}.gallery-author:hover:after,.gallery-author:focus:after{opacity:1;visibility:visible;transform:translate(-50%)}.gallery-lightbox-close{z-index:1;color:#fff;cursor:pointer;background:#0e0e10cc;border:1px solid #626d88;width:38px;height:38px;font-size:25px;line-height:1;position:absolute;top:18px;right:18px}#location-lightbox img{transition:opacity .35s}#location-lightbox img.is-loading{opacity:0}.gallery-lightbox-nav{z-index:1;color:#fff;cursor:pointer;background:#0e0e10cc;border:1px solid #626d88;place-items:center;width:44px;height:52px;font-size:32px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.gallery-lightbox-nav:hover,.gallery-lightbox-nav:focus-visible,.gallery-lightbox-close:hover,.gallery-lightbox-close:focus-visible{border-color:var(--festival-accent);background:#2a3040}.gallery-lightbox-prev{left:18px}.gallery-lightbox-next{right:18px}@media (width<=640px){.galleries{margin-top:56px}.gallery-viewport-frame{margin-inline:-14px}.gallery-viewport{height:min(28vh,210px);min-height:160px}.gallery-item{width:68vw}.gallery-lightbox{padding:12px}.gallery-lightbox-panel{width:100%;padding:8px}.gallery-lightbox-nav{width:38px;height:46px}.gallery-lightbox-prev{left:10px}.gallery-lightbox-next{right:10px}}footer{color:#6a6a72;justify-content:flex-start;align-items:center;gap:16px;margin-top:48px;font-size:13px;display:flex}footer .footer-sep{color:#4a4a52}footer a{color:#8a8a92}@media (prefers-color-scheme:light){body{color:#17171b;background:#f3f3f5}.tagline{color:#45454d}.tagline a{color:var(--festival-accent-text);border-color:var(--festival-accent-text)}.tagline a:hover{color:#111118}h1,h2{color:var(--festival-accent-text)}.prose{color:#1f1f26}.prose a{color:var(--festival-accent-text)}.official-link a{color:var(--festival-accent-text);border-color:var(--festival-accent-text)}.official-link a:hover{color:#111118;border-color:#111118}.gallery-heading p{color:#4d4d56}footer{color:#50505a}footer a{color:#3e5576}h1,h2,.tagline,.prose,.official-link a,.gallery-heading p,footer{background:color-mix(in srgb, var(--festival-accent) 16%, #f3f3f5f2)}}
