@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Italiana&display=swap');

:root {
    --ink: #090807;
    --paper: #f4f0e8;
    --muted: #a9a397;
    --panel: #151310;
    --line: rgba(255,255,255,.12);
    --gold: #f3ba24;
    --orange: #e36128;
    --ease: cubic-bezier(.2,.75,.25,1);
    --gallery-card-width: 280px;
    --gallery-card-gap: 14px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--ink); color: var(--paper); font-family: "DM Sans", sans-serif; }
button, input, select { font: inherit; }
button { color: inherit; }
button, .media-card { -webkit-tap-highlight-color: transparent; }
.grain { position: fixed; inset: 0; pointer-events: none; opacity: .055; z-index: 30; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.95' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E"); }
.topbar { position: sticky; top: 0; z-index: 20; height: 76px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 clamp(20px,4vw,64px); border-bottom: 1px solid var(--line); background: rgba(9,8,7,.84); backdrop-filter: blur(18px); }
.brand { display: flex; gap: 11px; align-items: center; color: inherit; text-decoration: none; letter-spacing: .13em; font-size: 14px; }
.brand-logo{display:block;width:220px;height:auto;object-fit:contain}
.brand-mark { display: grid; place-items: center; width: 34px; height: 34px; color: var(--ink); background: var(--gold); border-radius: 50% 50% 50% 9px; transform: rotate(-8deg); }
.brand b, .brand small { display: block; }.brand small { margin-top: 2px; color: var(--muted); font-size: 9px; letter-spacing: .32em; }
nav { display: flex; gap: 30px; }
.nav-link { border: 0; background: none; color: var(--muted); cursor: pointer; padding: 10px 0; font-size: 13px; text-decoration:none; }
.nav-link.is-active { color: var(--paper); }
.selection-button { justify-self: end; background: transparent; border: 1px solid var(--line); border-radius: 99px; padding: 8px 8px 8px 16px; cursor: pointer; }
.selection-button span { display: inline-grid; place-items: center; min-width: 28px; height: 28px; margin-left: 8px; border-radius: 50%; color: var(--ink); background: var(--gold); }
.hero { min-height: calc(100svh - 76px); position: relative; display: grid; grid-template-columns: 1.25fr .75fr; align-items: center; padding: clamp(60px,8vw,120px) clamp(22px,7vw,110px); overflow: hidden; }
.hero::before { content: ""; position: absolute; width: 60vw; height: 60vw; top: 3%; right: -22%; background: radial-gradient(circle, rgba(227,97,40,.19), transparent 62%); }
.eyebrow { margin: 0 0 18px; color: var(--gold); font-size: 11px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.hero h1 { margin: 0; font-family: "Italiana", serif; font-size: clamp(68px,10vw,156px); font-weight: 400; line-height: .78; letter-spacing: -.055em; }
.hero h1 em { color: var(--gold); font-weight: 400; }
.hero-copy > p:last-child { max-width: 570px; margin: 45px 0 0 7px; color: var(--muted); font-size: clamp(15px,1.4vw,20px); line-height: 1.7; }
.hero-orbit { position: relative; width: min(31vw,420px); aspect-ratio: 1; display: grid; place-items: center; }
.hero-orbit strong { font-size: clamp(18px,2vw,30px); letter-spacing: .35em; transform: rotate(-11deg); }
.orbit { position: absolute; inset: 4%; border: 1px solid rgba(243,186,36,.28); border-radius: 48% 52% 42% 58%; animation: orbit 18s linear infinite; }
.orbit-two { inset: 16%; border-color: rgba(227,97,40,.36); animation-direction: reverse; animation-duration: 12s; }
.pulse { width: 46%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 37% 35%, var(--gold), #c22e19 42%, transparent 70%); filter: blur(2px); opacity: .65; animation: breathe 4s ease-in-out infinite; }
.scroll-cue { position: absolute; bottom: 35px; left: clamp(22px,7vw,110px); border: 0; background: none; color: var(--muted); cursor: pointer; text-transform: uppercase; letter-spacing: .18em; font-size: 10px; }
.scroll-cue span { display: inline-grid; place-items: center; width: 34px; height: 34px; margin-left: 12px; border: 1px solid var(--line); border-radius: 50%; }
@keyframes orbit { to { transform: rotate(360deg); } } @keyframes breathe { 50% { transform: scale(1.12); filter: blur(8px); } }
.shows { padding: 105px clamp(18px,5vw,74px); background:#11100d; border-top:1px solid var(--line); }
.show-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,520px)); justify-content:start; gap:22px; }
.show-card { position:relative; overflow:hidden; color:var(--paper); background:linear-gradient(145deg,#1c1914,#11100d); border:1px solid var(--line); border-radius:3px; text-decoration:none; transition:transform .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease); }
.show-card:hover{transform:translateY(-6px);border-color:rgba(243,186,36,.45);box-shadow:0 24px 65px rgba(0,0,0,.34)}
.show-cover { position:relative; height:520px; overflow:hidden; background:radial-gradient(circle at 50% 40%,#24211b,#050505 70%); }
.show-cover img { width:100%; height:100%; object-fit:contain; transition:transform .7s var(--ease); }
.show-card:hover .show-cover img { opacity:.92; }
.show-cover .abstract-photo { position:absolute; inset:0; }
.show-cover>span { display:none; }
.show-copy { min-height:190px;padding:22px 24px 24px;border-top:1px solid var(--line) }.show-overline{display:flex;justify-content:space-between;align-items:center;gap:15px}.show-copy p { margin:0; color:var(--gold); font-size:10px; letter-spacing:.12em; text-transform:uppercase; }.show-overline>span{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.09em}
.show-copy h3 { margin:12px 0 0; font:400 clamp(34px,3vw,48px) "Italiana",serif; }.show-copy small { display:block; margin-top:9px; color:var(--muted); line-height:1.5; }.show-link{display:flex;justify-content:space-between;align-items:center;margin-top:21px;padding-top:15px;border-top:1px solid var(--line);color:var(--paper);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em}.show-link b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:var(--ink);background:var(--gold);font-size:16px}
.explorer { padding: 110px clamp(18px,5vw,74px); background: #0d0c0a; }
.section-heading { display: flex; justify-content: space-between; align-items: end; margin-bottom: 45px; }
.section-heading h2, .drawer-heading h2 { margin: 0; font: 400 clamp(44px,6vw,88px)/.95 "Italiana", serif; }
.section-heading > p { color: var(--muted); font-size: 13px; }
.section-heading > p strong { color: var(--paper); font-size: 24px; margin-right: 5px; }
.filters { margin-bottom: 36px; }
.search-field { height: 62px; display: flex; align-items: center; border-bottom: 1px solid var(--line); }
.search-field::before { content: "⌕"; color: var(--gold); font-size: 28px; margin-right: 15px; }
.search-field input { flex: 1; border: 0; outline: 0; background: transparent; color: var(--paper); font-size: clamp(18px,2.5vw,29px); }
.search-field input::placeholder { color: #615d55; }
kbd { color: var(--muted); border: 1px solid var(--line); border-radius: 6px; padding: 5px 8px; font-size: 11px; }
.filter-row { display: flex; gap: 8px; overflow-x: auto; padding: 18px 0 4px; scrollbar-width: none; }
.chip { flex: 0 0 auto; border: 1px solid var(--line); border-radius: 99px; padding: 9px 15px; background: transparent; color: var(--muted); cursor: pointer; transition: .25s var(--ease); font-size: 12px; }
.chip:hover, .chip.is-active { color: var(--ink); background: var(--paper); border-color: var(--paper); }
.chip-more { margin-left: auto; color: var(--gold); }
.advanced-filters { display: grid; grid-template-columns: repeat(auto-fit,minmax(190px,1fr)); gap: 14px; padding: 18px; margin-top: 13px; border: 1px solid var(--line); border-radius: 14px; background: var(--panel); }
.advanced-filters[hidden] { display: none !important; }
.advanced-filters label { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .1em; }
.advanced-filters select { width: 100%; margin-top: 8px; color: var(--paper); background: #211e19; border: 1px solid var(--line); border-radius: 8px; padding: 10px; }
.desktop-density-control { display:block; }
.density-slider-wrap { margin-top: 8px; padding: 12px 12px 10px; border: 1px solid var(--line); border-radius: 8px; background: #211e19; }
.density-slider-wrap input[type="range"] { width: 100%; margin: 0; accent-color: var(--gold); }
.density-slider-wrap small { display:block; margin-top: 8px; color: var(--paper); font-size: 10px; letter-spacing: .08em; }
.demo-notice { padding: 11px 15px; margin-bottom: 22px; color: #d7caa8; border-left: 2px solid var(--gold); background: rgba(243,186,36,.07); font-size: 12px; }
.gallery { column-width: var(--gallery-card-width); column-count: auto; column-gap: var(--gallery-card-gap); }
.gallery.grid-layout { columns: initial; display: grid; grid-template-columns: repeat(auto-fill, minmax(max(180px, calc(var(--gallery-card-width) - 40px)), var(--gallery-card-width))); align-items: start; justify-content: start; gap: var(--gallery-card-gap); }
.gallery.grid-layout .media-card { width: 100%; margin: 0; }
.gallery.photo-only-layout .media-card{background:transparent}.gallery.photo-only-layout .media-meta,.gallery.photo-only-layout .media-card>.tag-list{display:none}.gallery.photo-only-layout .media-visual{background:#050505}.gallery.photo-only-layout .media-card:hover,.gallery.photo-only-layout .media-card:focus-visible{transform:translateY(-3px)}
.media-card { break-inside: avoid; margin: 0 0 var(--gallery-card-gap); background: #171511; cursor: zoom-in; transition: transform .35s var(--ease); outline: none; }
.public-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:34px 0 0;padding:18px;border-top:1px solid var(--line)}.public-pagination[hidden]{display:none}.public-pagination span{min-width:120px;color:var(--muted);font-size:11px;text-align:center}.public-pagination button{min-height:42px;padding:9px 14px;border:1px solid var(--line);border-radius:7px;background:transparent;color:var(--paper);cursor:pointer}.public-pagination button:hover:not(:disabled){color:var(--gold);border-color:var(--gold)}.public-pagination button:disabled{opacity:.3;cursor:default}
.media-card:hover, .media-card:focus-visible { transform: translateY(-5px); }
.media-card[hidden] { display: none; }
.media-visual { position: relative; overflow: hidden; min-height: 260px; aspect-ratio: var(--ratio, 4/5); }
.media-card:nth-child(3n+2) .media-visual { --ratio: 1/1; }.media-card:nth-child(4n) .media-visual { --ratio: 4/3; }
.media-visual:has(img) { min-height:0; aspect-ratio:auto; background:#050505; }
.media-visual img { display:block; width:100%; height:auto; object-fit:contain; transition:transform .7s var(--ease); }
.gallery.grid-layout .media-visual { min-height: 0; aspect-ratio: auto; }
.gallery.grid-layout .media-visual img { display: block; width: 100%; height: auto; object-fit: contain; }
.gallery.grid-layout .media-visual:has(.abstract-photo) { min-height: 300px; }
.media-card:hover img { opacity:.94; }
.abstract-photo { position: absolute; inset: 0; overflow: hidden; background: radial-gradient(circle at 65% 20%, var(--light,#e58c35), transparent 23%), linear-gradient(145deg,var(--deep,#451713),#090807 75%); }
.abstract-photo::before { content:""; position:absolute; width:38%; height:90%; left:28%; bottom:-16%; border-radius:50% 50% 15% 15%; background:linear-gradient(90deg,transparent,rgba(0,0,0,.65)); transform:rotate(8deg); filter:blur(3px); }
.abstract-photo i { position:absolute; width:54%; height:1px; background:rgba(255,255,255,.25); transform:rotate(-35deg); top:30%; left:44%; }
.tone-2 { --light:#f1b929; --deep:#261b0e; }.tone-3 { --light:#d43a24; --deep:#27090a; }.tone-4 { --light:#eed59b; --deep:#202019; }.tone-5 { --light:#8b2c1b; --deep:#140e0b; }.tone-6 { --light:#f4a826; --deep:#362010; }
.pick { position: absolute; top: 13px; right: 13px; width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,.5); background: rgba(0,0,0,.25); backdrop-filter: blur(8px); cursor: pointer; font-size: 21px; transition: .25s var(--ease); }
.pick:hover, .pick.is-picked { color: var(--ink); background: var(--gold); border-color: var(--gold); transform: rotate(90deg); }
.like-button{position:absolute;left:12px;bottom:12px;display:flex;align-items:center;gap:5px;padding:7px 10px;border:1px solid rgba(255,255,255,.45);border-radius:99px;background:rgba(0,0,0,.4);backdrop-filter:blur(8px);cursor:pointer;font-size:15px}.like-button span{font-size:10px}.like-button.is-liked{color:#fff;background:#b72d3b;border-color:#dc5b68}.lightbox-like{display:flex;align-items:center;gap:7px;margin:8px 0 18px;padding:8px 12px;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--paper);cursor:pointer}.lightbox-like:hover,.lightbox-like.is-liked{color:#fff;background:#b72d3b;border-color:#dc5b68}
.lightbox-like[hidden]{display:none}
.format { position:absolute; left:12px; top:12px; padding:5px 8px; color:var(--ink); background:var(--gold); font-size:9px; font-weight:700; }
.media-meta { display: flex; justify-content: space-between; gap: 15px; padding: 16px 17px 9px; }
.media-meta p { margin: 0 0 5px; color: var(--gold); font-size: 9px; text-transform: uppercase; letter-spacing: .1em; }
.media-meta h3 { margin: 0; font: 400 23px "Italiana", serif; }
.media-filename{display:block;margin-top:5px;color:var(--muted);font-size:10px;line-height:1.35;word-break:break-word}
.media-meta > span { color: var(--muted); }
.tag-list { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 17px 16px; }
.tag-list span { color: var(--muted); font-size: 10px; }
.empty-state { padding: 80px 20px; text-align:center; color:var(--muted); }
.lightbox { width: min(1180px,96vw); height: min(790px,94vh); padding: 0; border: 1px solid var(--line); color: var(--paper); background: #100e0c; grid-template-columns: minmax(0,1.5fr) minmax(310px,.65fr); grid-template-rows:minmax(0,1fr); align-items:stretch; overflow: hidden; }
.lightbox[open] { display: grid; animation: appear .35s var(--ease); }.lightbox::backdrop { background: rgba(0,0,0,.84); backdrop-filter: blur(12px); }
@keyframes appear { from { opacity:0; transform:scale(.97); } }
.lightbox-visual { min-width:0; min-height:0; height:100%; padding:12px; background:#050505; display:flex; align-items:center; justify-content:center; overflow:auto; }
.lightbox-visual img { display:block; flex:0 0 auto; width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; border:0 }
.lightbox-visual iframe { width:100%; height:100%; border:0 }
.lightbox-visual .abstract-photo { position:relative; width:100%; height:100%; }
.video-format{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}.external-video-action[hidden]{display:none}
.lightbox-copy { min-width:0; padding: clamp(32px,5vw,70px) 32px; overflow-y:auto; overflow-x:hidden; }.lightbox-copy h2 { margin:0 0 15px; font:400 45px "Italiana",serif; overflow-wrap:anywhere; word-break:break-word; }
.lightbox-copy > p:not(.eyebrow) { color:var(--muted); line-height:1.6; }.lightbox-copy .tag-list { padding:12px 0; }
.lightbox details { border-top:1px solid var(--line); margin-top:20px; padding-top:18px; }.lightbox summary { cursor:pointer; font-size:12px; }
.lightbox dl { display:grid; grid-template-columns:auto 1fr; gap:8px 18px; color:var(--muted); font-size:11px; }
.dialog-close, .drawer-heading button { position:absolute; z-index:2; top:14px; right:14px; width:40px; height:40px; border:0; border-radius:50%; background:rgba(255,255,255,.1); cursor:pointer; font-size:24px; }
.lightbox-nav { position:absolute; z-index:2; top:50%; width:42px; height:42px; border:1px solid var(--line); border-radius:50%; background:rgba(0,0,0,.35); cursor:pointer; }.lightbox-nav.previous { left:12px; }.lightbox-nav.next { right:calc(36% + 12px); }
.primary-action { width:100%; border:0; border-radius:2px; padding:15px 18px; margin-top:25px; background:var(--gold); color:var(--ink); font-weight:700; cursor:pointer; }
.original-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:22px}.original-actions[hidden]{display:none}.secondary-action{display:grid;place-items:center;min-height:44px;padding:10px;border:1px solid var(--line);color:var(--paper);text-decoration:none;text-align:center;font-size:11px}.secondary-action:hover{border-color:var(--gold);color:var(--gold)}.secondary-action.download{color:var(--ink);background:var(--paper)}
.permalink-action{width:100%;margin:10px 0;cursor:pointer;background:transparent}
.selection-drawer { position:fixed; z-index:50; top:0; right:0; width:min(480px,100%); height:100%; padding:30px; background:#151310; transform:translateX(105%); transition:transform .45s var(--ease); display:flex; flex-direction:column; }
.selection-drawer.is-open { transform:none; }.drawer-backdrop { position:fixed; z-index:40; inset:0; background:rgba(0,0,0,.65); opacity:0; pointer-events:none; transition:.3s; }.drawer-backdrop.is-open { opacity:1; pointer-events:auto; }
.drawer-heading { position:relative; padding-bottom:20px; border-bottom:1px solid var(--line); }.drawer-heading h2 { font-size:50px; }.drawer-heading button { top:0; right:0; }
#selection-items { flex:1; overflow-y:auto; }.selection-item { display:flex; justify-content:space-between; gap:15px; padding:16px 0; border-bottom:1px solid var(--line); }.selection-item small { color:var(--muted); }.selection-item button { border:0; background:none; color:var(--gold); cursor:pointer; }
.drawer-footer p { color:var(--muted); font-size:11px; line-height:1.5; }
footer { min-height:230px; display:flex; align-items:center; justify-content:space-between; gap:25px; padding:50px clamp(22px,5vw,74px); border-top:1px solid var(--line); }
footer span { letter-spacing:.2em; font-weight:700; } footer i { color:var(--gold); } footer p { color:var(--muted); } footer a { color:var(--paper); }
.footer-signature { display:grid; gap:8px; text-align:center; }
.footer-signature p { margin:0; }
.footer-signature small { color:var(--muted); font-size:11px; letter-spacing:.04em; opacity:.8; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }
@media (max-width: 760px) {
    .topbar { grid-template-columns:1fr auto; height:66px; }.topbar nav { display:none; }.brand { font-size:12px; }.brand-logo{width:150px;height:auto}
    .hero { min-height:calc(100svh - 66px); grid-template-columns:1fr; align-content:center; }.hero-orbit { position:absolute; width:70vw; right:-26%; top:16%; opacity:.58; }
    .hero h1 { font-size:clamp(64px,21vw,110px); }.hero-copy { position:relative; z-index:1; }.hero-copy > p:last-child { max-width:75%; margin-top:32px; }
    .explorer { padding-top:75px; }.section-heading { align-items:start; }.section-heading > p { margin-top:6px; }.section-heading h2 { font-size:48px; }.show-grid{grid-template-columns:1fr}.show-cover{height:min(130vw,520px)}
    .advanced-filters { grid-template-columns:1fr; }.desktop-density-control { display:none !important; }.gallery { columns:2 150px; gap:8px; }.gallery.grid-layout { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }.media-card { margin-bottom:8px; }.media-meta { padding:11px 11px 7px; }.media-meta h3 { font-size:17px; }.tag-list { padding:0 11px 11px; }
    .lightbox[open] { grid-template-columns:1fr; grid-template-rows:minmax(48%,1fr) auto; height:96vh; }.lightbox-copy { padding:25px; max-height:42vh; }.lightbox-nav.next { right:12px; }.original-actions{grid-template-columns:1fr}
    footer { flex-direction:column; align-items:flex-start; }.footer-signature { text-align:left; }.selection-drawer { padding:22px; }
}
@media (prefers-reduced-motion: reduce) { *,*::before,*::after { animation-duration:.01ms!important; scroll-behavior:auto!important; transition-duration:.01ms!important; } }
.pick[hidden],#lightbox-pick[hidden]{display:none}
