/* Gallery, compact labels and shared like control. */
.showcase-gallery{max-width:1920px;width:calc(100% - 48px);margin:70px auto;padding:0;text-align:center}
.showcase-gallery-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px;text-align:left}
.showcase-gallery .showcase-gallery-heading h2{font:400 .625rem/1.6 'Space Mono',monospace;letter-spacing:.12em;margin:0}
.showcase-gallery-heading .revisit-characters{font-size:.6875rem;margin:0;white-space:normal}
.showcase-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:14px}
.showcase-card{position:relative;aspect-ratio:3/4;border:1px solid #493750;border-radius:12px;isolation:isolate;background:#161019;transition:transform .3s,box-shadow .3s,border-color .3s;--glow:#9d4cc9}
.showcase-card.simple{--glow:#70b39b;border-color:#354b40}
.showcase-card:hover{transform:translateY(-5px);box-shadow:0 12px 30px color-mix(in srgb,var(--glow),transparent 76%);border-color:var(--glow)}
.showcase-open{width:100%;height:100%;padding:0;border:0;border-radius:inherit;background:none;color:white;cursor:pointer;overflow:hidden;position:relative;display:block}
.showcase-open>img{display:block;width:100%;height:100%;object-fit:cover}
.showcase-card-title{position:absolute;bottom:0;left:0;width:100%;padding:45px 10px 12px;background:linear-gradient(transparent,#09070bf5);font-size:.8125rem;line-height:1.35;font-weight:450;text-align:left;overflow-wrap:anywhere}
.showcase-card-meta{display:block;font-size:.5625rem;line-height:1.5;opacity:.85;margin-top:4px;font-weight:400}
.showcase-author-name{position:absolute;top:0;right:0;left:48px;min-width:0;padding:10px 8px 25px 3px;text-align:right;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.5rem;line-height:1.6;color:#ede3f3;text-shadow:0 1px 4px #000;background:linear-gradient(#08070b99,transparent)}
.portrait-like-layer{position:absolute;inset:0;z-index:2;border-radius:inherit;overflow:hidden;pointer-events:none}
.showcase-like{position:absolute;left:auto;right:8px;top:8px;z-index:2;width:max-content;max-width:calc(100% - 16px);min-width:28px;height:28px;padding:4px 5px;display:flex;gap:4px;align-items:center;justify-content:center;border:0;border-radius:999px;background:transparent;backdrop-filter:none;pointer-events:auto;white-space:nowrap;color:#f4eaf8;text-decoration:none;cursor:pointer;filter:drop-shadow(0 1px 3px #000a)}
.showcase-like svg{width:14px;height:14px;flex:none;fill:transparent;stroke:currentColor;stroke-width:1.8;transition:color .2s,fill .2s;pointer-events:none}
.showcase-like small{flex:none;font:400 .5rem/1 Rubik,sans-serif;font-variant-numeric:tabular-nums;white-space:nowrap;padding:0}
.showcase-like:hover,.showcase-like.is-liked{color:#f35f76}
.showcase-like.is-liked svg{fill:currentColor}
.showcase-like:disabled{cursor:default;opacity:.65}
.showcase-like.heartbeat svg{animation:showcase-heartbeat .5s ease-in-out 1}
.like-spark{position:absolute;top:7px;left:9px;font-size:8px;color:#f35f76;pointer-events:none;animation:showcase-love .65s var(--delay) ease-out both}
@keyframes showcase-love{0%{opacity:0;transform:translate(0,0) scale(.4)}20%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy)) scale(.7)}}
@keyframes showcase-heartbeat{0%,100%{transform:scale(1)}35%{transform:scale(1.25)}65%{transform:scale(.95)}}
.showcase-blank{height:100%;display:grid;place-items:center;font-size:3rem;color:#a967c055}
.showcase-share-panel{text-align:center;padding:32px;border-top:1px solid #53315f;margin-top:28px}.showcase-share-panel p{color:#bea2ce}.showcase-loading{padding:80px 24px;text-align:center}.showcase-loading p{color:#b9a0c6}
@media(max-width:1000px){.showcase-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.showcase-gallery{width:calc(100% - 40px)}}
@media(max-width:600px){.showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.showcase-gallery{width:calc(100% - 32px)}.showcase-gallery-heading{gap:12px;flex-wrap:wrap}.showcase-gallery-heading .revisit-characters{font-size:.625rem}.showcase-card{border-radius:9px}.showcase-card-title{font-size:.625rem;padding:35px 7px 9px}.showcase-card-meta{font-size:.4375rem;line-height:1.6}.showcase-author-name{font-size:.4375rem;padding:9px 6px 20px 0;left:42px}.showcase-like svg{width:12px;height:12px}}
@media(prefers-reduced-motion:reduce){.showcase-card,.showcase-like svg{transition:none}.showcase-card:hover{transform:none}.showcase-like.heartbeat svg,.like-spark{animation:none}}
.finalise-portrait-choice{display:flex;align-items:center;gap:12px;margin-top:22px}.finalise-portrait-choice input{width:20px;height:20px;accent-color:#b854db;flex-shrink:0}
