:root {
    --risk: #c62828;
    --context: #1565c0;
    --evidence: #2e7d32;
    --local: #5f6368;
    --agent: #6a1b9a;
    --build: #ef6c00;
    --surface: #f7f8fa;
}

.footer {
    position: absolute;
    left: 10px;
    bottom: 0;
    z-index: 999;
    background: #fff;
    margin-bottom: 10px;
    padding-bottom: 0;
}

.reveal h1,
.reveal h2,
.reveal h3 {
    text-transform: none;
}

.reveal h1 {
    font-size: 2.2em;
}

.reveal h2 {
    font-size: 1.55em;
}

.reveal h3 {
    font-size: 1.05em;
}

.reveal .risk {
    color: var(--risk);
}

.reveal .context {
    color: var(--context);
}

.reveal .evidence {
    color: var(--evidence);
}

.reveal .local {
    color: var(--local);
}

.reveal .agent {
    color: var(--agent);
}

.reveal .build {
    color: var(--build);
}

.reveal .lead {
    font-size: 1.25em;
    font-weight: 700;
}

.reveal .statement {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.25;
}

.reveal .statement.impact {
    font-size: 2.2em;
}

.reveal .muted {
    color: #60656c;
}

.reveal .compact {
    font-size: .72em;
}

.reveal .grid-2,
.reveal .grid-3,
.reveal .grid-4,
.reveal .flow {
    display: grid;
    gap: .7em;
    align-items: stretch;
}

.reveal .grid-2 {
    grid-template-columns: repeat(2, 1fr);
}

.reveal .grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.reveal .grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

.reveal .flow {
    grid-template-columns: repeat(5, 1fr);
    align-items: center;
}

.reveal .dependency-slide h2 {
    font-size: 1.2em;
    margin-bottom: .3em;
}

.reveal .dependency-slide .dependency-map {
    gap: .3em;
}

.reveal .dependency-slide .card {
    padding: .4em;
}

.reveal .dependency-slide .lead {
    font-size: .95em;
    margin: .3em 0;
}

.reveal .section-divider .act-number {
    color: var(--agent);
    font-size: .75em;
    font-weight: 800;
    letter-spacing: .12em;
}

.reveal .section-divider h2 {
    color: var(--context);
    font-size: 2.2em;
}

.reveal .card {
    border: 3px solid var(--local);
    border-radius: 14px;
    padding: .65em;
    background: var(--surface);
    box-shadow: 0 6px 16px rgba(0, 0, 0, .08);
}

.reveal .card.risk {
    border-color: var(--risk);
}

.reveal .card.context {
    border-color: var(--context);
}

.reveal .card.evidence {
    border-color: var(--evidence);
}

.reveal .card.agent {
    border-color: var(--agent);
}

.reveal .card.build {
    border-color: var(--build);
}

.reveal .card .group-label {
    font-size: .7em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .85;
    margin-bottom: .15em;
}

.reveal .arrow,
.reveal .arrow-inline {
    color: #000;
}

.reveal .arrow-inline {
    margin: 0 .55em;
}

.reveal .arrow {
    font-size: 1.7em;
    align-self: center;
}

.reveal .diagram {
    font-size: .44em;
    line-height: 1.4;
}

.reveal .diagram .card {
    padding: .5em .9em;
    box-shadow: none;
}

.reveal .diagram .arrow {
    font-size: 1.1em;
    line-height: 1;
    margin: .15em 0;
}

.reveal .diagram .group-label {
    font-size: .8em;
}

.reveal .stage {
    display: grid;
    grid-template-columns: 1fr max-content;
    gap: .1em 1.2em;
    text-align: left;
    line-height: 1.5;
}

.reveal .stage .stop {
    color: var(--risk);
    font-weight: 700;
    white-space: nowrap;
}

.reveal .stage .note {
    color: var(--local);
    white-space: nowrap;
}

.reveal .tag {
    display: inline-block;
    border-radius: 999px;
    padding: .18em .65em;
    font-size: .45em;
    font-weight: 800;
    letter-spacing: .08em;
    vertical-align: middle;
}

.reveal .today {
    background: #dff3e2;
    color: #1b5e20;
}

.reveal .focus {
    background: #dbeafe;
    color: #0d47a1;
}

.reveal .dependency-map {
    display: grid;
    grid-template-columns: 1fr 1.2fr 1fr;
    grid-template-rows: 1fr 1fr 1fr;
    gap: .45em;
    align-items: center;
}

.reveal .dependency-map .center {
    grid-column: 2;
    grid-row: 2;
}

.reveal .dependency-map .north {
    grid-column: 2;
    grid-row: 1;
}

.reveal .dependency-map .west {
    grid-column: 1;
    grid-row: 2;
}

.reveal .dependency-map .east {
    grid-column: 3;
    grid-row: 2;
}

.reveal .dependency-map .south-west {
    grid-column: 1;
    grid-row: 3;
}

.reveal .dependency-map .south {
    grid-column: 2;
    grid-row: 3;
}

.reveal .dependency-map .south-east {
    grid-column: 3;
    grid-row: 3;
}

.reveal .boundary {
    border: 5px solid var(--context);
    border-radius: 24px;
    padding: .45em;
    background: rgba(21, 101, 192, .04);
}

.reveal .boundary > span {
    display: inline-flex;
    align-items: center;
    gap: .25em;
}

.reveal .boundary > span small {
    line-height: 1;
}

.reveal .boundary.system {
    border-color: var(--context);
}

.reveal .boundary.repository {
    border-color: var(--local);
}

.reveal .boundary.task {
    border-color: var(--agent);
}

.reveal blockquote {
    width: 88%;
}

.reveal .footnote {
    font-size: .2em;
    color: #60656c;
}

.reveal .pipeline {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    gap: .5em;
    align-items: stretch;
    font-size: .42em;
    line-height: 1.35;
}

.reveal .pipeline .card {
    color: #222;
    text-align: left;
    padding: .7em .8em;
    box-shadow: none;
}

.reveal .pipeline .card.risk .group-label { color: var(--risk); }
.reveal .pipeline .card.context .group-label { color: var(--context); }
.reveal .pipeline .card.agent .group-label { color: var(--agent); }
.reveal .pipeline .card.evidence .group-label { color: var(--evidence); }

.reveal .pipeline .question {
    font-weight: 700;
    font-size: 1.1em;
    margin-bottom: .4em;
}

.reveal .pipeline ul {
    margin: 0 0 0 1.1em;
}

.reveal .pipeline li + li {
    margin-top: .35em;
}

.reveal .pipeline .arrow {
    font-size: 1.6em;
}

.reveal .pipeline-rule {
    font-size: .45em;
    margin-top: .8em;
    padding: .5em .9em;
    box-shadow: none;
}

.reveal .workflows {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .7em;
    font-size: .5em;
    line-height: 1.35;
}

.reveal .workflows .card {
    color: #222;
    text-align: left;
    padding: .8em 1em;
    box-shadow: none;
}

.reveal .workflows .card.agent .group-label { color: var(--agent); }
.reveal .workflows .card.evidence .group-label { color: var(--evidence); }
.reveal .workflows .card.context .group-label { color: var(--context); }
.reveal .workflows .card.build .group-label { color: var(--build); }

.reveal .workflows .question {
    font-weight: 700;
    font-size: 1.15em;
    margin-bottom: .3em;
}

.reveal .problems {
    display: grid;
    grid-template-columns: max-content auto max-content;
    justify-content: center;
    column-gap: 1em;
    font-size: .48em;
    line-height: 1.35;
    text-align: left;
    margin-top: .6em;
}

.reveal .problems > div {
    white-space: nowrap;
    padding: .55em 0;
    border-bottom: 1px solid #dde1e6;
}

.reveal .problems .head {
    font-size: .8em;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--local);
    border-bottom: 3px solid var(--local);
}

.reveal .problems .problem {
    color: var(--risk);
    font-weight: 700;
}

.reveal .problems .arrow {
    font-size: 1em;
    align-self: stretch;
    display: flex;
    align-items: center;
}

.reveal .problems code {
    font-size: .9em;
}

.reveal .problems > .arrow,
.reveal .problems > div:nth-child(2) {
    border-bottom: none;
}
