:root {
color-scheme: light dark;
--paper: #f7f7f2;
--ink: #171713;
--muted: #6c6a60;
--line: rgba(23,23,19,.14);
--tile: #ecebe3;
--shadow: 0 14px 28px rgba(45,45,34,.14);
--accent: #d25f3b;
}
@media (prefers-color-scheme: dark) {
:root {
--paper: #11120f;
--ink: #f2f0e8;
--muted: #aba89c;
--line: rgba(255,255,255,.16);
--tile: #1b1d18;
--shadow: 0 14px 32px rgba(0,0,0,.34);
--accent: #ff8a62;
}
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--paper); }
body { min-height: 100%; margin: 0; background: var(--paper); color: var(--ink); font: 16px/1.45 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
main { width: 100%; margin: 0; padding: clamp(14px, 2.5vw, 28px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(14px, 2vw, 22px) clamp(10px, 1.8vw, 18px); }
.grid + .grid { margin-top: clamp(10px, 1.8vw, 18px); }
.site { --tile-hue: 18; --tile-shift: 90; min-width: 0; contain: layout paint; isolation: isolate; }
.preview-link { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--tile); box-shadow: 0 1px 0 rgba(255,255,255,.45) inset; outline: none; }
.preview { position: absolute; inset: 0; z-index: 0; overflow: hidden; background-image:
var(--preview-image, none),
linear-gradient(135deg, hsl(var(--tile-hue) 58% 38%) 0%, hsl(var(--tile-shift) 40% 28%) 48%, hsl(var(--tile-hue) 42% 18%) 100%);
background-position: center top;
background-size: cover; }
.site-caption { display: flex; align-items: center; gap: 7px; min-width: 0; margin-top: 7px; }
.site-title { min-width: 0; overflow: hidden; color: var(--ink); text-decoration: none; text-overflow: ellipsis; white-space: nowrap; font-size: clamp(14px, 1.4vw, 17px); font-weight: 680; line-height: 1.25; }
.temp-label { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 999px; padding: 1px 6px 2px; color: var(--muted); font-size: 10px; font-weight: 700; line-height: 1.2; text-transform: uppercase; letter-spacing: .04em; }
.site:hover .preview-link, .site:focus-within .preview-link { border-color: var(--accent); }
.site-title:hover { color: var(--accent); }
.preview-link:focus-visible, .site-title:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.bag-nav { display: flex; gap: 14px; margin-bottom: clamp(10px, 1.8vw, 18px); }
.bag-nav a { font-size: 12px; color: var(--muted); text-decoration: none; letter-spacing: .02em; opacity: .7; transition: opacity .15s; }
.bag-nav a:hover { opacity: 1; color: var(--ink); }
.empty { margin: 0; min-height: 50vh; display: grid; place-items: center; color: var(--muted); }
@media (max-width: 560px) {
main { padding: 10px; }
.grid { grid-template-columns: 1fr; gap: 10px; }
.preview-link { aspect-ratio: 4 / 3; }
.site-title { white-space: normal; overflow-wrap: anywhere; }
}