:root{
  --ink:#0a0a0d; --ink2:#14141a; --sky:#40a6f2; --sky2:#8fcbff; --pink:#ff4f9c; --cyan:#21e6ff; --mag:#ff2bd6;
  --paper:#f4f6fb; --mute:rgba(255,255,255,.62); --line:rgba(255,255,255,.14);
  --pad:clamp(20px,4.4vw,72px);
  --disp:"Archivo",system-ui,sans-serif; --mono:"Martian Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{overflow-x:clip}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--ink);color:#fff;font-family:var(--disp);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,video{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
h1,h2{font-family:var(--disp);font-weight:900;font-stretch:112%;line-height:.98;letter-spacing:-.01em}
h2{font-size:clamp(34px,4.6vw,68px);max-width:16ch}
.lede{color:var(--mute);max-width:52ch;font-size:clamp(16px,1.25vw,19px)}
.kick{color:var(--sky);margin-bottom:18px}

/* his chromatic wordmark: cyan and magenta pulled apart like the logo on his site */
.chroma{position:relative;display:inline-block;font-weight:900;font-stretch:125%;letter-spacing:-.02em;color:#fff;
  text-shadow:-.045em 0 0 var(--cyan),.045em 0 0 var(--mag)}

/* top bar */
.bar{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;justify-content:space-between;
  padding:16px var(--pad);transition:background .3s}
.bar.solid{background:rgba(10,10,13,.86);backdrop-filter:blur(10px)}
.bar-mark{text-decoration:none;font-size:22px;line-height:1}
.bar-nav{display:flex;gap:26px;align-items:center}
.bar-nav a{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;opacity:.85}
.bar-nav a:hover{opacity:1;color:var(--sky2)}
.bar-live i,.live-link i,.pill-live i,.ask-btn i{display:inline-block;width:8px;height:8px;border-radius:50%;background:#53fc18;margin-right:8px;vertical-align:1px;animation:blink 1.6s steps(2,start) infinite}
@keyframes blink{50%{opacity:.25}}

/* hero */
.top{position:relative;height:100vh;height:100svh;min-height:600px;overflow:hidden;display:flex;align-items:flex-end}
.top-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.top-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,10,13,.55) 0,rgba(10,10,13,0) 22%,rgba(10,10,13,0) 45%,rgba(10,10,13,.9) 100%)}
.top-in{position:relative;width:100%;padding:0 var(--pad) clamp(58px,8vh,96px)}
.top-kicker{color:var(--sky2);margin-bottom:6px}
.top-word{font-size:clamp(70px,14.2vw,250px);line-height:.84;margin-left:-.03em}
.top-row{display:flex;justify-content:space-between;align-items:flex-end;gap:32px;margin-top:22px;flex-wrap:wrap}
.top-line{font-size:clamp(18px,1.6vw,24px);max-width:30ch;font-weight:600;line-height:1.3}
.top-act{display:flex;align-items:center;gap:22px}
.top-cap{position:absolute;right:var(--pad);top:50%;transform:translateY(-50%) rotate(180deg);writing-mode:vertical-rl;color:rgba(255,255,255,.55);max-height:70vh}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;background:var(--sky);color:var(--ink);
  font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;transition:transform .2s,background .2s}
.btn:hover{transform:translateY(-2px);background:#fff}
.btn-pink{background:var(--pink);color:#fff}
.btn-pink:hover{background:#fff;color:var(--ink)}
.btn-line{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.5)}
.btn-line:hover{background:#fff;color:var(--ink)}
.live-link{font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:3px}

/* pink band */
.band{background:var(--pink);color:var(--ink);overflow:hidden;padding:18px 0;border-block:2px solid var(--ink)}
.band-track{display:flex;gap:28px;width:max-content;align-items:center;animation:band 38s linear infinite}
.band span{font-weight:900;font-stretch:118%;font-size:clamp(24px,2.6vw,40px);white-space:nowrap;line-height:1}
.band b{font-size:14px}
@keyframes band{to{transform:translateX(-50%)}}

/* booking studio */
.book{background:var(--sky);color:var(--ink);padding:clamp(80px,11vw,150px) var(--pad)}
.book .kick{color:var(--ink);opacity:.7}
.book .lede{color:rgba(10,10,13,.75)}
.book-head{margin-bottom:clamp(40px,5vw,70px)}
.book-head h2{max-width:20ch;margin-bottom:22px}
.studio{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:clamp(20px,2.6vw,40px);align-items:start}
.screen{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden;box-shadow:12px 12px 0 var(--ink);border:2px solid var(--ink)}
.screen-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.screen-top{position:absolute;inset:0 0 auto 0;display:flex;align-items:center;gap:12px;padding:14px;color:#fff;background:linear-gradient(180deg,rgba(0,0,0,.55),transparent)}
.pill-live{background:#e8173b;color:#fff;font-family:var(--mono);font-weight:600;font-size:11px;padding:4px 9px;letter-spacing:.08em}
.pill-live i{background:#fff}
.screen-up{margin-left:auto}
.screen-note{position:absolute;right:14px;bottom:12px;color:rgba(255,255,255,.6);font-size:9px}
.alert{position:absolute;left:50%;top:50%;width:min(86%,560px);transform:translate(-50%,-30%) scale(.92);opacity:0;pointer-events:none;
  background:rgba(10,10,13,.9);border:2px solid var(--pink);padding:18px 22px;text-align:center;color:#fff;transition:opacity .35s,transform .5s cubic-bezier(.2,1.4,.4,1)}
.alert.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.alert-k{color:var(--pink);margin-bottom:6px}
.alert-name{font-size:clamp(20px,2.6vw,38px);font-weight:900;font-stretch:118%;line-height:1.05;word-break:break-word}
.alert-name em{font-style:normal;color:var(--sky);margin:0 .2em}
.alert-name strong{font-weight:900}
.alert-pk{color:var(--mute);margin-top:8px;text-transform:none;letter-spacing:.02em}
.third{position:absolute;left:0;bottom:34px;display:flex;align-items:stretch;transform:translateX(-102%);transition:transform .6s cubic-bezier(.2,.9,.2,1)}
.third.on{transform:none}
.third-k{background:var(--pink);color:#fff;padding:8px 12px;display:flex;align-items:center}
.third-v{background:#fff;color:var(--ink);font-weight:900;font-stretch:115%;padding:6px 16px;font-size:clamp(16px,1.6vw,22px);max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alert.burst{animation:shake .5s}
@keyframes shake{20%{text-shadow:none;transform:translate(-51%,-50%)}40%{transform:translate(-49%,-50%)}60%{transform:translate(-50.5%,-50%)}}

.desk{background:var(--ink);color:#fff;padding:clamp(20px,2.2vw,30px);border:2px solid var(--ink)}
.field-k{display:block;color:var(--sky2);margin-bottom:10px}
.field{width:100%;background:transparent;border:0;border-bottom:2px solid rgba(255,255,255,.35);color:#fff;font-family:var(--disp);font-weight:800;font-stretch:112%;font-size:26px;padding:6px 0 10px;outline:none;border-radius:0}
.field:focus{border-color:var(--pink)}
.field::placeholder{color:rgba(255,255,255,.3)}
.packs{border:0;margin:26px 0 22px}
.pack{display:block;border-top:1px solid var(--line);padding:14px 0;cursor:pointer;position:relative}
.pack:last-child{border-bottom:1px solid var(--line)}
.pack input{position:absolute;opacity:0;pointer-events:none}
.pack-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.pack-n{font-weight:800;font-stretch:110%;font-size:19px}
.pack-n::before{content:"";display:inline-block;width:10px;height:10px;border:1.5px solid rgba(255,255,255,.6);margin-right:12px;vertical-align:1px;transition:background .2s}
.pack-p{font-family:var(--mono);font-size:13px;color:var(--sky2)}
.pack-d{display:block;color:var(--mute);font-size:14px;line-height:1.5;max-height:0;overflow:hidden;transition:max-height .4s,margin .4s}
.pack input:checked ~ .pack-row .pack-n::before{background:var(--pink);border-color:var(--pink)}
.pack input:checked ~ .pack-d{max-height:120px;margin-top:8px}
.pack input:focus-visible ~ .pack-row{outline:2px solid var(--sky);outline-offset:4px}
.desk-act{display:flex;flex-wrap:wrap;gap:10px}
.desk-act .btn{flex:1 1 180px}
.fine{margin-top:16px;font-size:12px;color:rgba(255,255,255,.45)}

/* since */
.since{background:var(--ink)}
.since-film{position:relative;overflow:hidden;background:#000;aspect-ratio:1280/562;max-height:78vh;width:100%}
.since-film video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.since-cap{position:absolute;left:var(--pad);bottom:22px;color:rgba(255,255,255,.7);max-width:40ch}
.since-in{padding:clamp(70px,9vw,130px) var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:0 clamp(40px,6vw,100px);align-items:start}
.since-in .kick,.since-in h2,.since-in .lede{grid-column:1}
.since-in .lede{margin:24px 0 0}
.since-in .log{grid-column:2;grid-row:1/span 3}
.log{list-style:none;border-top:1px solid var(--line)}
.log li{display:grid;grid-template-columns:76px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.log span{color:var(--pink);padding-top:4px}
.log p{font-size:16px}

/* out there */
.out{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden}
.out-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.out-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,13,.88),rgba(10,10,13,.2) 65%),linear-gradient(0deg,rgba(10,10,13,.6),transparent 40%)}
.out-in{position:relative;padding:0 var(--pad) clamp(60px,9vh,110px)}
.out-in h2{max-width:14ch}
.out-list{margin-top:24px;color:var(--sky2);max-width:60ch;line-height:2}

/* archive */
.films{padding:clamp(80px,11vw,150px) var(--pad);background:var(--paper);color:var(--ink)}
.films .kick{color:#1c74c0}
.films-head{margin-bottom:40px}
.films-wrap{position:relative}
.idx{list-style:none;border-top:2px solid var(--ink);max-width:980px}
.idx button{width:100%;display:grid;grid-template-columns:96px 1fr auto;gap:18px;align-items:baseline;text-align:left;padding:18px 0;border-bottom:1px solid rgba(10,10,13,.18);transition:padding .25s,color .2s}
.idx-t{font-weight:800;font-stretch:108%;font-size:clamp(18px,1.8vw,26px);line-height:1.15}
.idx button:hover,.idx button:focus-visible{padding-left:14px;color:#1c74c0;outline:none}
.idx-d{color:rgba(10,10,13,.55)}
.peek{position:absolute;right:0;top:0;width:min(34vw,440px);aspect-ratio:16/9;overflow:hidden;border:2px solid var(--ink);box-shadow:10px 10px 0 var(--pink);pointer-events:none;
  opacity:0;transform:translateY(10px);transition:opacity .25s,transform .25s,top .35s cubic-bezier(.2,.9,.2,1)}
.peek.on{opacity:1;transform:none}
.peek img{width:100%;height:100%;object-fit:cover}
.all{display:inline-block;margin-top:30px;text-decoration:none;border-bottom:1.5px solid currentColor;padding-bottom:3px}

/* close */
.close{padding:clamp(100px,14vw,200px) var(--pad);text-align:center;background:var(--ink)}
.close h2{font-size:clamp(52px,10vw,170px);max-width:none;margin-bottom:26px}
.close .chroma{font-stretch:118%}
.close .lede{margin:0 auto 34px}
.close-mail{font-family:var(--mono);font-size:clamp(14px,1.8vw,22px);color:var(--sky);text-decoration:none;border-bottom:2px solid var(--sky);padding-bottom:4px;word-break:break-all}
.close-mail:hover{color:#fff;border-color:#fff}

.foot{display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;padding:34px var(--pad) 40px;border-top:1px solid var(--line)}
.foot-mark{font-size:26px}
.foot-nav{display:flex;flex-wrap:wrap;gap:20px}
.foot-nav a{text-decoration:none;opacity:.8}
.foot-nav a:hover{opacity:1;color:var(--sky2)}
.foot-fine{color:rgba(255,255,255,.4)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:60;background:rgba(5,5,8,.94);display:flex;align-items:center;justify-content:center;padding:60px 4vw}
.lb[hidden]{display:none}
.lb-frame{width:min(1100px,100%);aspect-ratio:16/9;background:#000}
.lb-frame iframe{width:100%;height:100%;border:0}
.lb-x{position:absolute;top:18px;right:var(--pad);color:#fff;padding:10px}

/* concierge */
.ask-btn{position:fixed;right:18px;bottom:18px;z-index:50;background:var(--ink);color:#fff;border:2px solid var(--sky);padding:13px 18px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;box-shadow:5px 5px 0 var(--pink)}
.ask-btn i{background:var(--sky)}
.ask-btn{transition:transform .35s,opacity .35s}
.ask-btn.away{transform:translateY(140%);opacity:0;pointer-events:none}
.ask{position:fixed;right:18px;bottom:18px;z-index:55;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 100px));display:flex;flex-direction:column;background:var(--ink2);border:2px solid var(--sky);box-shadow:8px 8px 0 var(--pink)}
.ask[hidden]{display:none}
.ask-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--sky2)}
.ask-x{font-size:16px;padding:4px 8px}
.ask-log{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:88%;padding:10px 13px;font-size:14px;line-height:1.45}
.msg.b{background:rgba(255,255,255,.07);align-self:flex-start}
.msg.u{background:var(--sky);color:var(--ink);align-self:flex-end;font-weight:600}
.msg a{color:var(--sky2)}
.msg .go{display:inline-block;margin-top:8px;background:var(--pink);color:#fff;padding:7px 12px;text-decoration:none;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.ask-chips{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 10px}
.ask-chips button{border:1px solid rgba(255,255,255,.3);padding:6px 10px;font-size:12px}
.ask-chips button:hover{border-color:var(--sky);color:var(--sky2)}
.ask-form{display:flex;border-top:1px solid var(--line)}
.ask-form input{flex:1;min-width:0;background:transparent;border:0;color:#fff;padding:14px 16px;font:inherit;font-size:15px;outline:none}
.ask-form button{padding:0 16px;color:var(--sky2)}

/* reveal */
.rv{opacity:0;transform:translateY(22px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
.rv.in{opacity:1;transform:none}

@media (max-width:980px){
  .book-head,.studio{grid-template-columns:1fr}
  .since-in{grid-template-columns:1fr}
  .since-in .log{grid-column:1;grid-row:auto;margin-top:36px}
  .since-film{aspect-ratio:16/10}
  .peek{display:none}
}
@media (max-width:640px){
  body{font-size:16px}
  .bar{padding:14px 18px}
  .bar-nav{gap:16px}
  .bar-nav a:not(.bar-live):not([href="#book"]){display:none}
  .top{min-height:560px}
  .top-word{font-size:15.5vw}
  .top-shade{background:linear-gradient(180deg,rgba(10,10,13,.5) 0,rgba(10,10,13,0) 20%,rgba(10,10,13,.15) 40%,rgba(10,10,13,.95) 100%)}
  .top-cap{display:none}
  .top-act{width:100%;justify-content:space-between}
  .top-act .btn{flex:1}
  .screen{box-shadow:6px 6px 0 var(--ink)}
  .screen-url{display:none}
  .third{bottom:26px}
  .third-k{display:none}
  .alert{padding:12px 14px}
  .idx button{grid-template-columns:1fr auto;gap:4px 14px}
  .idx button>.mono:first-child{grid-column:1/-1}
  .log li{grid-template-columns:58px 1fr}
  .out{min-height:80vh}
  .ask-btn{right:12px;bottom:12px}
  .ask{right:12px;bottom:12px}
  .foot{flex-direction:column;align-items:flex-start}
}
