/* ZvsP theme source 1: styles.css */

:root{--bg:#120d0c;--bg2:#1f1817;--panel:#201817;--line:#3e2f2d;--text:#f3eceb;--muted:#d07d72;--acid:#e47365}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px;background:var(--bg);color:var(--text);font:14px/1.65 Manrope,Arial,sans-serif}body:before{content:"";position:fixed;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(ellipse at 85% 5%,#3a2c2a55,transparent 44%),radial-gradient(ellipse at 2% 85%,#35252355,transparent 42%)}a{text-decoration:none;color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Oswald,Impact,sans-serif;text-transform:uppercase;line-height:1.12;font-weight:600;overflow-wrap:break-word}.wrap{max-width:1270px;margin:auto;padding:0 35px}.header{height:84px;border-bottom:1px solid #44343288;background:#120d0cee;position:sticky;top:0;z-index:15;backdrop-filter:blur(17px)}.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:13px;white-space:nowrap}.brand-icon{display:flex;align-items:baseline;justify-content:center;background:var(--acid);color:#17100f;font:700 26px Oswald,sans-serif;line-height:42px;height:43px;min-width:55px;transform:skew(-6deg)}.brand-icon span{font-size:14px}.brand-label{display:flex;flex-direction:column}.brand-label strong{font:600 19px Oswald,sans-serif;letter-spacing:1px}.brand-label small{font-size:8px;color:#cd766a;letter-spacing:1.1px;font-weight:800}.menu{display:flex;gap:22px;align-items:center}.menu>a{font-size:11px;white-space:nowrap;text-transform:uppercase;font-weight:800;color:#d3867c;transition:color .18s}.menu>a:hover,.menu>a.active{color:var(--acid)}.menu a.account-link{border:1px solid #5b4542;padding:10px 13px;color:var(--text)}.account-link small{font-size:8px;color:var(--acid);margin-left:4px}.hamburger{display:none;background:transparent;border:1px solid var(--line);padding:5px 12px;color:var(--text);font-size:24px}.page{display:none}.page.active{display:block}.hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:570px;border-bottom:1px solid var(--line)}.hero-left{padding:76px 25px 35px 0;display:flex;align-items:flex-start;flex-direction:column}.overline,.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--acid);text-transform:uppercase}.overline{display:flex;align-items:center;gap:7px}.overline span{color:#a16159}.dot{height:8px;width:8px;display:inline-block;border-radius:50%;background:var(--acid);box-shadow:0 0 13px var(--acid)}.hero h1{font-size:clamp(65px,7vw,96px);letter-spacing:-1.5px;margin:24px 0 20px}.hero h1 em,.section-heading h2 em,.page-title h1 em{color:var(--acid);font-style:normal}.lead{color:#d3857b;max-width:500px;font-size:15px;line-height:1.85}.hero-buttons{display:flex;gap:12px;margin:30px 0 10px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:13px 21px;min-height:49px;font-size:11px;letter-spacing:1px;font-weight:800;transition:transform .18s,background .18s}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--acid);color:#140f0e}.button.primary:hover{background:#e8bbb5}.button.outline{border:1px solid #764741;color:#f2eae9}.button.outline:hover{background:#332725}.subtle{color:#aa6c64;font-size:10px;max-width:470px}.hero-metrics{display:flex;gap:39px;margin-top:auto;padding-top:42px}.hero-metrics>div{display:flex;flex-direction:column}.hero-metrics b{font:600 29px Oswald,sans-serif}.hero-metrics span{font-size:9px;font-weight:800;letter-spacing:.6px;color:#cd766a}.hero-art{overflow:hidden;position:relative;min-height:570px;border-left:1px solid #503d3a;background:radial-gradient(ellipse at 50% 45%,#4f3c39,#2b2221 34%,#1d1615 65%,#17100f 100%)}.art-grid{position:absolute;inset:0;opacity:.5;background-image:linear-gradient(#e9beb818 1px,transparent 1px),linear-gradient(90deg,#e9beb818 1px,transparent 1px);background-size:45px 45px}.art-orbit{border:1px solid #e4736566;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:50%}.orb1{height:365px;width:365px}.orb2{height:490px;width:490px;border-style:dashed;opacity:.5}.biohazard{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%) rotate(-16deg);font:390px Arial,sans-serif;line-height:1;color:#e57a6b53;text-shadow:0 0 90px #d2827744}.art-wordmark{position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;text-shadow:0 4px 25px #0c0808}.art-wordmark small{font-size:11px;letter-spacing:6px;font-weight:800}.art-wordmark strong{font:700 clamp(82px,10vw,144px)/.84 Oswald,Impact,sans-serif;letter-spacing:-3px}.art-wordmark span{font-size:9px;letter-spacing:3px;color:#edccc8;margin-top:30px;font-weight:800}.art-signature{position:absolute;z-index:3;bottom:22px;left:26px;right:26px;display:flex;justify-content:space-between;color:#d58980;font-size:9px;font-weight:800;letter-spacing:1px}.ticker{display:flex;align-items:center;min-height:48px;background:#211918;overflow:hidden;gap:20px}.ticker strong{align-self:stretch;display:flex;align-items:center;padding:0 19px;font-size:10px;letter-spacing:1px;color:#130f0e;background:var(--acid)}.ticker>span{white-space:nowrap;overflow:hidden;flex:1;font-size:10px;color:#d28177;font-weight:800;letter-spacing:1px}.ticker i{font-style:normal;color:var(--acid);padding:0 14px}.ticker small{margin-right:15px;color:#9e5f57}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:74px 0 23px}.section-heading h2{font-size:43px;margin-top:12px}.section-heading>a{font-size:11px;font-weight:800;letter-spacing:1px;color:var(--acid)}.server-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.server-card{padding:27px;border:1px solid var(--line);background:linear-gradient(145deg,#271e1d,#1d1615);position:relative;overflow:hidden}.server-card:before{content:"";height:3px;background:var(--acid);position:absolute;left:0;top:0;width:35%}.server-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.server-index{font-size:10px;font-weight:800;color:#ce786d;letter-spacing:1.3px}.server-status{padding:5px 9px;font-size:9px;letter-spacing:1px;font-weight:800;border:1px solid #9f6057;color:var(--acid)}.server-status.offline{border-color:#765650;color:#d29b8d}.server-status.unknown{border-color:#6b7878;color:#d28479}.server-card h3{font-size:30px;margin:23px 0 6px;letter-spacing:.4px}.server-map{font-size:11px;color:#d18075}.server-map strong{color:#e2d2d0;font-weight:600}.population{display:flex;justify-content:space-between;gap:12px;margin:30px 0 9px;color:#cf7c70;font-size:10px;letter-spacing:.7px;font-weight:800}.population b{color:#f3ebea}.progress{height:5px;background:#463533;overflow:hidden}.progress>span{height:100%;background:var(--acid);display:block;width:0;transition:width .3s}.server-bottom{display:flex;gap:11px;align-items:center;margin-top:24px}.server-ip{font-size:12px;color:#eee4e3;font-weight:800;letter-spacing:.4px;flex:1}.copy-btn{background:transparent;border:1px solid #614a47;color:#dec0bc;padding:9px 12px;cursor:pointer;font-size:10px;font-weight:800}.join{background:var(--acid);color:#17100f;display:grid;place-items:center;height:38px;width:38px;font-size:22px}.caption{font-size:11px;color:#cd766a;margin-top:11px}.weapon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.weapon-card{border:1px solid #523e3b;height:250px;padding:22px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:#251e1d;transition:transform .2s,border .2s}.weapon-card:hover{transform:translateY(-4px);border-color:var(--acid)}.weapon-card.rainbow{background:radial-gradient(circle at 55% 40%,#844f4840,transparent 49%),linear-gradient(125deg,#322625,#1d1615)}.weapon-card.void{background:radial-gradient(circle at 60% 40%,#a96a625c,transparent 50%),linear-gradient(125deg,#362927,#1e1615)}.weapon-card.bunker{background:radial-gradient(circle at 60% 40%,#98764649,transparent 50%),linear-gradient(125deg,#302b23,#1e1817)}.weapon-no{font-size:10px;letter-spacing:1.5px;color:#e3d3d1;font-weight:800}.weapon-glyph{position:absolute;top:45%;left:52%;transform:translate(-50%,-50%);font-size:155px;line-height:1;color:#e4c0bc26;text-shadow:0 0 70px #e4736575}.weapon-card.void .weapon-glyph{color:#edcbc755}.weapon-card.bunker .weapon-glyph{color:#e7c8a650}.weapon-card h3{font-size:28px}.weapon-card p{color:#d3877c;font-size:11px;margin-top:4px}.card-arrow{position:absolute;bottom:21px;right:23px;font-size:25px;color:var(--acid)}.bottom-cta{margin:80px 0 95px;padding:41px 46px;background:linear-gradient(110deg,#372a28,#251b19);border:1px solid #754741;display:flex;align-items:center;justify-content:space-between;gap:20px}.bottom-cta h2{font-size:39px;margin-top:12px}.page-inner{min-height:65vh;padding-top:78px;padding-bottom:95px}.page-title{margin-bottom:34px;max-width:820px}.page-title h1{font-size:clamp(50px,6vw,76px);margin:12px 0 21px}.page-title p{color:#d28177;max-width:680px;line-height:1.8}.guide-box{margin-top:24px;border:1px solid #594441;background:#261e1d;padding:28px}.guide-box h3{font-size:26px;margin-bottom:13px}.guide-box p{max-width:850px;color:#d9c3c0}.guide-box .button{margin-top:17px}code,kbd{font-family:monospace;color:var(--acid);background:#16100f;padding:3px 5px;overflow-wrap:anywhere}.arsenal-grid,.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.arsenal-item,.feature-grid article{padding:29px;border:1px solid var(--line);background:#241c1b;min-height:235px}.arsenal-item .tag{font-size:10px;color:var(--acid);font-weight:800;letter-spacing:1px}.arsenal-item h2{font-size:33px;margin:20px 0 11px}.arsenal-item p,.feature-grid p{font-size:12px;color:#d3857a;line-height:1.8}.arsenal-item>a{display:inline-block;margin-top:22px;font-size:10px;color:var(--acid);font-weight:800}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feature-grid article>span{font:700 29px Oswald;color:#a96b63}.feature-grid h3{font-size:30px;margin:14px 0 10px}.video-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.video-item{border:1px solid var(--line);background:#201817;overflow:hidden}.video-item video{display:block;width:100%;aspect-ratio:16/9;background:#070504}.video-item>div{padding:22px}.video-item span{color:var(--acid);font-weight:800;letter-spacing:1px;font-size:9px}.video-item h3{font-size:28px;margin:7px 0}.video-item p{color:#d28177;font-size:12px}.footer{border-top:1px solid var(--line);background:#0d0a09;padding:30px 0}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}.footer-brand{display:flex;flex-direction:column}.footer-brand b{font:700 22px Oswald,sans-serif}.footer-brand em{color:var(--acid);font-style:normal}.footer-brand span,.footer p{font-size:10px;color:#ab6e66}.footer a{font-size:10px;font-weight:800;color:var(--acid)}.toast{position:fixed;bottom:22px;right:22px;padding:13px 20px;background:var(--acid);color:#100b0b;font-size:12px;font-weight:800;z-index:30;transition:opacity .2s;opacity:0;pointer-events:none}.toast.show{opacity:1}
@media(max-width:1100px){.menu{gap:12px}.menu>a{font-size:10px}.hero h1{font-size:65px}.art-wordmark strong{font-size:112px}.brand-label small{font-size:7px}}@media(max-width:900px){.hamburger{display:block}.menu{display:none;position:absolute;top:84px;right:0;left:0;padding:20px 35px;background:#161111ec;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0}.menu.open{display:flex}.menu>a{padding:12px 0;font-size:12px}.menu .account-link{margin-top:8px;text-align:center}.hero{grid-template-columns:1fr}.hero-left{padding:55px 0 32px}.hero-art{min-height:400px;border-left:none;border-top:1px solid #523e3c}.art-wordmark strong{font-size:105px}.hero-metrics{margin-top:0}.arsenal-grid{grid-template-columns:1fr}.weapon-grid{gap:11px}.weapon-card{height:210px;padding:16px}.weapon-card h3{font-size:22px}}@media(max-width:650px){.wrap{padding:0 18px}.header{height:68px}.menu{top:68px;padding:16px 18px}.brand-label strong{font-size:15px}.brand-label small{font-size:6px;letter-spacing:.6px}.brand-icon{font-size:21px;height:37px;min-width:49px;line-height:37px}.hero-left{padding-top:47px}.hero h1{font-size:clamp(57px,12.8vw,80px)}.hero-buttons .button{width:100%}.hero-metrics{gap:19px;justify-content:space-between;width:100%}.hero-metrics b{font-size:25px}.hero-metrics span{font-size:7px}.hero-art{min-height:360px}.art-wordmark strong{font-size:85px}.biohazard{font-size:250px}.orb1{height:270px;width:270px}.orb2{height:360px;width:360px}.art-wordmark span{font-size:7px;letter-spacing:2px}.ticker{gap:11px}.ticker strong{padding:0 9px;font-size:8px}.ticker>span{font-size:8px}.ticker small{display:none}.section-heading{margin-top:50px}.section-heading h2{font-size:34px}.section-heading>a{font-size:9px}.server-grid,.weapon-grid,.arsenal-grid,.feature-grid,.video-grid{grid-template-columns:1fr}.server-card{padding:22px}.weapon-card{height:230px}.bottom-cta{margin:50px 0 65px;padding:28px;flex-direction:column;align-items:start}.bottom-cta h2{font-size:33px}.page-inner{padding-top:55px}.page-title h1{font-size:50px}.footer-inner{align-items:flex-start;flex-direction:column;gap:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
/* ZvsP theme source 2: account.css */

/* Project ZvsP account system */
.account-shell{display:grid;grid-template-columns:0.9fr 1.1fr;min-height:565px;border:1px solid #4e3b39;background:#201716}
.account-aside{padding:36px 34px;background:radial-gradient(circle at 50% 35%,#60494633,#221918 55%,#1d1615 94%);border-right:1px solid #4e3b39;display:flex;flex-direction:column}
.account-emblem{font-size:165px;line-height:1.1;text-align:center;color:#e4736583;text-shadow:0 0 70px #e4736550;margin:25px 0}
.account-aside h2{font-size:45px}.account-aside h2 em{font-style:normal;color:var(--acid)}
.account-aside>p{font-size:12px;color:#d4897f;line-height:1.9;margin-top:17px}
.account-note{margin-top:auto;padding:25px 0 0;font-size:12px;color:#dac5c2;display:flex;flex-direction:column;gap:12px}
.account-note strong{font-size:10px;letter-spacing:1.2px;color:var(--acid)}
.account-note small{font-size:10px;color:#cf7a6f}
.account-panel{padding:36px 40px;position:relative}
.account-tabs{display:flex;gap:8px;border-bottom:1px solid #543f3c;margin-bottom:31px}
.account-tabs button{padding:14px 21px;background:none;border:0;border-bottom:2px solid transparent;font:800 11px Manrope,Arial,sans-serif;color:#cd766a;cursor:pointer;letter-spacing:1px}
.account-tabs button.selected{border-color:var(--acid);color:var(--acid)}
.account-form{display:flex;flex-direction:column;gap:17px}
.account-form h3{font-size:29px;margin-bottom:5px}
.account-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;letter-spacing:.2px;font-weight:800;color:#dac5c2}
.account-form label small{font-size:9px;font-weight:600;color:#ce786c}
.account-form input,.account-form textarea,.account-form select{width:100%;border:1px solid #56413f;outline:none;background:#16100f;color:#f5edec;padding:13px 14px;min-height:45px;border-radius:0;font:500 13px Manrope,Arial,sans-serif;transition:border-color .15s;resize:vertical}
.account-form input:focus,.account-form textarea:focus,.account-form select:focus{border-color:var(--acid)}
.account-form input::placeholder,.account-form textarea::placeholder{color:#9f6058}
.account-form select option{background:#241c1b}
.account-form .wide{width:100%;border:0;cursor:pointer;margin-top:4px}
.account-form button:disabled,.account-logout:disabled{opacity:.6;cursor:progress}
.account-hint{font-size:10px;color:#cf7b70;line-height:1.75}
.account-identity{display:flex;align-items:center;gap:17px;padding-bottom:26px;border-bottom:1px solid #4d3a37}
.account-avatar{width:77px;height:77px;background:#392b2a;border:1px solid #9a5d54;display:grid;place-items:center;color:var(--acid);font-size:51px;flex-shrink:0}
.account-identity>div{min-width:0;flex:1}.account-identity small{color:var(--acid);font-size:9px;font-weight:800;letter-spacing:1px}
.account-identity h3{font-size:30px;overflow-wrap:anywhere}.account-identity #profile-login{color:#d07d72;font-size:11px;overflow-wrap:anywhere}
.account-logout{color:#d4887e;background:#1f1817;border:1px solid #594441;padding:11px;cursor:pointer;font-weight:800;font-size:10px}
.account-meta{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:23px 0 29px}
.account-meta>div{display:flex;flex-direction:column;border:1px solid #493735;padding:15px;gap:7px}
.account-meta span{font-size:9px;color:#cf7b70;font-weight:800;letter-spacing:1px}
.account-meta b{font:600 21px Oswald,Impact,sans-serif}
.account-security{margin-top:24px;border:1px solid #543f3c;padding:16px}
.account-security summary{font-size:11px;letter-spacing:1px;color:var(--acid);font-weight:800;cursor:pointer}
.account-security .account-form{margin-top:23px}
.account-message{margin-top:20px;padding:14px;background:#332725;color:#e5b6b0;font-size:12px;font-weight:700;border-left:3px solid var(--acid)}
.account-message.error{background:#3b2424;color:#ffb9aa;border-left-color:#fb7a6d}
.account-loading{min-height:380px;display:flex;align-items:center;justify-content:center;gap:10px;color:#d28379;flex-direction:column}
.account-spinner{font-size:54px}
[hidden]{display:none!important}
@media(max-width:900px){.account-shell{grid-template-columns:1fr}.account-aside{border-right:0;border-bottom:1px solid #4e3b39}.account-emblem{font-size:85px;margin:5px 0}.account-aside h2{font-size:35px}.account-panel{padding:30px 24px}}
@media(max-width:650px){.account-aside{padding:26px 23px}.account-panel{padding:27px 20px}.account-identity{gap:11px}.account-avatar{width:56px;height:56px;font-size:35px}.account-identity h3{font-size:24px}.account-logout{padding:7px}.account-meta{grid-template-columns:1fr 1fr}.account-meta>div{padding:12px}.account-meta b{font-size:17px}}
.account-avatar{position:relative;overflow:hidden;border-radius:12px}
.account-avatar img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.account-avatar img[hidden]{display:none!important}
.account-picture-area{display:grid;gap:9px;padding:16px;border:1px solid #654641;border-radius:10px;background:#221919}
.account-picture-area>label{font-weight:800;font-size:11px;color:#edd3cd}
.account-picture-area input[type=file]{width:100%;font-size:11px;min-height:40px}
.account-picture-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.account-picture-actions .button{flex:1;min-height:41px}
.account-remove-avatar,.account-back{background:#241b1b;color:#e3a59f;border:1px solid #6b4743;border-radius:7px;padding:11px;cursor:pointer}
.account-email-cell{grid-column:1/-1}
.account-email-cell b{font-size:16px;overflow-wrap:anywhere}
.account-email-cell small{font-size:10px;color:#c4a49e}
#email-code-form h3{font-size:24px}

/* Mobile: don't hide sign-in below an oversized decorative sidebar. */
@media(max-width:900px){
 .nf-body #account .account-aside{display:none}
 .nf-body #account .account-shell{grid-template-columns:minmax(0,1fr)}
 .nf-body #account .account-panel{padding:26px 22px}
}
@media(max-width:480px){
 .nf-body #account .page-title{margin-bottom:16px}
 .nf-body #account .page-title h1{font-size:37px;line-height:1.05}
 .nf-body #account .account-panel{padding:20px 16px}
 .nf-body #account .account-form h3{font-size:23px}
 .nf-body #account .account-tabs{margin-bottom:22px}
 .nf-body #account .account-tabs button{padding:12px 14px}
}

/* Project mark in the cabinet now matches header and browser tab. */
.account-emblem img{display:block;width:min(144px,100%);height:auto;aspect-ratio:1;
 object-fit:cover;margin:0 auto;border-radius:22px;border:1px solid #8c5852;
 box-shadow:0 18px 46px #0a030599,0 0 38px #aa554236}

/* Three functional account dashboard tabs, desktop and mobile. */
.nf-body #account .account-dashboard-tabs{
 display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;
 margin:22px 0 26px;padding:5px;background:#140e10;
 border:1px solid #68463f;border-radius:13px;
}
.nf-body #account .account-dashboard-tabs [role=tab]{
 border:1px solid transparent;border-radius:9px;min-height:45px;
 padding:10px 6px;color:#d5aba5;background:transparent;
 font:800 10px/1.35 Manrope,Arial,sans-serif;
 letter-spacing:.5px;cursor:pointer;transition:background .15s,border-color .15s;
}
.nf-body #account .account-dashboard-tabs [role=tab][aria-selected=true]{
 background:#aa584e;color:#fff;border-color:#cf8d83;
 box-shadow:0 3px 17px #a445384a;
}
.nf-body #account .account-dashboard-tabs [role=tab]:focus-visible,
.nf-body #account .account-edit-avatar:focus-visible{outline:2px solid #ffe3de;outline-offset:3px}
.nf-body #account .account-pane[hidden]{display:none!important}
.nf-body #account .account-pane-intro{margin:4px 0 20px}
.nf-body #account .account-pane-intro h3{
 font:700 29px Oswald,Impact,sans-serif;color:#f7e6e2;margin-bottom:7px;
}
.nf-body #account .account-pane-intro p{
 font:500 12px/1.7 Manrope,Arial,sans-serif;color:#c5a29b;max-width:520px;
}
.nf-body #account .account-edit-avatar{
 display:block;width:max-content;padding:6px 0;margin-top:5px;
 background:transparent;border:0;color:#f0a49a;cursor:pointer;
 font:700 11px Manrope,Arial,sans-serif;text-decoration:underline;text-underline-offset:3px;
}
.nf-body #account .account-info-note{
 margin-top:20px;padding:18px 20px;border:1px solid #664a43;
 border-radius:10px;background:#2c1d1d;
}
.nf-body #account .account-info-note strong{font-size:12px;color:#f3c2b7}
.nf-body #account .account-info-note p{
 margin-top:6px;font-size:11px;line-height:1.7;color:#d2ada5
}
.nf-body #account .account-security-footnote{margin-top:22px}
.nf-body #account .account-picture-area input[type=file]{
 width:100%;border:1px solid #72554e;min-height:43px;
 padding:10px;background:#171012;color:#f4dad5;border-radius:6px;
}
.nf-body #account .account-picture-area input[type=file]:focus-visible{
 outline:2px solid #eaa79a;outline-offset:2px
}
@media(max-width:480px){
 .nf-body #account .account-dashboard-tabs{gap:2px;padding:3px}
 .nf-body #account .account-dashboard-tabs [role=tab]{font-size:9px;min-height:43px;letter-spacing:0}
 .nf-body #account .account-identity{flex-wrap:wrap}
 .nf-body #account .account-logout{margin-left:auto}
}
 
.nf-body #account .account-mail-status{
 padding:13px 16px;border-left:3px solid #d58b77;border-radius:6px;
 background:#392720;color:#e8b7ab;font:600 11px/1.65 Manrope,Arial,sans-serif;
 margin:0 0 20px;
}

/* ZvsP theme source 3: shop.css */
/* Project ZvsP shop - all products are intentionally non-purchasable */
.shop-page .page-title{margin-bottom:32px}
.shop-shutdown{display:flex;gap:22px;align-items:center;padding:24px 27px;border:1px solid #b67b43;background:linear-gradient(105deg,#382a1e,#242221);margin-bottom:66px}
.shop-shutdown-icon{display:grid;place-items:center;border-radius:50%;border:2px solid #e9a552;color:#ffc37b;width:52px;height:52px;flex-shrink:0;font:700 34px Oswald,Impact,sans-serif}
.shop-shutdown strong{display:block;font:600 25px Oswald,Impact,sans-serif;letter-spacing:1.2px;color:#ffca8b}
.shop-shutdown p{font-size:12px;color:#dfc4aa;margin-top:4px}
.shop-shutdown-tag{margin-left:auto;border:1px solid #bd8b58;padding:8px 12px;color:#ffc37b;font-size:9px;font-weight:800;letter-spacing:1px;white-space:nowrap}
.shop-section-head{margin:52px 0 21px}
.shop-section-head>span{font-size:10px;color:var(--acid);font-weight:800;letter-spacing:1.8px}
.shop-section-head h2{font-size:40px;margin:8px 0}
.shop-section-head h2 em{color:var(--acid);font-style:normal}
.shop-section-head p{font-size:12px;color:#d28177}
.shop-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.shop-cards.human{grid-template-columns:repeat(2,minmax(0,1fr))}
.shop-cards.single{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.shop-product{border:1px solid #4d3a37;background:linear-gradient(135deg,#2b2221,#1e1716);padding:23px;min-height:256px;display:flex;flex-direction:column}
.shop-product-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.shop-tier{font-size:10px;color:#d58a80;font-weight:800;letter-spacing:1.1px}
.shop-tier.bronze{color:#d9ad7f}.shop-tier.silver{color:#e7dad8}.shop-tier.gold{color:#f5d38d}.shop-tier.special{color:#e1bab5}
.shop-soldout{color:#d9a37c;font-weight:800;font-size:9px;letter-spacing:.8px}
.shop-product-main{margin:35px 0 26px;flex:1}
.shop-product h3{font-size:30px}
.shop-product-main p{color:#d28277;font-size:12px;line-height:1.8;margin:12px 0 3px;max-width:450px}
.shop-price{display:flex;align-items:baseline;gap:9px;margin-top:15px;flex-wrap:wrap}
.shop-price strong{font:600 37px Oswald,Impact,sans-serif;color:#f2ebea}
.shop-price span{font-size:12px;color:#d18176}
.shop-product-foot{border-top:1px solid #463533;padding-top:13px;color:#ba9690;font-size:10px;text-transform:uppercase;letter-spacing:1.1px;font-weight:800}
.shop-feature{background:radial-gradient(circle at 90% 10%,#87524b30,transparent 60%),linear-gradient(135deg,#2b2221,#1e1716)}
.shop-coming{display:flex;align-items:center;gap:24px;background:#231b1a;border:1px dashed #614a47;padding:31px}
.shop-coming>span{font-size:64px;color:#cd766a;line-height:1}
.shop-coming h3{font-size:26px}
.shop-coming p{font-size:12px;color:#d28278;margin-top:8px}
.shop-disclaimer{border-left:3px solid var(--acid);background:#241c1b;color:#d1b8b5;padding:20px 24px;font-size:12px;line-height:1.8;margin-top:45px}
.shop-disclaimer strong{color:#f2eae9}
@media(max-width:950px){.shop-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.shop-cards.single{grid-template-columns:1fr 1fr}.shop-shutdown-tag{display:none}}
@media(max-width:620px){.shop-cards,.shop-cards.single,.shop-cards.human{grid-template-columns:1fr}.shop-product{min-height:228px}.shop-shutdown{padding:19px;gap:14px}.shop-shutdown-icon{height:39px;width:39px;font-size:25px}.shop-shutdown strong{font-size:23px}.shop-section-head h2{font-size:34px}.shop-coming{padding:22px;gap:18px}.shop-coming>span{font-size:48px}.shop-product-main{margin-top:27px}}
/* ZvsP theme source 4: encyclopedia.css */
/* Project ZvsP - Encyclopedia */
.encyclopedia .page-title{max-width:900px}
.ency-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:35px 0 20px}
.ency-directory-card{min-height:250px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,#352826,#1d1615);border:1px solid #56413e;padding:26px;transition:transform .18s,border-color .18s,box-shadow .18s}
.ency-directory-card:hover,.ency-directory-card:focus-visible{transform:translateY(-3px);border-color:var(--acid);box-shadow:0 13px 40px #0f0b0a6b;outline:0}
.ency-directory-card.zombie{background:radial-gradient(circle at 80% 25%,#7a494359,transparent 58%),linear-gradient(130deg,#302423,#181211)}
.ency-directory-card.human{background:radial-gradient(circle at 80% 25%,#8e564e36,transparent 58%),linear-gradient(130deg,#2d2221,#1d1311)}
.ency-directory-card.weapons{background:radial-gradient(circle at 80% 25%,#9f854a43,transparent 58%),linear-gradient(130deg,#2a2221,#1c1312)}
.ency-directory-card.modes{background:radial-gradient(circle at 80% 25%,#a96b6354,transparent 58%),linear-gradient(130deg,#372927,#1e1716)}
.ency-number{font-weight:800;font-size:10px;letter-spacing:1.5px;color:#d58a80;position:relative;z-index:1}
.ency-symbol{position:absolute;right:13%;top:10%;font:normal 170px/1 Oswald,Arial,sans-serif;color:#e473652a;pointer-events:none;text-shadow:0 0 45px #8d4d4552}
.ency-directory-card.human .ency-symbol{color:#d1807542}.ency-directory-card.weapons .ency-symbol{color:#f0c2793c}.ency-directory-card.modes .ency-symbol{color:#e9beb83f}
.ency-directory-bottom{display:flex;align-items:end;justify-content:space-between;gap:12px;position:relative;z-index:1}
.ency-directory-bottom>span:first-child{display:flex;flex-direction:column;gap:9px}
.ency-directory-bottom strong{font:600 clamp(29px,4.5vw,42px)/1.1 Oswald,Impact,sans-serif}
.ency-directory-bottom small{font-size:12px;color:#d4887e;line-height:1.5}
.ency-arrow{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border:1px solid #935951;font-size:22px;color:var(--acid);transition:background .2s,color .2s}
.ency-directory-card:hover .ency-arrow{background:var(--acid);color:#1d1716}
.ency-footnote{font-size:11px;color:#af756d;margin-top:16px}
.ency-breadcrumb{display:flex;align-items:center;gap:12px;margin-bottom:30px;font-size:11px;color:#d3847a}
.ency-breadcrumb a{color:var(--acid);font-weight:800}
.ency-breadcrumb a:hover{text-decoration:underline}
.ency-breadcrumb>span:last-child{font-weight:700}
.ency-section-title{border-bottom:1px solid #523e3b;padding-bottom:26px;margin-bottom:29px}
.ency-section-title h1{font-size:clamp(50px,6.5vw,77px);margin:11px 0 15px}
.ency-section-title h1 em{font-style:normal;color:var(--acid)}
.ency-section-title p{max-width:800px;color:#d28378;font-size:13px;line-height:1.8}
.ency-section-title.zombie{border-color:#8b544d}.ency-section-title.weapons{border-color:#8b544c}.ency-section-title.modes{border-color:#985c54}
.ency-empty{background:linear-gradient(135deg,#231b1a,#1a1312);border:1px dashed #604845;padding:48px 25px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;min-height:270px;justify-content:center}
.ency-empty-symbol{font:normal 82px/1 Oswald,Arial,sans-serif;color:#d3857a6f}
.ency-empty h2{font-size:31px}.ency-empty p{font-size:12px;color:#d28278;max-width:520px}
.ency-empty-label{font-size:9px;font-weight:800;letter-spacing:1.5px;color:var(--acid)}
.ency-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ency-item-card{background:#241c1b;border:1px solid #4f3c39;display:flex;flex-direction:column;min-width:0;transition:border-color .18s,transform .18s}
.ency-item-card:hover,.ency-item-card:focus-visible{border-color:var(--acid);transform:translateY(-2px);outline:none}
.ency-item-art{display:flex;align-items:center;justify-content:center;height:194px;position:relative;background:radial-gradient(circle at center,#513d3a,#1d1615 72%);overflow:hidden}
.ency-item-art img{width:100%;height:100%;object-fit:contain;padding:15px}
.ency-art-fallback{font:600 72px/1 Oswald,Arial,sans-serif;color:#d28278}
.ency-item-info{padding:19px;display:flex;flex-direction:column;gap:6px;flex:1}
.ency-item-meta{font-size:9px;color:var(--acid);letter-spacing:1.1px;font-weight:800}
.ency-item-info strong{font:600 26px/1.12 Oswald,Arial,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.ency-item-info small{font-size:11px;color:#d3857b}
.ency-item-action{margin-top:auto;padding:15px 19px;border-top:1px solid #483634;color:var(--acid);font-size:10px;font-weight:800;letter-spacing:1px}
.ency-detail{border:1px solid #513d3b;padding:28px;background:linear-gradient(130deg,#28201f,#1a1312)}
.ency-detail-back{font-size:11px;font-weight:800;color:var(--acid);display:inline-flex;margin-bottom:25px}
.ency-detail-head{display:grid;grid-template-columns:220px minmax(0,1fr);align-items:center;gap:30px}
.ency-detail-image{height:218px;background:radial-gradient(circle,#4a3835,#1d1615);display:grid;place-items:center;border:1px solid #543f3c}
.ency-detail-image img{max-width:100%;max-height:100%;object-fit:contain;padding:18px}
.ency-detail-heading .eyebrow{margin-bottom:11px}
.ency-detail-heading h2{font-size:clamp(34px,5vw,55px);overflow-wrap:anywhere}
.ency-detail-heading p{font-size:12px;color:#d4877d;margin-top:15px;line-height:1.8}
.ency-details-group{margin-top:32px}
.ency-details-group h3{font-size:26px;margin-bottom:14px}
.ency-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ency-stat{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#211716;border:1px solid #483634}
.ency-stat span{font-size:11px;color:#d3867c}
.ency-stat b{font-size:13px;color:var(--acid);text-align:right;overflow-wrap:anywhere}
.ency-ability{border:1px solid #4e3b38;background:#211716;padding:17px;margin-bottom:9px}
.ency-ability h4{margin:0 0 7px;color:#f2eae9;font-size:13px}
.ency-ability p{color:#d4877d;font-size:12px}
.ency-back-bottom{display:inline-flex;margin-top:30px;color:var(--acid);font-size:11px;font-weight:800}
.ency-back-bottom:hover{text-decoration:underline}
@media(max-width:840px){.ency-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ency-detail-head{grid-template-columns:160px 1fr}.ency-detail-image{height:180px}}
@media(max-width:650px){.ency-directory,.ency-grid,.ency-stats{grid-template-columns:1fr}.ency-directory-card{min-height:205px;padding:23px}.ency-symbol{font-size:137px}.ency-directory-bottom strong{font-size:34px}.ency-empty{padding:36px 20px}.ency-detail{padding:18px}.ency-detail-head{grid-template-columns:1fr}.ency-detail-image{height:200px}.ency-section-title h1{font-size:48px}}
@media(prefers-reduced-motion:reduce){.ency-directory-card,.ency-item-card{transition:none}}

/* Fandom catalog: six portraits per desktop row; compact cards */
.ency-wiki-toolbar{margin:22px 0 23px;display:flex;flex-direction:column;gap:13px}
.ency-wiki-toolbar-top{display:flex;justify-content:space-between;align-items:center;gap:12px}
.ency-wiki-count,.ency-wiki-caption{font-size:10px;color:#d3867c;font-weight:800;letter-spacing:1px}
.ency-wiki-caption{color:#a4635b}
.ency-wiki-search{display:flex;align-items:center;gap:13px;border:1px solid #634b47;background:#1b1312;padding:0 17px;min-height:49px;transition:border-color .15s}
.ency-wiki-search:focus-within{border-color:var(--acid)}
.ency-wiki-search-icon{font-size:29px;color:var(--acid);line-height:1}
.ency-wiki-search input{flex:1;min-width:0;outline:none;color:#f7f1f0;border:0;background:transparent;font:600 13px Manrope,Arial,sans-serif;min-height:48px}
.ency-wiki-search input::placeholder{color:#cd766a;opacity:1}
.ency-wiki-filters{display:flex;gap:8px;overflow-x:auto;scrollbar-width:thin;padding-bottom:5px}
.ency-wiki-filter{flex:0 0 auto;background:#251c1b;color:#d28479;padding:10px 12px;border:1px solid #523e3c;font-size:11px;font-weight:800;cursor:pointer}
.ency-wiki-filter:hover,.ency-wiki-filter.active{background:#e47365;color:#171110;border-color:#e47365}
.ency-wiki-results-count{font-size:11px;color:#d17f74;margin-bottom:13px}
.ency-wiki-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}
.ency-wiki-card{min-width:0;display:flex;flex-direction:column;border:1px solid #594340;background:#251b1a;overflow:hidden;transition:transform .17s,border-color .17s}
.ency-wiki-card:hover,.ency-wiki-card:focus-visible{transform:translateY(-3px);border-color:var(--acid);outline:none}
.ency-wiki-image{width:100%;aspect-ratio:4/5;background:radial-gradient(circle at center 27%,#5f4845,#2c2322 54%,#1d1615 95%);display:grid;place-items:center;overflow:hidden}
.ency-wiki-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 24%;transition:transform .23s}
.ency-wiki-card:hover img{transform:scale(1.06)}
[data-page="guide-weapons"] .ency-wiki-image img{object-fit:contain;object-position:center;padding:8px}
.ency-wiki-placeholder{font:600 67px Oswald,Arial,sans-serif;color:#d181767d}
.ency-wiki-card-caption{padding:10px 10px 13px;display:flex;flex-direction:column;gap:6px;flex:1;min-height:68px}
.ency-wiki-card-caption strong{font:600 15px/1.2 Oswald,Arial,sans-serif;text-transform:uppercase;overflow-wrap:anywhere}
.ency-wiki-card-caption small{font:700 9px/1.4 Manrope,Arial,sans-serif;color:#d07c71;overflow-wrap:anywhere}
.ency-wiki-load-area{display:flex;justify-content:center;margin:29px 0}
.ency-wiki-return{display:inline-flex;color:var(--acid);font-size:11px;letter-spacing:.5px;font-weight:800;margin-bottom:24px}
.ency-wiki-profile{display:grid;grid-template-columns:minmax(200px,325px) minmax(0,1fr);gap:34px;background:linear-gradient(125deg,#2b201f,#221817);border:1px solid #5c4643;padding:24px}
.ency-wiki-hero{min-height:350px;background:radial-gradient(circle at 50% 30%,#55403d,#1f1716 85%);border:1px solid #7c4b45;display:grid;place-items:center;overflow:hidden}
.ency-wiki-hero img{width:100%;height:100%;max-height:400px;object-fit:contain}
.ency-wiki-hero .ency-wiki-placeholder{font-size:160px}
.ency-wiki-profile-intro{padding:20px 0}
.ency-wiki-profile-intro h2{font-size:clamp(36px,5vw,65px);margin:12px 0 9px}
.ency-wiki-name-original{font-size:11px;color:#d07c71}
.ency-wiki-subtitle{font-size:11px;color:#e47365;margin-top:16px;text-transform:uppercase;letter-spacing:.3px}
.ency-wiki-bio{font-size:13px;color:#d8c2bf;line-height:1.9;max-width:790px;margin-top:24px}
.ency-wiki-info-section{border-top:1px solid #4f3c39;margin-top:34px;padding-top:24px}
.ency-wiki-info-section h3{font-size:28px;margin-bottom:20px}
.ency-wiki-body{font-size:13px;color:#d4887e;line-height:1.9}
.ency-wiki-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.ency-wiki-stat{padding:15px 17px;display:flex;align-items:center;justify-content:space-between;gap:17px;background:#241a19;border:1px solid #4e3b39}
.ency-wiki-stat span{font-size:11px;color:#d4877d;overflow-wrap:anywhere}
.ency-wiki-stat strong{font-size:12px;text-align:right;color:#ebcbc6;overflow-wrap:anywhere}
.ency-wiki-favorites{display:flex;gap:10px;flex-wrap:wrap}
.ency-wiki-favorite{padding:11px 15px;color:#e9d5d3;background:#322624;border:1px solid #7c4b44;font-weight:700;font-size:12px}
a.ency-wiki-favorite:hover{border-color:var(--acid);color:var(--acid)}
.ency-wiki-abilities{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}
.ency-wiki-ability{background:#231a19;border:1px solid #4e3b38;padding:19px}
.ency-wiki-ability strong{display:block;color:var(--acid);font-size:12px;margin-bottom:10px}
.ency-wiki-ability p{font-size:12px;color:#d58a80;line-height:1.8}
.ency-wiki-gallery{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.ency-wiki-gallery-item{display:block;aspect-ratio:1/1;border:1px solid #56413f;background:#28201f;overflow:hidden}
.ency-wiki-gallery-item:hover{border-color:var(--acid)}
.ency-wiki-gallery-item img{width:100%;height:100%;object-fit:contain}
.ency-source-link{display:inline-flex;padding:10px 14px;background:#2d2120;border:1px solid #764741;color:#e8c4c0;font-weight:800;font-size:11px;margin:13px 10px 0 0}
.ency-source-link:hover{border-color:var(--acid)}
.ency-wiki-license{font-size:10px;color:#a86961;margin-top:18px}
@media(max-width:1050px){.ency-wiki-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(max-width:800px){.ency-wiki-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.ency-wiki-profile{grid-template-columns:230px 1fr;gap:21px}.ency-wiki-hero{min-height:270px}}
@media(max-width:630px){.ency-wiki-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.ency-wiki-card-caption{padding:9px;min-height:60px}.ency-wiki-card-caption strong{font-size:14px}.ency-wiki-profile{grid-template-columns:1fr}.ency-wiki-hero{min-height:240px;max-height:370px}.ency-wiki-stat-grid,.ency-wiki-abilities{grid-template-columns:1fr}.ency-wiki-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.ency-wiki-caption{display:none}}
@media(max-width:375px){.ency-wiki-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ency-wiki-card-caption strong{font-size:15px}}

/* CSO only catalog: icon integrity, six-across layout and chronology */
.ency-wiki-grid{grid-template-columns:repeat(6,minmax(0,1fr));align-items:stretch}
.ency-wiki-image{aspect-ratio:256/196;overflow:hidden;background:radial-gradient(circle at center,#382b29,#1e1716 70%);display:flex;align-items:center;justify-content:center}
.ency-wiki-image img{display:block;width:100%;height:100%;object-fit:contain!important;object-position:center center!important;transform:none!important;transition:none!important}
.ency-wiki-card:hover .ency-wiki-image img{transform:none!important}
.ency-wiki-card-caption{min-height:85px;gap:5px}
.ency-wiki-date{font-size:10px!important;line-height:1.4;color:#d3bab7!important}
.ency-wiki-sortrow{display:flex;justify-content:flex-end;align-items:center}
.ency-wiki-sortlabel{display:flex;align-items:center;gap:11px;font-size:10px;letter-spacing:1px;color:#d28277;font-weight:800}
.ency-wiki-sort{color:#f2e3e1;border:1px solid #784842;background:#241a18;font-size:12px;font-weight:700;padding:10px 13px;max-width:100%;min-height:40px}
.ency-wiki-sort:focus{outline:2px solid var(--acid);outline-offset:2px}
.ency-wiki-character-date{display:inline-block;margin-top:16px;padding:7px 12px;font-size:12px;color:#eac8c4;border:1px solid #7d4b45;background:#291e1d}
.ency-wiki-hero{min-height:270px}
.ency-wiki-hero img{object-fit:contain!important;object-position:center!important}
.ency-wiki-model-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:19px}
.ency-wiki-model-card{min-width:0;display:flex;flex-direction:column;gap:10px;background:#251c1b;border:1px solid #5d4744;padding:10px;transition:border-color .15s}
.ency-wiki-model-card:hover{border-color:var(--acid)}
.ency-wiki-model-card img{width:100%;height:165px;object-fit:contain;background:#171110}
.ency-wiki-model-card span{color:#d9c3c0;font-size:11px;line-height:1.5}
[data-page="guide-weapons"] .ency-wiki-image{aspect-ratio:256/196}
[data-page="guide-weapons"] .ency-wiki-image img{object-fit:contain!important;padding:8px!important}
@media(max-width:1050px){.ency-wiki-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ency-wiki-model-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:800px){.ency-wiki-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:630px){.ency-wiki-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ency-wiki-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ency-wiki-card-caption{min-height:90px}}
@media(max-width:375px){.ency-wiki-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Weapon icon presentation: standalone 2D inventory art, no hands in catalog */
[data-page="guide-weapons"] .ency-wiki-image{
  aspect-ratio:235/115;background:linear-gradient(150deg,#221b1a,#140f0f);border-bottom:1px solid #4d3a37
}
[data-page="guide-weapons"] .ency-wiki-image img{
  object-fit:contain!important;object-position:center center!important;padding:5px 6px!important
}
[data-page="guide-weapons"] .ency-wiki-hero{
  height:230px;min-height:230px;max-height:230px;
  background:linear-gradient(145deg,#1c1615,#1a1514);border:2px solid #5a3c38;padding:20px
}
[data-page="guide-weapons"] .ency-wiki-hero img{
  display:block;width:100%;height:100%;max-height:100%;object-fit:contain!important
}
/* Strict six-column catalog desktop and compact tablet */
@media(min-width:760px){.ency-wiki-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(min-width:631px) and (max-width:759px){.ency-wiki-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* CSO human gender selector and transparent icon staging */
.ency-wiki-gender-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:2px 0 4px}
.ency-wiki-gender-tab{cursor:pointer;border:1px solid #5a4442;background:#211817;color:#d3857b;padding:11px 18px;font:800 11px Manrope,Arial,sans-serif;letter-spacing:.4px;transition:background .18s,color .18s}
.ency-wiki-gender-tab:hover,.ency-wiki-gender-tab.selected{background:#e47365;color:#1c1413;border-color:#e47365}
.ency-wiki-gender-tab:focus-visible{outline:2px solid #e67d6f;outline-offset:3px}
.ency-wiki-character-gender{font-weight:800;font-size:11px;letter-spacing:.4px;color:#d4887e;margin-top:14px}
.ency-wiki-card{background:#1d1716}
.ency-wiki-image,.ency-wiki-hero,[data-page="guide-weapons"] .ency-wiki-image,[data-page="guide-weapons"] .ency-wiki-hero{background:transparent!important}
.ency-wiki-image img,[data-page="guide-weapons"] .ency-wiki-image img{object-position:center center!important;object-fit:contain!important}
.ency-wiki-hero img{object-position:center center!important;object-fit:contain!important}
.ency-wiki-placeholder{opacity:.6}

/* Zombie catalog: same full-width six-column layout as human catalog.
 * Keep the unique CSO portraits, but align card/image proportions and spacing. */
.ency-wiki-zombie-tabs{display:flex;flex-wrap:wrap;gap:10px;padding:5px 0 10px;border-bottom:1px solid #4e3b39}
.ency-wiki-zombie-tab{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;min-height:43px;padding:11px 18px;border:1px solid #644c49;background:#231a19;color:#d58980;font:800 12px Manrope,Arial,sans-serif;cursor:pointer;letter-spacing:.2px}
.ency-wiki-zombie-tab:hover,.ency-wiki-zombie-tab.selected{background:#e47365;border-color:#e47365;color:#1e1817}
.ency-wiki-zombie-tab:focus-visible{outline:2px solid #e7b8b1;outline-offset:3px}
[data-page="guide-zombies"] .ency-wiki-grid{
  width:100%;max-width:none;margin:0;
  display:grid;grid-template-columns:repeat(6,minmax(0,1fr));
  gap:13px;align-items:stretch
}
[data-page="guide-zombies"] .ency-wiki-card{
  display:flex;flex-direction:column;min-width:0;min-height:0;
  background:#1b1514;border:1px solid #594441;padding:0
}
[data-page="guide-zombies"] .ency-wiki-image{
  display:flex;justify-content:center;align-items:center;
  width:100%;height:auto;aspect-ratio:256/196;min-height:0;
  background:transparent!important;border:0;overflow:hidden
}
[data-page="guide-zombies"] .ency-wiki-image img{
  display:block;object-fit:contain!important;object-position:center!important;
  width:100%;height:100%;padding:0!important;transform:none!important
}
[data-page="guide-zombies"] .ency-wiki-card-caption{
  flex:1;min-height:85px;margin:0;padding:10px 10px 13px;
  gap:5px;justify-content:flex-start
}
[data-page="guide-zombies"] .ency-wiki-card-caption strong{font-size:15px;line-height:1.2}
[data-page="guide-zombies"] .ency-wiki-card-caption small{font-size:9px;line-height:1.35}
[data-page="guide-zombies"] .ency-wiki-date{margin-top:auto;color:#d6bebb!important;white-space:normal}
@media (max-width:759px) and (min-width:631px){
 [data-page="guide-zombies"] .ency-wiki-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media (max-width:630px){
 [data-page="guide-zombies"] .ency-wiki-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
 [data-page="guide-zombies"] .ency-wiki-card-caption{padding:9px;min-height:90px}
}
@media (max-width:375px){
 [data-page="guide-zombies"] .ency-wiki-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 [data-page="guide-zombies"] .ency-wiki-zombie-tab{flex:1;padding:10px 8px}
}

/* CSO original: use the class-matched 256x196 photographic portrait; never a
 * generic translucent zombie cutout. Bosses retain their verified own imagery. */
[data-page="guide-zombies"] .ency-wiki-image.ency-zombie-photo{
  aspect-ratio:256/196;
  background:#1e1918!important;
}
[data-page="guide-zombies"] .ency-wiki-image.ency-zombie-photo img{
  width:100%;height:100%;object-fit:cover!important;object-position:center!important;
}
[data-page="guide-zombies"] .ency-wiki-image.ency-zombie-narrow img{
  object-fit:cover!important;
}

/* ZvsP theme source 5: encyclopedia-enhancements.css */

/* Detail portraits: use the matching scenic portrait, never stretched alpha cutout. */
.ency-wiki-hero{position:relative;min-height:235px;max-height:none;align-self:start;aspect-ratio:256/196;cursor:zoom-in;background:#1e1716!important;overflow:hidden;border:1px solid #7e4c46}
.ency-wiki-hero img{display:block;max-height:none!important;width:100%;height:100%;object-fit:cover!important;object-position:center!important}
.ency-zoom-hint{position:absolute;bottom:10px;right:10px;background:#161111e8;color:#edcac5;font:800 10px Manrope,Arial,sans-serif;padding:7px 10px;letter-spacing:.7px;border:1px solid #9c5e56;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity .18s,transform .18s}
.ency-wiki-hero:hover .ency-zoom-hint,.ency-wiki-hero:focus-visible .ency-zoom-hint{opacity:1;transform:none}
.ency-wiki-hero:focus-visible{outline:2px solid var(--acid);outline-offset:3px}
.ency-wiki-gallery-item,.ency-wiki-model-card{cursor:zoom-in;font-family:inherit;color:inherit;text-align:inherit}
.ency-wiki-gallery-item:focus-visible,.ency-wiki-model-card:focus-visible{outline:2px solid var(--acid);outline-offset:2px}
.ency-wiki-model-card{appearance:none}
/* Distinct ability icon, name and descriptive text for each sourced skill. */
.ency-wiki-ability{display:flex;gap:14px;align-items:flex-start;padding:18px}
.ency-skill-symbol{flex:0 0 48px;width:48px;height:48px;display:grid;place-items:center;border:1px solid #965b53;background:linear-gradient(140deg,#4e3b39,#241b1a);color:#e67d6f;font:700 27px/1 Oswald,Arial,sans-serif;border-radius:8px;text-shadow:0 0 15px #e4736533}
.ency-skill-text{min-width:0;flex:1}
.ency-skill-unknown{display:flex;gap:16px;align-items:center;border:1px dashed #674e4a;background:#231917;padding:16px}
.ency-skill-unknown p{color:#d58980;font-size:12px;line-height:1.75}
.ency-wiki-ability strong{font-size:13px;margin:0 0 6px}
.ency-wiki-ability p{font-size:12px}
/* The overlay is global, so it works on all encyclopedia detail pages. */
body.zvp-lightbox-open{overflow:hidden}
.zvp-lightbox[hidden]{display:none!important}
.zvp-lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:12px;background:rgba(2,8,12,.94);padding:60px 55px 38px;opacity:0;transition:opacity .24s ease;backdrop-filter:blur(12px)}
.zvp-lightbox.visible{opacity:1}
.zvp-lightbox-stage{max-width:calc(100vw - 160px);max-height:calc(100vh - 110px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-width:0}
.zvp-lightbox-stage img{display:block;object-fit:contain;max-width:100%;max-height:calc(100vh - 165px);width:auto;height:auto;border:1px solid #463532;box-shadow:0 16px 90px #0008;animation:zvpZoomIn .22s ease-out}
.zvp-lightbox-title{color:#e6d9d7;font-size:12px;line-height:1.5;text-align:center}
.zvp-lightbox button{background:#291f1e;border:1px solid #774842;color:#ecdcda;cursor:pointer;border-radius:6px;font-size:32px;line-height:1;height:54px;width:54px;display:grid;place-items:center;flex-shrink:0}
.zvp-lightbox button:hover,.zvp-lightbox button:focus-visible{color:#e07567;border-color:#e47365;outline:none}
.zvp-lightbox-close{position:absolute;top:16px;right:20px}
.zvp-lightbox-count{position:absolute;bottom:16px;right:22px;font-size:11px;color:#d2b9b5}
@keyframes zvpZoomIn{from{opacity:.65;transform:scale(.93)}to{opacity:1;transform:scale(1)}}
@media(max-width:700px){
 .ency-wiki-profile{gap:16px}
 .ency-wiki-hero{min-height:0;max-height:none}
 .zvp-lightbox{padding:65px 10px 58px;gap:3px}
 .zvp-lightbox-stage{max-width:calc(100vw - 84px)}
 .zvp-lightbox-stage img{max-height:calc(100vh - 185px)}
 .zvp-lightbox button{width:34px;height:44px;font-size:28px}
 .zvp-lightbox-close{right:12px;top:10px}
}
@media(prefers-reduced-motion:reduce){.zvp-lightbox,.zvp-lightbox-stage img,.ency-zoom-hint{transition:none!important;animation:none!important}}

/* ZvsP theme source 6: armory.css */

/* Project ZvsP loadout editor; all selections are previews until server economy is linked. */
.armory-config{margin-top:65px;border:1px solid #58423f;background:linear-gradient(145deg,#251c1b,#181211);padding:20px}
.armory-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 18px}
.armory-heading h2{font-size:clamp(30px,4vw,44px);margin:9px 0}
.armory-heading h2 em{font-style:normal;color:var(--acid)}
.armory-heading p{font-size:12px;color:#d28177;line-height:1.7}
.armory-preview-badge{font-size:9px;color:#eed3a5;border:1px solid #784842;padding:9px 10px;white-space:nowrap;font-weight:800}
.armory-warning{background:#352819;border:1px solid #8a7444;padding:11px 15px;color:#edcb96;font-size:11px;line-height:1.65;margin-bottom:18px}
.armory-layout{display:grid;grid-template-columns:minmax(160px, .91fr) minmax(260px,1.8fr) minmax(160px,.91fr);align-items:stretch;gap:14px;min-height:690px}
.armory-slots{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px}
.armory-slot{font:inherit;text-align:left;display:flex;flex-direction:column;min-width:0;align-items:flex-start;position:relative;border:1px solid #744640;border-radius:6px;padding:13px;background:linear-gradient(145deg,#302422,#281d1c);color:#e7dad8;cursor:pointer;gap:7px;transition:border-color .18s,transform .18s}
.armory-slot:hover,.armory-slot:focus-visible{border-color:var(--acid);transform:translateY(-2px);outline:0}
.armory-slot img{width:100%;height:76px;object-fit:contain;margin:auto auto 2px;filter:drop-shadow(0 2px 8px #07050550)}
.armory-slot-type{font-size:10px;color:#d58a80;font-weight:800;letter-spacing:.3px}
.armory-slot-name{color:#f3eceb;font-weight:900;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.armory-slot-action{color:#e6c48e;font-size:10px;font-weight:800;margin-top:auto}
.armory-slot-placeholder{font-size:37px;color:#a7675e;margin:auto}
.armory-stage{position:relative;min-height:690px;border:1px solid #503d3a;background:radial-gradient(ellipse at center 48%,#4d3a37,#261c1b 55%,#140e0d 100%);display:flex;flex-direction:column;align-items:center;overflow:hidden}
.armory-stage:before{content:"";position:absolute;bottom:114px;left:13%;right:13%;height:20px;border-radius:50%;background:radial-gradient(ellipse,#0805059e,transparent)}
.armory-stage canvas{position:relative;width:100%;height:570px;touch-action:none;display:block}
.armory-character-name{position:absolute;z-index:2;top:12px;left:15px;right:15px;display:flex;align-items:center;gap:8px}
.armory-character-name span{border:1px solid #8e564e;background:#31211f;color:#dfbbb6;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:800}
.armory-character-name strong{font-size:15px;color:#f6eeed}
.armory-character-name small{margin-left:auto;font-size:8px;color:#d18176}
.armory-stage-controls{display:flex;gap:8px;z-index:2;position:relative;margin-top:auto;padding-top:4px}
.armory-stage-controls button{border:1px solid #674e4b;background:#281e1d;color:#e2d2d0;padding:9px 12px;border-radius:4px;font-size:11px;cursor:pointer}
.armory-stage-controls button:hover{border-color:var(--acid)}
.armory-drag-hint,.armory-clarification{text-align:center;color:#d07e73;font-size:9px;padding:7px 20px 0}
.armory-clarification{padding-bottom:11px;color:#cf7a6f;font-size:9px;max-width:540px}
.armory-canvas-fallback{position:absolute;z-index:3;top:48%;padding:15px;text-align:center;background:#261d1cf0;color:#d9c4c1;font-size:12px}
.armory-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px}
.armory-footer [role=status]{flex:1;color:#d4897f;font-size:11px;min-width:220px}
.armory-footer button{cursor:pointer}
.armory-overlay[hidden]{display:none!important}
.armory-overlay{position:fixed;inset:0;background:#070404e9;z-index:900;display:grid;place-items:center;padding:20px;backdrop-filter:blur(9px)}
.armory-picker-window{width:min(760px,100%);max-height:min(86vh,920px);border:1px solid #8b544c;background:#1f1615;padding:22px;display:flex;flex-direction:column;min-height:280px}
.armory-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.armory-picker-header h3{font-size:30px;margin-top:4px}
.armory-picker-header button{border:1px solid #824e47;background:#2a2221;color:#eee3e2;font-size:28px;width:43px;height:43px;cursor:pointer}
.armory-picker-search{border:1px solid #734640;background:#1a1312;padding:10px;display:flex;gap:9px;align-items:center;margin-bottom:16px}
.armory-picker-search span{color:var(--acid);font-size:20px}
.armory-picker-search input{min-width:0;flex:1;color:#f4eeee;font-size:13px;background:transparent;outline:none;border:none}
.armory-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;min-height:0;overflow:auto;padding-right:4px}
.armory-picker-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;min-height:143px;padding:10px;background:#281e1d;border:1px solid #5c4643;color:#f1e9e8;cursor:pointer;text-align:center}
.armory-picker-item:hover,.armory-picker-item.selected{border-color:var(--acid);background:#3a2c2a}
.armory-picker-item img{height:85px;width:100%;object-fit:contain}
.armory-picker-item span{font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.armory-picker-hint{margin-top:15px;font-size:10px;color:#d17e74}
@media(max-width:1000px){.armory-layout{grid-template-columns:minmax(145px,.93fr) minmax(230px,1.5fr) minmax(145px,.93fr)}.armory-config{padding:14px}.armory-slot{padding:10px}}
@media(max-width:800px){.armory-layout{grid-template-columns:1fr 1fr;grid-template-areas:"stage stage" "left right"}.armory-left{grid-area:left}.armory-right{grid-area:right}.armory-stage{grid-area:stage;min-height:570px}.armory-stage canvas{height:470px}.armory-slots{grid-template-rows:repeat(4,165px)}.armory-slot img{height:65px}}
@media(max-width:520px){.armory-heading{flex-direction:column;align-items:flex-start}.armory-layout{gap:9px}.armory-stage{min-height:530px}.armory-stage canvas{height:440px}.armory-character-name{flex-wrap:wrap}.armory-character-name small{flex-basis:100%;margin-left:0}.armory-slots{grid-template-rows:repeat(4,150px);gap:8px}.armory-slot{padding:9px}.armory-slot img{height:54px}.armory-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.armory-footer button{flex:1}.armory-footer [role=status]{flex-basis:100%}}

.armory-right{grid-template-rows:repeat(5,minmax(0,1fr))}
@media(max-width:800px){.armory-right{grid-template-rows:repeat(5,165px)}}
@media(max-width:520px){.armory-right{grid-template-rows:repeat(5,150px)}}


/* CSO actions and inventory/game model switch must fit the same 3D preview on phones. */
.armory-stage-controls{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:6px;max-width:100%;padding:6px 9px 0;
}
.armory-stage-controls button{flex:0 1 auto;font-size:10px;padding:8px 9px;min-height:33px}
#armory-mode{color:#e9c5c1;border-color:#a26259;background:#342725}
@media (max-width:520px){
 .armory-stage-controls{gap:5px;padding:6px 7px 0}
 .armory-stage-controls button{font-size:9px;padding:6px 7px}
 .armory-stage{min-height:600px}
}


/* Compact single-screen armory: no introductory weapon cards, manual 3D camera.
   On desktop all 9 slot selectors + 3D view + save sit inside the viewport.
   On mobile allow scrolling where physically necessary; never hide actions. */
.armory-page-inner{
  width:100%;max-width:1590px;margin-inline:auto;
  padding:12px clamp(12px,1.5vw,26px) 14px;
  display:flex;flex-direction:column;min-height:0;
}
.armory-page .armory-config{
  width:100%;max-width:none;min-width:0;margin:0;
  padding:12px 14px 11px;gap:9px;
  display:flex;flex-direction:column;min-height:0;
}
.armory-page .armory-heading{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin:0;min-height:39px;
}
.armory-page .armory-heading h1{
  font-size:clamp(22px,2.15vw,30px);letter-spacing:.7px;line-height:1.08;
}
.armory-page .armory-heading h1 em{color:var(--acid);font-style:normal}
.armory-page .armory-heading p{
  font-size:10px;line-height:1.4;margin-top:3px;color:#d3877c;
}
.armory-page .armory-preview-badge{
  flex:0 0 auto;padding:6px 10px;font-size:9px;letter-spacing:.2px;
}
.armory-page .armory-warning{
  flex:0 0 auto;margin:0;padding:7px 10px;
  line-height:1.45;font-size:10px;
}
.armory-page .armory-layout{
  flex:1 1 auto;min-height:0;min-width:0;height:auto;
  display:grid;grid-template-columns:minmax(205px,.92fr) minmax(350px,2.35fr) minmax(205px,.92fr);
  gap:10px;align-items:stretch;
}
.armory-page .armory-slots{display:grid;min-height:0;gap:8px}
.armory-page .armory-left{grid-template-rows:repeat(4,minmax(0,1fr))}
.armory-page .armory-right{grid-template-rows:repeat(5,minmax(0,1fr))}
.armory-page .armory-slot{
  display:grid;
  grid-template-columns:minmax(43px,62px) minmax(0,1fr);
  grid-template-rows:min-content minmax(0,1fr) min-content;
  column-gap:9px;row-gap:2px;
  padding:8px 10px;min-height:0;min-width:0;
  align-items:center;border-radius:5px;
  background:linear-gradient(135deg,#2f2422,#241a19);
}
.armory-page .armory-slot:hover,.armory-page .armory-slot:focus-visible{
  transform:none;border-color:var(--acid);
  box-shadow:inset 0 0 0 1px #d17d7244;
}
.armory-page .armory-slot-type{
  grid-column:2;grid-row:1;align-self:center;
  font-size:9px;line-height:1.25;letter-spacing:.45px;min-width:0;
}
.armory-page .armory-slot img{
  grid-column:1;grid-row:1 / span 3;
  display:block;width:100%;max-width:62px;height:min(7.2vh,57px);
  min-height:24px;margin:0;object-fit:contain;
}
.armory-page .armory-slot img[hidden]{display:none}
.armory-page .armory-slot-name{
  grid-column:2;grid-row:2;align-self:center;
  font-size:11px;line-height:1.2;
  max-height:2.4em;overflow:hidden;
}
.armory-page .armory-slot-action{
  grid-column:2;grid-row:3;align-self:end;
  margin:0;font-size:9px;line-height:1.2;
}
.armory-page .armory-slot-placeholder{
  grid-column:1;grid-row:1 / span 3;
  justify-self:center;align-self:center;
  margin:0;font-size:30px;line-height:1;
}
.armory-page .armory-stage{
  height:100%;min-height:0;max-height:none;min-width:0;
  border:1px solid #5a4442;
  background:radial-gradient(ellipse at 50% 48%,#513d3b,#2b201e 58%,#140e0d 100%);
  display:flex;flex-direction:column;
  padding:0 6px 8px;
}
.armory-page .armory-stage:before{bottom:72px}
.armory-page .armory-stage canvas{
  flex:1 1 auto;min-height:0;width:100%;height:0;
  object-fit:contain;
}
.armory-page .armory-character-name{
  top:8px;left:10px;right:10px;pointer-events:none;gap:6px;
}
.armory-page .armory-character-name strong{font-size:13px}
.armory-page .armory-character-name small{font-size:8px}
.armory-page .armory-stage-controls{
  margin:0;gap:5px;padding:3px 0 0;flex:0 0 auto;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
}
.armory-page .armory-stage-controls button{
  min-height:28px;height:28px;font-size:9px;
  border-radius:4px;padding:5px 7px;white-space:nowrap;
}
.armory-page .armory-drag-hint{
  flex:0 0 auto;font-size:9px;line-height:1.3;padding:4px 4px 0;
}
.armory-page .armory-clarification{
  flex:0 0 auto;font-size:9px;line-height:1.3;
  max-width:100%;padding:3px 10px 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.armory-page .armory-footer{
  display:flex;flex-wrap:nowrap;align-items:center;gap:8px;
  margin:0;padding:0;min-height:36px;flex:0 0 auto;
}
.armory-page .armory-footer [role=status]{
  flex:1 1 auto;min-width:0;color:#d58a80;font-size:10px;
  line-height:1.3;max-height:2.7em;overflow:hidden;
}
.armory-page .armory-footer button{
  min-height:35px;font-size:10px;letter-spacing:.2px;
  padding:7px 11px;white-space:nowrap;
}
.armory-page .armory-picker-window{
  max-height:calc(100dvh - 40px);
}
@media (min-width:901px) and (min-height:670px){
  body.armory-focus{height:100dvh;overflow:hidden}
  body.armory-focus .footer{display:none}
  #weapons.armory-page.active{height:calc(100dvh - 84px);overflow:hidden}
  #weapons.armory-page.active .armory-page-inner{height:100%}
  #weapons.armory-page.active .armory-config{flex:1 1 auto}
}
@media (min-width:901px) and (max-height:800px){
 .armory-page-inner{padding-top:7px;padding-bottom:7px}
 .armory-page .armory-config{padding:8px 10px;gap:6px}
 .armory-page .armory-heading{min-height:32px}
 .armory-page .armory-heading h1{font-size:23px}
 .armory-page .armory-heading p{font-size:9px}
 .armory-page .armory-warning{font-size:9px;padding:5px 8px}
 .armory-page .armory-slot{padding:6px 8px;column-gap:7px;grid-template-columns:52px minmax(0,1fr)}
 .armory-page .armory-slot img{height:min(6.3vh,45px)}
 .armory-page .armory-slot-name{font-size:10px}
 .armory-page .armory-slot-type{font-size:8px}
 .armory-page .armory-slot-action{font-size:8px}
 .armory-page .armory-drag-hint{font-size:8px;padding-top:3px}
 .armory-page .armory-clarification{font-size:8px;padding-top:2px}
}
@media (max-width:900px),(max-height:669px){
  body.armory-focus{height:auto;overflow:auto}
  body.armory-focus .footer{display:block}
  #weapons.armory-page.active{height:auto;overflow:visible}
  .armory-page-inner{padding:13px 12px 18px;min-height:auto}
  .armory-page .armory-config{min-height:0}
  .armory-page .armory-layout{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:auto;grid-auto-rows:minmax(82px,auto);gap:7px;
  }
  .armory-page .armory-slots{display:contents}
  .armory-page .armory-stage{
    grid-column:1 / -1;grid-row:1;
    height:clamp(315px,47vh,475px);min-height:0;max-height:none;
  }
  .armory-page .armory-stage canvas{min-height:0;height:0;flex:1}
  .armory-page .armory-slot{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:8px 5px;text-align:center;min-height:85px;
  }
  .armory-page .armory-slot img{width:100%;height:36px;min-height:0;max-width:80px;margin:0}
  .armory-page .armory-slot-type{font-size:8px;line-height:1.1}
  .armory-page .armory-slot-name{font-size:10px;line-height:1.2;max-height:2.4em}
  .armory-page .armory-slot-action{font-size:8px;margin-top:auto}
  .armory-page .armory-slot-placeholder{font-size:23px;margin:0}
  .armory-page .armory-footer{flex-wrap:wrap}
  .armory-page .armory-footer [role=status]{flex:1 1 100%;max-height:none}
}
@media (max-width:560px){
  .armory-page .armory-heading{align-items:flex-start;gap:7px;flex-wrap:wrap}
  .armory-page .armory-heading h1{font-size:24px}
  .armory-page .armory-heading p{font-size:10px}
  .armory-page .armory-preview-badge{font-size:8px;padding:5px 7px}
  .armory-page .armory-warning{font-size:9px;padding:8px}
  .armory-page .armory-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .armory-page .armory-stage{height:350px}
  .armory-page .armory-slot{padding:6px 4px;min-height:81px}
  .armory-page .armory-slot-type{font-size:7px;letter-spacing:0}
  .armory-page .armory-slot-name{font-size:9px}
  .armory-page .armory-stage-controls button{font-size:8px;padding:5px 6px}
  .armory-page .armory-footer button{flex:1 1 auto}
}

/* Large catalog picker: native/verified model and character gender filters. */
.armory-picker-filterbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin:0 0 10px}
.armory-picker-filters{display:flex;flex-wrap:wrap;gap:5px}
.armory-picker-filter{border:1px solid #614a47;background:#261c1a;color:#d2b9b5;padding:6px 9px;cursor:pointer;font-weight:800;font:800 10px Manrope,Arial,sans-serif}
.armory-picker-filter.selected,.armory-picker-filter:hover,.armory-picker-filter:focus-visible{background:#e47365;color:#191514;border-color:#e47365}
#armory-picker-count{font-size:10px;color:#d07d72}
.armory-picker-3d{display:block;color:#e47365;font-size:9px;font-weight:800}
.armory-picker-unmapped{display:block;font-size:9px;color:#ce786c}
.armory-picker-more{display:block;margin:12px auto 0;padding:8px 18px;cursor:pointer;border:1px solid #cf7b70;background:#2c2322;color:#e1bdb9;font-size:11px;font-weight:800}
.armory-picker-more[hidden]{display:none}
.armory-picker-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.armory-picker-item{min-height:120px}
.armory-picker-item img{height:64px}
.armory-picker-item span{font-size:10px}
@media(max-width:650px){.armory-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:420px){.armory-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.armory-picker-filter{font-size:9px;padding:5px 6px}}

.armory-page .armory-slot.armory-previewing{border-color:#cf7a6f;background:linear-gradient(130deg,#392b2a,#271c1b)}
.armory-page .armory-slot.armory-previewing .armory-slot-action{color:#e47365}

/* 2026 CSO inventory classifications; independent gender and weapon type controls */
.armory-picker-filters{display:flex;flex-wrap:wrap;gap:5px;width:100%}
.armory-picker-category-list{
  flex-basis:100%;display:flex;flex-wrap:wrap;gap:5px;
  border-top:1px solid #4f3c3a;padding-top:8px;margin-top:4px
}
.armory-picker-category{
  border:1px solid #614a47;background:#271c1b;color:#d6bfbc;
  cursor:pointer;padding:7px 9px;font-size:10px;font-weight:800;line-height:1.2
}
.armory-picker-category.selected{border-color:#e47365;background:#dc7467;color:#1d1716}
.armory-picker-category:not(.selected):hover{border-color:#cf7b70}
.armory-picker-type{display:block;color:#d07c71;font-size:9px}
@media(max-width:560px){
 .armory-picker-category{font-size:9px;padding:6px}
 .armory-picker-filterbar{max-height:170px;overflow-y:auto}
}

.armory-stage-controls #armory-camera-mode{
  border-color:#915750;background:#312524;color:#e7d0cd
}
.armory-stage-controls #armory-camera-mode[aria-pressed="true"]{
  border-color:#e47365;color:#e5b3ac
}

/* Browser QA 2026-11-02: reset was white-on-white due to default button background. */
.armory-page #armory-reset-loadout{
 background:#2a2221;
 color:#f1e6e5;
 border:1px solid #a6655c;
 text-shadow:none;
}
.armory-page #armory-reset-loadout:hover,.armory-page #armory-reset-loadout:focus-visible{
 background:#41312f;border-color:#e47365;color:#ffffff
}
.armory-page #armory-canvas{
 touch-action:none;
 cursor:grab;
}
.armory-page #armory-canvas:active{cursor:grabbing}
.armory-page .armory-footer button{border-radius:4px}
@media(max-width:650px){
 .armory-page .armory-stage-controls button{min-height:32px}
 .armory-page .armory-slot-name{overflow-wrap:anywhere}
}

/* Native model load state; no placeholder mannequin/weapon visible in the oval. */
.armory-page .armory-load-state{
 position:absolute;z-index:3;top:44%;left:10%;right:10%;
 text-align:center;font-weight:850;letter-spacing:.3px;
 font-size:clamp(14px,1.4vw,19px);color:#f0ddda;
 text-shadow:0 2px 16px #000b;
 pointer-events:none;
}
.armory-page .armory-load-state[hidden]{display:none!important}

/* ZvsP theme source 7: nightfall.css */
/* PROJECT ZvsP / NIGHTFALL 2026
   Original zombie-survival redesign using existing Taiwan references.
   No remote reference CSS, images or code is copied. */
:root{--bg:#0c0909;--bg2:#191413;--panel:#191414;--line:#392b2a;--text:#f8f2f1;--muted:#d28277;--acid:#e47667;--nf-purple:#e37162;--nf-purple-deep:#9f483c;--nf-glow:#e36d5e;--nf-orange:#efa358}
html{scroll-padding-top:92px}
.nf-body{background:#0e0a09;color:#f8f2f1;position:relative}
.nf-body:before{background:radial-gradient(ellipse at 80% 4%,#623a3430,transparent 34%),radial-gradient(ellipse at 0% 55%,#37292734,transparent 40%);opacity:1;z-index:-1}
.nf-body .header{height:76px;background:#0b0808df;border-bottom:1px solid #543d3a52;box-shadow:0 6px 30px #0006}
.nf-body .wrap{max-width:1280px;padding-left:32px;padding-right:32px}
.nf-header .header-inner{height:100%;gap:20px}
.nf-body .nf-brand{min-width:220px;gap:11px}
.nf-body .nf-brand-icon{width:46px;min-width:46px;height:46px;border:1px solid #e371624f;border-radius:12px;transform:none;background:linear-gradient(135deg,#49312e,#1d1413);color:#e7b8b2;font:28px/44px Arial;text-shadow:0 0 16px #e26a5a;box-shadow:inset 0 0 0 1px #ce776c19,0 0 24px #e2695a15}
.nf-body .brand-label strong{font-size:20px;font-weight:700;letter-spacing:.8px}.nf-body .brand-label strong span{color:#e67e70}
.nf-body .brand-label small{font-size:7.2px;letter-spacing:1.05px;color:#ae746d;line-height:1.8}
.nf-body .menu{gap:clamp(8px,1.25vw,21px);justify-content:flex-end}
.nf-body .menu>a{font-size:10px;font-weight:800;letter-spacing:.25px;color:#d4897f;transition:color .2s}
.nf-body .menu>a:hover,.nf-body .menu>a.active{color:#edc9c4}
.nf-body .menu .account-link{background:#261c1b;border:1px solid #89534c;border-radius:9px;padding:10px 12px;color:#f4e0de}
.nf-header-play{min-width:112px;padding:12px 15px;display:flex;justify-content:center;align-items:center;gap:16px;border-radius:9px;background:linear-gradient(110deg,#bc4f40,#e26959);box-shadow:0 7px 22px #ba52442e;color:#fff;font-weight:900;font-size:10px;letter-spacing:.9px;white-space:nowrap;transition:transform .2s}
.nf-header-play:hover{transform:translateY(-2px);background:#e36e5e}
.nf-body .hamburger{border:1px solid #7e4c46;border-radius:9px;color:#eecdc8}
.nf-body .button{border-radius:9px;font-weight:900;font-size:10px;letter-spacing:.9px;min-height:49px;transition:transform .2s,box-shadow .2s,background .2s;white-space:normal}
.nf-body .button.primary{background:linear-gradient(105deg,#bc4a3b,#e26d5d);color:#fff;border:1px solid #e67d6f66;box-shadow:0 12px 26px #ad493c2b}
.nf-body .button.primary:hover{background:linear-gradient(105deg,#e16858,#e57769);box-shadow:0 15px 35px #e1675747}
.nf-body .button.outline{border:1px solid #855049;color:#f7e7e4;background:#1b1514}
.nf-body .button.outline:hover{background:#342726}
.nf-body .eyebrow,.nf-body .overline{color:#e57869}
.nf-body .page-title h1 em,.nf-body .section-heading h2 em,.nf-body .hero h1 em{color:#e57a6c}
.nf-body .page{min-height:60vh}
.nf-home{overflow:hidden}
.nf-hero{min-height:555px;position:relative;background:linear-gradient(112deg,#0e0a09 0%,#110c0c 39%,#271a18 75%,#0f0a0a 100%);border-bottom:1px solid #533b384f;isolation:isolate;overflow:hidden}
.nf-hero-grid{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.16;background-image:linear-gradient(90deg,#e2b2ac29 1px,transparent 1px),linear-gradient(#e2b2ac29 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(90deg,transparent,black)}
.nf-hero-glow{pointer-events:none;position:absolute;z-index:0;width:900px;height:670px;right:-130px;top:-95px;background:radial-gradient(ellipse,#c45d5044,transparent 59%);filter:blur(5px)}
.nf-hero:after{content:"";position:absolute;pointer-events:none;z-index:0;bottom:0;left:0;right:0;height:110px;background:linear-gradient(transparent,#0e0a09)}
.nf-hero-content{position:relative;z-index:1;min-height:543px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:20px;padding-top:34px;padding-bottom:42px}
.nf-hero-copy{position:relative;z-index:5;padding-top:28px;padding-bottom:44px}
.nf-hero-kicker{display:flex;align-items:center;gap:11px;color:#debab6;font-size:10px;font-weight:900;letter-spacing:2.3px}
.nf-status-pulse,.nf-online-dot{display:inline-block;flex:none;width:8px;height:8px;border-radius:50%;background:#d58479;box-shadow:0 0 0 5px #d2766915,0 0 17px #e17466a6}
.nf-hero-kicker .nf-sep{color:#925851}
.nf-hero h1{font:700 clamp(57px,6.7vw,95px)/1 Oswald,Impact,sans-serif;letter-spacing:-.7px;margin:22px 0 20px;text-shadow:0 9px 35px #000a;max-width:750px;white-space:nowrap}
.nf-hero h1 span{color:#e57a6b}
.nf-hero-copy>p{max-width:475px;color:#d2b9b6;font-size:14px;line-height:1.9}
.nf-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:11px;margin-top:27px}
.nf-hero-actions .button{min-height:52px;padding:13px 21px}
.nf-hero-actions .nf-play{min-width:188px;justify-content:space-between}
.nf-hero-facts{display:flex;flex-wrap:wrap;gap:22px;margin-top:48px}
.nf-hero-facts span{display:flex;align-items:center;gap:6px;font-size:9px;text-transform:uppercase;letter-spacing:.4px;font-weight:800;color:#cf7b70}
.nf-hero-facts b{color:#faf2f1;font-size:12px}
.nf-hero-visual{height:510px;position:relative;align-self:stretch;isolation:isolate}
.nf-hero-visual:before{content:"";position:absolute;inset:28px -70px -30px 0;border-radius:50%;background:radial-gradient(circle at 57% 48%,#b5564a75,transparent 59%);filter:blur(40px)}
.nf-hero-ring{position:absolute;border-radius:50%;left:57%;top:47%;transform:translate(-50%,-50%);border:1px solid #e4736445;box-shadow:0 0 50px #c64f3f17}
.nf-hero-ring.one{width:385px;height:385px}
.nf-hero-ring.two{width:500px;height:500px;border-style:dashed;border-color:#a7675f2e}
.nf-hero-hazard{position:absolute;left:55%;top:49%;font:360px/1 Arial,sans-serif;color:#b24b3d26;transform:translate(-50%,-50%) rotate(-14deg);text-shadow:0 0 90px #e26b5b52}
.nf-hero-character{position:absolute;border-radius:18px;overflow:hidden;box-shadow:0 27px 66px #0008;border:1px solid #dd82764f;background:radial-gradient(ellipse at center,#5f4440,#181211 84%)}
.nf-hero-character img{width:100%;height:100%;object-fit:cover;display:block;filter:contrast(1.12) saturate(.88)}
.nf-hero-character-left{width:280px;height:345px;top:88px;left:0;transform:rotate(-9deg);opacity:.81;z-index:1}
.nf-hero-character-right{width:350px;height:395px;top:62px;right:5px;transform:rotate(5deg);z-index:2;box-shadow:0 0 70px #be514348,0 34px 78px #000a}
.nf-hero-character-left:after,.nf-hero-character-right:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 58%,#1b121199)}
.nf-hero-hud-top,.nf-hero-hud-bottom{position:absolute;z-index:4;font:700 9px/1.4 Manrope,Arial,sans-serif;letter-spacing:2.1px;color:#eed0cc;text-shadow:0 2px 8px #000}
.nf-hero-hud-top{right:14px;top:30px}.nf-hero-hud-bottom{left:25px;bottom:30px}
.nf-hero-hud-bottom i{display:inline-block;width:7px;height:7px;background:#e57a6b;border-radius:50%;vertical-align:middle;margin:0 10px}
.nf-hero-bottom{height:38px;position:absolute;bottom:0;left:0;right:0;z-index:5;border-top:1px solid #a6665d16;background:#0b0909b8}
.nf-hero-bottom .wrap{display:flex;align-items:center;justify-content:space-between;height:100%;font-size:9px;font-weight:900;color:#a4635b;letter-spacing:2.3px}
.nf-home-body{padding-top:44px;padding-bottom:82px}
.nf-section{margin:0 0 89px}
.nf-section-head{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:25px}
.nf-section-head h2{font:700 clamp(31px,3.4vw,49px)/1.12 Oswald,Impact,sans-serif;letter-spacing:.15px;margin-top:13px}
.nf-section-head h2 em,.nf-final-cta h2 em{font-style:normal;color:#e47668}
.nf-section-head p{color:#d18176;max-width:420px;font-size:12px;line-height:1.8}
.nf-section-kicker{color:#e5786a;font-size:10px;font-weight:900;letter-spacing:2.1px;text-transform:uppercase}
.nf-section-kicker i{width:6px;height:6px;background:#e5b3ac;border-radius:100%;display:inline-block;margin-right:7px;vertical-align:middle}
.nf-text-link{font-size:10px;color:#eac2bd;font-weight:900;letter-spacing:.7px;white-space:nowrap}
.nf-text-link span{margin-left:8px}
.nf-online-summary{display:flex;align-items:center;gap:11px;padding:0 0 17px;color:#cf796e;font-size:9px;font-weight:900;letter-spacing:1.5px}
.nf-online-summary strong{color:#f3dbd8;font-size:15px;margin-left:auto;letter-spacing:0}
.nf-online-summary .nf-online-dot{width:7px;height:7px}
.nf-body .server-grid{gap:14px}
.nf-body .server-card{border:1px solid #513d3a;background:linear-gradient(135deg,#1b1616,#151111 75%);border-radius:14px;padding:24px 26px;box-shadow:0 12px 35px #0003}
.nf-body .server-card:before{height:2px;background:linear-gradient(90deg,#b76156,#e57a6c);width:48%}
.nf-body .server-card h3{font-size:clamp(22px,2.3vw,31px);margin:16px 0 7px;color:#f7eeed}
.nf-body .server-index{color:#d07d72;font-size:9px}
.nf-body .server-status{color:#dbb0ab;border:1px solid #834f486b;background:#2f23225c;border-radius:6px;font-size:9px}
.nf-body .server-status.offline{color:#e8a9ab;border-color:#955a52}.nf-body .server-status.unknown{color:#d3877c;border-color:#8b544d}
.nf-body .server-map{color:#d17e74}.nf-body .server-map strong{color:#eadad8}
.nf-body .progress{border-radius:9px;background:#3d2e2c;height:5px}.nf-body .progress>span{background:linear-gradient(90deg,#a64e42,#e57a6c)}
.nf-body .population{margin:19px 0 10px;color:#cf7b70}
.nf-body .server-bottom{margin-top:20px}
.nf-body .server-ip{font:700 12px/1.4 Manrope,Arial,sans-serif;color:#efdad7}
.nf-body .copy-btn{color:#f0d4d0;border:1px solid #855049;border-radius:7px;padding:9px 11px;background:#2f2321}
.nf-body .copy-btn:hover{background:#44312e}
.nf-body .join{background:linear-gradient(120deg,#b94e40,#e37060);color:white;border-radius:8px;width:42px;height:40px}
.nf-updated{color:#a6665e!important;font-size:10px!important}
.nf-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}
.nf-feature{min-height:222px;position:relative;border:1px solid #3b2d2b;border-radius:13px;padding:21px 20px 24px;background:linear-gradient(145deg,#1b1616,#141010);transition:transform .2s,border .2s,box-shadow .2s}
.nf-feature:hover{transform:translateY(-5px);border-color:#d37568;box-shadow:0 15px 40px #9f4b4015}
.nf-feature-icon{display:grid;place-items:center;width:43px;height:43px;border-radius:12px;background:#382624;color:#e67d6f;font-size:24px;box-shadow:inset 0 0 0 1px #b86f6536}
.nf-feature-number{display:block;margin-top:16px;color:#ad726b;font-weight:900;font-size:8px;letter-spacing:1.5px}
.nf-feature h3{font-size:21px;margin-top:9px;letter-spacing:.2px}
.nf-feature p{font-size:11px;line-height:1.7;color:#d17f74;margin-top:8px}
.nf-feature-arrow{position:absolute;right:14px;top:18px;color:#ce786c}
.nf-universe-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nf-universe-card{height:310px;display:flex;flex-direction:column;position:relative;overflow:hidden;border:1px solid #5a4442;border-radius:15px;background:linear-gradient(120deg,#2c2221,#110e0d);transition:transform .2s,border .2s}
.nf-universe-card:hover{transform:translateY(-5px);border-color:#e37465}
.nf-universe-card.nf-humans{background:radial-gradient(ellipse at 65% 20%,#5c4340,#1b1615 73%)}
.nf-universe-card.nf-zombies{background:radial-gradient(ellipse at 65% 20%,#563b37,#1c1514 78%)}
.nf-universe-card.nf-weaponry{background:radial-gradient(ellipse at 65% 20%,#573e3b,#1c1717 74%)}
.nf-universe-tag{z-index:3;margin:18px 20px 0;font-size:8px;font-weight:900;letter-spacing:1.9px;color:#e3cfcd}
.nf-universe-img{position:absolute;top:28px;left:16px;right:16px;bottom:48px;display:flex;align-items:center;justify-content:center;opacity:.88}
.nf-universe-img img{width:100%;height:100%;object-fit:contain;filter:saturate(.92) contrast(1.1) drop-shadow(0 12px 23px #0009)}
.nf-universe-card.nf-weaponry .nf-universe-img img{height:auto;max-width:320px;filter:drop-shadow(0 15px 17px #0009)}
.nf-universe-info{position:relative;z-index:3;margin-top:auto;padding:18px 20px;background:linear-gradient(transparent,#100d0ced 23%);display:grid;grid-template-columns:1fr auto;align-items:end}
.nf-universe-info h3{font-size:29px}.nf-universe-info p{font-size:10px;color:#d4887e;margin-top:5px}.nf-universe-info>span{grid-column:2;grid-row:1/3;color:#e5b3ac;font-size:25px}
.nf-closed-label{border:1px solid #985b53;background:#2c2423;color:#ead0cd;padding:10px 13px;border-radius:8px;font-size:10px;font-weight:900;letter-spacing:.4px}
.nf-access-intro{color:#d3857a;font-size:12px;margin:-10px 0 23px}
.nf-tier-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.nf-tier{border-radius:15px;border:1px solid #4b3937;background:linear-gradient(153deg,#251e1d,#151111 75%);padding:25px 25px 22px;position:relative;overflow:hidden}
.nf-tier:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,#a26259,transparent)}
.nf-tier-vip{background:linear-gradient(153deg,#2c2220,#171211 75%);border-color:#664c48}
.nf-tier-vip:before{background:linear-gradient(90deg,#86443b,#e17364)}
.nf-tier-super{border-color:#804d46;background:linear-gradient(153deg,#2b2221,#181312 80%)}
.nf-tier-super:before{background:linear-gradient(90deg,#985c54,#daafaa)}
.nf-tier-level{font-size:9px;color:#cf7a6f;letter-spacing:1.6px;font-weight:900}
.nf-tier-medal{position:absolute;right:23px;top:22px;font-size:30px}
.nf-tier h3{font-size:39px;margin:28px 0 4px}
.nf-tier p{font-size:11px;color:#d17e74;min-height:37px}
.nf-tier-price{display:flex;align-items:baseline;gap:8px;margin:30px 0 20px}
.nf-tier-price strong{font:700 32px Oswald,Impact,sans-serif;color:#f6e4e1}
.nf-tier-price span{font-size:10px;color:#cf7b70}
.nf-tier-notice{display:block;border:1px solid #774841;background:#372927;color:#d4877d;border-radius:8px;padding:12px;text-align:center;font-size:9px;font-weight:900;letter-spacing:.8px}
.nf-tier-extras{display:flex;flex-wrap:wrap;gap:13px;align-items:center;margin-top:13px;background:#1a1515;border:1px solid #3b2c2a;border-radius:10px;padding:17px 20px}
.nf-tier-extras span{font-size:10px;color:#a89cab;flex:1 1 210px}
.nf-tier-extras b{color:#f1dedc}
.nf-tier-extras a{font-size:10px;letter-spacing:.4px;color:#e8bdb8;font-weight:900;white-space:nowrap}
.nf-rule-list{display:grid;gap:9px}
.nf-rule-list details{background:#181312;border:1px solid #433230;border-radius:10px;overflow:hidden}
.nf-rule-list details[open]{border-color:#90574f;background:#1e1716}
.nf-rule-list summary{list-style:none;padding:17px 19px;cursor:pointer;display:flex;gap:16px;align-items:center;font:700 18px Oswald,sans-serif;letter-spacing:.4px}
.nf-rule-list summary::-webkit-details-marker{display:none}
.nf-rule-list summary span{font-size:11px;font-family:Manrope,Arial,sans-serif;color:#db7a6e}
.nf-rule-list summary b{margin-left:auto;color:#d67b6f;transition:transform .2s}
.nf-rule-list details[open] summary b{transform:rotate(45deg)}
.nf-rule-list details>p{color:#d3847a;font-size:12px;padding:0 26px 19px 50px;max-width:950px;line-height:1.8}
.nf-final-cta{position:relative;overflow:hidden;border:1px solid #8e564e;border-radius:16px;background:linear-gradient(110deg,#322321,#1e1514 60%,#3f2724);display:flex;align-items:center;justify-content:space-between;gap:35px;padding:41px 42px;box-shadow:0 22px 55px #2d1e1c3b}
.nf-final-cta>.nf-final-mark{position:absolute;font:250px/1 Arial,sans-serif;right:20%;top:-105px;color:#d870621b;pointer-events:none}
.nf-final-cta>div:not(.nf-final-mark){position:relative;z-index:1}
.nf-final-cta h2{font-size:43px;margin-top:8px}.nf-final-cta p{font-size:12px;color:#d4877d;margin-top:10px}
.nf-final-buttons{display:flex;flex-direction:column;gap:9px;min-width:230px}
.nf-final-buttons a{text-align:center}
.nf-body .page-inner{padding-top:54px;padding-bottom:74px}
.nf-body .page-title h1{font-size:clamp(44px,5vw,72px);letter-spacing:.2px}
.nf-body .page-title p{color:#d18176}
.nf-body .guide-box,.nf-body .server-card,.nf-body .arsenal-item,.nf-body .feature-grid article{border-color:#4a3836;background:#1b1615;border-radius:12px}
.nf-body .weapon-card{border-radius:12px;border-color:#674e4b}
.nf-body .footer{background:#0b0808;border-top:1px solid #493735}
.nf-footer-grid{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:34px;padding-top:37px!important;padding-bottom:37px!important}
.nf-footer-brand strong{font:700 23px Oswald,sans-serif;color:#f7e7e5}
.nf-footer-brand strong>span{font:24px Arial;color:#df786b;margin-right:8px}
.nf-footer-brand em{color:#e0786a;font-style:normal}
.nf-footer-brand p{max-width:325px;font-size:11px;color:#d07d72;line-height:1.8;margin-top:10px}
.nf-footer-brand small{display:block;color:#975b53;font-size:8px;margin-top:23px;line-height:1.6}
.nf-footer-col{display:flex;flex-direction:column;align-items:start;gap:10px}
.nf-footer-col h3{font:700 14px Oswald,sans-serif;color:#ecd3cf;margin:0 0 4px}
.nf-footer-col a{font-size:11px;color:#cf7a6f}
.nf-footer-col a:hover{color:#e8bdb7}
.nf-footer-end{display:flex;flex-direction:column;align-items:end;gap:17px}
.nf-footer-end span{color:#d18176;font-size:9px;letter-spacing:1.4px;font-weight:800}
.nf-footer-end a{color:#edc9c4;font-weight:900;font-size:11px}
.nf-footer-end small{color:#ad7169;font-size:9px}
.nf-body .toast{background:#b8584b;color:#fff;border:1px solid #e57a6c;border-radius:10px;box-shadow:0 16px 35px #0009}
.nf-body .account-aside,.nf-body .account-panel,.nf-body .account-shell,.nf-body .ency-directory-card,.nf-body .ency-detail,.nf-body .ency-card,.nf-body .shop-card,.nf-body .shop-item{border-color:#604845}
.nf-body .armory-page{background:radial-gradient(ellipse at 50% 0%,#35222030,transparent 50%),#0e0a09}
.nf-body .armory-config,.nf-body .armory-slot,.nf-body .armory-picker-window{border-color:#56413e}
.nf-body .armory-preview-badge,.nf-body .armory-warning{border-color:#7f4d46;color:#d1b7b4}
.nf-body .ency-section-title h1 em{color:#e57b6d}
.nf-body .nf-home a:focus-visible,.nf-body button:focus-visible,.nf-body .menu a:focus-visible{outline:2px solid #e3aea7;outline-offset:3px}
@media(max-width:1270px){
 .nf-body .nf-brand{min-width:190px}
 .nf-body .menu{gap:9px}
 .nf-body .menu>a{font-size:9px}
 .nf-header-play{min-width:95px}
 .nf-hero h1{font-size:clamp(55px,6.6vw,82px)}
 .nf-hero-character-right{right:-22px}
}
@media(max-width:1100px){
 .nf-body .header{height:72px}
 .nf-body .nf-brand{min-width:170px}
 .nf-body .hamburger{display:block;margin-left:auto}
 .nf-body .menu{display:none;position:absolute;top:72px;left:0;right:0;padding:15px 30px;background:#130e0ef8;border-bottom:1px solid #764741;flex-direction:column;gap:2px;align-items:stretch;box-shadow:0 20px 40px #000a}
 .nf-body .menu.open{display:flex}
 .nf-body .menu>a{font-size:12px;padding:9px 12px}
 .nf-body .menu .account-link{margin:7px 0 0;padding:11px}
 .nf-feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-feature{min-height:200px}
 .nf-hero-character-left{left:-35px}
 .nf-hero-character-right{right:-40px}
}
@media(max-width:800px){
 .nf-body .wrap{padding-left:20px;padding-right:20px}
 .nf-hero-content{grid-template-columns:1fr;gap:0;padding-top:52px;padding-bottom:55px}
 .nf-hero-copy{padding:0;max-width:670px}
 .nf-hero h1{font-size:clamp(52px,9.7vw,78px);white-space:normal}
 .nf-hero-copy>p{max-width:560px}
 .nf-hero-visual{height:355px;max-width:640px;width:100%;margin:auto}
 .nf-hero-character-left{left:9%;top:26px;height:290px;width:255px}
 .nf-hero-character-right{right:7%;top:12px;height:330px;width:305px}
 .nf-hero-ring.one{width:300px;height:300px}
 .nf-hero-ring.two{width:400px;height:400px}
 .nf-hero-hazard{font-size:280px}
 .nf-hero-facts{margin-top:25px}
 .nf-universe-grid,.nf-tier-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-universe-card:last-child,.nf-tier:last-child{grid-column:span 2}
 .nf-section-head{align-items:start;flex-direction:column;gap:13px}
 .nf-final-cta{flex-direction:column;align-items:stretch}
 .nf-final-buttons{flex-direction:row}
 .nf-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-footer-end{align-items:start}
}
@media(max-width:560px){
 .nf-body .header{height:67px}
 .nf-body .brand-label strong{font-size:16px}
 .nf-body .brand-label small{font-size:6.3px}
 .nf-body .nf-brand-icon{height:39px;min-width:39px;width:39px;font-size:24px;line-height:36px}
 .nf-header-play{min-width:77px;padding:10px 12px;font-size:9px;gap:6px}
 .nf-body .menu{top:67px;padding:12px 18px}
 .nf-hero{min-height:0}
 .nf-hero-content{padding-top:45px;padding-bottom:54px}
 .nf-hero-kicker{font-size:8px;letter-spacing:1.1px}
 .nf-hero h1{font-size:clamp(51px,11.2vw,68px);line-height:1.02}
 .nf-hero-copy>p{font-size:12px;line-height:1.75}
 .nf-hero-actions{gap:8px}
 .nf-hero-actions .button{width:100%;justify-content:center}
 .nf-hero-facts{gap:9px 15px}
 .nf-hero-facts span{font-size:8px}
 .nf-hero-visual{height:295px}
 .nf-hero-character-left{left:0;top:18px;width:195px;height:245px}
 .nf-hero-character-right{right:0;top:9px;width:224px;height:274px}
 .nf-hero-ring.one{width:250px;height:250px}
 .nf-hero-ring.two{width:340px;height:340px}
 .nf-hero-hazard{font-size:225px}
 .nf-hero-hud-top{right:0;top:0;font-size:7px}
 .nf-hero-hud-bottom{left:10px;bottom:3px;font-size:7px}
 .nf-hero-bottom{height:30px}
 .nf-hero-bottom .wrap{font-size:7px;letter-spacing:1px}
 .nf-home-body{padding-top:35px;padding-bottom:50px}
 .nf-section{margin-bottom:58px}
 .nf-section-head h2{font-size:clamp(30px,7.3vw,39px)}
 .nf-online-summary{flex-wrap:wrap;gap:6px 9px;font-size:8px}
 .nf-body .server-grid{grid-template-columns:1fr}
 .nf-feature-grid{grid-template-columns:1fr}
 .nf-feature{min-height:0;padding:20px}
 .nf-feature p{max-width:400px}
 .nf-universe-grid,.nf-tier-grid{grid-template-columns:1fr}
 .nf-universe-card:last-child,.nf-tier:last-child{grid-column:auto}
 .nf-universe-card{height:260px}
 .nf-universe-img{bottom:40px}
 .nf-tier h3{font-size:34px;margin-top:17px}
 .nf-tier-price{margin:15px 0}
 .nf-tier-extras{padding:17px}
 .nf-closed-label{font-size:9px}
 .nf-final-cta{padding:29px 24px;gap:22px}
 .nf-final-cta h2{font-size:35px}
 .nf-final-buttons{flex-direction:column;min-width:0}
 .nf-footer-grid{gap:25px 14px;padding-top:30px!important;padding-bottom:32px!important}
 .nf-footer-brand{grid-column:span 2}
 .nf-footer-end{grid-column:span 2}
 .nf-footer-col a{font-size:11px}
 .nf-body .page-inner{padding-top:42px}
 .nf-body .page-title h1{font-size:45px}
 .nf-body .server-ip{font-size:11px}
}
@media(prefers-reduced-motion:reduce){.nf-body *{animation:none!important;transition:none!important}}

/* SITE-WIDE NIGHTFALL PALETTE — encyclopaedia, armory, shop and player account */
.nf-body .ency-directory-card{border-radius:15px;overflow:hidden;transition:transform .2s,border-color .2s}
.nf-body .ency-directory-card:hover{border-color:#e47466;transform:translateY(-4px)}
.nf-body .ency-directory-card.human{background:radial-gradient(circle at 70% 20%,#573a36,#1d1615 78%)}
.nf-body .ency-directory-card.zombie{background:radial-gradient(circle at 70% 20%,#4d3a37,#1c1615 78%)}
.nf-body .ency-directory-card.weapons{background:radial-gradient(circle at 70% 20%,#533a37,#1c1514 78%)}
.nf-body .ency-directory-card.modes{background:radial-gradient(circle at 70% 20%,#4f3633,#1d1413 78%)}
.nf-body .ency-directory-bottom strong{color:#f8eeed}
.nf-body .ency-directory-bottom small,.nf-body .ency-footnote{color:#d28278}
.nf-body .ency-arrow{border-color:#ac7068;color:#ebc4be}
.nf-body .ency-section-title{border-color:#784842;background:linear-gradient(120deg,#231817,#151010)}
.nf-body .ency-wiki-card{border:1px solid #55403e;border-radius:11px;background:#1b1514;overflow:hidden}
.nf-body .ency-wiki-card-caption{background:linear-gradient(180deg,#1c1514,#151110)}
.nf-body .ency-wiki-card-caption strong{color:#f8edeb}
.nf-body .ency-wiki-card-caption small{color:#d28277}
.nf-body .ency-wiki-card:hover{border-color:#e27667;box-shadow:0 10px 25px #94403426}
.nf-body .ency-wiki-search{border-color:#7c4b45;background:#1b1514;border-radius:9px}
.nf-body .ency-wiki-search input{color:#f7e7e5;background:transparent}
.nf-body .ency-wiki-filter{border-color:#644c49;background:#261d1c;color:#d9c4c2;border-radius:8px}
.nf-body .ency-wiki-filter.active{border-color:#dc796c;background:#8f473e;color:#fff}
.nf-body .ency-wiki-hero{border:1px solid #7f4d46;border-radius:12px;background:radial-gradient(ellipse at 50% 30%,#513d3b,#1a1312 80%)!important}
.nf-body .ency-wiki-profile,.nf-body .ency-wiki-detail,.nf-body .ency-wiki-ability,.nf-body .ency-wiki-gallery-item{border-color:#58423f;background-color:#1f1716}
.nf-body .ency-wiki-breadcrumb a,.nf-body .ency-breadcrumb a,.nf-body .ency-back-bottom{color:#e4b4ae}
.nf-body .shop-shutdown{border-color:#87514a;border-radius:13px;background:linear-gradient(110deg,#322624,#1f1918)}
.nf-body .shop-shutdown strong,.nf-body .shop-shutdown-tag{color:#e8cac6}
.nf-body .shop-product{border-color:#55403e;border-radius:14px;background:linear-gradient(140deg,#241c1b,#181312);overflow:hidden}
.nf-body .shop-product-main p,.nf-body .shop-section-head p{color:#d28379}
.nf-body .shop-product-foot{border-color:#4f3c3a;color:#d4897f}
.nf-body .shop-coming{border-color:#794943;background:#241b1a;border-radius:12px}
.nf-body .shop-coming>span{color:#e5786a}
.nf-body .shop-disclaimer{background:#221a19;border-left-color:#df7567;color:#d58a80;border-radius:0 10px 10px 0}
.nf-body .shop-product .shop-price strong{color:#f8eae8}
.nf-body .account-shell{border:1px solid #664d4a;border-radius:16px;background:#191413;overflow:hidden}
.nf-body .account-aside{background:radial-gradient(circle at 45% 25%,#7949433a,transparent 43%),linear-gradient(150deg,#281e1d,#161111);border-color:#5c4643}
.nf-body .account-emblem{color:#e47667ad;text-shadow:0 0 80px #e26c5c80}
.nf-body .account-aside>p,.nf-body .account-note{color:#d4897f}
.nf-body .account-note small,.nf-body .account-hint{color:#cd766a}
.nf-body .account-panel{background:#191413}
.nf-body .account-tabs{border-color:#654c49}
.nf-body .account-tabs button{color:#d28278}
.nf-body .account-tabs button.selected{border-color:#e47667;color:#ebc5c0}
.nf-body .account-form label{color:#eadad8}
.nf-body .account-form label small{color:#d17f74}
.nf-body .account-form input,.nf-body .account-form textarea,.nf-body .account-form select{border:1px solid #7b4a43;background:#110d0d;color:#f8edec;border-radius:8px}
.nf-body .account-form input:focus,.nf-body .account-form textarea:focus,.nf-body .account-form select:focus{border-color:#e2aaa2;box-shadow:0 0 0 3px #e2695923}
.nf-body .account-form input::placeholder,.nf-body .account-form textarea::placeholder{color:#a6665d}
.nf-body .account-avatar{border-color:#d07c71;background:#322220}
.nf-body .account-meta>div,.nf-body .account-security{border-color:#5f4844;background:#241c1b;border-radius:10px}
.nf-body .account-identity{border-color:#624a47}
.nf-body .account-logout{background:#281d1c;border-color:#87514a;color:#efd1cd;border-radius:8px}
.nf-body .account-message{background:#322624;border-left-color:#e47567;color:#f4dedb}
.nf-body #weapons.armory-page{background:radial-gradient(ellipse at 50% 5%,#50332f30,transparent 55%),#0e0a09}
.nf-body #weapons .armory-config{background:linear-gradient(135deg,#1b1514,#100c0b);border:1px solid #55403e;border-radius:14px}
.nf-body #weapons .armory-heading h1 em{color:#e57c6e}
.nf-body #weapons .armory-heading p{color:#d28277}
.nf-body #weapons .armory-preview-badge{background:#2c2220;color:#e8bbb5;border-color:#824e47;border-radius:8px}
.nf-body #weapons .armory-warning{background:#272120;border-color:#644b48;color:#e0cecb;border-radius:7px}
.nf-body #weapons .armory-slot{border:1px solid #56413e;border-radius:10px;background:linear-gradient(150deg,#221c1b,#151111);color:#f7e8e6}
.nf-body #weapons .armory-slot:hover{border-color:#df776a;background:#2b2120}
.nf-body #weapons .armory-slot-type{color:#d17f74}
.nf-body #weapons .armory-slot-name{color:#f1e3e1}
.nf-body #weapons .armory-slot-action{color:#e8bbb5}
.nf-body #weapons .armory-slot-placeholder{color:#da7b6f}
.nf-body #weapons .armory-stage{border:1px solid #5b4542;border-radius:13px;background:radial-gradient(ellipse at 50% 40%,#463532 0%,#291f1e 46%,#0f0b0a 97%)}
.nf-body #weapons .armory-character-name{color:#ecd9d7}
.nf-body #weapons .armory-character-name span{border-color:#ce786c;color:#e3b6b0}
.nf-body #weapons .armory-stage-controls button{background:#2c2120;border-color:#834f48;border-radius:7px;color:#e9d0cc}
.nf-body #weapons .armory-stage-controls button:hover{border-color:#e2796b;background:#392a28}
.nf-body #weapons .armory-stage-controls button[aria-pressed="true"]{border-color:#e57c6e;color:#f5e1de}
.nf-body #weapons .armory-drag-hint,.nf-body #weapons .armory-clarification{color:#d18176}
.nf-body #weapons .armory-footer{border-color:#5c4643}
.nf-body .armory-overlay{background:#090706d9}
.nf-body .armory-picker-window{background:#15100f;border:1px solid #804d46;border-radius:16px;overflow:hidden;box-shadow:0 25px 85px #000a}
.nf-body .armory-picker-header{background:#241a19;border-color:#7e4c46}
.nf-body .armory-picker-header h3{color:#f7e9e7}
.nf-body .armory-picker-search{background:#1f1615;border-color:#7a4943;border-radius:8px}
.nf-body .armory-picker-search input{background:transparent;color:#f6e8e6}
.nf-body .armory-picker-item{background:#211a19;border:1px solid #55403d;border-radius:9px}
.nf-body .armory-picker-item:hover{border-color:#e47768;background:#2d211f}
.nf-body .armory-picker-item span{color:#eededc}
.nf-body .armory-picker-filter{background:#271d1c;border-color:#774841;color:#d6bbb8;border-radius:7px}
.nf-body .armory-picker-filter.selected,.nf-body .armory-picker-category.selected{background:#a65348;border-color:#e37162;color:#fff}
.nf-body .armory-picker-category-list{border-color:#604845}
.nf-body .armory-picker-category{background:#2a1f1d;border-color:#624a47;color:#dac6c3;border-radius:7px}
.nf-body .armory-picker-category:not(.selected):hover{border-color:#e27567}
.nf-body .armory-picker-3d{color:#e17e71}
.nf-body .armory-picker-type{color:#d28479}
.nf-body .armory-picker-hint{color:#d07d72}
@media(max-width:800px){.nf-body .account-aside{border-right:0;border-bottom:1px solid #644b48}}

/* RED THEME / SEMANTIC STATUS: online success remains green by design */
.nf-body .nf-status-pulse,.nf-body .nf-online-dot{background:#88d8a3;box-shadow:0 0 0 5px #53d88715,0 0 17px #65ed96a6}
.nf-body .server-status:not(.offline):not(.unknown){color:#9cd9aa;border-color:#437c57;background:#19261f}
.nf-body .server-status.offline{color:#e8a5a0;border-color:#935654;background:#301d1c}
.nf-body .server-status.unknown{color:#b5b0b8;border-color:#71686c;background:#292427}
.nf-body .nf-section-kicker i{background:#9cd9aa}
.nf-body .nf-hero-hud-bottom i{background:#df867c}
.nf-body #weapons .armory-stage{background:radial-gradient(ellipse at 50% 40%,#302627 0%,#1c1517 46%,#0b090a 97%)}

/* Update from user's screenshots: simpler Russian header, hidden sales sections. */
.nf-body .nf-brand-image{display:block;object-fit:cover;object-position:center;overflow:hidden;
 border-radius:10px;transform:none;padding:0;box-shadow:0 0 0 1px #a26d6375,0 0 14px #ac58483b}
.nf-body .nf-header-account{background:linear-gradient(120deg,#a34c44,#d36c60);min-width:114px;
 border:1px solid #d1887f;color:#fff}
.nf-body .nf-footer-logo-image{vertical-align:middle;object-fit:cover;border-radius:6px;margin-right:8px}
.nf-body .nf-hero-content{padding-top:24px}
.nf-body .nf-hero-copy{padding-top:0}
.nf-body .nf-hero{min-height:520px}
.nf-body .nf-hero-visual{height:490px}
.nf-body .nf-hero h1{margin-top:12px}
.nf-body .nf-home-body{padding-bottom:32px}
.nf-body .nf-hero-content+.nf-hero-bottom{display:none}
@media(max-width:800px){.nf-body .nf-hero-visual{height:345px}}
@media(max-width:560px){.nf-body .nf-hero{min-height:0}.nf-body .nf-hero-visual{height:285px}
 .nf-body .nf-header-account{min-width:86px}}

/* Original two-face project emblem replaces the remaining biohazard hero artwork. */
.nf-body .nf-hero-logo{display:block;width:clamp(135px,17vw,200px);height:auto;aspect-ratio:1;object-fit:contain;opacity:.48;transform:translate(-50%,-50%);filter:drop-shadow(0 0 26px #e0776959);border-radius:23px;z-index:0}
@media(max-width:560px){.nf-body .nf-hero-logo{width:135px}}

/* ZvsP theme source 8: experience.css */
/* ZvsP living environment, dedicated and safe for the legacy 3D armory. */
/* All animations are decorative; the site is fully usable without this file. */
.nf-body .nf-hero{--zvp-x:0;--zvp-y:0}
.nf-body .nf-hero-grid{
  transform:translate3d(calc(var(--zvp-x)*-8px),calc(var(--zvp-y)*-5px),0);
  transition:none;
}
.nf-body .nf-hero-glow{
  transform:translate3d(calc(var(--zvp-x)*-28px),calc(var(--zvp-y)*-19px),0);
  opacity:.88;
}
.nf-body .nf-hero-visual .nf-hero-character-left{
  transform:translate3d(calc(var(--zvp-x)*-18px),calc(var(--zvp-y)*-13px),0) rotate(-9deg);
}
.nf-body .nf-hero-visual .nf-hero-character-right{
  transform:translate3d(calc(var(--zvp-x)*26px),calc(var(--zvp-y)*17px),0) rotate(5deg);
}
.nf-body .nf-hero-visual .nf-hero-ring.one{
  transform:translate3d(calc(-50% + var(--zvp-x)*8px),calc(-50% + var(--zvp-y)*6px),0);
}
.nf-body .nf-hero-visual .nf-hero-ring.two{
  transform:translate3d(calc(-50% - var(--zvp-x)*12px),calc(-50% - var(--zvp-y)*9px),0);
}
.nf-body .nf-hero-visual .nf-hero-logo{
  transform:translate3d(calc(-50% + var(--zvp-x)*9px),calc(-50% + var(--zvp-y)*6px),0) rotate(-14deg);
}
.nf-body .zvp-hero-atmosphere{
  position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;isolation:isolate;
}
.nf-body .zvp-hero-smoke{
  position:absolute;width:60%;height:80%;right:-14%;top:9%;
  background:radial-gradient(ellipse at center,#be675027 0%,#7b534019 33%,transparent 70%);
  filter:blur(26px);opacity:.68;
  animation:zvp-smoke-flow 21s ease-in-out infinite alternate;
}
.nf-body .zvp-hero-smoke.smoke-left{
  right:auto;left:-20%;top:18%;opacity:.28;
  background:radial-gradient(ellipse at center,#bba6a122,transparent 70%);
  animation-duration:26s;animation-delay:-11s;
}
@keyframes zvp-smoke-flow{
  0%{transform:translate3d(-8%,3%,0) scale(.9)}
  50%{transform:translate3d(2%,-7%,0) scale(1.12)}
  100%{transform:translate3d(8%,5%,0) scale(1.03)}
}
.nf-body .zvp-embers{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.nf-body .zvp-ember{
  position:absolute;left:var(--ember-x);top:var(--ember-y);
  width:var(--ember-size);height:var(--ember-size);border-radius:50%;
  background:#ed9d7a;box-shadow:0 0 13px #ec664ba8,0 0 4px #fff6;
  opacity:0;animation:zvp-ember-drift var(--ember-time) linear infinite;
  animation-delay:var(--ember-delay);
}
@keyframes zvp-ember-drift{
  0%{opacity:0;transform:translate3d(0,16px,0)}
  16%{opacity:.65}
  75%{opacity:.37}
  100%{opacity:0;transform:translate3d(var(--ember-shift),-125px,0)}
}

/* Curated character cards: focus remains usable for mouse, keyboard and touch. */
.nf-body .zvp-interactive-card{
  --zvp-card-x:0;--zvp-card-y:0;--zvp-spot-x:50%;--zvp-spot-y:45%;
  transform:perspective(800px) translateY(0px)
    rotateX(calc(var(--zvp-card-y)*-5deg)) rotateY(calc(var(--zvp-card-x)*6deg));
  transition:transform .22s ease,border-color .25s ease,box-shadow .25s ease;
  will-change:auto;
}
.nf-body .zvp-interactive-card:hover,
.nf-body .zvp-interactive-card:focus-visible{
  transform:perspective(800px) translateY(-6px)
    rotateX(calc(var(--zvp-card-y)*-5deg)) rotateY(calc(var(--zvp-card-x)*6deg));
  box-shadow:0 18px 48px #0009,0 0 37px #db6b462a;
  border-color:#dc988a;outline-offset:3px;
}
.nf-body .zvp-interactive-card:after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(240px circle at var(--zvp-spot-x) var(--zvp-spot-y),#ffb9a417,transparent 80%);
  opacity:0;transition:opacity .22s;
}
.nf-body .zvp-interactive-card:hover:after,
.nf-body .zvp-interactive-card:focus-visible:after{opacity:1}
.nf-body .zvp-interactive-card .nf-universe-img img{
  transition:transform .5s ease,filter .4s ease;
}
.nf-body .zvp-interactive-card:hover .nf-universe-img img{
  transform:scale(1.08) translateY(-4px);
  filter:saturate(1.05) contrast(1.09) drop-shadow(0 18px 28px #0009);
}
.nf-body .zvp-interactive-card .nf-universe-info{pointer-events:none}
.nf-body .zvp-interactive-card .nf-universe-info>span{transition:transform .22s}
.nf-body .zvp-interactive-card:hover .nf-universe-info>span{transform:translate(3px,-3px)}

/* Scroll reveals: applied by JS only when IntersectionObserver is supported. */
.nf-body .zvp-reveal{opacity:0;transform:translate3d(0,22px,0)}
.nf-body .zvp-reveal.zvp-visible{
  opacity:1;transform:translate3d(0,0,0);
  transition:opacity .68s ease var(--zvp-reveal-delay,0ms),
             transform .68s cubic-bezier(.22,1,.36,1) var(--zvp-reveal-delay,0ms);
}
.nf-body .zvp-interactive-card.zvp-reveal.zvp-visible{
  transform:perspective(800px) translateY(0)
    rotateX(calc(var(--zvp-card-y)*-5deg)) rotateY(calc(var(--zvp-card-x)*6deg));
}
.nf-body .zvp-interactive-card.zvp-reveal.zvp-visible:hover{
  transform:perspective(800px) translateY(-6px)
    rotateX(calc(var(--zvp-card-y)*-5deg)) rotateY(calc(var(--zvp-card-x)*6deg));
}

/* The four-weapon showcase is static-data only and never takes over WebGL. */
.nf-body .zvp-weapon-showcase{
  border:1px solid #654740;border-radius:17px;
  background:radial-gradient(ellipse at 80% 14%,#59302d86,transparent 50%),linear-gradient(135deg,#241819,#110e0e);
  overflow:hidden;padding:30px 32px 25px;position:relative;
}
.nf-body .zvp-demo-layout{
  display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.92fr);
  gap:28px;min-width:0;margin-top:23px;align-items:center;
}
.nf-body .zvp-demo-visual{
  display:flex;flex-direction:column;justify-content:center;align-items:center;
  padding:28px;position:relative;min-width:0;min-height:295px;
  border:1px solid #67413c;border-radius:14px;overflow:hidden;
  background:radial-gradient(ellipse at center,#75484144,#26191970 58%,#160f0f);
}
.nf-body .zvp-demo-visual:before,.nf-body .zvp-demo-visual:after{
  content:"";position:absolute;border-radius:50%;pointer-events:none;
}
.nf-body .zvp-demo-visual:before{
  width:250px;height:250px;border:1px solid #d36d5947;
  box-shadow:0 0 60px #c45b4055,0 0 0 38px #c67c2510;
  animation:zvp-demo-halo 14s linear infinite;
}
.nf-body .zvp-demo-visual:after{
  inset:0;border-radius:0;
  background:repeating-linear-gradient(0deg,transparent 0 33px,#ff8a7120 34px 35px);
  opacity:.22;
}
@keyframes zvp-demo-halo{to{transform:rotate(360deg)}}
.nf-body .zvp-demo-visual img{
  display:block;position:relative;z-index:1;
  width:min(100%,420px);height:190px;object-fit:contain;
  filter:drop-shadow(0 21px 23px #000b);
}
.nf-body .zvp-demo-visual img.zvp-demo-in{animation:zvp-gun-reveal .6s cubic-bezier(.22,1,.36,1) both}
@keyframes zvp-gun-reveal{
  from{transform:translate3d(22px,14px,0) rotate(-4deg) scale(.91);opacity:0}
  to{transform:translate3d(0,0,0) rotate(0) scale(1);opacity:1}
}
.nf-body .zvp-demo-visual>small{
  z-index:1;color:#cb8b80;font-size:9px;font-weight:800;letter-spacing:1px;margin-top:12px;
}
.nf-body .zvp-demo-details{min-width:0}
.nf-body .zvp-demo-type{color:#d7867c;font-weight:900;font-size:10px;letter-spacing:1.3px}
.nf-body .zvp-demo-details h3{
  font:700 clamp(28px,3.4vw,46px)/1.1 Oswald,Impact,sans-serif;
  color:#f8ece8;margin:7px 0 14px;
}
.nf-body .zvp-demo-details p{
  color:#d8b2ac;font-size:11px;line-height:1.75;margin:0 0 15px;
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
}
.nf-body .zvp-demo-ammo{font-size:11px;font-weight:700;color:#e6c3b9;margin:0 0 20px}
.nf-body .zvp-demo-ammo strong{color:#fff}
.nf-body .zvp-stat{margin-bottom:12px}
.nf-body .zvp-stat-row{display:flex;justify-content:space-between;font-size:10px;color:#d6a59b;font-weight:800;gap:10px;margin-bottom:6px}
.nf-body .zvp-stat-value{color:#f2ded8}
.nf-body .zvp-stat-track{
  height:7px;background:#4c302d;border:1px solid #654540;border-radius:99px;overflow:hidden;
}
.nf-body .zvp-stat-fill{
  display:block;width:0%;height:100%;
  background:linear-gradient(90deg,#9f4f44,#e57c67);
  box-shadow:0 0 10px #e86b5880;
  border-radius:99px;transition:width .9s cubic-bezier(.22,1,.36,1);
}
.nf-body .zvp-weapon-picks{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
  margin:23px 0 12px;
}
.nf-body .zvp-weapon-pick{
  appearance:none;border:1px solid #563934;background:#1a1213;color:#d8b6af;
  border-radius:10px;padding:13px 8px;display:flex;flex-direction:column;align-items:center;
  gap:7px;min-width:0;cursor:pointer;font:800 10px/1.4 Manrope,Arial,sans-serif;
  transition:background .2s,border-color .2s,transform .2s;
}
.nf-body .zvp-weapon-pick img{height:48px;width:100%;object-fit:contain}
.nf-body .zvp-weapon-pick span{text-align:center;overflow-wrap:anywhere}
.nf-body .zvp-weapon-pick:hover,.nf-body .zvp-weapon-pick:focus-visible{
  background:#382321;border-color:#d57c68;transform:translateY(-2px);outline-offset:3px;
}
.nf-body .zvp-weapon-pick[aria-pressed=true]{
  background:#65352d;border-color:#e38770;color:#fff;box-shadow:0 0 22px #b15b4530;
}
.nf-body .zvp-demo-footnote{font-size:10px;color:#af837b;line-height:1.65}
.nf-body .zvp-demo-open{display:inline-flex;align-items:center;margin:16px 0 0;font-size:10px;font-weight:900;color:#f3b3a5}
.nf-body .zvp-demo-open:hover{text-decoration:underline}

/* Cinematic panorama based on user's wallpapers, optimized copies. */
.nf-body .zvp-panorama{
  padding:0;position:relative;overflow:hidden;border-radius:16px;
  background:#1b1312;border:1px solid #69463f;height:280px;
}
.nf-body .zvp-panorama-track{
  display:flex;width:145%;height:100%;
  animation:zvp-panorama-drift 28s ease-in-out infinite alternate;
  animation-play-state:paused;
}
.nf-body .zvp-panorama-running .zvp-panorama-track{animation-play-state:running}
.nf-body .zvp-panorama-card{flex:1 1 0;min-width:0;position:relative;overflow:hidden}
.nf-body .zvp-panorama-card img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.nf-body .zvp-panorama-card:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(0deg,#120b0bf0 0%,#120b0b12 58%,#150b0b64 100%);
  pointer-events:none;
}
.nf-body .zvp-panorama-card span{
  position:absolute;z-index:2;bottom:25px;left:24px;
  color:#f5ded9;text-shadow:0 2px 14px #000d;font:800 16px Oswald,Impact,sans-serif;
}
@keyframes zvp-panorama-drift{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(-27%,0,0)}
}
.nf-body .zvp-panorama-title{
  position:absolute;z-index:3;left:0;right:0;top:0;
  padding:15px 25px;background:linear-gradient(#110c0cd9,transparent);
  color:#f1c5b9;font-size:10px;font-weight:900;letter-spacing:1.6px;pointer-events:none;
}
.nf-body .zvp-panorama:hover .zvp-panorama-track,
.nf-body .zvp-panorama:focus-within .zvp-panorama-track{animation-play-state:paused}

/* Nav and routes: preserve original hashes and mobile toggle behavior. */
.nf-body .nf-header .menu>a{
  position:relative;transition:color .22s ease,transform .22s ease;
}
.nf-body .nf-header .menu>a:after{
  content:"";position:absolute;left:2px;right:2px;bottom:-8px;height:2px;
  border-radius:3px;background:linear-gradient(90deg,#c95f50,#edac99);
  transform:scaleX(0);transform-origin:left;transition:transform .26s ease;
}
.nf-body .nf-header .menu>a:hover:after,
.nf-body .nf-header .menu>a.active:after,
.nf-body .nf-header .menu>a:focus-visible:after{transform:scaleX(1)}
.nf-body .nf-header .menu>a:hover{transform:translateY(-2px)}
.nf-body .nf-header-account:hover{box-shadow:0 0 28px #dc75645e;transform:translateY(-2px)}
.nf-body .page.active:not(.armory-page){animation:zvp-route-appear .35s ease-out both}
@keyframes zvp-route-appear{from{opacity:.45}to{opacity:1}}
.nf-body .zvp-music-button{
  width:39px;height:39px;display:grid;place-items:center;flex:0 0 auto;
  padding:0;border:1px solid #81584f;border-radius:10px;
  color:#e9b8ae;background:linear-gradient(135deg,#30201f,#1a1414);
  cursor:pointer;position:relative;transition:border-color .2s,color .2s,background .2s;
}
.nf-body .zvp-music-button:hover,.nf-body .zvp-music-button:focus-visible{
  border-color:#e59882;background:#4c3029;color:#fff;outline-offset:3px;
}
.nf-body .zvp-music-button .zvp-music-label{
  font:700 23px/1 Oswald,Arial,sans-serif;transform:translateY(-1px)
}
.nf-body .zvp-music-button[aria-pressed=true]{
  border-color:#e59b83;color:#fff;background:#793d32;
  box-shadow:0 0 16px #d8795933
}
.nf-body .zvp-music-button[aria-pressed=true]:after{
  content:"";position:absolute;width:5px;height:5px;right:4px;top:4px;
  background:#e6b98a;border-radius:100%;box-shadow:0 0 8px #f1ba81;
}
@media(max-width:1120px){
 .nf-body .zvp-panorama-track{width:175%}
 .nf-body .zvp-weapon-showcase{padding:25px 24px}
 .nf-body .zvp-demo-layout{gap:20px}
}
@media(max-width:900px){
 .nf-body .zvp-demo-layout{grid-template-columns:1fr}
 .nf-body .zvp-demo-visual{min-height:255px}
 .nf-body .zvp-demo-details h3{font-size:39px}
 .nf-body .nf-hero-visual .nf-hero-character-left,
 .nf-body .nf-hero-visual .nf-hero-character-right{transform:rotate(-9deg)}
 .nf-body .nf-hero-visual .nf-hero-character-right{transform:rotate(5deg)}
 .nf-body .nf-hero-grid,.nf-body .nf-hero-glow{transform:none}
 .nf-body .zvp-hero-smoke{filter:blur(18px)}
}
@media(max-width:650px){
 .nf-body .zvp-music-button{width:35px;height:35px;border-radius:8px}
 .nf-body .zvp-weapon-showcase{padding:20px 16px}
 .nf-body .zvp-weapon-picks{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .nf-body .zvp-weapon-pick{flex-direction:row;text-align:left;padding:8px 10px;font-size:10px}
 .nf-body .zvp-weapon-pick img{width:72px;height:48px}
 .nf-body .zvp-demo-visual{min-height:205px;padding:18px}
 .nf-body .zvp-demo-visual img{height:145px}
 .nf-body .zvp-panorama{height:210px}
 .nf-body .zvp-panorama-track{width:220%}
 .nf-body .zvp-panorama-card span{font-size:12px;left:13px;bottom:18px}
 .nf-body .zvp-hero-smoke{filter:blur(12px)}
 .nf-body .nf-hero-visual .nf-hero-ring{opacity:.75}
 .nf-body .nf-hero-visual .nf-hero-logo{transform:translate(-50%,-50%) rotate(-14deg)}
}
@media(max-width:900px){
 .nf-body .nf-header .menu.open>a{animation:zvp-nav-enter .32s both}
 .nf-body .nf-header .menu.open>a:nth-child(2){animation-delay:.05s}
 .nf-body .nf-header .menu.open>a:nth-child(3){animation-delay:.10s}
 .nf-body .nf-header .menu.open>a:nth-child(4){animation-delay:.15s}
 .nf-body .nf-header .menu>a:after{bottom:2px}
}
@keyframes zvp-nav-enter{from{opacity:.25;transform:translate3d(12px,-6px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-hero-smoke,.nf-body .zvp-ember,
 .nf-body .zvp-panorama-track,.nf-body .zvp-demo-visual:before{
  animation:none!important;
 }
 .nf-body .zvp-ember{display:none}
 .nf-body .zvp-reveal,.nf-body .zvp-reveal.zvp-visible{
  opacity:1!important;transform:none!important;transition:none!important;
 }
 .nf-body .page.active:not(.armory-page){animation:none}
 .nf-body .nf-hero-glow,.nf-body .nf-hero-grid{transform:none!important}
 .nf-body .nf-hero-visual .nf-hero-character-left{transform:rotate(-9deg)!important}
 .nf-body .nf-hero-visual .nf-hero-character-right{transform:rotate(5deg)!important}
 .nf-body .zvp-interactive-card,
 .nf-body .zvp-interactive-card:hover{transform:none!important;transition:none!important}
 .nf-body .zvp-demo-visual img.zvp-demo-in{animation:none!important}
 .nf-body .zvp-stat-fill{transition:none!important}
}

/* Final header fit: optional sound toggle must never create horizontal scrolling. */
@media(max-width:560px){
 .nf-body .nf-header .header-inner{gap:8px}
 .nf-body .nf-brand{min-width:152px;gap:7px}
 .nf-body .nf-brand-icon{width:35px;height:35px;min-width:35px}
 .nf-body .brand-label strong{font-size:15px}
 .nf-body .brand-label small{font-size:6px}
 .nf-body .hamburger{width:40px;min-width:40px;height:40px;padding:7px}
 .nf-body .nf-header-account{min-width:78px;padding:9px 8px;gap:4px;font-size:9px}
 .nf-body .zvp-music-button{width:35px;height:35px}
}
@media(max-width:380px){
 .nf-body .nf-header .header-inner{gap:6px}
 .nf-body .nf-brand{min-width:128px;gap:5px}
 .nf-body .nf-brand-icon{width:30px;height:30px;min-width:30px}
 .nf-body .brand-label strong{font-size:13px}
 .nf-body .brand-label small{font-size:5.3px}
 .nf-body .hamburger{width:34px;min-width:34px;height:35px;padding:5px}
 .nf-body .nf-header-account{min-width:72px;padding:8px 6px;font-size:8px}
 .nf-body .zvp-music-button{width:30px;height:31px}
}


/* Keep only six small embers on narrow screens to reduce compositing cost. */
@media(max-width:650px){
  .nf-body .zvp-ember:nth-child(n+7){display:none}
}

/* ZvsP theme source 9: night-city.css */
/* ZvsP Night City — neon palette, three independent parallax depths. */
/* Does not transform the armory canvas or interfere with its controls. */
.nf-body{
  background:#0a0b19;
  color:#f5f1fc;
  --zvp-neon-pink:#f37acb;
  --zvp-neon-cyan:#6de7ff;
  --zvp-neon-purple:#b698ff;
}
.nf-body .nf-header{
  background:linear-gradient(100deg,#0b0a1af5,#19102cfa 65%,#0d1228fa);
  border-bottom:1px solid #956be058;
  box-shadow:0 4px 28px #05050d9c,0 1px 0 #8d58b125;
}
.nf-body .nf-brand .brand-label strong span,
.nf-body .nf-footer-brand em{color:#d0a6ff}
.nf-body .brand-label small{color:#8edfff}
.nf-body .menu>a{color:#c8b0ed}
.nf-body .menu>a.active,.nf-body .menu>a:hover{color:#a8edff}
.nf-body .nf-header .menu>a:after{
  background:linear-gradient(90deg,#ad79ff,#ee73cc,#75e6ff);
}
.nf-body .nf-header-account,
.nf-body .nf-header-play,
.nf-body .button.primary{
  background:linear-gradient(107deg,#7b4bd3 0%,#b14dc4 52%,#d861ac 100%);
  border-color:#d9a7fa87;color:#fff;
  box-shadow:0 9px 29px #8f54e43d;
}
.nf-body .nf-header-account:hover,.nf-body .button.primary:hover{
  background:linear-gradient(100deg,#9b6beb,#cd65d1,#e876bf);
  box-shadow:0 10px 34px #c55de077;
}
.nf-body .nf-header-account:focus-visible,
.nf-body .button:focus-visible,
.nf-body .zvp-music-button:focus-visible{
  outline:2px solid #aeeffe;outline-offset:3px;
}
.nf-body .button.outline{
  background:#101125;border-color:#7967b0;color:#f0e6ff;
}
.nf-body .button.outline:hover{background:#2c2347;border-color:#ad9ceb}
.nf-body .nf-hero{
  background:
    radial-gradient(ellipse at 78% 30%,#513a9275 0%,transparent 51%),
    radial-gradient(ellipse at 24% 93%,#1b618343,transparent 60%),
    linear-gradient(115deg,#080919 0%,#101126 39%,#1d1938 75%,#0b0f23 100%);
  border-bottom-color:#7252b47e;
}
.nf-body .nf-hero-grid{
  opacity:.12;
  background-image:linear-gradient(90deg,#a58ce78a 1px,transparent 1px),linear-gradient(#9d79e15a 1px,transparent 1px);
}
.nf-body .nf-hero-glow{
  background:radial-gradient(ellipse,#8769ed65,transparent 62%);
  filter:blur(15px);
}
.nf-body .nf-hero .zvp-hero-smoke{
  background:radial-gradient(ellipse at center,#a97bf53d 0%,#5e63c62a 33%,transparent 73%);
}
.nf-body .nf-hero .zvp-hero-smoke.smoke-left{
  background:radial-gradient(ellipse at center,#4bd4ed2b,transparent 73%);
}
.nf-body .nf-hero .zvp-ember{
  background:#a8ecff;
  box-shadow:0 0 10px #80dbffbc,0 0 5px #dfa5ff;
}
.nf-body .nf-hero-copy{z-index:6}
.nf-body .nf-hero-copy>p{color:#d9d2ed}
.nf-body .nf-hero h1{
  text-shadow:0 5px 32px #050618df,0 0 35px #856ce562;
}
.nf-body .nf-hero h1 span{
  color:#d0afff;
  background:linear-gradient(100deg,#f4b9f1 0%,#bba7ff 49%,#82eaff 100%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 16px #9272ee82);
}
.nf-body .nf-hero-facts span{color:#9fbbeb}
.nf-body .nf-hero-facts b{color:#e9e2ff}
.nf-body .nf-hero-visual{
  height:510px;
  overflow:visible;
  isolation:isolate;
  z-index:1;
  /* motion depth inherits --zvp-x/--zvp-y from the parent hero */
}
.nf-body .nf-hero-visual:before{
  inset:10px -10% -20px -10%;
  background:radial-gradient(ellipse at 55% 56%,#a77af85b,transparent 64%);
  filter:blur(29px);
  opacity:.78;
}
.nf-body .zvp-night-city{
  position:absolute;inset:-15px -13% -12px -10%;
  pointer-events:none;overflow:visible;
  background-position:center bottom;
  background-size:100% auto;
  background-repeat:no-repeat;
}
.nf-body .zvp-night-city-back{
  z-index:0;opacity:.86;
  transform:translate3d(calc(var(--zvp-x)*-11px),calc(var(--zvp-y)*-8px),0) scale(1.07);
  background-image:url('/experience-assets/night-city-back.svg');
  filter:drop-shadow(0 4px 18px #3852bf48);
}
.nf-body .zvp-night-city-near{
  z-index:2;opacity:.9;
  transform:translate3d(calc(var(--zvp-x)*21px),calc(var(--zvp-y)*13px),0) scale(1.04);
  background-image:url('/experience-assets/night-city-near.svg');
  filter:drop-shadow(0 0 14px #26baf14a);
}
.nf-body .zvp-night-halo{
  pointer-events:none;position:absolute;z-index:1;
  width:440px;height:460px;left:28%;top:3%;
  background:
    radial-gradient(ellipse at 50% 48%,#7eeaff2c,transparent 47%),
    radial-gradient(ellipse at 65% 45%,#d581fd4c,transparent 66%);
  filter:blur(27px);
  transform:translate3d(calc(var(--zvp-x)*-5px),calc(var(--zvp-y)*-3px),0);
}
.nf-body .zvp-night-character{
  z-index:3;position:absolute;
  height:108%;width:auto;max-width:none;
  right:-11%;bottom:-18px;
  object-fit:contain;object-position:bottom center;
  filter:drop-shadow(0 0 12px #80b7ffb1) drop-shadow(-15px 19px 33px #020313d9);
  transform:translate3d(calc(var(--zvp-x)*30px),calc(var(--zvp-y)*20px),0);
  will-change:auto;
}
.nf-body .zvp-night-emblem{
  z-index:4;position:absolute;right:-1%;bottom:3%;
  width:70px;height:70px;object-fit:cover;opacity:.75;
  border-radius:16px;box-shadow:0 0 22px #8b74ff47;
  transform:translate3d(calc(var(--zvp-x)*38px),calc(var(--zvp-y)*21px),0);
}
.nf-body .zvp-night-neon-line{
  z-index:2;position:absolute;left:-8%;right:-3%;bottom:11%;
  height:2px;background:linear-gradient(90deg,transparent,#75e6ff64 42%,#d48afc 70%,transparent);
  box-shadow:0 0 18px #a68bff78;
  transform:translate3d(calc(var(--zvp-x)*16px),calc(var(--zvp-y)*8px),0);
}
.nf-body #home .nf-section-head h2,
.nf-body .page-title h1{
  text-shadow:0 0 19px #8662d84d;
}
.nf-body #home .nf-section-head h2 em,
.nf-body .page-title h1 em,
.nf-body .section-heading h2 em{
  color:#c9a9ff;
  text-shadow:0 0 18px #9561e66e,0 0 32px #5333c655;
}
.nf-body #home .nf-section-kicker,
.nf-body .eyebrow{color:#8de5fc}
.nf-body #home .nf-section-kicker i,
.nf-body .nf-online-dot{background:#7ae5f7;box-shadow:0 0 12px #74e9ff98}
.nf-body #home .nf-online-summary{color:#a9c5ef}
.nf-body #home .nf-feature,
.nf-body #home .nf-universe-card,
.nf-body .server-card{
  border-color:#6254887e;
  background:linear-gradient(150deg,#1e1a34,#100f22 76%);
}
.nf-body #home .nf-feature:hover,
.nf-body #home .nf-universe-card:hover,
.nf-body .server-card:hover{
  border-color:#aa9bef;
  box-shadow:0 15px 38px #885bd424,0 0 17px #5fbbff16;
}
.nf-body #home .nf-feature-icon{
  background:#342457;color:#d7b0ff;
}
.nf-body #home .nf-feature-number,
.nf-body #home .nf-feature-arrow,
.nf-body #home .nf-universe-info p,
.nf-body #home .nf-universe-info>span{color:#c2a4fb}
.nf-body #home .nf-universe-card.nf-humans{
  background:radial-gradient(ellipse at 65% 20%,#554178,#151427 74%);
}
.nf-body #home .nf-universe-card.nf-zombies{
  background:radial-gradient(ellipse at 65% 20%,#373a73,#13142a 74%);
}
.nf-body #home .nf-universe-card.nf-weaponry{
  background:radial-gradient(ellipse at 65% 20%,#3c4781,#15172b 77%);
}
.nf-body #home .zvp-weapon-showcase{
  border-color:#7663b49a;
  background:radial-gradient(ellipse at 75% 14%,#574385a1,transparent 58%),linear-gradient(135deg,#1a1834,#0e1022);
}
.nf-body #home .zvp-demo-visual{
  border-color:#5e65a898;
  background:radial-gradient(ellipse at center,#5849a06c,#211c43a9 55%,#0e1125);
}
.nf-body #home .zvp-demo-visual:before{border-color:#a5a9f46c;box-shadow:0 0 40px #9456fb5a}
.nf-body #home .zvp-demo-type{color:#8ceeff}
.nf-body #home .zvp-stat-fill{background:linear-gradient(90deg,#6858c6,#b66beb,#72dff5)}
.nf-body #home .zvp-stat-track{background:#262747;border-color:#57588e}
.nf-body #home .zvp-weapon-pick{
  background:#17162e;border-color:#665687;color:#dacff4;
}
.nf-body #home .zvp-weapon-pick[aria-pressed=true]{
  background:linear-gradient(140deg,#493872,#322b67);
  border-color:#b7a1ff;box-shadow:0 0 21px #926eff35;
}
.nf-body #home .zvp-demo-open{color:#a3e9ff}
.nf-body #home .zvp-panorama{border-color:#8871b0;background:#0b1228}
.nf-body #home .zvp-panorama-title{color:#a4e9ff}
.nf-body .zvp-music-button{
  border-color:#7f69b8;color:#d4bafa;
  background:linear-gradient(135deg,#2a2148,#15172c);
}
.nf-body .zvp-music-button[aria-pressed=true]{
  background:#5c458e;border-color:#af9dff;box-shadow:0 0 17px #8d83ff57;
}
.nf-body .footer{background:#090c1c;border-top-color:#4f4387}
.nf-body .nf-footer-col a{color:#c2b1e9}
.nf-body .nf-footer-col a:hover{color:#84eaff}
.nf-body .nf-footer-end a{color:#addffb}
.nf-body #account .account-shell,.nf-body .account-panel{border-color:#614f97}
.nf-body #account .account-dashboard-tabs [role=tab][aria-selected=true]{
  background:#6646b2;border-color:#ac93e5;
}
.nf-body #guide .ency-directory-card{
  border-color:#625185;background:linear-gradient(135deg,#24203f,#151629);
}
.nf-body #guide .ency-directory-card:hover{border-color:#b3a2ff}
@media(max-width:1100px){
 .nf-body .zvp-night-character{height:102%;right:-12%}
 .nf-body .zvp-night-city{inset:-10px -16% 0 -13%}
}
@media(max-width:800px){
 .nf-body .nf-hero-visual{height:365px}
 .nf-body .zvp-night-character{height:119%;right:1%;bottom:-8px}
 .nf-body .zvp-night-city{inset:-15px -5% -5px -5%;background-size:auto 92%}
 .nf-body .zvp-night-emblem{width:55px;height:55px;right:1%}
 .nf-body .zvp-night-halo{left:18%;top:-3%;height:330px;width:330px}
 .nf-body .zvp-night-city-back,
 .nf-body .zvp-night-city-near,
 .nf-body .zvp-night-character,
 .nf-body .zvp-night-halo,
 .nf-body .zvp-night-neon-line,
 .nf-body .zvp-night-emblem{transform:none}
}
@media(max-width:560px){
 .nf-body .nf-hero-visual{height:285px}
 .nf-body .zvp-night-character{height:116%;right:-3%;bottom:-10px}
 .nf-body .zvp-night-city{background-size:auto 98%;opacity:.78}
 .nf-body .zvp-night-halo{width:290px;height:270px;left:11%;top:0}
 .nf-body .zvp-night-emblem{width:44px;height:44px;right:0;bottom:6%}
 .nf-body .zvp-night-neon-line{bottom:8%}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-night-city-back,.nf-body .zvp-night-city-near,
 .nf-body .zvp-night-character,.nf-body .zvp-night-halo,
 .nf-body .zvp-night-neon-line,.nf-body .zvp-night-emblem{transform:none!important}
}

.nf-body .nf-hero:after{background:linear-gradient(transparent,#0a0b19)}


/* Night colors inside legacy sections; preserve all controls and 3D rendering logic. */
.nf-body .server-card:before{background:linear-gradient(90deg,#6b8bf4,#b16cf2,#64d9ef)}
.nf-body .server-index,.nf-body .server-map,.nf-body .server-map strong{color:#a5b8fc}
.nf-body .server-status{border-color:#7560b1;background:#211c3e}
.nf-body #weapons .armory-config{
  background:linear-gradient(145deg,#1b1933,#0d1225 85%);
  border-color:#615b9d;
}
.nf-body #weapons .armory-stage{
  background:radial-gradient(ellipse at 50% 40%,#34325d 0%,#19172d 51%,#080b18 100%);
  border-color:#7366ac;
}
.nf-body #weapons .armory-slot{
  background:linear-gradient(145deg,#252041,#15162b);
  border-color:#655b97;
}
.nf-body #weapons .armory-slot:hover,
.nf-body #weapons .armory-slot:focus-visible{border-color:#b8a6ff}
.nf-body #weapons .armory-slot-type,
.nf-body #weapons .armory-slot-action{color:#bcb2fc}
.nf-body #weapons .armory-stage-controls button{
  background:#1b1938;border-color:#62559a;color:#e9e4ff;
}
.nf-body #weapons .armory-stage-controls button:hover{border-color:#a9dffa}
.nf-body #weapons .armory-picker-window{
  background:#16152c;border-color:#8171b2;
}
.nf-body #weapons .armory-picker-item{
  background:#201b3b;border-color:#66558c;
}
.nf-body #weapons .armory-picker-item:hover,
.nf-body #weapons .armory-picker-item.selected{background:#31234e;border-color:#ac9bea}
.nf-body #account .account-panel{background:#161428}
.nf-body #account .account-aside{
  background:linear-gradient(135deg,#211b3b,#101328);
}
.nf-body #account .account-meta>div{background:#1d1935}

/* ZvsP theme source 10: midnight-unified.css */
/* Zombie vs People / Midnight Neon — cohesive site-wide visual theme.
   Built over existing working CSS; leaves API, WebGL canvas and markup intact. */
:root{color-scheme:dark}
.nf-body{
  --bg:#080c1e; --bg2:#14152f; --panel:#17152f; --line:#564d87;
  --text:#f3f2ff; --muted:#b7a6ed; --acid:#b994ff;
  --night-ink:#080b1c; --night-panel:#15142d; --night-mid:#211b3b;
  --night-border:#665d9a; --night-blue:#77dfff;
  --night-violet:#b29bff; --night-pink:#f38bcf;
  --night-white:#f6f3ff;
  background:
    radial-gradient(ellipse 650px 550px at 94% 13%,#283c8752,transparent 75%),
    radial-gradient(ellipse 900px 720px at -8% 72%,#57297532,transparent 75%),
    #080b19;
  color:var(--night-white);
}
.nf-body::before{
  background:
    linear-gradient(90deg,transparent 48%,#a29cfe08 49%,transparent 50%),
    radial-gradient(circle at 10% 14%,#704cc128,transparent 42%),
    radial-gradient(circle at 92% 85%,#2f82a424,transparent 40%);
  background-size:110px 110px,auto,auto;
  opacity:.8;
}
.nf-body :is(button,a,input,textarea,select):focus-visible{
  outline:2px solid #93eaff;outline-offset:3px;
}
.nf-body .nf-header{
  background:linear-gradient(102deg,#090e27f5,#221438f3 57%,#101735f8);
  border-bottom-color:#928ce758;
  box-shadow:0 2px 0 #ec93ff20,0 9px 35px #080c20ca;
}
.nf-body .nf-brand-image{
  border-color:#a891ff99;box-shadow:0 0 17px #a95eff62;
}
.nf-body .nf-brand .brand-label strong{
  text-shadow:0 0 18px #ad87ff80;
}
.nf-body .nf-brand .brand-label strong span{
  color:#f7a2ef; text-shadow:0 0 17px #e478d49e;
}
.nf-body .nf-brand .brand-label small{color:#a9dffe}
.nf-body .nf-header .menu>a{color:#d4cef6}
.nf-body .nf-header .menu>a:is(:hover,.active,:focus-visible){
  color:#ffe4fe;text-shadow:0 0 16px #e99ad7a6;
}
.nf-body .nf-header .menu>a:after{
  background:linear-gradient(90deg,#8169ef,#f085d6,#8bdff9);
  box-shadow:0 0 9px #e998ee;
}
.nf-body .nf-header-account,.nf-body .nf-header-play,.nf-body .button.primary{
  background:linear-gradient(115deg,#7048bd,#a75ad4 48%,#e976c0);
  border:1px solid #e2b3ff8e;color:#fff;
  box-shadow:0 0 20px #bd6bf344,0 8px 23px #0b061c77;
}
.nf-body .nf-header-account:hover,.nf-body .button.primary:hover{
  background:linear-gradient(110deg,#8c5ae7,#b866ef,#ee8aca);
  box-shadow:0 0 24px #b56de18a,0 10px 28px #0b061caa;
}
.nf-body .button.outline{
  border-color:#7169b9;color:#e5e7ff;
  background:linear-gradient(140deg,#161632,#131427);
}
.nf-body .button.outline:hover{border-color:#a5e8fa;background:#232448}
.nf-body .zvp-music-button{
  border-color:#8974c7;background:#211a45;color:#dbc7ff;
  box-shadow:inset 0 0 12px #8c6edc1a;
}
.nf-body .zvp-music-button[aria-pressed=true]{
  background:linear-gradient(140deg,#513b92,#9b4aa8);
  border-color:#df94fa;box-shadow:0 0 20px #c078e76b;
}
.nf-body .nf-body .nf-status-pulse{background:#6cdbac}

/* HERO: distinct city background, midground, alpha-cutout person and foreground.
   JS updates --zvp-x/y only while the home scene is active & visible. */
.nf-body .nf-hero{
  border-bottom:1px solid #b279ef65;
  box-shadow:inset 0 -2px 0 #985ae635;
}
.nf-body .nf-hero:after{background:linear-gradient(transparent,#070b1cd9)}
.nf-body .nf-hero-visual{
  filter:drop-shadow(0 8px 35px #220d4b50);
}
.nf-body .zvp-night-city-back{
  background-position:center bottom;
  background-size:cover;
  filter:drop-shadow(0 0 24px #3f50a19c);
}
.nf-body .zvp-night-city-near{
  background-position:center bottom;
  filter:drop-shadow(0 0 12px #6b75fa8c);
}
.nf-body .zvp-night-character{
  filter:drop-shadow(-4px 8px 20px #09031eaa)
         drop-shadow(0 0 15px #84bbffad)
         drop-shadow(0 0 24px #b569eb73);
}
.nf-body .zvp-hero-eyebrow{
  display:inline-flex;align-items:center;gap:9px;
  font:900 10px/1.4 Manrope,Arial,sans-serif;
  letter-spacing:2px;text-transform:uppercase;color:#a8e5ff;
  text-shadow:0 0 13px #6ac8fa79;
  padding:8px 13px;border:1px solid #6382c763;
  background:#15132eac;border-radius:5px;
}
.nf-body .zvp-hero-eyebrow:before{
  content:"";width:7px;height:7px;border-radius:100%;
  background:#8deaff;box-shadow:0 0 0 4px #54e4fa16,0 0 13px #80eafd;
}
.nf-body .nf-hero h1{
  font-size:clamp(55px,6.2vw,91px);
  letter-spacing:.1px;
  text-shadow:0 5px 26px #040719,0 0 33px #9369eb6e;
}
.nf-body .nf-hero h1 span{
  background:linear-gradient(105deg,#fbabef 0%,#c2a2ff 52%,#95e6ff 100%);
  background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;
  filter:drop-shadow(0 0 16px #a36feb87);
}
.nf-body .nf-hero-copy>p{
  color:#d8dafb;font-size:13px;line-height:1.9;
  text-shadow:0 2px 6px #080c15;
}
.nf-body .nf-hero-facts span{color:#a8b8ec}
.nf-body .nf-hero-facts b{color:#fff;text-shadow:0 0 12px #8d7efa}

/* Shared night-city accents on EVERY internal page. */
.nf-body .page:not(.nf-home):not(.armory-page){
  background:
    radial-gradient(ellipse 850px 490px at 96% 10%,#20285a2b,transparent 75%),
    radial-gradient(ellipse 700px 520px at -15% 65%,#47215f21,transparent 70%);
}
.nf-body .page-inner{position:relative}
.nf-body .page:not(.nf-home) .page-title,
.nf-body .page:not(.nf-home) .ency-section-title{
  position:relative;
  margin:0 0 32px;
  padding:36px 32px 37px;
  min-height:210px;
  overflow:hidden;
  isolation:isolate;
  border:1px solid #5f619d9b;
  border-radius:15px;
  background:
    linear-gradient(90deg,#131327f5 0%,#16172eea 39%,#161c34a1 65%,#191533b9 100%),
    url("/experience-assets/night-city-back.svg") center 52% /cover no-repeat;
  box-shadow:inset 0 0 45px #27224b48,0 11px 48px #06091d72;
}
.nf-body .page:not(.nf-home) .page-title:before,
.nf-body .page:not(.nf-home) .ency-section-title:before{
  position:absolute;inset:0;content:"";z-index:-1;pointer-events:none;
  background:
    radial-gradient(circle at 87% 29%,#9f6af849,transparent 27%),
    linear-gradient(0deg,#1e20425a,transparent 54%);
}
.nf-body .page:not(.nf-home) .page-title:after,
.nf-body .page:not(.nf-home) .ency-section-title:after{
  content:"";position:absolute;pointer-events:none;bottom:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,#79d9f9,#c67ef2,transparent);
  box-shadow:0 0 19px #b48afa9a;
}
.nf-body .page:not(.nf-home) .page-title h1,
.nf-body .page:not(.nf-home) .ency-section-title h1{
  color:#f5f1ff;letter-spacing:.5px;
  text-shadow:0 0 24px #a78cf866,0 6px 20px #090e26;
  position:relative;
}
.nf-body .page:not(.nf-home) .page-title h1 em,
.nf-body .page:not(.nf-home) .ency-section-title h1 em{
  font-style:normal;
  color:#d9afff;
  text-shadow:0 0 20px #b785ff8e,0 0 35px #775ee26e;
}
.nf-body .page:not(.nf-home) .page-title p,
.nf-body .page:not(.nf-home) .ency-section-title p{
  color:#d3d5f3;line-height:1.8;position:relative;max-width:760px;
}
.nf-body .page:not(.nf-home) .eyebrow{
  color:#8bddfa;text-shadow:0 0 13px #57caff8c;
  font-weight:900;letter-spacing:1.9px;
}
.nf-body .page:not(.nf-home) .page-title .eyebrow,
.nf-body .page:not(.nf-home) .ency-section-title .eyebrow{margin-bottom:10px}
.nf-body :is(.page-title,.ency-section-title,.nf-section-head,.shop-section-head) h1,
.nf-body :is(.page-title,.ency-section-title,.nf-section-head,.shop-section-head) h2{
  text-wrap:balance;
}
.nf-body #home .nf-section-head h2{
  color:#f7f3ff;text-shadow:0 0 20px #916ce07a;
}
.nf-body #home .nf-section-head h2 em{
  color:#d1acfa;text-shadow:0 0 18px #af82fdae;
}
.nf-body #home .nf-section-kicker{color:#88e2fa}
.nf-body #home .nf-text-link{color:#b8eaff}
.nf-body #home .nf-text-link:hover{color:#f6bcfd}
.nf-body #home .nf-online-summary{color:#b9c5e6}
.nf-body #home .nf-feature,
.nf-body #home .nf-universe-card{
  background:linear-gradient(140deg,#21203d,#10142c 78%);
  border-color:#626aab80;
  box-shadow:0 10px 32px #080b1c5c;
}
.nf-body #home .nf-feature:is(:hover,:focus-visible),
.nf-body #home .nf-universe-card:is(:hover,:focus-visible){
  border-color:#bf9eff;
  box-shadow:0 12px 36px #8758e437,0 0 18px #7695fa30;
}
.nf-body #home .nf-feature-icon{background:#332452;color:#dcb1ff}
.nf-body #home .nf-universe-info{
  background:linear-gradient(transparent,#0c0d22f1 31%);
}
.nf-body #home .nf-universe-info p{color:#b7c8fc}

/* Server cards retain green 'online' as a meaningful status. */
.nf-body .server-card{
  position:relative;overflow:hidden;
  background:linear-gradient(155deg,#202141,#11152d 72%);
  border:1px solid #6666a588;border-radius:14px;
  box-shadow:0 15px 38px #080b1d99;
}
.nf-body .server-card:before{
  background:linear-gradient(90deg,#6ed9fa,#bc85f4,#f284d2);
  box-shadow:0 0 15px #ad7bfb75;
}
.nf-body .server-card h3{
  color:#f7f5ff;text-shadow:0 0 11px #8a7cea65;
}
.nf-body .server-index,.nf-body .server-map,.nf-body .population{
  color:#abc6f9;
}
.nf-body .server-map strong{color:#e5dfff}
.nf-body .server-status:not(.offline):not(.unknown){
  color:#a2ecc0;border-color:#4f8e73;background:#182b2a;
}
.nf-body .server-ip{color:#e7dafa}
.nf-body .progress{background:#303056}
.nf-body .progress>span{
  background:linear-gradient(90deg,#526ee0,#af74ff,#79e1f6);
  box-shadow:0 0 12px #8a8dfb70;
}
.nf-body .copy-btn{background:#252444;border-color:#6f6ab3;color:#dfe3ff}
.nf-body .copy-btn:hover{background:#393260;border-color:#a49cff}
.nf-body .join{
  background:linear-gradient(130deg,#7265db,#c470d7);
  box-shadow:0 0 16px #8273de43;
}

/* 3D arsenal: change shell and controls, NOT the renderer or its canvas. */
.nf-body #weapons{
  background:radial-gradient(ellipse 900px 640px at 70% 6%,#2f285e55,transparent 75%),#090c1c;
}
.nf-body #weapons .armory-config{
  border:1px solid #7468bb;
  border-radius:16px;
  background:linear-gradient(135deg,#201a3c,#10152e 74%);
  box-shadow:0 0 38px #6c56b21b,0 24px 50px #05091ac0;
}
.nf-body #weapons .armory-heading h1,
.nf-body #weapons .armory-heading h2{
  color:#f9f4ff;text-shadow:0 0 22px #ad7ded9c;
}
.nf-body #weapons .armory-heading h1 em,
.nf-body #weapons .armory-heading h2 em{
  color:#d8abff;text-shadow:0 0 19px #d58cfa88;
}
.nf-body #weapons .armory-heading p,.nf-body #weapons .armory-clarification{
  color:#ced6f5;
}
.nf-body #weapons .armory-preview-badge{
  background:#242041;border-color:#9b80bd;color:#dfcef8;
}
.nf-body #weapons .armory-warning{
  background:#302b36;border-color:#a78765;color:#ffe4af;border-radius:8px;
}
.nf-body #weapons .armory-slot{
  border-color:#7469af;background:linear-gradient(135deg,#282348,#17172f);
  box-shadow:inset 0 0 13px #694db416;
}
.nf-body #weapons .armory-slot:is(:hover,:focus-visible,.armory-previewing){
  border-color:#a8bcff;box-shadow:0 0 17px #9875f440;
}
.nf-body #weapons .armory-slot-type{color:#aeb9ff}
.nf-body #weapons .armory-slot-name{color:#eeeaff}
.nf-body #weapons .armory-slot-action{color:#a0edfd}
.nf-body #weapons .armory-stage{
  background:radial-gradient(ellipse at center 42%,#3a306e,#19172e 54%,#080c20 100%);
  border-color:#746aaf;
  box-shadow:inset 0 0 50px #3830883a,0 0 27px #7555b02e;
}
.nf-body #weapons .armory-stage-controls button{
  background:#242247;border-color:#655aa4;color:#eeeaff;
}
.nf-body #weapons .armory-stage-controls button:is(:hover,:focus-visible){
  border-color:#a3e5ff;background:#33305e;
}
.nf-body #weapons .armory-picker-window{
  background:#13162b;border-color:#8072bd;
  box-shadow:0 0 70px #070a19d9,0 0 30px #9f69e435;
}
.nf-body #weapons .armory-picker-item{
  background:#211d3e;border-color:#655c95;
}
.nf-body #weapons .armory-picker-item:is(:hover,.selected){
  background:#34265a;border-color:#b4a0fa;
}
.nf-body #weapons .armory-picker-filter,
.nf-body #weapons .armory-picker-category{
  border-color:#7162a4;color:#d5c7fb;background:#211d3d;
}

/* Encyclopedia and detailed cards across all four inner routes. */
.nf-body .ency-directory-card{
  background:linear-gradient(135deg,#292247,#151830 85%);
  border:1px solid #665d9c;border-radius:13px;
  box-shadow:0 12px 28px #060b1c4c;
}
.nf-body .ency-directory-card:is(:hover,:focus-visible){
  border-color:#be9aff;box-shadow:0 15px 31px #8d5ce544;
}
.nf-body .ency-directory-card .ency-number{color:#9fe6ff}
.nf-body .ency-directory-card .ency-symbol{color:#ab94f544;text-shadow:0 0 24px #a279fc63}
.nf-body .ency-directory-bottom strong{
  color:#faf6ff;text-shadow:0 0 13px #9f83f876;
}
.nf-body .ency-directory-bottom small{color:#d2c9ef}
.nf-body .ency-arrow{border-color:#8b75be;color:#bbeafe;border-radius:6px}
.nf-body .ency-directory-card:hover .ency-arrow{background:#8162c3;color:#fff}
.nf-body .ency-breadcrumb{color:#b1aff3}
.nf-body .ency-breadcrumb a{color:#8fe7ff}
.nf-body .ency-footnote{color:#b8aed4}
.nf-body :is(.ency-wiki-card,.ency-item-card,.ency-wiki-model-card,
              .ency-wiki-hero,.ency-detail,.ency-empty){
  border-color:#63598e;background:#171630;color:#f4efff;
}
.nf-body :is(.ency-wiki-card,.ency-item-card,.ency-wiki-model-card):is(:hover,:focus-visible){
  border-color:#ad91eb;
  box-shadow:0 12px 27px #5b3dab50;
}
.nf-body .ency-wiki-card-caption strong{color:#f7f1ff}
.nf-body .ency-wiki-card-caption small{color:#b5b8fa}
.nf-body :is(.ency-wiki-gender-tab,.ency-wiki-zombie-tab,.ency-wiki-filter){
  background:#211d3b;color:#d6cbfb;border-color:#645998;
}
.nf-body :is(.ency-wiki-gender-tab,.ency-wiki-zombie-tab,.ency-wiki-filter).active,
.nf-body :is(.ency-wiki-gender-tab,.ency-wiki-zombie-tab,.ency-wiki-filter).selected{
  border-color:#b999f9;background:#554087;color:#fff;
}
.nf-body :is(.ency-wiki-search input,.ency-search input,.ency-wiki-search select){
  color:#fff;background:#13162c;border-color:#625ca7;
}
.nf-body .ency-wiki-stat{border-color:#635494;background:#221c42}
.nf-body .ency-wiki-ability{background:#201b40;border-color:#66598a}
.nf-body .zvp-lightbox-stage{background:#14132a}
.nf-body .zvp-lightbox-close{color:#e9d6ff}

/* Personal account / forms / security inherit the same midnight palette. */
.nf-body #account .account-shell{
  border-color:#7065ae;border-radius:14px;overflow:hidden;
  background:linear-gradient(135deg,#211a39,#0e142a);
  box-shadow:0 18px 43px #05071a7a;
}
.nf-body #account .account-aside{
  background:radial-gradient(circle at 45% 20%,#4f3f8b74,#1c1b3f 64%,#11162c);
  border-right-color:#6e5ca1;
}
.nf-body #account .account-aside h2{
  color:#faf6ff;text-shadow:0 0 23px #a27ef57c;
}
.nf-body #account .account-aside h2 em{color:#cbacff}
.nf-body #account .account-aside>p{color:#c6c5ee}
.nf-body #account .account-panel{background:#15152c;color:#eae7ff}
.nf-body #account .account-tabs{border-bottom-color:#64558c}
.nf-body #account .account-tabs button{color:#c7bff2}
.nf-body #account .account-tabs button.selected{
  color:#a9e9ff;border-color:#9e9dff;
  text-shadow:0 0 12px #7ccafa70;
}
.nf-body #account .account-form label{color:#d3cff0}
.nf-body #account .account-form input,
.nf-body #account .account-form select,
.nf-body #account .account-form textarea{
  background:#101429;border:1px solid #655b9c;
  color:#faf5ff;border-radius:7px;
}
.nf-body #account .account-form input:focus,
.nf-body #account .account-form textarea:focus,
.nf-body #account .account-form select:focus{
  border-color:#91dffb;box-shadow:0 0 0 3px #7bcdfb18;
}
.nf-body #account .account-form input::placeholder,
.nf-body #account .account-form textarea::placeholder{color:#9286b4}
.nf-body #account .account-dashboard-tabs{
  background:#10172e;border-color:#62568e;
}
.nf-body #account .account-dashboard-tabs [role=tab]{color:#c3b5ed}
.nf-body #account .account-dashboard-tabs [role=tab][aria-selected=true]{
  background:linear-gradient(120deg,#6249a1,#9751bf);
  border-color:#bfa4f0;color:#fff;
}
.nf-body #account .account-identity{border-color:#675899}
.nf-body #account .account-avatar{border-color:#8770c0;box-shadow:0 0 17px #906cf338}
.nf-body #account .account-pane-intro h3{color:#f5eeff;text-shadow:0 0 17px #ba83f681}
.nf-body #account .account-pane-intro p{color:#c5c4e7}
.nf-body #account .account-info-note,
.nf-body #account .account-security{
  background:#22203d;border-color:#675893;
}
.nf-body #account .account-mail-status{background:#332a44;border-color:#bda36c;color:#efcfb3}
.nf-body #account .account-meta>div{background:#201d3a;border-color:#62528d}
.nf-body #account .account-hint{color:#bcb8e2}

/* The shop stays disabled; only its visual treatment changes. */
.nf-body #shop .shop-shutdown{
  background:linear-gradient(115deg,#33304b,#171b31);
  border-color:#a58e77;color:#ead6bb;border-radius:10px;
}
.nf-body #shop .shop-shutdown strong{color:#ffe3bb}
.nf-body #shop .shop-shutdown p{color:#e4d6c5}
.nf-body #shop .shop-product,
.nf-body #shop .shop-coming{
  background:linear-gradient(145deg,#221c3b,#14172e);
  border-color:#6c639d;border-radius:12px;
}
.nf-body #shop .shop-price strong{color:#e9e3fb}
.nf-body #shop .shop-soldout{color:#cabce5;border-color:#796d9b}
.nf-body #shop .shop-section-head>span{color:#8ce0fd}
.nf-body #shop .shop-section-head h2{color:#f6f0ff;text-shadow:0 0 16px #a375ed66}
.nf-body #shop .shop-section-head h2 em{color:#d8adff;text-shadow:0 0 17px #ae7bfa7c}
.nf-body #shop .shop-section-head p,
.nf-body #shop .shop-disclaimer{color:#c7c4e5}

/* Footer & miscellaneous shared card treatment. */
.nf-body .nf-footer,.nf-body .footer{
  background:#090c1b;border-top-color:#59518b;
}
.nf-body .nf-footer-brand strong{color:#f5edff}
.nf-body .nf-footer-brand em{color:#d5a3ff}
.nf-body .nf-footer-col a{color:#c3b5ec}
.nf-body .nf-footer-col a:hover{color:#9edfff}
.nf-body .nf-footer-end a{color:#c4e5ff}
.nf-body .nf-footer-brand p{color:#b1a6d2}
.nf-body :is(.guide-box,.feature-grid article,.rule-list details){
  border-color:#655998;background:#1d1937;
}
.nf-body .zvp-weapon-showcase{
  background:radial-gradient(ellipse at 78% 5%,#5339828a,transparent 60%),linear-gradient(145deg,#1b1739,#0e142b);
  border-color:#6656ac;
}
.nf-body .zvp-demo-visual{
  background:radial-gradient(circle at center,#5145a16c,#1e1b43 68%,#0c1227);
  border-color:#7661b3;
}
.nf-body .zvp-demo-type{color:#a5e5ff}
.nf-body .zvp-demo-visual:before{border-color:#aa99fb70;box-shadow:0 0 43px #845fe76a}
.nf-body .zvp-stat-track{background:#282949;border-color:#6561a2}
.nf-body .zvp-stat-fill{
  background:linear-gradient(90deg,#6566d7,#a879e9,#75dcfb);
  box-shadow:0 0 10px #8daaf778;
}
.nf-body .zvp-weapon-pick{border-color:#6b62a6;background:#1b1b37;color:#d7cdf1}
.nf-body .zvp-weapon-pick[aria-pressed=true]{
  background:linear-gradient(135deg,#4a367f,#3b397e);
  border-color:#b7a8ff;
}
.nf-body .zvp-demo-open{color:#9fe6ff}
.nf-body .zvp-panorama{border-color:#7e67bd;background:#0d132c}
.nf-body .zvp-panorama-title{color:#c7b8ff;background:linear-gradient(#0e102de8,transparent)}
.nf-body .zvp-panorama-card:after{background:linear-gradient(0deg,#0a0d20ef,transparent 65%,#11112a5e)}
.nf-body .zvp-panorama-card span{color:#f4e9ff}

/* Responsive: prioritize readable forms, viewport width and touch controls. */
@media(max-width:960px){
  .nf-body .page:not(.nf-home) .page-title,
  .nf-body .page:not(.nf-home) .ency-section-title{
    padding:27px 23px;min-height:unset;
  }
}
@media(max-width:800px){
  .nf-body .nf-hero h1{font-size:clamp(47px,8.2vw,67px)}
  .nf-body .nf-hero-visual{height:360px}
  .nf-body #account .account-aside{border-right:0;border-bottom:1px solid #63539d}
  .nf-body .page:not(.nf-home) .page-title,
  .nf-body .page:not(.nf-home) .ency-section-title{
    padding:24px 19px;
  }
}
@media(max-width:560px){
  .nf-body .nf-hero h1{font-size:clamp(45px,11vw,60px)}
  .nf-body .zvp-hero-eyebrow{font-size:8px;letter-spacing:1.15px;padding:6px 10px}
  .nf-body .nf-hero-visual{height:290px}
  .nf-body .page:not(.nf-home) .page-title h1,
  .nf-body .page:not(.nf-home) .ency-section-title h1{font-size:clamp(33px,9vw,54px)}
  .nf-body .page:not(.nf-home) .page-title p,
  .nf-body .page:not(.nf-home) .ency-section-title p{font-size:11px}
  .nf-body #weapons .armory-config{border-radius:10px}
  .nf-body #account .account-shell{border-radius:9px}
}
@media(prefers-reduced-motion:reduce){
  .nf-body .zvp-night-city,
  .nf-body .zvp-night-character,
  .nf-body .zvp-night-emblem{transform:none!important;transition:none!important}
  .nf-body :is(.nf-feature,.nf-universe-card,.server-card,.ency-wiki-card,.ency-directory-card){
    animation:none!important;
  }
}

/* ZvsP theme source 11: neon-complete.css */
/* Zombie vs People — Midnight City complete component pass.
   Updated 2026-11-02: deliberately placed AFTER every existing theme stylesheet.
   Purely visual: account API, catalog metadata, payment restrictions and WebGL are untouched. */
.nf-body {
 --zv-neon-night:#090c21; --zv-neon-deep:#11132d;
 --zv-neon-panel:#1b1a3b; --zv-neon-panel-light:#29254c;
 --zv-neon-line:#726ab2; --zv-neon-line-bright:#b0a4fc;
 --zv-neon-pink:#ee94ea; --zv-neon-blue:#85e2ff;
 --zv-neon-text:#f5f3ff; --zv-neon-sub:#c9c9f3;
 --zv-neon-muted:#a9aedc;
}
.nf-body :is(.page,.page-inner,.nf-home-body){color:var(--zv-neon-text)}
.nf-body :is(.caption,.eyebrow,.overline,.nf-section-kicker,.nf-feature-number){
 color:var(--zv-neon-blue);
}
.nf-body :is(.page-title,.nf-section-head,.ency-section-title,.ency-wiki-info-section) h1,
.nf-body :is(.page-title,.nf-section-head,.ency-section-title,.ency-wiki-info-section) h2,
.nf-body :is(.page-title,.nf-section-head,.ency-section-title,.ency-wiki-info-section) h3{
 color:var(--zv-neon-text);
 text-shadow:0 0 19px #917de574,0 5px 23px #09051ad9;
}
.nf-body :is(.page-title,.nf-section-head,.ency-section-title,.ency-wiki-info-section) em{
 color:#dfb5ff;text-shadow:0 0 19px #aa78fcb0;
}
.nf-body :is(.nf-section-head,.ency-section-title,.page-title,.shop-section-head)::selection{background:#724fbd;color:#fff}
.nf-body :is(a,button,summary,[role="button"]):focus-visible{outline:2px solid #8ce9ff;outline-offset:3px}
.nf-body :is(input,textarea,select):not([type=checkbox]):not([type=radio]){
 accent-color:#aa83ed;
}
.nf-body :is(.nf-hero-actions a,.nf-text-link,.button,.nf-header-account,.copy-btn,.join,
 .shop-product,.ency-wiki-card,.ency-wiki-model-card,.ency-wiki-gallery-item,
 .account-logout,.armory-picker-item,.account-remove-avatar,.account-back){
 transition:border-color .23s ease,background .23s ease,box-shadow .23s ease,
            transform .23s ease,color .23s ease;
}
.nf-body .nf-section-head a:hover,.nf-body .nf-text-link:hover{
 color:#d6f3ff;text-shadow:0 0 14px #8ce7fdba;
}
.nf-body .nf-online-dot,.nf-body .nf-status-pulse{background:#87e1ae;box-shadow:0 0 0 4px #48c8a01a,0 0 16px #6aebbc88}
.nf-body .nf-feature h3,.nf-body .nf-universe-info h3{color:#f3efff;text-shadow:0 0 14px #976ded66}
.nf-body .nf-feature p,.nf-body .nf-universe-info p{color:#bfcaeb}
.nf-body .nf-feature-arrow,.nf-body .nf-universe-info>span{color:#9fe7ff}
.nf-body .nf-feature:hover,.nf-body .nf-universe-card:hover{
 border-color:#ae9df3;box-shadow:0 13px 33px #7453c143,0 0 27px #5e75d72f;
}
.nf-body .server-card .server-status.offline{color:#f4b1bb;border-color:#ba6b91;background:#342034}
.nf-body .server-card .server-status.unknown{color:#d9d6ee;border-color:#726b9e;background:#2a2942}
.nf-body .server-card .copy-btn,.nf-body .server-card .join{border-radius:9px}
.nf-body .guide-box{
 background:linear-gradient(140deg,#1d1c3e,#11152e);
 border:1px solid #605c9e;
 box-shadow:0 9px 28px #090e256b;
}
.nf-body .guide-box h3{color:#f3edff}
.nf-body .guide-box p{color:#c9d3f6}
.nf-body .guide-box code,.nf-body .guide-box kbd{color:#b5ebff;background:#28244c;border-color:#7465af}

/* === Encyclopedia — EVERY category, listing and individual detail === */
.nf-body .ency-directory-card.human{
 background:radial-gradient(circle at 90% 21%,#407fc54b,transparent 60%),linear-gradient(140deg,#222246,#10182d);
}
.nf-body .ency-directory-card.zombie{
 background:radial-gradient(circle at 85% 20%,#a944a24b,transparent 62%),linear-gradient(140deg,#302148,#17132e);
}
.nf-body .ency-directory-card.weapons{
 background:radial-gradient(circle at 80% 20%,#825bc66b,transparent 65%),linear-gradient(140deg,#241d48,#10172c);
}
.nf-body .ency-directory-card.modes{
 background:radial-gradient(circle at 80% 20%,#5da2d849,transparent 66%),linear-gradient(140deg,#222442,#12172f);
}
.nf-body .ency-number,.nf-body .ency-wiki-count,
.nf-body .ency-wiki-results-count,.nf-body .ency-wiki-caption{color:#9ecff9}
.nf-body .ency-breadcrumb,.nf-body .ency-footnote{color:#b9b7e4}
.nf-body .ency-breadcrumb a,.nf-body .ency-wiki-return,.nf-body .ency-detail-back{color:#9ae8ff}
.nf-body .ency-wiki-return:hover,.nf-body .ency-breadcrumb a:hover{color:#e0c2ff;text-shadow:0 0 13px #b590f2}
.nf-body :is(.ency-wiki-toolbar,.ency-wiki-results,.ency-wiki-profile-intro,.ency-wiki-info-section){
 color:#e8e8ff;
}
.nf-body .ency-wiki-search,
.nf-body .ency-wiki-sort,
.nf-body .ency-search,
.nf-body .ency-wiki-toolbar :is(input,select){
 border:1px solid #7167ab;background:#121831;color:#f2f1ff;
 border-radius:9px;
}
.nf-body .ency-wiki-search:focus-within{border-color:#a2e7fb;box-shadow:0 0 0 3px #71daff18}
.nf-body .ency-wiki-search input{background:transparent;border:0}
.nf-body .ency-wiki-search input::placeholder{color:#a9a5d4;opacity:1}
.nf-body .ency-wiki-search-icon{color:#8bdff9}
.nf-body .ency-wiki-sortlabel{color:#b8d1ff}
.nf-body .ency-wiki-sort option{background:#161937;color:#f2f0ff}
.nf-body :is(.ency-wiki-filter,.ency-wiki-gender-tab,.ency-wiki-zombie-tab){
 border:1px solid #66639e;background:#202040;color:#d5ceff;
 border-radius:8px;transition:background .2s,border-color .2s,color .2s,box-shadow .2s;
}
.nf-body :is(.ency-wiki-filter,.ency-wiki-gender-tab,.ency-wiki-zombie-tab):is(.active,.selected,[aria-pressed=true],:hover){
 border-color:#a999ec;background:linear-gradient(120deg,#56449e,#7d51a5);
 color:#fff;box-shadow:0 0 14px #936dd43e;
}
.nf-body .ency-wiki-zombie-tabs{border-color:#6b5b9c}
.nf-body .ency-wiki-card,
.nf-body [data-page="guide-zombies"] .ency-wiki-card,
.nf-body .ency-item-card{
 border:1px solid #665e9c;border-radius:10px;
 background:linear-gradient(160deg,#262144,#13182e);
 box-shadow:0 10px 26px #060a1c55;overflow:hidden;
}
.nf-body .ency-wiki-card:is(:hover,:focus-visible),
.nf-body [data-page="guide-zombies"] .ency-wiki-card:is(:hover,:focus-visible){
 border-color:#a99dff;box-shadow:0 0 20px #8569e64f,0 16px 34px #060b1db8;
 transform:translateY(-3px);
}
.nf-body .ency-wiki-image,
.nf-body [data-page="guide-weapons"] .ency-wiki-image,
.nf-body [data-page="guide-zombies"] .ency-wiki-image{
 background:radial-gradient(ellipse at 50% 25%,#443b7950,#15172f 79%)!important;
}
.nf-body .ency-wiki-card-caption{
 background:linear-gradient(140deg,#22213e,#151832);
 border-top:1px solid #7665a04a;
}
.nf-body .ency-wiki-card-caption strong{color:#f6f0ff;text-shadow:0 0 9px #ae83ff40}
.nf-body .ency-wiki-card-caption small,
.nf-body .ency-wiki-date,
.nf-body [data-page="guide-zombies"] .ency-wiki-date{color:#bfcaf4!important}
.nf-body .ency-wiki-placeholder{color:#bca6ef}
.nf-body .ency-wiki-profile{
 display:grid;
 border:1px solid #8c77c8;border-radius:16px;
 background:radial-gradient(ellipse at 15% 15%,#563a8b42,transparent 58%),linear-gradient(135deg,#252044,#121932 80%);
 box-shadow:inset 0 0 0 1px #a195f219,0 0 35px #5645a92e,0 19px 42px #080d2480;
 overflow:hidden;
}
.nf-body .ency-wiki-hero,
.nf-body [data-page="guide-weapons"] .ency-wiki-hero{
 background:radial-gradient(circle at 50% 25%,#57488269,#17192f 76%)!important;
 border:1px solid #8a78ba;box-shadow:0 0 25px #8b63d63b;
 border-radius:11px;position:relative;
}
.nf-body .ency-wiki-hero:is(:hover,:focus-visible){border-color:#c5a6ff;box-shadow:0 0 26px #a176e872}
.nf-body .ency-wiki-profile-intro{min-width:0}
.nf-body .ency-wiki-profile-intro .eyebrow{color:#9ceaff}
.nf-body .ency-wiki-profile-intro h2{
 color:#faf4ff;text-shadow:0 0 18px #a992f598,0 7px 20px #080b1a;
}
.nf-body .ency-wiki-name-original,.nf-body .ency-wiki-character-gender{color:#b3caf6}
.nf-body .ency-wiki-subtitle{color:#da9afa}
.nf-body .ency-wiki-character-date{
 border:1px solid #7763ae;border-radius:8px;
 background:linear-gradient(105deg,#252144,#1a1d3d);
 color:#d6caff;
}
.nf-body .ency-wiki-bio{color:#d7d7f0;line-height:1.85}
.nf-body .ency-wiki-info-section{
 border-top:1px solid #685f9c;
 margin-top:34px;padding-top:25px;
}
.nf-body .ency-wiki-info-section h3{
 color:#f7f2ff;text-shadow:0 0 18px #9d7ae681;
}
.nf-body .ency-wiki-info-section h3:after{
 content:"";display:block;width:70px;max-width:100%;height:2px;margin:9px 0 3px;
 background:linear-gradient(90deg,#8be2ff,#cc9bff,transparent);
 box-shadow:0 0 12px #9f8bff9b;
}
.nf-body .ency-wiki-body{color:#c8c9e9;line-height:1.85}
.nf-body :is(.ency-wiki-stat,.ency-stat){
 background:linear-gradient(120deg,#242141,#171c38);
 border:1px solid #625b9d;border-radius:9px;
 box-shadow:inset 0 0 12px #473d8933;
}
.nf-body .ency-wiki-stat:hover{border-color:#b3a8f8}
.nf-body .ency-wiki-stat span,.nf-body .ency-stat span{color:#aebbe5}
.nf-body .ency-wiki-stat strong,.nf-body .ency-stat b{color:#eee9ff}
.nf-body .ency-wiki-favorite,.nf-body .ency-source-link{
 background:linear-gradient(120deg,#28254a,#20203f);
 border:1px solid #7767ab;border-radius:8px;color:#dcd3ff;
}
.nf-body :is(.ency-wiki-favorite,.ency-source-link):is(:hover,:focus-visible){
 border-color:#a4dfff;color:#a3e9ff;box-shadow:0 0 16px #78c5ff36;
}
.nf-body .ency-wiki-abilities{gap:12px}
.nf-body .ency-wiki-ability,.nf-body .ency-ability,.nf-body .ency-skill-unknown{
 background:linear-gradient(140deg,#262141,#191b39);
 border:1px solid #6f63ac;border-radius:10px;
}
.nf-body .ency-wiki-ability:hover{border-color:#a58eed;box-shadow:0 0 17px #755eda3b}
.nf-body .ency-wiki-ability strong{color:#e6bbff;text-shadow:0 0 10px #a76ff66f}
.nf-body .ency-wiki-ability p,.nf-body .ency-ability p,
.nf-body .ency-skill-unknown p{color:#c9c9e9}
.nf-body .ency-skill-symbol{
 background:linear-gradient(135deg,#3d3276,#252753);
 border:1px solid #9a81dc;border-radius:9px;color:#b5e6ff;
 text-shadow:0 0 15px #81d7ff8a;box-shadow:inset 0 0 16px #9176ff3d;
}
.nf-body .ency-wiki-gallery-item,.nf-body .ency-wiki-model-card{
 background:radial-gradient(circle at 45% 25%,#332b6180,#171931 78%);
 border:1px solid #7569ad;border-radius:10px;
 box-shadow:0 6px 22px #080a1c58;
}
.nf-body .ency-wiki-gallery-item:is(:hover,:focus-visible),
.nf-body .ency-wiki-model-card:is(:hover,:focus-visible){
 border-color:#bca8ff;box-shadow:0 0 21px #ab83fc55,0 11px 26px #080a1cbb;
}
.nf-body .ency-wiki-model-card img{
 background:linear-gradient(150deg,#232144,#10162d);
 border-radius:6px;max-width:100%;
}
.nf-body .ency-wiki-model-card span{color:#c6c8ef}
.nf-body .ency-zoom-hint{
 background:#1e204ae9;color:#d6f5ff;border:1px solid #8f85cc;border-radius:6px;
}
.nf-body .ency-wiki-license{color:#a9afd2}
.nf-body .zvp-lightbox{background:#040a20f1}
.nf-body .zvp-lightbox-stage{background:transparent}
.nf-body .zvp-lightbox-stage img{border-color:#9d89db;box-shadow:0 14px 80px #10083b99}
.nf-body .zvp-lightbox button{
 background:#282346;border:1px solid #816eb4;color:#e2d6ff;
}
.nf-body .zvp-lightbox button:is(:hover,:focus-visible){border-color:#97e9ff;color:#9de5ff}
.nf-body .zvp-lightbox-title,.nf-body .zvp-lightbox-count{color:#c5c7ed}

/* === 3D Arsenal — preserve WebGL, repaint controls, dialogs and every selector === */
.nf-body #weapons .armory-heading p,
.nf-body #weapons .armory-footer [role=status],
.nf-body #weapons .armory-drag-hint,
.nf-body #weapons .armory-clarification,
.nf-body #weapons .armory-picker-hint{color:#b9c7ed}
.nf-body #weapons .armory-character-name span{
 background:#262347;border:1px solid #7564aa;color:#d3c9ff;
}
.nf-body #weapons .armory-character-name strong{color:#f8f4ff;text-shadow:0 0 11px #a489f471}
.nf-body #weapons .armory-character-name small{color:#a0d9ef}
.nf-body #weapons .armory-slot.armory-previewing,
.nf-body #weapons .armory-slot[aria-pressed=true]{
 background:linear-gradient(130deg,#3a2c69,#242548);
 border-color:#ac91fa;box-shadow:0 0 20px #ab88f64b;
}
.nf-body #weapons .armory-slot-placeholder{color:#ac97ed}
.nf-body #weapons .armory-canvas-fallback{background:#141732ee;color:#dad6f5}
.nf-body #weapons .armory-overlay{background:#05091be8;backdrop-filter:blur(7px)}
.nf-body #weapons .armory-picker-header{border-color:#665d9b}
.nf-body #weapons .armory-picker-header button{
 background:#2a234b;color:#dfdcff;border:1px solid #7869ad;
}
.nf-body #weapons .armory-picker-search{
 background:#12152c;border:1px solid #7262a3;border-radius:8px;
}
.nf-body #weapons .armory-picker-search input{background:transparent;color:#faf5ff}
.nf-body #weapons .armory-picker-search input::placeholder{color:#aaa5d4}
.nf-body #weapons .armory-picker-search span{color:#a3eafa}
.nf-body #weapons .armory-picker-more{
 background:#292248;border:1px solid #7867b0;color:#ded3ff;
}
.nf-body #weapons :is(.armory-picker-item,.armory-picker-category,.armory-picker-filter){
 border-color:#6e62a5;background:#201d3d;color:#dcd4fa;
 border-radius:8px;
}
.nf-body #weapons :is(.armory-picker-item,.armory-picker-category,.armory-picker-filter):is(:hover,.selected,:focus-visible){
 background:linear-gradient(125deg,#4f4385,#37316b);
 border-color:#b39cf8;color:#fff;box-shadow:0 0 15px #a381f13d;
}
.nf-body #weapons :is(.armory-picker-type,.armory-picker-3d,#armory-picker-count){color:#9ccff8}
.nf-body #weapons .armory-picker-unmapped{color:#c1b8dc}
.nf-body #weapons #armory-mode,
.nf-body #weapons #armory-camera-mode{
 background:#2a254c;border:1px solid #7866ad;color:#dcd1fa;
}
.nf-body #weapons :is(#armory-mode,#armory-camera-mode)[aria-pressed=true]{
 border-color:#a7b4ff;color:#fff;box-shadow:0 0 14px #8b8bfa3b;
}
.nf-body #weapons #armory-reset-loadout{
 background:#282446;color:#dcd5ff;border:1px solid #786aaf;
}
.nf-body #weapons #armory-reset-loadout:hover{background:#393068;border-color:#b9a0f5}

/* === Account — profile, settings, security, verification, photo upload === */
.nf-body #account .account-shell{border-color:#7263ab}
.nf-body #account .account-panel{background:linear-gradient(150deg,#191a38,#10172e)}
.nf-body #account .account-note,.nf-body #account .account-note small{color:#c1c1e4}
.nf-body #account .account-note strong{color:#a5eaff}
.nf-body #account .account-emblem{color:#c6abff}
.nf-body #account .account-emblem img{border-color:#8d78c4;box-shadow:0 0 22px #a779f87d}
.nf-body #account .account-form label small,
.nf-body #account .account-identity #profile-login,
.nf-body #account .account-meta span,
.nf-body #account .account-email-cell small{color:#aeb8e5}
.nf-body #account .account-form h3{color:#f7f1ff;text-shadow:0 0 16px #a582ea79}
.nf-body #account .account-form select option{background:#181733;color:#eae5ff}
.nf-body #account .account-form input::placeholder{color:#9897c7}
.nf-body #account .account-avatar{background:#232145;border-color:#a18de4;color:#c1a6ff}
.nf-body #account .account-edit-avatar{color:#b5e5ff}
.nf-body #account .account-logout,
.nf-body #account .account-remove-avatar,
.nf-body #account .account-back{
 background:#292446;border:1px solid #7a67ad;color:#e3d3ff;border-radius:8px;
}
.nf-body #account :is(.account-logout,.account-remove-avatar,.account-back):hover{
 border-color:#a1d6f6;background:#37316b;
}
.nf-body #account .account-identity,
.nf-body #account .account-tabs{border-color:#62558f}
.nf-body #account .account-dashboard-tabs{border-color:#7161aa;background:#131731}
.nf-body #account .account-dashboard-tabs [role=tab][aria-selected=true]{
 background:linear-gradient(120deg,#6752b5,#ad68d2);
 border-color:#ad9bea;box-shadow:0 0 14px #a479e864;
}
.nf-body #account .account-meta>div{
 background:linear-gradient(130deg,#242144,#171a35);
 border:1px solid #7265a8;border-radius:9px;
}
.nf-body #account .account-info-note,
.nf-body #account .account-security,
.nf-body #account .account-picture-area{
 background:linear-gradient(135deg,#272142,#191b39);
 border:1px solid #6d5d9f;border-radius:9px;
}
.nf-body #account .account-info-note strong,
.nf-body #account .account-security summary{color:#d2adff}
.nf-body #account .account-info-note p{color:#c6c6e9}
.nf-body #account .account-picture-area>label{color:#e9e4ff}
.nf-body #account .account-picture-area input[type=file]{
 color:#efeaff;background:#161733;border:1px solid #7765ac;
}
.nf-body #account .account-picture-actions button{min-height:40px}
.nf-body #account .account-message{
 border-left:3px solid #ac91ff;background:#272344;color:#e8dbff;
}
.nf-body #account .account-message.error{border-left-color:#e78e9e;background:#3b233d;color:#ffc7d6}
.nf-body #account .account-mail-status{color:#efddbc;background:#31283f;border-left-color:#e0b983}
.nf-body #account .account-loading{color:#aaa1e9}

/* === Shop — visually unified, but STILL CLOSED === */
.nf-body #shop .shop-shutdown{
 background:linear-gradient(110deg,#343050,#232039 70%,#11192c);
 border:1px solid #9c8eb1;box-shadow:0 0 23px #8569e622;
}
.nf-body #shop .shop-shutdown-icon{
 border-color:#ddbd8e;color:#f2d39c;box-shadow:0 0 17px #d5b17e40;
}
.nf-body #shop .shop-shutdown-tag{color:#f6d0a1;border-color:#ad9475;background:#352c41}
.nf-body #shop .shop-product{
 background:radial-gradient(ellipse at 80% 5%,#55408a33,transparent 70%),linear-gradient(140deg,#262044,#121731);
 border:1px solid #7062ad;border-radius:12px;box-shadow:0 8px 24px #080b2074;
}
.nf-body #shop .shop-product:hover{border-color:#a88df5;box-shadow:0 12px 30px #7853b73f}
.nf-body #shop .shop-product h3{color:#f7efff;text-shadow:0 0 16px #986af579}
.nf-body #shop .shop-tier{color:#a5e5ff}
.nf-body #shop .shop-tier.bronze{color:#c7b5ff}
.nf-body #shop .shop-tier.silver{color:#cad6f5}
.nf-body #shop .shop-tier.gold{color:#e6ca9b}
.nf-body #shop .shop-tier.special{color:#eda3eb}
.nf-body #shop .shop-product-main p,
.nf-body #shop .shop-price span{color:#c2c9ee}
.nf-body #shop .shop-product-foot{border-color:#61558f;color:#acaed7}
.nf-body #shop .shop-coming{border-color:#6d63a1;background:#1e1b3b;color:#e7dbff;border-radius:9px}
.nf-body #shop .shop-coming>span{color:#ae93e9}
.nf-body #shop .shop-coming p{color:#c8c8e7}
.nf-body #shop .shop-disclaimer{
 background:#222042;border-left-color:#9a91e6;color:#d0cce9;border-radius:0 8px 8px 0;
}

/* === Community, footer and other low-traffic surfaces === */
.nf-body #community :is(.community-card,.community-box,.community-panel,.guide-box){
 border-color:#685ca1;background:linear-gradient(150deg,#252141,#14172f);color:#e9e7ff;
}
.nf-body #community :is(.community-card,.community-box,.community-panel) p{color:#c8c6ea}
.nf-body .nf-footer-col h3{color:#f0e9ff;text-shadow:0 0 11px #9983e657}
.nf-body .nf-footer-col a:is(:hover,:focus-visible){color:#a5eaff}
.nf-body .nf-footer-brand p,.nf-body .nf-footer-brand small{color:#b2b0d8}

/* Compact mobile: preserve focus, labels and image aspect ratio. */
@media(max-width:950px){
 .nf-body .ency-wiki-profile{border-radius:12px}
 .nf-body .ency-wiki-info-section{margin-top:28px}
}
@media(max-width:650px){
 .nf-body .ency-wiki-profile{padding:17px;gap:12px}
 .nf-body .ency-wiki-profile-intro{padding:6px 0 8px}
 .nf-body .ency-wiki-profile-intro h2{font-size:clamp(33px,9vw,54px)}
 .nf-body .ency-wiki-stat-grid,.nf-body .ency-wiki-abilities{grid-template-columns:minmax(0,1fr)}
 .nf-body .ency-wiki-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-body .ency-wiki-model-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-body .ency-wiki-ability{padding:13px;gap:10px}
 .nf-body .ency-skill-symbol{flex-basis:40px;width:40px;height:40px;font-size:22px}
 .nf-body .ency-wiki-info-section h3{font-size:24px}
 .nf-body .ency-wiki-stat{padding:13px}
 .nf-body #account .account-meta{grid-template-columns:repeat(2,minmax(0,1fr))}
 .nf-body #account .account-dashboard-tabs [role=tab]{min-width:0}
}
@media(prefers-reduced-motion:reduce){
 .nf-body :is(.ency-wiki-card,.ency-wiki-gallery-item,.ency-wiki-model-card,
               .shop-product,.armory-slot,.account-logout){transition:none!important;animation:none!important}
}

/* Final audit: the last two legacy border colours in account and arsenal. */
.nf-body #account .account-aside{border-color:#67579c}
.nf-body #weapons .armory-footer{border-color:#695d9f}

/* ZvsP theme source 12: night-city-live.css */
/* ZvsP Night City Live v1 — scene motion, windows and character crossfade.
   Last in cascade. Compositor-friendly and disabled on hidden routes. */
.nf-body .nf-hero{
  isolation:isolate;
  overflow:hidden;
  background:
    radial-gradient(ellipse at 70% 60%,#30398167,transparent 58%),
    radial-gradient(ellipse at 12% 20%,#32236c4d,transparent 64%),
    linear-gradient(120deg,#060b1c,#11132b 56%,#171537 92%);
}
.nf-body .zvp-city-wide{
  position:absolute;inset:5% -5% -4%;z-index:0;pointer-events:none;
  background:url('/experience-assets/night-city-back.svg') center 85% /cover no-repeat;
  opacity:.46;
  transform:translate3d(calc(var(--zvp-x)*-5px),calc(var(--zvp-y)*-4px),0) scale(1.05);
  filter:drop-shadow(0 0 21px #557dde3c);
}
.nf-body .zvp-city-wide:after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(90deg,#090d20e9 0%,#0c11257a 32%,transparent 71%);
}
.nf-body .nf-hero-visual{
  isolation:isolate;overflow:visible;
}
.nf-body .zvp-city-windows{
  position:absolute;inset:0 -9% -4%;pointer-events:none;z-index:2;
  transform:translate3d(calc(var(--zvp-x)*15px),calc(var(--zvp-y)*8px),0);
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to bottom,transparent 16%,#000 39% 100%);
  mask-image:linear-gradient(to bottom,transparent 16%,#000 39% 100%);
}
.nf-body .zvp-city-window{
  position:absolute;left:var(--x);top:var(--y);
  width:var(--w);height:var(--h);
  opacity:var(--window-opacity,.25);border-radius:1px;
  background:var(--window-color,#90cbff);
  box-shadow:0 0 5px var(--window-color,#9cc9ff),0 0 11px var(--window-color,#9cc9ff);
  animation:zvp-window-flicker var(--dur,5s) ease-in-out infinite var(--delay,0s);
}
@keyframes zvp-window-flicker{
  0%,100%{opacity:.08}
  27%{opacity:var(--window-opacity,.5)}
  58%{opacity:.65}
  79%{opacity:.15}
}
.nf-body .zvp-city-rays{
  pointer-events:none;position:absolute;inset:0;z-index:2;overflow:hidden;
}
.nf-body .zvp-city-ray{
  position:absolute;width:32%;height:70%;bottom:0;
  left:var(--ray-x);transform-origin:bottom center;
  background:linear-gradient(0deg,var(--ray-color,#735fe0),transparent 83%);
  opacity:.16;filter:blur(21px);
  animation:zvp-city-beam var(--ray-speed,8s) ease-in-out infinite alternate;
}
@keyframes zvp-city-beam{
  from{opacity:.04;transform:scaleX(.6) scaleY(.85)}
  to{opacity:.3;transform:scaleX(1.4) scaleY(1.11)}
}
.nf-body .zvp-night-halo{
  background:radial-gradient(ellipse at 50% 44%,#ad75fc48,transparent 60%);
  animation:zvp-halo-pulse 7s ease-in-out infinite alternate;
}
@keyframes zvp-halo-pulse{
  from{opacity:.53}
  to{opacity:.92}
}
/* Character is an isolated alpha-channel WebP. Its background never transitions. */
.nf-body .zvp-night-character{
  z-index:5;position:absolute;
  height:104%;width:auto;max-width:none;
  right:-6%;bottom:0;
  object-fit:contain;object-position:bottom center;
  opacity:0;visibility:hidden;
  filter:drop-shadow(-8px 19px 23px #010718c9)
         drop-shadow(0 0 19px #815aff80)
         drop-shadow(0 0 7px #68d6ff74);
  transform:translate3d(calc(var(--zvp-x)*27px + 24px),calc(var(--zvp-y)*18px),0) scale(.985);
  transition:opacity 1.35s ease,visibility 1.35s,transform 1.35s ease,filter 1.35s ease;
  pointer-events:none;
}
.nf-body .zvp-night-character.is-active{
  opacity:1;visibility:visible;
  transform:translate3d(calc(var(--zvp-x)*27px),calc(var(--zvp-y)*18px),0) scale(1);
}
.nf-body .nf-hero .zvp-hero-atmosphere{z-index:1}
.nf-body .nf-hero-copy{position:relative;z-index:9}
.nf-body .nf-hero-visual .zvp-night-city-back{z-index:0}
.nf-body .nf-hero-visual .zvp-night-city-near{z-index:3}
.nf-body .zvp-night-neon-line{z-index:4}
/* Pause all ambient CSS animations when this route isn't visible or browser is backgrounded. */
.nf-body .nf-home:not(.active) :is(.zvp-city-window,.zvp-city-ray,.zvp-night-halo),
.nf-body .zvp-scene-paused :is(.zvp-city-window,.zvp-city-ray,.zvp-night-halo,.zvp-hero-smoke,.zvp-ember){
  animation-play-state:paused!important;
}
/* User's fourth screenshot: modern neon 'about project' instead of orange copy. */
.nf-body #home .nf-features{
  position:relative;padding:34px 28px 32px;margin-inline:-16px;
  background:
    linear-gradient(120deg,#1a1a3aab,#161633b9 59%,#101631c9),
    url('/experience-assets/night-city-back.svg') center bottom /cover no-repeat;
  border:1px solid #6866ac7d;border-radius:16px;
  box-shadow:inset 0 0 45px #393d7e3b,0 15px 42px #070b1d8c;
}
.nf-body #home .nf-features>.nf-section-head{position:relative}
.nf-body #home .nf-features .nf-section-head>p{
 color:#d4dafa;font-size:13px;line-height:1.8;text-shadow:0 1px 9px #080e21e8;
}
.nf-body #home .nf-features .nf-section-head h2{
  color:#f4f3ff;text-shadow:0 0 21px #af82f59e,0 3px 23px #050c20;
}
.nf-body #home .nf-features .nf-section-head h2 em{
 background:linear-gradient(90deg,#e6a5ff,#97e5ff);
 -webkit-background-clip:text;background-clip:text;
 -webkit-text-fill-color:transparent;
 text-shadow:none;filter:drop-shadow(0 0 10px #8c73ed9a);
}
.nf-body #home .nf-features .nf-feature{
 background:linear-gradient(135deg,#29244cbf,#15182ede 90%);
 border-color:#7771bc;
 box-shadow:0 11px 23px #080b20b5;
}
.nf-body #home .nf-features .nf-feature:hover{
 border-color:#a5dfff;box-shadow:0 0 23px #8a86fa59,0 15px 30px #040a20a8;
}
.nf-body #home .nf-features .nf-feature>p{
 color:#c8d2f3;line-height:1.7;
}
.nf-body #home .nf-features .nf-feature-number{color:#a4dfff}
.nf-body #home .nf-features .nf-feature-icon{color:#e5b5ff;background:#3d3267}
.nf-body .nf-footer-end{justify-content:flex-end}
/* Narrow screens: limit moving layers, reduce cost, maintain full hero image. */
@media(max-width:960px){
 .nf-body .zvp-city-wide{opacity:.34}
 .nf-body .zvp-night-character{right:-7%;height:104%;bottom:-10px}
 .nf-body #home .nf-features{margin-inline:0;padding:25px 19px}
}
@media(max-width:800px){
 .nf-body .zvp-night-character,.nf-body .zvp-night-character.is-active{
  transform:translate3d(0,0,0) scale(1);
 }
 .nf-body .zvp-city-windows,.nf-body .zvp-city-wide{transform:none}
 .nf-body .zvp-city-window:nth-child(n+21){display:none}
 .nf-body .zvp-night-character{right:0%;height:110%;bottom:-10px}
}
@media(max-width:560px){
 .nf-body .zvp-night-character{height:110%;right:-1%;bottom:-10px}
 .nf-body .zvp-city-window:nth-child(n+15){display:none}
 .nf-body .zvp-city-ray{filter:blur(25px)}
 .nf-body #home .nf-features{padding:23px 14px;border-radius:9px}
 .nf-body #home .nf-features .nf-section-head>p{font-size:11px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-city-window,.nf-body .zvp-city-ray,.nf-body .zvp-night-halo{animation:none!important}
 .nf-body .zvp-night-character,.nf-body .zvp-night-character.is-active{
  transform:none!important;transition:none!important;
 }
 .nf-body .zvp-night-character:not(.is-active){display:none!important}
}

/* ZvsP theme source 13: city-depth-v4.css */
/* Live full-width Midnight City scene — 3 city depths, gentle bloom and stars.
   Original vector skyline rendered once; only inexpensive transforms and opacity animate. */
.nf-body .nf-hero{--zvp-x:0;--zvp-y:0;position:relative;isolation:isolate;overflow:hidden}
.nf-body .zvp-city-wide{display:none!important}
.nf-body .zvp-city-depth{
 position:absolute;inset:-2% -4% -2%;width:auto;height:auto;
 pointer-events:none;background-repeat:no-repeat;
 background-size:cover;background-position:center bottom;
 will-change:auto;
}
.nf-body .zvp-city-depth.far{
 z-index:0;
 opacity:.87;
 background-image:url('/experience-assets/city-depth-far.svg');
 transform:translate3d(calc(var(--zvp-x) * -7px),calc(var(--zvp-y) * -4px),0) scale(1.034);
}
.nf-body .zvp-city-depth.mid{
 z-index:0;
 opacity:.82;
 background-image:url('/experience-assets/city-depth-mid.svg');
 transform:translate3d(calc(var(--zvp-x) * -15px),calc(var(--zvp-y) * -8px),0) scale(1.065);
}
.nf-body .zvp-city-depth.near{
 z-index:0;
 opacity:.88;
 background-image:url('/experience-assets/city-depth-near.svg');
 transform:translate3d(calc(var(--zvp-x) * -23px),calc(var(--zvp-y) * -13px),0) scale(1.085);
}
.nf-body .nf-hero:before{
 content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
 background:
  linear-gradient(90deg,#080b20ed 0%,#0c1026d7 19%,#0b1124a8 33%,#0e102640 58%,transparent 80%),
  linear-gradient(0deg,#080e25b8 0%,transparent 26%,#110d2c37 87%);
}
/* Distant atmospheric glow extends across the whole scene, not just the character. */
.nf-body .zvp-city-ambient{
 position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
 background:
  radial-gradient(ellipse 52% 58% at 84% 42%,#aa72f74a,transparent 72%),
  radial-gradient(ellipse 42% 48% at 45% 79%,#3fa9ef39,transparent 73%),
  radial-gradient(ellipse 49% 28% at 63% 62%,#cf85e528,transparent 84%);
 mix-blend-mode:screen;opacity:.84;
 animation:zvp-city-ambience 13s ease-in-out infinite alternate;
}
@keyframes zvp-city-ambience{
 from{opacity:.55;transform:translate3d(0,0,0)}
 to{opacity:.92;transform:translate3d(0,-8px,0)}
}
.nf-body .zvp-city-lightpools{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.nf-body .zvp-city-lightpool{
 position:absolute;left:var(--pool-x);top:var(--pool-y);
 width:var(--pool-w);height:var(--pool-h);
 background:radial-gradient(ellipse at center,var(--pool-color),transparent 70%);
 border-radius:50%;filter:blur(12px);
 opacity:.35;animation:zvp-city-lightpool var(--pool-time) ease-in-out infinite alternate var(--pool-delay);
}
@keyframes zvp-city-lightpool{from{opacity:.15;transform:scale(.88)}to{opacity:.43;transform:scale(1.12)}}
.nf-body .zvp-night-stars{
 position:absolute;inset:0;z-index:2;pointer-events:none;
 transform:translate3d(calc(var(--zvp-x) * -4px),calc(var(--zvp-y) * -2px),0);
}
.nf-body .zvp-night-star{
 display:block;position:absolute;left:var(--sx);top:var(--sy);
 width:var(--ss);height:var(--ss);border-radius:50%;
 background:var(--sc);opacity:var(--sa,.3);
 box-shadow:0 0 5px var(--sc),0 0 12px #aa96ff42;
}
.nf-body .zvp-night-star.twinkle{
 animation:zvp-star-twinkle var(--sd) ease-in-out infinite alternate var(--sdelay);
}
@keyframes zvp-star-twinkle{0%,18%{opacity:.11;transform:scale(.73)}65%{opacity:.84;transform:scale(1.28)}100%{opacity:.25;transform:scale(.92)}}
.nf-body .zvp-night-star.strong:after{
 content:"";position:absolute;top:50%;left:50%;width:12px;height:1px;
 background:linear-gradient(90deg,transparent,#dce9ff96,transparent);
 transform:translate(-50%,-50%);
}
/* Keep typography and buttons crisp while the city remains a background. */
.nf-body .nf-hero-content{position:relative;z-index:3}
.nf-body .nf-hero-copy{position:relative;z-index:4}
.nf-body .nf-hero-visual{z-index:3}
.nf-body .nf-hero-grid{z-index:1;opacity:.055}
.nf-body .nf-hero-glow{z-index:1}
.nf-body .nf-hero:after{z-index:2}
/* Remove the old city only from inside the right visual: new full-width scene replaces it. */
.nf-body .zvp-night-city-back,.nf-body .zvp-night-city-near{display:none!important}
.nf-body .zvp-city-windows{opacity:.6}
.nf-body .zvp-night-halo{opacity:.56}
/* Stop ambient animations outside home route or hidden document via existing scene status. */
.nf-body .zvp-scene-paused .zvp-city-ambient,
.nf-body .zvp-scene-paused .zvp-city-lightpool,
.nf-body .zvp-scene-paused .zvp-night-star.twinkle,
.nf-body .nf-home:not(.active) .zvp-night-star.twinkle{
 animation-play-state:paused!important;
}
@media(max-width:900px){
 .nf-body .zvp-city-depth{background-size:auto 100%;inset:0 -8%}
 .nf-body .zvp-city-depth.far{opacity:.58}
 .nf-body .zvp-city-depth.mid{opacity:.68}
 .nf-body .zvp-city-depth.near{opacity:.6}
 .nf-body .nf-hero:before{background:linear-gradient(180deg,#080a20aa 0%,#0a0e25ae 53%,#090e24a1 100%)}
 .nf-body .zvp-night-stars{transform:none}
 .nf-body .zvp-night-star:nth-child(n+33){display:none}
 .nf-body .zvp-city-lightpool:nth-child(n+4){display:none}
}
@media(max-width:560px){
 .nf-body .zvp-city-depth{background-size:auto 89%;background-position:center bottom}
 .nf-body .zvp-city-depth.far{opacity:.49}
 .nf-body .zvp-city-depth.mid{opacity:.62}
 .nf-body .zvp-city-depth.near{opacity:.65}
 .nf-body .zvp-night-star:nth-child(n+22){display:none}
 .nf-body .zvp-night-star.strong:after{width:7px}
 .nf-body .zvp-city-lightpool{filter:blur(7px)}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-city-depth,.nf-body .zvp-night-stars{transform:none!important}
 .nf-body .zvp-night-star.twinkle,
 .nf-body .zvp-city-ambient,.nf-body .zvp-city-lightpool{animation:none!important}
}


/* Full-width foreground facade lights and bloom, no longer limited to hero-right. */
.nf-body .nf-hero > .zvp-city-windows{
 position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none;
 -webkit-mask-image:linear-gradient(to bottom,transparent 29%,#000 57% 100%);
 mask-image:linear-gradient(to bottom,transparent 29%,#000 57% 100%);
 transform:translate3d(calc(var(--zvp-x)*13px),calc(var(--zvp-y)*7px),0);
}
.nf-body .nf-hero > .zvp-city-rays{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.nf-body .nf-hero > .zvp-city-ray{z-index:1}

/* ZvsP theme source 14: scroll-atmosphere.css */
/* ZvsP — Midnight scroll atmosphere v1.
   Full-page ambience behind content, never a UI overlay.
   CSS transforms and opacity only: no canvas, shaders, scroll-jacking or mouse trails.
*/
.nf-body{isolation:isolate;}
.nf-body>.zvp-scroll-atmosphere{
 --zvp-scroll-back-y:0px;
 --zvp-scroll-mid-y:0px;
 --zvp-scroll-glow-y:0px;
 position:fixed;inset:0;z-index:0;overflow:hidden;
 pointer-events:none;user-select:none;
 background:
  radial-gradient(ellipse 57% 61% at 105% 44%,rgba(70,48,145,.21),transparent 76%),
  radial-gradient(ellipse 39% 54% at -7% 80%,rgba(39,93,168,.12),transparent 75%),
  linear-gradient(145deg,rgba(11,13,36,.10),rgba(8,12,30,.09));
 opacity:.91;
 transition:opacity .4s ease;
}
.nf-body>main{position:relative;z-index:1;}
.nf-body>.nf-header{z-index:60;}
.nf-body>.nf-footer{position:relative;z-index:1;}
.nf-body .zvp-scroll-atmosphere>*{pointer-events:none;}
.nf-body .zvp-scroll-city{
 position:absolute;inset:-5% -6%;background-repeat:no-repeat;
 background-position:center bottom;background-size:cover;
 transform-origin:center bottom;
 -webkit-mask-image:linear-gradient(0deg,#000 0%,#0009 34%,transparent 89%);
 mask-image:linear-gradient(0deg,#000 0%,#0009 34%,transparent 89%);
}
.nf-body .zvp-scroll-city.far{
 background-image:url('/experience-assets/city-depth-far.svg');
 opacity:.20;transform:translate3d(0,var(--zvp-scroll-back-y),0) scale(1.10);
}
.nf-body .zvp-scroll-city.mid{
 background-image:url('/experience-assets/city-depth-mid.svg');
 opacity:.095;transform:translate3d(0,var(--zvp-scroll-mid-y),0) scale(1.14);
}
.nf-body .zvp-scroll-haze{
 position:absolute;inset:-22%;opacity:.66;
 background:
   radial-gradient(ellipse 30% 29% at 21% 28%,rgba(89,58,181,.16),transparent 80%),
   radial-gradient(ellipse 31% 35% at 75% 51%,rgba(100,55,198,.16),transparent 81%),
   radial-gradient(ellipse 32% 29% at 54% 85%,rgba(59,139,213,.12),transparent 78%);
 transform:translate3d(0,var(--zvp-scroll-glow-y),0);
 animation:zvp-scroll-haze-shift 19s ease-in-out infinite alternate;
}
@keyframes zvp-scroll-haze-shift{
 from{opacity:.48}
 to{opacity:.82}
}
/* Beams provide slow cinematic depth without covering text or buttons. */
.nf-body .zvp-scroll-beam{
 position:absolute;left:var(--beam-x);top:var(--beam-y);
 width:var(--beam-w);height:var(--beam-h);
 background:radial-gradient(ellipse at center,var(--beam-color),transparent 71%);
 opacity:.12;
 transform:rotate(var(--beam-rotation,0deg));
 animation:zvp-scroll-beam-fade var(--beam-time,13s) ease-in-out infinite alternate var(--beam-delay,0s);
}
@keyframes zvp-scroll-beam-fade{
 0%{opacity:.06;transform:rotate(var(--beam-rotation,0deg)) scale(.92)}
 100%{opacity:.28;transform:rotate(var(--beam-rotation,0deg)) scale(1.09)}
}
/* A sparse sky of cool stars, not an excessive snowfall effect. */
.nf-body .zvp-scroll-starfield{
 position:absolute;inset:-4%;
 transform:translate3d(0,var(--zvp-scroll-back-y),0);
}
.nf-body .zvp-scroll-star{
 position:absolute;left:var(--sx);top:var(--sy);
 width:var(--ss);height:var(--ss);border-radius:50%;
 background:var(--sc);
 box-shadow:0 0 7px var(--sc),0 0 13px rgba(124,127,244,.2);
 opacity:var(--so);
}
.nf-body .zvp-scroll-star.spark{
 animation:zvp-scroll-star  var(--sd) ease-in-out infinite alternate var(--sdelay);
}
@keyframes zvp-scroll-star{
 0%,12%{opacity:.12;transform:scale(.8)}
 63%{opacity:.78;transform:scale(1.2)}
 100%{opacity:.22;transform:scale(.85)}
}
.nf-body .zvp-scroll-streak{
 position:absolute;left:var(--lx);top:var(--ly);
 height:1px;width:var(--lw);
 background:linear-gradient(90deg,transparent,var(--lc),transparent);
 box-shadow:0 0 11px var(--lc);
 opacity:.2;transform:rotate(-17deg);
 animation:zvp-scroll-streak 18s ease-in-out infinite alternate var(--ld);
}
@keyframes zvp-scroll-streak{
 from{opacity:.05;transform:translate3d(-15px,10px,0) rotate(-17deg)}
 to{opacity:.42;transform:translate3d(20px,-13px,0) rotate(-17deg)}
}
/* Sections glow into the scrolling city's ambiance.
   Unlike a large transition, this never hides content while observer scripts load. */
.nf-body #home .nf-home-body>.nf-section{
 position:relative;isolation:isolate;
}
.nf-body #home .nf-home-body>.nf-section::before{
 content:"";position:absolute;top:-44px;left:9%;width:82%;height:1px;
 background:linear-gradient(90deg,transparent,#7abdfd75 25%,#bc90f59c 52%,#70d4ff6e 77%,transparent);
 box-shadow:0 0 17px rgba(149,101,246,.23);
 opacity:0;transform:scaleX(.72);
 transition:opacity 1.05s ease,transform 1.3s cubic-bezier(.22,1,.36,1);
 pointer-events:none;
}
.nf-body #home .nf-home-body>.nf-section.zvp-section-lit::before{
 opacity:.67;transform:scaleX(1);
}
/* Faint local halo beneath the section headings, independent of hero. */
.nf-body #home .nf-section-head{position:relative;isolation:isolate;}
.nf-body #home .nf-section-head::after{
 content:"";position:absolute;left:-36px;top:-27px;width:min(490px,80vw);height:150px;
 background:radial-gradient(ellipse at 33% 58%,rgba(139,105,253,.11),transparent 72%);
 opacity:0;transition:opacity 1.15s ease;z-index:-1;pointer-events:none;
}
.nf-body #home .zvp-section-lit>.nf-section-head::after{opacity:1;}
/* Server card edges should be visible without an expensive continuous glow. */
.nf-body #home .nf-live .server-card{
 box-shadow:0 12px 33px rgba(4,9,27,.63),0 0 0 1px rgba(149,121,237,.06);
}
.nf-body #home .nf-live .server-card:hover{
 box-shadow:0 16px 36px rgba(4,9,27,.76),0 0 28px rgba(125,110,243,.18);
}
@media(max-width:900px){
 .nf-body>.zvp-scroll-atmosphere{opacity:.72}
 .nf-body .zvp-scroll-city.far{opacity:.18}
 .nf-body .zvp-scroll-city.mid{opacity:.06}
 .nf-body .zvp-scroll-star:nth-child(n+28){display:none}
 .nf-body .zvp-scroll-beam:nth-child(n+4){display:none}
 .nf-body .zvp-scroll-streak:nth-child(n+4){display:none}
}
@media(max-width:560px){
 .nf-body>.zvp-scroll-atmosphere{opacity:.66}
 .nf-body .zvp-scroll-city{background-size:auto 85%;background-position:center bottom}
 .nf-body .zvp-scroll-city.mid{opacity:.045}
 .nf-body .zvp-scroll-star:nth-child(n+19){display:none}
 .nf-body .zvp-scroll-beam:nth-child(n+3){display:none}
 .nf-body .zvp-scroll-streak:nth-child(n+3){display:none}
 .nf-body #home .nf-home-body>.nf-section::before{left:4%;width:92%}
 .nf-body #home .nf-section-head::after{height:110px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-scroll-atmosphere *,
 .nf-body #home .nf-home-body>.nf-section::before,
 .nf-body #home .nf-section-head::after{
   animation:none!important;transition:none!important;
 }
 .nf-body .zvp-scroll-city,.nf-body .zvp-scroll-haze,
 .nf-body .zvp-scroll-starfield{transform:none!important}
 .nf-body #home .nf-home-body>.nf-section::before{opacity:.42!important;transform:none!important}
 .nf-body #home .nf-section-head::after{opacity:.38!important}
}

/* Pausing hidden routes prevents idle visual work while using WebGL or account forms. */
.nf-body .zvp-scroll-paused .zvp-scroll-star.spark,
.nf-body .zvp-scroll-paused .zvp-scroll-streak,
.nf-body .zvp-scroll-paused .zvp-scroll-beam,
.nf-body .zvp-scroll-paused .zvp-scroll-haze{
 animation-play-state:paused!important;
}

/* ZvsP theme source 15: reactive-neon.css */
/* ZvsP Reactive Neon v1 — interaction-only polish, layered after all site styles.
   No API, WebGL, theme or game functionality changes. */
.nf-body{
  --zvp-hl-cyan:#99eafe;
  --zvp-hl-lilac:#bd9afa;
  --zvp-hl-pink:#f3a3e8;
}
.nf-body .zvp-neon-surface{
  --zvp-mx:50%;
  --zvp-my:45%;
  --zvp-edge-x:50%;
  --zvp-edge-y:50%;
  position:relative;
  isolation:isolate;
  transition:
    scale .32s cubic-bezier(.2,.75,.24,1),
    border-color .27s ease,
    box-shadow .31s ease,
    background-color .25s ease;
}
.nf-body .zvp-neon-frame{
  position:absolute;inset:0;z-index:10;border-radius:inherit;
  pointer-events:none;overflow:hidden;opacity:0;
  transition:opacity .28s ease;
}
.nf-body .zvp-neon-frame:before{
  content:"";position:absolute;inset:0;padding:1.5px;border-radius:inherit;
  background:radial-gradient(220px circle at var(--zvp-mx) var(--zvp-my),
    #e8faff 0%,#bfe6ff 18%,#ae8afa 42%,#7c63dbad 65%,transparent 100%);
  -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
  mask-composite:exclude;
  opacity:.96;
}
.nf-body .zvp-neon-frame:after{
  content:"";position:absolute;inset:-45%;
  background:linear-gradient(113deg,transparent 27%,#b7aff500 39%,
    #a9c8ff0b 43%,#d5f9ff21 49%,#e2a8f712 53%,transparent 60%);
  transform:translateX(-100%) rotate(8deg);opacity:0;
}
.nf-body .zvp-neon-surface.zvp-hover>.zvp-neon-frame,
.nf-body .zvp-neon-surface:focus-visible>.zvp-neon-frame,
.nf-body .zvp-neon-surface:focus-within>.zvp-neon-frame{opacity:1}
.nf-body .zvp-neon-surface.zvp-neon-enter>.zvp-neon-frame:after{
  animation:zvp-neon-sheen 1.05s cubic-bezier(.2,.65,.3,1) both;
}
@keyframes zvp-neon-sheen{
  0%{opacity:0;transform:translate3d(-85%,0,0) rotate(8deg)}
  20%{opacity:.56}
  65%{opacity:.72}
  100%{opacity:0;transform:translate3d(75%,0,0) rotate(8deg)}
}
/* Very subtle surface lift. Individual scale composes with existing tilt and reveal transforms. */
@media(hover:hover) and (pointer:fine){
 .nf-body :is(.nf-feature,.nf-universe-card,.server-card,.ency-directory-card,
   .ency-wiki-card,.ency-wiki-model-card,.shop-product,.ency-wiki-gallery-item).zvp-hover{
   scale:1.018;
   border-color:#a9a2e9!important;
   box-shadow:0 19px 39px #070a24bd,0 0 26px #947ae43c,0 0 0 1px #ad94ea40;
 }
 .nf-body .nf-feature.zvp-hover{scale:1.026}
 .nf-body :is(.ency-wiki-card,.ency-wiki-model-card).zvp-hover{scale:1.027}
 .nf-body :is(.armory-slot,.armory-picker-item).zvp-hover{
   border-color:#a79dff!important;
   box-shadow:0 0 20px #8c79ec49,inset 0 0 16px #a589fd19;
 }
}
/* A luminous on-entry spark that follows the closest cursor edge. */
.nf-body .zvp-neon-spot{
 pointer-events:none;position:absolute;z-index:6;border-radius:inherit;
 inset:0;opacity:0;transition:opacity .24s ease;
 background:radial-gradient(230px circle at var(--zvp-mx) var(--zvp-my),
      #9aeaff17 0%,#b594ef0b 37%,transparent 74%);
}
.nf-body .zvp-hover>.zvp-neon-spot,.nf-body .zvp-neon-surface:focus-visible>.zvp-neon-spot{opacity:1}
.nf-body .zvp-neon-surface.zvp-neon-enter>.zvp-neon-spot{
 animation:zvp-neon-pulse .54s ease-out;
}
@keyframes zvp-neon-pulse{from{opacity:0}40%{opacity:.68}to{opacity:1}}
/* Icons & badges react as living neons, but remain crisp and readable. */
.nf-body :is(.nf-feature-icon,.nf-universe-tag,.nf-feature-arrow,
  .ency-arrow,.ency-skill-symbol,.ency-wiki-card-caption strong){
 transition:filter .35s ease,transform .35s cubic-bezier(.2,.72,.2,1),
            color .35s ease,box-shadow .35s ease,background .35s ease;
}
.nf-body .nf-feature.zvp-hover .nf-feature-icon{
 transform:translate3d(0,-3px,0) scale(1.10) rotate(-4deg);
 color:#eafaff;
 background:linear-gradient(135deg,#6652a4,#365b9f);
 box-shadow:inset 0 0 0 1px #c2b6ff99,
  0 0 17px #bd86ed74,0 0 30px #75d2fc34;
 filter:drop-shadow(0 0 7px #92ddffb5);
}
.nf-body .nf-feature.zvp-hover .nf-feature-arrow{
 transform:translate3d(4px,-4px,0) rotate(7deg);
 color:#b6eeff;filter:drop-shadow(0 0 7px #85dcfbc5);
}
.nf-body .nf-universe-card.zvp-hover .nf-universe-tag{
 filter:drop-shadow(0 0 8px #ab90f6a3);
 color:#ddf6ff;
 transform:translate3d(0,-2px,0);
}
.nf-body .ency-directory-card.zvp-hover .ency-arrow{
 transform:translate3d(4px,-3px,0) rotate(-8deg);
 color:#edfcff;box-shadow:0 0 15px #a1a0f981;
}
.nf-body .ency-wiki-card.zvp-hover .ency-wiki-card-caption strong{
 color:#f0faff;text-shadow:0 0 11px #98caff9c;
}
.nf-body .ency-wiki-gallery-item.zvp-hover img,
.nf-body .ency-wiki-model-card.zvp-hover img{
 filter:drop-shadow(0 8px 15px #967df454) brightness(1.07);
}
.nf-body .zvp-neon-icon-glimmer{
 position:absolute;inset:-4px;pointer-events:none;border-radius:inherit;
 background:conic-gradient(from 20deg at 50% 50%,transparent 0 12%,
    #b09fff00 18%,#c1f7ff4a 26%,transparent 36%,
    transparent 68%,#d7a5fa4d 77%,transparent 88%);
 opacity:0;transform:rotate(-35deg) scale(.84);
 transition:transform .75s ease,opacity .4s ease;
}
.nf-body .zvp-hover .zvp-neon-icon-glimmer{
 opacity:.56;transform:rotate(65deg) scale(1.09);
}
/* For primary actions, keep labels above decorative effects. */
.nf-body .button.primary,.nf-body .nf-header-account,.nf-body .join,
.nf-body .zvp-music-button{
 transition:transform .23s ease,box-shadow .3s ease,
 background .3s ease,border-color .25s ease,filter .25s ease;
}
.nf-body :is(.button.primary,.nf-header-account,.join,.zvp-music-button):is(:hover,:focus-visible){
 box-shadow:0 0 0 1px #ac9effaa,0 8px 26px #725bdd6b,0 0 34px #a2a3ff3b!important;
 filter:brightness(1.09);
}
.nf-body .nf-header-account:is(:hover,:focus-visible) span:last-child{
 transform:translate3d(3px,-3px,0);
}
.nf-body .nf-header-account span:last-child{
 display:inline-block;transition:transform .25s ease;
}
.nf-body :is(.nf-header-account,.nf-hero-actions .button,.join):active{
 transform:translateY(1px) scale(.985);
}
/* Hover-activated decorative underlight for major categories. */
.nf-body #home .nf-universe-card .nf-universe-info{
 transition:background .45s ease;
}
.nf-body #home .nf-universe-card.zvp-hover .nf-universe-info{
 background:linear-gradient(transparent,#1c1a48ed 20%,#101529f7);
}
.nf-body #home .nf-universe-card.zvp-hover .nf-universe-img img{
 filter:saturate(1.15) contrast(1.08) drop-shadow(0 16px 30px #9576ec8c);
}
.nf-body #home .nf-live .server-card.zvp-hover .progress>span{
 filter:brightness(1.20) drop-shadow(0 0 6px #92dfffa8);
}
.nf-body #home .nf-live .server-card .progress>span{
 transition:width .9s ease,filter .3s ease;
}
/* Detail and account controls: accent shifts without relocating interactive fields. */
.nf-body #account .account-dashboard-tabs [role=tab]{
 transition:background .24s ease,border-color .24s ease,
 box-shadow .25s ease,transform .25s ease;
}
.nf-body #account .account-dashboard-tabs [role=tab]:not([aria-selected=true]):hover{
 transform:translateY(-2px);
 background:#302b59;color:#f0edff;border-color:#8581c5;
 box-shadow:0 6px 17px #7063c245;
}
.nf-body :is(.ency-wiki-filter,.ency-wiki-sort,.ency-wiki-search,
 .armory-picker-category,.armory-picker-filter,.copy-btn,
 .shop-coming,.account-logout):is(:hover,:focus-visible){
 border-color:#a6b9f8!important;
 box-shadow:0 0 16px #9885f349;
}
.nf-body .zvp-music-button:hover .zvp-music-label{
 text-shadow:0 0 13px #b5e8ff,0 0 22px #ad8df2;
}
/* Section headings subtly illuminate as they scroll into view. */
.nf-body #home .nf-section.zvp-section-lit .nf-section-head h2 em{
 filter:drop-shadow(0 0 11px #aa86fa78);
 transition:filter 1.1s ease;
}
/* Loading catalogue cards should not trigger infinite animations. */
.nf-body .zvp-neon-surface:not(.zvp-hover):not(:focus-within)>.zvp-neon-frame,
.nf-body .zvp-neon-surface:not(.zvp-hover):not(:focus-within)>.zvp-neon-spot{
 pointer-events:none;
}
/* Mobile and accessibility: no pointer-follow layout or hover-only traps. */
@media(hover:none),(pointer:coarse){
 .nf-body .zvp-neon-frame,.nf-body .zvp-neon-spot,
 .nf-body .zvp-neon-icon-glimmer{display:none!important}
 .nf-body .zvp-neon-surface{scale:1!important}
 .nf-body .nf-feature-icon,.nf-body .nf-feature-arrow{transform:none!important}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-neon-frame,.nf-body .zvp-neon-spot,.nf-body .zvp-neon-icon-glimmer{
  animation:none!important;transition:none!important;
 }
 .nf-body .zvp-neon-surface{scale:1!important;transition:none!important}
 .nf-body .nf-feature-icon,.nf-body .nf-feature-arrow,
 .nf-body .ency-arrow,.nf-body .nf-universe-tag,
 .nf-body .nf-header-account span:last-child{
  transform:none!important;transition:none!important
 }
 .nf-body .nf-section-head h2 em{filter:none!important}
}

/* Edge-aware spark: enters from actual top/right/bottom/left pointer entry. */
.nf-body .zvp-edge-spark{
 position:absolute;
 width:32px;height:32px;
 left:var(--zvp-edge-x);top:var(--zvp-edge-y);
 border-radius:50%;pointer-events:none;opacity:0;
 background:radial-gradient(circle,#eafcff 0%,#9bdfffbb 18%,#bb92f377 41%,transparent 72%);
 box-shadow:0 0 17px #a9d8ff7c,0 0 31px #b383ff48;
 transform:translate(-50%,-50%) scale(.42);
}
.nf-body .zvp-neon-enter>.zvp-neon-frame .zvp-edge-spark{
 animation:zvp-edge-spark .75s cubic-bezier(.2,.7,.2,1) both;
}
@keyframes zvp-edge-spark{
 0%{opacity:0;transform:translate(-50%,-50%) scale(.25)}
 25%{opacity:.95;transform:translate(-50%,-50%) scale(1.3)}
 85%{opacity:.32}
 100%{opacity:0;transform:translate(-50%,-50%) scale(1.7)}
}
.nf-body .zvp-neon-icon{position:relative;isolation:isolate;overflow:visible}
.nf-body .zvp-neon-icon-glimmer{z-index:-1}
/* Universal progress guide in the night skyline: purely informational, never clickable. */
.nf-body>#zvp-interaction-progress{
 position:fixed;inset:0 0 auto;z-index:120;height:2px;
 border-radius:0;pointer-events:none;
 background:linear-gradient(90deg,#7c79f7 0%,#c6a1ff 38%,#bdeeff 80%,#83b9ff);
 box-shadow:0 0 10px #bf9affbf,0 0 20px #74cfff60;
 transform:scaleX(0);transform-origin:left;
 transition:none;
}
.nf-body>#zvp-interaction-progress[hidden]{display:none}
/* Navigation becomes lit, but the original placement and active page logic remain unchanged. */
.nf-body .nf-header .menu>a{
 transition:transform .25s cubic-bezier(.2,.7,.2,1),color .25s,text-shadow .25s;
}
.nf-body .nf-header .menu>a:is(:hover,:focus-visible,.active){
 text-shadow:0 0 13px #caa7ff80,0 0 22px #7eaaff4a;
}
.nf-body .nf-header .menu>a:after{
 background:linear-gradient(90deg,#7f96f6,#b58cff,#9ae4ff);
 box-shadow:0 0 12px #a9b7ff8e;
}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){
 .nf-body .zvp-edge-spark{display:none!important}
 .nf-body>#zvp-interaction-progress{box-shadow:none}
}

/* Edge highlight v2 — NO circular flashes, NO full-card glow discs.
   Only a 1px neon outline and a short travelling LINE at the entered side. */
.nf-body .zvp-neon-spot{display:none!important}
.nf-body .zvp-neon-icon-glimmer{display:none!important}
.nf-body .zvp-neon-frame:after{display:none!important}
.nf-body .zvp-neon-frame:before{
 padding:1px!important;
 background:linear-gradient(130deg,#89ddff,#a88de8 38%,#d5a8fb 64%,#89d9ff)!important;
 opacity:.72!important;
}
.nf-body .zvp-edge-spark{
 position:absolute;
 left:var(--zvp-edge-x);top:var(--zvp-edge-y);
 width:2px;height:78px;
 opacity:0;pointer-events:none;border-radius:2px;
 background:linear-gradient(180deg,transparent,#9bdfff 26%,#e9f9ff 51%,#b28dff 72%,transparent)!important;
 box-shadow:0 0 4px #a2d9ff91,0 0 9px #a77fff68;
 transform:translate(-50%,-50%) scaleY(.45);
}
.nf-body .zvp-neon-surface[data-neon-edge="top"] .zvp-edge-spark,
.nf-body .zvp-neon-surface[data-neon-edge="bottom"] .zvp-edge-spark{
 width:100px;height:2px;
 background:linear-gradient(90deg,transparent,#a9dfff 27%,#edfaff 50%,#b494ff 73%,transparent)!important;
 transform:translate(-50%,-50%) scaleX(.42);
}
.nf-body .zvp-neon-surface.zvp-neon-enter>.zvp-neon-frame .zvp-edge-spark{
 animation:zvp-edge-line-vertical .8s ease-out both!important;
}
.nf-body .zvp-neon-surface.zvp-neon-enter[data-neon-edge="top"]>.zvp-neon-frame .zvp-edge-spark,
.nf-body .zvp-neon-surface.zvp-neon-enter[data-neon-edge="bottom"]>.zvp-neon-frame .zvp-edge-spark{
 animation:zvp-edge-line-horizontal .8s ease-out both!important;
}
@keyframes zvp-edge-line-vertical{
 0%{opacity:0;transform:translate(-50%,-50%) scaleY(.35)}
 18%{opacity:.96}
 65%{opacity:.55;transform:translate(-50%,-50%) scaleY(1.05)}
 100%{opacity:0;transform:translate(-50%,-50%) scaleY(1.25)}
}
@keyframes zvp-edge-line-horizontal{
 0%{opacity:0;transform:translate(-50%,-50%) scaleX(.35)}
 18%{opacity:.96}
 65%{opacity:.55;transform:translate(-50%,-50%) scaleX(1.04)}
 100%{opacity:0;transform:translate(-50%,-50%) scaleX(1.22)}
}
@media (prefers-reduced-motion:reduce){
 .nf-body .zvp-edge-spark{display:none!important}
}

/* ZvsP theme source 16: cso-gallery.css */
/* CSO Korea gallery — complete, authentic 33-original-wallpaper panorama.
   Every image is object-fit:contain; no background removal, no image cropping. */
.nf-body #home .zvp-panorama-gallery{
 position:relative;display:block;height:auto;min-height:0;
 padding:27px 24px 25px;overflow:hidden;border-radius:16px;
 border:1px solid #867ac7;
 background:
  radial-gradient(ellipse at 10% 0%,#594b9446,transparent 56%),
  radial-gradient(ellipse at 82% 80%,#3f71954a,transparent 60%),
  linear-gradient(125deg,#201c40,#10152e 65%,#13192e);
 box-shadow:0 20px 42px #050818b5,0 0 28px #806fe329;
}
.nf-body .zvp-panorama-gallery:before{
 content:"";position:absolute;inset:-100px -10%;z-index:0;
 background:
  linear-gradient(90deg,transparent 8%,#7960ee19 38%,transparent 65%),
  radial-gradient(ellipse at 70% 43%,#6f91ee2d,transparent 60%);
 pointer-events:none;
}
.nf-body .zvp-gallery-head{
 position:relative;z-index:1;display:flex;align-items:flex-end;
 justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:23px;
}
.nf-body .zvp-gallery-head h2{
 font:700 clamp(28px,3.6vw,45px)/1.08 Oswald,Impact,sans-serif;
 margin:4px 0 8px;letter-spacing:.2px;color:#f6f0ff;
 text-shadow:0 0 17px #aa8de989;
}
.nf-body .zvp-gallery-head h2 em{
 font-style:normal;
 background:linear-gradient(95deg,#dca7ff,#b5ecff);
 background-clip:text;-webkit-background-clip:text;
 -webkit-text-fill-color:transparent;
 filter:drop-shadow(0 0 8px #857eea88);
}
.nf-body .zvp-gallery-head .zvp-gallery-kicker{
 font:800 10px/1.5 Manrope,Arial,sans-serif;
 letter-spacing:1.3px;color:#9fdbfa;
}
.nf-body .zvp-gallery-head p{
 font:500 11px/1.6 Manrope,Arial,sans-serif;color:#c9c8e9;
 max-width:580px;margin:0;
}
.nf-body .zvp-gallery-controls{
 display:flex;align-items:center;gap:11px;flex-shrink:0;flex-wrap:wrap;
}
.nf-body .zvp-gallery-nav{
 width:43px;height:43px;display:grid;place-items:center;
 border:1px solid #8578bf;background:linear-gradient(150deg,#312a5d,#1a2043);
 color:#e3ebff;border-radius:9px;cursor:pointer;font-size:24px;
 transition:background .2s,border-color .2s,box-shadow .25s,transform .2s;
}
.nf-body .zvp-gallery-nav:is(:hover,:focus-visible){
 border-color:#abdcff;background:#514487;box-shadow:0 0 15px #978af37b;
 transform:translateY(-2px);
}
.nf-body .zvp-gallery-nav:active{transform:translateY(1px)}
.nf-body .zvp-gallery-count{
 font:800 12px/1.2 Manrope,Arial,sans-serif;
 letter-spacing:1px;min-width:67px;text-align:center;color:#f0e8ff;
 font-variant-numeric:tabular-nums;
}
.nf-body .zvp-gallery-count span{color:#99ddff}
.nf-body .zvp-gallery-autoplay{
 min-width:66px;padding:9px 12px;border-radius:8px;
 background:#242241;border:1px solid #756baf;color:#d6d3fa;
 cursor:pointer;font:800 9px Manrope,Arial,sans-serif;
 transition:border-color .22s,background .22s,color .22s;
}
.nf-body .zvp-gallery-autoplay:is(:hover,:focus-visible){
 border-color:#a1b7ff;color:#fff;background:#484071;
}
.nf-body .zvp-gallery-viewport{
 position:relative;z-index:1;overflow:hidden;
 border-radius:12px;touch-action:pan-y;outline:none;
}
.nf-body .zvp-gallery-viewport:focus-visible{
 outline:2px solid #a2dfff;outline-offset:3px;
}
.nf-body .zvp-gallery-track{
 display:flex;gap:12px;align-items:stretch;width:100%;
 transition:transform .82s cubic-bezier(.18,.82,.23,1);
 will-change:auto;
}
.nf-body .zvp-gallery-slide{
 box-sizing:border-box;
 position:relative;overflow:hidden;flex:0 0 calc((100% - 36px)/4);
 margin:0;
 aspect-ratio:3/4.15;
 background:
  radial-gradient(ellipse at 60% 18%,#59457d3a,transparent 70%),
  linear-gradient(#20203d,#12192f);
 border:1px solid #665e9b;
 border-radius:11px;
 box-shadow:0 6px 19px #03091d6b;
 transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s;
}
.nf-body .zvp-gallery-slide img{
 display:block;width:100%;height:100%;
 object-fit:contain;object-position:center center;
 padding:0;
 transition:filter .3s ease,scale .35s ease;
}
.nf-body .zvp-gallery-slide:after{
 content:"";position:absolute;inset:0;pointer-events:none;
 background:linear-gradient(0deg,#101128d6 0%,transparent 26%,transparent 81%,#15132b43);
}
.nf-body .zvp-gallery-slide figcaption{
 position:absolute;z-index:1;bottom:13px;left:15px;right:10px;
 display:flex;align-items:center;justify-content:space-between;gap:10px;
 font:800 10px/1.4 Manrope,Arial,sans-serif;
 color:#f4edff;text-shadow:0 1px 8px #000a;
}
.nf-body .zvp-gallery-slide figcaption small{
 color:#b9ecff;font:700 9px/1.3 Manrope,Arial,sans-serif;letter-spacing:.2px;
}
@media(hover:hover) and (pointer:fine){
 .nf-body .zvp-gallery-slide:hover{
  border-color:#acb7ff;box-shadow:0 0 24px #907aff5d,0 18px 30px #040a1a9e;
  transform:translateY(-4px);
 }
 .nf-body .zvp-gallery-slide:hover img{filter:brightness(1.06) saturate(1.07)}
}
.nf-body .zvp-gallery-footer{
 position:relative;z-index:1;display:flex;justify-content:space-between;
 align-items:center;gap:18px;margin-top:23px;
}
.nf-body .zvp-gallery-range{
 -webkit-appearance:none;appearance:none;display:block;flex:1;
 width:100%;height:4px;min-width:70px;border:0;border-radius:99px;
 background:linear-gradient(90deg,#a88cfc 0 var(--zvp-gallery-percentage,0%),#524b7c var(--zvp-gallery-percentage,0%) 100%);
 cursor:pointer;padding:0;
}
.nf-body .zvp-gallery-range::-webkit-slider-thumb{
 appearance:none;width:14px;height:14px;border:2px solid #def8ff;
 border-radius:50%;background:#9c84f7;box-shadow:0 0 10px #c7a4fba3;
}
.nf-body .zvp-gallery-range::-moz-range-thumb{
 width:11px;height:11px;border:2px solid #def8ff;
 border-radius:50%;background:#9c84f7;box-shadow:0 0 10px #c7a4fba3;
}
.nf-body .zvp-gallery-footnote{
 color:#ada9d9;font:600 10px/1.5 Manrope,Arial,sans-serif;
 white-space:nowrap;
}
@media(max-width:1000px){
 .nf-body .zvp-gallery-slide{flex-basis:calc((100% - 24px)/3)}
}
@media(max-width:700px){
 .nf-body #home .zvp-panorama-gallery{padding:20px 15px}
 .nf-body .zvp-gallery-slide{flex-basis:calc((100% - 12px)/2)}
 .nf-body .zvp-gallery-head{align-items:flex-start;gap:12px}
 .nf-body .zvp-gallery-head h2{font-size:31px}
 .nf-body .zvp-gallery-controls{margin-top:4px}
 .nf-body .zvp-gallery-slide figcaption{left:8px;bottom:9px}
 .nf-body .zvp-gallery-slide figcaption small{display:none}
 .nf-body .zvp-gallery-footnote{font-size:8px}
}
@media(max-width:360px){
 .nf-body #home .zvp-panorama-gallery{padding:16px 11px}
 .nf-body .zvp-gallery-head h2{font-size:27px}
 .nf-body .zvp-gallery-nav{height:39px;width:39px}
 .nf-body .zvp-gallery-slide{flex-basis:calc((100% - 10px)/2)}
 .nf-body .zvp-gallery-track{gap:10px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-gallery-track,.nf-body .zvp-gallery-slide,
 .nf-body .zvp-gallery-slide img{transition:none!important}
 .nf-body .zvp-gallery-slide:hover{transform:none!important}
}

/* ZvsP theme source 17: route-polish.css */
/* Zombie vs People — cinematic page transition, night-neon v1.
   Decorative only: routing is still handled by original app.js. No scroll-lock. */
.nf-body>.zvp-route-sweep{
  position:fixed;inset:60px 0 0;z-index:42;
  pointer-events:none;overflow:hidden;opacity:0;
  visibility:hidden;contain:paint;
}
.nf-body>.zvp-route-sweep:before{
  content:"";position:absolute;top:0;left:0;
  width:min(58vw,720px);height:2px;border-radius:6px;
  background:linear-gradient(90deg,transparent 0%,#70ccff 17%,#e8c4ff 53%,#84c3ff 82%,transparent 100%);
  box-shadow:0 0 9px #96bdffb9,0 0 21px #ac86ed99;
  transform:translate3d(-115vw,0,0);
}
.nf-body>.zvp-route-sweep:after{
  content:"";position:absolute;top:0;left:0;
  width:min(62vw,800px);height:140px;opacity:0;
  background:linear-gradient(105deg,transparent 6%,#7178e90a 24%,#a38cef20 50%,#86c7ff0c 64%,transparent 88%);
  transform:translate3d(-115vw,0,0);
}
.nf-body.zvp-route-switch>.zvp-route-sweep{
  visibility:visible;opacity:1;
  animation:zvp-route-overlay .67s ease-out both;
}
.nf-body.zvp-route-switch>.zvp-route-sweep:before{
  animation:zvp-route-streak .67s cubic-bezier(.16,.70,.22,1) both;
}
.nf-body.zvp-route-switch>.zvp-route-sweep:after{
  animation:zvp-route-glow .67s cubic-bezier(.16,.70,.22,1) both;
}
.nf-body.zvp-route-reverse>.zvp-route-sweep{
  transform:scaleX(-1);
}
@keyframes zvp-route-overlay{
  0%{opacity:0}13%,58%{opacity:.88}100%{opacity:0}
}
@keyframes zvp-route-streak{
  0%{transform:translate3d(-80vw,0,0);opacity:0}
  13%{opacity:.96}
  73%{opacity:.7}
  100%{transform:translate3d(150vw,0,0);opacity:0}
}
@keyframes zvp-route-glow{
  0%{transform:translate3d(-90vw,0,0);opacity:0}
  22%{opacity:.65}
  70%{opacity:.25}
  100%{transform:translate3d(148vw,0,0);opacity:0}
}
/* Content enters lightly; armory/WebGL never gets transformed or animated. */
.nf-body .page.active:not(#weapons){
  animation:zvp-content-enter .52s cubic-bezier(.22,.85,.27,1) both;
}
@keyframes zvp-content-enter{
  0%{opacity:.54;transform:translate3d(0,12px,0)}
  100%{opacity:1;transform:translate3d(0,0,0)}
}
/* Native inner tabs & newly rendered wiki details receive the same quiet entrance. */
.nf-body #account .account-pane:not([hidden]){
  animation:zvp-tab-enter .35s cubic-bezier(.2,.8,.3,1) both;
}
.nf-body .ency-wiki-profile{
  animation:zvp-tab-enter .42s cubic-bezier(.2,.8,.3,1) both;
}
@keyframes zvp-tab-enter{
  from{opacity:.52;transform:translate3d(0,8px,0)}
  to{opacity:1;transform:translate3d(0,0,0)}
}
/* Specific button and navigation neon, without full-card circular highlights. */
.nf-body .zvp-neon-control{
  --zvp-edge-x:50%;--zvp-edge-y:50%;
  position:relative;
  isolation:isolate;
  transition:
   scale .22s cubic-bezier(.2,.75,.25,1),
   border-color .23s ease,
   box-shadow .25s ease,
   background-color .23s ease,
   color .23s ease;
}
.nf-body .zvp-neon-control .zvp-neon-frame{
  border-radius:inherit;inset:0;
  overflow:hidden;opacity:0;transition:opacity .22s ease;
}
.nf-body .zvp-neon-control.zvp-hover>.zvp-neon-frame,
.nf-body .zvp-neon-control:focus-visible>.zvp-neon-frame{
  opacity:1;
}
.nf-body .zvp-neon-control .zvp-neon-frame:before{
  padding:1px!important;
  background:linear-gradient(115deg,#a7dfff,#b19cf7 53%,#9ee4ff)!important;
  opacity:.79!important;
}
.nf-body .zvp-neon-control .zvp-edge-spark{
  width:2px;height:min(54px,65%);
  background:linear-gradient(180deg,transparent,#99d8ff 23%,#f3fbff 50%,#b9a5ff 75%,transparent)!important;
  box-shadow:0 0 4px #b9d6ff8c,0 0 7px #9d85e473;
}
.nf-body .zvp-neon-control[data-neon-edge="top"] .zvp-edge-spark,
.nf-body .zvp-neon-control[data-neon-edge="bottom"] .zvp-edge-spark{
  width:min(76px,72%);height:2px;
  background:linear-gradient(90deg,transparent,#9fdfff 25%,#f5fbff 52%,#b497f9 75%,transparent)!important;
}
.nf-body .zvp-neon-control.zvp-hover{
  box-shadow:0 0 0 1px #a3a8e545,0 5px 18px #746ed32a;
}
@media(hover:hover) and (pointer:fine){
 .nf-body .zvp-neon-control.zvp-hover{scale:1.025}
 .nf-body .nf-header .zvp-neon-control.zvp-hover{scale:1.014}
 .nf-body #weapons .zvp-neon-control.zvp-hover{scale:1.006}
}
.nf-body .nf-header .menu>a.zvp-neon-control{
  border-radius:5px;padding-inline:4px;
  margin-inline:-4px;
}
.nf-body .nf-header .menu>a.zvp-neon-control .zvp-neon-frame:before{
  background:linear-gradient(105deg,#8fddff,#c2a5ff,#a2e6ff)!important;
}
.nf-body .nf-header .menu>a.zvp-hover{
  text-shadow:0 0 11px #b5b5ff87,0 0 19px #88ddff53;
}
.nf-body .zvp-neon-control.zvp-hover>.zvp-edge-spark{pointer-events:none}
.nf-body :is(.nf-header-account,.nf-hero-actions .button,.join,.copy-btn,
 .zvp-gallery-nav,.zvp-gallery-autoplay):is(:focus-visible,.zvp-hover){
  border-color:#b4bcf5;
}
.nf-body .nf-header-account.zvp-hover{
  background:linear-gradient(125deg,#7453cb,#c47bdd);
}
.nf-body .nf-hero-actions .button.zvp-hover{
  box-shadow:0 8px 23px #7557d244,0 0 19px #997af43c;
}
@media(max-width:900px){
 .nf-body>.zvp-route-sweep{inset-block-start:52px}
 .nf-body .zvp-neon-control{scale:1!important}
}
@media(hover:none),(pointer:coarse){
 .nf-body .zvp-neon-control .zvp-neon-frame{display:none!important}
 .nf-body .zvp-neon-control{scale:1!important}
}
@media(prefers-reduced-motion:reduce){
 .nf-body>.zvp-route-sweep{display:none!important}
 .nf-body .page.active:not(#weapons),.nf-body #account .account-pane:not([hidden]),
 .nf-body .ency-wiki-profile{animation:none!important;transform:none!important;opacity:1!important}
 .nf-body .zvp-neon-control{transition:none!important;scale:1!important}
 .nf-body .zvp-neon-control .zvp-neon-frame{animation:none!important;transition:none!important}
}

/* ZvsP theme source 18: visual-refinements.css */
/* Zombie vs People — visual QA corrections (2026-11-03).
 * Targeted mobile ergonomics + overflowing weapon filters.
 * Deliberately does not transform the 3D/WebGL canvas or hero artworks.
 */
.nf-body #guide-weapons .ency-wiki-filters{
  scrollbar-width:thin;
  scrollbar-color:#968be0 #24213e;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
}
.nf-body #guide-weapons .ency-wiki-filter{
  scroll-snap-align:start;
}
.nf-body .ency-wiki-filters::-webkit-scrollbar{height:4px}
.nf-body .ency-wiki-filters::-webkit-scrollbar-thumb{
  background:#9988e4;border-radius:20px;
}
.nf-body .ency-wiki-filters::-webkit-scrollbar-track{
  background:#26213f;border-radius:20px;
}
@media(max-width:900px){
  /* Visible sign that more weapon categories are located off the right edge. */
  .nf-body #guide-weapons .ency-wiki-toolbar:after{
    content:"↔ ЛИСТАЙ КАТЕГОРИИ";
    display:block;
    margin:-6px 0 0 2px;
    color:#a2caff;
    font:800 9px/1.5 Manrope,Arial,sans-serif;
    letter-spacing:.5px;
    opacity:.86;
    pointer-events:none;
  }
  .nf-body #guide-weapons .ency-wiki-filter{
    min-height:40px;
    padding:10px 13px;
  }
  .nf-body #guide-weapons .ency-wiki-filters{
    padding-block:2px 8px;
  }
}
@media(max-width:560px){
  .nf-body .zvp-gallery-autoplay{min-height:40px}
  .nf-body .zvp-gallery-nav{min-height:43px}
  .nf-body #account .account-dashboard-tabs [role=tab]{
    min-height:41px;
  }
}
@media(max-width:380px){
  /* Keep existing horizontal widths (they already fit 320px); give the actions taller targets. */
  .nf-body .hamburger{height:41px!important;min-height:41px}
  .nf-body .zvp-music-button{height:41px!important;min-height:41px}
  .nf-body .nf-header-account{height:41px!important;min-height:41px;font-size:9px}
  .nf-body .nf-header .header-inner{align-items:center}
}
@media(prefers-reduced-motion:reduce){
  .nf-body #guide-weapons .ency-wiki-filters{scroll-behavior:auto}
}


/* QA FIX: the sticky header was painting ON TOP of the armory modal because
   main (z-index:1) was a separate stacking context below header (z-index:60).
   Elevate main only while the existing picker-open class is set by armory.js. */
.nf-body.armory-picker-open > main{
  position:relative;
  z-index:80!important;
}
.nf-body.armory-picker-open #armory-picker{
  z-index:900;
}


/* QA FIX: the armory picker's title strip retained the old brown theme. */
.nf-body #weapons .armory-picker-header{
  background:linear-gradient(110deg,#2b254e,#1a1e3d 75%);
  border:1px solid #7163aa;
  border-radius:8px;
  box-shadow:inset 0 -1px 0 #9d87ed40,0 0 18px #8072d01c;
}
.nf-body #weapons .armory-picker-header h3{
  color:#f8f3ff;
  text-shadow:0 0 13px #a38af677;
}


/* On a 320px phone, keep the 3D picker category title on one neat line. */
@media(max-width:360px){
  .nf-body #weapons .armory-picker-header h3{
    font-size:22px;
    line-height:1.15;
  }
}


/* ZvsP mobile pass 2026-11-04. Full alpha artworks, no cropping. */
html:has(body.nf-body){min-width:0}
body.nf-body{min-width:0}
.nf-body .nf-hero-visual{min-width:0}
.nf-body .zvp-night-character-stack{
 position:absolute;inset:10px 18px 12px;z-index:5;pointer-events:none;
}
.nf-body .zvp-night-character,
.nf-body .zvp-night-character.is-active{
 position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;
 margin:0;object-fit:contain;object-position:center bottom;
 transform:none!important;
 filter:drop-shadow(0 8px 12px #02071770) drop-shadow(0 0 9px #8472e550);
 transition:opacity 1.35s ease,visibility 1.35s;
}
@media(max-width:1100px){
 .nf-body .nf-header .menu{max-height:calc(100dvh - 72px);overflow-y:auto;overscroll-behavior:contain}
 .nf-body .nf-header .menu>a{min-height:44px;display:flex;align-items:center;padding-inline:12px}
}
@media(max-width:800px){
 .nf-body .nf-hero-content{min-width:0;gap:18px;padding-block:26px 22px}
 .nf-body .nf-hero-copy{min-width:0;padding:0}
 .nf-body .nf-hero-visual{height:clamp(310px,84vw,450px);width:100%;max-width:550px}
 .nf-body .zvp-night-character-stack{inset:4px 8px 10px}
 .nf-body .nf-hero-copy>p{font-size:14px;line-height:1.75}
 .nf-body .nf-hero-facts{gap:12px 16px;flex-wrap:wrap;margin-top:22px}
 .nf-body .nf-hero-actions .button{min-height:48px}
 .nf-body .zvp-city-depth,.nf-body .zvp-night-stars,
 .nf-body .nf-hero>.zvp-city-windows{transform:none!important}
 .nf-body .zvp-hero-smoke,.nf-body .zvp-city-rays{display:none}
 .nf-body .zvp-city-lightpool{animation:none;filter:none}
 .nf-body .nf-hero-visual:before{filter:none;inset:0;background:none}
 .nf-body input:not([type=checkbox]):not([type=radio]):not([type=range]),
 .nf-body select,.nf-body textarea{font-size:16px}
 .nf-body .account-shell,.nf-body .account-main,.nf-body .armory-layout>*{min-width:0}
 .nf-body .account-dashboard-tabs{max-width:100%;overflow-x:auto}
 .nf-body .account-dashboard-tabs [role=tab]{min-height:44px;flex-shrink:0}
 .nf-body .zvp-gallery-nav,.nf-body .zvp-gallery-autoplay{min-height:44px}
 .nf-body .server-card{min-width:0}
 .nf-body .server-card h3{overflow-wrap:anywhere}
}
@media(max-width:560px){
 .nf-body .nf-hero-content{padding-top:28px}
 .nf-body .nf-hero h1{font-size:clamp(36px,10.6vw,56px);line-height:1.06}
 .nf-body .nf-hero-facts span{font-size:9px;line-height:1.6}
 .nf-body .nf-header .header-inner{gap:6px;padding-inline:12px}
 .nf-body .nf-brand{min-width:0;flex:1;gap:6px}
 .nf-body .hamburger,.nf-body .zvp-music-button{
  flex:0 0 44px;width:44px;min-width:44px;height:44px!important;min-height:44px!important;margin:0;padding:0;
 }
 .nf-body .nf-header-account{
  flex:0 0 auto;min-width:66px;padding:8px;height:44px!important;min-height:44px!important;
 }
 .nf-body .nf-header .menu{max-height:calc(100dvh - 67px)}
 .nf-body .ency-wiki-card-caption strong{line-height:1.35}
 .nf-body .ency-wiki-toolbar{min-width:0}
}
@media(max-width:380px){
 .nf-body .brand-label strong{font-size:13px;letter-spacing:0}
 .nf-body .brand-label small{font-size:5.5px;letter-spacing:.5px}
 .nf-body .nf-brand-icon,.nf-body .nf-brand>img{width:27px;min-width:27px;height:30px}
 .nf-body .nf-header-account{min-width:62px;font-size:8px}
 .nf-body .nf-header-account>span:last-child{display:none}
 .nf-body .server-bottom{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:8px}
 .nf-body .server-ip{grid-column:1/-1;overflow-wrap:anywhere}
 .nf-body .server-bottom .copy-btn{min-height:44px;width:100%;margin:0}
 .nf-body .server-bottom .join{min-width:44px;min-height:44px;margin:0}
 .nf-body .nf-hero-visual{height:310px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-night-character{transition:none}
}


/* ZvsP: night arrival and complete character collection. */
.nf-body{--zvp-ice:#a9e7ff;--zvp-lilac:#c3b3ff;--zvp-soft:#c8d6ed}
.nf-body .nf-header{background:linear-gradient(115deg,#0b1024f5,#1a1737f5 58%,#101b32f5);border-bottom:1px solid #8798da38;box-shadow:0 8px 32px #02081765}
.nf-body .nf-brand-icon{border-color:#a1c6ff77;box-shadow:0 0 18px #91b1ff2d}
.nf-body .nf-header-account{background:linear-gradient(110deg,#6655c5,#9860b9 60%,#658bc0);border:1px solid #c2b7ff77}
.nf-body .nf-hero{background:#080f22;border-bottom:1px solid #87a6df1c}
.nf-body .zvp-city-depth.far{background-image:url('/experience-assets/neon-arrival-city.webp');background-size:cover;background-position:center 60%;inset:-5% -5%;opacity:.94;transform:translate3d(calc(var(--zvp-x)*-12px),calc(var(--zvp-y)*-7px),0) scale(1.04)}
.nf-body .zvp-city-depth.mid{opacity:.12;mix-blend-mode:screen;inset:17% -5% -15%;background-position:center bottom}
.nf-body .zvp-city-depth.near{opacity:.08;inset:28% -8% -20%;mix-blend-mode:screen}
.nf-body .nf-hero:before{background:linear-gradient(90deg,#080e20ec 0%,#0b1125bd 29%,#11182b40 64%,#0b0f2620),linear-gradient(0deg,#0a1022f2,transparent 22%,#0a10222a 90%)}
.nf-body .nf-hero:after{background:linear-gradient(0deg,#0a1022,transparent);height:30px;opacity:.55;pointer-events:none}
.nf-body .zvp-night-neon-line,.nf-body .nf-hero-grid,.nf-body .nf-hero-visual:before{display:none!important}
.nf-body .nf-hero>.zvp-city-windows,.nf-body .nf-hero>.zvp-city-rays{display:none}
.nf-body .zvp-night-halo{inset:10% 4% 6%;width:auto;height:auto;background:radial-gradient(ellipse,#9385d725,transparent 66%);filter:none}
.nf-body .zvp-city-ambient{background:radial-gradient(ellipse at 75% 50%,#7762ba24,transparent 65%);mix-blend-mode:screen;animation:zvp-city-tone 15s ease-in-out infinite alternate}
@keyframes zvp-city-tone{from{opacity:.28}to{opacity:.72}}
.nf-body .nf-hero-content{padding-top:26px;padding-bottom:28px;gap:28px}
.nf-body .nf-hero-visual{height:550px}
.nf-body .zvp-night-character-stack{inset:0 22px 58px;transform:translate3d(calc(var(--zvp-x)*9px),calc(var(--zvp-y)*5px),0)}
.nf-body .zvp-night-character{filter:drop-shadow(0 10px 14px #030b1670) drop-shadow(0 0 7px #a1abdd20)}
.nf-body .zvp-hero-controls{position:absolute;bottom:2px;left:50%;transform:translateX(-50%);z-index:7;display:flex;align-items:center;gap:8px;border:1px solid #b1bbeb38;border-radius:28px;background:#0c152ba8;padding:3px 7px;white-space:nowrap;backdrop-filter:blur(8px)}
.nf-body .zvp-hero-controls button{width:40px;height:40px;display:grid;place-items:center;border:0;background:transparent;color:#d7e9ff;cursor:pointer;font:700 22px/1 Arial,sans-serif;border-radius:50%}
.nf-body .zvp-hero-controls button:is(:hover,:focus-visible){background:#8a8de928;outline:1px solid #a9d9ff80;outline-offset:-2px}
.nf-body .zvp-hero-controls .zvp-hero-pause{font-size:13px}
.nf-body .zvp-hero-count{min-width:56px;color:#d6dcf5;text-align:center;font:700 10px/1.4 Manrope,Arial,sans-serif;letter-spacing:1px;font-variant-numeric:tabular-nums}
.nf-body .zvp-arrival-replay{display:inline-flex;align-items:center;gap:9px;margin-top:24px;padding:0;min-height:36px;border:0;background:transparent;color:#adbfe3;font:700 10px/1.6 Manrope,Arial,sans-serif;cursor:pointer;letter-spacing:.3px}
.nf-body .zvp-arrival-replay:before{content:'✦';color:#b4b9ff;font-size:15px}
.nf-body .zvp-arrival-replay:is(:hover,:focus-visible){color:#c4edff;text-shadow:0 0 12px #89bbff66}
/* Reusable messages keep semantic text, with the same cold palette as the site. */
.nf-body :is(.armory-warning,.armory-footer [role=status],.account-message,.account-message.error,.account-mail-status,.armory-preview-badge,.nf-tier-notice){color:#c9d9f6!important;border-color:#8d8bcd66!important;background-color:#19223c!important}
.nf-body .armory-footer [role=status]{background:transparent!important;font-size:11px;line-height:1.65}
.nf-body .armory-footer [role=status][data-state=warning]{color:#c9c1ff!important}
.nf-body :is(.armory-picker-type,.armory-picker-unmapped,.armory-picker-3d,#armory-picker-count,.armory-slot-action,.armory-previewing .armory-slot-action){color:#accff5!important}
.nf-body :is(.account-message,.account-message.error,.account-mail-status){border-left-color:#a2b3f0!important;background:#18213b!important}
.nf-body .server-card .server-status.offline{color:#c9c1ff;border-color:#8a7ebd;background:#27223e}
.nf-body .ency-wiki-card-caption small,.nf-body .ency-wiki-card-caption .ency-wiki-date,.nf-body .ency-wiki-card-caption .ency-wiki-type{color:#a5c9e9}
/* Native dialog supplies focus containment and makes the page inert until entry. */
.nf-body .zvp-welcome{--arrival-x:0;--arrival-y:0;position:fixed;inset:0;border:0;margin:0;padding:0;width:100%;height:100%;max-width:none;max-height:none;color:#edf5ff;background:#070e20;overflow:hidden}
.nf-body .zvp-welcome:not([open]){display:none}
.nf-body .zvp-welcome::backdrop{background:#070e20}
.nf-body .zvp-welcome[open]{display:grid;place-items:center;isolation:isolate;animation:zvp-welcome-in .65s ease both}
.nf-body .zvp-welcome.is-leaving{animation:zvp-welcome-out .3s ease both}
@keyframes zvp-welcome-in{from{opacity:0}to{opacity:1}}
@keyframes zvp-welcome-out{to{opacity:0}}
.nf-body .zvp-welcome-city{position:absolute;inset:-5%;z-index:-4;background:url('/experience-assets/neon-arrival-city.webp') center 62%/cover no-repeat;transform:translate3d(calc(var(--arrival-x)*-13px),calc(var(--arrival-y)*-8px),0) scale(1.04)}
.nf-body .zvp-welcome-depth{position:absolute;inset:35% -5% -10%;z-index:-3;background:url('/experience-assets/city-depth-near.svg') center bottom/cover no-repeat;opacity:.12;transform:translate3d(calc(var(--arrival-x)*15px),calc(var(--arrival-y)*8px),0)}
.nf-body .zvp-welcome:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(0deg,#070e22ed,transparent 40%,#0b10264d),radial-gradient(ellipse at 50% 37%,#090e1d9c,transparent 76%);pointer-events:none}
.nf-body .zvp-welcome-glow{position:absolute;inset:-20%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 25% 55%,#3088bd42,transparent 45%),radial-gradient(ellipse at 77% 47%,#b05ac03d,transparent 44%);mix-blend-mode:screen;animation:zvp-welcome-glow 12s ease-in-out infinite alternate}
@keyframes zvp-welcome-glow{from{opacity:.35;transform:translate3d(-2%,0,0)}to{opacity:.85;transform:translate3d(2%,-2%,0)}}
.nf-body .zvp-welcome-stars{position:absolute;inset:0;z-index:-1;pointer-events:none}
.nf-body .zvp-welcome-stars i{position:absolute;left:var(--sx);top:var(--sy);width:2px;height:2px;background:#b6e7ff;border-radius:50%;box-shadow:0 0 8px #9cbaff;opacity:.3;animation:zvp-welcome-star var(--sd) ease-in-out infinite alternate}
@keyframes zvp-welcome-star{to{opacity:.8;transform:scale(1.4)}}
.nf-body .zvp-welcome-copy{text-align:center;max-width:1000px;padding:56px 24px 90px;position:relative}
.nf-body .zvp-welcome-mark{display:inline-flex;align-items:center;gap:12px;padding:9px 16px;border:1px solid #a6b8e344;border-radius:40px;color:#bdd3f3;background:#111c3280;letter-spacing:3px;font:800 9px/1.5 Manrope,Arial,sans-serif;margin-bottom:35px}
.nf-body .zvp-welcome-mark i{display:block;width:5px;height:5px;background:#a2e6f3;border-radius:50%;box-shadow:0 0 12px #8ce7ff}
.nf-body .zvp-welcome-eyebrow{font:500 clamp(15px,2.1vw,24px)/1.6 Manrope,Arial,sans-serif;color:#d4e5fa;letter-spacing:.2px;text-shadow:0 3px 18px #030915}
.nf-body .zvp-welcome h2{margin:16px 0 20px;font:600 clamp(44px,8.5vw,104px)/1.05 Oswald,Impact,sans-serif;text-transform:none;letter-spacing:-1.7px;overflow-wrap:normal;text-shadow:0 7px 40px #030a17}
.nf-body .zvp-welcome h2 span{display:block;background:linear-gradient(105deg,#e3f5ff 5%,#c7bcff 37%,#9be3ff 66%,#e5c5ff 90%);background-size:200% auto;background-clip:text;-webkit-background-clip:text;color:transparent;animation:zvp-welcome-text 10s ease-in-out infinite alternate;filter:drop-shadow(0 0 20px #9b8fd944)}
@keyframes zvp-welcome-text{to{background-position:100% center}}
.nf-body .zvp-welcome-subtitle{color:#a8bfdc;font:500 clamp(11px,1.2vw,14px)/1.8 Manrope,Arial,sans-serif;letter-spacing:2px}
.nf-body .zvp-welcome-enter{display:inline-flex;align-items:center;justify-content:center;gap:32px;min-height:54px;margin-top:36px;padding:16px 30px;border:1px solid #c2c9ff8c;border-radius:10px;cursor:pointer;color:#f5f7ff;background:linear-gradient(110deg,#5c60aa,#8c64b6 58%,#557d9d);box-shadow:0 0 38px #8f78d72d;font:800 11px/1.4 Manrope,Arial,sans-serif;letter-spacing:1px;transition:box-shadow .2s,transform .2s}
.nf-body .zvp-welcome-enter:is(:hover,:focus-visible){box-shadow:0 0 35px #a09de24d;transform:translateY(-2px);outline:2px solid #b3eaff;outline-offset:4px}
.nf-body .zvp-welcome-enter span{font-size:20px;font-weight:400}
.nf-body .zvp-welcome-skip{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(20px,env(safe-area-inset-top));min-height:44px;padding:8px 14px;border:1px solid #8ba4cf40;border-radius:8px;background:#0e182d80;color:#b7cae4;font:700 10px/1.4 Manrope,Arial,sans-serif;cursor:pointer}
.nf-body .zvp-welcome-foot{position:absolute;bottom:max(25px,env(safe-area-inset-bottom));left:20px;right:20px;text-align:center;font:600 9px/1.6 Manrope,Arial,sans-serif;letter-spacing:2px;color:#a1b7d1}
.nf-body.zvp-welcome-open{overflow:hidden}
@media(max-width:800px){
 .nf-body .nf-hero-content{gap:12px}
 .nf-body .nf-hero-visual{height:clamp(350px,91vw,470px)}
 .nf-body .zvp-night-character-stack{inset:0 12px 62px;transform:none}
 .nf-body .zvp-city-depth.far{inset:0;background-size:auto 100%;background-position:68% bottom;transform:none}
 .nf-body .zvp-city-depth.mid,.nf-body .zvp-city-depth.near{display:none}
 .nf-body .nf-hero:before{background:linear-gradient(180deg,#080e24e0 0%,#0a1026c9 38%,#11172b37 65%,#091020b0)}
 .nf-body .zvp-welcome-city,.nf-body .zvp-welcome-depth{transform:none}
 .nf-body .zvp-welcome-city{background-position:64% center}
 .nf-body .zvp-welcome-mark{margin-bottom:25px}
 .nf-body .zvp-welcome-glow{animation-duration:18s}
 .nf-body .zvp-hero-controls button{width:44px;height:44px}
 .nf-body .zvp-arrival-replay{margin-top:14px}
}
@media(max-width:560px){
 .nf-body .nf-hero-content{padding-top:30px;padding-bottom:22px}
 .nf-body .nf-hero-visual{height:355px}
 .nf-body .zvp-welcome-copy{padding-inline:18px}
 .nf-body .zvp-welcome h2{font-size:clamp(42px,10.8vw,63px);letter-spacing:-.8px;margin-top:20px}
 .nf-body .zvp-welcome-eyebrow{font-size:14px}
 .nf-body .zvp-welcome-subtitle{font-size:10px;letter-spacing:1px}
 .nf-body .zvp-welcome-enter{gap:22px;margin-top:30px;min-height:52px;padding-inline:24px}
 .nf-body .zvp-welcome-mark{font-size:8px;letter-spacing:2px}
 .nf-body .zvp-welcome-stars i:nth-child(n+15){display:none}
 .nf-body .zvp-welcome-foot{font-size:8px;letter-spacing:1px}
}
@media(max-height:520px){.nf-body .zvp-welcome-copy{padding-block:60px}.nf-body .zvp-welcome-mark{display:none}.nf-body .zvp-welcome h2{font-size:52px;margin-block:8px}.nf-body .zvp-welcome-enter{margin-top:18px}.nf-body .zvp-welcome-foot{bottom:12px}}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-welcome,.nf-body .zvp-welcome-glow,.nf-body .zvp-welcome-stars i,.nf-body .zvp-welcome h2 span,.nf-body .zvp-city-ambient{animation:none!important}
 .nf-body .zvp-welcome-city,.nf-body .zvp-welcome-depth,.nf-body .zvp-night-character-stack{transform:none!important}
 .nf-body .zvp-welcome-enter{transition:none}
}

/* Arrival polish: restrained glints, staggered text and a soft handoff. */
.nf-body .zvp-welcome.is-leaving{animation:zvp-welcome-out .9s cubic-bezier(.2,.65,.25,1) both;pointer-events:none}
@keyframes zvp-welcome-out{to{opacity:0}}
.nf-body .zvp-welcome[open] .zvp-welcome-mark{animation:zvp-arrival-rise 1s .1s both}
.nf-body .zvp-welcome[open] .zvp-welcome-eyebrow{animation:zvp-arrival-rise 1.1s .22s both}
.nf-body .zvp-welcome[open] h2{animation:zvp-arrival-rise 1.25s .34s both}
.nf-body .zvp-welcome[open] .zvp-welcome-enter{animation:zvp-arrival-rise 1.1s .52s both}
@keyframes zvp-arrival-rise{from{opacity:0;transform:translate3d(0,14px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
.nf-body .zvp-welcome-glints{position:absolute;inset:0;z-index:-1;pointer-events:none}
.nf-body .zvp-welcome-glints i{position:absolute;left:18%;top:23%;width:3px;height:3px;background:#e6f7ff;border-radius:50%;box-shadow:0 0 16px 3px #9fdcff77;animation:zvp-arrival-glint 7s -2s ease-in-out infinite}
.nf-body .zvp-welcome-glints i:before,.nf-body .zvp-welcome-glints i:after{content:'';position:absolute;left:50%;top:50%;width:20px;height:1px;transform:translate(-50%,-50%);background:linear-gradient(90deg,transparent,#beeaff,transparent)}
.nf-body .zvp-welcome-glints i:after{transform:translate(-50%,-50%) rotate(90deg);width:12px}
.nf-body .zvp-welcome-glints i:nth-child(2){left:76%;top:16%;animation-delay:-5s;animation-duration:9s}
.nf-body .zvp-welcome-glints i:nth-child(3){left:89%;top:46%;animation-delay:-3s;animation-duration:11s}
.nf-body .zvp-welcome-glints i:nth-child(4){left:34%;top:68%;animation-delay:-7s;animation-duration:10s}
@keyframes zvp-arrival-glint{0%,65%,100%{opacity:.08;transform:scale(.5)}80%{opacity:.7;transform:scale(1)}}
.nf-body .zvp-welcome-meteor{position:absolute;left:16%;top:12%;width:130px;height:1px;z-index:-1;background:linear-gradient(90deg,transparent,#b6e9ff);opacity:0;animation:zvp-arrival-meteor 15s 3s linear infinite;pointer-events:none}
@keyframes zvp-arrival-meteor{0%,89%{opacity:0;transform:translate3d(0,0,0) rotate(24deg)}90%{opacity:.65}97%,100%{opacity:0;transform:translate3d(220px,100px,0) rotate(24deg)}}
.nf-body.zvp-arrival-entering .nf-hero-content{animation:zvp-arrival-rise 1.1s cubic-bezier(.2,.65,.25,1) both}
.nf-body.zvp-welcome-open :is(main,header,footer,#zvp-scroll-atmosphere) *{animation-play-state:paused!important}
@media(max-width:560px){.nf-body .zvp-welcome-glints i:nth-child(n+3){display:none}}
@media(max-height:420px){.nf-body .zvp-welcome-copy{padding-block:48px}.nf-body .zvp-welcome h2{font-size:clamp(30px,7vw,48px);margin-block:8px}.nf-body .zvp-welcome-eyebrow{margin-block:4px;font-size:14px}.nf-body .zvp-welcome-enter{margin-top:12px;min-height:44px;padding-block:10px}}
@media(prefers-reduced-motion:reduce){.nf-body .zvp-welcome[open] *,.nf-body.zvp-arrival-entering .nf-hero-content{animation:none!important}.nf-body .zvp-welcome-meteor{display:none}}

/* Observed legacy colors in community, shop and encyclopedia. */
.nf-body .zvp-welcome::backdrop{background:transparent}
.nf-body #community .feature-grid article{border-color:#8798da38;background:linear-gradient(145deg,#19233b,#101a30)}
.nf-body #community .feature-grid article>span{color:#99b7e7}
.nf-body #community .feature-grid p{color:#b7c9e2}
.nf-body #shop :is(.shop-shutdown-icon,.shop-shutdown strong,.shop-shutdown-tag,.shop-tier.gold){color:#c7ddff;border-color:#9bbbe477}
.nf-body .shop-shutdown{background:linear-gradient(110deg,#1f2944,#172039);border-color:#a5b7e85c}
.nf-body .shop-shutdown p{color:#b9cbe3}
.nf-body .ency-back-bottom{color:#b4d7f5;border-color:#a4b7e955;background:#19243c}
.nf-body .ency-back-bottom:is(:hover,:focus-visible){color:#edfbff;border-color:#b5e5ff}
.nf-body .ency-empty-symbol{color:#a4b9ef77}
.nf-body #guide-modes .ency-empty p{color:#b8cbe7}

/* Decorative overflow must never scroll the modal on focus or resize. */
@supports(overflow:clip){.nf-body .zvp-welcome{overflow:clip}}

.nf-body #shop .shop-shutdown{background:linear-gradient(110deg,#1f2944,#172039);border-color:#a5b7e85c}.nf-body #shop .shop-shutdown p{color:#b9cbe3}.nf-body #shop .shop-shutdown-icon{box-shadow:0 0 17px #9bbbe430}.nf-body #shop .shop-shutdown-tag{background:#1b2942}

/* Refined static hero: whole cutout, smooth edges and detail-preserving city. */
@media(min-width:901px){
 .nf-body .nf-header .header-inner{justify-content:flex-start;gap:22px}
 .nf-body .nf-header .menu{margin-left:auto;margin-right:2px;gap:22px}
 .nf-body .nf-header .zvp-music-button{margin:0}
 .nf-body .nf-header .nf-header-account{margin:0}
}
@media(min-width:901px) and (max-width:1100px){
 .nf-body .nf-header .header-inner{gap:15px}
 .nf-body .nf-header .menu{gap:15px}
}
.nf-body .zvp-night-character-stack{inset:0 22px 0}
.nf-body .zvp-night-character,.nf-body .zvp-night-character.is-active{
 -webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 1.5%,#000 81%,#000d 87%,#0006 94%,transparent 100%),linear-gradient(to right,transparent 0%,#000 2%,#000 98%,transparent 100%);
 -webkit-mask-composite:source-in;
 mask-image:linear-gradient(to bottom,transparent 0%,#000 1.5%,#000 81%,#000d 87%,#0006 94%,transparent 100%),linear-gradient(to right,transparent 0%,#000 2%,#000 98%,transparent 100%);
 mask-composite:intersect;
 filter:drop-shadow(0 8px 15px #030b1655);
 transition:none;
}
.nf-body .nf-hero .zvp-city-depth.far{
 background-image:url('/experience-assets/neon-city-detail-v2.webp');
 inset:-16px -20px;opacity:1;filter:none;
 transform:translate3d(calc(var(--zvp-x)*-10px),calc(var(--zvp-y)*-6px),0);
}
.nf-body .nf-hero .zvp-city-depth.mid,.nf-body .nf-hero .zvp-city-depth.near{display:none}
.nf-body .zvp-welcome-city{
 background-image:url('/experience-assets/neon-city-detail-v2.webp');
 inset:-16px -20px;filter:none;
 transform:translate3d(calc(var(--arrival-x)*-10px),calc(var(--arrival-y)*-6px),0);
}
.nf-body .zvp-welcome-depth{display:none}
.nf-body .zvp-welcome h2 span{
 background-image:linear-gradient(110deg,#effaff 0%,#c7dcff 22%,#a6e8ff 42%,#f0d4f9 64%,#e2ecff 82%,#effaff 100%);
 background-size:250% 100%;
 animation:zvp-welcome-slow-shimmer 20s ease-in-out infinite alternate;
 filter:drop-shadow(0 0 18px #9eb5e455);
}
@keyframes zvp-welcome-slow-shimmer{from{background-position:0% 50%}to{background-position:100% 50%}}
.nf-body .zvp-welcome-glow{animation-duration:18s}
.nf-body .zvp-welcome-stars i{animation-delay:calc(var(--sd)*-0.7);animation-duration:var(--sd)}
.nf-body .zvp-welcome-stars i:nth-child(3n){width:3px;height:3px;box-shadow:0 0 12px #a6dcff99;animation-delay:calc(var(--sd)*-0.3)}
.nf-body .zvp-welcome-glints i{animation-duration:12s}
@media(max-width:800px){
 .nf-body .zvp-night-character-stack{inset:0 12px 0}
 .nf-body .nf-hero .zvp-city-depth.far{background-position:68% bottom;transform:none;inset:0}
 .nf-body .zvp-welcome-city{transform:none;inset:0}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .zvp-welcome h2 span{animation:none!important}
 .nf-body .nf-hero .zvp-city-depth.far,.nf-body .zvp-welcome-city{transform:none!important}
}
/* Hidden tabs spend no animation frames, including the welcome scene. */
.nf-body.zvp-document-hidden .zvp-welcome *{animation-play-state:paused!important}

/* Click-origin, neon paper reveal for the three privilege cards. */
.nf-body #shop .privilege-intro{margin:0 0 22px;max-width:680px;color:#b9cde7;font-size:12px;line-height:1.8}
.nf-body #shop .privilege-grid{align-items:stretch;gap:20px}
.nf-body #shop .privilege-card{
 --privilege-accent:#a6dfff;--privilege-glow:#91cbff35;
 position:relative;isolation:isolate;min-width:0;min-height:546px;padding:0;
 border:1px solid #899ed957;border-radius:18px;
 background:linear-gradient(155deg,#24304b,#131e33 62%,#101a2c);
 overflow:hidden;box-shadow:0 15px 40px #030a1d55;
}
.nf-body #shop .privilege-card[data-privilege-card=vip]{--privilege-accent:#c6c1ff;--privilege-glow:#a9a0ff38}
.nf-body #shop .privilege-card[data-privilege-card=svip]{--privilege-accent:#a4efea;--privilege-glow:#82ddd737}
.nf-body #shop .privilege-card:hover{border-color:var(--privilege-accent);box-shadow:0 15px 40px #030a1d66,0 0 24px var(--privilege-glow)}
.nf-body #shop .privilege-card button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}
.nf-body #shop .privilege-card :is(button,section)[hidden]{display:none!important}
.nf-body #shop .privilege-cover{
 --privilege-x:50%;--privilege-y:50%;
 position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;border-radius:inherit;
 padding:32px 24px 78px;background:transparent;color:#eaf4ff;display:flex;
 flex-direction:column;align-items:center;text-align:center;outline-offset:-5px;
}
.nf-body #shop .privilege-cover:before{
 content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;
 background:radial-gradient(circle 200px at var(--privilege-x) var(--privilege-y),var(--privilege-glow),transparent 76%);
 opacity:.45;transition:opacity .45s;
}
.nf-body #shop .privilege-cover:is(:hover,:focus-visible):before{opacity:1}
.nf-body #shop .privilege-card button:focus-visible{outline:2px solid var(--privilege-accent);outline-offset:5px}
.nf-body #shop .privilege-cover:focus-visible{outline-offset:-5px}
.nf-body #shop .privilege-cover-kicker{font:800 9px/1.5 Manrope,Arial,sans-serif;letter-spacing:2px;color:#a9bdd8;margin-top:0}
.nf-body #shop .privilege-emblem{
 position:relative;display:grid;place-items:center;width:130px;height:142px;margin:33px 0 23px;
 color:var(--privilege-accent);filter:drop-shadow(0 0 15px var(--privilege-glow));
 transition:transform .65s cubic-bezier(.2,.65,.25,1),filter .65s;
}
.nf-body #shop .privilege-emblem:before{
 content:'';position:absolute;inset:5px -15px;border-radius:50%;
 background:radial-gradient(ellipse,var(--privilege-glow),transparent 68%);opacity:.9;
}
.nf-body #shop .privilege-emblem svg{position:relative;width:108px;height:126px;overflow:visible}
.nf-body #shop .privilege-cover:is(:hover,:focus-visible) .privilege-emblem{transform:translateY(-5px) scale(1.035);filter:drop-shadow(0 0 22px var(--privilege-glow))}
.nf-body #shop .privilege-name{display:block;font:600 39px/1.1 Oswald,Impact,sans-serif;letter-spacing:.6px;color:#edf5ff}
.nf-body #shop .privilege-caption{color:#afc2dd;font:500 11px/1.7 Manrope,Arial,sans-serif;max-width:240px;margin-top:12px}
.nf-body #shop .privilege-peek{display:inline-flex;align-items:center;gap:13px;margin-top:26px;color:var(--privilege-accent);font:800 10px/1.5 Manrope,Arial,sans-serif;letter-spacing:1px}
.nf-body #shop .privilege-peek b{font-size:19px;font-weight:400;transition:transform .3s}
.nf-body #shop .privilege-cover:hover .privilege-peek b{transform:translate(2px,-2px)}
.nf-body #shop .privilege-fixed-foot{
 position:absolute;bottom:0;left:22px;right:22px;z-index:5;pointer-events:none;
 display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:74px;
 border-top:1px solid #95b4e42c;
}
.nf-body #shop .privilege-fixed-foot strong{font:600 25px/1.2 Oswald,Impact,sans-serif;color:#eaf4ff}
.nf-body #shop .privilege-fixed-foot small{display:block;font:600 9px/1.6 Manrope,Arial,sans-serif;color:#acc0db;margin-top:3px;letter-spacing:.5px}
.nf-body #shop .privilege-fixed-foot>span{color:#aebed9;font:700 8px/1.6 Manrope,Arial,sans-serif;letter-spacing:1px;text-align:right}
.nf-body #shop .privilege-benefits{position:relative;z-index:2;background:linear-gradient(145deg,#21354b,#18283e 52%,#111e32);padding:28px 22px 96px;min-height:546px;color:#d6e6fa}
.nf-body #shop .privilege-card.is-enhanced .privilege-benefits{position:absolute;inset:0;height:100%;width:100%;min-height:0}
.nf-body #shop .privilege-card[data-privilege-card=vip] .privilege-benefits{background:linear-gradient(145deg,#2e3153,#202943 52%,#141e35)}
.nf-body #shop .privilege-card[data-privilege-card=svip] .privilege-benefits{background:linear-gradient(145deg,#203d48,#182e3d 52%,#111f32)}
.nf-body #shop .privilege-benefits:before{content:'';position:absolute;left:22px;right:22px;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--privilege-accent),transparent);opacity:.7;pointer-events:none}
.nf-body #shop .privilege-benefits-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:22px}
.nf-body #shop .privilege-benefits-head small{display:block;font:800 8px/1.5 Manrope,Arial,sans-serif;letter-spacing:2px;color:var(--privilege-accent);margin-bottom:7px}
.nf-body #shop .privilege-benefits h3{font:600 32px/1.1 Oswald,Impact,sans-serif;color:#f0f8ff;letter-spacing:.4px;text-shadow:none}
.nf-body #shop .privilege-close{flex:0 0 36px;height:36px;width:36px;border:1px solid #a3bcdf50;border-radius:50%;background:#0f1d304d;color:#deeeff;font:400 22px/1 Arial,sans-serif;display:grid;place-items:center}
.nf-body #shop .privilege-close:hover{background:#a9d9ff20;border-color:var(--privilege-accent)}
.nf-body #shop .privilege-bonus-list{list-style:none;padding:0;margin:0;display:grid;gap:0}
.nf-body #shop .privilege-bonus-list li{display:flex;align-items:center;gap:11px;padding:11px 0;min-height:55px;border-bottom:1px solid #b2c4e21c}
.nf-body #shop .privilege-bonus-icon{display:grid;place-items:center;width:30px;min-width:30px;height:32px;color:var(--privilege-accent);background:#a5caff0b;border:1px solid #a6c8e72b;border-radius:9px;font:700 13px/1 Manrope,Arial,sans-serif}
.nf-body #shop .privilege-bonus-copy{display:block;min-width:0;font:500 11px/1.55 Manrope,Arial,sans-serif;color:#bfd0e8}
.nf-body #shop .privilege-bonus-copy strong{color:#e5f4ff;font-weight:800;font-size:12px}
.nf-body #shop .privilege-prefix{display:flex;gap:9px;align-items:center;justify-content:space-between;margin-top:18px;color:#aac0dc;font:600 10px/1.5 Manrope,Arial,sans-serif}
.nf-body #shop .privilege-prefix code{font:700 10px/1.6 Manrope,Arial,sans-serif;color:var(--privilege-accent);border:1px solid #acc9ea32;background:#0d1d313f;border-radius:6px;padding:5px 9px}
.nf-body #shop .privilege-wave{position:absolute;z-index:4;border-radius:50%;pointer-events:none;transform-origin:center;background:radial-gradient(closest-side,transparent calc(100% - 13px),#9bcaff35 calc(100% - 9px),#effcffda calc(100% - 5px),#a4a0ff99 calc(100% - 2px),transparent 100%);filter:drop-shadow(0 0 8px var(--privilege-accent));will-change:transform,opacity}
.nf-body #shop .privilege-wave[hidden]{display:none!important}
@media(max-width:1100px) and (min-width:951px){.nf-body #shop .privilege-benefits{padding-inline:17px}.nf-body #shop .privilege-bonus-list li{gap:8px}.nf-body #shop .privilege-bonus-copy{font-size:10px}.nf-body #shop .privilege-bonus-copy strong{font-size:11px}}
@media(max-width:950px) and (min-width:621px){.nf-body #shop .privilege-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.nf-body #shop .privilege-card{min-height:580px}.nf-body #shop .privilege-benefits{padding-inline:14px}.nf-body #shop .privilege-bonus-list li{align-items:flex-start;gap:7px;min-height:64px}.nf-body #shop .privilege-bonus-icon{width:24px;min-width:24px;height:28px;font-size:11px}.nf-body #shop .privilege-bonus-copy{font-size:10px}.nf-body #shop .privilege-bonus-copy strong{font-size:11px}.nf-body #shop .privilege-name{font-size:32px}.nf-body #shop .privilege-fixed-foot{left:14px;right:14px}.nf-body #shop .privilege-fixed-foot>span{font-size:7px}.nf-body #shop .privilege-prefix{flex-wrap:wrap}}
@media(max-width:620px){.nf-body #shop .privilege-grid{grid-template-columns:1fr;gap:18px}.nf-body #shop .privilege-card{min-height:530px}.nf-body #shop .privilege-benefits{min-height:530px;padding-bottom:92px}.nf-body #shop .privilege-emblem{margin-block:25px 18px}.nf-body #shop .privilege-benefits-head{margin-bottom:18px}.nf-body #shop .privilege-bonus-list li{padding-block:10px;min-height:53px}.nf-body #shop .privilege-close{width:40px;height:40px;flex-basis:40px}}
@media(prefers-reduced-motion:reduce){.nf-body #shop .privilege-card *{animation:none!important;transition:none!important}.nf-body #shop .privilege-wave{display:none!important}.nf-body #shop .privilege-cover:is(:hover,:focus-visible) .privilege-emblem{transform:none}}

/* Ambient motion is scoped to the welcome dialog. */
.nf-body #zvp-welcome .zvp-welcome-city{
 background-image:none;inset:-16px -20px;overflow:hidden;pointer-events:none;
 transform:translate3d(calc(var(--arrival-x)*-10px),calc(var(--arrival-y)*-6px),0);
}
.nf-body #zvp-welcome .zvp-welcome-camera{
 display:block;width:100%;height:100%;overflow:hidden;
 animation:zvp-live-camera 36s -9s ease-in-out infinite alternate;
 transform-origin:55% 60%;
}
@keyframes zvp-live-camera{
 0%{transform:translate3d(-.45%,.25%,0) scale(1.025)}
 50%{transform:translate3d(.1%,-.2%,0) scale(1.04)}
 100%{transform:translate3d(.5%,-.45%,0) scale(1.03)}
}
.nf-body #zvp-welcome .zvp-live-neon{animation:zvp-live-neon var(--live-time,7s) var(--live-delay,-2s) ease-in-out infinite alternate}
@keyframes zvp-live-neon{0%,18%{opacity:.12}70%,100%{opacity:.58}}
.nf-body #zvp-welcome .zvp-live-window{animation:zvp-live-window var(--live-time,8s) var(--live-delay,-3s) ease-in-out infinite}
@keyframes zvp-live-window{0%,100%{opacity:.1}28%,46%{opacity:.62}68%{opacity:.22}}
.nf-body #zvp-welcome .zvp-live-beacon{animation:zvp-live-beacon 6s var(--live-delay,-2s) ease-in-out infinite}
@keyframes zvp-live-beacon{0%,55%,100%{opacity:.18}75%{opacity:.85}}
.nf-body #zvp-welcome .zvp-welcome-fog{
 position:absolute;z-index:-1;pointer-events:none;contain:paint;
 background:radial-gradient(ellipse at 72% 65%,#8babe830,transparent 49%),radial-gradient(ellipse at 22% 72%,#58cce322,transparent 48%);
 inset:8% -12% 4%;mix-blend-mode:screen;
 animation:zvp-live-far-fog 28s -7s ease-in-out infinite alternate;
}
@keyframes zvp-live-far-fog{from{transform:translate3d(-4%,1.5%,0);opacity:.3}to{transform:translate3d(4%,-2.5%,0);opacity:.7}}
.nf-body #zvp-welcome .zvp-welcome-fog.near{
 inset:42% -14% -15%;
 background:radial-gradient(ellipse at 20% 65%,#6bcee739,transparent 48%),radial-gradient(ellipse at 76% 75%,#a49fd52b,transparent 52%);
 animation:zvp-live-near-fog 23s -11s ease-in-out infinite alternate;
}
@keyframes zvp-live-near-fog{from{transform:translate3d(5%,3%,0);opacity:.25}to{transform:translate3d(-5%,-2%,0);opacity:.62}}
.nf-body #zvp-welcome .zvp-welcome-aurora{
 position:absolute;inset:-12%;z-index:-1;pointer-events:none;mix-blend-mode:screen;
 background:radial-gradient(ellipse at 26% 24%,#4acbd326,transparent 44%),radial-gradient(ellipse at 78% 30%,#ac81db2b,transparent 41%);
 animation:zvp-live-sky 19s -5s ease-in-out infinite alternate;
}
@keyframes zvp-live-sky{from{transform:translate3d(-3%,1%,0);opacity:.35}to{transform:translate3d(3%,-1%,0);opacity:.75}}
.nf-body #zvp-welcome .zvp-welcome-stars{
 inset:-12px;animation:zvp-live-stars 42s -12s ease-in-out infinite alternate;
}
@keyframes zvp-live-stars{from{transform:translate3d(-7px,5px,0)}to{transform:translate3d(9px,-7px,0)}}
.nf-body #zvp-welcome .zvp-welcome-meteor{
 width:150px;left:17%;top:13%;opacity:0;transform-origin:right center;
 background:linear-gradient(90deg,transparent,#aedfff99 80%,#e8faff);
 animation:zvp-live-meteor 23s -2.6s linear infinite;
}
.nf-body #zvp-welcome .zvp-welcome-meteor.second{
 left:64%;top:8%;width:110px;animation-duration:31s;animation-delay:-15s;
}
@keyframes zvp-live-meteor{
 0%,8%{opacity:0;transform:translate3d(-70px,-30px,0) rotate(24deg)}
 10%{opacity:.65}
 16%{opacity:0;transform:translate3d(240px,110px,0) rotate(24deg)}
 100%{opacity:0;transform:translate3d(240px,110px,0) rotate(24deg)}
}
.nf-body #zvp-welcome .zvp-welcome-motion{
 position:absolute;right:max(24px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));
 display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;
 color:#bed2e9;background:#101e323f;border:1px solid #94bce32e;border-radius:9px;
 font:600 10px/1.5 Manrope,Arial,sans-serif;cursor:pointer;transition:background .25s,border-color .25s;
}
.nf-body #zvp-welcome .zvp-welcome-motion:hover{background:#162b4599;border-color:#b7dfff88}
.nf-body #zvp-welcome .zvp-welcome-motion:focus-visible{outline:2px solid #b3eaff;outline-offset:4px}
.nf-body #zvp-welcome .zvp-welcome-motion-icon{font:600 12px/1 Arial,sans-serif;width:12px;text-align:center}
.nf-body #zvp-welcome.is-background-paused :is(.zvp-welcome-city,.zvp-welcome-city *,.zvp-welcome-glow,.zvp-welcome-stars,.zvp-welcome-stars *,.zvp-welcome-glints *,.zvp-welcome-meteor,.zvp-welcome-fog,.zvp-welcome-aurora){animation-play-state:paused!important}
@media(max-width:800px){
 .nf-body #zvp-welcome .zvp-welcome-city{inset:-12px;transform:none}
 .nf-body #zvp-welcome .zvp-welcome-camera{animation-duration:44s;transform-origin:67% 58%}
 .nf-body #zvp-welcome .zvp-welcome-fog{animation-duration:36s}
 .nf-body #zvp-welcome .zvp-welcome-fog.near{display:none}
 .nf-body #zvp-welcome .zvp-welcome-motion{right:max(18px,env(safe-area-inset-right));font-size:9px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body #zvp-welcome :is(.zvp-welcome-camera,.zvp-live-neon,.zvp-live-window,.zvp-live-beacon,.zvp-welcome-fog,.zvp-welcome-aurora,.zvp-welcome-stars,.zvp-welcome-meteor){animation:none!important;transform:none!important}
 .nf-body #zvp-welcome .zvp-welcome-meteor,.nf-body #zvp-welcome .zvp-welcome-motion{display:none!important}
 .nf-body #zvp-welcome .zvp-welcome-fog{opacity:.3}
 .nf-body #zvp-welcome .zvp-welcome-aurora{opacity:.35}
}

/* Brighter typography, two drifting star planes and lit facade windows. */
.nf-body #zvp-welcome .zvp-welcome-copy{z-index:2;isolation:isolate}
.nf-body #zvp-welcome .zvp-welcome-copy:before{
 content:'';position:absolute;inset:20% -4% 12%;z-index:-1;pointer-events:none;
 background:radial-gradient(ellipse at 50% 48%,#06122491 0%,#06122450 42%,transparent 73%);
}
.nf-body #zvp-welcome #zvp-welcome-title{color:#fff;text-shadow:none}
.nf-body #zvp-welcome #zvp-welcome-title span{
 text-shadow:none;
 background-image:linear-gradient(110deg,#ffffff 0%,#e4f8ff 24%,#ffffff 43%,#eee8ff 65%,#e1f7ff 83%,#ffffff 100%);
 background-size:250% 100%;background-clip:text;-webkit-background-clip:text;
 color:transparent;-webkit-text-fill-color:transparent;
 filter:drop-shadow(0 2px 5px #010a18dd) drop-shadow(0 0 18px #b6dcff45);
}
.nf-body #zvp-welcome .zvp-welcome-eyebrow{color:#f3faff;text-shadow:0 2px 5px #020b1df0}
.nf-body #zvp-welcome .zvp-welcome-mark{color:#def1ff;border-color:#bfdcff66;background:#0c192bb3}
.nf-body #zvp-welcome .zvp-welcome-enter{color:#fff;text-shadow:0 1px 3px #17283a66}
.nf-body #zvp-welcome .zvp-welcome-stars i{display:block}
.nf-body #zvp-welcome .zvp-welcome-stars.extra{animation:zvp-live-stars-near 34s -8s ease-in-out infinite alternate}
.nf-body #zvp-welcome .zvp-welcome-stars.extra i{
 width:var(--ss,1.6px);height:var(--ss,1.6px);background:#dcf4ff;
 box-shadow:0 0 8px #a9d7ff99;animation-duration:var(--sd,8s);animation-delay:var(--delay,-3s);
}
@keyframes zvp-live-stars-near{from{transform:translate3d(11px,6px,0)}to{transform:translate3d(-13px,-10px,0)}}
.nf-body #zvp-welcome .zvp-welcome-meteor,
.nf-body #zvp-welcome .zvp-welcome-meteor.second{
 left:var(--meteor-x,17%);top:var(--meteor-y,13%);width:var(--meteor-width,150px);
 animation:zvp-live-meteor 26s var(--meteor-delay,-3s) linear infinite;
}
.nf-body #zvp-welcome .zvp-live-window{
 animation:zvp-room-life var(--live-time,14s) var(--live-delay,-3s) ease-in-out infinite;
}
@keyframes zvp-room-life{
 0%,16%,100%{fill:#102238;opacity:.92}
 35%,66%{fill:var(--window-color,#e4f5ff);opacity:.94}
 85%{fill:#607e9a;opacity:.7}
}
@media(max-width:560px){
 .nf-body #zvp-welcome .zvp-welcome-stars i:nth-child(n+15){display:none}
 .nf-body #zvp-welcome .zvp-welcome-meteor.fourth,
 .nf-body #zvp-welcome .zvp-welcome-meteor.fifth{display:none}
 .nf-body #zvp-welcome .zvp-welcome-copy:before{inset:22% -1% 13%}
}
@media(prefers-reduced-motion:reduce){
 .nf-body #zvp-welcome .zvp-welcome-stars.extra,
 .nf-body #zvp-welcome .zvp-live-window,
 .nf-body #zvp-welcome .zvp-welcome-meteor{animation:none!important;transform:none!important}
 .nf-body #zvp-welcome .zvp-live-window{fill:var(--window-color,#e4f5ff);opacity:.5}
}

.nf-body #zvp-welcome .zvp-welcome-star-plane{
 position:absolute;inset:0;z-index:-1;pointer-events:none;
 transform:translate3d(calc(var(--arrival-star-x,0)*-3px),calc(var(--arrival-star-y,0)*-2px),0);
}
.nf-body #zvp-welcome .zvp-welcome-star-plane.near{
 transform:translate3d(calc(var(--arrival-star-x,0)*-5px),calc(var(--arrival-star-y,0)*-3px),0);
}
.nf-body #zvp-welcome #zvp-welcome-title span{
 background-image:linear-gradient(110deg,#ffffff 0%,#d6f6ff 20%,#fff 39%,#e1dcff 59%,#f7e3ff 76%,#e0f6ff 91%,#fff 100%);
 background-size:300% 100%;animation:zvp-welcome-slow-shimmer 24s ease-in-out infinite alternate;
}
.nf-body #zvp-welcome .zvp-welcome-eyebrow{
 background:linear-gradient(110deg,#ffffff 6%,#ceefff 35%,#f0e4ff 64%,#ffffff 90%);
 background-size:260% 100%;background-clip:text;-webkit-background-clip:text;
 color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;
 filter:drop-shadow(0 2px 3px #020b1ddd);
 animation:zvp-welcome-slow-shimmer 26s -8s ease-in-out infinite alternate;
}
.nf-body #zvp-welcome .zvp-welcome-mark{position:relative;min-height:44px;cursor:pointer;isolation:isolate}
.nf-body #zvp-welcome .zvp-welcome-mark:after{
 content:'';position:absolute;inset:-1px;z-index:-1;border:1px solid #b4e9ff9c;border-radius:inherit;
 box-shadow:0 0 18px #8fc9ff55,inset 0 0 12px #b0b7ff20;
 animation:zvp-welcome-brand-halo 7s ease-in-out infinite;pointer-events:none;
}
.nf-body #zvp-welcome .zvp-welcome-mark-label{
 display:inline-flex;align-items:center;gap:12px;white-space:nowrap;
 animation:zvp-welcome-brand-breathe 7s ease-in-out infinite;
}
@keyframes zvp-welcome-brand-halo{0%,100%{opacity:.15}50%{opacity:.85}}
@keyframes zvp-welcome-brand-breathe{0%,100%{opacity:.74}50%{opacity:1}}
.nf-body #zvp-welcome .zvp-welcome-mark:hover{background:#142742cc;border-color:#c5ebffb0}
.nf-body.zvp-document-hidden #zvp-welcome .zvp-welcome-mark:after{animation-play-state:paused!important}
@media(max-width:800px){.nf-body #zvp-welcome .zvp-welcome-star-plane,.nf-body #zvp-welcome .zvp-welcome-star-plane.near{transform:none}}
@media(prefers-reduced-motion:reduce){
 .nf-body #zvp-welcome .zvp-welcome-star-plane,.nf-body #zvp-welcome .zvp-welcome-star-plane.near{transform:none!important}
 .nf-body #zvp-welcome #zvp-welcome-title span,.nf-body #zvp-welcome .zvp-welcome-eyebrow,
 .nf-body #zvp-welcome .zvp-welcome-mark:after,.nf-body #zvp-welcome .zvp-welcome-mark-label{animation:none!important}
}

/* Selected cinematic treatments: cursor, navigation, portraits, locations, profile, arrival. */
:root{--zvp-cinema-ice:#b9eaff;--zvp-cinema-lilac:#c7b5ff;--zvp-cinema-text:#f1f7ff}
.zvp-cursor-trail{position:fixed;inset:0;z-index:10000;pointer-events:none;overflow:hidden;contain:strict}
.zvp-cursor-particle{position:absolute;left:var(--spark-x);top:var(--spark-y);width:var(--spark-size);height:var(--spark-size);border-radius:50%;background:#d5efff;box-shadow:0 0 7px #a2d9ffad;animation:zvp-cursor-fade .85s ease-out both;pointer-events:none}
.zvp-cursor-particle:nth-child(3n){background:#d5caff;box-shadow:0 0 8px #b9a2ff88}
@keyframes zvp-cursor-fade{0%{opacity:.72;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(var(--spark-dx),16px) scale(.15)}}
.nf-body .nf-header #menu.zvp-fluid-menu{position:relative;isolation:isolate}
.nf-body #menu .zvp-fluid-light{position:absolute;left:0;top:0;z-index:-1;pointer-events:none;border-radius:9px;background:linear-gradient(180deg,#b8cdff06,#a48afa23);border-bottom:2px solid #c0ddff;box-shadow:0 13px 22px -15px #a7d9ffb8,inset 0 0 18px #9aafff0a;transform:translate(var(--nav-x,0px),var(--nav-y,0px));width:var(--nav-w,0px);height:var(--nav-h,0px);opacity:var(--nav-opacity,0);transition:transform .55s cubic-bezier(.2,.8,.2,1),width .55s cubic-bezier(.2,.8,.2,1),height .3s,opacity .25s}
.nf-body #menu.zvp-fluid-menu>a:is(.active,:hover,:focus-visible):after{opacity:0!important}
.nf-body #menu.zvp-fluid-menu>a{background:transparent!important;isolation:auto}
.nf-body #menu.zvp-fluid-menu>a.active{color:#f2f8ff!important;text-shadow:0 0 12px #b8d9ff44}
.nf-body #home .zvp-cinema-collection{display:block!important;height:auto!important;min-height:0!important;overflow:visible!important;padding:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;transform:none!important}
.nf-body #home .zvp-cinema-collection:before,.nf-body #home .zvp-cinema-collection:after{display:none!important}
.zvp-cinema-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:22px;margin-bottom:25px}
.zvp-cinema-heading .zvp-cinema-kicker,.zvp-map-kicker{font:700 10px/1.6 Manrope,Arial,sans-serif;letter-spacing:2px;color:#b7ddff}
.zvp-cinema-heading h2{font:600 clamp(28px,3.3vw,43px)/1.14 Oswald,Impact,sans-serif;letter-spacing:.2px;color:#eff6ff;margin:7px 0 10px}
.zvp-cinema-heading h2 em{font-style:normal;color:#c7b9ff}
.zvp-cinema-heading p{font:400 12px/1.8 Manrope,Arial,sans-serif;color:#bacbe0;max-width:530px;margin:0}
.zvp-collection-count{font:500 12px/1.5 Manrope,Arial,sans-serif;color:#d8e9fb;white-space:nowrap;display:flex;align-items:baseline;gap:8px}
.zvp-collection-count strong{font:500 38px/1 Oswald,Arial,sans-serif;color:#c5e9ff}
.zvp-cinema-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:19px;perspective:1200px}
.zvp-cinema-extra{margin-top:19px}
.zvp-cinema-card{display:block;position:relative;height:330px;min-width:0;width:100%;padding:0;overflow:hidden;border-radius:17px;border:1px solid #a4c0e53d;background:#112239;color:#eff7ff;cursor:pointer;text-align:left;isolation:isolate;transform:perspective(900px) rotateX(var(--cinema-rx,0deg)) rotateY(var(--cinema-ry,0deg));transition:transform .65s cubic-bezier(.2,.8,.2,1),border-color .4s,box-shadow .5s;box-shadow:0 13px 25px #040d1b4a;content-visibility:auto;contain-intrinsic-size:auto 330px}
.zvp-cinema-card:before{content:'';position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(ellipse at var(--cinema-px,70%) var(--cinema-py,25%),#c8e8ff12,transparent 65%);transition:opacity .5s}
.zvp-cinema-city{position:absolute;inset:-15px;background:linear-gradient(#0b192642,#0b172b8a),url('/experience-assets/neon-city-detail-v2.webp') center/cover;transform:translate(calc(var(--cinema-x,0)*-5px),calc(var(--cinema-y,0)*-3px)) scale(1.06);transition:transform .8s ease-out;opacity:.83}
.zvp-cinema-halo{position:absolute;inset:8% 0 20%;background:radial-gradient(ellipse,#b6c8ff24,transparent 65%);filter:blur(12px)}
.zvp-cinema-character{position:absolute;inset:17px 0 0;width:100%;height:calc(100% - 17px);object-fit:contain;object-position:center bottom;transform:translate(calc(var(--cinema-x,0)*8px),calc(var(--cinema-y,0)*5px));transition:transform .8s ease-out;filter:drop-shadow(0 0 12px #b7dfff18);mask-image:linear-gradient(#000 77%,#000d 85%,transparent 99%);-webkit-mask-image:linear-gradient(#000 77%,#000d 85%,transparent 99%)}
.zvp-cinema-caption{position:absolute;left:18px;right:18px;bottom:17px;z-index:4;display:flex;align-items:flex-end;justify-content:space-between;gap:7px;pointer-events:none}
.zvp-cinema-caption:before{content:'';position:absolute;z-index:-1;inset:-28px -18px -17px;background:linear-gradient(transparent,#0a182bdd)}
.zvp-cinema-caption b{display:block;font:500 22px/1.2 Oswald,Arial,sans-serif;letter-spacing:.6px;color:#f1f8ff}
.zvp-cinema-caption small{display:block;font:500 9px/1.5 Manrope,Arial,sans-serif;color:#c0d8ef;letter-spacing:1.6px;margin-top:7px}
.zvp-cinema-caption .zvp-cinema-arrow{width:27px;height:27px;display:grid;place-items:center;border:1px solid #bbdfff42;border-radius:50%;font:400 14px Manrope,sans-serif;color:#cfeeff;background:#162b4299;transition:background .4s,transform .4s}
.zvp-cinema-star{position:absolute;left:78%;top:19%;width:3px;height:3px;border-radius:50%;background:#d9edff;box-shadow:0 0 12px 3px #a3caff44;opacity:.65;pointer-events:none;z-index:2}
.zvp-cinema-star:after{content:'';position:absolute;left:-140px;top:135px;width:2px;height:2px;border-radius:50%;background:#c9c0ff;box-shadow:0 0 8px #a7cfff}
.zvp-cinema-card:is(:hover,:focus-visible){border-color:#badbffb3;box-shadow:0 18px 35px #020b1c66,0 0 27px #91baff19}
.zvp-cinema-card:is(:hover,:focus-visible) .zvp-cinema-arrow{background:#4c597caa;transform:translate(2px,-2px)}
.zvp-cinema-card:is(:hover,:focus-visible) .zvp-cinema-star{animation:zvp-cinema-star 4s ease-in-out infinite alternate}
@keyframes zvp-cinema-star{to{opacity:.3;transform:translate(-6px,11px)}}
.zvp-collection-expand{margin-top:24px}
.zvp-collection-expand>summary{list-style:none;display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;width:100%;border:1px solid #a6c6ee50;border-radius:10px;background:linear-gradient(120deg,#25344b,#262e48);font:600 11px/1.5 Manrope,Arial,sans-serif;letter-spacing:1px;color:#e6f1ff;cursor:pointer}
.zvp-collection-expand>summary::-webkit-details-marker{display:none}
.zvp-collection-expand>summary:after{content:'+';font-size:20px;font-weight:400;color:#c7e8ff}
.zvp-collection-expand[open]>summary:after{content:'−'}
.zvp-character-dialog{width:min(560px,calc(100% - 30px));max-height:calc(100dvh - 30px);padding:0;border:1px solid #bfdcff66;border-radius:21px;background:#0e2036;color:#edf7ff;overflow:auto;box-shadow:0 30px 120px #0009}
.zvp-character-dialog::backdrop{background:#030b1bce;backdrop-filter:blur(9px)}
.zvp-character-dialog .zvp-cinema-close{position:absolute;right:15px;top:15px;z-index:10;min-height:44px;min-width:44px;border:1px solid #c5dfff55;border-radius:50%;background:#102338df;color:#eff8ff;cursor:pointer;font:400 24px/1 Arial,sans-serif}
.zvp-character-stage{position:relative;height:min(660px,80dvh);min-height:300px;overflow:hidden;isolation:isolate}
.zvp-character-stage .zvp-cinema-character{inset:28px 0 0;height:calc(100% - 28px);mask-image:linear-gradient(#000 80%,transparent 99%);-webkit-mask-image:linear-gradient(#000 80%,transparent 99%)}
.zvp-character-stage .zvp-cinema-caption{bottom:22px;left:26px;right:26px}
.zvp-character-stage .zvp-cinema-caption b{font-size:30px}
.zvp-map-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.zvp-map-window{position:relative;display:block;height:260px;border:1px solid #abc9ed48;border-radius:17px;background:#15283f;overflow:hidden;isolation:isolate;color:#edf7ff;transform:perspective(1000px) rotateX(var(--cinema-rx,0deg)) rotateY(var(--cinema-ry,0deg));transition:transform .7s,border-color .5s,box-shadow .5s;text-decoration:none}
.zvp-map-window:before{content:'';position:absolute;inset:12px;z-index:3;border:1px solid #d0e6ff1c;border-radius:9px;pointer-events:none}
.zvp-map-window .zvp-map-city{position:absolute;inset:-20px;background:var(--map-city) center/cover;transform:translate(calc(var(--cinema-x,0)*-8px),calc(var(--cinema-y,0)*-5px)) scale(1.06);transition:transform .9s ease-out;filter:saturate(.9)}
.zvp-map-window:after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#0713241c 15%,#0b1a2b75 55%,#091827f5)}
.zvp-map-content{position:absolute;z-index:4;left:26px;right:26px;bottom:26px;transform:translate(calc(var(--cinema-x,0)*5px),calc(var(--cinema-y,0)*3px));transition:transform .7s}
.zvp-map-content h3{font:500 clamp(23px,3vw,32px)/1.2 Oswald,Arial,sans-serif;color:#f1f8ff;margin:8px 0 13px;overflow-wrap:anywhere}
.zvp-map-content p{display:flex;justify-content:space-between;gap:12px;align-items:center;font:500 10px/1.5 Manrope,Arial,sans-serif;color:#c1d6ee;margin:0}
.zvp-map-content p span:last-child{font-size:19px;color:#c7eaff}
.zvp-map-window:is(:hover,:focus-visible){border-color:#c7e5ff9c;box-shadow:0 15px 40px #040c1f66,0 0 30px #a1c8ff1c}
.zvp-map-light{position:absolute;top:-30%;bottom:-30%;left:60%;width:38%;transform:rotate(25deg);z-index:2;background:linear-gradient(90deg,transparent,#c3edff11,transparent);pointer-events:none}
/* A constellation reflects existing account fields, without invented game statistics. */
.zvp-constellation-panel{margin:22px 0 28px;padding:23px 20px 18px;border:1px solid #a7c6ef35;border-radius:15px;background:radial-gradient(ellipse at 70% 20%,#3343674d,transparent 70%),#102238;overflow:hidden}
.zvp-constellation-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.zvp-constellation-head h3{margin:0;color:#eaf5ff;font:500 21px/1.3 Oswald,Arial,sans-serif;letter-spacing:.5px}
.zvp-constellation-count{font:500 11px/1.4 Manrope,Arial,sans-serif;color:#c6dff5;white-space:nowrap}
.zvp-constellation-sky{position:relative;height:205px;margin:23px 0 5px;background:radial-gradient(circle at 12% 20%,#b3daff 0 1px,transparent 2px),radial-gradient(circle at 88% 70%,#bfb9ff 0 1px,transparent 2px),radial-gradient(circle at 48% 95%,#acc9eb88 0 1px,transparent 2px)}
.zvp-constellation-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.zvp-constellation-links line{stroke:#9ab3d53d;stroke-width:1;transition:stroke 1s}
.zvp-constellation-links line.is-unlocked{stroke:#c1e6ff;filter:drop-shadow(0 0 5px #a4caff6b)}
.zvp-achievement{position:absolute;left:var(--star-x);top:var(--star-y);transform:translate(-50%,-50%);min-height:44px;min-width:44px;padding:8px;border:0;color:#9cb2cc;background:transparent;display:flex;align-items:center;justify-content:center;cursor:pointer}
.zvp-achievement-dot{display:block;width:7px;height:7px;border-radius:50%;background:#526681;box-shadow:0 0 0 4px #9dc8ec0c;transition:background .9s,box-shadow .9s,transform .4s}
.zvp-achievement.is-unlocked .zvp-achievement-dot{background:#e3f3ff;box-shadow:0 0 11px 3px #a6d8ff6b,0 0 25px #9d9fff3b}
.zvp-achievement[aria-pressed=true] .zvp-achievement-dot{transform:scale(1.6);box-shadow:0 0 18px 5px #b2dbff66}
.zvp-achievement-label{position:absolute;left:50%;top:38px;transform:translateX(-50%);font:500 10px/1.4 Manrope,Arial,sans-serif;white-space:nowrap;color:#b0c2db;pointer-events:none}
.zvp-achievement.is-unlocked .zvp-achievement-label{color:#daeafd}
.zvp-achievement-detail{display:flex;gap:7px;flex-wrap:wrap;align-items:center;border-top:1px solid #a8c7ee22;padding-top:15px;color:#bed1e9;font:400 11px/1.6 Manrope,Arial,sans-serif;min-height:52px}
.zvp-achievement-detail strong{color:#edf6ff;font-weight:600}
.zvp-constellation-note{margin:10px 0 0;color:#9fb6d2;font:400 10px/1.6 Manrope,Arial,sans-serif}
.nf-body #profile-symbol.account-avatar{position:relative;overflow:visible!important;border-radius:50%;isolation:isolate;flex-shrink:0;background:radial-gradient(ellipse,#3d4b6e,#192c45);border:1px solid #b5d9ff69;box-shadow:0 0 25px #a8cfff20}
.nf-body #profile-avatar-image{border-radius:50%;width:100%;height:100%;object-fit:cover}
.nf-body #profile-symbol.account-avatar:before,.nf-body #profile-symbol.account-avatar:after,.nf-body .account-emblem:before,.nf-body .account-emblem:after{content:'';position:absolute;inset:-7px;border:1px solid transparent;border-top-color:#c9eaff;border-right-color:#b6a7ff;border-radius:50%;pointer-events:none;filter:drop-shadow(0 0 5px #b0cfff77);animation:zvp-avatar-orbit 15s linear infinite;z-index:-1}
.nf-body #profile-symbol.account-avatar:after,.nf-body .account-emblem:after{inset:-13px;border:1px solid #a6ceff22;border-bottom-color:#b7e7ff99;border-left-color:#b5acff77;animation-duration:23s;animation-direction:reverse;opacity:.7}
.nf-body .account-emblem{position:relative;isolation:isolate;overflow:visible!important}
.nf-body .account-emblem:before{inset:-9px}
.nf-body .account-emblem:after{inset:-18px}
@keyframes zvp-avatar-orbit{to{transform:rotate(360deg)}}
.nf-body #account:not(.active) #profile-symbol:before,.nf-body #account:not(.active) #profile-symbol:after,.nf-body #account:not(.active) .account-emblem:before,.nf-body #account:not(.active) .account-emblem:after,.zvp-visuals-paused .account-emblem:before,.zvp-visuals-paused .account-emblem:after,.zvp-visuals-paused #profile-symbol:before,.zvp-visuals-paused #profile-symbol:after{animation-play-state:paused!important}
/* Logo fills once, dissolves, then yields to the existing greeting. */
.zvp-logo-prelude{display:none;position:absolute;inset:0;z-index:9;pointer-events:none;align-items:center;justify-content:center;flex-direction:column;gap:23px;background:radial-gradient(ellipse at 50% 50%,#0b192d80,transparent 65%)}
.zvp-welcome[open] .zvp-logo-prelude{display:flex;animation:zvp-logo-dissolve 3.25s ease-in-out both}
.zvp-logo-word{position:relative;display:inline-block;white-space:nowrap;font:500 clamp(76px,15vw,146px)/1.1 Oswald,Impact,sans-serif;letter-spacing:5px;color:#e9f6ff;text-shadow:none}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .zvp-logo-word{color:transparent;-webkit-text-fill-color:transparent;background-image:linear-gradient(90deg,#edf8ff 0%,#c6eaff 76%,#d6caff 88%,transparent 100%),linear-gradient(#8098b8b3,#8098b8b3);background-position:left center;background-repeat:no-repeat;background-size:0% 100%,100% 100%;background-clip:text;-webkit-background-clip:text;filter:drop-shadow(0 0 13px #b4daff42);animation:zvp-logo-illuminate 2.4s .15s cubic-bezier(.25,.7,.3,1) both}
}
.zvp-logo-word:after{content:none!important;display:none!important}

.zvp-logo-prelude small{font:500 10px/1.5 Manrope,Arial,sans-serif;letter-spacing:3px;color:#c8ddf4}
.zvp-logo-track{height:2px;width:150px;background:#b6d3f020;overflow:hidden}
.zvp-logo-track:after{content:'';display:block;width:100%;height:100%;background:linear-gradient(90deg,#ace5ff,#c4b2ff);transform:translateX(-100%);animation:zvp-logo-bar 2.4s .15s ease-in-out both;box-shadow:0 0 15px #b6e1ff}
.zvp-welcome.zvp-logo-sequence[open]:not(.is-leaving) .zvp-welcome-copy{animation:zvp-greeting-after-logo 1.25s 2.35s both!important}
@keyframes zvp-logo-illuminate{from{background-size:0% 100%,100% 100%}to{background-size:140% 100%,100% 100%}}
@keyframes zvp-logo-bar{to{transform:translateX(0)}}
@keyframes zvp-logo-dissolve{0%{opacity:0;transform:scale(.97)}15%,70%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1.06);visibility:hidden}}
@keyframes zvp-greeting-after-logo{from{opacity:0;transform:translateY(16px);filter:blur(5px)}to{opacity:1;transform:none;filter:blur(0)}}
@media(max-width:1050px){.zvp-cinema-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.zvp-cinema-card{height:320px;contain-intrinsic-size:auto 320px}}
@media(max-width:800px){.nf-body .nf-header #menu.zvp-fluid-menu{position:absolute}.zvp-map-grid{gap:17px}.zvp-map-window{height:245px}.zvp-map-content{left:21px;right:21px;bottom:24px}.zvp-cinema-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.zvp-cinema-extra{margin-top:15px}}
@media(max-width:480px){.zvp-cinema-heading{align-items:flex-start;gap:10px}.zvp-cinema-heading h2{font-size:29px}.zvp-cinema-heading p{font-size:11px}.zvp-collection-count{font-size:10px;gap:4px}.zvp-collection-count strong{font-size:29px}.zvp-cinema-grid{gap:11px}.zvp-cinema-card{height:255px;border-radius:13px;contain-intrinsic-size:auto 255px}.zvp-cinema-caption{left:12px;right:12px;bottom:14px}.zvp-cinema-caption b{font-size:18px}.zvp-cinema-caption small{font-size:8px;letter-spacing:1px;margin-top:5px}.zvp-cinema-caption .zvp-cinema-arrow{width:23px;height:23px;font-size:12px}.zvp-map-grid{grid-template-columns:1fr}.zvp-map-window{height:245px}.zvp-constellation-panel{padding:20px 12px 16px}.zvp-constellation-head h3{font-size:19px}.zvp-constellation-count{font-size:10px}.zvp-constellation-sky{height:245px;margin-top:15px}.zvp-achievement-label{font-size:9px}.zvp-achievement-detail{font-size:11px}.zvp-constellation-note{font-size:10px}}
@media(hover:none),(pointer:coarse){.zvp-cinema-card,.zvp-map-window{transform:none!important}.zvp-cinema-character,.zvp-cinema-city,.zvp-map-content,.zvp-map-city{transform:none!important;transition:none}.zvp-cursor-trail{display:none}}
@media(prefers-reduced-motion:reduce){.zvp-cursor-trail,.zvp-logo-prelude{display:none!important}.zvp-cinema-card,.zvp-map-window,.zvp-cinema-character,.zvp-cinema-city,.zvp-map-content,.zvp-map-city{transform:none!important;transition:none!important}.zvp-cinema-star,.nf-body #profile-symbol.account-avatar:before,.nf-body #profile-symbol.account-avatar:after,.nf-body .account-emblem:before,.nf-body .account-emblem:after{animation:none!important}.zvp-welcome.zvp-logo-sequence[open]:not(.is-leaving) .zvp-welcome-copy{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}.nf-body #menu .zvp-fluid-light{transition:none!important}.zvp-constellation-links line,.zvp-achievement-dot{transition:none!important}}

/* A few points of starlight inside bright, readable lettering. */
.nf-body .nf-hero h1.cosmic-heading{
 font-size:clamp(44px,5vw,72px);line-height:1.12;white-space:normal;
 max-width:820px;text-shadow:none;letter-spacing:.2px;
}
.nf-body .nf-hero h1.cosmic-heading .cosmic-text{
 display:inline-block;position:relative;white-space:nowrap;color:#edf5ff;
 -webkit-text-fill-color:currentColor;background:none;filter:none;
}
@supports ((background-clip:text) or (-webkit-background-clip:text)){
 .nf-body .nf-hero h1.cosmic-heading .cosmic-text,
 .nf-body #zvp-welcome #zvp-welcome-title span{
  background-image:
   radial-gradient(circle at 22px 22px,#fff 0 1px,#ffffff80 1.3px,transparent 2.6px),
   radial-gradient(circle at 126px 52px,#fff 0 .8px,transparent 2px),
   linear-gradient(110deg,#f8fcff 5%,#bddfff 30%,#e5d6ff 52%,#d1f5ff 73%,#fff 96%);
  background-size:180px 84px,220px 96px,280% 100%;
  background-clip:text;-webkit-background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;text-shadow:none;
  filter:drop-shadow(0 2px 3px #02091bcc) drop-shadow(0 0 12px #b7cfff30);
  animation:zvp-cosmic-lettering 28s ease-in-out infinite alternate;
 }
 .nf-body .nf-hero h1.cosmic-heading .cosmic-text:last-child{animation-delay:-12s}
}
.nf-body .nf-hero h1.cosmic-heading .cosmic-text:after{
 content:'';position:absolute;right:7%;top:15%;width:7px;height:7px;
 background:#eafaff;clip-path:polygon(50% 0,60% 39%,100% 50%,60% 61%,50% 100%,40% 61%,0 50%,40% 39%);
 opacity:.28;pointer-events:none;animation:zvp-letter-glint 7s ease-in-out infinite;
}
.nf-body .nf-hero h1.cosmic-heading .cosmic-text:last-child:after{
 right:21%;top:67%;width:5px;height:5px;animation-delay:-3s;
}
@keyframes zvp-cosmic-lettering{
 from{background-position:0 0,0 0,0% 50%}
 to{background-position:24px 6px,-18px -4px,100% 50%}
}
@keyframes zvp-letter-glint{0%,100%{opacity:.22;transform:scale(.7)}50%{opacity:.85;transform:scale(1)}}
.nf-body #zvp-welcome.is-background-paused #zvp-welcome-title span,
.nf-body.zvp-welcome-open .cosmic-heading .cosmic-text,
.nf-body.zvp-welcome-open .cosmic-heading .cosmic-text:after,
.nf-body .zvp-scene-paused .cosmic-heading .cosmic-text,
.nf-body .zvp-scene-paused .cosmic-heading .cosmic-text:after{animation-play-state:paused}
@media(max-width:600px){
 .nf-body .nf-hero h1.cosmic-heading{font-size:clamp(31px,8.5vw,49px);line-height:1.18}
 .nf-body .nf-hero-visual{height:235px}
}
@media(prefers-reduced-motion:reduce){
 .nf-body .nf-hero h1.cosmic-heading .cosmic-text,
 .nf-body .nf-hero h1.cosmic-heading .cosmic-text:after,
 .nf-body #zvp-welcome #zvp-welcome-title span{animation:none!important}
}

.nf-body .nf-hero h1.cosmic-heading{font-size:clamp(36px,4vw,59px);line-height:1.2}
.nf-body .nf-hero-content{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:42px}
.nf-body .nf-hero-visual{display:flex;align-items:center;height:auto;min-height:510px;isolation:isolate}
.zvp-chat{position:relative;z-index:6;width:100%;min-width:0;max-width:510px;margin-left:auto;border:1px solid #b1b9ff42;border-radius:22px;background:linear-gradient(135deg,#11223be8,#17142be8);box-shadow:0 18px 65px #0207176b,inset 0 1px 0 #f0f6ff14;backdrop-filter:blur(15px);overflow:hidden;text-align:left;color:#e7efff;font-family:Manrope,Arial,sans-serif}
.zvp-chat *{box-sizing:border-box}
.zvp-chat-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 22px 16px;border-bottom:1px solid #bdc8ff1c;background:linear-gradient(110deg,#78dfff0a,#b79fff0e)}
.zvp-chat-kicker{display:flex;align-items:center;gap:7px;font-size:9px;font-weight:700;letter-spacing:1.9px;color:#aecce5}
.zvp-chat-kicker i{width:5px;height:5px;border-radius:50%;background:#99e6e9;box-shadow:0 0 10px #9bf1ff7a}
.zvp-chat h2{margin:8px 0 0;font:500 26px/1.15 Oswald,Impact,sans-serif;letter-spacing:.6px;color:#eff5ff}
.zvp-chat h2 em{font-style:normal;color:#d5c5ff}
.zvp-chat-online{flex-shrink:0;color:#badbda;border:1px solid #9edcdb28;background:#9edcdb08;border-radius:20px;padding:6px 9px;font-size:10px}
.zvp-chat-feed{height:230px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8a85b94d transparent;padding:15px 20px;scroll-behavior:auto;overflow-wrap:anywhere}
.zvp-chat-empty{display:flex;min-height:190px;align-items:center;justify-content:center;flex-direction:column;gap:10px;text-align:center;color:#bac7dc;font-size:12px;line-height:1.8;padding:14px}
.zvp-chat-empty:before{content:'✦';font-size:24px;color:#c9c1ff}
.zvp-chat-message{position:relative;margin-bottom:14px;padding-left:11px;border-left:2px solid #acbcff33;animation:zvp-chat-arrive .3s ease-out}
.zvp-chat-message.is-own{border-left-color:#bda8ff99}
.zvp-chat-message-head{display:flex;align-items:baseline;gap:8px;min-width:0}
.zvp-chat-name{font-size:11px;font-weight:700;color:#c5dfff;max-width:70%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.is-own .zvp-chat-name{color:#ddcfff}
.zvp-chat-time{font-size:9px;color:#9ba9c2}
.zvp-chat-body{margin:5px 0 0!important;font:400 12px/1.7 Manrope,Arial,sans-serif!important;color:#e3eafa!important;white-space:pre-wrap;overflow-wrap:anywhere;text-shadow:none!important}
.zvp-chat-delete{margin-left:auto;padding:1px 3px;border:0;background:none;color:#8fa2be;font-size:10px;cursor:pointer}
.zvp-chat-delete:hover{color:#e6dcff}
.zvp-chat-guest,.zvp-chat-compose{border-top:1px solid #bdc8ff1c;padding:15px 20px 10px;background:#02091a26}
.zvp-chat-guest p{margin:0 0 10px;font-size:11px;color:#c1cbe0;line-height:1.6}
.zvp-chat-guest>div{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.zvp-chat-guest a,.zvp-chat-guest button{font:700 10px/1.2 Manrope,Arial,sans-serif;letter-spacing:.5px;border:1px solid #baa8ff55;border-radius:8px;padding:10px 12px;text-decoration:none;background:#b4a8ff13;color:#e1dcff;cursor:pointer}
.zvp-chat-guest a{background:linear-gradient(110deg,#7566ba,#717ac4);color:#fff}
.zvp-chat-label{display:block;font-size:10px;color:#bdcce3;margin-bottom:7px}
.zvp-chat-input-row{display:flex;align-items:stretch;gap:8px}
.zvp-chat textarea{width:100%;min-width:0;resize:none;border:1px solid #a8bcf033;border-radius:10px;padding:10px 11px;color:#eef4ff;background:#07102290;font:400 12px/1.5 Manrope,Arial,sans-serif}
.zvp-chat textarea::placeholder{color:#93a2bb}
.zvp-chat-input-row button{flex:0 0 42px;background:linear-gradient(140deg,#766bc2,#687dbb);border:1px solid #c4b8ff4d;border-radius:10px;color:#fff;font-size:22px;cursor:pointer}
.zvp-chat button:disabled{opacity:.45;cursor:wait}
.zvp-chat-compose-meta{display:flex;justify-content:space-between;gap:8px;padding-top:6px;font-size:8px;color:#a5b1cc}
.zvp-chat-status{min-height:29px;margin:0;padding:7px 20px 12px;color:#a9b9d0;font-size:9px;line-height:1.5}
.zvp-chat-status.is-error{color:#ffcfdf}
.zvp-chat-new{display:block;margin:0 auto 10px;padding:7px 12px;border-radius:12px;background:#645e92;border:1px solid #c5b9ff66;color:#fff;font-size:10px;cursor:pointer}
.zvp-chat [hidden]{display:none!important}
.zvp-chat :focus-visible{outline:2px solid #c7e6ff;outline-offset:3px}
.account-form label[hidden]{display:none!important}
@keyframes zvp-chat-arrive{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:1000px){.nf-body .nf-hero-content{grid-template-columns:1fr;gap:24px}.nf-body .nf-hero-visual{min-height:0;height:auto;max-width:none;margin:0}.zvp-chat{max-width:640px;margin:0}.nf-body .nf-hero h1.cosmic-heading{font-size:clamp(36px,6vw,58px)}}
@media(max-width:600px){.nf-body .nf-hero h1.cosmic-heading{font-size:clamp(23px,7.4vw,42px);line-height:1.25}.nf-body .nf-hero-content{gap:30px;padding-bottom:30px}.nf-body .nf-hero-visual{height:auto;min-height:0}.zvp-chat{border-radius:16px}.zvp-chat-head{padding:16px}.zvp-chat-feed{padding:15px;height:230px}.zvp-chat h2{font-size:23px}.zvp-chat-guest,.zvp-chat-compose{padding:12px 15px 9px}.zvp-chat-status{padding-inline:15px}.zvp-chat-compose-meta>span:first-child{max-width:170px;line-height:1.6}}
@media(prefers-reduced-motion:reduce){.zvp-chat-message{animation:none}}


/* Selected waterfront, shared by the greeting and full-width hero. */
.nf-body .nf-hero .zvp-city-depth.far{
 background-image:url('/experience-assets/neon-city-e63c03f0f4cf.webp');
 background-position:50% 24%;background-size:cover;
}
.nf-body .nf-hero:before{
 background:linear-gradient(90deg,#080e20d9 0%,#0b1125b0 29%,#11182b26 64%,#0b0f2610),linear-gradient(0deg,#0a1022e8,transparent 22%,#0a10221a 90%);
}
.nf-body #zvp-welcome .zvp-welcome-camera{transform-origin:50% 48%}
@media(max-width:800px){
 .nf-body .nf-hero .zvp-city-depth.far{background-position:50% center;background-size:cover}
 .nf-body .nf-hero:before{background:linear-gradient(180deg,#080e24d9 0%,#0a1026b8 40%,#11172b40 70%,#091020a0)}
 .nf-body #zvp-welcome .zvp-welcome-camera{transform-origin:50% 50%}
}


/* Selected observation deck: one shared cached backdrop across the collection. */
.zvp-cinema-city{
 background-image:linear-gradient(#0b192630,#0b172b82),url('/experience-assets/neon-cards-5dc9bfc1e13d.webp');
 background-position:64% center;background-size:cover;
}
.zvp-map-window .zvp-map-city{background-image:url('/experience-assets/neon-cards-5dc9bfc1e13d.webp')}

/* First-screen composition and readable monitoring caption. */
.nf-body .nf-hero{min-height:calc(100svh - var(--zvp-header-height,76px))}
.nf-body .nf-hero-content{box-sizing:border-box;min-height:calc(100svh - var(--zvp-header-height,76px));padding-block:42px 75px;align-content:center}
.nf-body #home .nf-updated#updated{color:#b9d8ee!important;font-size:11px!important;line-height:1.7;opacity:1;text-shadow:0 1px 4px #050d23}
.nf-body .nf-hero .zvp-city-depth.far{background-image:none!important;background-color:#0a1225}
.nf-body .zvp-hero-weather-camera{position:absolute;inset:0;display:block;width:100%;height:100%;overflow:hidden}
.nf-body .zvp-hero-smoke{opacity:.16}
.nf-body #zvp-welcome .zvp-welcome-fog{opacity:.45}
.nf-body #zvp-welcome .zvp-welcome-fog.near{opacity:.28}
.nf-body #zvp-welcome .zvp-welcome-glow{opacity:.55}
.nf-body .zvp-scroll-cue{position:absolute;z-index:8;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;border:0;background:transparent;color:#d3e5f6;font:600 10px/1.4 Manrope,Arial,sans-serif;letter-spacing:1.7px;padding:10px 15px;cursor:pointer;opacity:.83}
.nf-body .zvp-scroll-cue span{font-size:20px;color:#c6cbff;animation:zvp-cue-drift 3s ease-in-out infinite}
@keyframes zvp-cue-drift{0%,100%{transform:translateY(-2px);opacity:.55}50%{transform:translateY(3px);opacity:1}}
.nf-body #home .nf-home-body>.zvp-section-reveal{scroll-margin-top:calc(var(--zvp-header-height,76px) + 24px);opacity:0;translate:0 30px;transition:opacity .95s ease,translate .95s cubic-bezier(.2,.7,.2,1);will-change:opacity,translate}
.nf-body #home .nf-home-body>.zvp-section-reveal.is-section-visible,
.nf-body #home .nf-home-body>.zvp-section-reveal:focus-within{opacity:1;translate:0 0;will-change:auto}
/* Weather belongs to the photographed pavement; SVG coordinates follow the image. */
.zvp-floor-rain{pointer-events:none}
.zvp-floor-drop{stroke:#cbe8ff;stroke-width:.65;stroke-linecap:round;opacity:0;animation:zvp-floor-rain var(--rain-time,1s) var(--rain-delay,0s) linear infinite}
@keyframes zvp-floor-rain{0%{opacity:0;transform:translate(-3px,-28px)}25%{opacity:.34}80%{opacity:.2}100%{opacity:0;transform:translate(4px,29px)}}
.zvp-floor-ring{fill:none;stroke:#c7e8ff;stroke-width:.75;opacity:0;transform-box:fill-box;transform-origin:center;animation:zvp-floor-ripple var(--ring-time,3.4s) var(--ring-delay,0s) ease-out infinite}
@keyframes zvp-floor-ripple{0%{opacity:0;transform:scale(.2)}14%{opacity:.36}75%{opacity:.07}100%{opacity:0;transform:scale(2.5)}}
.zvp-lamp-halo{opacity:.55;transform-box:fill-box;transform-origin:center;animation:zvp-lamp-breathe 7s ease-in-out infinite alternate}
.zvp-lamp-halo.second{animation-delay:-3s}
.zvp-lamp-reflection{opacity:.25;animation:zvp-lamp-reflect 5.5s ease-in-out infinite alternate}
@keyframes zvp-lamp-breathe{from{opacity:.42;transform:scale(.97)}to{opacity:.72;transform:scale(1.06)}}
@keyframes zvp-lamp-reflect{from{opacity:.16}to{opacity:.33}}
.nf-body .zvp-scene-paused :is(.zvp-floor-drop,.zvp-floor-ring,.zvp-lamp-halo,.zvp-lamp-reflection,.zvp-scroll-cue span){animation-play-state:paused}
/* The original image remains as fallback until the next portrait is decoded. */
.nf-body #home .nf-universe-img{display:grid;place-items:center}
.nf-body #home .nf-universe-img img{grid-area:1 / 1;max-height:100%;transition:opacity .8s ease,transform .6s ease,filter .4s ease}
.nf-body #home .nf-universe-img .zvp-universe-incoming{position:static;inset:auto;opacity:0}
.nf-body #home .nf-universe-img .zvp-universe-incoming.is-visible{opacity:1}
.nf-body #home .nf-universe-img img.is-outgoing{opacity:0}
.nf-body #home .nf-universe-info p{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;max-width:100%;color:#d2def5}
.nf-body .zvp-universe-controls{display:flex;gap:16px;align-items:center;margin-left:auto;flex-wrap:wrap}
.nf-body .zvp-universe-pause{border:1px solid #b7c8f13b;border-radius:8px;padding:8px 10px;background:#9caff00b;color:#c5d9ec;font:500 10px/1.4 Manrope,Arial,sans-serif;cursor:pointer;white-space:nowrap}
.nf-body .zvp-universe-pause:hover{border-color:#b9ccf7a0;color:#fff}
.nf-body .zvp-universe-pause:focus-visible,.nf-body .zvp-scroll-cue:focus-visible{outline:2px solid #b9e6ff;outline-offset:3px}
@media(max-width:1000px){.nf-body .nf-hero-content{padding-block:34px;min-height:calc(100svh - var(--zvp-header-height,66px))}.nf-body .zvp-scroll-cue{display:none}.nf-body #home .nf-universe .nf-section-head{flex-wrap:wrap;gap:18px}.nf-body .zvp-universe-controls{margin-left:0}.zvp-floor-drop:nth-child(2n),.zvp-floor-ring:nth-child(2n){display:none}}
@media(prefers-reduced-motion:reduce){.nf-body #home .nf-home-body>.zvp-section-reveal{opacity:1;translate:none;transition:none}.zvp-floor-drop,.zvp-floor-ring{display:none}.zvp-lamp-halo,.zvp-lamp-reflection,.nf-body .zvp-scroll-cue span{animation:none}.nf-body #home .nf-universe-img img{transition:none}}

/* Small explicit stars on the letters, not additional background specks. */
.nf-body .cosmic-text:after{display:none!important}
.nf-body .zvp-title-stars{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:visible;font-size:0}
.nf-body .zvp-title-spark{position:absolute;left:var(--spark-x);top:var(--spark-y);width:var(--spark-size,6px);height:var(--spark-size,6px);opacity:.25;transform:translate(-50%,-50%);animation:zvp-letter-sparkle var(--spark-time,5s) var(--spark-delay,0s) ease-in-out infinite}
.nf-body .zvp-title-spark:before{content:'';position:absolute;inset:0;background:#f4fcff;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}
.nf-body .zvp-title-spark:after{content:'';position:absolute;inset:40%;border-radius:50%;background:#fff;box-shadow:0 0 5px 2px #c3e5ff80,0 0 11px 2px #c4b6ff40}
@keyframes zvp-letter-sparkle{0%,100%{opacity:.17;scale:.65}45%{opacity:.5;scale:.9}58%{opacity:1;scale:1.25}74%{opacity:.35;scale:.85}}
.nf-body .zvp-welcome-eyebrow{position:relative;display:inline-block}
.nf-body .zvp-live-window{fill:var(--window-color,#d8edff);filter:drop-shadow(0 0 1.2px #b8d9ff6b);opacity:.25;animation:zvp-city-window-life var(--live-time,10s) var(--live-delay,-3s) ease-in-out infinite}
.nf-body #zvp-welcome .zvp-live-window{animation-name:zvp-city-window-life;fill:var(--window-color,#d8edff)}
@keyframes zvp-city-window-life{0%,100%{opacity:.1}18%{opacity:.2}38%{opacity:.8}57%{opacity:.6}76%{opacity:.13}90%{opacity:.55}}
.nf-body .zvp-city-neon{fill:none;stroke:var(--neon-color,#b8f2ff);stroke-linecap:round;stroke-width:1.15;filter:drop-shadow(0 0 2px #8fdbff8c);opacity:.35;animation:zvp-city-neon-life var(--neon-time,8s) var(--neon-delay,0s) ease-in-out infinite alternate}
@keyframes zvp-city-neon-life{0%{opacity:.2;stroke-width:.8}50%{opacity:.65;stroke-width:1.25}100%{opacity:.35;stroke-width:1}}
.nf-body .zvp-floor-drop{stroke-width:.8;stroke:#d8efff;animation-name:zvp-floor-rain-dense}
@keyframes zvp-floor-rain-dense{0%{opacity:0;transform:translate(-5px,-32px)}20%{opacity:.47}78%{opacity:.27}100%{opacity:0;transform:translate(5px,35px)}}
.nf-body .zvp-floor-ring{stroke-width:.9;stroke:#d4efff;animation-name:zvp-floor-ripple-dense}
@keyframes zvp-floor-ripple-dense{0%{opacity:0;transform:scale(.15)}12%{opacity:.46}70%{opacity:.12}100%{opacity:0;transform:scale(2.8)}}
.nf-body .zvp-lamp-halo{filter:drop-shadow(0 0 3px #e2d3ff40)}
.nf-body .zvp-scene-paused :is(.zvp-live-window,.zvp-city-neon,.zvp-title-spark){animation-play-state:paused}
.nf-body #zvp-welcome.is-background-paused .zvp-title-spark{animation-play-state:paused}
@media(max-width:800px){.nf-body .zvp-title-spark{width:calc(var(--spark-size,6px)*.8);height:calc(var(--spark-size,6px)*.8)}.nf-body .zvp-live-window:nth-child(2n){animation:none;opacity:.25}}
@media(prefers-reduced-motion:reduce){.nf-body :is(.zvp-title-spark,.zvp-live-window,.zvp-city-neon){animation:none!important}.nf-body .zvp-title-spark{opacity:.5}.nf-body .zvp-live-window{opacity:.4}}

.nf-body #zvp-welcome #zvp-welcome-title>span{position:relative;display:inline-block;isolation:isolate}


/* Photo selection and crop: matches the cabinet's night palette. */
.nf-body #account .account-picture-area{background:#10172c;border-color:#899ac33d;padding:18px;gap:12px}
.nf-body #account .account-picture-area>label{color:#e1e5fc;font-size:12px}
.nf-body #account .account-picture-area>label small{display:block;color:#b3bfdb;font:400 11px/1.6 Manrope,Arial,sans-serif;margin-top:5px}
.nf-body #account .account-picture-area input[type=file]{background:#0c1224;color:#dce6fc;border-color:#879cc650;font-size:12px}
.nf-body #account .avatar-crop-status{font:500 12px/1.7 Manrope,Arial,sans-serif;color:#b9c7e5;margin:0;overflow-wrap:anywhere}
.nf-body #account .avatar-crop-editor{min-width:0;max-width:100%}
.nf-body #account .avatar-crop-layout{display:grid;grid-template-columns:minmax(0,1fr) 104px;gap:16px;align-items:center;margin-top:4px}
.nf-body #account .avatar-crop-workspace{position:relative;min-width:0;width:100%;aspect-ratio:1;background:#10172b;border-radius:12px;isolation:isolate}
.nf-body #account #avatar-crop-canvas{display:block;width:100%;height:auto;aspect-ratio:1;border-radius:12px;touch-action:none;cursor:grab}
.nf-body #account #avatar-crop-canvas.is-dragging{cursor:grabbing}
.nf-body #account #avatar-crop-canvas:focus-visible{outline:2px solid #bbd8ff;outline-offset:4px}
.nf-body #account .avatar-crop-grid{position:absolute;inset:0;pointer-events:none;border:1px solid #d6e5ff88;border-radius:12px;background:linear-gradient(90deg,transparent calc(33.33% - .5px),#e8f1ff44 33.33%,transparent calc(33.33% + .5px),transparent calc(66.66% - .5px),#e8f1ff44 66.66%,transparent calc(66.66% + .5px)),linear-gradient(0deg,transparent calc(33.33% - .5px),#e8f1ff44 33.33%,transparent calc(33.33% + .5px),transparent calc(66.66% - .5px),#e8f1ff44 66.66%,transparent calc(66.66% + .5px))}
.nf-body #account .avatar-crop-preview{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;color:#c2d0ec;min-width:0}
.nf-body #account #avatar-preview-canvas{display:block;width:96px;max-width:100%;height:auto;aspect-ratio:1;border-radius:50%;box-shadow:0 0 0 2px #afc3f05c,0 0 25px #ad96fa24}
.nf-body #account .avatar-crop-preview strong{font:500 11px/1.5 Manrope,Arial,sans-serif}
.nf-body #account .avatar-crop-preview span{font:400 11px/1.5 Manrope,Arial,sans-serif;color:#a6b6d1}
.nf-body #account .avatar-crop-help{font:400 11px/1.7 Manrope,Arial,sans-serif;color:#b5c2dd;margin:12px 0}
.nf-body #account .avatar-crop-zoom{display:block;color:#dce4f8;font:500 12px Manrope,Arial,sans-serif}
.nf-body #account .avatar-crop-zoom>span{display:flex;justify-content:space-between;margin-bottom:9px}
.nf-body #account .avatar-crop-zoom output{color:#c4b5fc;font-variant-numeric:tabular-nums}
.nf-body #account .avatar-crop-zoom input{display:block;width:100%;min-height:32px;padding:0;accent-color:#b8a5ef}
.nf-body #account .avatar-crop-tools{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px}
.nf-body #account .avatar-crop-tools button,.nf-body #account .account-remove-avatar{border:1px solid #91a0cf52;background:#19223e;color:#d4dff7;border-radius:8px;padding:10px 13px;font:500 12px Manrope,Arial,sans-serif;min-height:42px;cursor:pointer}
.nf-body #account .avatar-crop-tools button:hover{background:#263451}
.nf-body #account .account-picture-actions{gap:10px}
.nf-body #account .account-picture-actions .button{font-size:11px;white-space:normal;min-width:0}
.nf-body #account .account-picture-area button:disabled{opacity:.5;cursor:default}
@media(max-width:600px){.nf-body #account .avatar-crop-layout{grid-template-columns:minmax(0,1fr);gap:16px}.nf-body #account .avatar-crop-preview{flex-direction:row;text-align:left;justify-content:center}.nf-body #account #avatar-preview-canvas{width:60px}.nf-body #account .account-picture-area{padding:13px}.nf-body #account .account-picture-actions{align-items:stretch}.nf-body #account .account-picture-actions .button{flex-basis:100%}.nf-body #account .account-remove-avatar{flex:1}}
/* Slightly larger stars, with only a few stronger glints. */
.nf-body :is(#zvp-welcome,.nf-hero) .zvp-title-spark{width:calc(var(--spark-size,6px)*1.22);height:calc(var(--spark-size,6px)*1.22)}
.nf-body :is(#zvp-welcome,.nf-hero) .zvp-title-spark:nth-child(3n+1){filter:brightness(1.35) drop-shadow(0 0 4px #cbefffaa)}
.nf-body :is(#zvp-welcome,.nf-hero) .zvp-title-spark:nth-child(3n+1):after{box-shadow:0 0 7px 3px #d8efffbb,0 0 17px 3px #b9a7ff66}
.nf-body .nf-hero .zvp-night-star{width:calc(var(--ss,2px)*1.2);height:calc(var(--ss,2px)*1.2)}
.nf-body .nf-hero .zvp-night-star.strong{filter:brightness(1.45);box-shadow:0 0 7px 1px #d5edffbb,0 0 16px #b5a5ff88}
.nf-body #zvp-welcome .zvp-welcome-stars i{width:2.4px;height:2.4px}
.nf-body #zvp-welcome .zvp-welcome-stars.extra i{width:calc(var(--ss,1.6px)*1.2);height:calc(var(--ss,1.6px)*1.2)}
.nf-body #zvp-welcome .zvp-welcome-stars i:nth-child(7n+3){width:3.5px;height:3.5px;filter:brightness(1.4);box-shadow:0 0 7px 1px #d0ebffcc,0 0 18px #bbaaff77}
@media(max-width:800px){.nf-body :is(#zvp-welcome,.nf-hero) .zvp-title-spark{width:var(--spark-size,6px);height:var(--spark-size,6px)}}


/* Keep the avatar frame stable while its private image loads. */
.nf-body #account #profile-symbol{display:grid;place-items:center;line-height:1}
.nf-body #account #profile-avatar-image{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;font-size:0;line-height:0}
.nf-body #account #profile-avatar-glyph{font-size:.72em;line-height:1}
/* The SVG scene already supplies the complete backdrop; avoid duplicate photos. */
.nf-body .nf-hero .zvp-city-depth.far,.nf-body #zvp-welcome .zvp-welcome-city{background-image:none}
@media(max-width:800px){
 .nf-body{touch-action:manipulation;-webkit-text-size-adjust:100%;text-size-adjust:100%}
 .nf-body .wrap{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
 .nf-body .nf-header{backdrop-filter:none;background:#10152df7}
 .nf-body .nf-header .header-inner{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}
 .nf-body .nf-header #menu.zvp-fluid-menu{left:10px;right:10px;width:auto;top:calc(100% + 5px);margin:0;padding:10px;border:1px solid #8d9cca55;border-radius:14px;background:#141b32;backdrop-filter:none;max-height:calc(100dvh - var(--zvp-header-height,67px) - 22px);box-shadow:0 15px 30px #04091977;gap:4px}
 .nf-body .nf-header #menu>a{min-height:46px;padding:12px 14px;font-size:12px;border-radius:8px}
 .nf-body .nf-header #menu .zvp-fluid-light{display:none}
 .nf-body .nf-header #menu>a.active{background:#45446970;color:#ecedff}
 .nf-body :is(.nf-hero-content,.nf-hero-visual,.nf-hero-copy,.page-inner,.armory-config,.nf-section-head)>*{min-width:0}
 .nf-body .nf-hero,.nf-body .nf-hero-content{min-height:0}
 .nf-body .nf-hero-content{padding-block:30px;gap:24px}
 .nf-body .nf-hero-visual{max-width:none;width:100%;height:auto;min-height:0}
 .nf-body .nf-hero-actions .button{min-height:48px}
 .nf-body .zvp-chat{width:100%;max-width:none;backdrop-filter:none;background:#141c33f0}
 .nf-body .zvp-chat-feed{height:180px;min-height:0;overscroll-behavior-y:contain;overflow-wrap:anywhere}
 .nf-body .zvp-chat-head{padding:15px}
 .nf-body .zvp-chat-compose textarea{font-size:16px;min-height:58px}
 .nf-body .zvp-chat-send{min-width:46px;min-height:46px}
 .nf-body .zvp-chat-compose-meta{font-size:11px}
 .nf-body :is(input[type=text],input[type=password],input[type=email],input[type=search],select,textarea),.nf-body #account .account-picture-area input[type=file]{font-size:16px}
 .nf-body .nf-section-head{flex-wrap:wrap;align-items:flex-start;gap:14px}
 .nf-body .nf-section-head h2{max-width:100%;overflow-wrap:anywhere}
 .nf-body .nf-section-head>a{min-height:44px;display:inline-flex;align-items:center}
 .nf-body .zvp-universe-controls{width:100%;gap:12px;justify-content:space-between;flex-wrap:wrap}
 .nf-body .zvp-universe-pause{min-height:44px;font-size:11px}
 .nf-body .zvp-universe-controls>a{min-height:44px;display:inline-flex;align-items:center;font-size:11px}
 .nf-body #account .account-panel{padding:24px 18px}
 .nf-body #account .account-identity{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px;padding:6px 0 20px}
 .nf-body #account #profile-symbol{width:64px;height:64px;font-size:44px;margin:5px 0 5px 3px}
 .nf-body #account .account-identity>div{min-width:0}
 .nf-body #account .account-identity h3{font-size:clamp(23px,6vw,30px);line-height:1.2}
 .nf-body #account .account-logout{grid-column:2;justify-self:start;margin:0;min-height:44px;padding:10px 16px;font-size:11px}
 .nf-body #account .account-edit-avatar{min-height:36px;font-size:12px}
 .nf-body #account .account-dashboard-tabs{gap:3px;padding:4px;overflow:visible}
 .nf-body #account .account-dashboard-tabs [role=tab]{min-height:46px;padding:10px 2px;font-size:10px;letter-spacing:0;white-space:normal;overflow-wrap:anywhere}
 .nf-body #account .account-form label,.nf-body #account .account-hint{font-size:12px}
 .nf-body #account .account-form label small{font-size:11px}
 .nf-body #account .account-security summary{padding-block:4px;min-height:44px;font-size:12px}
 .nf-body #account .account-picture-actions button,.nf-body #account .avatar-crop-tools button{min-height:46px}
 .nf-body #account .avatar-crop-layout{grid-template-columns:minmax(0,1fr)}
 .nf-body #account .avatar-crop-preview{flex-direction:row;justify-content:center}
 .nf-body #account #avatar-preview-canvas{width:64px}
 .nf-body #weapons .armory-layout{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:none;gap:10px}
 .nf-body #weapons .armory-stage{grid-area:auto;grid-column:1/-1;grid-row:1;height:clamp(520px,76svh,640px);padding:0 10px 12px}
 .nf-body #weapons .armory-stage-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;width:100%}
 .nf-body #weapons .armory-stage-controls button{min-height:44px;height:auto;min-width:0;padding:8px 5px;font-size:11px;line-height:1.4;white-space:normal}
 .nf-body #weapons .armory-slot{min-height:120px;padding:12px 8px;gap:6px}
 .nf-body #weapons .armory-slot-type{font-size:10px;line-height:1.4}
 .nf-body #weapons .armory-slot-name{font-size:12px;line-height:1.4;max-width:100%;overflow-wrap:anywhere}
 .nf-body #weapons .armory-slot-action{font-size:11px}
 .nf-body #weapons .armory-drag-hint,.nf-body #weapons .armory-clarification{font-size:11px;line-height:1.5}
 .nf-body #weapons .armory-footer{flex-wrap:wrap;gap:10px}
 .nf-body #weapons .armory-footer .button{width:100%;min-height:46px;font-size:11px}
 .nf-body #weapons .armory-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .nf-body #weapons .armory-picker-header{gap:10px}
 .nf-body #weapons .armory-picker-header button{min-width:44px;min-height:44px}
 .nf-body #weapons .armory-picker-filters{flex-wrap:wrap;gap:8px}
 .nf-body #weapons :is(.armory-picker-filter,.armory-picker-category){min-height:44px;font-size:11px}
 .nf-body :is(.ency-wiki-filter,.ency-wiki-gender-tab,.ency-wiki-zombie-tab){min-height:44px;font-size:11px}
 .nf-body .ency-wiki-card-caption strong{font-size:12px;line-height:1.4}
 .nf-body :is(.nf-footer-col a,.nf-footer-end a){min-height:40px;display:inline-flex;align-items:center}
 /* Fewer simultaneously painted particles; retain the same night scene. */
 .nf-body :is(.zvp-welcome-camera,.zvp-hero-weather-camera){transform:none!important}
 .nf-body .zvp-live-window{filter:none}
 .nf-body .zvp-live-window:not(:nth-child(4n+1)){display:none}
 .nf-body :is(.zvp-floor-drop,.zvp-floor-ring):not(:nth-child(4n+1)){display:none}
 .nf-body :is(.zvp-floor-drop,.zvp-floor-ring){filter:none}
 .nf-body :is(.zvp-welcome-fog,.zvp-welcome-aurora,.zvp-city-ambient,.zvp-map-light,.zvp-logo-prelude){display:none}
 .nf-body #zvp-welcome :is(.zvp-welcome-stars,.zvp-welcome-stars.extra){animation:none!important}
 .nf-body #zvp-welcome .zvp-welcome-stars i:nth-child(n+25){display:none}
 .nf-body .zvp-night-star:nth-child(n+25){display:none}
 .nf-body .zvp-title-spark:nth-child(n+5){display:none}
 .nf-body :is(.zvp-map-window,.zvp-cinema-card,.nf-universe-card,.server-card){backdrop-filter:none}
 .nf-body #profile-symbol:before,.nf-body #profile-symbol:after{animation:none!important}
 .nf-body #zvp-welcome.is-leaving{animation-duration:.32s}
 .nf-body .zvp-welcome-skip{top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));min-height:44px}
 .nf-body .zvp-welcome-motion{bottom:max(16px,env(safe-area-inset-bottom));right:max(16px,env(safe-area-inset-right));min-height:44px}
 .nf-body .zvp-welcome-copy{padding-left:max(18px,env(safe-area-inset-left));padding-right:max(18px,env(safe-area-inset-right))}
 .nf-body .nf-footer{padding-bottom:env(safe-area-inset-bottom)}
}
@media(max-width:480px){
 .nf-body .wrap{padding-inline:16px}
 .nf-body .nf-hero h1.cosmic-heading{font-size:clamp(26px,7.9vw,38px);line-height:1.2}
 .nf-body .nf-hero-copy>p{font-size:14px;line-height:1.75}
 .nf-body .nf-hero-facts{gap:12px 15px;margin-top:24px}
 .nf-body .nf-hero-facts span{font-size:10px;line-height:1.6}
 .nf-body .nf-section-head h2{font-size:clamp(29px,8vw,38px)}
 .nf-body .page-title{padding:22px 18px}
 .nf-body .page-title h1{font-size:clamp(29px,8.5vw,38px)}
 .nf-body .page-title p{font-size:12px;line-height:1.8}
 .nf-body .server-card{padding:20px 17px}
 .nf-body .server-bottom{display:grid;grid-template-columns:minmax(0,1fr) 46px;gap:10px}
 .nf-body .server-ip{grid-column:1/-1;font-size:13px;overflow-wrap:anywhere}
 .nf-body .server-bottom .copy-btn{min-height:46px;margin:0;width:100%;font-size:11px}
 .nf-body .server-bottom .join{min-width:46px;min-height:46px;margin:0}
 .nf-body .nf-hero-actions .button{font-size:11px}
 .nf-body #account .account-meta{grid-template-columns:minmax(0,1fr);gap:10px}
 .nf-body #account .account-meta>div{min-width:0}
 .nf-body #account .account-meta span{font-size:10px}
 .nf-body #account .account-meta b{font-size:18px}
 .nf-body #account .account-meta small{font-size:11px}
 .nf-body #account .account-panel{padding-inline:14px}
 .nf-body #account .account-identity{gap:10px}
 .nf-body #account .zvp-constellation-head{align-items:flex-start}
 .nf-body #account .zvp-constellation-head h3{font-size:18px}
 .nf-body #account .account-dashboard-tabs [role=tab]{font-size:9px}
 .nf-body .zvp-cinema-card{height:260px}
 .nf-body .zvp-cinema-caption small{font-size:10px;letter-spacing:.4px}
}
@media(max-width:360px){
 .nf-body .nf-header .header-inner{gap:5px;padding-inline:10px}
 .nf-body .nf-brand{gap:5px}
 .nf-body .brand-label strong{font-size:12px;letter-spacing:0}
 .nf-body .brand-label small{font-size:6px;letter-spacing:.3px}
 .nf-body .nf-header-account{min-width:62px;padding-inline:6px;font-size:9px}
 .nf-body .nf-header-account>span:last-child{display:none}
 .nf-body .zvp-cinema-grid{grid-template-columns:minmax(0,1fr)}
 .nf-body .zvp-cinema-card{height:320px}
 .nf-body #account .account-identity{grid-template-columns:56px minmax(0,1fr)}
 .nf-body #account #profile-symbol{width:54px;height:54px;font-size:38px}
}
@media(max-width:800px) and (max-height:500px){
 .nf-body #zvp-welcome h2{font-size:clamp(30px,7vh,44px);margin-block:10px}
 .nf-body #zvp-welcome .zvp-welcome-copy{padding-block:54px 62px}
 .nf-body #zvp-welcome .zvp-welcome-enter{margin-top:16px;min-height:46px}
}


/* Four server access levels, with rouble prices separate from in-game money. */
.nf-body #shop .privilege-grid{align-items:start}
.nf-body #shop .privilege-card{min-height:610px}
.nf-body #shop .privilege-card.is-revealed .privilege-benefits{position:relative;inset:auto;height:auto;min-height:610px}
.nf-body #shop .privilege-card[data-privilege-card=vip] .privilege-cover{padding-bottom:182px}
.nf-body #shop .privilege-card[data-privilege-card=vip] .privilege-benefits{padding-bottom:186px}
.nf-body #shop .privilege-card[data-privilege-card=svip] .privilege-benefits{padding-bottom:104px}
.nf-body #shop .privilege-menu-name{margin:8px 0 5px;font:600 13px/1.6 Manrope,Arial,sans-serif;color:#edf2ff}
.nf-body #shop .privilege-menu-name .access-label,.nf-body #shop .privilege-menu-path b{color:#ffe28d}
.nf-body #shop .privilege-menu-path{font:400 11px/1.6 Manrope,Arial,sans-serif;color:#b8c8e5;margin:0 0 14px}
.nf-body #shop .privilege-bonus-copy .privilege-micro{display:block;color:#bdcde6;font-size:11px;font-weight:400;margin-top:3px}
.nf-body #shop .privilege-limits{margin:14px 0 0;color:#b9c9e1;font:400 11px/1.7 Manrope,Arial,sans-serif;overflow-wrap:anywhere}
.nf-body #shop .privilege-more{margin-top:15px;border:1px solid #a8bbdc33;border-radius:9px;background:#0c172a3d;padding:0 12px;color:#cad8ee}
.nf-body #shop .privilege-more summary{cursor:pointer;min-height:46px;display:list-item;padding:13px 0;font:600 11px/1.6 Manrope,Arial,sans-serif;color:#e2ebff}
.nf-body #shop .privilege-more summary:focus-visible{outline:2px solid #c5dcff;outline-offset:4px}
.nf-body #shop .privilege-more h4{margin:12px 0 8px;color:#e8f1ff;font:600 12px/1.6 Manrope,Arial,sans-serif}
.nf-body #shop .privilege-weapon-prices{margin:0;display:grid;gap:0}
.nf-body #shop .privilege-weapon-prices>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;border-bottom:1px solid #b8c9e51a;padding:9px 0}
.nf-body #shop .privilege-weapon-prices dt{font:500 12px/1.5 Manrope,Arial,sans-serif;color:#dae7fb}
.nf-body #shop .privilege-weapon-prices dt small{display:block;font-size:11px;color:#afc2dd;font-weight:400}
.nf-body #shop .privilege-weapon-prices dd{margin:0;font:600 12px/1.5 Manrope,Arial,sans-serif;color:#e4efff;white-space:nowrap;font-variant-numeric:tabular-nums}
.nf-body #shop .privilege-extra-bonuses{margin:0 0 13px;padding-left:16px;color:#b9cbe5;font:400 11px/1.8 Manrope,Arial,sans-serif}
.nf-body #shop .privilege-level-selector{position:absolute;z-index:7;left:18px;right:18px;bottom:90px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.nf-body #shop .privilege-level-selector button{border:1px solid #c1c7f048;border-radius:8px;background:#151d36;color:#c9d7f1;padding:10px 4px;min-height:48px;min-width:0;font:500 10px/1.5 Manrope,Arial,sans-serif;white-space:normal}
.nf-body #shop .privilege-level-selector button[aria-pressed=true]{background:linear-gradient(125deg,#64558e,#394d79);border-color:#d1c5ff;color:#fff;box-shadow:0 0 16px #c0a3ff22}
.nf-body #shop .privilege-level-selector button:hover{border-color:#d9ddff}
.nf-body #shop .privilege-card .privilege-close{height:44px;width:44px;flex-basis:44px}
@media(max-width:950px) and (min-width:621px){.nf-body #shop .privilege-grid{grid-template-columns:minmax(0,1fr);max-width:620px;margin-inline:auto}.nf-body #shop .privilege-level-selector button{font-size:11px}.nf-body #shop .privilege-bonus-copy,.nf-body #shop .privilege-bonus-copy strong{font-size:12px}}
@media(max-width:620px){.nf-body #shop .privilege-benefits{padding-inline:20px}.nf-body #shop .privilege-bonus-copy{font-size:12px}.nf-body #shop .privilege-bonus-copy strong{font-size:13px}.nf-body #shop .privilege-card{min-height:600px}.nf-body #shop .privilege-card.is-revealed .privilege-benefits{min-height:600px}.nf-body #shop .privilege-fixed-foot{left:20px;right:20px}}

.nf-body #shop .privilege-level-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Pause invisible work; visible scenes keep their original animation and detail. */
.nf-body.zvp-document-hidden *,
.nf-body.zvp-document-hidden *::before,
.nf-body.zvp-document-hidden *::after{animation-play-state:paused!important}
