/* 04-layout.css — page shell, spacing and grid */
:where(body){
  min-height: 100vh;
}

.page-shell{
  min-height: 100vh;
  overflow-x: clip;
}

.container{
  width: min(var(--container), calc(100% - (var(--gutter) * 2)));
  margin-inline: auto;
}

.site-main{
  position: relative;
}

.site-header,
.site-footer{
  position: relative;
  z-index: 20;
}

.skip-link{
  position: absolute;
  left: 1rem;
  top: 1rem;
  padding: .75rem 1rem;
  border-radius: var(--radius-pill);
  background: var(--color-white);
  color: #061a2d;
  transform: translateY(-160%);
  transition: transform var(--transition-base);
  z-index: 1000;
}
.skip-link:focus{
  transform: translateY(0);
}

.glass-panel{
  border: 1px solid var(--color-border);
  background: rgba(255,255,255,.08);
  backdrop-filter: blur(16px);
  box-shadow: var(--shadow-soft);
}

.reveal{
  opacity: 0;
  transform: translateY(14px);
}
.is-revealed{
  opacity: 1;
  transform: translateY(0);
  transition: opacity 650ms ease, transform 650ms ease;
}
