.private-page{min-height:100vh;background:#050505;color:#f3f3f0;padding:150px 7vw 0}
.private-head{max-width:1800px;margin:0 auto 54px;display:flex;justify-content:space-between;align-items:end;gap:30px}
.private-head h1{font:500 clamp(56px,8vw,128px)/.92 var(--nvy-sans);letter-spacing:-.065em;margin:0}
.private-head p{max-width:48ch;margin:0 0 5px;color:#c5c5c5;line-height:1.55}
.private-code-open{border:1px solid rgba(255,255,255,.55);color:#fff;padding:13px 18px;background:none;text-transform:uppercase;font:500 12px var(--nvy-sans);letter-spacing:.05em;white-space:nowrap;cursor:pointer}
.private-code-open:hover{background:#fff;color:#050505}
.private-grid{max-width:1320px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}
.private-card{position:relative;display:block;overflow:hidden;aspect-ratio:3/4;border:0;padding:0;background:#151515;color:#fff;text-align:left;cursor:pointer}
.private-card img{width:100%;height:100%;display:block;object-fit:cover;filter:grayscale(1) blur(10px) saturate(0);transform:scale(1.035);transition:transform .8s ease,filter .8s ease}
.private-lock{position:absolute;inset:0;display:grid;place-items:center;background:rgba(0,0,0,.3);opacity:1;transition:opacity .3s}
.private-lock:before{content:'';position:absolute;inset:0;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.private-lock svg{position:relative;width:28px;height:28px;fill:none;stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 0 10px #fff8)}
.private-card:hover img,.private-card:focus-visible img,.private-card.in-view img{filter:grayscale(.08) blur(10px) saturate(1.25);transform:scale(1.075)}
.private-card:hover .private-lock,.private-card:focus-visible .private-lock{opacity:1}
.private-card.in-view .private-lock{opacity:1}
.private-card-name{position:absolute;z-index:1;left:20px;bottom:18px;font:500 20px var(--nvy-sans);text-shadow:0 1px 12px #000}
.private-card:focus-visible,.private-code-open:focus-visible{outline:2px solid #fff;outline-offset:4px}
.private-page.is-unlocked .private-lock{display:none}
.private-page.is-unlocked .private-card:hover img{filter:grayscale(.08) blur(10px) saturate(1.25);transform:scale(1.075)}
.private-note{max-width:1800px;margin:24px auto 0;color:#999;font-size:13px}
.private-bottom{max-width:1800px;margin:110px auto 0;padding:28px 0;border-top:1px solid var(--nvy-divider);color:#999;font-size:13px}
.private-dialog{width:min(480px,calc(100% - 32px));border:1px solid #444;background:#080808;color:#f3f3f0;padding:32px;box-shadow:0 20px 100px #0009}
.private-dialog::backdrop{background:#000c;backdrop-filter:blur(5px)}
.private-dialog h2{font:500 32px var(--nvy-sans);margin:0 0 20px}
.private-dialog label{display:block;font-size:14px;margin-bottom:8px}
.private-dialog input{display:block;width:100%;padding:13px 12px;color:#fff;background:#111;border:1px solid #666;font:16px var(--nvy-sans)}
.private-dialog input:focus-visible,.private-dialog button:focus-visible,.private-dialog a:focus-visible{outline:2px solid #fff;outline-offset:3px}
.private-dialog .private-error{min-height:1.5em;color:#fff;font-size:13px;line-height:1.4}
.private-dialog-actions{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:18px}
.private-dialog button,.private-dialog a{color:#fff;background:transparent;border:1px solid #777;padding:11px 15px;font:500 12px var(--nvy-sans);text-transform:uppercase;text-decoration:none;cursor:pointer}
.private-dialog button:hover,.private-dialog a:hover{background:#fff;color:#050505}
.private-intro-text{color:#aaa;font-size:14px;line-height:1.5}
.private-profile-name{margin:0;font:500 30px var(--nvy-sans)}
@media(max-width:900px){.private-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}}
@media(max-width:650px){.private-page{padding:120px 22px 0}.private-head{display:block;margin-bottom:34px}.private-head p{margin:18px 0}.private-code-open{margin-top:6px}.private-grid{gap:12px}.private-card-name{left:12px;bottom:12px;font-size:17px}.private-bottom{margin-top:72px}}
@media(prefers-reduced-motion:reduce){.private-card img,.private-lock{transition:opacity .2s}.private-card:hover img,.private-card:focus-visible img{transform:none}}
