/* Void 2.0: the illustrated release, in the portal's shared type and palette. */
.void-two { --v2-header-offset:calc(var(--vs-nav-height) + 1px); color-scheme:dark; overflow-x:visible; }
.void-two .skip-link { z-index:200; }
.void-two > [data-voidscape-nav] { position:sticky; top:0; z-index:100; }
.void-two .vs-nav-play { color:#211624; }
.v2-story { width:min(1160px,calc(100% - 64px)); margin-inline:auto; padding:20px 0 40px; }
.v2-story :is(section,[id]) { scroll-margin-top:calc(var(--v2-header-offset) + 74px); }
.v2-story p { line-height:1.65; }
.v2-story strong { color:var(--text); font-weight:600; }
.v2-story h2 { color:var(--text); font:400 clamp(29px,3vw,40px)/1.15 var(--display); text-wrap:balance; }
.v2-story h3 { color:var(--gold-hi); font:600 19px/1.4 var(--body); text-wrap:balance; }
.v2-story .back-link { margin-bottom:8px; }
.v2-hero { display:grid; grid-template-columns:1fr 1.25fr; align-items:center; gap:40px; padding:14px 0 36px; }
.v2-hero > * { min-width:0; }
.v2-hero h1 { margin:0 0 18px; color:var(--gold-hi); font:400 clamp(48px,5.5vw,76px)/1.05 var(--display); }
.v2-deck { max-width:34em; color:var(--text); font-size:19px; margin-bottom:16px; }
.v2-get { color:var(--muted); font-size:14px; }

/* The category row scrolls inside its own width, below the 72px / 64px header. */
.v2-nav { position:sticky; top:var(--v2-header-offset); z-index:90; background:rgba(11,8,18,.97); border-bottom:1px solid var(--article-rule); }
.v2-nav-scroll { display:flex; width:min(1224px,100%); margin:auto; padding:0 20px; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:none; scroll-snap-type:x proximity; }
.v2-nav-scroll::-webkit-scrollbar { display:none; }
.v2-nav a { display:inline-flex; align-items:center; justify-content:center; flex:0 0 auto; min-height:48px; padding:0 11px; color:var(--muted); font-size:12px; font-weight:600; white-space:nowrap; text-decoration:none; border-bottom:2px solid transparent; scroll-snap-align:start; }
.v2-nav a:hover, .v2-nav a[aria-current="location"] { color:var(--gold-hi); border-bottom-color:var(--gold-hi); background:rgba(226,192,130,.04); }
.v2-nav a:focus-visible { outline-offset:-4px; }
.v2-overview { padding:26px 0 40px; border-top:1px solid var(--article-rule); }
.v2-overview h2 { margin-bottom:22px; }
.v2-tiles { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.v2-tile { min-width:0; display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--article-rule); border-radius:8px; background:var(--void-2); text-decoration:none; }
.v2-tile:hover { border-color:var(--purple-hi); }
.v2-tile > img { display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; }
.v2-tile-copy { display:grid; gap:6px; padding:13px 15px 16px; }
.v2-tile-copy strong { color:var(--gold-hi); font-size:16px; }
.v2-tile-copy > span { font-size:13px; line-height:1.5; color:var(--muted); }

.v2-part { display:grid; gap:32px; padding:38px 0 44px; border-top:1px solid var(--article-rule); min-width:0; }
.v2-change { display:grid; gap:20px 36px; min-width:0; }
.v2-with-media { grid-template-columns:minmax(0,1fr) minmax(0,1.18fr); align-items:start; }
.v2-copy, .v2-media { display:grid; gap:14px; min-width:0; align-content:start; }
.v2-copy > p, .v2-intro, .v2-list { max-width:62ch; color:#c9bdd8; }
.v2-note { font-size:13px; color:var(--muted); }
.v2-list { padding-left:20px; display:grid; gap:10px; line-height:1.65; }
.v2-list li::marker { color:var(--purple-hi); }
.v2-shot { margin:0; min-width:0; border:1px solid var(--article-rule); border-radius:8px; overflow:hidden; background:#100c19; }
.v2-shot a { display:block; }
.v2-shot img, .v2-shot video { display:block; width:100%; height:auto; }
.v2-shot a:focus-visible { outline-offset:-4px; }
.v2-shot figcaption, .v2-caption { padding:9px 12px; color:var(--muted); font-size:12px; line-height:1.5; }
.v2-loop figcaption { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.v2-loop figcaption > span { min-width:0; }
/* A static poster and a Play link remain available without JavaScript. */
.v2-loop-media { position:relative; aspect-ratio:960/540; }
.v2-loop-media video { display:none; }
.v2-loop.v2-enhanced .v2-loop-media video { display:block; position:absolute; inset:0; width:100%; height:100%; }
.v2-loop-media .v2-poster { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:1; pointer-events:none; }
.v2-loop.is-playing .v2-poster { opacity:0; }
.v2-loop noscript { flex:none; }
.v2-loop noscript .v2-play { display:inline-flex; align-items:center; justify-content:center; text-decoration:none; }
.v2-play { flex:none; min-width:58px; min-height:44px; padding:6px 10px; border:1px solid var(--article-rule); border-radius:6px; background:var(--void-2); color:var(--gold-hi); font:600 12px var(--body); cursor:pointer; }
.v2-play:hover { border-color:var(--gold-hi); }
.v2-play:focus-visible { outline:2px solid var(--gold-hi); outline-offset:2px; }
.v2-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:12px; min-width:0; }
.v2-pair > .v2-caption { grid-column:1 / -1; padding:0; }
.v2-tag { font-size:11px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.v2-pair > figure:nth-child(2) .v2-tag { color:var(--gold-hi); }

/* Without enhancement both comparison pictures remain side by side. */
.v2-slider { --split:50%; }
.v2-comparison { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); position:relative; align-items:start; background:var(--void); touch-action:pan-y; }
.v2-comparison .v2-label { position:absolute; top:9px; z-index:2; padding:3px 7px; border:1px solid var(--article-rule); border-radius:4px; background:rgba(11,8,18,.9); font-size:10px; letter-spacing:.07em; text-transform:uppercase; pointer-events:none; }
.v2-before-label { left:9px; color:var(--text); }
.v2-after-label { right:9px; color:var(--gold-hi); }
.v2-handle, .v2-range { display:none; }
.v2-enhanced .v2-comparison { display:block; cursor:ew-resize; user-select:none; }
.v2-enhanced .v2-after { position:absolute; inset:0; width:100%; height:100%; object-fit:contain; background:var(--void); clip-path:inset(0 0 0 var(--split)); }
.v2-enhanced .v2-handle { display:block; position:absolute; inset:0 auto 0 var(--split); width:2px; transform:translateX(-50%); background:var(--gold-hi); pointer-events:none; }
.v2-handle::after { content:'↔'; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:38px; height:38px; display:grid; place-items:center; border:1px solid var(--gold-hi); border-radius:50%; background:var(--void-2); color:var(--gold-hi); font:22px var(--body); box-shadow:0 2px 12px #0008; }
.v2-enhanced .v2-range { display:block; position:absolute; width:1px; height:1px; padding:0; border:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.v2-slider:focus-within .v2-handle::after { outline:3px solid var(--text); outline-offset:3px; }
.v2-slider:focus-within { outline:2px solid var(--gold-hi); outline-offset:3px; }

.v2-items { grid-column:1 / -1; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.v2-item { display:grid; grid-template-columns:96px minmax(0,1fr); align-items:center; gap:13px; min-width:0; padding:12px; border:1px solid var(--article-rule); border-radius:8px; background:var(--void-2); }
.v2-icon { display:grid; place-items:center; min-height:80px; border-radius:5px; background:var(--void); }
.v2-icon img { image-rendering:pixelated; object-fit:contain; }
.v2-item h4 { color:var(--gold-hi); font:600 14px/1.4 var(--body); margin-bottom:5px; }
.v2-item p { color:var(--muted); font-size:12px; }
.v2-items.v2-mask-cards { grid-row:2; grid-template-columns:repeat(4,minmax(0,1fr)); }
.v2-mask-card { grid-template-columns:minmax(0,1fr); align-content:start; }
.v2-mask-card > img { display:block; width:256px; max-width:100%; height:auto; margin-inline:auto; border-radius:5px; background:var(--void); image-rendering:pixelated; }
.v2-table-wrap { min-width:0; border:1px solid var(--article-rule); border-radius:8px; overflow:hidden; }
.v2-table { width:100%; border-collapse:collapse; color:#c9bdd8; font-size:13px; line-height:1.55; }
.v2-table th, .v2-table td { padding:10px 12px; text-align:left; vertical-align:top; overflow-wrap:break-word; }
.v2-table th { color:var(--text); background:var(--void-2); font-weight:600; }
.v2-table td { border-top:1px solid var(--article-rule); }
.v2-table tr:nth-child(even) { background:rgba(178,140,242,.045); }
.v2-herb-icon { width:48px; height:32px; object-fit:contain; image-rendering:pixelated; vertical-align:middle; margin-right:6px; }
.v2-region { min-width:0; }
.v2-region > p { max-width:62ch; margin:8px 0 20px; color:#c9bdd8; }
.v2-region-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:start; }
.v2-fix-media { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start; }
.v2-provenance { margin:20px 0 0; max-width:80ch; color:var(--muted); font-size:12px; }

.v2-lightbox { color:var(--text); background:var(--void); border:1px solid var(--article-rule); border-radius:8px; padding:20px; width:fit-content; max-width:calc(100vw - 32px); max-height:calc(100dvh - 32px); margin:auto; }
.v2-lightbox::backdrop { background:rgba(11,8,18,.94); }
.v2-lightbox form { display:flex; justify-content:flex-end; margin-bottom:12px; }
.v2-lightbox button { background:var(--void-2); color:var(--text); border:1px solid var(--purple-hi); border-radius:6px; min-height:44px; padding:8px 18px; font:600 14px var(--body); cursor:pointer; }
.v2-lightbox button:focus-visible { outline:2px solid var(--gold-hi); outline-offset:3px; }
.v2-lightbox img { max-width:100%; max-height:calc(100dvh - 180px); width:auto; height:auto; display:block; margin:auto; object-fit:contain; }
.v2-lightbox p { font-size:14px; line-height:1.6; margin:16px 0 0; max-width:80ch; }
/* Several clips for one change sit in a row under its text. */
.v2-row-media { grid-template-columns:minmax(0,1fr); }
.v2-row-media .v2-copy { max-width:68ch; }
.v2-row-media .v2-media { grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); align-items:start; }
.v2-row-media.v2-grid-2 .v2-media { grid-template-columns:repeat(2,minmax(0,1fr)); }
.v2-compare { grid-column:1 / -1; max-width:760px; }
.v2-compare caption { padding:10px 12px; color:var(--text); background:var(--void-2); font:600 14px/1.4 var(--body); text-align:left; }
.v2-item.v2-item-text { grid-template-columns:minmax(0,1fr); }
/* A recipe: what goes in, and what comes out. */
.v2-recipe { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; margin:0; padding:12px 14px; border:1px solid var(--article-rule); border-radius:8px; background:var(--void-2); }
.v2-ing { display:grid; justify-items:center; gap:2px; min-width:64px; text-align:center; }
.v2-ing img { width:72px; height:48px; image-rendering:pixelated; }
.v2-ing b { color:var(--gold-hi); font-size:13px; line-height:1.2; min-height:1.2em; }
.v2-ing span { color:var(--muted); font-size:11px; line-height:1.3; }
.v2-op { color:var(--purple-hi); font-size:20px; font-weight:600; }

@media (max-width:1024px) {
  .v2-hero { gap:24px; }
  .v2-change { column-gap:24px; }
  .v2-item { grid-template-columns:minmax(0,1fr); align-content:start; }
  .v2-icon { justify-self:start; width:96px; }
}
@media (max-width:767px) {
  .v2-story { width:calc(100% - 32px); padding-top:12px; }
  .v2-hero { grid-template-columns:minmax(0,1fr); gap:22px; padding-bottom:28px; }
  .v2-hero h1 { font-size:clamp(44px,13vw,64px); margin-bottom:12px; }
  .v2-deck { font-size:18px; }
  .v2-nav-scroll { padding-inline:6px; }
  .v2-nav a { font-size:12px; }
  .v2-tiles { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .v2-tile-copy { padding:10px 12px 13px; }
  .v2-tile-copy strong { font-size:15px; }
  .v2-tile-copy > span { font-size:12px; }
  .v2-part { gap:28px; padding:30px 0 34px; }
  .v2-with-media, .v2-pair, .v2-region-grid, .v2-fix-media { grid-template-columns:minmax(0,1fr); }
  .v2-items { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .v2-items.v2-mask-cards { grid-template-columns:minmax(0,1fr); }
  .v2-item.v2-mask-card { grid-template-columns:128px minmax(0,1fr); }
  .v2-mask-card > img { width:128px; }
  .v2-row-media.v2-grid-2 .v2-media { grid-template-columns:minmax(0,1fr); }
  .v2-lightbox { padding:12px; }
}
@media (max-width:520px) {
  .void-two { --v2-header-offset:calc(var(--vs-nav-height) + 9px); }
}
@media (max-width:479px) {
  .v2-table { table-layout:fixed; font-size:12px; }
  .v2-table th, .v2-table td { padding:9px 8px; }
  .v2-herb-icon { display:block; margin-bottom:3px; }
}
@media (prefers-reduced-motion:reduce) {
  html:has(.void-two) { scroll-behavior:auto; }
  .void-two *, .void-two *::before, .void-two *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
