/* CREW on top of the shared agency layer (agency.css). Only additions and CREW-specific pieces. */
:root { --font-mono: "JetBrains Mono", "JetBrains Mono Fallback", ui-monospace, Menlo, Consolas, monospace; }
html { overflow-y: scroll; scrollbar-gutter: stable; }
#view:focus { outline: none; }
.hide { display: none !important; }

/* background: the dot-matrix field */
.sky-dots { position: absolute; inset: 0; background: radial-gradient(circle, rgba(236, 233, 223, .16) 1px, transparent 1.5px) 0 0 / 7px 7px; -webkit-mask-image: radial-gradient(ellipse 70% 60% at 30% 25%, #000, transparent 75%); mask-image: radial-gradient(ellipse 70% 60% at 30% 25%, #000, transparent 75%); }
.progress { position: fixed; z-index: 70; top: 0; left: 0; height: 1px; width: 100%; background: var(--ink); transform: scaleX(0); transform-origin: left; }

/* logo */
.nav-logo { display: inline-flex; align-items: center; gap: 10px; }
.crew-logo { display: inline-flex; }
.crew-logo svg { width: 26px; height: auto; filter: var(--glow); }
.nav-links a.on { color: var(--ink); }

/* reveal: a quiet rise, nothing more */
[data-fade] { opacity: 0; transform: translateY(14px); transition: opacity .6s ease, transform .7s cubic-bezier(.16, 1, .3, 1); transition-delay: calc(var(--i, 0) * 50ms); }
[data-fade].is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { [data-fade] { opacity: 1; transform: none; transition: none; } }

/* shared bits (from MACHINE) */
.note { font: 12px/1.6 var(--mono); color: var(--muted); margin: var(--s4) 0 0; max-width: 62ch; }
.tag { font: 500 10px var(--mono); letter-spacing: .14em; text-transform: uppercase; padding: 3px 6px; border: 1px solid var(--line-2); color: var(--muted); white-space: nowrap; align-self: center; }
.tag.on { color: var(--good); border-color: rgba(201, 245, 163, .4); }
.empty-box { border: 1px dashed var(--line-2); padding: var(--s7) var(--s5); text-align: center; color: var(--ink-2); display: grid; gap: var(--s4); justify-items: center; }
.status2 { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s5); }
.status2.one { grid-template-columns: 1fr; margin-top: var(--s4); }
.status2 > div { border: 1px solid var(--line-2); background: var(--bg-2); }
.status2 h3 { margin: 0; padding: 12px var(--s4); border-bottom: 1px solid var(--line); font: 700 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.status2 ul { margin: 0; padding: 0; }
.status2 li { list-style: none; display: flex; justify-content: space-between; gap: var(--s4); padding: 12px var(--s4); border-bottom: 1px solid var(--line); font-size: 14px; color: var(--ink-2); }
.status2 li:last-child { border: 0; }
.status-line { font: 13px/1.6 var(--mono); color: var(--ink-2); border: 1px solid var(--line-2); padding: 12px var(--s4); margin-top: var(--s3); }
.status-line.err { color: var(--bad); border-color: rgba(255, 107, 107, .4); }
.status-line.ok { color: var(--good); border-color: rgba(201, 245, 163, .4); }
.notice { margin-bottom: var(--s5); }
.ca { display: flex; align-items: center; gap: var(--s3); font: 13px var(--mono); color: var(--ink-2); flex-wrap: wrap; }
.ca span { word-break: break-all; min-width: 0; }
.toasts { position: fixed; right: 16px; bottom: 16px; z-index: 200; display: grid; gap: 8px; max-width: min(380px, calc(100vw - 32px)); }
.toast { padding: 12px 14px; background: var(--bg-3); border: 1px solid var(--line-2); font: 13px/1.5 var(--mono); color: var(--ink); animation: tin .3s ease; }
.toast.err { border-color: rgba(255, 107, 107, .5); color: var(--bad); }
.toast.out { opacity: 0; transition: opacity .3s; }
@keyframes tin { from { opacity: 0; transform: translateY(8px); } }
.mono { font-family: var(--mono); }

/* home: agent cards get their colour on the header and icon */
.hc { color: inherit; transition: border-color .2s, background .2s; }
a.hc:hover { border-color: var(--c, var(--ink)); }
.hc header b { display: inline-flex; align-items: center; gap: 8px; }
.hc-ico svg { display: block; filter: drop-shadow(0 0 4px var(--c, transparent)); }
.hc .hc-art { color: var(--ink-2); }
a.hc:hover .hc-art { color: var(--ink); }
.hc-brief { border-style: dashed; }
.hm-caps { scroll-margin-top: calc(var(--nav-h) + 20px); }
#crew { scroll-margin-top: calc(var(--nav-h) + 10px); }
.crew-prov { margin-top: var(--s5); }
.crew-prov span { border-color: var(--line-2); }
.crew-prov svg { filter: drop-shadow(0 0 4px var(--c)); }
.hm-card h2 { margin: 6px 0 0; }

/* coin cards: the crew row */
.cc-media img { width: 100%; height: 100%; object-fit: cover; }
.cc-crew { display: flex; gap: 4px; margin-top: var(--s3); }
.cc-crew i { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid var(--line); color: var(--muted); opacity: .35; }
.cc-crew i.on { color: var(--c); border-color: color-mix(in srgb, var(--c) 45%, transparent); opacity: 1; }
.cc-crew svg { width: 12px; height: 12px; }

/* launch: the crew picker (many, not one) */
.crew-picker .picker-acts { display: flex; gap: 6px; }
.crew-picker .picker-body { height: auto; min-height: 336px; }
.crew-picker .logos { grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); }
.crew-picker .logo { cursor: pointer; color: var(--muted); transition: background .15s, color .15s; }
.crew-picker .logo svg { opacity: .35; transition: opacity .15s, filter .15s; }
.crew-picker .logo.on { color: var(--ink); background: color-mix(in srgb, var(--c) 9%, transparent); }
.crew-picker .logo.on svg { opacity: 1; filter: drop-shadow(0 0 5px var(--c)); }
.crew-picker .logo.picked { box-shadow: inset 0 0 0 1px var(--ink); }
.logo-check { position: absolute; top: 7px; left: 7px; width: 10px; height: 10px; border: 1px solid var(--line-2); }
.logo.on .logo-check { background: var(--c); border-color: var(--c); box-shadow: 0 0 6px var(--c); }
.models-head { display: flex; justify-content: space-between; align-items: center; gap: var(--s3); padding: 12px var(--s4); border-bottom: 1px solid var(--line); }
.models-head b { font-size: 14px; }
.models-blurb { margin: 0; padding: 12px var(--s4); font-size: 13px; color: var(--ink-2); border-bottom: 1px solid var(--line); }
.model-ico svg { display: block; }
.crew-picker .model { cursor: default; }
.models-sample { padding: 12px var(--s4); font: 12px/1.55 var(--mono); color: var(--ink-2); }
.models-sample .label { display: block; margin-bottom: 6px; }
.crew-stack { display: flex; flex-wrap: wrap; gap: 2px; width: 26px; }
.crew-stack svg { width: 12px; height: 12px; }
.picker-sel-ico { display: grid; place-items: center; }
.lf2-art { background: #050505; aspect-ratio: 1; overflow: hidden; display: grid; place-items: center; }
.lf2-tag { margin: 6px 0 0; font-size: 13px; color: var(--ink-2); min-height: 1.4em; }
.badge-crew { display: flex; gap: 4px; margin: var(--s3) 0; }
.badge-crew i { width: 22px; height: 22px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--c) 50%, transparent); color: var(--c); transition: opacity .2s; }
.badge-crew i.off { opacity: .18; border-color: var(--line); color: var(--muted); }
.badge-crew svg { width: 12px; height: 12px; }
.lf2-img { display: flex; gap: var(--s4); margin: var(--s3) 0; font-size: 13px; }
.up { cursor: pointer; background: none; border-top: 0; border-left: 0; border-right: 0; font: inherit; color: var(--ink); padding: 0 0 1px; }
.lf2-side .fine { margin-top: var(--s3); }
.lf2-go { margin-top: var(--s3); }
.chips .chip svg { display: inline-block; vertical-align: -1px; }

/* coins directory */
.pg-head { display: block; margin-bottom: var(--s5); }
.pg-stats { margin: 0 0 var(--s5); }
.dir-bar { display: grid; gap: var(--s4); margin-bottom: var(--s5); }
.dir-bar .search { max-width: 460px; }

/* how */
.how-steps { margin: var(--s6) 0; }
.how-item { display: grid; grid-template-columns: 60px minmax(0, 1fr); gap: var(--s4); padding: var(--s5) 0; border-bottom: 1px solid var(--line); list-style: none; }
.how-item b { display: block; font: 700 18px/1.3 var(--sans); margin-bottom: 6px; }
.how-item p { margin: 0; color: var(--ink-2); max-width: 70ch; }

/* crew page: the coin page, with a crew instead of one mind */
.cpx { padding-top: var(--s6); padding-bottom: var(--s9); }
.cpx-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--s5); align-items: end; padding-bottom: var(--s5); border-bottom: 1px solid var(--line); margin-bottom: var(--s5); }
.cpx-id { display: flex; gap: var(--s4); align-items: center; min-width: 0; }
.cpx-img { width: 76px; height: 76px; flex: none; border: 1px solid var(--line-2); background: var(--bg-3); overflow: hidden; }
.cpx-img img { width: 100%; height: 100%; object-fit: cover; }
.cpx-id .eyebrow { display: flex; gap: 8px; align-items: center; }
.cpx-id .eyebrow a:hover { color: var(--ink); }
.dash-title { margin: 4px 0 10px; font: 800 clamp(28px, 3.6vw, 46px)/1 var(--mono); letter-spacing: -.045em; }
.cpx-links { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; font-size: 13px; }
.cpx-stats { display: grid; grid-template-columns: repeat(5, auto); gap: 1px; margin: 0; background: var(--line); border: 1px solid var(--line); }
.cpx-stats > div { background: var(--bg-2); padding: 10px 16px; }
.cpx-stats dt { font: 500 10.5px var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.cpx-stats dd { margin: 6px 0 0; font: 700 18px var(--mono); }
.pill { display: inline-flex; align-items: center; gap: 6px; font: 500 11px var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-2); }
.pill i { width: 7px; height: 7px; background: var(--muted); }
.pill.live i { background: var(--good); box-shadow: 0 0 8px rgba(201, 245, 163, .6); }
.cpx-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr) 320px; gap: var(--s3); align-items: start; }
.cpx-main, .cpx-side { display: grid; gap: var(--s3); min-width: 0; }
.cpx-grid .panel { padding: 0; }
.cpx-grid .panel-head { padding: 12px var(--s4); margin: 0; border-bottom: 1px solid var(--line); font: 700 12px var(--mono); letter-spacing: .12em; text-transform: uppercase; }
.cpx-grid .panel-head span { font-weight: 500; color: var(--muted); letter-spacing: .1em; font-size: 10.5px; }
.rail { display: grid; }
.rail button { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; gap: 10px; align-items: center; text-align: left; padding: 12px var(--s4); border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--ink-2); cursor: pointer; }
.rail button:last-child { border-bottom: 0; }
.rail button:hover { background: rgba(236, 233, 223, .04); color: var(--ink); }
.rail button.on { background: var(--bg-3); color: var(--ink); box-shadow: inset 2px 0 0 var(--c); }
.rail i { width: 8px; height: 8px; background: var(--c); }
.rail span { font-size: 14px; font-weight: 600; display: block; }
.rail small { display: block; font: 11px var(--mono); color: var(--muted); }
.rail .n { font: 11px var(--mono); color: var(--muted); }
.composer { padding: var(--s5) !important; position: relative; }
.composer h2 { margin: 0; font: 800 clamp(22px, 2.4vw, 30px)/1.1 var(--mono); letter-spacing: -.03em; }
.composer > p { margin: 6px 0 var(--s4); color: var(--ink-2); font-size: 14px; }
.acts { display: flex; gap: 6px; flex-wrap: wrap; }
.acts .chip.on { background: var(--c); border-color: var(--c); color: #050505; }
.composer textarea { width: 100%; margin-top: var(--s3); min-height: 70px; resize: vertical; }
.run { display: flex; gap: var(--s3); align-items: center; flex-wrap: wrap; margin-top: var(--s4); }
.run small { font: 12px var(--mono); color: var(--muted); }
.lock { text-align: center; padding: var(--s5) 0 var(--s3); }
.lock h3 { margin: 0; font: 700 18px var(--mono); }
.lock p { margin: 8px auto var(--s4); max-width: 46ch; color: var(--ink-2); font-size: 14px; }
.feed { display: grid; }
.feed:empty::before { content: "No work yet. Pick an agent and run an action."; padding: var(--s5) var(--s4); font: 12px var(--mono); color: var(--muted); }
.task { padding: var(--s4); border-bottom: 1px solid var(--line); box-shadow: inset 2px 0 0 var(--c); animation: tin .35s ease; }
.task:last-child { border-bottom: 0; }
.task-h { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 10px; font: 12px var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.task-h b { color: var(--ink); }
.task-h time { margin-left: auto; text-transform: none; }
.src { font: 500 10px var(--mono); letter-spacing: .12em; padding: 2px 6px; border: 1px solid var(--line-2); }
.src.model { color: var(--good); border-color: rgba(201, 245, 163, .4); }
.src.live { color: #00b8d9; border-color: rgba(0, 184, 217, .4); }
.item { padding: 10px 12px; background: var(--bg); border: 1px solid var(--line); white-space: pre-wrap; font-size: 14px; line-height: 1.55; }
.item-a { display: flex; gap: var(--s4); margin: 6px 0 10px; font: 11px var(--mono); text-transform: uppercase; letter-spacing: .1em; }
.item-a button, .item-a a { background: none; border: 0; padding: 0; color: var(--muted); cursor: pointer; font: inherit; }
.item-a button:hover, .item-a a:hover { color: var(--ink); }
.news a { display: block; padding: 12px var(--s4); border-bottom: 1px solid var(--line); font-size: 13.5px; line-height: 1.45; color: var(--ink-2); }
.news a:last-child { border-bottom: 0; }
.news a:hover { color: var(--ink); background: rgba(236, 233, 223, .03); }
.news small { display: block; margin-top: 4px; font: 11px var(--mono); color: var(--muted); }
.news .note, .cpx-side .note { padding: 0 var(--s4) var(--s4); margin: 0; }
.brief { display: grid; }
.brief > div { padding: 10px var(--s4); border-bottom: 1px solid var(--line); }
.brief > div:last-child { border-bottom: 0; }
.brief p { margin: 2px 0 0; font-size: 13.5px; color: var(--ink-2); }
.onchain { list-style: none; margin: 0; padding: 0; }
.onchain li { display: flex; justify-content: space-between; gap: var(--s3); padding: 10px var(--s4); border-bottom: 1px solid var(--line); font-size: 13px; color: var(--ink-2); }
.skel { min-height: 90px; background: linear-gradient(90deg, var(--bg-2), var(--bg-3), var(--bg-2)); background-size: 200% 100%; animation: sk 1.4s linear infinite; }
@keyframes sk { to { background-position: -200% 0; } }

@media (max-width: 1100px) { .cpx-grid { grid-template-columns: 240px minmax(0, 1fr); } .cpx-side { grid-column: 1 / -1; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .cpx-hero { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .status2 { grid-template-columns: 1fr; } .cpx-grid { grid-template-columns: 1fr; } .cpx-stats { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 600px) {
  .hm-h1 { font-size: 8.4vw; }
  .hm-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hm-cta .btn { flex: 1 1 100%; }
  .lh2 h1 { font-size: 8vw; }
  .cpx-stats { grid-template-columns: repeat(2, 1fr); }
}
.hw-row.hw-empty{grid-template-columns:minmax(0,1fr);padding:var(--s5)}
@media (max-width:900px){.crew-picker .models{max-height:none}.crew-picker .picker-body{min-height:0}}
