/* Nightwave Partners page (v1.0): "Neon Garage" components.
   The nav, footer, background and Hazy styling come from home-v2.css; this file adds the page itself. */
html,body{margin:0;padding:0}
html body.pt{min-height:100vh;-webkit-font-smoothing:antialiased}
.pt *,.pt *:before,.pt *:after{box-sizing:border-box}
.pt a{color:inherit;text-decoration:none}
.pt img{max-width:100%}
.pt button{font-family:inherit}

/* ---------- Page frame ---------- */
.pt-main{position:relative;z-index:1;max-width:1240px;margin:0 auto;padding:clamp(44px,6vw,84px) clamp(16px,3vw,32px) 30px}

/* ---------- Hero ---------- */
.pt-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;margin:0 0 clamp(70px,8.5vw,120px)}
.pt-hero:before{content:"PARTNERS";position:absolute;left:-1%;top:46%;transform:translateY(-50%);z-index:0;pointer-events:none;white-space:nowrap;
  font:700 clamp(100px,16vw,230px)/1 var(--hv-oswald);letter-spacing:.02em;color:transparent;-webkit-text-stroke:1px rgba(255,255,255,.05)}
.pt-hero-copy{position:relative;z-index:1;max-width:680px}
.pt-over{display:inline-flex;align-items:center;gap:10px;margin:0 0 22px;padding:8px 16px;border-radius:99px;font:600 12px/1 var(--hv-oswald);letter-spacing:.22em;color:#ff8d9b;background:rgba(255,42,69,.08);border:1px solid rgba(255,42,69,.4)}
.pt-over:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--hv-red);box-shadow:0 0 10px var(--hv-red);animation:hvPulse 2s infinite}
.pt-hero h1{margin:0 0 20px;font:700 clamp(46px,7vw,100px)/.94 var(--hv-oswald);text-transform:uppercase;color:#fff;letter-spacing:-.005em}
.pt-pre{display:block;margin:0 0 10px;font-size:.34em;line-height:1;letter-spacing:.34em;font-weight:500;color:#cfcfda}
.pt-hero h1 em{display:block;font-style:normal;background:linear-gradient(100deg,#ff2a45 0,#ff6b5e 46%,#ff2a45 100%);background-size:200% auto;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 26px rgba(255,42,69,.5));animation:hvSheen 7s linear infinite}
.pt-sub{margin:0;max-width:560px;font:400 16px/1.65 var(--hv-inter);color:var(--hv-mute)}

.pt-count{position:relative;z-index:1;min-width:230px;padding:24px 30px;border-radius:22px;text-align:center;
  background:radial-gradient(120% 100% at 100% 0%,rgba(255,42,69,.24),transparent 58%),linear-gradient(180deg,#17171f,#0e0e13);
  border:1px solid rgba(255,42,69,.38);box-shadow:0 0 0 1px rgba(255,42,69,.08),0 26px 60px rgba(0,0,0,.5),0 0 60px rgba(255,42,69,.12)}
.pt-count:after{content:"";position:absolute;left:0;top:0;height:3px;width:100%;border-radius:22px 22px 0 0;background:linear-gradient(90deg,var(--hv-red),var(--hv-red2) 55%,transparent);box-shadow:0 0 18px var(--hv-red)}
.pt-count b{display:block;font:700 clamp(54px,6vw,76px)/1 var(--hv-oswald);color:#fff;letter-spacing:.02em;text-shadow:0 0 30px rgba(255,42,69,.55)}
.pt-count span{display:block;margin-top:10px;font:600 12px/1 var(--hv-oswald);letter-spacing:.24em;color:#d6d6e0}
.pt-count small{display:block;margin-top:8px;font:500 12px/1 var(--hv-inter);letter-spacing:.06em;color:var(--hv-faint)}

/* ---------- Grid + cards ---------- */
.pt-stage{position:relative;overflow:visible}
.pt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:24px}
.pt-card{--pt-accent:#ff2a45;position:relative;display:flex;flex-direction:column;border-radius:22px;overflow:hidden;
  background:linear-gradient(180deg,#16161d,#0e0e13);border:1px solid var(--hv-line);box-shadow:0 22px 54px rgba(0,0,0,.45),inset 0 1px rgba(255,255,255,.04);
  animation:hvUp .65s cubic-bezier(.2,.7,.2,1) both;transition:transform .22s,border-color .22s,box-shadow .22s}
.pt-card:before{content:"";position:absolute;left:0;top:0;right:0;height:3px;background:linear-gradient(90deg,var(--pt-accent),transparent 72%);box-shadow:0 0 16px var(--pt-accent);z-index:2}
.pt-card:hover{transform:translateY(-5px);border-color:rgba(255,42,69,.5);border-color:color-mix(in srgb,var(--pt-accent) 58%,transparent);
  box-shadow:0 0 0 1px rgba(255,42,69,.2),0 28px 64px rgba(255,42,69,.14);box-shadow:0 0 0 1px color-mix(in srgb,var(--pt-accent) 30%,transparent),0 28px 64px color-mix(in srgb,var(--pt-accent) 20%,transparent)}
.pt-top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px 14px}
.pt-chip{display:inline-flex;align-items:center;max-width:78%;padding:6px 12px;border-radius:99px;font:600 10.5px/1 var(--hv-oswald);letter-spacing:.2em;color:#e9e9f0;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:rgba(255,255,255,.05);border:1px solid var(--hv-line2)}
.pt-idx{font:600 13px/1 var(--hv-oswald);letter-spacing:.14em;color:var(--hv-faint)}

.pt-logo{position:relative;display:grid;place-items:center;aspect-ratio:16/9;margin:0 20px;border-radius:16px;overflow:hidden;
  background:radial-gradient(70% 90% at 50% 38%,rgba(255,42,69,.2),transparent 72%),repeating-linear-gradient(135deg,rgba(255,255,255,.028) 0 2px,transparent 2px 11px),#0a0a0e;
  background:radial-gradient(70% 90% at 50% 38%,color-mix(in srgb,var(--pt-accent) 26%,transparent),transparent 72%),repeating-linear-gradient(135deg,rgba(255,255,255,.028) 0 2px,transparent 2px 11px),#0a0a0e;
  border:1px solid var(--hv-line);transition:border-color .22s}
.pt-card:hover .pt-logo{border-color:rgba(255,42,69,.4);border-color:color-mix(in srgb,var(--pt-accent) 45%,transparent)}
.pt-logo img{max-width:74%;max-height:68%;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 8px 24px rgba(0,0,0,.65));transition:transform .3s}
.pt-card:hover .pt-logo img{transform:scale(1.04)}
.pt-logo-text{padding:0 18px;text-align:center;font:700 clamp(26px,2.6vw,36px)/1.05 var(--hv-oswald);letter-spacing:.04em;text-transform:uppercase;color:#fff;text-shadow:0 0 24px rgba(255,42,69,.45)}

.pt-body{display:flex;flex-direction:column;gap:14px;flex:1;padding:20px 22px 22px}
.pt-name{margin:0;font:700 clamp(22px,2vw,27px)/1.1 var(--hv-oswald);letter-spacing:.03em;color:#fff;overflow-wrap:anywhere}
.pt-desc{margin:-4px 0 0;font:400 14px/1.6 var(--hv-inter);color:var(--hv-mute);min-height:2.4em;overflow-wrap:anywhere}
.pt-desc-empty{min-height:0}
.pt-code{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:auto;padding:12px 12px 12px 18px;border-radius:14px;background:rgba(0,0,0,.5);
  border:1px dashed rgba(255,42,69,.5);border:1px dashed color-mix(in srgb,var(--pt-accent) 60%,transparent)}
.pt-code-copy{min-width:0}
.pt-code small{display:block;margin-bottom:5px;font:600 10px/1 var(--hv-oswald);letter-spacing:.26em;color:var(--hv-faint)}
.pt-code b{display:block;font:700 clamp(24px,2.3vw,30px)/1 var(--hv-oswald);letter-spacing:.07em;color:#fff;text-shadow:0 0 22px var(--pt-accent);overflow-wrap:anywhere}
.pt-copy{flex:0 0 auto;height:40px;padding:0 18px;border-radius:10px;font:600 12px/1 var(--hv-oswald);letter-spacing:.16em;color:#fff;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid var(--hv-line2);transition:background .18s,border-color .18s,box-shadow .18s,color .18s}
.pt-copy:hover{background:rgba(255,42,69,.16);border-color:rgba(255,42,69,.7);box-shadow:0 0 20px rgba(255,42,69,.3)}
.pt-copy.ok{background:rgba(77,255,154,.14);border-color:rgba(77,255,154,.6);color:var(--hv-ok)}
.pt-visit{display:flex;align-items:center;justify-content:center;gap:8px;height:50px;border-radius:12px;font:600 14px/1 var(--hv-oswald);letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:linear-gradient(180deg,#ff3b55,#d80f2b);border:1px solid #ff6477;box-shadow:0 10px 28px rgba(255,42,69,.3),inset 0 1px rgba(255,255,255,.25);transition:transform .18s,box-shadow .18s}
.pt-visit:hover{transform:translateY(-2px);box-shadow:0 14px 38px rgba(255,42,69,.5),inset 0 1px rgba(255,255,255,.3)}
.pt a:focus-visible,.pt button:focus-visible{outline:2px solid #ff8d9b;outline-offset:3px}

/* ---------- Loading / empty / note / toast ---------- */
.pt-card.is-skel{min-height:430px;animation:none;background:linear-gradient(110deg,#121218 30%,#1b1b24 50%,#121218 70%);background-size:220% 100%;animation:ptShimmer 1.4s linear infinite}
.pt-card.is-skel:before{display:none}
@keyframes ptShimmer{to{background-position:-220% 0}}
.pt-empty{grid-column:1/-1;display:grid;gap:8px;place-items:center;text-align:center;padding:56px 24px;border-radius:22px;background:rgba(255,255,255,.03);border:1px dashed var(--hv-line2)}
.pt-empty b{font:600 22px/1.2 var(--hv-oswald);letter-spacing:.06em;color:#fff;text-transform:uppercase}
.pt-empty span{font:400 14px/1.5 var(--hv-inter);color:var(--hv-mute)}
.pt-note{margin:34px 0 0;text-align:center;font:500 12px/1.6 var(--hv-inter);letter-spacing:.04em;color:var(--hv-faint)}
.pt-toast{position:fixed;left:50%;bottom:26px;z-index:120;transform:translate(-50%,24px);opacity:0;pointer-events:none;padding:13px 22px;border-radius:12px;font:600 13px/1.2 var(--hv-oswald);letter-spacing:.12em;color:#fff;text-transform:uppercase;
  background:#15151c;border:1px solid rgba(255,42,69,.6);box-shadow:0 18px 50px rgba(0,0,0,.65),0 0 30px rgba(255,42,69,.25);transition:opacity .22s,transform .22s}
.pt-toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Responsive ---------- */
@media (max-width:820px){
  .pt-hero{grid-template-columns:1fr;gap:26px;align-items:start;margin-bottom:84px}
  .pt-count{justify-self:start;display:flex;align-items:center;gap:20px;text-align:left;min-width:0;padding:18px 24px}
  .pt-count b{font-size:56px}
  .pt-count span{margin-top:0}
  .pt-count small{display:none}
}
@media (max-width:520px){
  .pt-grid{grid-template-columns:1fr;gap:20px}
  .pt-code{flex-wrap:wrap}
  .pt-copy{flex:1 0 100%}
}

/* ---------- Fixes after first render ---------- */
html body.pt .sz-nav-brand small{display:none!important}
.pt-logo-text.long{font-size:clamp(18px,1.8vw,24px);letter-spacing:.03em}
.pt-hero{margin-bottom:clamp(96px,11vw,150px)}
@media (max-width:820px){.pt-hero{margin-bottom:110px}}

/* Hazy's bubble opens to her LEFT on this page (her first stop is at the right edge) */
html body.hv2.pt[data-site-theme=safezone] #nw-hazy .nw-hazy-bubble{left:auto!important;right:86px!important;bottom:56px!important;width:214px!important;text-align:left!important}
@media (max-width:520px){html body.hv2.pt[data-site-theme=safezone] #nw-hazy .nw-hazy-bubble{right:70px!important;width:180px!important}}

/* Logos of any shape (square badges included) always fit inside the panel in full */
.pt-logo{aspect-ratio:4/3}
.pt-logo img{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:16px;object-fit:contain}
