body {
    margin: 0;
    font-family: "Times New Roman", Times, serif;
    background: #ffffff;
    color: #000000;
}
.page { max-width: 1000px; margin: 0 auto; padding: 20px 16px 40px; }
header h1 {
    font-family: Arial, Helvetica, sans-serif;
    font-weight: 900;
    font-style: italic;
    color: #6a0dad;
    text-shadow: 2px 2px 0 #000000;
    margin: 0 0 6px;
}
.lede { color: #333; }
a:link    { color: #0000ee; }
a:visited { color: #551a8b; }
a:hover   { color: #ee0000; }

.privacy-banner {
    margin: 12px 0;
    padding: 10px 14px;
    background: #e6f4ea;
    border: 2px solid #2e7d32;
    border-left-width: 8px;
    font-family: Arial, sans-serif;
    font-size: 13px;
    color: #1b3a1f;
}
.privacy-banner strong { color: #1b5e20; }

.status {
    padding: 8px 12px;
    border: 2px solid #000;
    margin: 12px 0;
    font-family: Arial, sans-serif;
    font-size: 13px;
}
.status.loading { background: #fff3a8; }
.status.ready   { background: #b8e986; }
.status.error   { background: #ffb0b0; }

.controls {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin: 12px 0 20px;
    padding: 10px;
    background: #f0f0f0;
    border: 1px solid #999;
}
.controls label, .controls button, .controls select, .controls input[type=range] {
    font-family: Arial, sans-serif; font-size: 13px;
}
.btn {
    display: inline-block;
    padding: 4px 10px;
    background: #ffe000;
    border: 2px outset #ffe000;
    cursor: pointer;
    font-weight: bold;
}
.btn input[type=file] { display: none; }
button {
    padding: 4px 10px;
    background: #ffe000;
    border: 2px outset #ffe000;
    cursor: pointer;
    font-weight: bold;
}
button:disabled, .btn.disabled { opacity: 0.4; cursor: not-allowed; }

.canvases { display: flex; flex-wrap: wrap; gap: 16px; }
.canvases > div { flex: 1 1 320px; }
.canvases h3 { font-family: Arial, sans-serif; font-size: 14px; margin: 0 0 6px; }
canvas {
    width: 100%; max-width: 480px; height: auto;
    border: 1px solid #999; background: #eee;
}

footer {
    margin-top: 30px; padding-top: 10px;
    border-top: 1px solid #999;
    font-size: 13px; color: #444;
}

.download-gate {
    margin-top: 20px;
    padding: 12px 14px;
    background: #fff8d6;
    border: 2px solid #d4b300;
    font-family: Arial, sans-serif;
}
.download-gate h3 { margin: 0 0 6px; font-size: 15px; }
.download-gate p { margin: 0 0 8px; font-size: 13px; color: #333; }
.download-gate input[type=email] {
    padding: 5px 8px;
    font-size: 14px;
    font-family: Arial, sans-serif;
    border: 1px solid #999;
    min-width: 240px;
    margin-right: 6px;
}
#downloadStatus {
    margin: 8px 0 0;
    font-size: 13px;
    min-height: 1em;
    color: #444;
}
#downloadStatus.error { color: #b00; }
#downloadStatus.ok    { color: #060; }
