/* =========================================================
   gallery.css — The Archive (immersive ending), WebGL 360.
   Silvia's real domed-gallery panorama, wrapped on a sphere.
   The scarf stands on the marble pedestal. Drag to look around.
   ========================================================= */

#gallery-root{position:absolute;inset:0;overflow:hidden;background:#f4efe6;cursor:grab}
#gallery-root.dragging{cursor:grabbing}
#gallery-root canvas{display:block;position:absolute;inset:0;opacity:0;transition:opacity 2s cubic-bezier(.19,1,.22,1)}
#gallery-root.lit canvas{opacity:1}

.gl-holder{position:absolute;inset:0}

.gl-logo{
  position:absolute;top:clamp(20px,3vh,40px);left:50%;transform:translateX(-50%) translateY(-8px);
  width:min(150px,38vw);height:auto;z-index:34;opacity:0;
  transition:opacity 2s ease,transform 2s cubic-bezier(.19,1,.22,1);pointer-events:none;
}
#gallery-root.lit .gl-logo{opacity:.9;transform:translateX(-50%)}

/* soft ambient wash so the white room glows */
.gl-vignette{
  position:absolute;inset:0;pointer-events:none;z-index:31;
  box-shadow:inset 0 0 220px 60px rgba(120,105,80,.10);
}

/* label beside/under the pedestal */
.gl-label{
  position:absolute;left:50%;bottom:6vh;transform:translateX(-50%) translateY(14px);
  text-align:center;z-index:33;color:#3a352d;font-family:'Poppins',sans-serif;font-weight:300;
  opacity:0;transition:opacity 1.6s ease,transform 1.6s cubic-bezier(.19,1,.22,1);
  text-shadow:0 1px 10px rgba(255,255,255,.7);max-width:min(520px,86vw);pointer-events:none;
}
#gallery-root.lit .gl-label{opacity:1;transform:translateX(-50%)}
.gl-label .no{letter-spacing:.42em;text-transform:uppercase;font-size:10px;color:#8a6a45;margin-bottom:8px}
.gl-label .founder{font-family:'Newsreader',serif;font-size:clamp(19px,2.2vw,26px)}
.gl-label .idea{font-family:'Newsreader',serif;font-style:italic;font-size:14px;color:#6a6458;margin-top:2px}
.gl-label .note{margin:12px auto 0;max-width:38ch;font-size:11.5px;line-height:1.7;color:#6a6458}
.gl-label .note.has-more{cursor:pointer;pointer-events:auto;transition:color .35s ease}
.gl-label .note.has-more:hover{color:#3a352d}
.gl-label .note-more{display:table;margin:8px auto 0;font-size:9px;letter-spacing:.26em;
  text-transform:uppercase;color:#8a6a45;border-bottom:1px solid rgba(138,106,69,.4);padding-bottom:2px}

/* Full curator's note overlay */
.gl-note-modal{
  position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(244,241,235,0);backdrop-filter:blur(0px);
  opacity:0;visibility:hidden;transition:opacity .5s ease,visibility 0s linear .5s,backdrop-filter .5s ease;
}
.gl-note-modal.open{
  opacity:1;visibility:visible;background:rgba(244,241,235,.86);backdrop-filter:blur(7px);
  transition:opacity .5s ease,backdrop-filter .5s ease;
}
.gl-note-card{
  position:relative;max-width:min(560px,90vw);max-height:84vh;overflow:auto;text-align:center;
  background:#fff;border:1px solid rgba(138,106,69,.28);
  padding:clamp(34px,5vw,58px) clamp(26px,4.5vw,56px);
  box-shadow:0 40px 90px rgba(94,74,55,.22);
  transform:translateY(14px) scale(.98);transition:transform .55s cubic-bezier(.19,1,.22,1);
}
.gl-note-modal.open .gl-note-card{transform:none}
.gl-note-card::-webkit-scrollbar{width:0}
.gl-note-close{
  position:absolute;top:14px;right:18px;background:none;border:none;cursor:pointer;
  font-size:24px;line-height:1;color:#a89e8f;transition:color .3s ease;
}
.gl-note-close:hover{color:#3a352d}
.gl-note-eyebrow{font-family:'Poppins',sans-serif;font-weight:300;font-size:9.5px;
  letter-spacing:.3em;text-transform:uppercase;color:#8E2F23;margin-bottom:12px}
.gl-note-founder{font-family:'Newsreader',serif;font-size:clamp(22px,3vw,30px);color:#2a251f;margin-bottom:18px}
.gl-note-body{font-family:'Newsreader',serif;font-style:italic;font-weight:300;
  font-size:clamp(15px,1.9vw,18px);line-height:1.85;color:#413b32;max-width:46ch;margin:0 auto}

.gl-hint{
  position:absolute;top:clamp(110px,15vh,150px);left:50%;transform:translateX(-50%);z-index:34;
  color:#8a6a45;font-family:'Poppins',sans-serif;font-weight:300;font-size:10px;
  letter-spacing:.28em;text-transform:uppercase;pointer-events:none;
  animation:glhint 3.4s ease-in-out infinite;
}
@keyframes glhint{0%,100%{opacity:.35}50%{opacity:.75}}
