/* musica.studio - the coding projects box and the project pages it opens.
   Additive on style.css: same panels, same hard shadows, one borrowed accent.
   The violet is FM8's own, so code reads as its own room without a rebrand. */
:root{
  --code:#a98bff;
  --code-ink:#120a24;
  --code-line:#33285a;
}

/* ---------------- the box above the music ---------------- */
.projbox{
  background:linear-gradient(180deg, rgba(30,24,58,.95), rgba(18,15,36,.95));
  border:3px solid var(--code-line);
  box-shadow:7px 7px 0 var(--shadow);
  padding:18px 20px 20px;
}
.projbox-head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 14px; margin:0 0 16px; }
.projbox-head h2{
  font-family:var(--pixel); font-size:17px; letter-spacing:1px; color:var(--code);
  margin:0; font-weight:normal; text-transform:uppercase;
}
.projbox-head .count{ font-family:var(--mono); font-size:11px; color:var(--faint); letter-spacing:.06em; }

.bubbles{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:12px; }
.bubble{
  display:grid; grid-template-columns:52px 1fr; gap:14px; align-items:start;
  background:var(--bg); border:2px solid var(--code-line); padding:14px;
  transition:transform .08s steps(2), box-shadow .08s steps(2), border-color .12s;
}
a.bubble:hover{ transform:translate(2px,2px); box-shadow:3px 3px 0 var(--shadow); border-color:var(--code); }
.bubble img{ width:52px; height:52px; display:block; image-rendering:pixelated; }
.bubble-name{ font-size:17px; font-weight:600; line-height:1.2; margin:0 0 5px; color:var(--ink); }
.bubble-what{ margin:0 0 10px; font-size:13.5px; color:var(--muted); line-height:1.5; }
.bubble-foot{ display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.ver{
  font-family:var(--mono); font-size:10px; letter-spacing:.06em;
  color:var(--code-ink); background:var(--code); padding:3px 7px;
}
.bubble-go{ font-family:var(--mono); font-size:11px; color:var(--code); letter-spacing:.04em; }
.bubble.ghost{ border-style:dashed; opacity:.6; }
a.bubble.ghost:hover{ opacity:1; }
.bubble.ghost .bubble-name{ color:var(--muted); font-weight:500; }
.bubble-gh{ display:flex; justify-content:center; width:52px; padding-top:4px; color:var(--muted); }
.bubble-gh svg{ display:block; width:30px; height:auto; }
a.bubble.ghost:hover .bubble-gh{ color:var(--code); }

/* ---------------- the project page ---------------- */
.is-code .eyebrow{ border-color:var(--code-line); }
.is-code .eyebrow::before{ background:var(--code); }
.is-code .divider{ background:repeating-linear-gradient(90deg, var(--grey2) 0 14px, var(--code) 14px 28px); }
.is-code .panel{ border-color:var(--code-line); }
.is-code .panel a{ color:var(--code); }

.crumb{ font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.06em; margin:0 0 18px; }
.crumb a{ text-decoration:underline; text-underline-offset:2px; }
.crumb a:hover{ color:var(--code); }
.crumb .here{ color:var(--code); }

.proj-head{ display:flex; align-items:flex-start; gap:22px; }
.proj-icon{
  flex:0 0 84px; width:84px; border:3px solid var(--shadow); background:#0b0716;
  box-shadow:4px 4px 0 var(--shadow);
}
.proj-icon img{ display:block; width:100%; height:auto; image-rendering:pixelated; }
.proj-name{ font-family:var(--pixel); font-size:38px; letter-spacing:2px; line-height:1; margin:0 0 10px; }
.proj-tagline{ font-family:var(--mono); font-size:13px; color:var(--muted); letter-spacing:.04em; margin:0 0 8px; }
.proj-facts{
  font-family:var(--mono); font-size:11px; color:var(--code);
  letter-spacing:.08em; text-transform:uppercase; margin:0;
  display:flex; flex-wrap:wrap; align-items:center; gap:8px;
}
.proj-actions{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin:0 0 26px; }
.get{
  display:inline-block; cursor:pointer; appearance:none; -webkit-appearance:none;
  font-family:var(--pixel); font-size:14px; letter-spacing:1px;
  color:var(--code-ink); background:var(--code);
  padding:9px 13px; border:3px solid var(--shadow); box-shadow:4px 4px 0 var(--shadow);
  transition:transform .08s steps(2), box-shadow .08s steps(2);
}
.get:hover{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--shadow); }
/* Secondary actions beside DOWNLOAD: same hard shadow, outlined instead of filled. */
.btn{
  display:inline-flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); background:var(--panel);
  padding:9px 12px; border:3px solid var(--code-line); box-shadow:4px 4px 0 var(--shadow);
  transition:transform .08s steps(2), box-shadow .08s steps(2), border-color .12s, color .12s;
}
.btn:hover{ transform:translate(2px,2px); box-shadow:2px 2px 0 var(--shadow); border-color:var(--code); color:var(--code); }
.btn svg{ display:block; width:15px; height:15px; flex:0 0 15px; }

.story p{ font-size:15.5px; line-height:1.72; }
.story p:first-child{ color:var(--ink); }

.shot{ border:3px solid var(--code-line); box-shadow:7px 7px 0 var(--shadow); background:var(--bg); margin:0; }
.shot img{ display:block; width:100%; height:auto; }
.shot figcaption{
  font-family:var(--mono); font-size:11px; color:var(--muted); letter-spacing:.02em;
  border-top:3px solid var(--code-line); padding:8px 12px;
}
.features{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
.features li{
  display:grid; grid-template-columns:auto 1fr; gap:12px; align-items:baseline;
  background:var(--bg); border:2px solid var(--code-line); padding:11px 13px;
  font-size:14.5px; color:var(--muted);
}
.features b{ font-family:var(--pixel); font-size:14px; letter-spacing:1px; color:var(--code); white-space:nowrap; }

@media (max-width:560px){
  .bubble{ grid-template-columns:40px 1fr; gap:11px; }
  .bubble img{ width:40px; height:40px; }
  .bubble-gh{ width:40px; }
  .bubble-gh svg{ width:26px; }
  .features li{ grid-template-columns:1fr; gap:4px; }
  .proj-actions{ gap:12px; }
  .proj-head{ gap:14px; }
  .proj-icon{ flex-basis:56px; width:56px; }
  .proj-name{ font-size:28px; }
}

/* ---------------- discord ---------------- */
/* A small chip, sized so it never changes the masthead's height. */
.discord-chip{
  display:inline-flex; align-items:center; gap:6px; flex:0 0 auto;
  font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); background:var(--panel);
  padding:5px 8px; border:2px solid var(--line); box-shadow:2px 2px 0 var(--shadow);
  transition:border-color .12s, color .12s;
}
.discord-chip:hover{ border-color:#5865F2; color:#8b95f7; }
.discord-chip svg{ display:block; width:14px; height:14px; flex:0 0 14px; }
/* Parked in the masthead's own top padding, so the existing layout is untouched. */
header.mast{ position:relative; }
.mast-row .discord-chip{ position:absolute; top:16px; right:0; }
.is-code .discord-chip{ border-color:var(--code-line); }

.crumb-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; margin:0 0 18px; }
.crumb-row .crumb{ margin:0; }

.discord-panel p{ margin:0 0 16px; }
.discord-panel .discord-get{
  display:inline-flex; align-items:center; gap:9px;
  color:var(--code-ink);   /* .is-code .panel a would otherwise paint it out on its own background */
  text-decoration:none;
}
.is-code .panel a.discord-get, .is-code .panel a.discord-get:hover{ color:var(--code-ink); text-decoration:none; }
.discord-get svg{ display:block; width:18px; height:18px; flex:0 0 18px; }

@media (max-width:620px){
  .discord-chip span{ display:none; }        /* icon only, so it stays out of the way */
  .discord-chip{ padding:6px; }
  .mast-row .discord-chip{ top:10px; }
  .discord-get{ width:100%; justify-content:center; text-align:center; font-size:12px; }
}
