.reveal {
    --r-main-font-size: 32px;
}

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

.reveal code {
    font-size: 0.85em;
    background: #f5f5f5;
    padding: 0.1em 0.3em;
    border-radius: 3px;
}

.reveal em {
    color: #555;
}

.reveal .title-slide h2 {
    margin-bottom: 0.2em;
}

.reveal .title-slide .subtitle {
    font-size: 0.9em;
    color: #555;
    margin-bottom: 2em;
}

.reveal .title-slide .speaker {
    font-size: 1.1em;
    margin-bottom: 0.2em;
}

.reveal .title-slide .venue {
    font-size: 0.8em;
    color: #555;
    margin-bottom: 2em;
}

.reveal .title-slide .joint {
    font-size: 0.6em;
    color: #777;
    margin-top: 0.1em;
    margin-bottom: 2em;
}

.reveal .title-slide .joint small {
    font-size: 1em;
}

.reveal .two-col {
    display: flex;
    align-items: center;
    gap: 1.5em;
    text-align: left;
}

.reveal .two-col .col-text {
    flex: 1.3;
}

.reveal .two-col .col-fig {
    flex: 1;
    margin: 0;
    text-align: center;
}

.reveal .two-col .col-fig img {
    max-height: 320px;
    width: auto;
    margin: 0 auto;
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}

.reveal .two-col .col-fig figcaption {
    font-size: 0.55em;
    color: #555;
    margin-top: 0.4em;
}

.reveal .corner-figure {
    position: absolute;
    bottom: 0;
    left: 0;
    margin: 0;
    text-align: left;
    max-width: 180px;
}

.reveal .corner-figure img {
    max-height: 80px;
    width: auto;
    display: block;
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.reveal .corner-figure figcaption {
    font-size: 0.4em;
    color: #555;
    margin-top: 0.3em;
    line-height: 1.3;
}

.reveal .title-slide .follow-strip {
    margin-top: 2em;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1em;
    color: #777;
}

.reveal .title-slide .follow-strip .qr {
    margin: 0;
}

.reveal .title-slide .follow-strip .qr img,
.reveal .title-slide .follow-strip .qr-placeholder {
    width: 140px;
    height: 140px;
    border-radius: 4px;
}

.reveal .title-slide .follow-strip .qr-placeholder {
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    border: 1.5px dashed #bbb;
    color: #aaa;
    font-size: 0.7em;
}

.reveal .title-slide .follow-strip .follow-label {
    font-size: 0.5em;
}

.reveal .title-slide .follow-strip .follow-label code {
    font-size: 1em;
}

.reveal .thm {
    border-radius: 6px;
    overflow: hidden;
    margin: 0.6em auto;
    text-align: left;
    max-width: 90%;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    border: 1px solid #ccd9e8;
}

.reveal .thm-title {
    background: #4a7ba6;
    color: #fff;
    padding: 0.3em 0.7em;
    font-weight: bold;
    font-size: 0.85em;
}

.reveal .thm-body {
    background: #eef3f9;
    padding: 0.6em 0.9em;
    font-style: italic;
    font-size: 0.85em;
}

.reveal .thm-body p:first-child { margin-top: 0; }
.reveal .thm-body p:last-child  { margin-bottom: 0; }

.reveal .thm.def         { border-color: #cfdfc5; }
.reveal .thm.def .thm-title { background: #5c8a4e; }
.reveal .thm.def .thm-body  { background: #f0f6ec; }

.reveal .thm.rem         { border-color: #ddd; }
.reveal .thm.rem .thm-title { background: #888; }
.reveal .thm.rem .thm-body  { background: #f5f5f5; font-style: normal; }

.reveal .thm.que            { border-color: #b5d7c8; }
.reveal .thm.que .thm-title { background: #2e7d5b; }
.reveal .thm.que .thm-body  { background: #ecf6f1; font-style: normal; }

.reveal .thm-row {
    display: grid;
    grid-template-columns: 195px 1fr;
    align-items: center;
    gap: 1.2em;
    margin: 0.8em auto;
    text-align: left;
    max-width: 100%;
}

.reveal .thm-row .row-photo {
    margin: 0;
    text-align: center;
}

.reveal .thm-row .row-photo img {
    max-height: 195px;
    width: auto;
    display: block;
    margin: 0 auto;
    border-radius: 4px;
    box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}

.reveal .thm-row .row-photo figcaption {
    font-size: 0.5em;
    color: #555;
    margin-top: 0.3em;
    line-height: 1.3;
}

.reveal .thm-row .thm {
    margin: 0;
    max-width: none;
}

.reveal .flowchart {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3em;
    font-size: 0.65em;
}

.reveal .flowchart .flow-node {
    padding: 0.5em 0.9em;
    border-radius: 6px;
    border: 1px solid #999;
    background: #f5f5f5;
    text-align: center;
    max-width: 95%;
    line-height: 1.3;
}

.reveal .flowchart .flow-node.input {
    background: #e8f0fe;
    border-color: #4a7ba6;
}

.reveal .flowchart .flow-node.question {
    background: #fff7d6;
    border-color: #d6a800;
}

.reveal .flowchart .flow-node.label-no {
    background: #f8d7da;
    border-color: #d9534f;
    font-weight: bold;
}

.reveal .flowchart .flow-node.label-yes {
    background: #d4edda;
    border-color: #5cb85c;
    font-weight: bold;
}

.reveal .flowchart .flow-node.label-unknown {
    background: #e2e3e5;
    border-color: #6c757d;
    font-weight: bold;
}

.reveal .flowchart .flow-arrow {
    font-size: 1.4em;
    color: #999;
    line-height: 0.7;
}

.reveal .flowchart .flow-arrow-label {
    font-size: 0.9em;
    color: #555;
    margin: 0.15em 0;
}

.reveal .flowchart .flow-branches {
    display: flex;
    gap: 2em;
    align-items: flex-start;
    justify-content: center;
    width: 100%;
}

.reveal .flowchart .flow-branch {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.2em;
    flex: 1;
}

.reveal table {
    border-collapse: collapse;
    margin: 0.3em auto;
}

.reveal table th,
.reveal table td {
    padding: 0.25em 0.7em;
    border: 1px solid #ccd9e8;
}

.reveal table th {
    background: #4a7ba6;
    color: #fff;
    font-weight: bold;
}

.reveal table tbody tr:nth-child(even) {
    background: #f5f8fb;
}
