/* The homepage's authored silver assembly continues into the invitation entrance. */
.entry-art.portal-assembly { position: relative; margin-top: 22px; overflow: visible; border-radius: 0; }
.portal-assembly-stage { position: relative; height: clamp(280px, 28vw, 380px); overflow: hidden; isolation: isolate; touch-action: pan-y; }
.entry-art .portal-assembly-fallback { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; object-fit: contain; object-position: center; border-radius: 12px; }
.portal-assembly-stage canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; touch-action: pan-y; }
.portal-assembly-ready .portal-assembly-fallback { opacity: 0; pointer-events: none; }
.portal-assembly-ready canvas { opacity: 1; }
.portal-assembly-footer { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 52px; padding-top: 4px; }
.portal-assembly-caption { font-size: 12px; line-height: 1.5; color: var(--muted); }
.portal-assembly-controls { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.portal-assembly-control { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid #454451; border-radius: 999px; padding: 10px 15px; font: inherit; font-size: 12px; line-height: 1.4; font-weight: 500; white-space: nowrap; color: var(--silver); background: transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.portal-assembly-control:hover { background: #242330; color: var(--frost); border-color: var(--silver); }
.portal-assembly-control:focus-visible { outline: 2px solid var(--frost); outline-offset: 4px; }
.portal-assembly-control[aria-pressed=true] { background: var(--silver); color: var(--indigo); border-color: var(--silver); }
.portal-assembly-control:active { transform: scale(.98); }
.entry-copy .entry-note { margin-top: 18px; }
@media (max-width: 1100px) {
  .portal-assembly-stage { height: 310px; }
  .portal-assembly-caption { max-width: 110px; }
  .portal-assembly-controls { gap: 6px; }
  .portal-assembly-control { padding-inline: 12px; }
}
@media (max-width: 850px) {
  .entry-art.portal-assembly { display: block; margin-top: 8px; max-width: 500px; }
  .portal-assembly-stage { height: 220px; }
  .portal-assembly-footer { padding-top: 0; }
  .portal-assembly-caption { max-width: none; }
  .portal-entry { gap: 30px; }
}
@media (max-width: 540px) {
  .portal-assembly-stage { height: 200px; }
  .portal-assembly-footer { gap: 10px; }
  .portal-assembly-caption { max-width: 105px; }
  .portal-assembly-control { padding-inline: 11px; }
  .entry-copy .entry-note { margin-top: 16px; }
  .portal-entry { padding-top: 36px; }
}
@media (max-width: 370px) {
  .portal-assembly-footer { align-items: flex-start; flex-direction: column; gap: 7px; }
  .portal-assembly-caption { max-width: none; }
  .portal-assembly-stage { height: 180px; }
}
@media (prefers-reduced-motion: reduce) {
  .portal-assembly-control { transition: none; }
  .portal-assembly-control:active { transform: none; }
}
