:root{--vf-ui-track:#0d0c09;--vf-ui-thumb:#806632;--vf-ui-thumb-hover:#d2a94f;--vf-ui-line:rgba(233,192,104,.32)}
html{scrollbar-width:thin;scrollbar-color:var(--vf-ui-thumb) var(--vf-ui-track)}
*{scrollbar-width:thin;scrollbar-color:var(--vf-ui-thumb) var(--vf-ui-track)}
*::-webkit-scrollbar{width:10px;height:10px}
*::-webkit-scrollbar-track{background:var(--vf-ui-track);border-left:1px solid rgba(233,192,104,.08)}
*::-webkit-scrollbar-thumb{background:linear-gradient(180deg,#9b7a37,#5f4b29);border:2px solid var(--vf-ui-track);border-radius:999px}
*::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#e0bb66,#8b6c31)}
*::-webkit-scrollbar-corner{background:var(--vf-ui-track)}
.vf-no-browser-scrollbar,.vf-portal-nav-track{scrollbar-width:none!important;-ms-overflow-style:none!important}
.vf-no-browser-scrollbar::-webkit-scrollbar,.vf-portal-nav-track::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}

.vf-legal-footer-links button{font:inherit;color:inherit;border:0;background:transparent;padding:0;text-decoration:underline;cursor:pointer}
.vf-legal-footer-links button:hover{color:#fff2bd}
.vf-privacy-open{overflow:hidden}
.vf-privacy-layer{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:18px;background:rgba(2,7,13,.82);backdrop-filter:blur(8px)}
.vf-privacy-dialog{width:min(760px,100%);max-height:min(88vh,900px);overflow:auto;border:1px solid rgba(233,192,104,.5);border-radius:18px;background:linear-gradient(145deg,#122335,#07111d 72%);color:#dfe8ef;box-shadow:0 28px 100px rgba(0,0,0,.72);padding:24px;font:15px/1.55 Inter,Arial,sans-serif}
.vf-privacy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.vf-privacy-head h2{margin:2px 0 10px;color:#f1d173;font:700 clamp(24px,4vw,36px)/1.1 Georgia,serif}.vf-privacy-kicker{color:#94b8cb;font-size:11px;font-weight:800;letter-spacing:.14em}
.vf-privacy-close{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border:1px solid rgba(233,192,104,.42);border-radius:11px;background:#182838;color:#f1d173;font-size:27px;line-height:1;cursor:pointer}.vf-privacy-close:hover,.vf-privacy-close:focus-visible{border-color:#f1d173;background:#26394b}
.vf-privacy-dialog h3{margin:20px 0 10px;color:#f1d173}.vf-privacy-inventory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.vf-privacy-inventory article{display:grid;gap:4px;padding:12px;border:1px solid rgba(137,177,197,.24);border-radius:11px;background:rgba(11,27,41,.86)}.vf-privacy-inventory article strong{color:#f3e7c3}.vf-privacy-inventory article span{font-size:13px;color:#b8c6d2}.vf-privacy-inventory article.is-disabled{border-color:rgba(70,211,150,.33);background:rgba(8,60,47,.34)}.vf-privacy-inventory article.is-disabled strong{color:#a8f0cd}
.vf-privacy-detected{padding:10px 12px;border-left:3px solid #69a8c8;background:rgba(31,82,109,.22);font-size:13px}.vf-privacy-danger{margin-top:18px;padding:15px;border:1px solid rgba(238,109,109,.42);border-radius:12px;background:rgba(100,24,34,.23)}.vf-privacy-danger>strong{color:#ffb4b4}.vf-privacy-danger p{margin:7px 0 12px}.vf-privacy-danger button{min-height:38px;border:1px solid rgba(233,192,104,.44);border-radius:9px;background:#1d3041;color:#f0dfb5;padding:8px 13px;font-weight:800;cursor:pointer}.vf-privacy-danger .vf-privacy-delete{border-color:#ff8b8b;background:#7b202c;color:#fff}.vf-privacy-confirm{display:grid;gap:8px}.vf-privacy-confirm label{font-size:13px;font-weight:800}.vf-privacy-confirm input{width:100%;box-sizing:border-box;border:1px solid #9d5360;border-radius:8px;background:#07111d;color:#fff;padding:10px 12px}.vf-privacy-actions{display:flex;gap:8px;flex-wrap:wrap}.vf-privacy-status{min-height:1.4em;color:#ffb4b4}.vf-privacy-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:15px}.vf-privacy-links a{color:#f1d173}
@media(max-width:620px){.vf-privacy-layer{padding:8px}.vf-privacy-dialog{max-height:95vh;border-radius:13px;padding:17px}.vf-privacy-inventory{grid-template-columns:1fr}}

.vf-portal-nav{position:sticky;top:0;z-index:9999;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:7px;align-items:center;overflow:hidden;padding:8px 10px;background:rgba(12,11,9,.97);border-bottom:1px solid rgba(233,192,104,.35);backdrop-filter:blur(10px);font:600 11px/1.2 Arial,sans-serif;letter-spacing:.04em}
.vf-portal-nav-track{display:flex;gap:8px;align-items:center;min-width:0;overflow-x:auto;overflow-y:hidden;scroll-behavior:smooth;padding:1px 2px}
.vf-portal-nav a{white-space:nowrap;color:#d8c79e;text-decoration:none;border:1px solid rgba(233,192,104,.22);background:#1e1b15;border-radius:999px;padding:7px 11px;cursor:pointer;transition:border-color .16s ease,color .16s ease,background .16s ease}
.vf-portal-nav a:hover,.vf-portal-nav a.active{color:#fff6d8;border-color:#e9c068}.vf-portal-nav a.active{background:rgba(233,192,104,.16)}
.vf-portal-nav .brand{font-weight:800;color:#e9c068;border:0;background:transparent;padding-left:0}.vf-portal-nav .spacer{flex:1 0 22px;min-width:22px}
.vf-nav-scroll{display:none;place-items:center;width:30px;height:30px;padding:0;border:1px solid rgba(233,192,104,.26);border-radius:9px;background:linear-gradient(180deg,#272217,#17140f);color:#e9c068;cursor:pointer;box-shadow:0 5px 15px rgba(0,0,0,.25)}
.vf-portal-nav.has-overflow .vf-nav-scroll{display:grid}.vf-nav-scroll svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.vf-nav-scroll:hover:not(:disabled){border-color:#e9c068;background:#2d2618;color:#fff0c8}.vf-nav-scroll:disabled{opacity:.22;cursor:default}
.vf-portal-nav .vf-nav-account{display:inline-flex;align-items:center;gap:7px}.vf-portal-nav .vf-account-dot{width:7px;height:7px;border-radius:999px;background:#7b7465;box-shadow:0 0 0 2px rgba(123,116,101,.18)}.vf-portal-nav .vf-nav-account.is-authenticated{color:#dffff0;border-color:rgba(52,211,153,.75);background:rgba(6,78,59,.65)}.vf-portal-nav .vf-nav-account.is-authenticated .vf-account-dot{background:#34d399;box-shadow:0 0 0 2px rgba(52,211,153,.18),0 0 9px rgba(52,211,153,.8)}
@media(max-width:700px){.vf-portal-nav{padding:7px 7px;gap:5px}.vf-portal-nav .spacer{display:none}.vf-nav-scroll{width:28px;height:28px}}

/* Common controls keep semantic HTML but use VeilFarers chrome instead of browser chrome. */
select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%)!important;background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%!important;background-size:5px 5px,5px 5px!important;background-repeat:no-repeat!important;padding-right:34px!important}
input[type="checkbox"],input[type="radio"]{accent-color:#d5a843}

/* v59.7 cohesion layer: canonical navigation is the only site-level navigation. */
body{--vf-portal-surface:rgba(12,11,9,.975);--vf-portal-border:rgba(233,192,104,.30)}
.vf-portal-nav{background:var(--vf-portal-surface);border-bottom-color:var(--vf-portal-border);box-shadow:0 8px 24px rgba(0,0,0,.28)}
.vf-portal-nav a{min-height:32px;display:inline-flex;align-items:center;justify-content:center}
.vf-portal-nav a.active{box-shadow:inset 0 0 0 1px rgba(233,192,104,.12),0 0 16px rgba(233,192,104,.10)}


/* v59.27 temporary product-state banner for incomplete modules. */
.vf-construction-banner{position:relative;z-index:9998;display:flex;align-items:center;justify-content:center;gap:12px;padding:9px 18px;border-bottom:1px solid rgba(233,192,104,.28);background:linear-gradient(90deg,rgba(71,49,12,.94),rgba(26,21,13,.98),rgba(71,49,12,.94));color:#f8e7a8;font:600 10px/1.4 Arial,sans-serif;letter-spacing:.045em;text-align:center}
.vf-construction-banner strong{text-transform:uppercase;letter-spacing:.11em;color:#fff2c8}.vf-construction-banner span{color:rgba(248,231,168,.68)}
[hidden]{display:none!important}
@media(max-width:700px){.vf-construction-banner{align-items:flex-start;flex-direction:column;gap:2px;padding:8px 12px;text-align:left}}

/* v59.49: portal navigation remains below global Player Tool connection errors and outside authenticated Keeper content. */
.vf-portal-nav{z-index:60000}
.vf-construction-banner{z-index:59999}

/* v59.50: the persistent active character is shown in the shared navigation rather than as a floating callout. */
.vf-portal-nav .vf-nav-character-id{display:inline-flex;align-items:center;white-space:nowrap}
.vf-portal-nav .vf-nav-character-id[hidden]{display:none!important}
.vf-nav-character-trigger{display:inline-flex;align-items:center;gap:6px;min-height:32px;max-width:240px;border:1px solid rgba(233,192,104,.45);background:rgba(38,31,19,.86);border-radius:999px;padding:6px 9px 6px 10px;color:#f5e8bd;font:inherit;line-height:1;cursor:pointer;transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.vf-nav-character-trigger:hover,.vf-nav-character-trigger:focus-visible,.vf-nav-character-id.is-open .vf-nav-character-trigger{outline:none;border-color:#e9c068;background:rgba(68,53,26,.96);box-shadow:0 0 16px rgba(233,192,104,.13)}
.vf-nav-character-trigger .vf-nav-character-kicker{flex:0 0 auto;font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:#a99566}
.vf-nav-character-trigger .vf-nav-character-name{min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:10px;letter-spacing:.035em;color:#fff1c9}
.vf-nav-character-trigger svg{flex:0 0 auto;width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .16s ease}
.vf-nav-character-id.is-open .vf-nav-character-trigger svg{transform:rotate(180deg)}
.vf-nav-character-menu{position:fixed;z-index:60020;display:grid;gap:5px;max-height:min(420px,calc(100vh - 70px));overflow:auto;padding:8px;border:1px solid rgba(233,192,104,.42);border-radius:14px;background:linear-gradient(180deg,rgba(31,27,20,.99),rgba(13,12,10,.99));box-shadow:0 18px 50px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,239,194,.05);backdrop-filter:blur(14px)}
.vf-nav-character-menu[hidden]{display:none!important}

/* Shared public navigation language: matches the cinematic homepage. */
.vf-portal-nav{min-height:58px;padding:7px 12px;border:0;border-bottom:1px solid rgba(221,184,109,.3);background:rgba(2,8,13,.93);box-shadow:0 15px 40px rgba(0,0,0,.3);backdrop-filter:blur(18px)}
.vf-portal-nav-track{gap:0;align-self:stretch;padding:0;border:1px solid rgba(221,184,109,.14)}
.vf-portal-nav a{min-height:42px;padding:0 15px;border:0;border-right:1px solid rgba(221,184,109,.1);border-radius:0;background:transparent;color:#d9d2c1;font-size:9px;letter-spacing:.11em;text-transform:uppercase}
.vf-portal-nav a:hover,.vf-portal-nav a.active{border-color:rgba(221,184,109,.16);background:linear-gradient(180deg,rgba(221,184,109,.13),rgba(221,184,109,.035));color:#fff4d8;box-shadow:inset 0 -1px #ddb86d}
.vf-portal-nav .brand{min-width:205px;justify-content:flex-start;gap:14px;padding:0 20px;color:#f3ddb0;font:700 19px/1 Inter,"Segoe UI",Arial,sans-serif;letter-spacing:.08em}
.vf-portal-nav .vf-wordmark-mark{position:relative;display:block;flex:0 0 27px;width:27px;height:22px}
.vf-portal-nav .vf-wordmark-mark i{position:absolute;top:10px;right:0;width:27px;height:2px;background:linear-gradient(90deg,transparent,#ddb86d,#ddb86d);transform-origin:right center}
.vf-portal-nav .vf-wordmark-mark i:first-child{transform:rotate(28deg)}
.vf-portal-nav .vf-wordmark-mark i:last-child{transform:rotate(-28deg)}
@media(max-width:700px){.vf-portal-nav{padding:7px}.vf-portal-nav .brand{min-width:auto;gap:8px;padding:0 12px;font-size:15px}.vf-portal-nav .vf-wordmark-mark{flex-basis:20px;width:20px}}
.vf-nav-character-option{position:relative;display:grid;gap:4px;width:100%;padding:10px 34px 10px 11px;border:1px solid rgba(233,192,104,.14);border-radius:10px;background:rgba(255,255,255,.025);color:#e8dcc0;font:inherit;text-align:left;cursor:pointer;transition:border-color .14s ease,background .14s ease,color .14s ease}
.vf-nav-character-option:hover,.vf-nav-character-option:focus-visible{outline:none;border-color:rgba(233,192,104,.7);background:rgba(233,192,104,.10);color:#fff7dd}
.vf-nav-character-option strong{overflow:hidden;text-overflow:ellipsis;font-size:11px;letter-spacing:.025em}
.vf-nav-character-option small{overflow:hidden;text-overflow:ellipsis;color:#9d9278;font-size:8px;letter-spacing:.055em;text-transform:uppercase}
.vf-nav-character-option.is-selected{border-color:rgba(52,211,153,.6);background:rgba(6,78,59,.32);color:#dffff0}
.vf-nav-character-option.is-selected::after{content:"✓";position:absolute;right:12px;top:50%;transform:translateY(-50%);color:#34d399;font-size:13px;font-weight:900}
.vf-nav-character-empty{padding:14px 12px;color:#a99d82;font-size:10px;line-height:1.45;text-align:center}
@media(max-width:700px){.vf-nav-character-trigger .vf-nav-character-kicker{display:none}.vf-nav-character-trigger{max-width:180px;padding:7px 8px 7px 10px}.vf-nav-character-menu{max-height:calc(100vh - 62px)}}


/* v59.52: a Vault may contain many characters, but exactly one is the active cross-tool character. */
.vf-active-character{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border:1px solid rgba(34,211,238,.55);border-radius:999px;background:rgba(8,145,178,.16);color:#67e8f9;font:800 8px/1 Arial,sans-serif;letter-spacing:.12em;vertical-align:middle}
.vf-button.active-character{border-color:rgba(34,211,238,.55)!important;background:rgba(8,145,178,.16)!important;color:#67e8f9!important;cursor:default!important;opacity:1!important}
.vf-legal-footer{position:relative;z-index:20;display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 20px;background:#07111d;color:#aeb9c5;border-top:1px solid rgba(216,173,79,.28);font:12px/1.4 Inter,system-ui,sans-serif}
.vf-legal-footer-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.vf-legal-footer a{color:#e8c96f;text-decoration:none}.vf-legal-footer a:hover,.vf-legal-footer a:focus-visible{text-decoration:underline}

/* Canonical public navigation: identical frame, spacing and wordmark across the site. */
body.vf-has-portal-nav{padding-top:70px}
.vf-portal-nav{position:fixed;z-index:60000;top:10px;right:12px;left:12px;min-height:50px;padding:0;border:1px solid rgba(226,188,111,.35);background:linear-gradient(90deg,rgba(3,8,13,.94),rgba(2,7,12,.78),rgba(3,8,13,.94));box-shadow:0 12px 35px rgba(0,0,0,.32),inset 0 1px rgba(255,237,196,.05);backdrop-filter:blur(14px);clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 10px,100% calc(100% - 10px),calc(100% - 10px) 100%,10px 100%,0 calc(100% - 10px),0 10px)}
.vf-portal-nav-track{align-self:stretch;gap:0;padding:0;border:0}
.vf-portal-nav a{min-height:48px;padding:0 15px;border:0;border-right:1px solid rgba(225,189,109,.11);border-radius:0;background:transparent;color:#e9dcc0;font-size:11px;letter-spacing:.07em;text-transform:uppercase}
.vf-portal-nav a:hover,.vf-portal-nav a.active{background:linear-gradient(180deg,rgba(225,189,109,.13),rgba(225,189,109,.025));color:#fff4d8;box-shadow:inset 0 -1px #ddb86d}
.vf-portal-nav .brand{min-width:240px;gap:14px;padding:0 22px;color:#f3ddb0;font:700 22px/1 Inter,"Segoe UI",Arial,sans-serif;letter-spacing:.08em;text-shadow:0 0 18px rgba(224,184,104,.2)}
.vf-portal-nav .vf-nav-account{min-width:76px;border-left:1px solid rgba(225,189,109,.11);background:linear-gradient(180deg,rgba(225,189,109,.12),rgba(225,189,109,.035));box-shadow:inset 0 0 0 1px rgba(225,189,109,.18)}
.vf-portal-nav .spacer{min-width:0;flex:1 0 10px}
.vf-nav-scroll{width:34px;height:48px;border:0;border-radius:0;background:rgba(7,17,26,.92);box-shadow:none}
@media(max-width:1320px){.vf-portal-nav .brand{min-width:205px;padding:0 17px;font-size:18px}.vf-portal-nav a{padding:0 11px;font-size:9px}}
@media(max-width:700px){body.vf-has-portal-nav{padding-top:66px}.vf-portal-nav{top:7px;right:7px;left:7px}.vf-portal-nav .brand{min-width:auto;padding:0 12px;font-size:15px}.vf-portal-nav a{min-height:46px}}
