.indie-retro-page { background-color:#fff; background-image:linear-gradient(rgba(3,80,111,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(3,80,111,.045) 1px,transparent 1px); background-size:24px 24px; }
.indie-retro-page .indie-catalog-hero { padding:32px; border:3px solid #03506f; border-radius:4px; background:#03506f; color:#fff; box-shadow:7px 7px 0 rgba(3,80,111,.18); margin-bottom:32px; }
.indie-retro-page .indie-catalog-hero :is(h1,p,.section-kicker) { color:#fff; }
.indie-retro-page .indie-catalog-hero h1 { font-size:clamp(2rem,5vw,3.6rem); }
.indie-catalog-counter,.indie-retro-page .section-kicker,.indie-card-prompt { font-family:var(--ludicon-number-font), ui-monospace,Consolas,monospace; }
.indie-catalog-counter { display:inline-block; margin-top:16px; border:1px dashed currentColor; padding:8px 12px; font-size:.8rem; }
.indie-retro-page .indie-card-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; padding-bottom:28px; }
.indie-retro-page .indie-card { position:relative; min-width:0; border:2px solid #03506f; border-radius:4px; background:#fff; box-shadow:5px 5px 0 rgba(3,80,111,.18); transition:transform .15s,box-shadow .15s; }
.indie-retro-page .indie-card:hover,.indie-retro-page .indie-card:focus-within { transform:translateY(-4px); box-shadow:7px 9px 0 rgba(3,80,111,.24); }
.indie-retro-page .indie-card > img { height:auto; aspect-ratio:16/9; object-fit:cover; border-bottom:2px solid #03506f; }
.indie-retro-page .indie-card:focus-within { outline:3px solid #03506f; outline-offset:4px; }
.indie-card-open { appearance:none; border:0; padding:0; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; }
.indie-card-open::after { content:""; position:absolute; inset:0; z-index:1; }
.indie-card-open:focus-visible { outline:none; }
.indie-card-open:focus-visible::after { outline:3px solid #03506f; outline-offset:5px; }
.indie-retro-page .indie-card h2 { overflow-wrap:anywhere; }
.indie-retro-page .indie-card > div > p:not(.section-kicker) { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.indie-card-prompt { display:block; margin-top:18px; padding-top:12px; border-top:1px dashed #03506f; font-size:.8rem; font-weight:700; }
.indie-game-dialog { width:min(780px,calc(100vw - 32px)); max-height:88vh; max-height:88dvh; padding:0; border:3px solid #03506f; border-radius:4px; color:#03506f; background:#fff; overflow:auto; box-shadow:8px 8px 0 rgba(3,80,111,.3); }
.indie-game-dialog::backdrop { background:rgba(3,80,111,.7); }
body:has(.indie-game-dialog[open]) { overflow:hidden; }
.indie-dialog-close { position:sticky; top:12px; float:right; z-index:2; margin:12px 12px -56px 0; width:40px; height:40px; border:2px solid #03506f; background:#fff; color:#03506f; font-size:1.6rem; cursor:pointer; }
.indie-detail-cover { display:block; width:100%; max-height:330px; object-fit:contain; background:#03506f; }
.indie-detail-body { padding:24px; overflow-wrap:anywhere; }
.indie-detail-body h2 { padding-right:32px; font-size:clamp(1.4rem,4vw,2rem); }
.indie-detail-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:24px 0; }
.indie-detail-meta > div { padding:12px; background:rgba(3,80,111,.05); border-left:3px solid #03506f; }
.indie-detail-meta dt { font:700 .8rem ui-monospace,Consolas,monospace; margin-bottom:6px; }
.indie-detail-meta dd { margin:0; white-space:normal; }
.indie-detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.indie-detail-gallery img { display:block; width:100%; aspect-ratio:16/9; object-fit:contain; background:#03506f; }
.indie-download-qr { margin:24px 0; padding:20px; border:2px solid #03506f; border-radius:4px; overflow-wrap:anywhere; }
.indie-download-qr select { width:100%; margin:8px 0 16px; }
.indie-qr-image { width:256px; max-width:100%; padding:20px; background:#fff; margin:16px 0; }
.indie-qr-image :is(img,canvas) { max-width:100%; height:auto; }
@media(max-width:900px) { .indie-retro-page .indie-card-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .indie-retro-page .indie-card-grid { grid-template-columns:minmax(0,1fr); }.indie-retro-page .indie-catalog-hero { padding:24px 18px; }.indie-detail-body { padding:18px; }.indie-detail-meta,.indie-detail-gallery { grid-template-columns:minmax(0,1fr); } }
@media(prefers-reduced-motion:reduce) { .indie-retro-page .indie-card { transition:none; transform:none; } }
.nes-dream .indie-card.indie-winner{border:4px solid #d4a329;box-shadow:5px 5px #8e6521;background:#fff5d8}
.indie-winner-label{display:block;padding:14px;background:#eac554;color:#382919;font-size:14px}
.indie-voting{margin-top:36px}
.indie-voting fieldset{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px;padding:18px;min-width:0}
.indie-voting fieldset label{display:flex;align-items:center;gap:10px;min-height:44px;overflow-wrap:anywhere}
.indie-comments{border-top:2px solid #c5afcf;margin-top:28px;padding-top:16px}
.indie-comment{position:relative;padding:16px 48px 16px 16px;margin-block:12px;background:#fff8ef;border:1px solid #bba3c5;overflow-wrap:anywhere}
.indie-comment small{display:block;font-size:12px;color:#655270}
.indie-comment p{white-space:pre-wrap;margin-bottom:0}
.indie-comment-remove{position:absolute;right:4px;top:4px;width:40px;height:40px;border:0;background:transparent;color:#9b334e;font-size:26px;cursor:pointer}
.indie-comments form{display:grid;gap:12px;margin-top:20px}
.indie-comments textarea{display:block;box-sizing:border-box;width:100%;max-width:100%;min-height:100px}
