.simulation-page { padding-top: 6.5rem; }
.simulation-intro { max-width: 90rem; margin: auto; padding: 1.5rem 2rem 2rem; }
.simulation-intro > a { display: block; width: fit-content; margin-bottom: 1.25rem; }
.simulation-intro h1 { margin: .75rem 0; color: var(--color-deep); font-size: clamp(1.8rem, 4vw, 3rem); line-height: 1.15; font-weight: 600; }
.simulation-intro p { max-width: 58rem; color: var(--color-ink); line-height: 1.7; }
.simulation-workspace { margin: 0 1rem; border: 1px solid var(--color-border); border-radius: 1rem; overflow: hidden; background: #f7faf9; box-shadow: var(--shadow-soft); }
.simulation-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; background: var(--color-deep); color: white; }
.simulation-toolbar strong, .simulation-toolbar span { display: block; }
.simulation-toolbar span { margin-top: .2rem; font-size: .8rem; color: #d8ebe7; }
.simulation-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; font-size: .875rem; }
.simulation-actions a { text-decoration: underline; text-underline-offset: .2em; }
.simulation-actions button { border: 1px solid #d8ebe7; padding: .7rem 1rem; border-radius: 2rem; font-weight: 600; }
.simulation-actions :focus-visible { outline: 3px solid var(--color-sand); outline-offset: 4px; }
#campus-simulation-frame { display: block; width: 100%; height: 900px; height: max(760px, calc(100svh - 90px)); border: 0; background: #f7faf9; }
.simulation-note { max-width: 90rem; margin: auto; padding: 1.5rem 2rem 2rem; color: var(--color-ink); font-size: .875rem; line-height: 1.7; }
.simulation-note p + p { margin-top: .6rem; }
.simulation-note a { text-decoration: underline; text-underline-offset: .2em; }
.simulation-workspace.is-expanded { position: fixed; inset: 0; z-index: 50; margin: 0; border: 0; border-radius: 0; display: flex; flex-direction: column; }
.simulation-workspace.is-expanded iframe { height: 0; flex: 1; min-height: 0; }
body.simulation-expanded { overflow: hidden; }
@media (max-width: 640px) {
  .simulation-intro { padding: 1rem 1rem 1.5rem; }
  .simulation-workspace { margin: 0 .5rem; }
  .simulation-toolbar { padding: 1rem; }
  .simulation-note { padding: 1.5rem 1rem; }
}
