:root{--bg:#f4f1ea;--ink:#171714;--muted:#6e6a62;--line:rgba(22,22,18,.12);--glass:rgba(246,243,237,.76)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.topbar{position:fixed;z-index:50;top:0;left:0;right:0;height:70px;display:flex;align-items:center;justify-content:center;background:var(--glass);backdrop-filter:blur(18px) saturate(120%);-webkit-backdrop-filter:blur(18px) saturate(120%);border-bottom:1px solid rgba(255,255,255,.38);transition:transform .3s ease,background .3s ease}.topbar.hidden{transform:translateY(-100%)}.brand{font-family:Georgia,"Times New Roman",serif;font-size:24px;letter-spacing:.015em;color:var(--ink);text-decoration:none}.intro{padding:106px 28px 20px;text-align:center}.intro p{margin:0;color:var(--muted);font-family:Georgia,"Times New Roman",serif;font-size:clamp(17px,2vw,23px);font-style:italic}.gallery{column-count:5;column-gap:12px;padding:16px 14px 38px;max-width:1800px;margin:0 auto}.card{break-inside:avoid;margin:0 0 12px;position:relative;overflow:hidden;border-radius:2px;background:#e9e5dd;cursor:zoom-in}.card img{display:block;width:100%;height:auto;transition:transform .55s cubic-bezier(.2,.7,.2,1),filter .35s ease}.card::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,8,.45),transparent 32%);opacity:0;transition:opacity .3s ease;pointer-events:none}.card-label{position:absolute;z-index:2;left:14px;bottom:12px;color:#fff;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:translateY(7px);transition:.3s ease}.card:hover img{transform:scale(1.018)}.card:hover::after,.card:hover .card-label{opacity:1}.card:hover .card-label{transform:translateY(0)}.sentinel{height:1px}.footer{padding:36px 22px 48px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:12px;letter-spacing:.04em;max-width:1800px;margin:0 auto}.footer a{color:inherit;text-decoration:none}.lightbox{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(18,18,16,.82);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#f7f5ef}.lightbox::backdrop{background:rgba(18,18,16,.82)}.lightbox[open]{display:block;animation:fadeIn .24s ease}.lightbox-shell{height:100%;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.55fr);gap:0}.lightbox-media{min-height:0;display:flex;align-items:center;justify-content:center;padding:34px 30px 34px 58px}.lightbox-media img{max-width:100%;max-height:calc(100dvh - 68px);object-fit:contain;box-shadow:0 18px 70px rgba(0,0,0,.22);animation:zoomIn .28s ease}.lightbox-copy{background:rgba(246,243,237,.96);color:var(--ink);padding:clamp(44px,6vh,80px) clamp(28px,4vw,58px);overflow:auto;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-size:11px;letter-spacing:.19em;text-transform:uppercase;color:#7b766d;margin-bottom:20px}.lightbox-copy h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(35px,4vw,58px);font-weight:400;line-height:1.02;margin:0 0 12px}.category{margin:0 0 32px;color:#746f66;font-size:12px;letter-spacing:.13em;text-transform:uppercase}.description{font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.62;margin:0 0 28px}.palette{font-size:13px;line-height:1.7;color:#625e57;margin:0 0 28px}.palette span:first-child{text-transform:uppercase;letter-spacing:.12em;font-size:10px}.availability{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:0 0 28px;display:flex;flex-direction:column;gap:7px}.availability strong{font-family:Georgia,"Times New Roman",serif;font-size:17px;font-weight:400}.availability span{font-size:12px;letter-spacing:.07em;text-transform:uppercase}.availability p{font-size:12px;color:#777169;margin:3px 0 0}.cta{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:0 22px;background:#1c1c18;color:#fff;text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:11px;transition:.25s ease}.cta:hover{background:#39382f}.contact{font-size:11px;line-height:1.65;color:#777169;margin:20px 0 0}.contact a{color:inherit}.close,.nav{position:fixed;z-index:70;border:0;color:#fff;background:rgba(20,20,18,.36);backdrop-filter:blur(8px);cursor:pointer}.close{top:16px;right:16px;width:44px;height:44px;border-radius:50%;font-size:28px;line-height:40px}.nav{top:50%;width:40px;height:62px;transform:translateY(-50%);font-size:34px}.prev{left:10px}.next{right:calc(min(34vw,460px) + 10px)}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes zoomIn{from{opacity:.3;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@media(max-width:1300px){.gallery{column-count:4}.lightbox-shell{grid-template-columns:minmax(0,1.25fr) 420px}.next{right:430px}}@media(max-width:900px){.gallery{column-count:3;padding-left:10px;padding-right:10px;column-gap:10px}.card{margin-bottom:10px}.lightbox-shell{grid-template-columns:1fr;height:auto;min-height:100%}.lightbox-media{padding:58px 18px 18px;height:66dvh}.lightbox-media img{max-height:calc(66dvh - 76px)}.lightbox-copy{min-height:34dvh;padding:34px 24px 42px;justify-content:flex-start}.next{right:10px}.nav{top:33dvh}.footer{flex-direction:column}}@media(max-width:620px){.topbar{height:62px}.brand{font-size:21px}.intro{padding:88px 18px 13px}.gallery{column-count:2;column-gap:8px;padding:10px 8px 28px}.card{margin-bottom:8px}.card-label{display:none}.lightbox-copy h1{font-size:38px}.description{font-size:16px}.close{top:10px;right:10px}.lightbox-media{height:58dvh;padding:54px 10px 12px}.lightbox-media img{max-height:calc(58dvh - 66px)}.nav{top:29dvh;width:34px;height:54px}.lightbox-copy{min-height:42dvh}.footer{padding:28px 14px 38px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}


/* Maupiti image protection */
img, .art-card, .artwork-image, .gallery-item {
  -webkit-user-drag: none;
  user-drag: none;
  -webkit-touch-callout: none;
}
img {
  user-select: none;
  -webkit-user-select: none;
}


/* Homepage category filters */
.filters{max-width:1800px;margin:0 auto;padding:4px 18px 14px;display:flex;justify-content:center;gap:8px;flex-wrap:wrap;position:relative;z-index:2}
.filter{appearance:none;border:1px solid rgba(22,22,18,.16);background:rgba(255,255,255,.22);color:#625e57;border-radius:999px;padding:9px 15px;font:500 11px/1 Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,color .2s ease,border-color .2s ease,transform .2s ease}
.filter:hover{border-color:rgba(22,22,18,.4);transform:translateY(-1px)}
.filter.active{background:#1c1c18;color:#fff;border-color:#1c1c18}
.card-label{display:flex;flex-direction:column;gap:4px}.card-label b{font-weight:600}.card-label em{font-style:normal;font-size:9px;letter-spacing:.12em;opacity:.82}
@media(max-width:620px){.filters{padding:2px 8px 10px;justify-content:flex-start;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{flex:0 0 auto;padding:8px 12px;font-size:10px}}

/* Accessible indexed artwork description, supplementary to interactive lightbox */
.artwork-static{max-width:1060px;margin:34px auto 76px;padding:22px;display:grid;grid-template-columns:minmax(180px,280px) 1fr;gap:28px;align-items:center;color:#242424}.artwork-static img{width:100%;height:auto;border-radius:3px}.artwork-static h2{font-size:clamp(1.6rem,3vw,2.6rem);line-height:1.1;margin:.3em 0}.artwork-static p{line-height:1.65}.artwork-static a{color:inherit;text-decoration:underline}.artwork-static .small{font-size:.82rem;letter-spacing:.1em;text-transform:uppercase}.artwork-index{max-width:1100px;margin:30px auto 75px;padding:0 22px}.artwork-index details{border-top:1px solid #ccc;padding:20px 0}.artwork-index summary{cursor:pointer}.artwork-index ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px 25px;list-style:none;padding:15px 0}.artwork-index a{color:inherit}.artwork-static:focus{outline:0}@media(max-width:650px){.artwork-static{grid-template-columns:1fr;padding:20px}.artwork-static img{max-width:440px}}
