/* Three frame materials. The artwork's own ground is never recolored. */
:root {
  --card-frame-width: clamp(6px, .5vw, 10px);
  --card-frame-material: linear-gradient(135deg, #fff08a, #efd13c 24%, #e6bd21 64%, #ffe76b);
}
:root[data-card-frame="black"] {
  --card-frame-material: linear-gradient(135deg, #3b3d40, #141518 22%, #090a0c 65%, #2c2e32);
}
:root[data-card-frame="chroma"] {
  --card-frame-material: linear-gradient(var(--foil-angle, 125deg), #f1eff4, #9ea8b3 18%, #d1bdd9 34%, #b3d0cd 51%, #efeee7 69%, #858e9c 84%, #dedce6);
}
.gallery-plane .card-face {
  border: var(--card-frame-width) solid transparent;
  background: var(--card-frame-material);
  background-origin: border-box;
  background-clip: border-box;
}
.gallery-plane .card-face > .project-visual,
.gallery-plane .card-face > .foil-layer,
.gallery-plane .card-face::before,
.gallery-plane .card-face::after { border-radius: 4px; }
.index-collection .project-visual {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}
.study-controls > .card-lab { position: relative; flex: none; z-index: 1; }
.study-controls > .card-lab[open] { z-index: 3; }
.card-lab summary {
  display: flex; align-items: center; gap: 8px; width: 188px; min-height: 44px;
  padding: 12px 14px; border: 1px solid var(--line); border-radius: 28px;
  background: var(--paper); box-shadow: 0 5px 18px var(--palette-shadow);
  list-style: none; font-weight: 700; cursor: pointer;
}
.card-lab summary::-webkit-details-marker { display: none; }
#card-current { font-size: 10px; margin-left: auto; white-space: nowrap; }
.card-chevron { font-size: 16px; font-weight: 500; transition: transform 180ms var(--ease); }
.card-lab[open] .card-chevron { transform: rotate(180deg); }
.card-frame-chip, .card-variant-chip {
  display: block; flex: none; width: 14px; height: 18px; border-radius: 3px;
  border: 1px solid #0003; background: var(--card-frame-material);
}
.card-frame-chip { margin-left: auto; }
.card-variant-chip { width: 26px; height: 34px; box-shadow: inset 0 0 0 4px #ffffff35; }
.card-variant-chip[data-frame="yellow"] { background: linear-gradient(135deg, #fff08a, #e6bd21, #ffe76b); }
.card-variant-chip[data-frame="black"] { background: linear-gradient(135deg, #3b3d40, #090a0c, #2c2e32); }
.card-variant-chip[data-frame="chroma"] { background: linear-gradient(135deg, #f1eff4, #9ea8b3, #d1bdd9, #b3d0cd, #efeee7, #858e9c); }
.card-panel {
  position: absolute; top: calc(100% + 10px); right: 0; width: 270px;
  max-height: calc(100svh - 120px); overflow: auto; padding: 18px;
  border: 1px solid var(--line); border-radius: 14px; background: var(--paper);
  box-shadow: 0 15px 40px var(--palette-shadow);
}
.card-panel fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.card-panel legend { font: 400 10px/1.5 var(--font-mono); text-transform: uppercase; margin-bottom: 12px; }
.card-variant { display: flex; gap: 12px; align-items: center; min-height: 64px; padding: 8px; border-radius: 8px; cursor: pointer; }
.card-variant:hover, .card-variant:has(input:checked) { background: color-mix(in srgb, var(--wine) 7%, transparent); }
.card-variant input { margin: 0; width: 16px; height: 16px; accent-color: var(--violet); }
.card-variant b { display: block; font-size: 12px; font-weight: 600; }
.card-variant small { display: block; font-size: 10px; font-weight: 400; margin-top: 2px; }
.card-panel p { font-size: 11px; line-height: 1.6; margin: 12px 8px 0; }
.card-lab summary:focus-visible, .card-variant input:focus-visible { outline: 2px solid var(--violet); outline-offset: 4px; }
@media (min-width: 1151px) and (max-width: 1400px) {
  .study-controls > .palette-lab summary { width: 170px; min-width: 170px; }
  .study-controls .palette-dots { display: none; }
  .study-controls > .type-lab summary { width: 132px; min-width: 132px; }
  .foil-lab summary { width: 112px; padding-inline: 12px; }
  .card-lab summary { width: 144px; }
  .card-frame-chip { display: none; }
}
@media (min-width: 701px) and (max-width: 1150px) {
  .study-controls > .type-lab summary { width: 132px; min-width: 132px; }
  .foil-lab summary { width: 110px; }
  .card-lab summary { width: 128px; padding-inline: 12px; }
  #card-current { font-size: 9px; }
  .card-frame-chip { display: none; }
}
@media (min-width: 701px) and (max-width: 1400px) {
  .study-controls .type-symbol { display: none; }
}
@media (min-width: 701px) and (max-width: 900px) {
  .study-controls { left: auto; right: 70px; transform: none; }
  .study-controls > .palette-lab summary { width: 78px; min-width: 78px; padding-inline: 12px; }
  .study-controls > .type-lab summary { width: 70px; min-width: 70px; justify-content: center; padding-inline: 12px; }
  .study-controls .type-mobile-label { display: inline; }
  .study-controls #type-current, .study-controls .type-symbol, .study-controls .type-chevron { display: none; }
  .foil-lab summary { width: 86px; gap: 6px; }
  .foil-chevron { display: none; }
  .card-lab summary { width: 76px; justify-content: center; }
  #card-current, .card-chevron { display: none; }
  .masthead > .text-link { display: none; }
}
@media (max-width: 700px) {
  .card-lab summary { width: 70px; min-height: 50px; padding: 10px 12px; justify-content: center; }
  #card-current, .card-chevron, .card-frame-chip { display: none; }
  .card-panel { top: auto; bottom: calc(100% + 10px); right: 0; width: min(270px, calc(100vw - 55px)); max-height: calc(100svh - 285px); }
}
@media (prefers-reduced-motion: reduce) { .card-chevron { transition: none; } }
