/* V1.1.1: isolate discovery controls from Astra's global button styling. */
.site-content {margin:75px 30px 0 30px}.plnp-canvas button{appearance:none;-webkit-appearance:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;color:inherit;font:inherit;font-size:inherit;font-weight:inherit;line-height:normal;text-transform:none}
:root{--plnp-purple:var(--ast-global-color-0,#CC9EFD);--plnp-yellow:var(--ast-global-color-1,#FDE58C);--plnp-ink:var(--ast-global-color-3,#20222c);--plnp-muted:#6b6d76;--plnp-soft:#f5f5f3;--plnp-line:#e7e7e4;--plnp-page:clamp(18px,5vw,50px);--plnp-radius:22px}
.plnp-canvas{position:relative;width:100%;max-width:none;overflow:hidden;background:#fff;color:var(--plnp-ink)}.plnp-canvas *{box-sizing:border-box}.plnp-loading{position:fixed;inset:0;z-index:9996;pointer-events:none;background:rgba(255,255,255,.06);opacity:0;transition:opacity .2s}.plnp-loading[aria-hidden=false]{opacity:1}.plnp-loading span{position:absolute;right:22px;top:22px;width:28px;height:28px;border:3px solid rgba(0,0,0,.12);border-top-color:var(--plnp-purple);border-radius:50%;animation:plnp-spin .65s linear infinite}@keyframes plnp-spin{to{transform:rotate(360deg)}}
.plnp-eyebrow{display:block;margin-bottom:4px;font-size:11px;line-height:1.2;font-weight:750;letter-spacing:.13em;text-transform:uppercase;color:var(--plnp-muted)}
/* Hero */
.plnp-home-banner{margin:0;padding:0}
.plnp-hero-wrap{padding:0}.plnp-hero{position:relative;min-height:min(80vh,740px);overflow:hidden;background:var(--plnp-soft)}.plnp-hero-media{position:absolute;inset:0}.plnp-hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.04),transparent 35%,transparent 65%,rgba(0,0,0,.04))}.plnp-hero-media img{width:100%;height:100%;object-fit:cover;display:block}.plnp-hero-copy{position:absolute;z-index:2;bottom:30px;width:min(40vw,500px);padding:clamp(20px,3.4vw,40px);background:var(--plnp-yellow);box-shadow:0 20px 60px rgba(20,20,20,.10)}.plnp-hero--purple .plnp-hero-copy{background:var(--plnp-purple)}.plnp-hero--left .plnp-hero-copy{left:var(--plnp-page)}.plnp-hero--right .plnp-hero-copy{right:var(--plnp-page)}.plnp-hero-copy h1{margin:0 0 12px;font-size:clamp(34px,4.2vw,36px);line-height:.98;letter-spacing:-.045em;color:var(--plnp-ink)}.plnp-hero-copy p{margin:0 0 15px;font-size:clamp(15px,1.35vw,17px);line-height:1.5;color:var(--plnp-ink)}.plnp-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 25px;border-radius:999px;background:#fff;font-family:Poppins,Arial,sans-serif;font-weight:800;color:var(--ast-global-color-3);text-decoration:none!important;font-weight:750;transition:transform .18s ease,box-shadow .18s ease}.plnp-button:hover{transform:translateY(-2px);box-shadow:0 9px 22px rgba(0,0,0,.1)}.plnp-hero-empty{min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;background:var(--plnp-soft);color:var(--plnp-muted);text-align:center;padding:40px}
/* Shared headings */
.plnp-section-head,.plnp-print-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:0 var(--plnp-page)}.plnp-section-head h2,.plnp-print-head h2{margin:0;font-size:clamp(28px,3.4vw,46px);line-height:1;letter-spacing:-.035em}.plnp-print-head p{margin:8px 0 0;color:var(--plnp-muted);font-size:14px}
/* Collections */
.plnp-collections{padding:clamp(38px,5vw,72px) 0 clamp(40px,5.5vw,80px);border-bottom:1px solid var(--plnp-line)}.plnp-row-arrows{display:flex;gap:8px}.plnp-row-arrows button{width:40px;height:40px;padding:0;border:1px solid var(--plnp-line);border-radius:50%;background:#fff;color:var(--plnp-ink);font-size:25px;line-height:1;cursor:pointer}.plnp-collection-track{display:flex;gap:clamp(14px,1.8vw,26px);overflow-x:auto;padding:18px var(--plnp-page) 8px;scrollbar-width:none;scroll-snap-type:x proximity}.plnp-collection-track::-webkit-scrollbar{display:none}.plnp-collection-tile{flex:0 0 clamp(210px,23vw,335px);min-width:0;padding:0;border:0;background:transparent;text-align:left;cursor:pointer;scroll-snap-align:start;color:var(--plnp-ink)}.plnp-collage{display:grid;width:100%;aspect-ratio:1.42;overflow:hidden;border-radius:18px;background:var(--plnp-soft);transition:transform .2s ease,box-shadow .2s ease}.plnp-collage span{background:center/cover no-repeat;background-size:100% auto}.plnp-collage--1{grid-template-columns:1fr}.plnp-collage--2{grid-template-columns:1fr 1fr}.plnp-collage--3,.plnp-collage--4{grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}.plnp-collage--3 span:first-child{grid-row:1/3}.plnp-collection-tile:hover .plnp-collage{transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.09)}.plnp-collection-tile.is-active .plnp-collage{outline:3px solid var(--plnp-purple);outline-offset:3px}.plnp-collection-name{display:block;margin-top:11px;font-size:15px;font-weight:750}.plnp-row-empty{padding:20px;background:var(--plnp-soft);border-radius:14px;color:var(--plnp-muted)}
/* Prints */
.plnp-prints-section{padding:clamp(48px,6vw,88px) 0 100px;scroll-margin-top:18px}.plnp-filter-trigger{display:inline-flex;align-items:center;gap:9px;min-height:46px;padding:0 17px;border:1px solid var(--plnp-ink);border-radius:999px;background:#fff;color:var(--plnp-ink);font-weight:700;cursor:pointer}.plnp-filter-trigger svg{width:21px;height:21px}.plnp-filter-count{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:var(--plnp-purple);font-size:12px}.plnp-active-bar{display:flex;gap:8px;flex-wrap:wrap;padding:20px var(--plnp-page) 2px}.plnp-active-filter{border:0;border-radius:999px;padding:8px 12px;background:var(--plnp-yellow);color:var(--plnp-ink);cursor:pointer;font-size:13px;font-weight:650}.plnp-print-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(24px,2.5vw,42px) clamp(16px,2vw,30px);padding:30px var(--plnp-page) 0;transition:opacity .18s ease,transform .18s ease}.plnp-print-grid.is-leaving{opacity:.18;transform:translateY(10px)}.plnp-print-grid.is-entering{animation:plnp-grid-in .36s ease both}@keyframes plnp-grid-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}.plnp-print-card{min-width:0;transition:opacity .38s ease,transform .38s ease}.plnp-print-card.is-new{opacity:0;transform:translateY(22px)}.plnp-print-image{display:block;width:100%;aspect-ratio:1/1.12;border-radius:18px;overflow:hidden;background:var(--plnp-soft);text-decoration:none}.plnp-print-image img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .25s ease}.plnp-print-card:hover .plnp-print-image img{transform:scale(1.025)}.plnp-print-card h3{margin:12px 0 4px;font-size:clamp(14px,1.25vw,18px);line-height:1.22}.plnp-print-card h3 a{color:inherit;text-decoration:none}.plnp-print-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;color:var(--plnp-muted);font-size:12px}.plnp-print-meta strong{color:var(--plnp-ink);font-size:13px;white-space:nowrap}.plnp-no-results{grid-column:1/-1;display:flex;flex-direction:column;gap:5px;padding:48px;border-radius:18px;background:var(--plnp-soft);color:var(--plnp-muted)}.plnp-no-results strong{color:var(--plnp-ink);font-size:20px}.plnp-load-sentinel{display:flex;align-items:center;justify-content:center;height:90px;color:var(--plnp-muted);font-size:13px}.plnp-load-sentinel[hidden]{display:none}.plnp-load-sentinel.is-loading span:after{content:"";display:inline-block;width:13px;height:13px;margin-left:8px;border:2px solid #ddd;border-top-color:var(--plnp-purple);border-radius:50%;vertical-align:-2px;animation:plnp-spin .7s linear infinite}
/* Off-canvas filters */
.plnp-filter-backdrop{position:fixed;inset:0;z-index:9997;background:rgba(25,25,30,.34);opacity:0;pointer-events:none;transition:opacity .26s ease}.plnp-filter-backdrop.is-open{opacity:1;pointer-events:auto}.plnp-filter-drawer{position:fixed;z-index:9998;right:0;top:0;height:100dvh;width:min(560px,92vw);background:#fff;box-shadow:-20px 0 70px rgba(0,0,0,.12);transform:translateX(104%);transition:transform .3s cubic-bezier(.22,.72,.28,1);display:grid;grid-template-rows:auto minmax(0,1fr) auto}.plnp-filter-drawer[aria-hidden=false]{transform:translateX(0)}.plnp-filter-open{overflow:hidden}.plnp-filter-drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:28px 28px 22px;border-bottom:1px solid var(--plnp-line)}.plnp-filter-drawer-head h2{margin:0;font-size:34px;letter-spacing:-.035em}.plnp-filter-close{width:42px;height:42px;border:0;border-radius:50%;background:var(--plnp-soft);font-size:29px;line-height:1;cursor:pointer}.plnp-filter-drawer [data-plnp-filter-content]{overflow:auto;padding:4px 28px 30px}.plnp-filter-group{padding:27px 0;border-bottom:1px solid var(--plnp-line)}.plnp-filter-group:last-child{border-bottom:0}.plnp-filter-group-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:17px}.plnp-filter-group h3{margin:0;font-size:20px}.plnp-filter-group-head span{font-size:12px;color:var(--plnp-muted)}.plnp-icon-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.plnp-icon-option{min-width:0;padding:9px 4px 8px;border:1px solid transparent;border-radius:15px;background:transparent;color:var(--plnp-ink);cursor:pointer;font-size:11px;font-weight:650;text-align:center;transition:background .16s ease,transform .16s ease,border-color .16s ease}.plnp-icon-option:hover{transform:translateY(-2px);/*background:var(--plnp-soft)*/}.plnp-icon-option.is-active{/*border-color:var(--plnp-purple);background:color-mix(in srgb,var(--plnp-purple) 16%,white)*/background:transparent}.plnp-filter-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;margin:0 auto 7px}.plnp-filter-icon img,.plnp-filter-icon svg{display:block;max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}.plnp-filter-icon--placeholder{border:1.5px dashed #c9c9c5;border-radius:50%}.plnp-filter-icon--svg .cat_icon{fill:var(--plnp-ink)}.plnp-filter-empty{grid-column:1/-1;color:var(--plnp-muted);font-size:13px}.plnp-filter-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 28px;border-top:1px solid var(--plnp-line);background:#fff}.plnp-filter-reset{border:0;background:transparent;text-decoration:underline;color:var(--plnp-muted);cursor:pointer}.plnp-filter-done{min-height:44px;padding:0 22px;border:0;border-radius:999px;background:var(--plnp-yellow);color:var(--plnp-ink);font-weight:750;cursor:pointer}
@media(max-width:1020px){.plnp-print-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.plnp-hero-copy{width:min(40vw,540px)}}
@media(max-width:782px){.plnp-hero{min-height:0;overflow:visible;padding-bottom:0;background:#fff}.plnp-hero-media{position:relative;height:62vw;min-height:350px}.plnp-hero-media:after{display:none}.plnp-hero-copy,.plnp-hero--left .plnp-hero-copy,.plnp-hero--right .plnp-hero-copy{position:relative;top:auto;left:auto;right:auto;transform:none;width:min(85vw,620px);max-width:85vw;margin:0 auto;padding:28px;box-shadow:0 15px 45px rgba(0,0,0,.11)}.plnp-hero-copy h1{font-size:clamp(34px,9vw,52px)}.plnp-collections{padding-top:52px}.plnp-row-arrows{display:none}.plnp-collection-tile{flex-basis:58vw}.plnp-print-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 14px}.plnp-section-head,.plnp-print-head{align-items:center}.plnp-print-head .plnp-eyebrow,.plnp-print-head p{display:none}.plnp-filter-trigger span:not(.plnp-filter-count){display:none}.plnp-filter-trigger{width:46px;padding:0;justify-content:center}.plnp-filter-drawer{width:min(92vw,520px)}.plnp-icon-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){:root{--plnp-page:18px}.site-content {margin:70px 15px 0 15px}.plnp-hero-media{height:78vw;min-height:310px}.plnp-hero-copy{margin-top:-82px;padding:24px}.plnp-hero-copy p{font-size:14px}.plnp-collection-tile{flex-basis:68vw}.plnp-prints-section{padding-top:46px}.plnp-print-head h2{font-size:31px}.plnp-print-image{border-radius:14px}.plnp-print-card h3{font-size:13px}.plnp-print-meta{display:block}.plnp-print-meta strong{display:block;margin-top:2px}.plnp-filter-drawer-head,.plnp-filter-drawer [data-plnp-filter-content],.plnp-filter-footer{padding-left:20px;padding-right:20px}.plnp-filter-group-head{display:block}.plnp-filter-group-head span{display:block;margin-top:3px}.plnp-filter-icon{width:50px;height:50px}}
@media(prefers-reduced-motion:reduce){.plnp-canvas *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* filter icons */
.plnp-icon-option .icon-mood {fill:var(--ast-global-color-3)}
.plnp-icon-option .icon-mood-circle {fill:transparent}
.plnp-icon-option.is-active .icon-mood-circle,.plnp-icon-option:hover .icon-mood-circle {fill:var(--ast-global-color-1)}
.plnp-icon-option .cat_accent {fill:var(--ast-global-color-5)}
.plnp-icon-option:hover .cat_accent,.plnp-icon-option.is-active .cat_accent{fill:var(--ast-global-color-1)}

/* V1.1.1 responsive hero focal points. */
.plnp-hero-media img{object-position:var(--plnp-hero-dx,50%) var(--plnp-hero-dy,50%)}
@media(max-width:767px){.plnp-hero-media img{object-position:var(--plnp-hero-mx,50%) var(--plnp-hero-my,50%)}}

/* PLNP V1.2.0 — stable masonry discovery + viewport reveal.
   Columns are assigned once in source order, so late image loads / new batches do
   not reshuffle cards between columns. Only a responsive breakpoint change rebuilds them. */
.plnp-print-grid.is-masonry{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    align-items:start;
    gap:0 clamp(16px,2vw,30px);
}
.plnp-masonry-column{
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:clamp(24px,2.5vw,42px);
}
.plnp-print-grid.is-masonry .plnp-print-card{
    width:100%;
    min-width:0;
    opacity:1;
    transform:none;
}
.plnp-print-grid.is-masonry .plnp-print-card.is-reveal-pending{
    opacity:0;
    transform:translateY(18px) scale(.965);
}
.plnp-print-grid.is-masonry .plnp-print-card.is-reveal-visible{
    opacity:1;
    transform:translateY(0) scale(1);
    transition:opacity .48s cubic-bezier(.22,.72,.28,1),transform .52s cubic-bezier(.22,.72,.28,1);
}
.plnp-print-grid.is-masonry .plnp-print-image{
    height:auto;
    aspect-ratio:var(--plnp-image-ratio,auto);
}
.plnp-print-grid.is-masonry .plnp-print-image img{
    width:100%;
    height:auto;
    aspect-ratio:inherit;
    object-fit:contain;
}
@media(max-width:1020px){.plnp-print-grid.is-masonry{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:782px){.plnp-print-grid.is-masonry{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){
    .plnp-print-grid.is-masonry .plnp-print-card.is-reveal-pending,
    .plnp-print-grid.is-masonry .plnp-print-card.is-reveal-visible{opacity:1;transform:none;transition:none}
}

/* PLNP V1.2.2 — very wide artwork still gets a useful visual tile height. */
.plnp-print-grid.is-masonry .plnp-print-image{
    min-height:70px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--plnp-tile-background,var(--plnp-soft));
}
.plnp-print-grid.is-masonry .plnp-print-image img{
    flex:0 0 auto;
    max-height:100%;
}

