:root{
  --bg:#0b0e13;
  --panel:#11161f;
  --grid:#1a2130;
  --grid-strong:#243149;
  --accent:#4fd1c5;
  --accent-2:#90cdf4;
  --text:#e6edf3;
  --muted:#9aa6b2;
  --cell:56px; /* grid cell size */
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, Cantarell, Noto Sans, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color:var(--text);
  background:linear-gradient(180deg, #0b0e13 0%, #0d1016 100%);
}

.wrap{width:min(1100px, 92vw); margin:0 auto}

.site-header{
  position:sticky; top:0; z-index:3;
  background:rgba(11,14,19,.8); backdrop-filter:saturate(140%) blur(6px);
  border-bottom:1px solid #131a26;
  padding:18px 0 10px;
}
.logo{margin:0; font-weight:800; letter-spacing:.5px}
.tag{margin:.25rem 0 0; color:var(--muted)}
.scroll-hint{position:absolute; right:16px; bottom:8px; color:var(--accent-2); text-decoration:none}

.factory-section{padding:34px 0 28px}

.factory{
  position:relative;
  width:calc(var(--cell) * 12);
  height:calc(var(--cell) * 8);
  margin:16px auto 4px;
  background:
    linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0/ var(--cell) var(--cell),
    linear-gradient(0deg, var(--grid) 1px, transparent 1px) 0 0/ var(--cell) var(--cell),
    linear-gradient(90deg, var(--grid-strong) 1px, transparent 1px) 0 0/ calc(var(--cell) * 4) calc(var(--cell) * 4),
    linear-gradient(0deg, var(--grid-strong) 1px, transparent 1px) 0 0/ calc(var(--cell) * 4) calc(var(--cell) * 4),
    #0e141f;
  border:1px solid #1b2535;
  border-radius:14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.35), inset 0 0 0 2px rgba(79,209,197,.04);
  overflow:hidden;
}

.building{
  --w:2; /* width in grid cells */
  --h:2; /* height in grid cells */
  position:absolute;
  left:calc(var(--gx) * var(--cell));
  top:calc(var(--gy) * var(--cell));
  width:calc(var(--w) * var(--cell));
  height:calc(var(--h) * var(--cell));
  background:linear-gradient(180deg, #1a2332, #151d2a);
  border:1px solid #263248;
  border-radius:10px;
  display:flex; align-items:flex-end; justify-content:center;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 6px 16px rgba(0,0,0,.35);
}
.building::before{
  content:""; position:absolute; inset:6px; border-radius:7px; background: rgba(79,209,197,.07);
}
.building .label{position:relative; z-index:1; font-size:.85rem; color:#c7d2de; margin:6px; opacity:.9}

/* item = moving rectangle */
.item{
  position:absolute;
  width:calc(var(--cell) * .6);
  height:calc(var(--cell) * .4);
  background:linear-gradient(180deg, #49c5b6, #2aa39a);
  border:1px solid #2aa39a;
  border-radius:6px;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  transform: translate(-50%, -50%);
}
.item.is-iron{ background:linear-gradient(180deg, #98a2b3, #6b7280); border-color:#6b7280 }
.item.is-copper{ background:linear-gradient(180deg, #f6ad55, #dd6b20); border-color:#dd6b20 }

.cta-section{min-height:60vh; display:flex; align-items:center}
.cta{color:var(--muted); font-size:1.1rem; text-align:center}
.spacer{height:30vh}

.site-footer{
  background:var(--panel);
  border-top:1px solid #1b2535;
  padding:38px 0 60px;
}
.site-footer h2{margin:0 0 .35rem}
.site-footer p{color:var(--muted)}
.socials{display:flex; gap:14px; margin:16px 0 8px; flex-wrap:wrap}
.social{
  display:inline-flex; align-items:center; gap:10px;
  border:1px solid #263248; padding:10px 14px; border-radius:10px;
  text-decoration:none; color:var(--text); background:#0e141f;
  transition:transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.social:hover{transform:translateY(-2px); border-color:#385078; box-shadow:0 6px 16px rgba(0,0,0,.35)}
.social svg{width:18px; height:18px; fill:currentColor}
.social.instagram{color:#ff4aa2}
.social.facebook{color:#8ab4f8}
.social.itch{color:#ff6b6b}

.visually-hidden{position:absolute !important; height:1px; width:1px; overflow:hidden; clip:rect(1px, 1px, 1px, 1px); white-space:nowrap}

.qr-fixed{
  position:fixed;
  bottom:30px;
  right:30px;
  width:180px;
  height:auto;
  z-index:50;
  border-radius:8px;
  background:#0e141f;
  padding:6px;
  border:1px solid #263248;
  box-shadow:0 8px 20px rgba(0,0,0,.35), inset 0 0 0 2px rgba(79,209,197,.05);
}

@media (max-width: 680px){
  :root{ --cell:46px }
  .factory{ width:calc(var(--cell) * 12); height:calc(var(--cell) * 8) }
  .qr-fixed{ width:84px; top:10px; right:10px }
}
