/* AlliedAccess presentation deck — self-contained.
   No-JS default: slides render as stacked, readable sections.
   With JS (html.deck-ready): 16:9 framed browsable deck. */

.aa-deck { position: relative; }

/* ---------- Slide content (both modes) ---------- */
.aa-slide {
    position: relative;
    overflow: hidden;
    background: #0B1F3A;
    color: #fff;
    border-radius: 1rem;
    border: 1px solid rgba(255, 255, 255, .1);
}
.aa-slide-bg {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    opacity: .65;
}
.aa-slide-ov { position: absolute; inset: 0; background: linear-gradient(105deg, rgba(8, 18, 38, .93) 0%, rgba(8, 18, 38, .72) 52%, rgba(8, 18, 38, .38) 100%); }
.aa-slide-inner {
    position: relative; z-index: 2;
    display: flex; flex-direction: column; justify-content: center;
    height: 100%;
    padding: clamp(1.4rem, 4.5vw, 4rem) clamp(1.4rem, 5vw, 4.5rem);
    max-width: 880px;
}
.aa-slide-kicker {
    font-family: 'IBM Plex Mono', monospace;
    font-size: clamp(.6rem, 1.1vw, .78rem);
    letter-spacing: .18em; text-transform: uppercase;
    color: #7FB3FF; margin-bottom: clamp(.5rem, 1.2vw, 1rem);
}
.aa-slide-title {
    font-family: 'Archivo', sans-serif; font-weight: 800;
    font-size: clamp(1.25rem, 3.2vw, 2.6rem);
    line-height: 1.1; margin-bottom: clamp(.6rem, 1.6vw, 1.2rem);
    color: #fff; /* site heading styles set a dark ink color — force white on slides */
    text-shadow: 0 2px 12px rgba(0, 0, 0, .45);
}
.aa-slide-body { font-size: clamp(.8rem, 1.45vw, 1.05rem); line-height: 1.6; color: rgba(255, 255, 255, .82); }
.aa-slide-body ul { list-style: none; padding: 0; margin: 0; }
.aa-slide-body li { position: relative; padding-left: 1.5em; margin-bottom: clamp(.3rem, .9vw, .65rem); }
.aa-slide-body li::before { content: ''; position: absolute; left: 0; top: .52em; width: .85em; height: .85em; border-radius: 50%; background: rgba(27, 102, 214, .28); box-shadow: inset 0 0 0 2px #1B66D6; }
.aa-slide-body li.aa-x::before { background: rgba(220, 60, 60, .22); box-shadow: inset 0 0 0 2px #E05252; }
.aa-slide-note { margin-top: clamp(.7rem, 1.6vw, 1.3rem); font-size: clamp(.7rem, 1.1vw, .85rem); color: rgba(255, 255, 255, .55); }

/* Packages slide columns */
.aa-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.6rem, 1.4vw, 1.1rem); margin-top: clamp(.6rem, 1.4vw, 1.1rem); }
.aa-tier { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: .7rem; padding: clamp(.7rem, 1.5vw, 1.2rem); }
.aa-tier h4 { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: clamp(.75rem, 1.3vw, 1rem); letter-spacing: .08em; color: #7FB3FF; margin-bottom: .5em; }
.aa-tier p { font-size: clamp(.68rem, 1.05vw, .85rem); line-height: 1.5; color: rgba(255, 255, 255, .78); }

/* ---------- No-JS / stacked mode (default) ---------- */
.aa-track { display: flex; flex-direction: column; gap: 1.25rem; }
html:not(.deck-ready) .aa-slide { min-height: 380px; }
html:not(.deck-ready) .aa-chrome { display: none; }

/* ---------- Deck mode (JS on) ---------- */
.deck-ready .aa-frame {
    position: relative;
    border-radius: 1.1rem;
    overflow: hidden;
    box-shadow: 0 24px 70px -18px rgba(5, 14, 32, .55);
    background: #060f22;
    touch-action: pan-y;
}
.deck-ready .aa-viewport { overflow: hidden; }
.deck-ready .aa-track {
    flex-direction: row; gap: 0;
    transition: transform .55s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}
.deck-ready .aa-slide {
    flex: 0 0 100%;
    aspect-ratio: 16 / 9;
    border-radius: 0; border: 0;
    min-height: 0;
}
@media (max-width: 640px) {
    .deck-ready .aa-slide { aspect-ratio: auto; height: 72vw; min-height: 330px; }
}

/* Chrome */
.aa-chrome { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.aa-arrow {
    pointer-events: auto;
    position: absolute; top: 50%; transform: translateY(-50%);
    width: 44px; height: 44px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(10, 22, 46, .62); color: #fff;
    border: 1px solid rgba(255, 255, 255, .22);
    backdrop-filter: blur(6px); cursor: pointer;
    transition: background .2s ease, opacity .2s ease;
}
.aa-arrow:hover { background: rgba(27, 102, 214, .85); }
.aa-arrow[disabled] { opacity: .25; cursor: default; }
.aa-arrow svg { width: 20px; height: 20px; }
.aa-prev { left: 14px; }
.aa-next { right: 14px; }
@media (max-width: 640px) { .aa-arrow { width: 36px; height: 36px; } .aa-prev { left: 8px; } .aa-next { right: 8px; } }

.aa-bar {
    pointer-events: auto;
    position: absolute; left: 0; right: 0; bottom: 0;
    display: flex; align-items: center; justify-content: space-between;
    gap: .8rem; padding: .55rem .9rem;
    background: linear-gradient(0deg, rgba(4, 10, 24, .78), rgba(4, 10, 24, 0));
}
.aa-dots { display: flex; gap: .42rem; }
.aa-dot {
    width: 9px; height: 9px; border-radius: 50%;
    background: rgba(255, 255, 255, .32);
    border: 0; padding: 0; cursor: pointer;
    transition: transform .2s ease, background .2s ease;
}
.aa-dot[aria-current="true"] { background: #1B66D6; transform: scale(1.35); }
.aa-counter { font-family: 'IBM Plex Mono', monospace; font-size: .72rem; letter-spacing: .12em; color: rgba(255, 255, 255, .75); white-space: nowrap; }
.aa-fs {
    pointer-events: auto;
    display: flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; border-radius: .5rem;
    background: rgba(255, 255, 255, .1); color: #fff;
    border: 1px solid rgba(255, 255, 255, .18); cursor: pointer;
    transition: background .2s ease;
}
.aa-fs:hover { background: rgba(27, 102, 214, .8); }
.aa-fs svg { width: 15px; height: 15px; }

/* Fullscreen */
.aa-frame:fullscreen { border-radius: 0; display: flex; align-items: center; justify-content: center; background: #04091a; }
.aa-frame:fullscreen .aa-viewport { width: 100%; }

/* Slide-content entrance (JS adds .aa-in on the active slide) */
.deck-ready .aa-slide .aa-slide-inner > * { opacity: 0; transform: translateY(18px); transition: opacity .5s ease, transform .55s cubic-bezier(.22, 1, .36, 1); }
.deck-ready .aa-slide.aa-in .aa-slide-inner > * { opacity: 1; transform: none; }
.deck-ready .aa-slide.aa-in .aa-slide-inner > *:nth-child(2) { transition-delay: .08s; }
.deck-ready .aa-slide.aa-in .aa-slide-inner > *:nth-child(3) { transition-delay: .16s; }
.deck-ready .aa-slide.aa-in .aa-slide-inner > *:nth-child(4) { transition-delay: .24s; }
@media (prefers-reduced-motion: reduce) {
    .deck-ready .aa-track { transition: none; }
    .deck-ready .aa-slide .aa-slide-inner > * { opacity: 1; transform: none; transition: none; }
}

/* ---------- Architecture diagram (slide 4) ---------- */
.aa-diagram { margin-top: clamp(.7rem, 1.6vw, 1.2rem); max-width: 640px; width: 100%; }
.aa-diagram text { font-family: 'IBM Plex Mono', monospace; }

/* ---------- Dashboard mockup (slide 8) ---------- */
.aa-mock { margin-top: clamp(.7rem, 1.4vw, 1.1rem); max-width: 620px; border-radius: .6rem; overflow: hidden; border: 1px solid rgba(255, 255, 255, .16); background: #0d1f3d; font-size: clamp(.55rem, .95vw, .72rem); }
.aa-mock-top { display: flex; align-items: center; gap: .45rem; padding: .5em .9em; background: rgba(255, 255, 255, .07); border-bottom: 1px solid rgba(255, 255, 255, .1); }
.aa-mock-top i { width: .6em; height: .6em; border-radius: 50%; background: rgba(255, 255, 255, .25); }
.aa-mock-body { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: .7em; padding: .9em; }
.aa-mock-card { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .1); border-radius: .45em; padding: .7em; }
.aa-mock-card b { display: block; color: #7FB3FF; font-family: 'IBM Plex Mono', monospace; letter-spacing: .1em; text-transform: uppercase; font-size: .82em; margin-bottom: .45em; }
.aa-mock-num { font-family: 'Archivo', sans-serif; font-weight: 800; font-size: 1.7em; color: #fff; }
.aa-mock-row { display: flex; justify-content: space-between; color: rgba(255, 255, 255, .72); padding: .22em 0; border-bottom: 1px dashed rgba(255, 255, 255, .1); }
.aa-mock-row:last-child { border-bottom: 0; }
.aa-ok { color: #4ADE80; }
.aa-warn { color: #FBBF24; }
