/* Studio Memo — individual artist page / mobile first, independent of the overview. */
.memo-artist-detail{
  position:absolute;inset:0;z-index:5;background:#11100f;color:#fff;
  overflow:hidden;opacity:0;visibility:hidden;transform:translateY(100%);
  transition:transform .48s cubic-bezier(.19,.73,.22,1),opacity .35s ease,visibility .35s;
}
.memo-artist-detail.is-open{opacity:1;visibility:visible;transform:translateY(0)}
.artist-scroll{
  height:100%;width:100%;overflow-y:auto;overflow-x:hidden;
  overscroll-behavior-y:contain;scroll-snap-type:y mandatory;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
}
.artist-scroll::-webkit-scrollbar{display:none}
.artist-scroll>section{
  position:relative;isolation:isolate;width:100%;height:100svh;min-height:100svh;
  scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;
}
@supports(height:100dvh){.artist-scroll>section{height:100dvh;min-height:100dvh}}
.artist-chrome{
  position:absolute;top:max(15px,env(safe-area-inset-top));left:0;right:0;z-index:4;
  display:flex;justify-content:space-between;align-items:center;
  padding:0 clamp(20px,5vw,85px);pointer-events:none;
}
.artist-chrome>span{font:600 10px/1.25 var(--memo-copy,"Roboto",Arial,sans-serif);letter-spacing:.2em;color:#fff;text-shadow:0 2px 12px #0009}
.artist-return{
  width:44px;height:44px;border:1px solid rgba(255,255,255,.23);
  border-radius:50%;background:var(--memo-glass-bg,rgba(32,32,36,.38));
  color:#fff;display:grid;place-items:center;pointer-events:auto;
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  box-shadow:var(--memo-glass-shadow,0 8px 30px #0004);
}
.artist-return svg{display:block;width:22px;height:22px}
.artist-hero{background:#171615}
.artist-hero-image,.artist-hero-shade{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.artist-hero-image{z-index:-2;object-fit:cover;object-position:center 35%}
.artist-hero-shade{z-index:-1;background:linear-gradient(180deg,#09090949 0%,#09090927 32%,#070606b0 61%,#090808e7 100%)}
.artist-hero-title{position:absolute;top:clamp(95px,22svh,200px);left:0;right:0;text-align:center;padding:0 20px}
.artist-hero-title p,.artist-work-heading p{font:600 10px/1.2 var(--memo-copy,"Roboto",Arial,sans-serif);letter-spacing:.2em;margin:0 0 7px;color:#fff}
.artist-hero-title h2{font:500 clamp(49px,14vw,86px)/1 var(--memo-display,"Montserrat",Arial,sans-serif);letter-spacing:-.07em;margin:0;text-shadow:0 3px 22px #000a}
.artist-hero-title h2 span{color:#fff}
.artist-sheet{
  position:absolute;left:0;right:0;bottom:0;
  border:1px solid rgba(255,255,255,.26);border-bottom:0;
  border-radius:34px 34px 0 0;background:rgba(39,38,39,.87);
  -webkit-backdrop-filter:blur(30px) saturate(145%);backdrop-filter:blur(30px) saturate(145%);
  box-shadow:0 -12px 55px #0005,inset 0 1px 0 rgba(255,255,255,.12);
  padding:12px clamp(20px,5vw,46px) max(25px,env(safe-area-inset-bottom));
  max-width:650px;margin:0 auto;will-change:transform;
}
.memo-artist-detail.is-open .artist-sheet{animation:artist-sheet-in .58s cubic-bezier(.15,.8,.2,1) .06s both}
@keyframes artist-sheet-in{from{transform:translateY(50px);opacity:.35}to{transform:translateY(0);opacity:1}}
.artist-sheet-handle{width:41px;height:4px;border-radius:8px;background:#ffffff80;margin:0 auto 16px}
.artist-summary{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:15px;align-items:stretch}
.artist-summary-work{width:100%;height:clamp(114px,19svh,163px);object-fit:cover;object-position:50% 48%;border-radius:21px;display:block;min-width:0}
.artist-summary-detail{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0}
.artist-initial{
  width:37px;height:37px;border-radius:50%;border:1px solid #ffffff80;display:grid;place-items:center;
  background:#ffffff24;margin-bottom:8px;font:600 17px/1 var(--memo-display,"Montserrat",Arial,sans-serif);
}
.artist-role{font:600 9px/1.1 var(--memo-copy,"Roboto",Arial,sans-serif);letter-spacing:.14em;color:#fff}
.artist-summary-detail h3{font:600 clamp(21px,5.1vw,31px)/1.12 var(--memo-display,"Montserrat",Arial,sans-serif);letter-spacing:-.05em;margin:6px 0}
.artist-summary-detail p{font:400 12px/1.35 var(--memo-copy,"Roboto",Arial,sans-serif);color:#fff;margin:0}
.artist-sheet-intro{font:400 13px/1.45 var(--memo-copy,"Roboto",Arial,sans-serif);margin:15px 0 16px;color:#fff;max-width:55ch}
.artist-contact-button,.artist-instagram-button{
  display:flex;align-items:center;justify-content:center;gap:10px;
  width:100%;min-height:54px;padding:12px 20px;
  border:1px solid var(--memo-glass-border,rgba(255,255,255,.2));
  border-radius:999px;background:var(--memo-glass-bg,rgba(32,32,36,.38));
  -webkit-backdrop-filter:blur(22px) saturate(160%);backdrop-filter:blur(22px) saturate(160%);
  box-shadow:var(--memo-glass-shadow,0 8px 30px #0004);
  color:#fff;font:600 15px/1.2 var(--memo-copy,"Roboto",Arial,sans-serif);text-decoration:none;
}
.artist-contact-button:disabled{opacity:1;cursor:default;-webkit-text-fill-color:#fff}
.artist-contact-button:not(:disabled):hover,.artist-instagram-button:hover{border-color:#ffffff75;background:rgba(60,60,64,.48)}

/* Portfolio: second full-height vertical page, with four original uploaded images. */
.artist-work-section{background:#100f0e}
.artist-work-inner{
  height:100%;min-height:0;width:min(100%,720px);margin:0 auto;
  display:flex;flex-direction:column;gap:clamp(12px,2vh,20px);
  padding:clamp(71px,11svh,100px) clamp(18px,5vw,40px) max(22px,env(safe-area-inset-bottom));
}
.artist-work-heading{flex:none}
.artist-work-heading h2{font:500 clamp(38px,9.8vw,66px)/.99 var(--memo-display,"Montserrat",Arial,sans-serif);letter-spacing:-.06em;margin:3px 0 0}
.artist-work-grid{flex:1;min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:12px}
.artist-work-grid figure{margin:0;min-height:0;min-width:0;border-radius:20px;overflow:hidden;background:#302a26;position:relative}
.artist-work-grid img{width:100%;height:100%;display:block;object-fit:cover;object-position:center 43%}
.artist-instagram-button{flex:none;min-height:52px}
.artist-instagram-button svg{width:20px;height:20px}
@media(max-width:700px){
 .artist-hero-title{top:clamp(82px,18svh,148px)}
 .artist-sheet{border-radius:31px 31px 0 0}
 .artist-summary{gap:12px}
 .artist-sheet-intro{margin:13px 0 14px}
 .artist-work-grid{gap:10px}
 .artist-work-grid figure{border-radius:17px}
 .artist-work-inner{padding-top:max(76px,env(safe-area-inset-top));gap:13px}
}
@media(max-height:680px){
 .artist-sheet{padding-top:8px;padding-bottom:15px;border-radius:27px 27px 0 0}
 .artist-sheet-handle{margin-bottom:8px}
 .artist-summary-work{height:clamp(78px,16svh,112px);border-radius:16px}
 .artist-initial{width:30px;height:30px;margin-bottom:4px;font-size:14px}
 .artist-summary-detail h3{font-size:clamp(17px,4.4vw,23px);margin:4px 0}
 .artist-sheet-intro{font-size:12px;line-height:1.35;margin:8px 0 10px}
 .artist-contact-button{min-height:43px}
 .artist-hero-title{top:clamp(72px,15svh,112px)}
 .artist-work-inner{padding-top:58px;padding-bottom:12px;gap:9px}
 .artist-work-heading h2{font-size:clamp(31px,7vh,44px)}
 .artist-instagram-button{min-height:44px}
 .artist-work-grid figure{border-radius:13px}
}
@media(min-width:900px){
 .artist-hero-image{object-position:center 34%}
 .artist-hero-title{top:22svh}
 .artist-sheet{border-radius:36px 36px 0 0}
 .artist-sheet-intro{font-size:14px}
}
@media(prefers-reduced-motion:reduce){
 .memo-artist-detail{transition:none}
 .memo-artist-detail.is-open .artist-sheet{animation:none}
}


/* Individual profile: center the artist name between the header and sliding info sheet. */
.artist-hero-title{
  top:37%;
  transform:translateY(-50%);
  z-index:1;
}
@media(max-width:700px){.artist-hero-title{top:35%}}
@media(max-height:680px){.artist-hero-title{top:32%}}


/* Profiles without submitted artist images show honest, image-free placeholders. */
.memo-artist-detail .artist-hero-image[hidden],
.memo-artist-detail .artist-summary-work[hidden],
.memo-artist-detail .artist-work-grid[hidden],
.memo-artist-detail .artist-summary-placeholder[hidden],
.memo-artist-detail .artist-work-pending[hidden]{display:none!important}
.artist-summary-placeholder{
  display:flex;align-items:center;justify-content:center;text-align:center;
  min-width:0;height:clamp(114px,19svh,163px);padding:18px;
  border-radius:21px;border:1px solid #ffffff48;
  background:linear-gradient(145deg,#4b4845,#1b1a1a);
  color:#fff;
}
.artist-summary-placeholder span{
  font:600 12px/1.45 var(--memo-copy,"Roboto",Arial,sans-serif);
  letter-spacing:.13em;
}
.memo-artist-detail[data-artist]:not([data-artist="jarmain"]) .artist-hero{
  background:radial-gradient(ellipse at 54% 36%,#77716c66,transparent 54%),linear-gradient(135deg,#484440,#141312 72%);
}
.artist-work-pending{
  display:flex;align-items:center;justify-content:center;flex:1;
  min-height:0;margin:0;padding:22px;text-align:center;
  font:400 16px/1.55 var(--memo-copy,"Roboto",Arial,sans-serif);
  border:1px solid #ffffff33;border-radius:20px;
  background:#ffffff0c;
}
@media(max-height:680px){.artist-summary-placeholder{height:clamp(78px,16svh,112px);border-radius:16px}}
