:root{color-scheme:dark;--purple:#c3a0e7;background:#131116;color:#f5f2f6;font-family:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid var(--purple);outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 4.5%;background:#131116;position:sticky;top:0;z-index:5}.brand{font-size:16px;letter-spacing:.22em;white-space:nowrap}.brand span{display:block;margin-top:8px;font-size:10px;letter-spacing:.22em;color:#c0b8c8}nav{display:flex;gap:24px;align-items:center}nav button{background:none;border:0;padding:12px 0;font-size:13px;color:#c0b8c8}nav button[aria-pressed=true]{color:var(--purple);text-decoration:underline;text-underline-offset:8px}nav button:hover,a:hover{color:var(--purple)}main{columns:3;column-gap:0}.painting{display:block;position:relative;break-inside:avoid;line-height:0}.painting[hidden]{display:none}.painting img{width:100%;height:auto;display:block}.painting span{position:absolute;bottom:24px;left:24px;right:24px;line-height:1.4;font-size:15px;opacity:0;color:#e5c7ff;text-shadow:0 2px 8px #000,0 0 16px #a76bd7;pointer-events:none}.painting:hover span,.painting:focus-visible span{opacity:1}.painting:focus-visible{outline-offset:-5px;z-index:1}dialog{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;margin:0;padding:55px 5% 28px;border:0;background:#131116;color:#f5f2f6}dialog[open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}dialog::backdrop{background:#131116}dialog>img{display:block;max-width:100%;max-height:calc(100dvh - 180px);object-fit:contain;min-height:0}.close{position:absolute;right:22px;top:12px;width:44px;height:44px;font-size:32px;border:0;background:none}.details{text-align:center}.details h1{font-size:20px;font-weight:400;margin:0 0 12px}.details a{font-size:13px;color:var(--purple)}body:has(dialog[open]){overflow:hidden}.sr-only,.skip{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.skip:focus{clip-path:none;top:0;left:0;width:auto;height:auto;padding:15px;background:#131116;z-index:10}@media(max-width:1000px){main{columns:2}header{padding:18px 4%;gap:14px}nav{gap:15px}}@media(max-width:620px){header{align-items:flex-start;flex-direction:column;gap:10px;padding:16px 6%}.brand{font-size:13px}.brand span{font-size:9px;margin-top:5px}nav{width:100%;justify-content:space-between;gap:8px}nav button{font-size:12px;min-height:44px}main{columns:2}.painting span{font-size:12px;left:10px;bottom:12px;right:10px}}@media(max-width:380px){main{columns:1}}
.portfolio-navigation{display:flex;align-items:center;gap:32px}.gallery-return{font-size:13px;color:var(--muted,#c0b8c8);white-space:nowrap;padding:12px 0}.gallery-return:hover,.gallery-return:focus-visible{color:var(--purple);text-shadow:0 0 16px #a76bd799}@media(max-width:1000px){.portfolio-navigation{gap:22px}}@media(max-width:800px) and (min-width:621px){header{align-items:flex-start;flex-direction:column}.portfolio-navigation{width:100%;justify-content:space-between}}@media(max-width:620px){.portfolio-navigation{width:100%;flex-wrap:wrap;gap:4px 20px}.portfolio-navigation nav{flex:1 1 100%}.gallery-return{margin-left:auto;font-size:12px;min-height:44px}}

/* Filters have their own row so navigation remains easy to tap. */
header{display:grid;grid-template-columns:auto 1fr;row-gap:12px}.portfolio-navigation{grid-column:1/-1;justify-content:space-between}.portfolio-navigation nav{width:auto;justify-content:flex-start;gap:28px}.portfolio-navigation .gallery-return{margin-left:auto}.portfolio-footer{padding:24px 4.5%;border-top:1px solid #ffffff25}#painting-facts,#painting-availability{font-size:13px;line-height:1.5;color:#c0b8c8;margin:5px 0}.painting-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 28px;margin-top:8px}.painting-actions a{display:inline-flex;align-items:center;min-height:44px}dialog>img{max-height:calc(100dvh - 280px)}
@media(max-width:700px){header{position:static;display:flex;align-items:flex-start;gap:14px}.portfolio-navigation nav{gap:16px;flex-wrap:wrap}.portfolio-navigation{gap:8px}.portfolio-navigation nav{flex:1 1 100%}.details{width:100%}.painting-actions{gap:0 20px}dialog{padding:60px 5% 20px}dialog>img{max-height:calc(100dvh - 310px)}}
