/* ── Store page: a product page laid out like a Steam store page ───── */
.store{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:92px 16px 70px}

/* the key art behind the top of the page, fading into black */
.store__backdrop{position:absolute;top:0;left:0;right:0;height:900px;z-index:0;pointer-events:none;overflow:hidden}
.store__backdrop::before{content:"";position:absolute;inset:-24px;
  background:url(works/kb-loadscreen.jpg) center 35%/cover no-repeat;
  filter:blur(3px) saturate(.85);opacity:.5}
.store__backdrop::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.74) 45%,#000 100%)}

/* ── Title row ──────────────────────────────────────────────────── */
.store__crumbs{display:flex;align-items:center;gap:10px;margin-bottom:8px;
  font:600 12.5px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--dim)}
.store__crumbs a{transition:color .2s}
.store__crumbs a:hover{color:var(--txt)}
.store__titlebar{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:18px}
.store__title{font:700 clamp(34px,5.2vw,52px)/1.05 var(--head);letter-spacing:.05em;text-shadow:0 2px 18px rgba(0,0,0,.6)}
.store__hub{font:600 13px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--txt);
  padding:9px 16px;border:1px solid #3a3a42;background:rgba(0,0,0,.45);
  clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px));
  transition:border-color .2s}
.store__hub:hover{border-color:var(--red)}

.store__top{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}

/* ── Screenshot viewer ──────────────────────────────────────────── */
.gal{min-width:0}
.gal__stage{position:relative;aspect-ratio:16/9;background:#050506;border:1px solid var(--line);overflow:hidden;outline:none}
.gal__stage:focus-visible{border-color:var(--red)}
.gal__img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:zoom-in;transition:opacity .18s ease}
.gal__img.is-fading{opacity:.12}
.gal__nav{position:absolute;top:50%;z-index:2;display:none;width:46px;height:72px;margin-top:-36px;padding:0;border:0;
  background:rgba(0,0,0,.55);color:#fff;font:500 34px/72px var(--head);cursor:pointer;
  opacity:0;transition:opacity .2s,background .2s}
.gal--js .gal__nav{display:block}
.gal__stage:hover .gal__nav,.gal__nav:focus-visible{opacity:1}
.gal__nav:hover{background:var(--red)}
.gal__nav--prev{left:0}
.gal__nav--next{right:0}
.gal__count{position:absolute;right:10px;bottom:8px;z-index:2;display:none;padding:2px 9px;
  font:600 12px var(--body);letter-spacing:.18em;color:#d6dadf;background:rgba(0,0,0,.6)}
.gal--js .gal__count{display:block}
@media (hover:none){.gal__nav{opacity:.85}}

.gal__strip{position:relative;display:flex;gap:8px;overflow-x:auto;padding:10px 0 12px;
  scrollbar-width:thin;scrollbar-color:var(--red) #050506}
.gal__strip::-webkit-scrollbar{height:8px}
.gal__thumb{position:relative;flex:none;width:128px;aspect-ratio:16/9;background:#050506;outline:none}
.gal__thumb img{display:block;width:100%;height:100%;object-fit:cover;opacity:.5;transition:opacity .2s}
.gal__thumb::after{content:"";position:absolute;inset:0;border:2px solid transparent;transition:border-color .2s}
.gal__thumb:hover img,.gal__thumb:focus-visible img{opacity:.9}
.gal__thumb:focus-visible::after{border-color:#7a1519}
.gal__thumb.is-active img{opacity:1}
.gal__thumb.is-active::after{border-color:var(--red)}

/* ── At a glance (beside the viewer) ────────────────────────────── */
.glance{background:rgba(11,11,14,.86);border:1px solid var(--line);padding-bottom:18px}
.glance__capsule{display:block;width:100%;height:auto;border-bottom:1px solid var(--line)}
.glance__desc{padding:15px 18px 0;color:#c6ccd2;font-size:16.5px;line-height:1.5}
.glance__meta{display:grid;gap:9px;margin:0;padding:14px 18px 0}
.glance__meta div{display:grid;grid-template-columns:92px 1fr;gap:12px;align-items:baseline}
.glance__meta dt{font:600 11.5px var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.glance__meta dd{margin:0;color:var(--txt);font-size:15.5px;line-height:1.35}
.glance__meta a{color:var(--red-hot);border-bottom:1px solid rgba(232,20,28,.4)}
.glance__meta a:hover{border-bottom-color:var(--red-hot)}
.glance__tags{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:15px 18px 0;list-style:none}
.glance__tags li{padding:2px 9px;font:600 12.5px var(--body);letter-spacing:.05em;color:#c6ccd2;
  background:#16161b;border:1px solid var(--line)}

/* ── Body: description and sidebar ──────────────────────────────── */
.store__body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:24px 36px;margin-top:26px;align-items:start}
.store__main{min-width:0}
.store__side{position:sticky;top:78px;display:grid;gap:16px}

.box{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:0 0 14px;padding:18px 20px;
  background:linear-gradient(100deg,rgba(232,20,28,.12),rgba(11,11,14,.92) 38%);border:1px solid var(--line)}
.box--addon{background:rgba(11,11,14,.92)}
.box__text{flex:1 1 260px;min-width:0}
.box h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font:700 21px var(--head);letter-spacing:.05em}
.box p{margin:4px 0 0;color:var(--dim);font-size:16.5px}
.box p.box__eyebrow{margin:0 0 2px;font:600 11.5px var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--red-hot)}
.box__thumb{flex:none;width:132px;height:auto;border:1px solid var(--line)}

.store__sec{margin:44px 0}
.store__h2{display:flex;align-items:center;margin-bottom:20px;
  font:700 clamp(19px,3vw,26px) var(--head);letter-spacing:.16em;text-transform:uppercase}
.store__h2 .tick{width:20px;height:11px;margin-right:14px}

.feats{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.feat{padding:16px 18px 15px;background:var(--panel);border:1px solid var(--line);
  clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}
.feat b{display:flex;align-items:center;gap:11px;font:700 17.5px var(--head);letter-spacing:.04em;color:var(--txt)}
.feat b::before{content:"";flex:none;width:12px;height:7px;background:var(--red);transform:skewX(-24deg)}
.feat span{display:block;margin-top:7px;color:#b9bfc6;font-size:16px;line-height:1.45}
.feat--wide{grid-column:1 / -1;background:linear-gradient(100deg,rgba(232,20,28,.1),var(--panel) 45%)}

/* the guard's size by grandeur level (an <ol> inside .manual__sec, so manual.css's numbered steps are undone) */
.manual__sec ol.ladder{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:6px;max-width:none;margin:4px 0 18px;padding:0}
.manual__sec ol.ladder li{margin:0;padding:9px 2px 8px;min-height:0;text-align:center;background:var(--panel);border:1px solid var(--line)}
.manual__sec ol.ladder li::before{content:none}
.ladder i{display:block;font:600 10.5px var(--body);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.ladder b{display:block;margin-top:2px;font:700 20px var(--head);color:var(--red-hot)}

.reqs{display:grid;grid-template-columns:1fr 1fr;gap:10px 28px;padding:18px 20px;background:var(--panel);border:1px solid var(--line)}
.reqs h3{margin:0 0 6px;font:600 12.5px var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--red-hot)}
.reqs ul{margin:0;padding:0;list-style:none}
.reqs li{padding:8px 0;border-bottom:1px solid var(--line);color:#c6ccd2;font-size:16px;line-height:1.4}
.reqs li:last-child{border-bottom:0}
.reqs li b{display:block;margin-bottom:1px;font:600 12px var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

.side-card{padding:16px 16px 14px;background:rgba(11,11,14,.92);border:1px solid var(--line)}
.side-card h2{margin:0 0 10px;font:600 12.5px var(--body);letter-spacing:.24em;text-transform:uppercase;color:var(--dim)}
.side-feats{display:grid;gap:4px;margin:0;padding:0;list-style:none}
.side-feats li{display:flex;align-items:center;gap:12px;padding:9px 10px;background:#111116;color:var(--txt);font-size:16px;line-height:1.3}
.side-feats svg{flex:none;width:22px;height:22px;color:#c6ccd2}
.side-links a{display:flex;justify-content:space-between;align-items:center;padding:10px 2px;border-bottom:1px solid var(--line);
  font:600 13.5px var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);transition:color .2s}
.side-links a:last-child{border-bottom:0}
.side-links a:hover{color:var(--txt)}
.side-links a span{color:var(--red)}

/* ── Full-screen viewer, built on manual.css's .lightbox ──────────── */
.lightbox--gal{cursor:default}
.lb__nav,.lb__close{position:absolute;z-index:2;padding:0;border:0;background:rgba(20,20,24,.7);color:#fff;cursor:pointer;transition:background .2s}
.lb__nav{top:50%;width:54px;height:84px;margin-top:-42px;font:500 40px/84px var(--head)}
.lb__nav--prev{left:12px}
.lb__nav--next{right:12px}
.lb__close{top:14px;right:14px;width:44px;height:44px;font:500 28px/44px var(--head)}
.lb__nav:hover,.lb__close:hover{background:var(--red)}
.lb__count{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);padding:3px 10px;
  font:600 13px var(--body);letter-spacing:.2em;color:#cfd3d8;background:rgba(0,0,0,.6)}

/* ── Narrower screens ───────────────────────────────────────────── */
@media (max-width:1020px){
  .store__top,.store__body{grid-template-columns:minmax(0,1fr)}
  .store__side{position:static;grid-template-columns:1fr 1fr}
  .glance{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);padding-bottom:16px}
  .glance__capsule{grid-column:1;grid-row:1 / span 4;height:100%;object-fit:cover;border-bottom:0;border-right:1px solid var(--line)}
}
@media (max-width:640px){
  .glance{display:block}
  .glance__capsule{height:auto;border-right:0;border-bottom:1px solid var(--line)}
  .store__side{grid-template-columns:1fr}
  .feats,.reqs{grid-template-columns:1fr}
  .manual__sec ol.ladder{grid-template-columns:repeat(5,minmax(0,1fr))}
  .gal__thumb{width:96px}
  .box__thumb{width:104px}
  .lb__nav{width:40px;height:64px;margin-top:-32px;font-size:30px;line-height:64px}
  .lb__nav--prev{left:4px}
  .lb__nav--next{right:4px}
}
@media (prefers-reduced-motion: reduce){
  .gal__img,.gal__thumb img,.gal__nav{transition:none}
}
