/* ===== FX layer (v13): boot, grain, cursor, nav, progress, live chip, tilt, whip ===== */
html.lenis,html.lenis body{height:auto}.lenis.lenis-smooth{scroll-behavior:auto!important}
.grain{position:fixed;inset:-50%;width:200%;height:200%;pointer-events:none;z-index:90;opacity:.06;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%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 1.2s steps(6) infinite}
@keyframes grain{0%,100%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-2%,6%)}80%{transform:translate(5%,-2%)}}
/* scroll progress */
.prog{position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;transform:scaleX(0);z-index:95;background:linear-gradient(90deg,var(--sb),var(--sr),var(--sg),var(--sy))}
/* top nav */
.topnav{position:fixed;top:0;left:0;right:0;z-index:80;display:flex;align-items:center;gap:22px;padding:14px 28px;transition:background .35s,backdrop-filter .35s,padding .35s,border-color .35s;border-bottom:1px solid transparent}
.topnav.solid{background:rgba(31,20,102,.72);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);padding:10px 28px;border-color:rgba(255,255,255,.12)}
.topnav .kr{font:900 20px/1 "Inter",sans-serif;letter-spacing:-.02em;color:#fff;text-decoration:none;display:flex;align-items:center;gap:8px}
.topnav .kr i{display:inline-grid;grid-template-columns:repeat(2,7px);gap:2px}.topnav .kr i b{width:7px;height:7px;border-radius:2px;display:block}
.topnav .kr i b:nth-child(1){background:var(--sb)}.topnav .kr i b:nth-child(2){background:var(--sr)}.topnav .kr i b:nth-child(3){background:var(--sg)}.topnav .kr i b:nth-child(4){background:var(--sy)}
.topnav ul{display:flex;gap:4px;margin:0 0 0 auto;padding:0;list-style:none}
.topnav ul a{position:relative;display:block;padding:8px 12px;border-radius:999px;color:var(--muted);font:600 14px/1 "Inter",sans-serif;text-decoration:none;transition:color .2s,background .2s}
.topnav ul a:hover,.topnav ul a.on{color:#fff;background:rgba(255,255,255,.1)}
.topnav .hire{padding:10px 16px;border-radius:999px;font:800 14px/1 "Inter",sans-serif;color:#1a0b3d;text-decoration:none;background:linear-gradient(90deg,var(--sy),var(--orange),var(--pink))}
body{padding-top:0}.hero{padding-top:110px}
@media (max-width:900px){.topnav ul{display:none}.topnav{padding:12px 16px}.topnav.solid{padding:10px 16px}.topnav .hire{margin-left:auto}.hero{padding-top:84px}}
/* live chip */
.livechip{display:inline-flex;align-items:center;gap:10px;margin:0 0 18px;padding:8px 14px 8px 10px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid var(--edge);color:#fff;text-decoration:none;font:600 13px/1.2 "Inter",sans-serif}
.livechip .dot{width:10px;height:10px;border-radius:50%;background:var(--sg);box-shadow:0 0 0 0 rgba(47,211,107,.7);animation:pulse 1.8s infinite}
.livechip.live .dot{background:var(--sr);box-shadow:0 0 0 0 rgba(255,59,79,.7)}
.livechip .lc-k{font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}
.livechip.live .lc-k{color:#ff8a96}
.livechip .lc-t{font-variant-numeric:tabular-nums}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(0,0,0,0)}100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}}
/* boot intro */
#boot{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#120a3d;color:#fff;cursor:pointer}
#boot .bootbox{width:min(520px,86vw);font:500 13px/1.7 "JetBrains Mono",monospace;color:#cfc6ff}
#boot .bootlog{min-height:7.2em;white-space:pre}
#boot .bootlog .bok{color:var(--sg);font-weight:700}
#boot .bootnum{display:flex;justify-content:space-between;align-items:baseline;margin-top:14px;font:900 clamp(30px,6.5vw,62px)/1 "Inter",sans-serif;letter-spacing:-.02em;color:#fff;white-space:nowrap;gap:20px}
#boot .bootnum small{font:600 12px/1 "JetBrains Mono",monospace;letter-spacing:.14em;color:var(--muted)}
#boot .bootbar{height:6px;margin-top:12px;border-radius:3px;background:rgba(255,255,255,.12);overflow:hidden}
#boot .bootbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--sb),var(--sr),var(--sg),var(--sy))}
#boot .skip{margin-top:18px;font:600 11px/1 "JetBrains Mono",monospace;letter-spacing:.14em;color:rgba(255,255,255,.45);text-transform:uppercase}
html.booting{overflow:hidden}
/* hero letters */
.hero h1 .ch{display:inline-block;font-style:normal;will-change:transform}
#boot .bootlog b{display:inline}
.hero h1 span .ch{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero h1.glitch{animation:rgb .45s steps(2) 1}
@keyframes rgb{0%{text-shadow:-4px 0 var(--sr),4px 0 var(--sb)}50%{text-shadow:3px 0 var(--sg),-3px 0 var(--sy)}100%{text-shadow:none}}
/* custom cursor (fine pointers only) */
.cur,.cur-dot{position:fixed;left:0;top:0;pointer-events:none;z-index:99;border-radius:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .25s}
.cur{width:38px;height:38px;border:1.5px solid rgba(255,255,255,.7);display:grid;place-items:center;transition:width .25s,height .25s,background .25s,border-color .25s,opacity .25s;mix-blend-mode:normal}
.cur span{font:800 10px/1 "JetBrains Mono",monospace;letter-spacing:.1em;color:#1a0b3d;opacity:0;transition:opacity .2s}
.cur-dot{width:6px;height:6px;background:#fff}
.cur.hov{width:58px;height:58px;background:rgba(255,255,255,.12);border-color:var(--cyan)}
.cur.lbl{width:76px;height:76px;background:var(--sy);border-color:var(--sy)}.cur.lbl span{opacity:1}
html.has-cur .cur,html.has-cur .cur-dot{opacity:1}
html.has-cur,html.has-cur a,html.has-cur button{cursor:none}
html.has-cur input,html.has-cur textarea,html.has-cur select{cursor:text}
/* tilt + glare */
.tilt{transform-style:preserve-3d;will-change:transform;position:relative}
.tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.18),transparent 45%);opacity:0;transition:opacity .3s;z-index:3}
.tilt:hover::after{opacity:1}
/* section heads */
.fx-ready h2{will-change:transform}
@media (prefers-reduced-motion:reduce){.grain{display:none}#boot{display:none}.livechip .dot{animation:none}}
@media (hover:none),(pointer:coarse){.cur,.cur-dot{display:none}}

.tilt,.prcard,.wcard,.w,.btn{transition-property:box-shadow,background,border-color,color!important}
html.no-js #boot,html.noboot #boot{display:none}
#boot{animation:bootsafe 0s linear 5s forwards}@keyframes bootsafe{to{visibility:hidden;pointer-events:none}}

/* DISK & DRIVE card: CRT screen (from diskanddrive.com) */
.crtbox{position:relative;overflow:hidden}
.crtbox::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px);mix-blend-mode:multiply;opacity:.55;transition:opacity .3s}
.crtbox::after{content:"INSERT COIN";position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:3;font:700 12px/1 "JetBrains Mono",monospace;letter-spacing:.2em;color:#fff;text-shadow:0 0 8px var(--cyan);padding:7px 12px;background:rgba(0,0,0,.55);border-radius:6px;opacity:0;transition:opacity .25s;animation:blinkc 1s steps(1) infinite}
.crtbox:hover::before{opacity:1;animation:flick .15s steps(2) infinite}
.crtbox:hover::after{opacity:1}
.crtbox img{transition:filter .3s}
.crtbox:hover img{filter:saturate(1.35) contrast(1.1)}
@keyframes flick{50%{opacity:.8}}
@keyframes blinkc{50%{color:transparent;text-shadow:none}}
/* toast (from bigalgonzales.com) */
.toast{position:fixed;left:50%;bottom:28px;z-index:98;transform:translate(-50%,140%);padding:12px 18px;border-radius:14px;background:#120a3d;border:1px solid var(--edge);color:#fff;font:600 14px/1.3 "Inter",sans-serif;box-shadow:0 18px 50px rgba(0,0,0,.45);transition:transform .45s cubic-bezier(.2,1.4,.4,1);max-width:calc(100vw - 32px)}
.toast.on{transform:translate(-50%,0)}
.toast b{color:var(--sy)}
/* secret: TV static (from diskanddrive.com) */
.static{position:fixed;inset:0;width:100%;height:100%;z-index:97;pointer-events:none;opacity:0;transition:opacity .2s}
.static.on{opacity:.85}
@media (prefers-reduced-motion:reduce){.crtbox::before,.crtbox::after{animation:none}}

/* ===== v14: COMEDYBOT feature, crossfade cards, logo cards ===== */
.cbot{margin-top:26px;display:grid;grid-template-columns:1.1fr .9fr;gap:22px 28px;padding:26px;border-radius:24px;background:linear-gradient(140deg,rgba(255,201,40,.16),rgba(255,59,79,.12) 45%,rgba(47,107,255,.14));border:1px solid rgba(255,201,40,.45)}
.cbot-head{min-width:0}
.cbot h3{margin:0 0 10px;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.1;font-weight:900;text-wrap:balance}
.cbot h3 em{font-style:normal;background:linear-gradient(90deg,var(--sy),var(--orange),var(--pink));-webkit-background-clip:text;background-clip:text;color:transparent}
.cbot .lead{margin:0 0 16px}
.cbot-k{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.cbot-k li{padding:8px 12px;border-radius:999px;background:rgba(0,0,0,.25);border:1px solid var(--edge);font-size:13px;color:var(--muted)}
.cbot-k b{color:#fff;font-size:15px;margin-right:4px}
.cbot-shot{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--edge);align-self:start}
.cbot-shot img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/10}
.cbot-tag{position:absolute;left:12px;bottom:12px;padding:6px 10px;border-radius:8px;background:rgba(18,10,61,.75);font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.12em;color:var(--sy)}
.cbot-flow{grid-column:1/-1;display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0;padding:0;list-style:none;counter-reset:cf}
.cbot-flow li{position:relative;display:grid;gap:6px;align-content:start;padding:14px 12px;border-radius:16px;background:rgba(18,10,61,.45);border:1px solid var(--edge);counter-increment:cf}
.cbot-flow li::before{content:counter(cf);position:absolute;top:10px;right:12px;font:700 11px/1 "JetBrains Mono",monospace;color:rgba(255,255,255,.4)}
.cbot-flow li:not(:last-child)::after{content:"";position:absolute;top:50%;right:-9px;width:8px;height:2px;background:var(--sy)}
.cf-i{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--sy),var(--pink));color:#1a0b3d}
.cf-i svg{width:18px;height:18px}
.cbot-flow b{font-size:14px}
.cbot-flow span:not(.cf-i){font-size:12.5px;line-height:1.4;color:var(--muted)}
.cbot-more{grid-column:1/-1;margin:0;font-size:13px;color:var(--muted)}
@media (max-width:1000px){.cbot{grid-template-columns:1fr}.cbot-flow{grid-template-columns:repeat(3,1fr)}.cbot-flow li:nth-child(3n)::after{display:none}}
@media (max-width:560px){.cbot{padding:18px}.cbot-flow{grid-template-columns:1fr 1fr}.cbot-flow li::after{display:none!important}}
.wimg.duo{position:relative}
.wimg.duo img{position:absolute;inset:0}
.wimg.duo img:nth-child(2){animation:duo 9s ease-in-out infinite}
@keyframes duo{0%,40%{opacity:0}50%,90%{opacity:1}100%{opacity:0}}
.wimg.logo{display:grid;place-items:center;background:#fff;position:relative}
.wimg.logo img{width:auto!important;height:auto!important;max-width:46%;max-height:46%;object-fit:contain}
.wimg.logo.dark{background:#000}
.wimg.logo.dark img{max-width:80%;max-height:80%}
.wcard:hover .wimg.logo img{transform:scale(1.06)}
.wimg.banner img{object-position:left center}
.wimg .artt{position:absolute;left:12px;bottom:10px;z-index:2;font:700 12px "JetBrains Mono",monospace;color:#fff;background:rgba(20,8,60,.6);padding:4px 8px;border-radius:8px}
@media (prefers-reduced-motion:reduce){.wimg.duo img:nth-child(2){animation:none;opacity:0}}

.cbot-shot{overflow:visible}
.cbot-shot>img:first-child{border-radius:17px}
.cbot-mascot{position:absolute!important;right:-14px;bottom:-26px;width:42%!important;height:auto!important;aspect-ratio:auto!important;filter:drop-shadow(0 14px 24px rgba(10,4,40,.55));transform-origin:50% 100%;animation:bob 2.4s ease-in-out infinite}
.cbot-shot:hover .cbot-mascot{animation:rage .12s linear infinite}
@keyframes bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}
@keyframes rage{0%{transform:translate(0,0) rotate(-3deg)}50%{transform:translate(2px,-2px) rotate(3deg)}100%{transform:translate(-2px,0) rotate(-3deg)}}
@media (max-width:560px){.cbot-mascot{width:40%!important;right:-6px}}
@media (prefers-reduced-motion:reduce){.cbot-mascot{animation:none!important}}
.ftrstats{grid-template-columns:repeat(5,1fr)}
@media (max-width:720px){.ftrstats{grid-template-columns:repeat(2,1fr)}.ftrstats .stat:last-child{grid-column:1/-1}}
@media (max-width:720px){.prgrid>:last-child:nth-child(odd){grid-column:1/-1}}
@media (max-width:1100px){.wcard.big .wimg.banner{aspect-ratio:1400/455}}
@media (min-width:721px) and (max-width:1100px){.prgrid{grid-template-columns:repeat(6,1fr)}.prgrid>*{grid-column:span 2}.prgrid>:nth-last-child(-n+2){grid-column:span 3}}

/* v15: rotating hero photos */
.collage figure.rot{background:#24145e}
.collage figure.rot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.6s ease,transform 6s ease}
.collage figure.rot img.on{opacity:1;transform:scale(1.06)}
@media (prefers-reduced-motion:reduce){.collage figure.rot img{transition:none;transform:none!important}}
.collage .op-a{object-position:40% 40%}.collage .op-b{object-position:50% 72%}

/* ===== v16: each section is its own room ===== */
.th-stage,.th-shop,.th-spot,.th-news,.th-desk,.th-sun{position:relative;isolation:isolate}
.th-stage::before,.th-shop::before,.th-spot::before,.th-news::before,.th-desk::before,.th-sun::before{content:"";position:absolute;z-index:-1;top:-48px;bottom:-48px;left:calc(50% - 50vw);right:calc(50% - 50vw);pointer-events:none}
/* the club: warm stage light, curtain folds */
.th-stage::before{background:
  radial-gradient(60% 40% at 50% 0%,rgba(255,110,196,.30),transparent 70%),
  repeating-linear-gradient(90deg,rgba(160,20,70,.20) 0 26px,rgba(90,10,50,.10) 26px 52px),
  linear-gradient(180deg,#2a1068,#3b1270 60%,#2a1068)}
.th-stage .kicker{color:#ff8fcf}
/* the work: blueprint grid, cool */
.th-shop::before{background:
  linear-gradient(rgba(63,224,255,.08) 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(90deg,rgba(63,224,255,.08) 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(180deg,#14225e,#1b2f78 50%,#18256a)}
.th-shop h2 span{background:linear-gradient(90deg,#3fe0ff,#7cf3c8);-webkit-background-clip:text;background-clip:text;color:transparent}
/* the talks: one warm spotlight on a dark stage */
.th-spot::before{background:
  radial-gradient(38% 70% at 22% 0%,rgba(255,214,120,.26),rgba(255,214,120,.06) 55%,transparent 75%),
  linear-gradient(180deg,#160d3f,#1d1150)}
.th-spot h2 span{background:linear-gradient(90deg,#ffd166,#ffa94d);-webkit-background-clip:text;background-clip:text;color:transparent}
/* the press: halftone newsprint dots, soft lavender */
.th-news::before{background:
  radial-gradient(rgba(255,255,255,.07) 1.2px,transparent 1.4px) 0 0/14px 14px,
  linear-gradient(180deg,#3b2a8c,#4a3399)}
.th-news h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.01em}
/* the resume: calm, plain */
.th-desk::before{background:linear-gradient(180deg,#24165e,#2a1a6a)}
/* the booking: sunset */
.th-sun::before{background:
  radial-gradient(70% 60% at 50% 100%,rgba(255,169,77,.35),transparent 70%),
  linear-gradient(180deg,#3a1c8f,#6a2486 70%,#8a2f7a)}
/* soft seams between rooms */
.th-shop::after,.th-spot::after,.th-news::after,.th-desk::after,.th-sun::after{content:"";position:absolute;z-index:-1;left:calc(50% - 50vw);right:calc(50% - 50vw);top:-48px;height:70px;background:linear-gradient(180deg,rgba(0,0,0,.18),transparent);pointer-events:none}
.th-stage,.th-shop,.th-spot,.th-news,.th-desk,.th-sun{margin-top:96px}
.th-stage{margin-top:72px}

/* ===== v17: hero = Kyle + accomplishment bubbles ===== */
.collage.solo{aspect-ratio:1/1;max-width:600px}
.collage.solo .c-main{inset:auto!important;left:18%!important;top:16%!important;width:64%!important;aspect-ratio:1/1;transform:rotate(-2deg)}
.bubbles{position:absolute;inset:0;z-index:5;pointer-events:none}
.bub{position:absolute;max-width:230px;padding:11px 15px;border-radius:18px;background:#fff;color:#1a0b3d;font:800 14.5px/1.25 "Inter",sans-serif;box-shadow:0 14px 34px rgba(10,4,40,.45);opacity:0;transform:scale(.6) translateY(10px);transition:opacity .35s ease,transform .45s cubic-bezier(.2,1.6,.4,1);text-wrap:balance}
.bub.on{opacity:1;transform:none}
.bub::after{content:"";position:absolute;width:16px;height:16px;background:inherit;transform:rotate(45deg);border-radius:3px}
.bub.s-tl{left:0;top:2%}.bub.s-tl::after{right:26px;bottom:-6px}
.bub.s-tr{right:0;top:4%}.bub.s-tr::after{left:26px;bottom:-6px}
.bub.s-r{right:-4%;top:46%}.bub.s-r::after{left:-6px;top:50%;margin-top:-8px}
.bub.s-br{right:2%;bottom:3%}.bub.s-br::after{left:30px;top:-6px}
.bub.s-bl{left:0;bottom:6%}.bub.s-bl::after{right:30px;top:-6px}
.bub.s-l{left:-6%;top:42%}.bub.s-l::after{right:-6px;top:50%;margin-top:-8px}
.bub:nth-child(3n){background:#ffe27a}.bub:nth-child(3n+1){background:#ffd0ec}.bub:nth-child(3n+2){background:#c8f4ff}
@media (max-width:900px){
  .hdr .collage.solo{order:-1;align-self:center;width:100%;max-width:440px;margin:0 auto}
  .bub{max-width:170px;font-size:12.5px;padding:9px 12px}
  .bub.s-r{right:0}.bub.s-l{left:0}
}
@media (prefers-reduced-motion:reduce){.bub{transition:none}}
/* gallery: one full-width panorama row */
.gal figure.pano{grid-column:1/-1;grid-row:span 2}

/* ===== v17: rooms go further ===== */
/* angled seams between rooms */
.th-shop::before{clip-path:polygon(0 36px,100% 0,100% 100%,0 100%)}
.th-spot::before{clip-path:polygon(0 0,100% 36px,100% 100%,0 100%)}
.th-news::before{clip-path:polygon(0 36px,100% 0,100% 100%,0 100%)}
.th-sun::before{clip-path:polygon(0 0,100% 36px,100% 100%,0 100%)}
/* room labels */
.room-tag{display:inline-flex;align-items:center;gap:8px;margin:0 0 10px;padding:6px 12px;border-radius:999px;font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.16em;text-transform:uppercase}
.th-stage .room-tag{background:rgba(255,110,196,.18);color:#ff9fd6;border:1px solid rgba(255,110,196,.45)}
.th-shop .room-tag{background:rgba(63,224,255,.12);color:#7fe9ff;border:1px solid rgba(63,224,255,.4)}
.th-spot .room-tag{background:rgba(255,209,102,.14);color:#ffd166;border:1px solid rgba(255,209,102,.45)}
.th-news .room-tag{background:rgba(255,255,255,.1);color:#fff;border:1px solid rgba(255,255,255,.35)}
.th-desk .room-tag{background:rgba(167,139,250,.16);color:#cdbcff;border:1px solid rgba(167,139,250,.4)}
.th-sun .room-tag{background:rgba(255,169,77,.18);color:#ffc078;border:1px solid rgba(255,169,77,.5)}
/* the club: curtain valance on top */
.th-stage::after{content:"";position:absolute;z-index:-1;left:calc(50% - 50vw);right:calc(50% - 50vw);top:-48px;height:34px;pointer-events:none;
  background:radial-gradient(28px 22px at 28px 0,#7a1450 98%,transparent 100%) 0 0/56px 34px repeat-x}
/* the work: drafting corner marks on cards */
.th-shop .wcard{box-shadow:0 0 0 1px rgba(63,224,255,.18)}
.th-shop h2{letter-spacing:-.02em}
/* the talks: mic-stand beam */
.th-spot::after{content:"";position:absolute;z-index:-1;left:calc(50% - 50vw);right:calc(50% - 50vw);top:-48px;bottom:-48px;pointer-events:none;
  background:conic-gradient(from 160deg at 22% -4%,transparent 0deg,rgba(255,214,120,.10) 12deg,transparent 26deg)}
/* the press: column rules like a broadsheet */
.th-news .prcard{background:rgba(255,255,255,.08);border-radius:8px}
.th-news .prcard b{font-family:Georgia,"Times New Roman",serif;font-weight:700}
.th-news h2::after{content:"";display:block;height:3px;margin-top:10px;width:120px;border-top:1px solid rgba(255,255,255,.6);border-bottom:1px solid rgba(255,255,255,.6)}
/* the booking: warm glow on the CTA */
.th-sun .w.pri{box-shadow:0 0 0 2px rgba(255,201,40,.5),0 18px 40px rgba(255,120,60,.35)}
.toast{opacity:0;transition:transform .45s cubic-bezier(.2,1.4,.4,1),opacity .3s}.toast.on{opacity:1}

/* ===== v18 ===== */
html.has-cur,html.has-cur a,html.has-cur button{cursor:auto}
/* seams: steeper angles, alternating, every room */
.th-news::before{clip-path:polygon(0 0,100% 60px,100% 100%,0 100%)}
.th-spot::before{clip-path:polygon(0 60px,100% 0,100% 100%,0 100%)}
.th-shop::before{clip-path:polygon(0 0,100% 60px,100% 100%,0 100%)}
.th-desk::before{clip-path:none}
.th-stage::before{clip-path:polygon(0 60px,100% 0,100% 100%,0 100%)}
.th-sun::before{clip-path:polygon(0 0,100% 60px,100% 100%,0 100%)}
.th-news,.th-spot,.th-shop,.th-desk,.th-stage,.th-sun{margin-top:110px}
/* more texture per room */
.th-news::before{background:
  radial-gradient(rgba(255,255,255,.08) 1.2px,transparent 1.4px) 0 0/12px 12px,
  repeating-linear-gradient(90deg,transparent 0 239px,rgba(255,255,255,.07) 239px 240px),
  linear-gradient(180deg,#3b2a8c,#4a3399)}
.th-spot::before{background:
  radial-gradient(34% 75% at 22% 0%,rgba(255,214,120,.30),rgba(255,214,120,.07) 55%,transparent 75%),
  radial-gradient(rgba(255,255,255,.035) 1px,transparent 1.2px) 0 0/22px 22px,
  linear-gradient(180deg,#140b38,#1c104c)}
.th-shop::before{background:
  linear-gradient(rgba(63,224,255,.10) 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(90deg,rgba(63,224,255,.10) 1px,transparent 1px) 0 0/40px 40px,
  linear-gradient(rgba(63,224,255,.05) 1px,transparent 1px) 0 0/8px 8px,
  linear-gradient(180deg,#14225e,#1b2f78 50%,#18256a)}
.th-desk::before{background:linear-gradient(180deg,#24165e,#2a1a6a);}
.room-tag svg{flex:none}
.room-tag{font-size:12px;padding:7px 14px}
/* big ghost word behind each room heading */
.th-news,.th-spot,.th-shop,.th-stage{--ghost:""}
.th-news{--ghost:"PRESS"}.th-spot{--ghost:"LIVE"}.th-shop{--ghost:"BUILT"}.th-stage{--ghost:"CLUB"}
.th-news>.room-tag,.th-spot>.room-tag,.th-shop>.room-tag{position:relative}
.th-news::after,.th-spot::after,.th-shop::after{content:var(--ghost)!important;position:absolute;z-index:-1;top:10px;right:0;left:auto!important;height:auto!important;background:none!important;font:900 clamp(80px,14vw,190px)/1 "Inter",sans-serif;letter-spacing:-.04em;color:rgba(255,255,255,.045);pointer-events:none;white-space:nowrap}
.th-spot::after{color:rgba(255,214,120,.06)}
.th-shop::after{color:rgba(63,224,255,.06)}
.th-sun .wgrid{grid-template-columns:1fr 1fr}
@media (max-width:560px){.th-sun .wgrid{grid-template-columns:1fr}}

/* v21: complete lines, plain white name */
.hero h1 span,.hero h1 span .ch{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;color:#fff!important}
.hk{flex-wrap:wrap;row-gap:4px}
.hk .kg{font-weight:inherit;white-space:nowrap}
.hk .ksep{font-style:normal;white-space:pre}
@media (max-width:640px){.hk .ksep{display:none}.hk .kg{flex-basis:100%;padding-left:38px}.hk .kg:first-of-type{flex-basis:auto;padding-left:0}}
p,li,figcaption,.lead{text-wrap:pretty}
h1,h2,h3,.punch{text-wrap:balance}
.punch{max-width:34ch}
.hk .ksep{margin:0 -5px}

/* v22: logo A, "still rendering" */
.topnav .kr .krm{display:block;flex:none}
.krm-fill{transform-origin:17px 22px;transform:scaleY(0);animation:krfill 1.1s cubic-bezier(.6,0,.2,1) 1.4s forwards}
.krm-ol{animation:krol .3s linear 2.4s forwards}
.topnav .kr:hover .krm-fill{animation:krfill2 .9s cubic-bezier(.6,0,.2,1) 1 forwards}
@keyframes krfill{0%{transform:scaleY(0)}40%{transform:scaleY(.55)}55%{transform:scaleY(.55)}100%{transform:scaleY(1)}}
@keyframes krfill2{0%{transform:scaleY(0)}100%{transform:scaleY(1)}}
@keyframes krol{to{opacity:0}}
@media (prefers-reduced-motion:reduce){.krm-fill{animation:none;transform:none}.krm-ol{display:none}}

/* v23: name = render pass */
.hero h1.rph{position:relative}
.hero h1 .rpass{display:inline-block;--p:100%;-webkit-mask-image:linear-gradient(#000 var(--p),transparent var(--p)),repeating-linear-gradient(#000 0 3px,transparent 3px 7px);mask-image:linear-gradient(#000 var(--p),transparent var(--p)),repeating-linear-gradient(#000 0 3px,transparent 3px 7px);-webkit-mask-composite:source-over;mask-composite:add}
.hero h1 .rp{position:absolute;left:3.3em;top:.42em;font:700 13px/1 "JetBrains Mono",monospace;letter-spacing:.12em;color:#7fe9ff;white-space:nowrap;opacity:0;transition:opacity .5s}
.hero h1 .rp.on{opacity:1}
.hero h1 .rp b{font-weight:700;font-variant-numeric:tabular-nums}
@media (max-width:640px){.hero h1 .rp{font-size:11px;left:3.25em;top:.4em}}

.hero h1 .rpw{position:relative;display:inline-block;width:0;height:1em;vertical-align:top}
.hero h1 .rp{left:18px!important;top:.55em!important;font-size:13px}
@media (max-width:640px){.hero h1 .rp{left:12px!important;top:.45em!important;font-size:11px}}

/* ===== v24: hero pass ===== */
/* chip order reads like a resume line; first chip = place */
.chips li:first-child{background:var(--glass2)}
.chips li:nth-child(2){background:linear-gradient(90deg,rgba(63,224,255,.35),rgba(167,139,250,.35))}
/* name: render loop + load bar */
.hero h1 .rpwrap{position:relative;display:inline-block;--p:100%}
.hero h1 .rpwrap .rpass{--p:inherit}
.hero h1 .rpbar{position:absolute;left:.04em;right:.04em;bottom:-.14em;height:.07em;min-height:5px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}
.hero h1 .rpbar>i{position:absolute;left:0;top:0;bottom:0;width:var(--p);border-radius:99px;
  background:linear-gradient(90deg,var(--sb) 0 25%,var(--sr) 25% 50%,var(--sg) 50% 75%,var(--sy) 75%) 0 0/var(--bw,100%) 100% no-repeat}
.hero h1{margin-bottom:30px}
/* phones: titles sit ABOVE the photo, like before */
@media (max-width:900px){
  .hdr .hero-txt{display:contents}
  .hdr .hero-txt>.kicker{order:-2;margin-bottom:4px}
  .hdr .collage.solo{order:-1}
}

/* v25: bar logo + bigger hero photo */


@keyframes krbar{0%{transform:scaleX(0)}45%{transform:scaleX(.58)}60%{transform:scaleX(.6)}100%{transform:scaleX(1)}}
@keyframes krbar2{0%{transform:scaleX(0)}100%{transform:scaleX(1)}}

@media (min-width:901px){.collage.solo{max-width:640px}.collage.solo .c-main{left:14%!important;top:13%!important;width:72%!important}}

/* v26: loading-blocks logo (a row, not a grid) */
.topnav .kr{gap:10px}
.topnav .krm-fill{transform-origin:27px 8px;transform:scaleY(0);animation:krblk 1.2s cubic-bezier(.6,0,.2,1) 1s forwards}
@media (prefers-reduced-motion:reduce){.topnav .krm-fill{animation:none;transform:none}}
.topnav .kr:hover .krm-fill{animation:krblk2 .7s cubic-bezier(.6,0,.2,1) forwards}
@keyframes krblk{0%{transform:scaleY(0)}45%{transform:scaleY(.55)}60%{transform:scaleY(.55)}100%{transform:scaleY(1)}}
@keyframes krblk2{0%{transform:scaleY(0)}100%{transform:scaleY(1)}}

/* v27: sliced-R logo (cut like the hero art) */
.topnav .kr .krm.slr{width:auto;height:32px;transition:transform .35s cubic-bezier(.2,1.6,.4,1)}
.topnav .kr:hover .krm.slr{transform:rotate(-6deg) scale(1.08)}
.topnav .kr .krm.slr g g{transition:transform .35s ease}

/* v28: 3D clean-slice R */
.topnav .kr .krm.r3d{width:auto;height:36px;display:block;transition:transform .35s cubic-bezier(.2,1.6,.4,1)}
.topnav .kr:hover .krm.r3d{transform:rotate(-5deg) scale(1.08)}

/* v29: voxel R logo */
.topnav .kr .krm.vox{width:auto;height:34px;display:block;transition:transform .35s cubic-bezier(.2,1.6,.4,1)}
.topnav .kr:hover .krm.vox{transform:translateY(-2px) rotate(-4deg) scale(1.08)}

/* ===== v29: final pass ===== */
/* top bar: flush to the top, always solid, nothing showing above it */
.topnav,.topnav.solid{top:0;padding-top:max(12px,env(safe-area-inset-top,0px));background:rgba(26,15,86,.94);-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%);border-bottom:1px solid rgba(255,255,255,.12)}
.topnav{padding-bottom:12px}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:81;background:rgba(26,15,86,.98)}
.prog{top:auto;bottom:0;position:absolute;height:3px}
.topnav .prog{display:block}
/* hero: less empty space under it */
.hero{padding-bottom:28px}
.th-news{margin-top:64px}
/* chips: one row, never wraps */
.chips.one{flex-wrap:nowrap;white-space:nowrap}
@media (max-width:560px){.chips.one{gap:6px}.chips.one li{font-size:11.5px;padding:5px 9px}}
@media (max-width:360px){.chips.one li{font-size:10.5px;padding:4px 7px}}
/* RTA card: real logo on black */
.wimg.logo.dark img{max-width:62%;max-height:92%}
.chips.one li{white-space:nowrap}
@media (max-width:560px){.chips.one{gap:5px}.chips.one li{font-size:11px;padding:5px 8px}.hk{font-size:10.5px!important;letter-spacing:.07em!important}.hk>span{display:none}.hk .kg,.hk .kg:first-of-type{padding-left:0!important}}
@media (max-width:380px){.chips.one{gap:4px}.chips.one li{font-size:10px;padding:4px 7px}.hk{font-size:9.5px!important;letter-spacing:.05em!important}}

/* v30: tighten space under the facts row */
.hero .chips{margin-bottom:14px}
@media (max-width:900px){.hdr{gap:10px}.hero .chips{margin:6px 0 4px}}

/* ===== v31 ===== */
/* titles: two rows, same width, spread evenly */
.hk2{display:flex;align-items:flex-start;gap:12px;margin:0 0 14px;font:700 13px/1.55 "JetBrains Mono",ui-monospace,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan)}
.hk2 .kbar{flex:none;width:28px;height:4px;margin-top:.62em;border-radius:2px;background:var(--grad)}
.hk2 .trows{display:inline-grid;gap:2px}
.hk2 .tr{display:flex;justify-content:space-between;gap:.7em;white-space:nowrap}
.hk2 .tr b{font-weight:700}.hk2 .tr i{font-style:normal;opacity:.7}
@media (max-width:900px){.hdr .hero-txt>.hk2{order:-2}}
@media (max-width:560px){.hk2{font-size:10.5px;letter-spacing:.08em;gap:8px}.hk2 .kbar{width:18px}}
@media (max-width:380px){.hk2{font-size:9.5px;letter-spacing:.05em}.hk2 .kbar{display:none}}
/* DISK & DRIVE facts */
.ddtags{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 12px;padding:0;list-style:none}
.ddtags li{padding:5px 10px;border-radius:999px;font:700 11.5px/1.2 "JetBrains Mono",monospace;letter-spacing:.04em;background:rgba(63,224,255,.12);border:1px solid rgba(63,224,255,.4);color:#bff6ff}
/* press: 3 big + strip */
.prgrid.three{grid-template-columns:repeat(3,1fr)!important}
.prgrid.three>*{grid-column:auto!important}
.prgrid.three .pimg{aspect-ratio:16/10}
.prgrid.three .prcard b{font-size:18px}
@media (max-width:720px){.prgrid.three{grid-template-columns:1fr!important}}
.pstrip{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:6px 0 4px;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.18)}
.pstrip-l{font:700 11px/1 "JetBrains Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.pstrip ul{display:flex;flex-wrap:wrap;gap:8px 18px;margin:0;padding:0;list-style:none}
.pstrip a{font-family:Georgia,"Times New Roman",serif;font-weight:700;font-size:16px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.3)}
.pstrip a:hover{border-color:#fff}
/* talks: glitchy static TV portrait */
.spk-img.tv{position:relative;overflow:hidden;isolation:isolate}
.spk-img.tv img{display:block;filter:contrast(1.15) brightness(1.05)}
.spk-img.tv .tvg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;mix-blend-mode:screen;opacity:.55;pointer-events:none}
.spk-img.tv .tvr{filter:brightness(.9) sepia(1) hue-rotate(-50deg) saturate(6);animation:tvr 3.2s steps(1) infinite}
.spk-img.tv .tvc{filter:brightness(.9) sepia(1) hue-rotate(140deg) saturate(6);animation:tvc 3.2s steps(1) infinite}
.spk-img.tv .tvnoise{position:absolute;inset:-50%;z-index:2;pointer-events:none;opacity:.22;mix-blend-mode:overlay;background: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='1.2' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain .5s steps(4) infinite}
.spk-img.tv::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(0,0,0,.28) 0 1px,transparent 1px 3px)}
.spk-img.tv .tvroll{position:absolute;left:0;right:0;height:18%;z-index:4;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(255,255,255,.14),transparent);animation:tvroll 4.5s linear infinite}
@keyframes tvroll{0%{top:-20%}100%{top:110%}}
@keyframes tvr{0%,100%{transform:translate(-3px,0);clip-path:none}18%{transform:translate(-7px,0);clip-path:inset(30% 0 52% 0)}20%{transform:translate(-3px,0);clip-path:none}63%{transform:translate(-9px,2px);clip-path:inset(62% 0 20% 0)}65%{transform:translate(-3px,0);clip-path:none}}
@keyframes tvc{0%,100%{transform:translate(3px,0);clip-path:none}18%{transform:translate(8px,0);clip-path:inset(30% 0 52% 0)}20%{transform:translate(3px,0);clip-path:none}63%{transform:translate(10px,-2px);clip-path:inset(62% 0 20% 0)}65%{transform:translate(3px,0);clip-path:none}}
@media (prefers-reduced-motion:reduce){.spk-img.tv .tvr,.spk-img.tv .tvc,.spk-img.tv .tvnoise,.spk-img.tv .tvroll{animation:none}}
/* COMEDYBOT room */
.th-bot{position:relative;isolation:isolate;margin-top:110px}
.th-bot::before{content:"";position:absolute;z-index:-1;top:-48px;bottom:-48px;left:calc(50% - 50vw);right:calc(50% - 50vw);pointer-events:none;clip-path:polygon(0 60px,100% 0,100% 100%,0 100%);
  background:repeating-linear-gradient(135deg,rgba(255,201,40,.06) 0 22px,transparent 22px 44px),radial-gradient(60% 60% at 80% 20%,rgba(255,110,196,.25),transparent 70%),linear-gradient(180deg,#2a1350,#3a1658)}
.th-bot .room-tag{background:rgba(255,201,40,.16);color:#ffd166;border:1px solid rgba(255,201,40,.5)}
.th-bot .cbot{margin-top:6px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hk2 .trows,.hk2 .tr{width:auto!important;height:auto!important;background:none!important;border-radius:0!important}
.hk2 .tr{justify-content:flex-start!important;gap:.55em!important}

/* v32: simple footer, lighter effects */
.foot{justify-content:space-between;background:transparent!important;flex-wrap:nowrap!important}
.foot::before{display:none}
.foot>*{white-space:nowrap}
.grain{animation:none!important;opacity:.04}
.topnav,.topnav.solid{-webkit-backdrop-filter:none!important;backdrop-filter:none!important;background:#1a0f56!important}
html{scroll-behavior:smooth}
.th-sun::before{bottom:-128px!important}
body{overflow-x:hidden}
html,body{background-color:#5a2390}
body{background:linear-gradient(180deg,#1f1466 0%,#2a1a80 30%,#3a1c8f 55%,#4b1f8f 75%,#6a2486 94%,#8a2f7a 100%)!important}
.th-sun::before{bottom:-400px!important}
html{overflow-x:hidden}
body{position:relative;overflow:hidden}

/* v33: animated neon diamond logo */
.topnav .kr .krm.dmark{width:42px;height:42px;margin:-6px -4px -6px -8px;display:block}
.topnav .kr:hover .krm.dmark .spin{animation-duration:1.4s}
.topnav .kr .krm.dmark{width:40px;height:40px;margin:-6px -2px -6px -6px}

/* diamond logo animation (moved out of the svg so the CSP allows it) */

.dmark{overflow:visible}
.dmark .dglow{filter:url(#dblur);opacity:.75}
.dmark .dbody{opacity:1}
.dmark .dshine{opacity:.28}
.dmark .drim{stroke-width:1.2;opacity:.55}
.dmark .dt{transform-box:fill-box;transform-origin:center}
/* one 7s cycle: tiles flicker on in order, the 4th fills like a loading bar, everything pulses, then dims and repeats */
.dmark .t0{animation:don 7s infinite}
.dmark .t1{animation:don 7s infinite;animation-delay:.25s}
.dmark .t2{animation:don 7s infinite;animation-delay:.5s}
.dmark .t3 .dfill{transform-box:fill-box;transform-origin:50% 100%;animation:dfill 7s infinite}
.dmark .t3 .dglow,.dmark .t3 .dshine,.dmark .t3 .drim{animation:dlit 7s infinite}
.dmark .t3 .dout{animation:dout 7s infinite}
.dmark .spin{transform-box:view-box;transform-origin:0 0;animation:dspin 7s infinite cubic-bezier(.7,0,.2,1)}
@keyframes don{0%{opacity:.35}2%{opacity:1}3%{opacity:.3}4.5%{opacity:1}5.5%{opacity:.55}7%,82%{opacity:1}92%,100%{opacity:.35}}
@keyframes dfill{0%,10%{transform:scaleY(0)}18%{transform:scaleY(.55)}24%{transform:scaleY(.6)}32%,82%{transform:scaleY(1)}92%,100%{transform:scaleY(0)}}
@keyframes dlit{0%,31%{opacity:0}33%{opacity:1}34%{opacity:.4}36%,82%{opacity:1}92%,100%{opacity:0}}
@keyframes dout{0%,10%{opacity:1}22%,90%{opacity:0}96%,100%{opacity:1}}
@keyframes dspin{0%,36%{transform:rotate(45deg)}44%,100%{transform:rotate(405deg)}}
@media (prefers-reduced-motion:reduce){.dmark *{animation:none!important}.dmark .t3 .dfill{transform:none}.dmark .t3 .dout{opacity:0}}


/* v34: no floating hire button */
.stickycta{display:none!important}

/* v36: slower, calmer bubbles */
.bub{transition:opacity .9s ease,transform 1.1s cubic-bezier(.2,.9,.3,1.15)}

/* v37: hero = Hire + LinkedIn only, same width, stacked */
.hero .actions{display:grid;grid-template-columns:max-content;gap:12px}
.hero .actions .btn{justify-content:center;width:100%}
@media (max-width:560px){.hero .actions{grid-template-columns:1fr}}

/* v38: one tile in the hire grid */
.wgrid{grid-template-columns:1fr!important}

/* v39: SEO pass */
.rp::before{content:attr(data-t)}
.rp::after{content:attr(data-n) "%";font-weight:700;font-variant-numeric:tabular-nums}
.ddtags .ddlink{padding:0;border:0;background:none;display:flex;align-items:center}
.ddtags .ddlink .blink{margin:0 0 0 4px}

/* v39b: D&D card fits on two lines on phones */
.ddtags .ddlink .blink{padding:0;border:0;background:none;font:700 12px/1.2 "JetBrains Mono",monospace;color:#7fe9ff;text-decoration:underline;text-underline-offset:3px}
@media (max-width:560px){.ddtags{gap:5px}.ddtags li{font-size:10.5px;padding:4px 8px}.ddtags .ddlink .blink{font-size:11px}}
