:root{--ink:#0d0b08;--ink-2:#14110c;--ink-3:#1c1812;--ink-4:#2a2218;--ink-5:#3a2f22;--ivory:#ece6d6;--ivory-2:#c4bca9;--muted:#8a8273;--muted-2:#6a6354;--saffron:#c9a961;--saffron-2:#b08e44;--saffron-3:#a87b3a;--saffron-glow:#c9a9612e;--maxw:1640px;--side-w:288px;--gutter:32px;--serif:"Playfair Display", "EB Garamond", Georgia, serif;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--ease:cubic-bezier(.22, .61, .36, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--sans);background:var(--ink);color:var(--ivory);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern", "liga", "ss01";line-height:1.55}button{color:inherit;font-family:inherit}img{max-width:100%;display:block}a{color:var(--saffron);text-decoration:none}a:hover{color:var(--saffron-2)}::selection{background:var(--saffron);color:var(--ink)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--ink-4);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--ink-5)}.app{flex-direction:column;min-height:100vh;display:flex}.app-header{border-bottom:1px solid var(--ink-4);background:radial-gradient(ellipse at 50% 0%, #c9a9611a 0%, transparent 60%), var(--ink);padding:28px 40px 24px;position:relative}.brand-row{max-width:var(--maxw);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:24px;margin:0 auto;display:flex}.brand{align-items:baseline;gap:16px;display:flex}.brand-mark{font-family:var(--serif);letter-spacing:-.01em;color:var(--saffron);font-size:1.7rem;font-style:italic;font-weight:700;line-height:1}.brand-divider{background:var(--ink-5);width:1px;height:22px}.brand-name{font-family:var(--serif);letter-spacing:.005em;color:var(--ivory);font-size:1.45rem;font-weight:600}.tagline{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.78rem}.app-body{grid-template-columns:var(--side-w) 1fr;max-width:var(--maxw);gap:var(--gutter);flex:1;width:100%;margin:0 auto;padding:40px 40px 80px;display:grid}.sidebar{align-self:start;max-height:calc(100vh - 48px);padding-right:6px;position:sticky;top:24px;overflow-y:auto}.search-block{margin-bottom:28px;position:relative}.search-input{width:100%;font-size:.92rem;font-family:var(--sans);color:var(--ivory);background:var(--ink-2);border:1px solid var(--ink-4);transition:border-color .18s var(--ease);border-radius:4px;padding:12px 14px 12px 38px}.search-input::placeholder{color:var(--muted-2)}.search-input:focus{border-color:var(--saffron-3);background:var(--ink-3);outline:none}.search-icon{color:var(--muted);pointer-events:none;width:16px;height:16px;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.filter-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin:0 0 12px 4px;font-size:.7rem}.region-tree{flex-direction:column;margin-bottom:28px;list-style:none;display:flex}.region-row{width:100%;font-size:.95rem;font-family:var(--sans);color:var(--ivory-2);cursor:pointer;text-align:left;transition:background .15s var(--ease), color .15s var(--ease);background:0 0;border:none;border-radius:3px;align-items:center;padding:9px 12px;display:flex}.region-row:hover{background:var(--ink-2);color:var(--ivory)}.region-row.active{background:var(--ink-3);color:var(--saffron);border-left:2px solid var(--saffron);padding-left:10px}.region-row .count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:.78rem}.region-row.active .count{color:var(--saffron-2)}.subregion-row{color:var(--muted);padding-left:28px;font-size:.85rem}.subregion-row:hover{color:var(--ivory-2)}.subregion-row.active{color:var(--saffron);border-left:2px solid var(--saffron);background:0 0;padding-left:26px}.reset-btn{letter-spacing:.06em;color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;gap:6px;margin-top:4px;margin-left:12px;padding:4px 0;font-size:.78rem;display:inline-flex}.reset-btn:hover{color:var(--saffron)}.gallery{min-width:0}.gallery-head{border-bottom:1px solid var(--ink-4);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:28px;padding-bottom:22px;display:flex}.gallery-title{font-family:var(--serif);letter-spacing:-.01em;color:var(--ivory);font-size:2.3rem;font-weight:600;line-height:1.1}.gallery-eyebrow{font-family:var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--saffron);margin-bottom:10px;font-size:.72rem;display:block}.result-meta{color:var(--muted);letter-spacing:.04em;font-variant-numeric:tabular-nums;font-size:.85rem}.grid{grid-template-columns:repeat(4,1fr);gap:28px 24px;display:grid}@media (width<=1280px){.grid{grid-template-columns:repeat(3,1fr)}}@media (width<=960px){.grid{grid-template-columns:repeat(2,1fr)}}@media (width<=640px){.grid{grid-template-columns:1fr}}.card{background:var(--ink-3);border:1px solid var(--ink-4);cursor:pointer;transition:transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.card:hover{border-color:var(--ink-5);box-shadow:0 18px 40px -12px #000000b3, 0 0 0 1px var(--saffron-glow);transform:translateY(-4px)}.card-image{aspect-ratio:4/5;background:linear-gradient(135deg,#1a1612 0%,#221c14 100%);width:100%;position:relative;overflow:hidden}.card-image img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease), opacity .4s var(--ease);opacity:0}.card-image img.loaded{opacity:1}.card:hover .card-image img{transform:scale(1.04)}.card-skeleton{background:linear-gradient(110deg,#0000 30%,#c9a9610d 50%,#0000 70%) 0 0/200% 100%;animation:2.4s infinite shimmer;position:absolute;inset:0}.badge-ai{letter-spacing:.14em;text-transform:uppercase;color:var(--ivory);border:1px solid var(--ink-5);pointer-events:auto;cursor:help;-webkit-backdrop-filter:blur(4px);background:#0d0b08c7;border-radius:2px;padding:4px 9px;font-size:.62rem;font-weight:500;position:absolute;top:10px;left:10px}.badge-ai-large{padding:6px 12px;font-size:.7rem;top:16px;left:16px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.card-body{flex-direction:column;flex:1;gap:6px;padding:16px 18px 20px;display:flex}.card-region{letter-spacing:.18em;text-transform:uppercase;color:var(--saffron);font-size:.66rem;font-weight:500}.card-name{font-family:var(--serif);color:var(--ivory);letter-spacing:-.005em;font-size:1.18rem;font-weight:600;line-height:1.25}.card-meta{color:var(--muted);letter-spacing:.02em;margin-top:2px;font-size:.78rem}.empty{text-align:center;border:1px dashed var(--ink-4);color:var(--muted);border-radius:4px;padding:80px 20px}.empty h3{font-family:var(--serif);color:var(--ivory-2);margin-bottom:8px;font-size:1.5rem}.pagination{border-top:1px solid var(--ink-4);justify-content:center;align-items:center;gap:6px;margin-top:56px;padding-top:32px;display:flex}.page-btn{border:1px solid var(--ink-4);min-width:38px;height:38px;color:var(--ivory-2);font-family:var(--sans);font-variant-numeric:tabular-nums;letter-spacing:.04em;cursor:pointer;transition:all .15s var(--ease);background:0 0;border-radius:3px;padding:0 12px;font-size:.88rem}.page-btn:hover:not(:disabled){border-color:var(--saffron-3);color:var(--saffron)}.page-btn.active{background:var(--saffron);border-color:var(--saffron);color:var(--ink);font-weight:600}.page-btn:disabled{opacity:.35;cursor:not-allowed}.page-ellipsis{color:var(--muted);-webkit-user-select:none;user-select:none;padding:0 4px}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:100;animation:fade-in .25s var(--ease);background:#080604db;justify-content:center;align-items:center;padding:40px;display:flex;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.modal{background:var(--ink-2);border:1px solid var(--ink-4);width:100%;max-width:1180px;max-height:calc(100vh - 80px);animation:modal-pop .3s var(--ease);border-radius:6px;grid-template-columns:1.1fr 1fr;display:grid;position:relative;overflow:hidden}@keyframes modal-pop{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}@media (width<=880px){.modal{grid-template-columns:1fr;max-height:none;overflow-y:auto}}.modal-image{background:#1a1612;justify-content:center;align-items:center;min-height:480px;display:flex;position:relative}.modal-image img{object-fit:contain;width:100%;height:100%;max-height:calc(100vh - 80px)}.modal-body{flex-direction:column;gap:20px;padding:44px 44px 40px;display:flex;overflow-y:auto}@media (width<=880px){.modal-body{padding:28px 24px 32px}}.modal-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--saffron);font-size:.72rem}.modal-title{font-family:var(--serif);letter-spacing:-.01em;color:var(--ivory);font-size:2.4rem;font-weight:600;line-height:1.1}.modal-meta-row{border-top:1px solid var(--ink-4);border-bottom:1px solid var(--ink-4);flex-wrap:wrap;gap:24px;padding:14px 0;display:flex}.modal-meta{flex-direction:column;gap:4px;display:flex}.modal-meta-label{letter-spacing:.18em;text-transform:uppercase;color:var(--muted);font-size:.66rem}.modal-meta-value{font-family:var(--serif);color:var(--ivory);font-size:.98rem}.modal-desc{color:var(--ivory-2);font-size:1.005rem;line-height:1.7}.modal-attribution{border-top:1px solid var(--ink-4);color:var(--muted);margin-top:auto;padding-top:18px;font-size:.78rem;line-height:1.55}.modal-attribution a{color:var(--saffron)}.modal-close{border:1px solid var(--ink-4);width:36px;height:36px;color:var(--ivory);cursor:pointer;z-index:5;transition:all .15s var(--ease);background:#0d0b08d9;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.modal-close:hover{border-color:var(--saffron);color:var(--saffron)}.app-footer{border-top:1px solid var(--ink-4);background:var(--ink-2);color:var(--muted);text-align:center;padding:32px 40px;font-size:.82rem;line-height:1.7}.app-footer .legal{color:var(--muted-2);margin-top:4px}@media (width<=880px){.app-body{grid-template-columns:1fr;padding:24px 20px 60px}.sidebar{max-height:none;margin-bottom:24px;position:static}.gallery-title{font-size:1.8rem}.app-header{padding:20px 20px 18px}}
