/* yukan — version A. one red room. */
:root{
  --red:#960000;       /* linktree background, the brand */
  --red-hot:#F6222A;   /* red-light room */
  --ox:#5C001B;        /* oxblood */
  --ink:#0c0708;
  --chip:#141414;      /* linktree button black */
  --bone:#F5F0EF;
  --pink:#FCC5C5;
  --amber:#FDD69C;
  --ui:"Oxanium","Archivo",system-ui,sans-serif;
  --mark:"Archivo Black","Inter Tight","Arial Black",Impact,sans-serif;
  --fade:1000ms;
  --gut:clamp(16px,2.2vw,28px);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%;background:var(--ink);color:var(--bone)}
body{font-family:var(--ui);font-weight:600;font-size:15px;line-height:1.35;overflow:hidden;-webkit-font-smoothing:antialiased;overscroll-behavior:none}
::-webkit-scrollbar{display:none}
html{scrollbar-width:none}
img{user-select:none;-webkit-user-drag:none;display:block}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
:focus-visible{outline:2px solid var(--pink);outline-offset:3px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- GATE ---------- */
.gate{position:fixed;inset:0;z-index:50;background:var(--red);display:grid;place-items:center;padding:24px;
  transition:opacity 900ms ease, visibility 0s linear 900ms}
.gate::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background:radial-gradient(ellipse at 50% 42%, transparent 0 30%, #2a0000 100%)}
.gate.is-gone{opacity:0;visibility:hidden}
.gate__btn{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 24px}
.flame{width:clamp(70px,9vw,110px);height:auto;overflow:visible;transform-origin:50% 90%;animation:flick 2.4s ease-in-out infinite}
.flame__halo{transform-origin:60px 130px;animation:halo 3.1s ease-in-out infinite}
.gate__btn:hover .flame, .gate__btn:focus-visible .flame{animation-duration:.9s}
@keyframes flick{0%,100%{transform:scale(1,1) skewX(0)}25%{transform:scale(.96,1.05) skewX(2deg)}50%{transform:scale(1.02,.97) skewX(-1.5deg)}75%{transform:scale(.98,1.03) skewX(1deg)}}
@keyframes halo{0%,100%{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.18)}}
.gate__mark{font-family:var(--mark);font-size:clamp(84px,17vw,240px);line-height:.8;letter-spacing:-.045em;
  transform:skewX(-11deg);color:var(--bone);margin-top:-.08em;text-shadow:0 0 40px rgba(246,34,42,.45)}
.gate__cta{margin-top:18px;font-size:14px;letter-spacing:.2em;text-transform:uppercase;background:var(--chip);padding:9px 16px;border-radius:4px}
.gate__btn:hover .gate__cta,.gate__btn:focus-visible .gate__cta{background:var(--bone);color:var(--red)}
.gate__note{position:absolute;bottom:max(20px,env(safe-area-inset-bottom));left:0;right:0;text-align:center;font-size:12px;letter-spacing:.08em;color:rgba(245,240,239,.7);z-index:1}
.gate.is-lit .flame{animation:none;transform:scale(9);transition:transform 900ms cubic-bezier(.6,0,.9,.4);filter:blur(3px)}

/* ---------- CHROME ---------- */
.chrome{position:fixed;left:0;right:0;z-index:30;pointer-events:none;padding:var(--gut)}
.chrome a,.chrome button{pointer-events:auto}
.chrome--top{top:0;display:grid;grid-template-columns:auto 1fr auto;align-items:start;gap:18px}
.chrome--bottom{bottom:0}
.mark{font-family:var(--mark);font-size:clamp(40px,4.4vw,64px);line-height:.78;letter-spacing:-.05em;text-decoration:none;
  display:inline-block;transform:skewX(-11deg);color:var(--bone);text-shadow:0 2px 18px rgba(0,0,0,.55);padding:2px 6px 6px 0}
.nav{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding-top:4px}
.nav a,.out,.count,.flashbtn,.cap__text{background:var(--chip);border-radius:4px;padding:5px 9px;text-decoration:none;font-size:13px;letter-spacing:.02em}
.nav a:hover,.out:hover,.count:hover,.flashbtn:hover{background:var(--red);}
.nav a[aria-current="page"]{background:var(--red)}
.out{justify-self:end;white-space:nowrap}
.out b{color:var(--red-hot);font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.out:hover b{color:var(--bone)}

.cap{display:flex;align-items:flex-end;gap:6px;max-width:min(62vw,720px);flex-wrap:wrap}
.count{font-variant-numeric:tabular-nums;letter-spacing:.06em}
.cap__text{text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:700;max-width:100%;transition:opacity 400ms}
.cap__text time{color:#c9a8a8;font-weight:400;margin-left:.6em}
.cap__text:empty{display:none}
.flashbtn{text-transform:lowercase}
.flashbtn[disabled]{visibility:hidden}

/* ---------- DECK ---------- */
.deck{position:fixed;inset:0;height:100dvh;background:var(--ink);overflow:hidden}
.slide{position:absolute;inset:0;display:grid;place-items:center;opacity:0;visibility:hidden;
  transition:opacity var(--fade) ease, visibility 0s linear var(--fade)}
.slide.on{opacity:1;visibility:visible;transition:opacity var(--fade) ease, visibility 0s}
.slide img{max-width:100%;max-height:100dvh;width:auto;height:auto;object-fit:contain;opacity:0;transition:opacity 300ms ease}
.slide img.loaded{opacity:1}
.slide--cover{background:var(--red)}
.slide--cover img{width:min(78dvh,86vw,820px);height:auto;box-shadow:0 30px 80px rgba(0,0,0,.45)}
.slide--colophon{background:var(--red)}

.zone{position:absolute;top:0;bottom:0;width:50%;z-index:5}
.zone--prev{left:0;cursor:w-resize}
.zone--next{right:0;cursor:e-resize}
.zone:focus-visible{outline:none}
.zone::after{position:absolute;top:50%;translate:0 -50%;background:var(--bone);color:var(--red);font-weight:700;font-size:14px;padding:6px 10px;border-radius:4px;opacity:0;transition:opacity 200ms}
.zone--prev::after{content:"\2190  prev";left:var(--gut)}
.zone--next::after{content:"next  \2192";right:var(--gut)}
.zone:focus-visible::after{opacity:1}

.flashimg{position:absolute;inset:0;margin:auto;max-width:100%;max-height:100dvh;object-fit:contain;z-index:4;opacity:0;pointer-events:none;transition:opacity 700ms ease}
.flashimg.show{opacity:1;transition:opacity 60ms}
.bloom{position:absolute;inset:0;z-index:6;background:radial-gradient(circle at 50% 45%,#fff 0,#fff 30%,rgba(255,240,238,.85) 60%,rgba(255,230,230,.0) 100%);opacity:0;pointer-events:none}
.bloom.pop{animation:bloom 900ms ease-out}
@keyframes bloom{0%{opacity:0}6%{opacity:1}100%{opacity:0}}

/* colophon */
.colo{position:relative;z-index:7;width:min(1100px,100%);padding:120px var(--gut) 150px;display:flex;flex-direction:column;gap:clamp(22px,4vh,44px)}
.colo__title{font-family:var(--mark);font-weight:400;font-size:clamp(60px,11vw,170px);line-height:.82;letter-spacing:-.05em;transform:skewX(-11deg);text-transform:lowercase}
.colo__title span{display:block;white-space:nowrap}
.colo__dim{color:var(--ox);padding-left:.5em}
.colo__row{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;border-top:1.5px solid rgba(245,240,239,.5);border-bottom:1.5px solid rgba(245,240,239,.5);padding:12px 0}
.colo__row>*{font-size:17px;text-decoration:none;padding:4px 0}
.colo__row>*:hover{color:var(--pink);text-decoration:underline;text-underline-offset:4px}
.colo__credits{font-size:11px;font-weight:400;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px 24px;color:rgba(245,240,239,.85)}
.colo__credits dt{text-transform:uppercase;letter-spacing:.14em;font-weight:700;font-size:10px;color:var(--pink)}

/* ---------- TV ---------- */
.tv{position:fixed;z-index:35;right:var(--gut);bottom:var(--gut);width:232px;background:var(--chip);border-radius:6px;padding:5px;
  box-shadow:0 10px 40px rgba(0,0,0,.5);transition:width 500ms ease, transform 500ms ease}
.tv__screen{position:relative;aspect-ratio:16/9;background:#000;border-radius:3px;overflow:hidden}
.tv__screen iframe,#yt{position:absolute;inset:0;width:100%;height:100%;border:0}
.tv__poster{position:absolute;inset:0;z-index:2;display:grid;place-items:center}
.tv__poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.1);mix-blend-mode:luminosity;opacity:.75}
.tv__poster::before{content:"";position:absolute;inset:0;background:var(--red);mix-blend-mode:multiply}
.tv__poster span{position:relative;background:var(--bone);color:var(--red);font-size:12px;font-weight:700;padding:5px 9px;border-radius:4px;letter-spacing:.06em;text-transform:uppercase}
.tv__poster:hover span{background:var(--red-hot);color:var(--bone)}
.tv.is-playing .tv__poster{display:none}
.tv__bar{display:flex;align-items:center;gap:6px;padding:5px 2px 1px;font-size:11px}
.tv__bar button{padding:2px 6px;border-radius:3px;font-size:11px;line-height:1.2}
.tv__bar button:hover{background:var(--red)}
.tv__ch{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:lowercase}
.tv__t{font-variant-numeric:tabular-nums;color:#b99}
.tv.is-big{width:min(88vw,calc(78dvh * 16 / 9));transform:translate(calc(-50vw + 50% + var(--gut)),calc(-50dvh + 50% + var(--gut)))}
.tv.is-big ~ .panel{}

/* ---------- PANELS ---------- */
.panel{position:fixed;inset:0;z-index:40;background:var(--red);overflow-y:auto;opacity:0;transition:opacity 500ms ease;overscroll-behavior:contain}
.panel.is-open{opacity:1}
.panel[hidden]{display:none}
.panel__in{max-width:1080px;margin:0 auto;padding:clamp(96px,14vh,150px) var(--gut) 160px;position:relative}
.panel__x{position:fixed;top:var(--gut);right:var(--gut);background:var(--chip);border-radius:4px;padding:6px 11px;font-size:13px;z-index:2}
.panel__x:hover{background:var(--bone);color:var(--red)}
.panel h2{font-family:var(--mark);font-weight:400;font-size:clamp(60px,10vw,140px);line-height:.82;letter-spacing:-.05em;transform:skewX(-11deg);margin-bottom:14px}
.lede{font-size:15px;letter-spacing:.02em;margin-bottom:34px;color:var(--pink)}
.small{font-size:13px;margin-top:28px}
.quote{font-size:clamp(20px,2.4vw,30px);font-weight:700;margin-top:48px;text-transform:uppercase;letter-spacing:.02em;color:var(--pink)}

.pin{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(12px,2vw,24px);align-items:end;margin-bottom:22px}
.pin__item img{width:100%;height:auto;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.pin__item figcaption{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;margin-top:10px}
.pin__item b{font-family:var(--mark);font-weight:400;font-size:clamp(28px,3.4vw,44px);letter-spacing:-.04em;transform:skewX(-11deg);display:inline-block;line-height:1}
.pin__item span{font-size:12px;font-weight:400}
.tag{background:var(--bone);color:var(--red);font-weight:700 !important;text-transform:uppercase;letter-spacing:.1em;font-size:10px !important;padding:3px 6px;border-radius:3px}

.listen{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;border-top:1.5px solid var(--bone);border-bottom:1.5px solid var(--bone);padding:12px 0;margin:28px 0 8px}
.listen a{text-decoration:none;font-size:17px}
.listen a::after{content:" \2197";color:var(--pink)}
.listen a:hover{text-decoration:underline;text-underline-offset:4px}

.rows{list-style:none}
.rows li{display:flex;align-items:center;gap:18px;padding:16px 0;border-bottom:1.5px solid rgba(245,240,239,.35);font-size:18px}
.rows li:last-child{border-bottom:0}
.rows time{font-weight:400;font-variant-numeric:tabular-nums;width:88px;flex:none;font-size:14px;color:var(--pink)}
.rows img,.rows .blank{width:44px;height:44px;flex:none;object-fit:cover}
.rows .blank{display:grid;place-items:center;background:var(--ox);font-family:var(--mark);font-size:22px;color:var(--red);transform:none}
.rows .t{flex:1;text-transform:lowercase}
.rows .t i{font-style:normal;font-weight:400;font-size:13px;color:var(--pink);margin-left:8px}
.rows .l{font-weight:400;font-size:13px;color:rgba(245,240,239,.75)}
.rows a{text-decoration:underline;text-underline-offset:4px}
.singles li.hit{background:linear-gradient(90deg,rgba(0,0,0,.28),transparent);margin:0 calc(var(--gut) * -1);padding-left:var(--gut);padding-right:var(--gut)}
.singles li.hit .t::after{content:"#1";font-size:10px;font-weight:700;letter-spacing:.1em;background:var(--bone);color:var(--red);padding:2px 5px;border-radius:3px;margin-left:10px;vertical-align:3px}

.embed{margin-top:40px}
.embed iframe{width:100%;height:352px;border:0;border-radius:12px;background:var(--chip)}

.dates li{justify-content:space-between;padding:26px 0;font-size:clamp(18px,2vw,24px)}
.dates .empty{font-size:clamp(26px,4vw,48px);font-family:var(--mark);font-weight:400;letter-spacing:-.03em}
.dates .empty span:first-child{transform:skewX(-11deg);display:inline-block}
.dates .empty .l{font-family:var(--ui);font-size:14px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.soon{border:1.5px dashed rgba(245,240,239,.6);padding:4px 10px;border-radius:4px}

.chans{display:grid;grid-template-columns:1fr 1fr;gap:clamp(12px,2vw,24px)}
.chan{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;text-align:left}
.chan img{width:100%;aspect-ratio:16/9;object-fit:cover;margin-bottom:8px;filter:grayscale(1) contrast(1.15);transition:filter 400ms}
.chan:hover img,.chan:focus-visible img{filter:none}
.chan b{font-family:var(--mark);font-weight:400;font-size:clamp(26px,3vw,40px);letter-spacing:-.04em;transform:skewX(-11deg);display:inline-block}
.chan span{font-size:12px;font-weight:400}
.chan__n{background:var(--chip);padding:2px 6px;border-radius:3px;font-weight:700 !important}

.info{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(20px,4vw,56px);align-items:start}
.info img{width:100%;height:auto}
.info p{font-size:16px;font-weight:400;margin-bottom:16px;max-width:52ch}
.info p.big{font-size:clamp(22px,2.5vw,32px);font-weight:700;line-height:1.15;text-transform:lowercase}
.info .quote{margin-top:28px}
.links{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:30px 0 18px}
.links a{display:inline-block;background:var(--chip);padding:7px 12px;border-radius:4px;text-decoration:none;font-size:14px}
.links a:hover{background:var(--bone);color:var(--red)}
.mgmt{font-size:13px !important}

/* ---------- MOBILE ---------- */
@media (max-width:720px){
  .chrome--top{grid-template-columns:1fr auto;gap:10px}
  .nav{grid-column:1 / -1;grid-row:2;flex-direction:row;flex-wrap:wrap;gap:5px;padding-top:0}
  .nav a{font-size:12px;padding:5px 8px}
  .mark{font-size:44px}
  .out{font-size:12px}
  .chrome--bottom{padding-bottom:max(var(--gut),env(safe-area-inset-bottom))}
  .cap{max-width:calc(100vw - 32px - 150px)}
  .cap__text{font-size:11px}
  .tv{width:148px;padding:4px}
  .tv__bar{gap:2px;font-size:10px}
  .tv__t{display:none}
  .tv.is-big{width:calc(100vw - 32px);transform:translateY(calc(-50dvh + 50% + var(--gut)))}
  .pin,.chans,.info{grid-template-columns:1fr}
  .panel h2{font-size:clamp(44px,14vw,72px)}
  .colo__title{font-size:clamp(52px,19vw,90px)}
  .rows li{gap:12px;font-size:16px}
  .rows time{width:64px;font-size:12px}
  .rows .l{display:none}
  .dates .l{display:inline}
  .colo{padding:130px var(--gut) 150px}
  .colo__row{justify-content:flex-start;gap:6px 22px}
  .panel__x{top:auto;bottom:max(16px,env(safe-area-inset-bottom));right:16px}
}

/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion:reduce){
  :root{--fade:1ms}
  .flame,.flame__halo{animation:none}
  .gate,.panel,.tv,.slide img,.flashimg{transition-duration:1ms !important}
  .bloom{display:none}
  .gate.is-lit .flame{transform:none}
}
