:root { --ink: #070707; --bone: #ddd9d1; --ash: #8c8a84; --signal: #d54a27; --font-sans: Arial, Helvetica, sans-serif; --font-mono: "SFMono-Regular", Consolas, "Liberation Mono", monospace; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--ink); color: var(--bone); font-family: var(--font-sans), Arial, sans-serif; overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--signal); color: #050505; }

.site-header { position: fixed; z-index: 50; inset: 0 0 auto; height: 84px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 3.2vw; mix-blend-mode: difference; color: white; }
.mark { justify-self: start; width: 42px; height: 42px; border: 1px solid currentColor; display: grid; place-items: center; position: relative; font: 700 22px/1 var(--font-mono); }
.mark i { position: absolute; width: 10px; height: 1px; background: currentColor; transform: rotate(-45deg); right: -5px; top: 7px; }
nav { display: flex; gap: 34px; text-transform: uppercase; font: 500 11px/1 var(--font-mono); letter-spacing: .15em; }
nav a { padding: 12px 0; position: relative; }
nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: 6px; height: 1px; background: currentColor; transition: right .25s ease; }
nav a:hover::after, nav a:focus-visible::after { right: 0; }
.status { justify-self: end; text-transform: uppercase; font: 500 10px/1 var(--font-mono); letter-spacing: .15em; display: flex; align-items: center; gap: 9px; }
.status i { width: 6px; height: 6px; border-radius: 50%; background: var(--signal); box-shadow: 0 0 12px var(--signal); animation: blink 1.8s infinite; }

.hero { height: 100svh; min-height: 680px; position: relative; display: flex; align-items: flex-end; overflow: hidden; background: #08090a; }
.hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.05) 50%, rgba(0,0,0,.9)); }
.hero-image { position: absolute; inset: -2%; background: url('priodigy-hero.png') center 45% / cover no-repeat; filter: contrast(1.1) grayscale(.25); transform: scale(1.02); animation: drift 18s ease-in-out infinite alternate; }
.hero-grid { position: absolute; inset: 0; z-index: 2; opacity: .16; background-image: linear-gradient(rgba(255,255,255,.08) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.08) 1px, transparent 1px); background-size: 8.333vw 8.333vw; mask-image: linear-gradient(to bottom, transparent, black 55%); }
.hero-copy { position: relative; z-index: 5; width: 100%; padding: 0 3.2vw 4vh; }
.eyebrow, .section-index { margin: 0; text-transform: uppercase; color: #b9b7b1; font: 500 10px/1.4 var(--font-mono); letter-spacing: .18em; }
.hero h1 { margin: 1vh 0 2vh; font-size: clamp(76px, 15vw, 240px); line-height: .7; letter-spacing: -.085em; font-weight: 750; width: min-content; }
.hero h1 span { display: block; }
.hero h1 span:last-child { margin-left: 22vw; }
.hero-meta { display: flex; justify-content: space-between; align-items: end; margin-left: 22.7vw; }
.hero-meta p { margin: 0; text-transform: uppercase; font: 500 11px/1.45 var(--font-mono); letter-spacing: .13em; }
.enter-link { display: flex; align-items: center; gap: 30px; border-bottom: 1px solid rgba(255,255,255,.45); padding: 0 0 10px; text-transform: uppercase; font: 500 11px/1 var(--font-mono); letter-spacing: .14em; }
.enter-link span { color: var(--signal); font-size: 17px; }
.coordinates { position: absolute; z-index: 5; top: 45%; right: 3.2vw; writing-mode: vertical-rl; transform: rotate(180deg); color: rgba(255,255,255,.55); font: 9px/1.5 var(--font-mono); letter-spacing: .15em; }
.scanline { position: absolute; z-index: 4; left: 0; right: 0; height: 1px; top: 20%; background: rgba(255,255,255,.22); box-shadow: 0 0 14px rgba(255,255,255,.18); animation: scan 7s linear infinite; }

.manifesto { min-height: 100svh; padding: 12vh 3.2vw 8vh; position: relative; overflow: hidden; display: grid; grid-template-columns: 1.15fr .85fr; grid-template-rows: auto 1fr auto; border-top: 1px solid #292929; }
.manifesto .section-index { grid-column: 1 / -1; }
.manifesto h2 { margin: 8vh 0 10vh; font-size: clamp(64px, 10vw, 170px); line-height: .82; letter-spacing: -.07em; font-weight: 680; text-transform: uppercase; }
.manifesto h2 em { color: transparent; -webkit-text-stroke: 1px var(--ash); font-style: normal; }
.manifesto-copy { align-self: end; max-width: 440px; padding-bottom: 12vh; }
.manifesto-copy p { font-size: clamp(18px, 2vw, 30px); line-height: 1.2; letter-spacing: -.025em; margin: 0 0 1.2em; }
.manifesto-copy p:last-child { color: var(--ash); }
.pulse { grid-column: 1 / -1; height: 54px; display: flex; align-items: center; gap: max(3px, .55vw); opacity: .75; }
.pulse i { flex: 1; height: calc(8px + (var(--i) % 9) * 4px); background: var(--bone); transform-origin: center; animation: pulse 1.6s ease-in-out infinite alternate; animation-delay: calc(var(--i) * -50ms); }

.identity { min-height: 100svh; display: grid; grid-template-columns: 1.15fr .85fr; border-top: 1px solid #292929; border-bottom: 1px solid #292929; background: #050505; }
.portrait-frame { min-height: 100svh; position: relative; overflow: hidden; border-right: 1px solid #292929; }
.portrait-image { position: absolute; inset: 0; background: url('priodigy-portrait.png') center 28% / cover no-repeat; filter: grayscale(.15) contrast(1.08); transition: transform 1.2s cubic-bezier(.2,.7,.2,1), filter 1.2s ease; }
.portrait-frame:hover .portrait-image { transform: scale(1.018); filter: grayscale(0) contrast(1.04); }
.portrait-frame::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(0,0,0,.78)); pointer-events: none; }
.portrait-code, .portrait-stamp { position: absolute; z-index: 2; bottom: 28px; text-transform: uppercase; font: 500 9px/1 var(--font-mono); letter-spacing: .17em; }
.portrait-code { left: 28px; }
.portrait-stamp { right: 28px; color: var(--signal); }
.identity-copy { padding: 11vh 3.2vw 7vh; display: flex; flex-direction: column; }
.identity-lead { margin: auto 0 4vh; text-transform: uppercase; font-size: clamp(46px, 6vw, 98px); font-weight: 650; line-height: .88; letter-spacing: -.055em; }
.identity-copy > p:last-child { max-width: 420px; margin: 0; color: var(--ash); font-size: clamp(17px, 1.7vw, 27px); line-height: 1.25; letter-spacing: -.02em; }

.transmissions { padding: 12vh 3.2vw 14vh; background: var(--bone); color: var(--ink); }
.section-heading { display: flex; justify-content: space-between; margin-bottom: 9vh; }
.transmissions .section-index { color: #373737; }
.section-heading > p:last-child { margin: 0; text-transform: uppercase; font: 500 10px/1.4 var(--font-mono); letter-spacing: .16em; }
.track { display: grid; grid-template-columns: 8vw 1fr 25vw 32px; align-items: center; min-height: 108px; border-top: 1px solid rgba(0,0,0,.45); transition: padding .25s ease, background .25s ease; }
.track:last-child { border-bottom: 1px solid rgba(0,0,0,.45); }
.track:hover { padding: 0 18px; background: rgba(0,0,0,.045); }
.track > span { font: 500 10px/1 var(--font-mono); }
.track h3 { margin: 0; font-size: clamp(34px, 5.5vw, 84px); line-height: .9; letter-spacing: -.06em; font-weight: 620; }
.track p { text-align: right; margin: 0; font: 500 9px/1.4 var(--font-mono); letter-spacing: .12em; }
.track b { text-align: right; font-size: 22px; font-weight: 300; }
.release-note { margin: 9vh 0 0 8vw; font: 500 10px/1 var(--font-mono); letter-spacing: .18em; color: var(--signal); }

.contact { min-height: 90svh; padding: 11vh 3.2vw 0; display: flex; flex-direction: column; border-top: 1px solid #292929; }
.contact-main { display: flex; justify-content: space-between; align-items: end; margin-top: 18vh; }
.contact-main p { margin: 0; color: var(--ash); text-transform: uppercase; font: 500 11px/1.6 var(--font-mono); letter-spacing: .15em; }
.contact-main a { width: min(420px, 40vw); padding: 0 0 14px; border-bottom: 1px solid #565656; display: flex; justify-content: space-between; text-transform: uppercase; font: 500 11px/1 var(--font-mono); letter-spacing: .15em; }
.contact-main a span { color: var(--signal); }
.contact h2 { margin: auto 0 -1.4vw; font-size: clamp(95px, 22vw, 360px); line-height: .72; letter-spacing: -.09em; font-weight: 720; }
.contact h2 span { color: var(--signal); }
footer { background: var(--bone); color: var(--ink); padding: 5vh 3.2vw 4vh; }
.footer-wordmark { display: block; font-size: clamp(70px, 17vw, 260px); font-weight: 750; line-height: .78; letter-spacing: -.085em; }
footer div { border-top: 1px solid rgba(0,0,0,.45); margin-top: 5vh; padding-top: 16px; display: flex; justify-content: space-between; font: 500 9px/1 var(--font-mono); letter-spacing: .16em; }
.legal-links { margin-top: 20px; justify-content: flex-end; }
.legal-links a:hover, .legal-links a:focus-visible { color: var(--signal); }

.legal-page { min-height: 100vh; padding: 9vh 4vw; background: var(--ink); color: var(--bone); }
.legal-page header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12vh; }
.legal-page .legal-brand { font-size: clamp(30px, 4vw, 62px); font-weight: 750; letter-spacing: -.06em; }
.legal-page .back { text-transform: uppercase; font: 500 10px/1 var(--font-mono); letter-spacing: .16em; }
.legal-content { max-width: 760px; }
.legal-content h1 { margin: 0 0 10vh; font-size: clamp(64px, 10vw, 150px); line-height: .8; letter-spacing: -.07em; text-transform: uppercase; }
.legal-content h2 { margin: 46px 0 10px; color: var(--signal); font: 500 11px/1.4 var(--font-mono); letter-spacing: .16em; text-transform: uppercase; }
.legal-content p { color: #b8b5ae; font-size: 17px; line-height: 1.65; }
.legal-content a { border-bottom: 1px solid #555; }
.legal-foot { margin-top: 12vh; padding-top: 20px; border-top: 1px solid #292929; font: 500 9px/1.5 var(--font-mono); letter-spacing: .14em; text-transform: uppercase; }

@keyframes blink { 50% { opacity: .2; } }
@keyframes drift { to { transform: scale(1.06) translateY(-.5%); } }
@keyframes scan { from { transform: translateY(-25vh); } to { transform: translateY(80vh); } }
@keyframes pulse { to { transform: scaleY(.2); opacity: .3; } }

@media (max-width: 720px) {
  .site-header { height: 70px; padding: 0 20px; grid-template-columns: 1fr auto; }
  nav { display: none; }
  .status { font-size: 8px; }
  .hero { min-height: 650px; }
  .hero-image { background-position: 52% center; }
  .hero-copy { padding: 0 20px 34px; }
  .hero h1 { font-size: clamp(70px, 28vw, 130px); line-height: .72; margin: 12px 0 28px; }
  .hero h1 span:last-child { margin-left: 0; }
  .hero-meta { margin-left: 3px; }
  .hero-meta p { font-size: 9px; }
  .enter-link { gap: 12px; font-size: 9px; }
  .coordinates { right: 14px; top: 31%; font-size: 7px; }
  .hero-grid { background-size: 25vw 25vw; }
  .manifesto { display: block; min-height: auto; padding: 90px 20px 60px; }
  .manifesto h2 { margin: 70px 0 90px; font-size: 19vw; }
  .manifesto-copy { padding: 0 0 80px 20vw; }
  .manifesto-copy p { font-size: 20px; }
  .pulse { gap: 3px; }
  .pulse i:nth-child(2n) { display: none; }
  .identity { display: block; min-height: auto; }
  .portrait-frame { min-height: 82svh; border-right: 0; border-bottom: 1px solid #292929; }
  .portrait-image { background-position: center 18%; }
  .identity-copy { min-height: 560px; padding: 80px 20px 60px; }
  .identity-lead { margin-top: auto; font-size: 14vw; }
  .transmissions { padding: 90px 20px; }
  .section-heading { margin-bottom: 60px; }
  .track { grid-template-columns: 36px 1fr 20px; min-height: 86px; }
  .track h3 { font-size: 10vw; }
  .track p { display: none; }
  .release-note { margin-left: 36px; }
  .contact { min-height: 720px; padding: 90px 20px 0; }
  .contact-main { display: block; margin-top: 120px; }
  .contact-main a { width: 100%; margin-top: 70px; }
  .contact h2 { font-size: 25vw; margin-bottom: -2vw; }
  footer { padding: 50px 20px 30px; }
  .footer-wordmark { font-size: 21vw; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
