/* One continuous page atmosphere; section backgrounds remain transparent. */
.ibw-site {
    position: relative;
    isolation: isolate;
    min-height: 100vh;
    overflow: clip;
    color: var(--ibw-text);
    background: var(--ibw-bg);
    font-family: var(--ibw-font-body);
    line-height: 1.6;
    color-scheme: dark;
}
.ibw-site *, .ibw-site *::before, .ibw-site *::after { box-sizing: border-box; }
.ibw-site .ibw-atmosphere { position: absolute; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; contain: paint; }
.ibw-site .ibw-atmosphere__light {
    position: absolute; inset: -2rem;
    background:
        radial-gradient(ellipse 68% 26% at 2% 2%, var(--ibw-ambient-deep), transparent 82%),
        radial-gradient(ellipse 46% 20% at 24% 8%, var(--ibw-ambient-cyan), transparent 80%),
        radial-gradient(ellipse 44% 20% at 88% 12%, var(--ibw-ambient-strong), transparent 80%),
        radial-gradient(ellipse 70% 22% at 70% 35%, var(--ibw-ambient), transparent 85%),
        radial-gradient(ellipse 58% 26% at 15% 78%, var(--ibw-ambient), transparent 85%);
    transform: translate3d(var(--ibw-light-x, 0px), var(--ibw-light-y, 0px), 0);
    transition: transform 900ms var(--ibw-ease-out);
}
.ibw-site .ibw-atmosphere__grid {
    position: absolute; inset: 0; opacity: .09;
    background-image: linear-gradient(var(--ibw-grid) 1px, transparent 1px), linear-gradient(90deg, var(--ibw-grid) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: linear-gradient(transparent 8%, black 36%, transparent 96%);
}
.ibw-site .ibw-atmosphere__noise {
    position: absolute; inset: 0; opacity: .016;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.84' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E");
}
.ibw-site .ibw-atmosphere__circuits { width: 100%; height: 100%; opacity: .12; }
.ibw-site .ibw-atmosphere__tracks { stroke: var(--ibw-border-strong); stroke-width: 1; }
.ibw-site .ibw-atmosphere__energy { stroke: var(--ibw-blue-bright); stroke-width: 1.2; opacity: .3; transition: opacity 1.2s ease; }
.ibw-site[data-ibw-services-visible='true'] .ibw-atmosphere__energy { opacity: .4; }
.ibw-site .ibw-atmosphere__points { fill: var(--ibw-blue-bright); }
.ibw-site .ibw-site__main { min-width: 0; }
.ibw-site :where([id]) { scroll-margin-top: 7rem; }
.ibw-site .ibw-site__skip-link {
    position: fixed; z-index: 100000; top: .75rem; left: .75rem;
    padding: .75rem 1rem; color: var(--ibw-text); background: var(--ibw-bg);
    border: 1px solid var(--ibw-blue); transform: translateY(-200%);
}
.ibw-site .ibw-site__skip-link:focus { transform: translateY(0); }
.ibw-site [hidden] { display: none !important; }
.ibw-site [data-ibw-defer-section] { content-visibility: auto; contain-intrinsic-size: auto 900px; }
.ibw-site[data-ibw-motion='ready'] [data-ibw-reveal] {
    transition: opacity 800ms var(--ibw-ease-out), transform 800ms var(--ibw-ease-out);
}
.ibw-site[data-ibw-motion='ready'] [data-ibw-reveal]:not(.is-visible) { opacity: .25; transform: translateY(12px); }
@media (max-width: 900px) {
    .ibw-site .ibw-atmosphere__grid { background-size: 48px 48px; opacity: .06; }
    .ibw-site .ibw-atmosphere__circuits { opacity: .08; }
    .ibw-site .ibw-atmosphere__light { transform: none; transition: none; }
}
@media (prefers-reduced-motion: reduce) {
    .ibw-site .ibw-atmosphere__light { transform: none; transition: none; }
    .ibw-site[data-ibw-motion='ready'] [data-ibw-reveal]:not(.is-visible) { opacity: 1; transform: none; }
}
