/* ---- audience pages, shared base (copied into each solutions/<audience>/page.css so every page stays self contained) ---- */
.au-hero { min-height: 100svh; }
.au-hero::before { background: linear-gradient(to top, rgba(5,8,15,.95) 0%, rgba(5,8,15,.72) 42%, rgba(5,8,15,.3) 78%, rgba(5,8,15,.55)), var(--grade); }
@media (max-width: 860px) { .au-hero::before { background: linear-gradient(to top, rgba(5,8,15,.96) 0%, rgba(5,8,15,.8) 55%, rgba(5,8,15,.45) 85%, rgba(5,8,15,.6)), var(--grade); } }
.au-hero .h-xl { font-size: clamp(42px, 6.4vw, 98px); max-width: 15ch; }
.au-hero .sub { max-width: 48ch; }
.au-hero .ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.au-crumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 22px; font: 500 12px/1 "JetBrains Mono", monospace; letter-spacing: .08em; color: var(--muted); }
.au-crumb a { color: var(--text); border-bottom: 1px solid var(--line); padding-bottom: 2px; }
.au-crumb a:hover { border-color: var(--text); }

.au-sec { position: relative; padding: clamp(70px, 11vh, 130px) var(--pad); color: var(--page-text); background: var(--page); }
.au-sec.alt { background: var(--frame-glow); }
.au-in { max-width: 1400px; margin: 0 auto; }
.au-head { max-width: 780px; margin-bottom: clamp(26px, 4vh, 44px); }
.au-head .kicker, .au-sec .kicker { color: var(--page-muted); }
.au-head .kicker .num, .au-sec .kicker .num { color: var(--page-text); border-color: var(--page-line); }
.au-h { margin: 0; font-weight: 700; font-size: clamp(32px, 4vw, 60px); line-height: 1.02; letter-spacing: -0.04em; }
.au-sub { margin: 18px 0 0; max-width: 54ch; font-size: clamp(16px, 1.25vw, 19px); color: var(--page-muted); }
.au-note { margin: 16px 0 0; font: 400 12px/1.55 "JetBrains Mono", monospace; color: var(--page-faint); max-width: 90ch; }
.au-sec .btn-solid { background: var(--page-text); color: var(--page); }
.au-sec .btn-line, .au-line { background: transparent; border: 1px solid var(--page-line); color: var(--page-text); }
.au-sec .btn-line:hover { border-color: var(--page-text); }
.au-ctas { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 26px; }
.au-list { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 10px; max-width: 54ch; }
.au-list li { position: relative; padding: 14px 16px 14px 44px; border-radius: 14px; font-size: 15px; line-height: 1.45; color: var(--page-muted); background: var(--page-glass); box-shadow: 0 0 0 1px var(--page-line); }
.au-list li b { color: var(--page-text); }
.au-list li::before { content: ""; position: absolute; left: 16px; top: 19px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--accent); }
.au-tag { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border-radius: 999px; font: 500 11px/1 "JetBrains Mono", monospace; letter-spacing: .1em; text-transform: uppercase; }
.au-soon { color: #9A6A00; background: rgba(245,196,81,.16); box-shadow: 0 0 0 1px rgba(245,196,81,.45); }
html[data-theme="dark"] .au-soon { color: #F5C451; background: rgba(245,196,81,.12); }
.au-soon::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }

/* closing band extras */
.pg-close .au-sub { color: var(--muted); margin-left: auto; margin-right: auto; }
.pg-close .au-ctas { justify-content: center; }
.au-doors { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; margin: 28px 0 0; font-size: 14px; }
.au-doors a { color: var(--text); opacity: .95; text-shadow: 0 1px 10px rgba(5,8,15,.7); border-bottom: 1px solid var(--line); padding-bottom: 3px; }
.au-doors a:hover { opacity: 1; }
/* P1: 44 px tap areas around the small door links, the look unchanged */
.au-doors a { position: relative; }
.au-doors a::after { content: ""; position: absolute; inset: -10px -4px; }
@media (max-width: 860px) { .au-doors { gap: 16px 20px; } }
.pg-faq .au-sub { color: var(--muted); }

/* fine print */
.au-fine { margin: 0; padding: 20px var(--pad) 28px; background: var(--page); color: var(--page-faint); font-size: 12.5px; line-height: 1.6; }
.au-fine p { max-width: 1100px; margin: 0 auto 6px; }

@media (max-width: 860px) {
  .au-hero .h-xl { font-size: clamp(38px, 11vw, 54px); }
  .au-hero .chips { flex-wrap: nowrap; gap: 6px; margin-top: 22px; }
  .au-hero .chips li { min-width: 0; flex: 1 1 0; padding: 10px 10px; }
  .au-hero .chips b { font-size: 14px; }
  .au-hero .chips span { font-size: 12px; line-height: 1.3; }
  .au-hero .ctas .btn { flex: 1 1 auto; }
  .au-sec { padding: 64px var(--pad); }
  .au-h { font-size: clamp(30px, 8.4vw, 40px); }
}

/* ---- institutions: the record card in the hero, the committee answers, the audit trail explorer ---- */
.in-hero > img { filter: saturate(.85); }
.in-hero-in { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(260px, .6fr); gap: clamp(28px, 4vw, 70px); align-items: end; }
.in-receipt { align-self: end; margin-bottom: 8px; padding: 18px 18px 10px; border-radius: 20px; color: var(--text); background: rgba(6,10,20,.58); border: 1px solid var(--line); backdrop-filter: blur(18px) saturate(140%); -webkit-backdrop-filter: blur(18px) saturate(140%); box-shadow: 0 40px 90px -40px rgba(0,0,0,.7); }
.in-receipt-k { display: flex; justify-content: space-between; margin: 0 0 10px; font: 500 11px/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.in-receipt ol { list-style: none; margin: 0; padding: 0; }
.in-receipt li { display: grid; grid-template-columns: 18px 1fr; column-gap: 10px; padding: 9px 0; border-top: 1px solid rgba(214,226,255,.08); opacity: 0; transform: translateX(10px); animation: inTick .6s var(--ease) forwards; animation-delay: calc(.5s + var(--k) * .22s); }
.in-receipt li::before { content: ""; grid-row: 1 / 3; width: 14px; height: 14px; margin-top: 2px; border-radius: 50%; border: 1.5px solid var(--gain); background: radial-gradient(circle, var(--gain) 0 3px, transparent 3.5px); }
.in-receipt li b { font-size: 14px; }
.in-receipt li span { font: 400 11.5px/1.4 "JetBrains Mono", monospace; color: var(--muted); }
@keyframes inTick { to { opacity: 1; transform: none; } }

/* committee answers */
.in-qa { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; border-radius: 26px; overflow: hidden; background: var(--page-line); box-shadow: 0 0 0 1px var(--page-line), 0 40px 90px -60px rgba(5,8,15,.45); }
.in-q { margin: 0; padding: clamp(22px, 2.6vw, 38px); background: var(--page-2); }
.in-q h3 { margin: 0; font: 600 13px/1.4 "JetBrains Mono", monospace; letter-spacing: .02em; color: var(--accent); }
html[data-theme="light"] .in-q h3 { color: #2457A6; }
.in-q p { margin: 12px 0 0; font-size: clamp(16px, 1.25vw, 19px); line-height: 1.5; color: var(--page-text); }

/* audit trail explorer: always a dark terminal */
.tr-app { border-radius: 28px; padding: 1px; background: conic-gradient(from 210deg at 50% 50%, rgba(127,178,255,.55), rgba(61,220,151,.35), rgba(255,255,255,.12), rgba(127,178,255,.55)); box-shadow: 0 60px 140px -60px rgba(5,8,15,.7); }
.tr-app > * { background: #060A14; color: #EAF0FA; }
.tr-bar { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 16px; border-radius: 27px 27px 0 0; border-bottom: 1px solid rgba(214,226,255,.08); }
.tr-strats { display: flex; flex-wrap: wrap; gap: 6px; }
.tr-strats button, .tr-play { min-height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(214,226,255,.16); background: rgba(214,226,255,.04); color: rgba(226,233,246,.8); font: 600 13.5px/1 Inter, sans-serif; cursor: pointer; transition: background .25s, color .25s, border-color .25s; }
.tr-strats button[aria-checked="true"] { background: #F2F5FB; color: #05080F; border-color: #F2F5FB; }
.tr-strats button:hover, .tr-play:hover { border-color: rgba(214,226,255,.4); }
.tr-play { display: inline-flex; align-items: center; gap: 9px; }
.tr-play-i { width: 0; height: 0; border-left: 9px solid #3DDC97; border-top: 6px solid transparent; border-bottom: 6px solid transparent; }
.tr-play[aria-pressed="true"] .tr-play-i { width: 10px; height: 12px; border: 0; border-left: 3px solid #3DDC97; border-right: 3px solid #3DDC97; }
.tr-body { display: grid; grid-template-columns: minmax(240px, .8fr) 1.6fr; min-height: 470px; }
.tr-steps { list-style: none; margin: 0; padding: 14px; display: grid; align-content: start; gap: 2px; border-right: 1px solid rgba(214,226,255,.08); counter-reset: st; }
.tr-steps button { position: relative; display: grid; grid-template-columns: 26px 1fr; gap: 10px; align-items: center; width: 100%; padding: 11px 12px; border: 0; border-radius: 12px; background: transparent; color: rgba(226,233,246,.55); text-align: left; font: 600 14px/1.3 Inter, sans-serif; cursor: pointer; transition: background .3s, color .3s; }
.tr-steps button i { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; font: 600 11px/1 "JetBrains Mono", monospace; font-style: normal; border: 1px solid rgba(214,226,255,.2); }
.tr-steps button small { display: block; margin-top: 2px; font: 400 11px/1.3 "JetBrains Mono", monospace; color: rgba(226,233,246,.42); }
.tr-steps button.done i { border-color: rgba(61,220,151,.6); color: #3DDC97; }
.tr-steps button[aria-selected="true"] { background: rgba(127,178,255,.1); color: #F2F5FB; box-shadow: inset 0 0 0 1px rgba(127,178,255,.3); }
.tr-steps button[aria-selected="true"] i { background: #7FB2FF; border-color: #7FB2FF; color: #05080F; }
.tr-steps li:not(:last-child) button::after { content: ""; position: absolute; left: 24px; top: 38px; width: 1px; height: 14px; background: rgba(214,226,255,.14); }
.tr-rec { position: relative; padding: clamp(18px, 2.4vw, 32px); border-radius: 0 0 27px 0; outline: none; overflow: hidden; }
.tr-rec:focus-visible { box-shadow: inset 0 0 0 2px #7FB2FF; }
.tr-rec-top { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; font: 500 11px/1 "JetBrains Mono", monospace; letter-spacing: .14em; text-transform: uppercase; color: rgba(226,233,246,.5); }
.tr-rec-top em { font-style: normal; color: #3DDC97; }
.tr-rec-top em.s { color: #F5C451; }
.tr-rec h3 { margin: 14px 0 0; font-size: clamp(22px, 2.2vw, 32px); letter-spacing: -0.03em; line-height: 1.1; }
.tr-rec > p { margin: 8px 0 0; max-width: 60ch; color: rgba(226,233,246,.7); font-size: 15px; }
.tr-kv { display: grid; grid-template-columns: minmax(120px, 30%) 1fr; margin: 18px 0 0; border-top: 1px solid rgba(214,226,255,.08); }
.tr-kv dt, .tr-kv dd { margin: 0; padding: 10px 0; border-bottom: 1px solid rgba(214,226,255,.08); font: 400 13px/1.45 "JetBrains Mono", monospace; }
.tr-kv dt { color: rgba(226,233,246,.5); padding-right: 12px; }
.tr-kv dd { color: #EAF0FA; overflow-wrap: anywhere; }
.tr-kv dd .s { margin-left: 8px; padding: 2px 6px; border-radius: 6px; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #F5C451; background: rgba(245,196,81,.1); }
.tr-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
.tr-chips span { padding: 6px 10px; border-radius: 99px; font: 500 12px "JetBrains Mono", monospace; border: 1px solid rgba(214,226,255,.14); color: rgba(226,233,246,.8); opacity: 0; transform: translateY(6px); animation: inTick .5s var(--ease) forwards; animation-delay: calc(var(--k, 0) * 35ms); }
.tr-chips span.in { border-color: rgba(61,220,151,.5); color: #3DDC97; }
.tr-chips span.out { border-color: rgba(255,123,123,.45); color: #FF9B9B; text-decoration: line-through; }
.tr-chips-k { margin: 16px 0 0; font: 500 11px/1 "JetBrains Mono", monospace; letter-spacing: .12em; text-transform: uppercase; color: rgba(226,233,246,.5); }
.tr-orders { display: grid; gap: 6px; margin-top: 16px; }
.tr-ord { display: grid; grid-template-columns: 52px 1fr auto; gap: 12px; align-items: center; padding: 9px 12px; border-radius: 10px; background: rgba(214,226,255,.04); font: 400 12.5px/1.3 "JetBrains Mono", monospace; opacity: 0; animation: inTick .5s var(--ease) forwards; animation-delay: calc(var(--k, 0) * 60ms); }
.tr-ord b { font-weight: 600; }
.tr-ord .b { color: #3DDC97; } .tr-ord .sl { color: #FF9B9B; }
.tr-ord em { font-style: normal; color: rgba(226,233,246,.55); }
.tr-ord em.ok { color: #3DDC97; }
.tr-n { margin: 0; padding: 14px 18px 18px; border-radius: 0 0 27px 27px; border-top: 1px solid rgba(214,226,255,.08); font: 400 11.5px/1.55 "JetBrains Mono", monospace; color: rgba(226,233,246,.5); }
.tr-body + .tr-n { border-radius: 0 0 27px 27px; }
.tr-rec { border-radius: 0; }

/* recordings */
.in-rec { padding-left: 0; padding-right: 0; }
.in-rec-band { padding-top: 0; padding-bottom: 0; }
.in-laptop { width: 100%; }
.in-flow { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 22px; }
.in-flow span { padding: 9px 14px; border-radius: 999px; font: 600 13px/1 Inter, sans-serif; background: var(--page-2); box-shadow: 0 0 0 1px var(--page-line); }
.in-flow span:last-child { color: #0F7A4C; box-shadow: 0 0 0 1px rgba(15,122,76,.4); }
html[data-theme="dark"] .in-flow span:last-child { color: var(--gain); box-shadow: 0 0 0 1px rgba(61,220,151,.4); }
.in-flow i { width: 18px; height: 1px; background: var(--page-faint); position: relative; }
.in-flow i::after { content: ""; position: absolute; right: -1px; top: -3px; border-left: 5px solid var(--page-faint); border-top: 3.5px solid transparent; border-bottom: 3.5px solid transparent; }
.in-custody { padding-left: 0; padding-right: 0; }
.in-custody-band { padding-top: 0; padding-bottom: 0; }

/* research, coming */
.in-research { background: radial-gradient(90% 70% at 80% 30%, #0E1C36 0%, #05080F 70%); color: var(--text); }
.in-research .au-sub { color: var(--muted); }
.in-research .btn-line { border-color: var(--line); color: var(--text); }
.in-research-in { display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(28px, 5vw, 90px); align-items: center; }
.in-research .au-h { margin-top: 18px; }
.in-research .au-soon { color: #F5C451; background: rgba(245,196,81,.12); }
.in-mods { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.in-mods li { padding: 18px; border-radius: 18px; background: rgba(255,255,255,.04); box-shadow: inset 0 0 0 1px var(--line); }
.in-mods b { display: block; font-size: 16px; }
.in-mods span { display: block; margin-top: 6px; font-size: 13.5px; line-height: 1.45; color: var(--muted); }
.in-mods .in-mods-n { grid-column: 1 / -1; padding: 0; background: none; box-shadow: none; font: 400 12px/1.5 "JetBrains Mono", monospace; color: var(--faint); }

@media (max-width: 1080px) {
  .in-hero-in { grid-template-columns: 1fr; }
  .in-receipt { display: none; }
}
@media (max-width: 860px) {
  .in-qa { grid-template-columns: 1fr; }
  .in-q { padding: 20px; }
  .in-q p { font-size: 15.5px; }
  .tr-bar { padding: 12px; }
  .tr-strats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; max-width: 100%; }
  .tr-strats button { flex: none; }
  .tr-play { width: 100%; justify-content: center; }
  .tr-body { grid-template-columns: 1fr; min-height: 0; }
  .tr-steps { grid-auto-flow: column; grid-auto-columns: max-content; overflow-x: auto; padding: 10px; border-right: 0; border-bottom: 1px solid rgba(214,226,255,.08); scrollbar-width: none; }
  .tr-steps button { grid-template-columns: 22px auto; min-height: 44px; padding: 9px 12px; font-size: 13px; white-space: nowrap; }
  .tr-steps button small { display: none; }
  .tr-steps li:not(:last-child) button::after { display: none; }
  .tr-rec { min-height: 430px; padding: 18px 16px; }
  .tr-kv { grid-template-columns: 1fr; }
  .tr-kv dt { padding-bottom: 0; border-bottom: 0; font-size: 11px; }
  .tr-rec-top { font-size: 12px; letter-spacing: .08em; }
  .tr-kv dd { padding-top: 3px; }
  .in-research-in { grid-template-columns: 1fr; }
  .in-mods { grid-template-columns: 1fr; gap: 8px; }
  .in-mods li { padding: 14px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .in-receipt li, .tr-chips span, .tr-ord { animation: none; opacity: 1; transform: none; }
}
