:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;background:#080b14;color:#f6f7fb}*{box-sizing:border-box}html,body{margin:0;min-height:100%}a{color:inherit}.vn-site{background:radial-gradient(circle at 15% 5%,#29345f 0,transparent 35rem),#080b14}.vn-header{height:4rem;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1rem,4vw,4rem);border-bottom:1px solid #ffffff18;background:#080b14cc;backdrop-filter:blur(16px)}.vn-header nav{display:flex;gap:1.25rem}.vn-header a{text-decoration:none}.vn-brand{font-weight:800;letter-spacing:-.03em}.vn-landing{width:min(1120px,calc(100% - 2rem));margin:auto;padding:clamp(2rem,7vw,6rem) 0;display:grid;gap:3rem}.vn-intro{max-width:760px}.vn-kicker,.vnd-kicker{text-transform:uppercase;letter-spacing:.14em;color:#9da9d5;font-size:.78rem;font-weight:800}.vn-intro h1{font-size:clamp(2.4rem,7vw,5.5rem);line-height:.96;letter-spacing:-.06em;margin:.3em 0}.vn-intro p{font-size:clamp(1rem,2vw,1.3rem);color:#c4c9da;max-width:60ch}.vn-actions{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:1.5rem}.vn-button,.vn-controls button,.vn-start,.vn-error button,.vn-exit,.vn-choices button,.vn-game-menu button{border:1px solid #ffffff30;border-radius:.65rem;background:#171d31;color:#fff;padding:.7rem 1rem;font:600 .92rem inherit;text-decoration:none;cursor:pointer}.vn-button-primary,.vn-start{background:#7865ee;border-color:#a799ff}.vn-player-shell{position:relative;width:100%;aspect-ratio:16/9;max-height:100vh;overflow:hidden;background:#050812;box-shadow:0 2rem 5rem #0009}.vn-site .vn-player-shell{border:1px solid #ffffff1c;border-radius:1rem}.vn-player-shell canvas{width:100%;height:100%;display:block;touch-action:none;outline:none}.vn-start{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);z-index:8;font-size:1rem}.vn-status{position:absolute;z-index:7;top:.75rem;right:.75rem;padding:.25rem .5rem;border-radius:.3rem;background:#050812b8;color:#fffd;font-size:.78rem;pointer-events:none}.vn-dialogue{position:absolute;z-index:4;inset:auto 0 0;padding:1rem clamp(1rem,5vw,3rem) 3.1rem;background:linear-gradient(#080d1dcc,#050912f7 22%,#050912fa);border-top:1px solid #ffffff24;pointer-events:none}.vn-dialogue strong{display:block;color:#f0a9b6;font-size:clamp(.9rem,2vw,1.2rem)}.vn-dialogue p{margin:.35rem 0 0;font-size:clamp(.9rem,2.2vw,1.25rem);line-height:1.4}.vn-choices{position:absolute;z-index:6;inset:20% max(1rem,15%) auto;display:grid;gap:.65rem}.vn-choices[hidden],.vn-dialogue[hidden]{display:none}.vn-choices button{width:100%;background:#111a35ed;border-color:#b8aeff70;font-size:clamp(.85rem,2vw,1.1rem)}.vn-choices button:hover,.vn-choices button:focus-visible{background:#6854b8}.vn-controls{position:absolute;z-index:5;inset:auto 0 0;display:flex;justify-content:center;gap:.35rem;padding:.5rem;background:linear-gradient(transparent,#050812df)}.vn-controls button{padding:.45rem .7rem;background:#111625cc;font-size:.75rem}.vn-game-menu{width:min(30rem,calc(100% - 2rem));border:1px solid #ffffff30;border-radius:1rem;background:#0d1326f5;color:#fff;padding:1.25rem}.vn-game-menu::backdrop{background:#02040bb8}.vn-game-menu h2{margin-top:0}.vn-game-menu label{display:grid;grid-template-columns:5rem 1fr;align-items:center;gap:.75rem;margin:1rem 0}.vn-game-menu input{width:100%}.vn-menu-actions{display:flex;gap:.5rem;flex-wrap:wrap}.vn-error{position:absolute;z-index:10;inset:5%;overflow:auto;padding:1.25rem;border:1px solid #ff9eaa80;border-radius:.65rem;background:#241718f2;color:#ffe9eb}.vn-error pre{white-space:pre-wrap}.vn-error menu{display:flex;gap:.5rem;padding:0}.vn-exit{position:absolute;z-index:7;top:.65rem;left:.65rem;padding:.4rem .65rem;background:#050812b8;font-size:.75rem}.vn-play{width:100vw;height:100vh;overflow:hidden;background:#050812;display:grid;place-items:center}.vn-play .vn-player-shell{width:min(100vw,177.78vh);height:min(100vh,56.25vw)}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #fff;outline-offset:2px}@media(max-width:700px){.vn-header{height:auto;padding:1rem}.vn-header nav{gap:.75rem;font-size:.85rem}.vn-landing{padding:2rem 0}.vn-dialogue{padding:.6rem .8rem 2.7rem}.vn-dialogue p{margin-top:.15rem}.vn-choices{inset:12% .75rem auto}.vn-choices button{padding:.5rem .65rem}.vn-controls{overflow-x:auto;justify-content:flex-start;padding-bottom:max(.5rem,env(safe-area-inset-bottom))}.vn-controls button{white-space:nowrap}.vn-play .vn-player-shell{width:100vw;height:56.25vw}.vn-play{align-content:center}}
.vn-library{display:grid;gap:1.25rem}.vn-library h2{font-size:clamp(1.6rem,4vw,2.6rem);letter-spacing:-.04em;margin:0}.vn-library-note{color:#c4c9da;max-width:80ch;margin:0}.vn-mature-gate{border:1px solid #ff9eaa4d;border-radius:1rem;background:#1b1220e8;padding:1.25rem}.vn-mature-gate[hidden]{display:none}.vn-mature-gate h3{margin:0 0 .35rem;font-size:1.15rem}.vn-mature-gate p{margin:0;color:#e8cdd4;max-width:75ch}.vn-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(19rem,1fr))}.vn-cards[data-locked="1"],.vn-featured[data-locked="1"]{filter:blur(9px) saturate(.4);opacity:.5;pointer-events:none;user-select:none}.vn-card{display:grid;gap:.6rem;align-content:start;border:1px solid #ffffff1c;border-radius:1rem;background:#101528d9;padding:1.1rem}.vn-card h3{margin:0;font-size:1.2rem;letter-spacing:-.02em}.vn-card-hook{margin:0;color:#d5d9e8}.vn-card-stats{display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none}.vn-card-stats li{border:1px solid #ffffff1f;border-radius:.4rem;padding:.15rem .45rem;font-size:.72rem;color:#a9b2d0}.vn-card-tracked,.vn-card-flags{margin:0;font-size:.78rem;color:#9da9d5}.vn-card-warnings{font-size:.8rem;color:#d8b7bf}.vn-card-warnings summary{cursor:pointer;color:#f0a9b6}.vn-card-warnings ul{margin:.5rem 0 0;padding-left:1.1rem;display:grid;gap:.2rem}.vn-card-support{margin:.5rem 0 0}.vn-card-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.25rem}.vn-card-actions .vn-button{padding:.5rem .8rem;font-size:.82rem}.vn-notice{position:absolute;z-index:9;top:3rem;left:.65rem;width:min(26rem,calc(100% - 1.3rem));max-height:70%;overflow:auto;border:1px solid #ffffff2b;border-radius:.8rem;background:#0a0f20f2;padding:.9rem 1rem;font-size:.82rem;color:#d8dbe8}.vn-notice summary{cursor:pointer;font-weight:700;color:#f0a9b6}.vn-notice ul{margin:.6rem 0;padding-left:1.1rem;display:grid;gap:.2rem}.vn-notice-draft{color:#9da9d5}.vn-notice .vn-button{padding:.45rem .7rem;font-size:.78rem}

.vn-market-intro h1{font-size:clamp(2rem,5.5vw,4rem)}.vn-market-controls{display:flex;flex-wrap:wrap;gap:.65rem;align-items:end;padding:1rem;border:1px solid #ffffff1c;border-radius:1rem;background:#101528a8}.vn-field{display:grid;gap:.3rem;font-size:.78rem;color:#9da9d5;font-weight:700}.vn-field-search{flex:1 1 18rem;min-width:12rem}.vn-field input,.vn-field select{width:100%;padding:.55rem .7rem;border:1px solid #ffffff2b;border-radius:.55rem;background:#0b1020;color:#f6f7fb;font:400 .92rem inherit}.vn-market-controls .vn-button{padding:.55rem .9rem}.vn-market-status{margin:0;color:#c4c9da;font-size:.86rem;max-width:90ch}.vn-market-status strong{color:#f6f7fb}.vn-market-empty{color:#d8b7bf}.vn-featured{display:grid;gap:.5rem}.vn-featured h3{margin:0;font-size:1.15rem}.vn-featured-note{margin:0;color:#9da9d5;font-size:.8rem;max-width:80ch}.vn-featured-row{display:flex;gap:.75rem;overflow-x:auto;list-style:none;margin:.35rem 0 0;padding:0 0 .5rem;scroll-snap-type:x proximity}.vn-featured-card{flex:0 0 9.5rem;scroll-snap-align:start}.vn-featured-link{display:grid;gap:.35rem;text-decoration:none}.vn-featured-link strong{font-size:.9rem;letter-spacing:-.01em}.vn-featured-link small{color:#9da9d5;font-size:.72rem}.vn-cover{position:relative;display:grid;place-items:center;overflow:hidden;aspect-ratio:3/4;border-radius:.7rem;border:1px solid #ffffff1c;background:linear-gradient(160deg,hsl(var(--vn-hue,220) 45% 26%),hsl(calc(var(--vn-hue,220) + 40) 40% 12%));text-decoration:none}.vn-cover img{width:100%;height:100%;object-fit:cover;display:block}.vn-cover-text{padding:.75rem;font:800 clamp(.95rem,2.4vw,1.35rem)/1.15 inherit;letter-spacing:-.03em;text-align:center;text-wrap:balance;color:#fff;text-shadow:0 .12em .5em #0009}.vn-cover-flag{position:absolute;bottom:.4rem;left:.4rem;right:.4rem;text-align:center;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:#ffffffb0}.vn-cover-flag-inline{color:#9da9d5;font-size:.7rem}.vn-cover-small{aspect-ratio:3/4}.vn-cover-large{aspect-ratio:3/4;max-width:20rem}.vn-cover-portrait{aspect-ratio:4/5}.vn-cover-initial{font:800 1.6rem inherit;color:#fff9}.vn-poster-grid{grid-template-columns:repeat(auto-fill,minmax(15rem,1fr))}.vn-poster-card h3 a{text-decoration:none}.vn-poster-card h3 a:hover{text-decoration:underline}.vn-card-meta,.vn-card-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin:0}.vn-chip{border:1px solid #ffffff26;border-radius:999px;padding:.12rem .5rem;font-size:.7rem;color:#c4c9da;text-decoration:none;background:#ffffff0a}.vn-chip:hover{background:#ffffff1a}.vn-chip-tag{color:#a9b2d0}.vn-chip-period{border-color:#a799ff4d;color:#cfc7ff}.vn-pager{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.vn-pager-label{color:#9da9d5;font-size:.85rem}.vn-crumbs{display:flex;gap:.5rem;font-size:.82rem;color:#9da9d5}.vn-crumbs a{color:#c4c9da}.vn-listing-body{grid-template-columns:1fr}.vn-listing-card{gap:1.25rem;padding:clamp(1rem,3vw,1.75rem)}.vn-listing-head{display:grid;gap:1.25rem;grid-template-columns:minmax(0,15rem) minmax(0,1fr);align-items:start}.vn-listing-summary{display:grid;gap:.6rem;align-content:start}.vn-listing-summary h1{margin:0;font-size:clamp(1.6rem,4vw,2.6rem);letter-spacing:-.04em;line-height:1.05}.vn-listing-icon{border-radius:.5rem;border:1px solid #ffffff26}.vn-listing-tagline{margin:0;font-size:1.05rem;color:#d5d9e8}.vn-listing-plays{margin:0;font-size:.8rem;color:#9da9d5}.vn-listing-section{display:grid;gap:.5rem;border-top:1px solid #ffffff14;padding-top:1rem}.vn-listing-section h2{margin:0;font-size:1.05rem;letter-spacing:-.01em}.vn-listing-description{margin:0;color:#d5d9e8;max-width:80ch;white-space:pre-wrap}.vn-listing-warnings{margin:0;padding-left:1.1rem;display:grid;gap:.2rem;color:#d8b7bf;font-size:.88rem}.vn-cast{display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));list-style:none;margin:0;padding:0}.vn-cast-card{display:grid;gap:.3rem}.vn-cast-card strong{font-size:.88rem}.vn-cast-card small{color:#9da9d5;font-size:.74rem}@media(max-width:760px){.vn-listing-head{grid-template-columns:1fr}.vn-cover-large{max-width:14rem}.vn-market-controls{padding:.75rem}}

/* Clean play mode (share link, ?play=1). The controls stay in the DOM - and inside the
   element that goes fullscreen - so quick save, quick load and rollback keep working; they
   just fade out until the pointer or the keyboard asks for them. */
body.vn-clean .vn-exit,
body.vn-clean .vn-notice { display: none; }
body.vn-clean .vn-controls { opacity: .12; transition: opacity .15s; }
body.vn-clean .vn-controls:hover,
body.vn-clean .vn-controls:focus-within { opacity: 1; }
body.vn-clean-css .vn-player-shell {
  position: fixed;
  inset: 0;
  z-index: 40;
  max-width: none;
  max-height: none;
  aspect-ratio: auto;
  border-radius: 0;
}
.vn-clean-gate {
  position: absolute;
  inset: 0;
  z-index: 30;
  display: grid;
  align-content: center;
  justify-items: center;
  gap: 12px;
  padding: 24px;
  text-align: center;
  background: #050812f2;
}
.vn-clean-gate h1 { font-size: 20px; margin: 0; }
.vn-clean-gate p { max-width: 44ch; margin: 0; color: #b9c0d8; font-size: 13px; }
.vn-clean-gate button { padding: 10px 20px; font-size: 15px; }
.vn-clean-gate[hidden] { display: none; }
