/* Captain site v2 — careers: the homepage chrome and width, a full-height header without the spin, role cards, vacancy pages.
   Pages are generated by build.py from jobs/*.md; careers.js swaps them in place. */
.hero.plain{padding:96px 0 104px}
.hero.plain .lead{margin-top:14px}
.hero .meta{margin:22px 0 0;font-size:15px;color:var(--faint);letter-spacing:-.005em}
.hero .meta i{font-style:normal;margin:0 8px;opacity:.6}
.closed-banner{display:inline-block;margin:18px 0 0;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);font-size:13px}
.white .closed-banner{background:rgba(0,0,0,.05);color:var(--muted)}
#app{transition:opacity .22s ease,transform .22s ease}
#app.leaving{opacity:0;transform:translateY(8px)}

/* role cards: the vacancy illustration on the left, the facts on the right */
.job-cards{display:flex;flex-direction:column;gap:14px;margin-top:40px}
.job-card{display:grid;grid-template-columns:200px 1fr auto;align-items:center;gap:24px;padding:14px;border-radius:20px;background:var(--block);color:inherit;text-decoration:none;transition:transform .25s cubic-bezier(.2,.7,.2,1),background .25s}
a.job-card:hover{transform:translateY(-2px)}
.job-thumb{width:200px;height:138px;border-radius:12px;object-fit:cover;background:#ECECEE;display:block}
.job-body b{display:block;font-size:19px;font-weight:600;letter-spacing:-.015em}
.job-body small{display:block;margin-top:4px;font-size:13.5px;color:var(--muted)}
.job-body small i{font-style:normal;margin:0 7px;color:var(--faint)}
.job-body p{margin:10px 0 0;font-size:14.5px;line-height:1.45;color:var(--muted);max-width:420px}
.job-card .go{display:grid;place-items:center;width:34px;height:34px;margin-right:10px;border-radius:50%;background:var(--card);color:var(--ink);box-shadow:0 0 0 1px var(--ring);transition:background .25s,color .25s}
.job-card .go svg{width:14px;height:14px}
a.job-card:hover .go{background:var(--accent);color:var(--white)}
.job-card.closed .job-body b,.job-card.closed .job-body p{color:var(--muted)}
.job-card.closed .job-thumb{opacity:.55;filter:grayscale(1)}
.job-card .tag{margin-right:14px;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
@media (max-width:640px){.job-card{grid-template-columns:1fr;gap:12px}.job-thumb{width:100%;height:auto;aspect-ratio:1300/900}.job-card .go,.job-card .tag{justify-self:end;margin:0}}

/* vacancy */
.back{display:inline-flex;align-items:center;gap:8px;margin-bottom:26px;font-size:14px;color:rgba(255,255,255,.5);text-decoration:none}
.back svg{width:12px;height:12px;transform:rotate(180deg)}
.back:hover{color:var(--white)}
.white .back{color:var(--faint)}.white .back:hover{color:var(--ink)}
.job-figure{padding:0;border-top:0}
.job-figure + section{border-top:0}
.job-media{display:block;width:100%;aspect-ratio:1300/900;object-fit:cover;border-radius:18px;background:#ECECEE}
/* sections as on the original vacancy page: number and title on one line at text size, muted ledes, no bold, compact */
.job-figure{padding-bottom:56px}
.job-sec{padding:0 0 44px}
.job-sec:last-of-type{padding-bottom:128px}
.job-sec + .job-sec{border-top:0}
.job-sec h2{display:flex;gap:10px;align-items:baseline;margin:0 0 14px;font-size:16px;line-height:1.5;font-weight:600;letter-spacing:-.01em}
.job-sec h2 .num{color:var(--muted);font-weight:400;min-width:0}
/* vacancy text: one colour (ink), the homepage paragraph size (16/1.5), emphasis by weight only */
.prose{max-width:640px}
.prose p{margin:0 0 12px;font-size:16px;line-height:1.5;color:var(--ink);max-width:64ch}
.prose p b,.prose li b{font-weight:400}
.prose p.lede{color:var(--muted);margin-bottom:10px}
.prose a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.prose ul{list-style:none;margin:4px 0 12px;padding:0;font-size:16px;line-height:1.5;color:var(--ink)}
.prose li{position:relative;padding-left:18px;margin:0 0 8px;max-width:64ch}
.prose li::before{content:"—";position:absolute;left:0;color:var(--faint)}
/* the stack tree, as on the original vacancy page: monospace, branch glyphs, key column */
.tree{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.7;color:var(--ink);margin:2px 0 12px}
.tree-root{margin-bottom:3px}
.tree-row{display:flex;gap:8px;align-items:baseline;margin-bottom:1px}
.tree .br{color:var(--faint);flex:none}
.tree .k{color:var(--ink);flex:none;width:62px}
.tree .v{min-width:0;flex:1;word-break:break-word}
@media (max-width:560px){.tree{font-size:12px}}
.apply-row{margin-top:20px}
.prose .apply,.apply{display:inline-flex;align-items:center;padding:12px 18px;border:0;border-radius:999px;background:var(--ink);color:var(--white);font:500 15px/1 Inter,system-ui,sans-serif;letter-spacing:-.01em;text-decoration:none;cursor:pointer;transition:transform .2s,background .2s}
.apply:hover{background:var(--black)}
.apply:active{transform:scale(.98)}
.apply.is-closed{background:var(--fill);color:var(--muted);cursor:default}
.darkmode .apply{background:#F5F5F7;color:var(--black)}
.darkmode .apply.is-closed{background:var(--fill);color:var(--muted)}
.dw-hero{display:block;width:100%;aspect-ratio:1300/900;max-height:190px;object-fit:cover;border-radius:12px;margin-bottom:14px;background:#ECECEE}
