/* THE DOWNLOADS PAGE, on top of home.css: its bar, buttons, type, palette and both shifts.
   The top stays night, like the home page's hero and the floor's top; the rest follows the
   shift. Sprites are drawn pixelated at whole or half steps of their own size. */

.dl-top{position:relative;isolation:isolate;color:#f2edff;padding:22px 0 64px;border-bottom:3px solid var(--mint);
  background:
    radial-gradient(2px 2px at 68% 14%,#cfc6ea 50%,transparent 51%),radial-gradient(2px 2px at 84% 30%,#cfc6ea 50%,transparent 51%),
    radial-gradient(3px 3px at 91% 12%,#5ef0b4 50%,transparent 51%),radial-gradient(3px 3px at 58% 36%,#b994ff 50%,transparent 51%),
    radial-gradient(70% 60% at 80% 100%,rgba(153,69,255,.22),transparent 70%),#0b0716;
  --text:#f2edff;--text-soft:#d4cbef;--text-faint:#a79dca;--line:#2d2049;--line-2:#5a4a86;--card:#140d26;--bg-2:#100a1f;--mint-text:#5ef0b4;--violet-text:#b994ff}
.dl-top .crumb{display:inline-flex;align-items:center;gap:8px;font:400 9px/1 var(--pixel);text-transform:uppercase;color:#c0b5dc;text-decoration:none;padding:10px 0}
.dl-top .crumb:hover{color:var(--mint)}
.dl-top h1{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(46px,6vw,84px);line-height:.92;letter-spacing:.01em;margin:14px 0 16px;color:#fff;text-shadow:4px 4px 0 #2a1650}
.dl-top h1 em{font-style:normal;color:var(--mint);text-shadow:4px 4px 0 #0a4a33}
.dl-top .lead{max-width:640px}

/* The extension: the crew on a strip of floor, then the button and what the file is. */
.dl-card{--accent:var(--mint);--s:.75;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--card);margin:34px 3px 3px;
  box-shadow:0 0 0 3px var(--accent),10px 10px 0 3px rgba(0,0,0,.55)}
/* The five cats inside, on a strip of floor under a night sky. Each is drawn at --s of its own
   size (its width is --w in the markup), a step of its 4 px grid. */
.crew{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:22px;padding:20px 16px 38px;min-height:250px;overflow:hidden;
  background:
    radial-gradient(3px 3px at 14% 16%,#cfc6ea 50%,transparent 51%),radial-gradient(3px 3px at 72% 10%,#cfc6ea 50%,transparent 51%),
    radial-gradient(3px 3px at 88% 34%,#14f195 50%,transparent 51%),radial-gradient(3px 3px at 30% 40%,#8b5cf6 50%,transparent 51%),
    radial-gradient(2px 2px at 52% 22%,#fff 50%,transparent 51%),radial-gradient(3px 3px at 8% 52%,#ff4fd8 50%,transparent 51%),
    radial-gradient(60% 60% at 50% 100%,rgba(20,241,149,.26),transparent 72%),#0b0716}
.crew::before{content:"";position:absolute;left:0;right:0;bottom:0;height:44px;border-top:3px solid var(--mint);
  background:url(floor-tile-256.png) 0 0/256px 256px repeat;image-rendering:pixelated}
.crew-cap{position:relative;z-index:1;margin:0;font:400 9px/1.7 var(--pixel);text-transform:uppercase;color:#a79dca}
.crew-row{display:flex;align-items:flex-end;justify-content:center}
.crew img{position:relative;z-index:1;display:block;image-rendering:pixelated;width:calc(var(--w) * var(--s) * 1px);height:auto;margin:0 -7px}
@media (min-width:901px) and (max-width:1150px){.dl-card{--s:.5}}
.dl-body{padding:28px 30px 26px;min-width:0}
.dl-name{font:400 10px/1.4 var(--pixel);text-transform:uppercase;color:var(--mint-text);margin:0 0 10px}
.dl-body h2{font-size:clamp(34px,3.6vw,50px);margin:0 0 18px}
.btn.big{min-height:64px;padding:18px 22px;font-size:15px;line-height:1.25;text-align:left;justify-content:flex-start;gap:14px;width:100%;max-width:560px}
.btn.big .arr{font-size:22px}
.btn.big small{display:block;margin-top:6px}
.btn .dl-label{display:flex;flex-direction:column}
.facts-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 18px;margin:22px 0 0;border-top:2px solid var(--line)}
.facts-row dt,.facts-row dd{margin:0;padding:10px 0;border-bottom:2px solid var(--line)}
.facts-row dt{font:400 8px/1.9 var(--pixel);text-transform:uppercase;color:var(--text-faint);padding-top:13px;white-space:nowrap}
.facts-row dd{color:var(--text);font-size:15px;min-width:0}
.sha{display:block;font:400 12.5px/1.5 var(--mono);color:var(--text);overflow-wrap:anywhere;word-break:break-all;user-select:all;background:none;border:0;padding:0}
.facts-row a{color:var(--mint-text)}
.dl-note{margin:18px 0 0;font-size:14.5px;color:var(--text-soft)}
.dl-note b{color:var(--text)}
@media (max-width:900px){
  .dl-card{grid-template-columns:minmax(0,1fr)}
  .crew{min-height:0;padding-top:26px}
  .dl-body{padding:22px 18px 22px}
}
@media (max-width:640px){.dl-card{--s:.5}}
@media (max-width:420px){.dl-card{--s:.42}.crew img{margin:0 -5px}}
@media (max-width:520px){
  .crew{padding-left:6px;padding-right:6px}
  .crew-cap{padding:0 10px}
  .facts-row{grid-template-columns:minmax(0,1fr)}
  .facts-row dt{border-bottom:0;padding-bottom:0}
  .facts-row dd{padding-top:4px}
  .btn.big{font-size:13.5px;padding:16px 16px}
}

/* The sections below the top follow the shift. */
.dl-sec{padding:84px 0;border-bottom:3px solid var(--line)}
.dl-sec.alt{background:var(--bg-2)}
@media (max-width:600px){.dl-sec{padding:58px 0}}

/* What's inside: one line per cat, its sprite at half size on a tile of floor. */
.inside{list-style:none;margin:0;padding:0;display:grid;gap:14px;max-width:900px}
.inside li{--accent:var(--mint);display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center;gap:0 22px;background:var(--card);box-shadow:0 0 0 2px var(--line-2);min-width:0}
:root[data-theme="light"] .inside li{box-shadow:0 0 0 2px var(--line)}
.inside .pad{position:relative;height:124px;display:flex;align-items:flex-end;justify-content:center;overflow:hidden;
  background:radial-gradient(70% 70% at 50% 100%,color-mix(in srgb,var(--accent) 34%,transparent),transparent 72%),#0b0716;box-shadow:inset -3px 0 0 var(--accent)}
.inside .pad::before{content:"";position:absolute;left:0;right:0;bottom:0;height:18px;border-top:3px solid var(--accent);background:url(floor-tile-256.png) 0 0/128px 128px repeat;image-rendering:pixelated}
.inside .pad img{position:relative;z-index:1;image-rendering:pixelated;height:auto;margin-bottom:8px}
.inside .what{padding:14px 18px 14px 0;min-width:0}
.inside h3{font:800 19px/1.25 var(--sans);color:var(--text);margin:0 0 4px}
.inside h3 span{font:400 9px/1.4 var(--pixel);text-transform:uppercase;color:var(--accent);margin-left:8px;vertical-align:2px}
:root[data-theme="light"] .inside h3 span{color:var(--text-soft)}
.inside p{margin:0;font-size:15px}
@media (max-width:520px){
  .inside li{grid-template-columns:84px minmax(0,1fr);gap:0 14px}
  .inside .pad{height:108px}
  .inside .pad img{width:calc(var(--w) * 0.375px)}
  .inside h3 span{display:block;margin:4px 0 0}
}

/* The install guide: six plain steps, big numbers. */
.guide{list-style:none;margin:0;padding:0;display:grid;gap:14px;counter-reset:g;max-width:900px}
.guide li{counter-increment:g;display:grid;grid-template-columns:56px minmax(0,1fr);gap:4px 18px;background:var(--card);padding:18px 20px;box-shadow:0 0 0 2px var(--line-2)}
:root[data-theme="light"] .guide li{box-shadow:0 0 0 2px var(--line)}
.guide li::before{content:counter(g);grid-row:span 2;width:48px;height:48px;display:grid;place-content:center;font:400 18px/1 var(--pixel);color:#04160e;background:var(--mint);clip-path:var(--corners);box-shadow:inset 0 -4px 0 rgba(0,0,0,.25)}
.guide h3{font:800 20px/1.3 var(--sans);color:var(--text);margin:10px 0 2px}
.guide p{margin:0;font-size:15px}
.guide code{font-size:.9em}
@media (max-width:520px){.guide li{grid-template-columns:44px minmax(0,1fr);gap:4px 14px;padding:16px 14px}.guide li::before{width:40px;height:40px;font-size:15px}.guide h3{font-size:18px;margin-top:6px}}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;margin-top:44px;max-width:1100px}
@media (max-width:900px){.pair{grid-template-columns:minmax(0,1fr)}}
.box{background:var(--card);padding:22px 24px;box-shadow:0 0 0 3px var(--accent,var(--line-2)),8px 8px 0 3px var(--shadow-ink);margin:3px;min-width:0}
.box h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:30px;line-height:1;color:var(--text);margin:0 0 14px}
.box ol{margin:0 0 14px;padding-left:22px;display:grid;gap:8px;color:var(--text-soft);font-size:15px}
.box p{font-size:15px}
.box p:last-child{margin-bottom:0}
.box .checked{font-size:13.5px;color:var(--text-faint);border-top:2px dashed var(--line);padding-top:12px}
@media (max-width:520px){.box{padding:20px 16px}}

/* Safety. */
.safe{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
@media (max-width:980px){.safe{grid-template-columns:minmax(0,1fr)}}
.safe > li{background:var(--card);padding:22px 22px 20px;box-shadow:0 0 0 2px var(--line-2);min-width:0}
:root[data-theme="light"] .safe > li{box-shadow:0 0 0 2px var(--line)}
.safe h3{font:800 20px/1.3 var(--sans);color:var(--text);margin:0 0 8px;display:flex;gap:10px;align-items:center}
.safe h3::before{content:"";width:10px;height:10px;flex:none;background:var(--mint)}
.safe p{font-size:15px}
.hashes{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.hashes li{background:none;box-shadow:none;padding:0;font-size:14px}
.hashes code{display:block;margin-top:2px;overflow-wrap:anywhere}
.store{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin-top:34px;padding:20px 24px;background:var(--card);box-shadow:0 0 0 3px var(--gold)}
.store p{margin:0;font-size:15.5px}
.store .tag{font:400 10px/1.4 var(--pixel);text-transform:uppercase;color:#241800;background:var(--gold);padding:8px 10px 7px;clip-path:var(--corners)}

/* The cats pack: all seven in a row, and the button. */
.pack{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:26px 48px;align-items:center}
@media (max-width:980px){.pack{grid-template-columns:minmax(0,1fr)}}
.roster{--s:.5;position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:center;row-gap:10px;padding:30px 12px 30px;overflow:hidden;margin:3px;
  background:radial-gradient(60% 70% at 50% 100%,rgba(153,69,255,.28),transparent 72%),#0b0716;box-shadow:0 0 0 3px var(--accent,var(--violet)),10px 10px 0 3px var(--shadow-ink)}
.roster::before{content:"";position:absolute;left:0;right:0;bottom:0;height:34px;border-top:3px solid var(--mint);background:url(floor-tile-256.png) 0 0/128px 128px repeat;image-rendering:pixelated}
.roster img{position:relative;z-index:1;image-rendering:pixelated;width:calc(var(--w) * var(--s) * 1px);height:auto;margin:0 -7px}
@media (max-width:560px){.roster{--s:.375}.roster img{margin:0 -4px}}
@media (max-width:420px){.roster{--s:.33}}
.pack .btn{margin:6px 0 4px}
.pack ul{margin:16px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.pack ul li{position:relative;padding-left:20px;color:var(--text-soft);font-size:15px}
.pack ul li::before{content:"";position:absolute;left:0;top:.55em;width:8px;height:8px;background:var(--mint)}
