/* SD Subculture: an editorial collection of local culture. */
:root{color-scheme:dark;--bg:#131413;--surface:#1b1c1a;--raised:#222320;--ink:#f0eee6;--muted:#aaa99f;--line:#3b3d36;--accent:#dbeb8c;--inverse:#151610;--art:#d8dbcc}
:root[data-theme=light]{color-scheme:light;--bg:#f1f0e9;--surface:#faf9f3;--raised:#e5e5dc;--ink:#22241e;--muted:#62655b;--line:#cccec2;--accent:#425323;--inverse:#f8faef;--art:#343b2b}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default}.max-w-6xl{max-width:1360px}.px-5{padding-left:40px;padding-right:40px}.bg-white{background:var(--surface)}.text-gray-900,.text-gray-700{color:var(--ink)}.text-gray-600,.text-gray-500{color:var(--muted)}.border-gray-100,.border-gray-200{border-color:var(--line)}.rounded-xl{border-radius:0}.shadow-sm{box-shadow:none}header.bg-white{background:var(--bg)}header nav{min-height:98px}.brand{font-size:32px;font-weight:700;letter-spacing:-1.3px}.brand-icon{font-weight:400;font-size:34px;line-height:1}.nav-actions{display:flex;align-items:center;gap:32px}.theme-toggle{background:none;border:1px solid var(--line);color:var(--ink);min-height:42px;padding:9px 16px;font:11px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.05em}.theme-toggle:hover{background:var(--raised)}.eyebrow,.map-eyebrow{font-family:'Courier New',monospace;font-size:10px;font-weight:400;letter-spacing:.12em;color:var(--muted)}.hero{display:grid;grid-template-columns:1.2fr 1fr;gap:30px;align-items:center;padding:39px 0 34px;border-bottom:1px solid var(--line)}.hero h1{font-size:clamp(32px,3.75vw,56px);font-weight:500;line-height:.94;letter-spacing:-.075em;margin:15px 0}.hero-serif{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:italic;letter-spacing:-.065em}.hero p{font-size:15px;line-height:1.7;color:var(--muted);margin:14px 0}.hero-link{display:inline-flex;align-items:center;gap:45px;border-bottom:1px solid var(--ink);padding:10px 0;font-size:13px}.hero-link span{font-size:23px}.shape-study{position:relative;width:50%;justify-self:center;display:grid;grid-template-columns:1fr 1fr;gap:6px;padding-bottom:26px}.shape-cell{aspect-ratio:1;overflow:hidden;background-color:var(--raised)}.shape-rings{border-radius:50%;background:repeating-radial-gradient(circle at center,var(--art) 0 1px,transparent 2px 9px)}.shape-stripes{border-radius:50% 0 50% 0;background:repeating-linear-gradient(135deg,var(--art) 0 2px,transparent 2px 11px)}.shape-check{border-radius:0 50% 0 50%;background:repeating-linear-gradient(0deg,transparent 0 10px,var(--art) 10px 11px),repeating-linear-gradient(90deg,transparent 0 10px,var(--art) 10px 11px)}.shape-orbit{border-radius:50%;background:repeating-radial-gradient(ellipse at 0 50%,var(--art) 0 2px,transparent 2px 10px)}.shape-caption{position:absolute;bottom:0;right:0;font:9px 'Courier New',monospace;letter-spacing:.1em;color:var(--muted)}.filter-panel{margin-top:26px;padding:24px;background:transparent}.filter-panel label{font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.08em;display:block;margin-bottom:10px;color:var(--muted)}input,select{background:var(--surface);border:1px solid var(--line);border-radius:0;min-height:46px;width:100%;padding:10px 12px;font-size:13px;color:var(--ink)}input::placeholder{color:var(--muted)}input:focus,select:focus{outline:2px solid var(--accent);outline-offset:2px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;background:var(--accent);color:var(--inverse);border:1px solid transparent;border-radius:0;padding:11px 18px;font-size:12px;font-weight:600;text-align:center}.button:hover{filter:brightness(1.12)}.button.secondary{background:transparent;border-color:var(--line);color:var(--ink)}#events{margin-top:62px}#events h2{font-weight:400;letter-spacing:-.055em;font-size:34px}#events>.grid{gap:32px 22px}.event-card{background:transparent;border:1px solid var(--ink);transition:border-color .2s;min-width:0}.event-card:hover{border-color:var(--ink)}.event-card>.p-6{padding:0 18px 24px}.event-card .card-top{padding:14px 18px}.event-card h3{font-size:23px;font-weight:500;letter-spacing:-.04em;line-height:1.2}.event-card h3 a:hover{text-decoration:underline;text-underline-offset:4px}.card-top{min-height:58px;padding:14px 0;gap:10px}.category{font:10px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.05em;border:1px solid var(--line);padding:5px 8px;color:var(--ink);display:inline-block}.date-badge{font:11px 'Courier New',monospace;text-transform:uppercase;white-space:nowrap;color:var(--muted)}.event-card .text-xs{font-family:'Courier New',monospace;font-size:10px;font-weight:400}.event-card .text-sm{font-size:12px;line-height:1.6}.detail-link{font:11px 'Courier New',monospace;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}.event-image{margin:0;background:var(--raised);overflow:hidden}.event-image img{display:block;width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;transition:transform .4s}.event-card:hover .event-image img{transform:scale(1.025)}.event-image figcaption{padding:6px 10px;font:10px 'Courier New',monospace;color:var(--muted)}.event-image-detail{max-width:960px;margin-top:30px}.event-art{position:relative;aspect-ratio:16/9;overflow:hidden;color:var(--art);background-color:var(--raised)}.event-art:before{content:'';position:absolute;inset:18% 26%;border-radius:50%;background:repeating-radial-gradient(ellipse at center,var(--art) 0 1px,transparent 2px 7px)}.event-art-1:before{border-radius:50% 0;background:repeating-linear-gradient(130deg,var(--art) 0 2px,transparent 2px 9px)}.event-art-2:before{inset:12% 30%;border-radius:0;background:repeating-linear-gradient(0deg,transparent 0 8px,var(--art) 8px 9px),repeating-linear-gradient(90deg,transparent 0 8px,var(--art) 8px 9px);transform:rotate(30deg)}.event-art span{position:absolute;left:15px;bottom:13px;font:9px 'Courier New',monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.event-map-panel{margin-top:64px;--map-surface:var(--surface);--map-ink:var(--ink);--map-line:var(--line);--map-muted:var(--muted);--map-bg:var(--raised);--map-marker:var(--accent)}.description{white-space:pre-line;overflow-wrap:anywhere}.status{background:var(--raised);color:var(--accent);border:1px solid var(--line);padding:8px 12px;font-size:12px}.accent{color:var(--accent)}footer{font-family:'Courier New',monospace;font-size:10px!important}.skip-link{position:absolute;left:16px;top:-100px;background:var(--surface);color:var(--ink);padding:16px;z-index:1000}.skip-link:focus{top:16px}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}h1,h3{overflow-wrap:anywhere}.empty-state{background:transparent}
@media(min-width:1000px){.event-map-panel #event-map{height:360px}}
@media(max-width:900px){.hero{gap:15px;padding:27px 0}.hero h1{font-size:38px}.shape-study{gap:4px}.px-5{padding-left:24px;padding-right:24px}}
@media(max-width:640px){header nav{min-height:80px}.brand{font-size:27px}.brand-icon{font-size:26px}.nav-actions{gap:10px}.nav-actions>a{display:none}.theme-toggle{font-size:10px;padding:8px 10px}.px-5{padding-left:20px;padding-right:20px}.hero{grid-template-columns:1fr;padding:14px 0;gap:10px}.hero h1{font-size:38px;margin:11px 0}.hero p{margin:10px 0}.hero-link{padding:5px 0}.hero .eyebrow{font-size:8px}.hero p{font-size:14px}.shape-study{max-width:180px;width:50%;justify-self:center;grid-template-columns:repeat(4,1fr);gap:4px}.shape-caption{font-size:7px}.filter-panel{padding:18px}#events{margin-top:40px}#events h2{font-size:27px}.event-card h3{font-size:24px}.event-map-panel{margin-top:44px}.event-image-detail{margin-top:24px}footer{gap:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.event-image.image-unavailable{position:relative;aspect-ratio:16/9}.image-unavailable img{visibility:hidden}.event-image.image-unavailable:after{content:"";position:absolute;inset:20% 30%;border-radius:50%;background:repeating-radial-gradient(circle,var(--art) 0 1px,transparent 2px 8px);pointer-events:none}.event-image.image-unavailable figcaption{display:none}

main > .event-map-panel{margin-top:28px;margin-bottom:0}
#events > .hero{margin-top:40px;border-top:1px solid var(--line);border-bottom:0}
/* Original isometric solids: shaded faces stay legible in both themes. */
:root{--voxel-top:#d8dbcc;--voxel-front:#858e76;--voxel-side:#444d3d;--voxel-edge:#22271f}
:root[data-theme=light]{--voxel-top:#c7ceb6;--voxel-front:#8d9b78;--voxel-side:#526144;--voxel-edge:#35422d}
.shape-object{display:block;width:100%;height:100%;overflow:visible}
.shape-object polygon{stroke:var(--voxel-edge);stroke-width:.55;stroke-linejoin:round}
.voxel-top{fill:var(--voxel-top)}.voxel-front{fill:var(--voxel-front)}.voxel-side{fill:var(--voxel-side)}
.event-art-3d:before{display:none}.event-art-3d .shape-object{position:absolute;inset:5% 0 14%;height:81%;width:100%}
.shape-cell .shape-object{padding:3%}.shape-study{gap:8px}
@media(max-width:640px){.shape-study{width:100%;max-width:340px;gap:6px;margin-top:12px}.shape-caption{font-size:8px}}
/* Source SVG previews retain their own linework and background. */
.shape-source{object-fit:contain;background:#fff}
:root[data-theme=dark] .shape-source{filter:invert(1)}
.results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:20px}
.results-summary{font-size:14px;color:var(--muted);margin:0}
.page-size-form{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px}
.page-size-form select{width:auto;min-width:76px}
.pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:24px 0}
.page-number{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:46px;padding:8px;border:1px solid var(--line);font-size:13px}
.page-number:hover{background:var(--raised)}.page-number.current{background:var(--ink);color:var(--bg);border-color:var(--ink)}.page-gap{padding:0 4px;color:var(--muted)}
@media(max-width:640px){.results-toolbar{align-items:flex-start}.pagination{gap:5px}.page-number{min-width:40px}.pagination .button{padding:10px}}
/* Center the city tagline between the brand and navigation. */
header nav{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:24px}
header .brand{justify-self:start}header .nav-actions{justify-self:end}
.header-tagline{text-align:center;line-height:1.6}
@media(max-width:900px){header nav{grid-template-columns:minmax(0,1fr) auto;gap:12px}.header-tagline{grid-column:1/-1;grid-row:2}.nav-actions{grid-column:2;grid-row:1}}

.button.button-neutral{background:var(--ink);color:var(--bg);border-color:var(--ink)}
