.paper-body { max-width: 850px; width: min(92%, 850px); margin: 2rem auto 4rem; }
    .paper-body h2 { margin-top: 1.6rem; }
    .paper-animation { margin: 2rem 0; padding: 1.25rem; background: #fff; border: 1px solid #cedae7; border-radius: 12px; }
    .paper-animation h2 { margin-top: 0; }
    .wirl-svg { display: block; width: 100%; height: auto; margin: 1rem auto; }
    .wirl-svg text { font: 15px Inter, sans-serif; fill: #102e49; }
    .wirl-svg .box { fill: #eaf2fa; stroke: #32648c; stroke-width: 2; }
    .wirl-svg .window { fill: #fff2c9; stroke: #986518; stroke-width: 2; }
    .wirl-svg .arrow { stroke: #32648c; stroke-width: 2; fill: none; }
    .wirl-svg .phase { opacity: .35; transition: opacity .3s ease; }
    .wirl-svg .phase.is-current { opacity: 1; }
    .wirl-controls { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1rem 0; }
    .wirl-controls button { border: 1px solid #1b4e75; border-radius: 6px; background: #16446a; color: #fff; font: inherit; padding: .4rem .8rem; cursor: pointer; }
    .wirl-controls button:focus-visible { outline: 3px solid #d58115; outline-offset: 2px; }
    @media (prefers-reduced-motion: reduce) { .wirl-svg .phase { transition: none; } }
