:root{--bg:#0d0c0b;--fg:#efe9df;--muted:#8a847a;--line:#2a2724;--accent:#d99a1e;
  --display:Anton,Impact,sans-serif;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--fg);font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
em,.ital{font-family:var(--serif);font-style:italic;font-weight:400;text-transform:none}
::selection{background:var(--accent);color:#000}
.grain{position:fixed;inset:-50%;z-index:50;pointer-events:none;opacity:.09;mix-blend-mode:screen;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

.bar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:20px clamp(16px,3vw,40px);mix-blend-mode:difference;color:#fff;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.bar nav{display:flex;gap:24px}
.bar a{position:relative;display:inline-block;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.bar a::after{content:'';position:absolute;left:0;right:0;bottom:-3px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.bar a:hover{transform:translateY(-2px)}
.bar a:hover::after{transform:scaleX(1);transform-origin:left}

/* hero */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.hero__video{position:absolute;inset:0;overflow:hidden;background:#000}
.hero__video img,.hero__video iframe{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border:0;pointer-events:none}
.hero__video img{width:max(100vw,177.78svh);height:max(56.25vw,100svh);object-fit:cover}
.hero__video iframe{width:max(120vw,213.3svh);height:max(67.5vw,120svh);opacity:0;transition:opacity .8s}
.hero__video iframe.on{opacity:1}
.hero__shade{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,12,11,.9),rgba(13,12,11,.15) 55%,rgba(13,12,11,.45))}
.hero__title{position:relative;margin:0;padding:0 clamp(12px,2.5vw,32px) .06em;font:800 clamp(2.2rem,10.6vw,13rem)/1.1 Syne,var(--sans);letter-spacing:-.045em;white-space:nowrap}
.hero__title span:nth-child(2){color:var(--accent);margin-left:.01em}
.hero__foot{position:relative;display:flex;justify-content:space-between;align-items:baseline;padding:16px clamp(16px,3vw,40px) 24px;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.hero__tag{margin:0;font-size:1.05rem;letter-spacing:0;text-transform:none}
.hero__tag em{font-size:1.5em;color:var(--accent)}

/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:14px 0;background:var(--accent);color:#0d0c0b}
.marquee__track{display:flex;width:max-content;animation:slide 40s linear infinite;font:400 1.6rem/1 var(--display);text-transform:uppercase;letter-spacing:.02em}
.marquee__track span{padding:0 1.2rem;white-space:nowrap}
.marquee__track i{font-family:var(--serif);font-size:1.3em;line-height:.6}
@keyframes slide{to{transform:translateX(-50%)}}

/* index */
.work{padding:clamp(64px,10vw,140px) clamp(16px,3vw,40px) 40px}
.work__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:32px;color:var(--muted);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.work__head h2{margin:0;font:400 clamp(2.4rem,6vw,5rem)/1 var(--display);text-transform:uppercase;color:var(--fg)}
.work__head h2 em{color:var(--accent);font-size:1.1em}
.index{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.row{all:unset;box-sizing:border-box;display:grid;grid-template-columns:3.2rem 1fr auto;align-items:baseline;gap:16px;width:100%;padding:clamp(10px,1.6vw,20px) 0;border-bottom:1px solid var(--line);cursor:pointer;transition:opacity .3s,padding .4s cubic-bezier(.2,.7,.2,1),color .3s}
.row__n{font-size:.8rem;color:var(--muted);letter-spacing:.08em}
.row__t{font:400 clamp(2rem,7.5vw,7rem)/.95 var(--display);text-transform:uppercase;overflow-wrap:anywhere}
.row__a{font:italic 400 clamp(1.05rem,1.8vw,1.6rem)/1 var(--serif);color:var(--muted);text-align:right}
.row__thumb{display:none}
.index:hover .row{opacity:.28}
.index .row:hover,.index .row:focus-visible{opacity:1;padding-left:clamp(12px,2vw,32px);color:var(--accent)}
.row:focus-visible{outline:1px dashed var(--accent);outline-offset:-1px}
.peek{position:fixed;left:0;top:0;z-index:30;width:clamp(220px,26vw,400px);aspect-ratio:16/9;pointer-events:none;opacity:0;transition:opacity .25s;will-change:transform;box-shadow:0 20px 60px rgba(0,0,0,.6)}
.peek.on{opacity:1}
.peek img{width:100%;height:100%;object-fit:cover;display:block}

/* about / contact */
.about,.contact{padding:clamp(64px,10vw,140px) clamp(16px,3vw,40px) 0;max-width:1400px}
.about__label{margin:0 0 20px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.about__text{margin:0;font:400 clamp(1.8rem,4.6vw,4.2rem)/1.12 var(--serif);max-width:22em}
.about__text em{color:var(--accent)}
.contact{padding-bottom:clamp(64px,9vw,120px);margin-inline:auto;text-align:center}
.contact__mail{display:block;font:400 clamp(1rem,4.25vw,4.5rem)/1 var(--display);text-transform:uppercase;overflow-wrap:anywhere;transition:color .3s}
.contact__mail:hover{color:var(--accent)}
.contact__ig{display:block;margin-top:16px;font:italic 400 1.6rem var(--serif);color:var(--muted)}
.contact__ig:hover{color:var(--accent)}
.foot{display:flex;justify-content:space-between;padding:20px clamp(16px,3vw,40px);border-top:1px solid var(--line);color:var(--muted);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}
.foot .ital{font-size:1.2rem;letter-spacing:0}

/* modal */
.modal{border:0;padding:0;width:100vw;height:100vh;max-width:none;max-height:none;background:var(--bg);color:var(--fg);overflow:auto}
.modal[open]{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr)}
.modal::backdrop{background:#000}
.modal__close{position:fixed;top:16px;right:20px;z-index:3;background:none;border:0;color:var(--fg);font:500 .8rem var(--sans);letter-spacing:.1em;text-transform:uppercase;cursor:pointer}
.modal__close:hover{color:var(--accent)}
.modal__stage{display:flex;align-items:center;background:#000;padding:0}
.modal__player{width:100%;aspect-ratio:16/9;background:#000}
.modal__player iframe{width:100%;height:100%;border:0;display:block}
.modal__credits{padding:64px clamp(20px,3vw,48px) 48px;text-align:center}
.modal__artist{margin:0;font:italic 400 1.5rem var(--serif);color:var(--accent)}
.modal__credits h3{margin:4px 0 40px;font:400 clamp(2.4rem,5vw,4.4rem)/.95 var(--display);text-transform:uppercase}
.modal__credits dl{margin:0}
.modal__credits dt{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-top:18px}
.modal__credits dd{margin:2px 0 0;font:400 1.35rem/1.2 var(--serif)}
@media (max-width:820px){
  .modal[open]{display:block}
  .modal__credits{padding-top:32px}
  .modal__close{background:rgba(0,0,0,.7);padding:8px 12px;top:8px;right:8px}
}

/* touch: no cursor-follow preview, show a small thumb per row */
@media (hover:none){
  .peek{display:none}
  .row{grid-template-columns:1fr auto;grid-template-areas:"t t" "th a";row-gap:8px}
  .row__n{display:none}
  .row__t{grid-area:t}
  .row__thumb{display:block;grid-area:th;width:120px;aspect-ratio:16/9;object-fit:cover}
  .row__a{grid-area:a;align-self:end}
  .index:hover .row{opacity:1}
}
@media (max-width:560px){.bar nav{gap:14px}.row{grid-template-columns:1fr auto}.row__n{display:none}.hero__foot .hero__scroll{display:none}}

/* reveal */
.js .rv{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
.js .rv.in{opacity:1;transform:none}
.js .hero__title span{display:inline-block;opacity:0;transform:translateY(40px);animation:rise 1s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero__title span:nth-child(2){animation-delay:.12s}
@keyframes rise{to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){
  .grain,.marquee__track{animation:none}
  .js .rv{opacity:1;transform:none;transition:none}
  .js .hero__title span{transform:none;opacity:1;animation:none}
}

/* accessibility */
.skip{position:fixed;left:16px;top:-60px;z-index:60;padding:10px 16px;background:var(--fg);color:var(--bg);border-radius:6px;transition:top .2s}
.skip:focus{top:12px}
.about__label{font-weight:400;font-family:var(--sans)}
.hero__foot{gap:16px}
.hero__pause{all:unset;cursor:pointer;margin-left:auto;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid transparent}
.hero__pause:hover{border-color:currentColor}
.hero__pause:focus-visible,.bar a:focus-visible,.hero__scroll:focus-visible,.contact a:focus-visible,.modal__close:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.is-paused .grain,.is-paused .marquee__track{animation-play-state:paused}
.is-paused .hero__video iframe{opacity:0}

/* faded blur behind the header once you scroll */
.topblur{position:fixed;top:0;left:0;right:0;height:clamp(90px,15vh,150px);z-index:19;pointer-events:none;opacity:0;transition:opacity .35s}
.scrolled .topblur{opacity:1}
.topblur i{position:absolute;inset:0}
.topblur i:nth-child(1){backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);-webkit-mask-image:linear-gradient(to bottom,#000 0,transparent 100%);mask-image:linear-gradient(to bottom,#000 0,transparent 100%)}
.topblur i:nth-child(2){backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 30%,transparent 75%);mask-image:linear-gradient(to bottom,#000 0,#000 30%,transparent 75%)}
.topblur i:nth-child(3){backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:linear-gradient(to bottom,rgba(13,12,11,.45),transparent);-webkit-mask-image:linear-gradient(to bottom,#000 0,#000 15%,transparent 55%);mask-image:linear-gradient(to bottom,#000 0,#000 15%,transparent 55%)}
@media (prefers-reduced-transparency:reduce){.topblur{display:none}}
