/* ============================================================================
   DJ KMad — site.css  (shared shell for every page)
   Extracted from the LOCKED design reference design/concepts/concept-6.html.
   Obsidian glass + subtle warm neon. Aesthetic is locked; do not cheapen it.
   Additions on top of concept-6:
     (a) readability text-size bumps
     (b) full mobile responsiveness (<=640px)
     (c) body.page layout mode for scrolling content pages
   ========================================================================== */

:root{
  --void:#0A0710; --void-2:#0E0A18;
  --ink:#F6F1FB; --dim:#B6A9D0; --mute:#6E6088;
  --magenta:#FF2E88; --violet:#A855F7; --cyan:#22D3EE;
  --line:rgba(214,196,255,.12);
  --sans:'Inter',system-ui,sans-serif; --disp:'Montserrat',system-ui,sans-serif; --mono:'IBM Plex Mono',monospace;
  --reach:360px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;max-width:100vw}
/* fewer awkward line breaks: balance short headings/titles, pretty-wrap body text */
h1,h2,h3,h4,.frame-title,.tagline,.sec-title,.cat-head h2, .lede, .about-lede, .mf-title, .c-email, .frame-foot .lk, .frame-foot .lk-sub, .about-cta .line {text-wrap:balance}
p,.frame-intro,.lead,.c-note,.disc,.fine{text-wrap:pretty}
/* keep impactful small tags from breaking mid-phrase */
.eyebrow .seg, .latest, .c-go, .mf-kick, .mf-genre, .cat-head .count, .latest em, .icon-link, .stat, .badge { white-space: nowrap; }
/* body font bumped 15px -> 16px for comfortable reading */
body{background:var(--void);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;height:100svh;overflow:hidden;cursor:default;text-wrap:pretty}
a{color:inherit;text-decoration:none}
/* only actually-clickable things get the pointer; nothing shows the text I-beam */
a,button,input,select,label,summary,[role="button"],[onclick]{cursor:pointer}

/* ---------- smooth neon aurora (diffuse, low-opacity, slow) — the subtle neon ---------- */
.aurora{position:fixed;inset:-25%;z-index:-2;pointer-events:none;filter:blur(60px);opacity:.9}
.aurora span{position:absolute;border-radius:50%;mix-blend-mode:screen;opacity:.5}
.a1{width:60vw;height:60vw;left:6%;top:2%;background:radial-gradient(circle,var(--magenta),transparent 62%);animation:float1 26s ease-in-out infinite alternate}
.a2{width:66vw;height:66vw;right:2%;top:14%;background:radial-gradient(circle,var(--violet),transparent 62%);animation:float2 32s ease-in-out infinite alternate}
.a3{width:50vw;height:50vw;left:28%;bottom:-6%;background:radial-gradient(circle,var(--cyan),transparent 62%);opacity:.32;animation:float3 30s ease-in-out infinite alternate}
@keyframes float1{to{transform:translate3d(10%,8%,0) scale(1.15)}}
@keyframes float2{to{transform:translate3d(-8%,10%,0) scale(1.1)}}
@keyframes float3{to{transform:translate3d(6%,-8%,0) scale(1.2)}}
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.vignette{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 100% at 50% 40%,transparent 45%,rgba(10,7,16,.7) 100%)}

/* ---------- reusable glass ---------- */
.glass{--lit:0;position:relative;overflow:hidden;
  background:linear-gradient(160deg,rgba(255,255,255,.06),rgba(255,255,255,.012) 45%,rgba(0,0,0,.12));
  border:1px solid rgba(255,255,255,calc(.10 + .12*var(--lit)));
  border-radius:20px;backdrop-filter:blur(22px) saturate(1.3);-webkit-backdrop-filter:blur(22px) saturate(1.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),inset 0 -1px 0 rgba(0,0,0,.35),
    0 30px 80px rgba(0,0,0,.5),
    0 0 calc(40px*var(--lit)) rgba(255,46,136,calc(.18*var(--lit)));
  transition:border-color .25s,box-shadow .25s,transform .3s}

/* soft specular that follows the cursor across the glass */
.glass::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(260px 260px at var(--mx,50%) var(--my,-15%),rgba(226,216,255,.10),transparent 62%);
  opacity:calc(.15 + .85*var(--lit));mix-blend-mode:screen;transition:opacity .3s}

/* ---------- nav (fixed top, identical on every page) ---------- */
/* mono label bumped 11px -> 12px for legibility */
nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:clamp(24px,3vh,48px) clamp(24px,2.6vw,48px);
  font-family:var(--mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
/* nav links: color shift + a gentle underline-slide (grows from the left on direct :hover) */
nav a{transition:color .2s}
nav a, .frame-foot a, footer.strip a { display: inline-block; padding: 12px; margin: -12px; position: relative; z-index: 10; }
nav a:hover{color:var(--ink)}
nav .nav-links a{position:relative}
nav .nav-links a::after{content:'';position:absolute;left:0;right:0;bottom:-5px;height:1px;
  background:linear-gradient(90deg,var(--magenta),var(--violet));border-radius:1px;
  transform:scaleX(0);transform-origin:left;transition:transform .28s cubic-bezier(.2,.7,.2,1)}
nav .nav-links a:hover::after{transform:scaleX(1)}
/* brand wordmark keeps its authored casing ("DJ KMad") — exempt from the nav's uppercase transform */
nav .brand{color:rgba(255,255,255,0.75);font-weight:500;letter-spacing:.16em;text-transform:none;transition:color .2s,text-shadow .3s,opacity .2s;}
nav .brand:hover{color:#fff;text-shadow:0 0 18px rgba(255,46,136,.5)}
nav .nav-links{display:flex;align-items:center;gap:32px}
/* body.page nav backdrop removed - nav is now transparent until .scrolled kicks in */

/* ---------- centered hero stage (landing) ---------- */
.hero{height:100svh;display:flex;align-items:center;justify-content:center;padding:96px 24px 64px;text-align:center}
.stage{width:min(90vw,860px);padding:clamp(40px,8vh,80px) clamp(24px,5vw,64px);display:flex;flex-direction:column;align-items:center;gap:clamp(24px,4vh,40px)}
.stage .logo{margin:-58px -60px}
/* premium light: a soft drifting source (barely moving; felt-not-seen) */
.light{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
.light .src{position:absolute;width:82vw;height:82vw;right:-10%;top:-24%;border-radius:50%;
  background:radial-gradient(circle,rgba(224,210,255,.15),rgba(224,210,255,.05) 40%,transparent 64%);
  filter:blur(24px);animation:srcdrift 46s ease-in-out infinite alternate}
@keyframes srcdrift{to{transform:translate(-8%,5%) scale(1.12)}}
.eyebrow{font-family:var(--mono);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim)}
.eyebrow b{color:var(--magenta);font-weight:500}
.eyebrow:has(.seg) b{margin:0 .34em}
.logo{width:min(70vw,560px);height:auto;display:block; padding:60px; box-sizing:content-box;
  filter:drop-shadow(0 0 20px rgba(255,46,136,.18)) drop-shadow(0 0 52px rgba(168,85,247,.13))}
.logo .stroke{fill:none;stroke:var(--ink)}
.logo .fill{fill:var(--ink)}
.logo .cut{fill:var(--void);stroke:var(--void)}
.tagline{font-family:var(--disp);font-weight:600;font-size:clamp(22px,3vw,33px);line-height:1.2;letter-spacing:-.01em}
.tagline .em{background:linear-gradient(100deg,var(--magenta),var(--violet) 50%,var(--cyan) 78%,var(--magenta));
  background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:flow 12s ease-in-out infinite}
@keyframes flow{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
/* interactive = clean :hover engage/disengage (NOT proximity-lit, so it never sticks) */
.cta{margin-top:0;display:inline-flex;align-items:center;gap:12px;font-family:var(--mono);font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-radius:999px;padding:15px 30px;
  border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(160deg,rgba(255,255,255,.08),rgba(0,0,0,.14));backdrop-filter:blur(14px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2);
  transition:border-color .25s ease,box-shadow .25s ease,transform .25s ease}
.cta:hover{transform:translateY(-2px);border-color:rgba(255,46,136,.55);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 0 30px rgba(255,46,136,.38)}
.cta .dot{width:7px;height:7px;border-radius:99px;background:linear-gradient(var(--magenta),var(--violet));box-shadow:0 0 12px var(--magenta)}
.scrollcue{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);font-family:var(--mono);font-size:12px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--mute);animation:bob 2.6s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translate(-50%,0);opacity:.5}50%{transform:translate(-50%,6px);opacity:1}}

/* logo ignition on hover (light strike) */
@keyframes ignite{0%,100%{filter:drop-shadow(0 0 20px rgba(255,46,136,.18)) drop-shadow(0 0 52px rgba(168,85,247,.13))}
  32%{filter:drop-shadow(0 0 46px rgba(255,46,136,.6)) drop-shadow(0 0 100px rgba(168,85,247,.45)) drop-shadow(0 0 40px rgba(34,211,238,.36))}}
.stage:hover .logo{animation:ignite 1.2s ease-out}

/* latest-drop chip in hero — bumped 11px -> 12px */
.latest{display:inline-flex;align-items:center;gap:11px;margin-top:0;font-family:var(--mono);font-size:12px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:9px 17px;border-radius:999px;
  border:1px solid var(--line);background:rgba(255,255,255,.03);transition:color .2s,border-color .2s,background .2s}
.latest:hover{color:var(--ink);border-color:rgba(255,46,136,.45);background:rgba(255,46,136,.06)}
.latest em{color:var(--ink);font-style:normal;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.latest .sep{color:var(--mute);opacity:.55}
.latest .arr{color:var(--magenta)}
.latest .pulse{width:7px;height:7px;border-radius:99px;background:var(--magenta);box-shadow:0 0 10px var(--magenta);animation:pulse 2.2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* ---------- shared centered content primitives (reused by content pages) ---------- */
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
section.blk{padding:96px 0;text-align:center}
.sec-head{font-family:var(--mono);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);margin-bottom:12px}
.sec-title{font-family:var(--disp);font-weight:800;font-size:clamp(26px,4vw,46px);letter-spacing:-.02em;margin-bottom:44px}
.sec-title .em{background:linear-gradient(100deg,var(--magenta),var(--violet));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

.disco{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.card{--lit:0;padding:0;overflow:hidden;text-align:left;display:flex;flex-direction:column}
.card .cover{aspect-ratio:16/10;position:relative;overflow:hidden;
  background:linear-gradient(150deg,color-mix(in srgb,var(--hue) 55%,var(--void-2)),var(--void))}
.card .cover::after{content:'';position:absolute;inset:0;
  background:radial-gradient(90% 80% at 25% 15%,color-mix(in srgb,var(--hue) 70%,transparent),transparent 65%);
  opacity:calc(.5 + .5*var(--lit));transition:opacity .25s;mix-blend-mode:screen}
.card .cvtxt{position:absolute;left:16px;bottom:12px;font-family:var(--disp);font-weight:900;font-size:46px;color:rgba(255,255,255,.9);mix-blend-mode:overlay}
.card .meta{padding:14px 16px 18px}
.card .t{font-family:var(--disp);font-weight:600;font-size:16px}
.card .g{font-family:var(--mono);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-top:4px}
.h-m{--hue:var(--magenta)}.h-v{--hue:var(--violet)}.h-c{--hue:var(--cyan)}

.about{max-width:720px;margin:0 auto;padding:32px 48px}
.about .lede{font-family:var(--disp);font-weight:600;font-size:clamp(20px,2.6vw,28px);line-height:1.35}
.about .lede .em{background:linear-gradient(100deg,var(--magenta),var(--violet));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.about p{color:var(--dim);margin-top:16px}

/* ---------- full footer (content pages) ---------- */
footer{padding:44px 24px;text-align:center;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--mute)}
footer a{color:var(--dim)}
footer a:hover{color:var(--magenta)}
footer .lk{display:flex;gap:22px;justify-content:center;text-transform:uppercase;letter-spacing:.14em}
footer .disc{max-width:660px;margin:22px auto 0;font-family:var(--sans);font-size:13px;line-height:1.7;color:var(--mute);text-transform:none;letter-spacing:normal}
footer .disc p{margin-top:10px}
footer .disc a{color:var(--dim);text-decoration:underline;text-underline-offset:2px}
footer .disc a:hover{color:var(--magenta)}
footer .fine{margin-top:20px;font-size:12px;letter-spacing:.08em;color:var(--mute)}
footer .fine a{color:var(--mute)}
footer .fine a:hover{color:var(--dim)}

/* fixed no-scroll landing: minimal legal strip — bumped 11px -> 12px */
footer.strip{position:fixed;left:0;right:0;bottom:0;z-index:15;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 14px;
  padding:15px 30px;font-family:var(--mono);font-size:12px;letter-spacing:.07em;color:var(--mute);
  background:linear-gradient(0deg,rgba(8,7,16,.72),transparent);backdrop-filter:blur(5px)}
footer.strip a{color:var(--mute); transition: color .2s}
footer.strip a:hover{color:var(--magenta)}
footer.strip .s-links{text-transform:uppercase;letter-spacing:.14em;white-space:nowrap;flex:1;text-align:left}
footer.strip .s-legal{text-align:center;min-width:220px;white-space:normal; line-height:1.4; text-wrap:balance; padding: 0 16px}
footer.strip .s-legal a{color:inherit;display:inline;padding:0;margin:0;transition:color .2s}
footer.strip .s-legal a:hover{color:var(--magenta)}
footer.strip .s-policy{width:100%;order:-1;white-space:nowrap;text-align:center}
footer.strip .s-fine{white-space:nowrap;flex:1;text-align:right}

/* ============================================================================
   body.page — SCROLLING content-page layout mode (releases / about / legal)
   Fixed top nav, content flows in a comfortable column, full footer at bottom.
   Reuses every glass / neon / type token above.
   ========================================================================== */
body.page{height:auto;min-height:100svh;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column}
body.page .page-main{flex:1 0 auto;width:100%;max-width:780px;margin:0 auto;padding:128px 24px 80px}
body.page footer{flex-shrink:0}

/* ============================================================================
   .split — FIXED-FRAME + SCROLLING-PANE content-page layout
   Desktop: the PAGE itself does not scroll. Fixed top nav, then a .split
   region that fills the rest of 100svh: a fixed LEFT .frame (does not scroll —
   eyebrow + big gradient title + intro, with a compact legal bit pinned to its
   bottom) and a RIGHT .pane (scrolls internally — the page's main content).
   The no-scroll lock is scoped to body.page:has(.split), so any legacy page
   still using .page-main keeps its normal document scroll.

   Canonical markup a content page copies:
     <body class="page">
       …ambient bg layers… <nav>…</nav>
       <div class="split">
         <aside class="frame">
           <div class="frame-top">
             <div class="eyebrow">…</div>
             <h1 class="frame-title">Title <span class="em">accent</span></h1>
             <p class="frame-intro">One short context line.</p>
           </div>
           <div class="frame-foot"> …compact legal / links… </div>
         </aside>
         <main class="pane"> …the page's scrolling content… </main>
       </div>
     </body>
   ========================================================================== */
body.page:has(.split){height:100svh;overflow:hidden;display:block}

.split{position:relative;display:grid;grid-template-columns:clamp(300px,36vw,460px) 1fr;
  height:100svh;padding-top:clamp(64px,7vh,96px)}

/* LEFT: fixed frame — never scrolls */
.frame{position:relative;min-height:0;overflow:hidden;display:flex;flex-direction:column;
  justify-content:space-between;gap:24px;
  padding:clamp(24px,3.4vw,48px) clamp(24px,2.6vw,48px) clamp(24px,2.6vw,48px);
  container-type:inline-size}
.frame::after{content:"";position:absolute;top:clamp(24px,3.4vw,48px);bottom:128px;right:0;width:1px;background:var(--line);z-index:-1}
.frame .eyebrow{margin-bottom:16px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px}
@container (max-width: 460px) {
  .frame .eyebrow { flex-direction: column; align-items: flex-start; gap: 6px; width: fit-content; }
  .frame .eyebrow b { display: none; }
  .frame .eyebrow .seg { font-size: 11px; }
  .frame .eyebrow .seg:not(:last-child) { border-bottom: 1px solid var(--line); padding-bottom: 6px; align-self: stretch; }
}
.frame-title{font-family:var(--disp);font-weight:800;font-size:clamp(34px,4vw,60px);
  line-height:1.02;letter-spacing:-.02em;color:var(--ink)}
.frame-title .em{background:linear-gradient(100deg,var(--magenta),var(--violet) 55%,var(--cyan));
  background-size:220% auto;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  animation:flow 12s ease-in-out infinite}
.frame-intro{color:var(--dim);margin-top:18px;font-size:16px;line-height:1.6;max-width:40ch}
.frame-foot{margin-top:auto;font-family:var(--mono);font-size:12px;letter-spacing:.08em;
  color:var(--mute);border-top:1px solid var(--line);padding-top:18px;text-wrap:balance;
  display:flex;flex-direction:column;gap:12px}
.frame-foot .lk{display:flex;flex-wrap:wrap;gap:16px;text-transform:uppercase;letter-spacing:.14em}
.frame-foot .lk-sub{display:flex;flex-wrap:wrap;gap:16px;text-transform:uppercase;letter-spacing:.12em;font-size:10px;opacity:.6}
.frame-foot a{color:var(--mute);transition:color .2s}
.frame-foot a:hover{color:var(--magenta)}
.frame-foot .copy{margin:0}
.frame-foot .copy a{color:inherit;display:inline;padding:0;margin:0;transition:color .2s}
.frame-foot .copy a:hover{color:var(--magenta)}

/* RIGHT: scrolling pane — the only thing that scrolls on desktop */
.pane{position:relative;min-height:0;overflow-y:auto;overflow-x:hidden;
  padding:clamp(32px,3.4vw,48px) clamp(24px,3.2vw,48px) clamp(48px,5vw,64px);
  scrollbar-width:thin;scrollbar-color:rgba(168,85,247,.5) transparent;
  /* soft top/bottom fade so it reads as a scroll area */
  -webkit-mask:linear-gradient(180deg,transparent 0,black 26px,black calc(100% - 30px),transparent 100%);
  mask:linear-gradient(180deg,transparent 0,black 26px,black calc(100% - 30px),transparent 100%)}
/* on-brand thin scrollbar (faint violet thumb) */
.pane::-webkit-scrollbar{width:10px}
.pane::-webkit-scrollbar-track{background:transparent}
.pane::-webkit-scrollbar-thumb{background-color:rgba(168,85,247,.42);
  border:3px solid transparent;background-clip:padding-box;border-radius:999px;transition:background-color .25s}
.pane::-webkit-scrollbar-thumb:hover{background-color:rgba(168,85,247,.72)}

/* content-link underline-slide inside the pane (grows on direct :hover) */
.pane p a,.pane li a{color:var(--dim);text-decoration:none;
  background-image:linear-gradient(var(--magenta),var(--magenta));
  background-size:0% 1px;background-position:0 100%;background-repeat:no-repeat;
  transition:background-size .28s cubic-bezier(.2,.7,.2,1),color .2s}
.pane p a:hover,.pane li a:hover{color:var(--ink);background-size:100% 1px}

/* clickable glass cards/buttons: soft lift + border-glow on DIRECT :hover only */
a.glass:hover,button.glass:hover{transform:translateY(-3px);border-color:rgba(255,46,136,.4);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 30px 80px rgba(0,0,0,.5),0 0 34px rgba(255,46,136,.28)}

/* a11y: tasteful violet focus ring for keyboard users */
a:focus-visible,button:focus-visible,[role="button"]:focus-visible,summary:focus-visible,
input:focus-visible,select:focus-visible{outline:2px solid rgba(168,85,247,.75);outline-offset:3px;border-radius:8px}
/* readable content defaults inside the column */
.page-main h1{font-family:var(--disp);font-weight:800;font-size:clamp(30px,5vw,52px);letter-spacing:-.02em;line-height:1.06;margin-bottom:6px}
.page-main .eyebrow{margin-bottom:14px}
.page-main h2{font-family:var(--disp);font-weight:700;font-size:clamp(20px,3vw,28px);letter-spacing:-.01em;margin:40px 0 10px}
.page-main h3{font-family:var(--disp);font-weight:600;font-size:clamp(17px,2.2vw,21px);margin:28px 0 8px}
.page-main p{color:var(--dim);margin-top:14px}
.page-main ul,.page-main ol{color:var(--dim);margin:14px 0 0;padding-left:22px}
.page-main li{margin-top:8px}
.page-main a{color:var(--dim);text-decoration:underline;text-underline-offset:2px}
.page-main a:hover{color:var(--magenta)}
.page-main .lead{font-family:var(--disp);font-weight:600;font-size:clamp(20px,2.6vw,27px);line-height:1.35;color:var(--ink)}
.page-main .glass{padding:28px 30px;margin-top:24px}

/* ---------- reveal-in ---------- */
.reveal{opacity:0;transform:translateY(16px);animation:up 1s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes up{to{opacity:1;transform:none}}

/* ============================================================================
   <=900px: collapse .split to a single column and let the PAGE scroll normally.
   Frame stacks above the pane; the pane fade + internal scroll are removed.
   ========================================================================== */
@media (max-width:900px){
  body.page:has(.split){height:auto;min-height:100svh;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column}
  .split{position:static;display:flex;flex-direction:column;height:auto;flex:1 0 auto;
    padding-top:clamp(88px,14vh,104px)}
  .frame{display:contents}
  .frame-top{order:1;padding:0 24px 26px;max-width:820px;margin:0 auto;width:100%;border-bottom:1px solid var(--line)}
  .pane{order:2;overflow:visible;-webkit-mask:none;mask:none;max-width:820px;margin:0 auto;width:100%;
    padding:32px 24px 64px}
  .frame-foot{order:3;padding:22px 24px 64px;max-width:820px;margin:0 auto;width:100%;text-align:center}
  
  footer.strip{position:static;background:none;backdrop-filter:none;display:flex;flex-direction:column;gap:clamp(8px,2vh,24px);padding:clamp(16px,3vh,32px) 16px clamp(16px,4vh,40px);text-align:center;font-size:11px}
  footer.strip .s-links{order:1; text-align:center}
  footer.strip .s-policy{order:2}
  footer.strip .s-fine{order:3; text-align:center}
  footer.strip .s-legal{order:4;min-width:0}
}

/* ============================================================================
   Full mobile responsiveness (<=640px): landing scales into a 390px phone,
   nav adapts, everything stacks.
   ========================================================================== */
@media (max-width:640px){
  .split{padding-top:clamp(96px,18vh,120px)}
  .frame-top{padding:0 18px 22px}
  .frame-foot{padding:22px 18px 56px}
  .frame-intro{max-width:none}
  .pane{padding:24px 18px 56px}

  nav{padding:clamp(14px,2vh,24px) 16px;gap:14px;font-size:11px;letter-spacing:.14em;flex-wrap:wrap;row-gap:clamp(8px,1.5vh,16px)}
  nav .nav-links{gap:16px}
  nav .brand{letter-spacing:.1em}

  .hero{padding:72px 14px 92px}
  .stage{width:min(94vw,860px);padding:clamp(32px,6vh,64px) 16px;gap:clamp(20px,3.5vh,32px)}
  .eyebrow{font-size:11px;letter-spacing:.16em;line-height:1.9}
  /* multi-part identity eyebrow balances on mobile instead of stacking */
  .eyebrow:has(.seg){display:block;font-size:11px;line-height:1.6;text-wrap:balance}
  .eyebrow .seg{white-space:nowrap}
  .logo{width:min(84vw,560px)}
  /* scaled to be slightly narrower than 84vw logo */
  .tagline{font-size:min(5.5vw,37px);white-space:nowrap}
  .cta{padding:13px 24px;font-size:12px}
  /* latest-drop chip wraps natively on mobile */
  .latest{font-size:11px;flex-direction:row;flex-wrap:wrap;justify-content:center;gap:6px 11px;padding:11px 18px}



  body.page .page-main{padding:96px 18px 56px}
  .wrap{padding:0 18px}
  section.blk{padding:64px 0}
  .about{padding:28px 22px}
  footer{padding:32px 16px}

  /* Balance long legal text on mobile to avoid awkward long/short lines */
  footer.strip .s-legal { text-wrap: balance; line-height: 1.5; white-space: normal; }
  .frame-foot > div:nth-child(2) { text-wrap: balance; line-height: 1.5; }


  /* Fix copyright orphan */
  .frame-foot .lk, .frame-foot .lk-sub { max-width: 260px; row-gap: 8px; justify-content: center; }

}

/* honor reduced-motion (JS also disables the proximity light / specular) */
@media (prefers-reduced-motion:reduce){
  .aurora span,.reveal,.latest .pulse,.tagline .em,.light .src,.stage:hover .logo,.scrollcue,
  .frame-title .em{animation:none}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
  nav .nav-links a::after,.pane p a,.pane li a{transition:none}
  a.glass:hover,button.glass:hover{transform:none}
}


/* Hide nav brand on the main landing page because it has the huge center logo */
body:not(.page) nav { justify-content: flex-end; }
body:not(.page) nav .brand { display: none; }

/* SVG Logo in Nav */
.nav-logo { height: 20px; width: auto; display: block; transition: filter .3s; }
nav .brand:hover .nav-logo { filter: drop-shadow(0 0 10px rgba(255,46,136,.5)); }

.icon-link { display: inline-flex; align-items: center; gap: 8px; }
.icon-link svg { width: 1.3em; height: 1.3em; transform: translateY(3px); opacity: 0.65; }

/* nav scrolling border */
nav { transition: border-bottom 0.3s, background 0.3s, backdrop-filter 0.3s, -webkit-backdrop-filter 0.3s; border-bottom: 1px solid transparent; }
nav.scrolled { border-bottom: 1px solid rgba(255,255,255,0.06); background: rgba(10, 7, 16, 0.35); backdrop-filter: blur(24px) saturate(1.2); -webkit-backdrop-filter: blur(24px) saturate(1.2); }

/* desktop scrolling pane chevron indicator */
.scroll-indicator {
  position: sticky;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: rgba(255, 255, 255, 0.6);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.4s ease-out, transform 0.25s, color 0.25s, border-color 0.25s;
  opacity: 0;
  pointer-events: none;
  z-index: 10;
  margin-top: -32px; /* avoid adding height */
}
@keyframes subtle-bob {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(4px); }
}
body.has-scroll .scroll-indicator { 
  opacity: 1; 
  pointer-events: auto; 
  cursor: pointer; 
  animation: subtle-bob 4s ease-in-out infinite; 
}
.scroll-indicator:hover {
  background: rgba(255, 255, 255, 0.1);
  color: var(--ink);
  border-color: rgba(255, 46, 136, 0.5);
  animation: none;
  transform: translateX(-50%) translateY(-2px);
}
@media (max-width: 900px) {
  .scroll-indicator { display: none; }
}
