/* ALRD Rev 0.0.0.5.4 */
:root {
  --banner-blue-dark:#06162F;
  --banner-blue-mid:#0C3E8F;
  --banner-blue-main:#1769E0;
  --banner-blue-bright:#2D8CFF;
  --title-badge-navy:#031A38;
  --main-black:#000;
  --banner-height:0.375in;
  --title-badge-width:3.0in;
  --title-badge-height:0.50in;
  --title-badge-overlap:calc(var(--title-badge-height)/2);
  --logo-size:1.5in;
  --logo-inset:0.125in;
}
*{box-sizing:border-box}
html,body{width:100%;height:100%;margin:0;padding:0;background:#000;color:#fff;font-family:"Segoe UI",Arial,sans-serif}
body{overflow:hidden;position:relative}
button,input{font:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.top-banner,.bottom-banner{
  position:fixed;left:0;width:100%;height:var(--banner-height);overflow:visible;
  background:linear-gradient(90deg,var(--banner-blue-dark) 0%,var(--banner-blue-mid) 20%,var(--banner-blue-main) 42%,var(--banner-blue-bright) 50%,var(--banner-blue-main) 58%,var(--banner-blue-mid) 80%,var(--banner-blue-dark) 100%);
  background-size:170% 100%;
  animation:bannerFlow 12s ease-in-out infinite alternate,bannerGlowPulse 4.6s ease-in-out infinite;
  box-shadow:inset 0 1px rgba(255,255,255,.32),inset 0 -1px rgba(0,0,0,.58),0 0 10px rgba(23,105,224,.18);
  z-index:20
}
.top-banner{top:0}
.bottom-banner{bottom:0;animation-direction:alternate,normal}

.banner-effects{
  position:absolute;
  inset:0;
  overflow:hidden;
  pointer-events:none;
  z-index:1;
}
.banner-shine{position:absolute;top:-220%;left:-18%;width:14%;height:540%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.14) 32%,rgba(255,255,255,.78) 50%,rgba(255,255,255,.14) 68%,transparent);transform:rotate(17deg);filter:blur(1.5px);mix-blend-mode:screen;animation:bannerShineTravel 5s ease-in-out infinite;pointer-events:none}
.bottom-banner .banner-effects .banner-shine{animation-delay:1.4s}
.banner-scanline{position:absolute;left:0;width:100%;height:2px;background:linear-gradient(90deg,rgba(45,140,255,0),rgba(45,140,255,.76) 25%,rgba(255,255,255,.92) 50%,rgba(45,140,255,.76) 75%,rgba(45,140,255,0));box-shadow:0 0 8px rgba(45,140,255,.65),0 0 12px rgba(255,255,255,.25);opacity:.7;pointer-events:none}
.top-banner .banner-effects .banner-scanline{bottom:0;animation:bannerScanHorizontal 4.2s ease-in-out infinite}
.bottom-banner .banner-effects .banner-scanline{top:0;animation:bannerScanHorizontal 4.2s ease-in-out infinite .8s}
.banner-spark,.logo-spark{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 7px #fff,0 0 12px rgba(45,140,255,.8);opacity:0;pointer-events:none}
.top-banner .banner-effects>.spark-a,.bottom-banner .banner-effects>.spark-a{left:18%;top:35%;animation:sparkleA 5.2s ease-in-out infinite}
.top-banner .banner-effects>.spark-b,.bottom-banner .banner-effects>.spark-b{left:56%;top:58%;animation:sparkleB 6.1s ease-in-out infinite}
.top-banner .banner-effects>.spark-c,.bottom-banner .banner-effects>.spark-c{right:14%;top:28%;animation:sparkleC 4.7s ease-in-out infinite}

.page-title-badge{
  position:absolute;left:50%;top:calc(100% - var(--title-badge-overlap));translate:-50% 0;
  width:min(3.0in,calc(100vw - 0.30in));height:var(--title-badge-height);
  display:flex;align-items:center;justify-content:center;padding:0 .20in;
  border:2px solid #fff;border-radius:.085in;background:linear-gradient(180deg,#08264D 0%,var(--title-badge-navy) 54%,#021126 100%);
  color:#fff;font-size:.15in;font-weight:650;letter-spacing:.012in;white-space:nowrap;text-align:center;
  text-shadow:0 1px 3px rgba(0,0,0,.8);
  box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 0 9px rgba(45,140,255,.34),0 5px 14px rgba(0,0,0,.58);
  z-index:85
}

.member-access{
  position:absolute;right:.125in;top:50%;translate:0 -50%;z-index:100;display:flex;align-items:center;gap:6px
}
.login-form{display:flex;align-items:center;gap:5px}
.login-form input{
  width:1.18in;height:.26in;padding:0 .08in;border:1px solid rgba(255,255,255,.52);border-radius:.04in;
  background:rgba(1,14,34,.82);color:#fff;outline:none;font-size:.105in
}
.login-form input::placeholder{color:rgba(255,255,255,.68)}
.login-form input:focus{border-color:#fff;box-shadow:0 0 8px rgba(255,255,255,.28)}
.member-button,.register-button{
  height:.26in;border-radius:.04in;border:1px solid rgba(255,255,255,.66);padding:0 .08in;
  background:#031A38;color:#fff;cursor:pointer;font-size:.095in;font-weight:600
}
.register-button{background:rgba(255,255,255,.12)}
.member-button:hover,.register-button:hover{filter:brightness(1.18)}
.member-identity{display:flex;align-items:center;gap:6px;color:#fff;font-size:.10in}
.member-name{font-weight:700}.member-state{padding:2px 6px;border:1px solid rgba(255,255,255,.42);border-radius:999px;font-size:.08in}

.main-section{
  position:fixed;top:var(--banner-height);right:0;bottom:var(--banner-height);left:0;background:var(--main-black);overflow:hidden;z-index:1
}
.flash-message{position:absolute;top:.42in;left:50%;translate:-50% 0;z-index:50;max-width:6in;padding:.10in .16in;border-radius:.06in;border:1px solid rgba(255,255,255,.28);background:#06162F;color:#fff;font-size:.11in;box-shadow:0 8px 28px rgba(0,0,0,.55)}
.flash-error{border-color:#d34a5b}.flash-warning{border-color:#d6a533}.flash-success{border-color:#2ab56f}
.member-welcome{position:absolute;top:.55in;left:50%;translate:-50% 0;color:#94c6ff;border:1px solid rgba(148,198,255,.30);padding:.06in .12in;border-radius:999px;font-size:.10in}
.logo-badge::before{content:"";position:absolute;inset:-9%;border-radius:50%;background:radial-gradient(circle,rgba(45,140,255,.16),rgba(23,105,224,.08) 43%,transparent 72%);animation:haloPulse 3.6s ease-in-out infinite}
.logo-energy-ring{position:absolute;inset:3%;border-radius:50%;background:conic-gradient(from 0deg,rgba(255,0,0,0),rgba(255,0,0,.42),rgba(255,0,0,0),rgba(45,140,255,0),rgba(45,140,255,.48),rgba(45,140,255,0),rgba(0,255,80,0),rgba(0,255,80,.42),rgba(0,255,80,0));filter:blur(4px);opacity:.42;animation:energySpin 7.5s linear infinite}
.logo-badge-inner{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:hidden;border-radius:50%}
.logo-badge img{display:block;width:100%;height:100%;object-fit:contain;position:relative;z-index:3;animation:logoGlow 2.8s ease-in-out infinite}
.logo-shine{position:absolute;z-index:4;top:-35%;left:-75%;width:42%;height:170%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.10) 32%,rgba(255,255,255,.68) 50%,rgba(255,255,255,.10) 68%,transparent);transform:rotate(18deg);filter:blur(2px);mix-blend-mode:screen;animation:logoShineTravel 4.2s ease-in-out infinite}
.logo-scanline{position:absolute;z-index:5;left:7%;width:86%;height:2px;top:12%;background:linear-gradient(90deg,transparent,rgba(45,140,255,.72) 30%,rgba(255,255,255,.95) 50%,rgba(45,140,255,.72) 70%,transparent);box-shadow:0 0 8px rgba(45,140,255,.7);animation:logoScan 3.8s ease-in-out infinite}
.logo-badge .spark-a{left:22%;top:18%;animation:sparkleA 5.2s ease-in-out infinite}
.logo-badge .spark-b{right:19%;top:38%;animation:sparkleB 6.1s ease-in-out infinite}
.logo-badge .spark-c{left:48%;bottom:19%;animation:sparkleC 4.7s ease-in-out infinite}

.modal-backdrop{
  position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.76);backdrop-filter:blur(5px);display:grid;place-items:center;padding:20px
}
.modal-backdrop[hidden]{display:none}
.registration-modal{
  position:relative;width:min(4.9in,94vw);max-height:88vh;overflow:auto;padding:.28in;
  border:1px solid rgba(255,255,255,.36);border-radius:.12in;background:linear-gradient(180deg,#061b3a,#020a17);
  box-shadow:0 24px 90px rgba(0,0,0,.72),0 0 24px rgba(23,105,224,.18)
}
.registration-modal h2{margin:0 0 8px;font-size:.21in}.registration-modal p{margin:0 0 18px;color:#b9c9df;font-size:.115in;line-height:1.5}
.modal-close{position:absolute;right:10px;top:8px;border:0;background:transparent;color:#fff;font-size:25px;cursor:pointer}
.registration-form{display:grid;gap:8px}.registration-form label{font-size:.10in;color:#e8f0fb;font-weight:600}
.registration-form input{height:.36in;padding:0 .10in;border-radius:.05in;border:1px solid #4b6385;background:#020a16;color:#fff;outline:none}
.registration-form input:focus{border-color:#74b4ff;box-shadow:0 0 0 2px rgba(45,140,255,.18)}
.membership-note,.stripe-config-warning{margin:8px 0;padding:.10in;border-radius:.05in;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.045);font-size:.095in;line-height:1.45;color:#c6d4e6}
.stripe-config-warning{border-color:rgba(235,183,73,.52);color:#ffe0a0}
.checkout-button{margin-top:6px;height:.40in;border:1px solid #71b2ff;border-radius:.06in;background:linear-gradient(180deg,#1769E0,#0b438e);color:#fff;font-weight:700;cursor:pointer}

.checkout-result{overflow:auto;display:grid;min-height:100%;place-items:center;padding:24px;background:#000}
.result-card{width:min(560px,94vw);padding:30px;border:1px solid rgba(255,255,255,.28);border-radius:14px;background:#031A38;text-align:center}
.result-card h1{font-size:24px}.result-card p{color:#c2d1e5;line-height:1.6}.result-link{display:inline-block;margin-top:12px;padding:10px 16px;border:1px solid #fff;border-radius:7px;color:#fff;text-decoration:none}

@keyframes bannerFlow{from{background-position:0 50%}to{background-position:100% 50%}}
@keyframes bannerGlowPulse{0%,100%{filter:brightness(1)}50%{filter:brightness(1.08)}}
@keyframes bannerShineTravel{0%,15%{left:-18%;opacity:0}25%{opacity:.9}55%{left:112%;opacity:.78}70%,100%{left:112%;opacity:0}}
@keyframes bannerScanHorizontal{0%{transform:translateX(-100%);opacity:.15}50%{transform:translateX(0);opacity:.9}100%{transform:translateX(100%);opacity:.15}}
@keyframes badgeFloat{0%,100%{translate:0 0}50%{translate:0 -6px}}
@keyframes badgeTilt{0%,100%{rotate:0}25%{rotate:.7deg}75%{rotate:-.7deg}}
@keyframes badgePulse{0%,100%{scale:1}50%{scale:1.025}}
@keyframes haloPulse{0%,100%{transform:scale(.95);opacity:.42}50%{transform:scale(1.08);opacity:.88}}
@keyframes energySpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes logoGlow{0%,100%{filter:drop-shadow(0 0 3px rgba(255,255,255,.18)) drop-shadow(0 0 9px rgba(45,140,255,.22))}50%{filter:drop-shadow(0 0 5px rgba(255,255,255,.28)) drop-shadow(0 0 15px rgba(45,140,255,.42))}}
@keyframes logoShineTravel{0%,15%{left:-75%;opacity:0}25%{opacity:.9}55%{left:135%;opacity:.7}65%,100%{left:135%;opacity:0}}
@keyframes logoScan{0%,100%{top:12%;opacity:.1}50%{top:88%;opacity:.85}}
@keyframes sparkleA{0%,72%,100%{opacity:0;transform:scale(.6)}78%{opacity:1;transform:scale(1.35)}84%{opacity:0}}
@keyframes sparkleB{0%,44%,100%{opacity:0;transform:scale(.6)}51%{opacity:1;transform:scale(1.4)}58%{opacity:0}}
@keyframes sparkleC{0%,24%,100%{opacity:0;transform:scale(.6)}31%{opacity:1;transform:scale(1.3)}38%{opacity:0}}

@media(max-width:1100px){
  .page-title-badge{width:3.4in;font-size:.115in}
  .login-form input{width:.95in}
}
@media(max-width:800px){
  .member-access{right:.06in}
  .login-form input{width:.78in;font-size:.09in}
  .member-button,.register-button{padding:0 .05in;font-size:.08in}
  .page-title-badge{width:2.8in;font-size:.10in}
}
@media(max-width:620px){
  .page-title-badge{width:2.35in;font-size:.085in}
}
@media(prefers-reduced-motion:reduce){
  .top-banner,.bottom-banner,.banner-shine,.banner-scanline,.banner-spark{animation:none!important}
}

/* Rev 0.0.0.1.3: hard containment for white scan/pulse lines */
.banner-effects .banner-scanline{
  overflow:hidden;
  max-height:2px;
}
.top-banner .banner-effects .banner-scanline{
  top:auto;
  bottom:0;
}
.bottom-banner .banner-effects .banner-scanline{
  top:0;
  bottom:auto;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Adaptive Responsive Layout
   Phones / tablets / foldables / laptops / desktops
   ========================================================== */

:root{
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);

  --responsive-banner-height: var(--banner-height);
  --responsive-title-width:min(3.0in,calc(100vw - 0.30in - var(--safe-left) - var(--safe-right)));
  --responsive-logo-size: var(--logo-size);
}

/* Use the modern mobile viewport when available so browser chrome and
   on-screen keyboards do not cause a false full-height layout. */
html,
body{
  min-width: 100%;
  min-height: 100%;
}

body{
  min-height: 100dvh;
  min-height: 100svh;
}

/* Safe-area aware fixed banners */
.top-banner{
  padding-left: var(--safe-left);
  padding-right: var(--safe-right);
}

.bottom-banner{
  padding-left: var(--safe-left);
  padding-right: var(--safe-right);
  padding-bottom: var(--safe-bottom);
}

/* Main content follows the current responsive banner height. */
.main-section{
  top: calc(var(--responsive-banner-height) + var(--safe-top));
  bottom: calc(var(--responsive-banner-height) + var(--safe-bottom));
}

/* Keep title badge responsive without changing the 50/50 overlap concept. */
.page-title-badge{
  width: var(--responsive-title-width);
  max-width: calc(100vw - 0.30in - var(--safe-left) - var(--safe-right));
  min-width: 0;
  padding-left: clamp(0.10in, 2vw, 0.20in);
  padding-right: clamp(0.10in, 2vw, 0.20in);
  font-size: clamp(0.085in, 1.6vw, 0.15in);
  letter-spacing: clamp(0.003in, 0.18vw, 0.012in);
  overflow: hidden;
}

/* Login area scales continuously across desktop sizes. */
.member-access{
  right: calc(0.125in + var(--safe-right));
  max-width: min(46vw, 5.25in);
}

.login-form{
  min-width: 0;
}

.login-form input{
  width: clamp(0.86in, 8.2vw, 1.18in);
  min-width: 0;
}

.member-button,
.register-button{
  flex: 0 0 auto;
}

/* Bottom-right logo scales down on small screens and respects safe areas. */

/* Pop-up registration is mobile safe and remains fully usable with keyboards. */
.modal-backdrop{
  padding:
    max(12px, var(--safe-top))
    max(12px, var(--safe-right))
    max(12px, var(--safe-bottom))
    max(12px, var(--safe-left));
  overflow-y: auto;
  overscroll-behavior: contain;
}

.registration-modal{
  width: min(4.9in, calc(100vw - 24px - var(--safe-left) - var(--safe-right)));
  max-height: min(88dvh, 88svh);
  -webkit-overflow-scrolling: touch;
}

.registration-form input,
.checkout-button{
  min-height: 44px;
}

/* Desktop / large laptop */
@media (min-width: 1200px){
  :root{
    --responsive-banner-height: 0.375in;
    --responsive-logo-size: 1.5in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }
}

/* Standard laptop / tablet landscape */
@media (min-width: 820px) and (max-width: 1199px){
  :root{
    --responsive-banner-height: 0.42in;
    --responsive-logo-size: 1.30in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }

  .page-title-badge{
    --title-badge-height: 0.46in;
    --title-badge-overlap: calc(var(--title-badge-height) / 2);
    width:min(3.0in,calc(100vw - 0.30in - var(--safe-left) - var(--safe-right)));
  }

  .member-access{
    max-width: 4.5in;
  }

  .login-form input{
    width: 0.92in;
  }
}

/* Tablets / large foldables */
@media (min-width: 620px) and (max-width: 819px){
  :root{
    --responsive-banner-height: 0.52in;
    --responsive-logo-size: 1.12in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }

  .page-title-badge{
    --title-badge-height: 0.44in;
    --title-badge-overlap: calc(var(--title-badge-height) / 2);
    width:min(3.0in,calc(100vw - 0.30in - var(--safe-left) - var(--safe-right)));
    font-size:0.10in;
  }

  .member-access{
    right: calc(0.07in + var(--safe-right));
    max-width: 46vw;
  }

  .login-form{
    gap: 4px;
  }

  .login-form input{
    width: clamp(0.72in, 11vw, 0.90in);
    font-size: 0.09in;
  }

  .member-button,
  .register-button{
    padding: 0 0.05in;
    font-size: 0.08in;
  }
}

/* Phones / narrow foldable pane */
@media (max-width: 619px){
  :root{
    --responsive-banner-height: 0.74in;
    --responsive-logo-size: 0.90in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }

  .top-banner{
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
  }

  .page-title-badge{
    --title-badge-height: 0.42in;
    --title-badge-overlap: calc(var(--title-badge-height) / 2);
    left: 0.10in;
    top: calc(100% - var(--title-badge-overlap));
    translate: 0 0;
    width: min(3.0in, calc(100vw - 0.20in - var(--safe-left) - var(--safe-right)));
    max-width: calc(100vw - 0.20in - var(--safe-left) - var(--safe-right));
    font-size: 0.09in;
    letter-spacing: 0.003in;
    padding: 0 0.08in;
  }

  /* Mobile login becomes a compact second row inside the taller top banner.
     All controls remain visible and functional. */
  .member-access{
    top: 0.08in;
    right: calc(0.08in + var(--safe-right));
    left: calc(0.08in + var(--safe-left));
    translate: 0 0;
    width: auto;
    max-width: none;
    justify-content: flex-end;
  }

  .login-form{
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0,1fr) minmax(0,1fr) auto auto;
    gap: 4px;
  }

  .login-form input{
    display: block;
    width: 100%;
    min-width: 0;
    height: 0.27in;
    padding: 0 0.05in;
    font-size: 0.085in;
  }

  .member-button,
  .register-button{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 0.27in;
    min-width: 0.48in;
    padding: 0 0.05in;
    font-size: 0.075in;
  }

  .member-identity{
    margin-left: auto;
    max-width: calc(100vw - 1.25in);
    overflow: hidden;
  }

  .member-name{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .registration-modal{
    padding: 0.20in;
    border-radius: 0.08in;
  }

  .registration-modal h2{
    padding-right: 28px;
    font-size: 0.18in;
  }

  .registration-modal p{
    font-size: 0.105in;
  }

  .registration-form{
    gap: 7px;
  }

  .registration-form input{
    font-size: 16px; /* avoids iOS auto-zoom */
  }

  .flash-message{
    top: 0.36in;
    width: calc(100vw - 24px);
    max-width: none;
    font-size: 0.10in;
  }

  .member-welcome{
    top: 0.42in;
    max-width: calc(100vw - 24px);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

/* Very small phones / narrow foldable pane */
@media (max-width: 430px){
  :root{
    --responsive-banner-height: 0.84in;
    --responsive-logo-size: 0.78in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }

  .login-form{
    grid-template-columns: minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "username password"
      "login register";
  }

  .login-form input[name="login"]{grid-area:username}
  .login-form input[name="password"]{grid-area:password}
  .login-form .member-button{grid-area:login}
  .login-form .register-button{grid-area:register}

  .page-title-badge{
    width: min(3.0in, calc(100vw - 0.20in - var(--safe-left) - var(--safe-right)));
    font-size: 0.082in;
  }
}

/* Landscape phones: save vertical space while keeping controls usable. */
@media (max-height: 520px) and (orientation: landscape){
  :root{
    --responsive-banner-height: 0.55in;
    --responsive-logo-size: 0.72in;
  }

  .top-banner,
  .bottom-banner{
    height: var(--responsive-banner-height);
  }

  .registration-modal{
    max-height: calc(100dvh - 20px);
    padding: 0.16in;
  }

  .registration-modal h2{
    font-size: 0.16in;
    margin-bottom: 4px;
  }

  .registration-modal p,
  .membership-note,
  .stripe-config-warning{
    font-size: 0.09in;
  }
}

/* Fold / dual-screen guard:
   keep major interactive areas out of the exact middle when the browser exposes
   a vertical folding or spanning context. This remains a progressive enhancement. */
@media (horizontal-viewport-segments: 2){
  .page-title-badge{
    width: min(3.0in, 42vw);
  }

  .member-access{
    max-width: 42vw;
  }
}

/* Touch devices: avoid hover-only dependence. */
@media (hover: none), (pointer: coarse){
  .member-button,
  .register-button,
  .checkout-button,
  .modal-close{
    min-height: 44px;
  }
}

/* Keep animation layers clipped to banners on every responsive size. */
.banner-effects{
  width: 100%;
  height: 100%;
  overflow: hidden;
  contain: paint;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Public Store
   Accessible to both guests and signed-in members.
   ========================================================== */

.site-nav-button{
  position:absolute;
  top:50%;
  translate:0 -50%;
  z-index:110;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:.26in;
  padding:0 .10in;
  border:1px solid rgba(255,255,255,.72);
  border-radius:.045in;
  background:#031A38;
  color:#fff;
  text-decoration:none;
  font-size:.09in;
  font-weight:700;
  letter-spacing:.015in;
  box-shadow:0 0 8px rgba(45,140,255,.24);
}
.store-nav,.home-nav{left:calc(.125in + var(--safe-left))}
.site-nav-button:hover{filter:brightness(1.15)}

.link-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
}

.guest-state{
  color:#d9e8fb;
  font-size:.09in;
  white-space:nowrap;
}

.cart-button{
  display:inline-flex;
  align-items:center;
  gap:5px;
  min-height:.26in;
  padding:0 .08in;
  border:1px solid rgba(255,255,255,.66);
  border-radius:.04in;
  background:#031A38;
  color:#fff;
  text-decoration:none;
  font-size:.09in;
  font-weight:650;
}
.cart-button span{
  display:inline-grid;
  min-width:18px;
  height:18px;
  place-items:center;
  border-radius:999px;
  background:#fff;
  color:#031A38;
  font-size:11px;
  font-weight:800;
}

.store-page{
  overflow:auto;
  background:#000;
}
.store-main{
  min-height:100dvh;
  padding:
    calc(var(--responsive-banner-height) + var(--safe-top) + .45in)
    max(.28in, calc(.20in + var(--safe-right)))
    calc(var(--responsive-banner-height) + var(--safe-bottom) + .60in)
    max(.28in, calc(.20in + var(--safe-left)));
  background:
    radial-gradient(circle at 50% 0%, rgba(23,105,224,.11), transparent 34%),
    #000;
}
.store-flash{
  position:relative;
  top:auto;
  left:auto;
  translate:0 0;
  margin:0 auto .18in;
}

.store-intro{
  width:min(11.5in,100%);
  margin:0 auto .30in;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(2.2in,3.2in);
  gap:.25in;
  align-items:end;
}
.eyebrow{
  display:block;
  margin-bottom:6px;
  color:#75b7ff;
  font-size:.09in;
  font-weight:800;
  letter-spacing:.025in;
}
.store-intro h1{
  margin:0;
  color:#fff;
  font-size:clamp(.28in,3vw,.48in);
  line-height:1.04;
  letter-spacing:-.018in;
}
.store-intro p{
  max-width:7in;
  margin:10px 0 0;
  color:#aebfd4;
  font-size:.12in;
  line-height:1.55;
}
.store-security{
  padding:.15in;
  border:1px solid rgba(255,255,255,.16);
  border-radius:.08in;
  background:linear-gradient(180deg,rgba(7,31,65,.78),rgba(2,12,27,.92));
  box-shadow:inset 0 1px rgba(255,255,255,.08);
}
.store-security strong,.store-security span{display:block}
.store-security strong{margin-bottom:5px;color:#fff;font-size:.11in}
.store-security span{color:#9fb2c9;font-size:.095in;line-height:1.45}

.product-grid{
  width:min(11.5in,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.18in;
}
.product-card{
  min-width:0;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.18);
  border-radius:.10in;
  background:linear-gradient(180deg,#06162F 0%,#020812 100%);
  box-shadow:0 12px 32px rgba(0,0,0,.35),inset 0 1px rgba(255,255,255,.08);
}
.product-art{
  height:1.25in;
  display:grid;
  place-items:center;
  background:
    linear-gradient(135deg,rgba(45,140,255,.20),transparent 55%),
    repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 1px,transparent 1px 14px),
    #031A38;
  border-bottom:1px solid rgba(255,255,255,.10);
}
.product-art span{
  font-size:.35in;
  font-weight:900;
  letter-spacing:.08in;
  color:rgba(255,255,255,.90);
  text-shadow:0 0 18px rgba(45,140,255,.55);
}
.product-body{padding:.18in}
.product-type{color:#75b7ff;font-size:.075in;font-weight:800;letter-spacing:.02in}
.product-body h2{margin:6px 0 8px;font-size:.18in;line-height:1.2}
.product-body p{min-height:.52in;margin:0;color:#9fb2c9;font-size:.098in;line-height:1.5}
.product-bottom{
  min-height:.36in;
  margin-top:.14in;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  flex-wrap:wrap;
}
.product-price{font-size:.18in}
.config-badge{
  padding:4px 6px;
  border:1px solid rgba(235,183,73,.46);
  border-radius:999px;
  color:#ffd98b;
  font-size:.07in;
}
.product-action{
  margin-top:.12in;
  display:grid;
  grid-template-columns:.72in minmax(0,1fr);
  gap:7px;
}
.product-action label{
  display:grid;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:4px;
  color:#aebfd4;
  font-size:.08in;
}
.product-action input,
.cart-update input{
  width:100%;
  min-width:0;
  height:.32in;
  border:1px solid #405c80;
  border-radius:.045in;
  background:#020812;
  color:#fff;
  text-align:center;
}
.product-action button,
.cart-update button,
.remove-button,
.text-button{
  min-height:.32in;
  border:1px solid rgba(255,255,255,.42);
  border-radius:.045in;
  background:#0C3E8F;
  color:#fff;
  cursor:pointer;
  font-weight:700;
}
.text-button,.remove-button{
  background:transparent;
  padding:0 .08in;
  font-size:.08in;
}
.remove-button{border-color:rgba(255,100,115,.38);color:#ff9da8}

.cart-panel{
  width:min(11.5in,100%);
  margin:.34in auto 0;
  padding:.20in;
  border:1px solid rgba(255,255,255,.18);
  border-radius:.10in;
  background:linear-gradient(180deg,rgba(6,22,47,.90),rgba(1,5,12,.96));
}
.cart-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.12in;
}
.cart-heading h2{margin:0;font-size:.22in}
.empty-cart{
  margin-top:.15in;
  padding:.20in;
  border:1px dashed rgba(255,255,255,.20);
  border-radius:.06in;
  color:#8fa4be;
  text-align:center;
}
.cart-items{margin-top:.12in}
.cart-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) 1.65in .72in;
  gap:.10in;
  align-items:center;
  padding:.10in 0;
  border-top:1px solid rgba(255,255,255,.10);
}
.cart-name strong,.cart-name span{display:block}
.cart-name span{margin-top:3px;color:#8fa4be;font-size:.085in}
.cart-update{
  display:grid;
  grid-template-columns:.62in minmax(0,1fr);
  gap:5px;
}
.checkout-area{
  margin-top:.16in;
  padding-top:.16in;
  border-top:1px solid rgba(255,255,255,.12);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.18in;
}
.checkout-area strong,.checkout-area span{display:block}
.checkout-area span{margin-top:4px;color:#8fa4be;font-size:.09in}
.store-checkout-button{
  min-width:2.05in;
  padding:0 .18in;
}

@media(max-width:900px){
  .product-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .store-intro{grid-template-columns:1fr}
}
@media(max-width:619px){
  .site-nav-button{
    top:auto;
    bottom:.06in;
    translate:0 0;
    min-height:.25in;
    font-size:.075in;
  }
  .store-access{
    justify-content:flex-end;
  }
  .guest-state{display:none}
  .store-main{
    padding-top:calc(var(--responsive-banner-height) + var(--safe-top) + .38in);
    padding-left:max(.14in,calc(.10in + var(--safe-left)));
    padding-right:max(.14in,calc(.10in + var(--safe-right)));
  }
  .product-grid{grid-template-columns:1fr}
  .product-body p{min-height:0}
  .cart-row{
    grid-template-columns:1fr;
    gap:7px;
  }
  .cart-update{
    grid-template-columns:.72in minmax(0,1fr);
  }
  .checkout-area{
    align-items:stretch;
    flex-direction:column;
  }
  .store-checkout-button{width:100%;min-height:44px}
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — 3.0in scrolling title badge
   ========================================================== */

.page-title-badge{
  width:min(3.0in,calc(100vw - 0.30in - var(--safe-left) - var(--safe-right)));
  overflow:hidden;
  padding-left:0;
  padding-right:0;
}

.page-title-scroll{
  display:flex;
  align-items:center;
  width:max-content;
  min-width:100%;
  height:100%;
  white-space:nowrap;
  will-change:transform;
  animation:titleMarquee 14s linear infinite;
}

.page-title-scroll span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  height:100%;
  padding:0 .32in;
  color:#fff;
  font:inherit;
  letter-spacing:inherit;
  text-shadow:inherit;
}

.page-title-scroll span::after{
  content:"•";
  margin-left:.32in;
  color:rgba(255,255,255,.55);
}

@keyframes titleMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Pause marquee on hover for easier reading with a mouse. */
@media (hover:hover) and (pointer:fine){
  .page-title-badge:hover .page-title-scroll{
    animation-play-state:paused;
  }
}

@media (prefers-reduced-motion:reduce){
  .page-title-scroll{
    animation:none!important;
    transform:none!important;
  }
  .page-title-scroll span:nth-child(2){
    display:none;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Static first word + scrolling remainder
   ========================================================== */

.page-title-badge{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  justify-content:initial;
  column-gap:.06in;
  padding:0 .10in;
}

.page-title-static{
  position:relative;
  z-index:3;
  display:inline-flex;
  align-items:center;
  height:100%;
  flex:0 0 auto;
  color:#fff;
  font:inherit;
  font-weight:750;
  letter-spacing:inherit;
  text-transform:none;
  text-shadow:inherit;
  white-space:nowrap;
}

.page-title-static::after{
  content:"";
  display:block;
  width:1px;
  height:48%;
  margin-left:.06in;
  background:rgba(255,255,255,.38);
  box-shadow:0 0 5px rgba(255,255,255,.14);
}

.page-title-scroll-window{
  position:relative;
  min-width:0;
  width:100%;
  height:100%;
  overflow:hidden;
  display:flex;
  align-items:center;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 8%,#000 92%,transparent 100%);
}

.page-title-scroll{
  display:flex;
  align-items:center;
  width:max-content;
  min-width:max-content;
  height:100%;
  white-space:nowrap;
  will-change:transform;
  animation:titleRemainderMarquee 12s linear infinite;
}

.page-title-scroll span{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex:0 0 auto;
  height:100%;
  padding:0 .24in 0 .08in;
  color:#fff;
  font:inherit;
  font-weight:inherit;
  letter-spacing:inherit;
  text-shadow:inherit;
}

.page-title-scroll span::after{
  content:"•";
  margin-left:.24in;
  color:rgba(255,255,255,.55);
}

@keyframes titleRemainderMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(-50%)}
}

/* Disable the prior full-title marquee declaration in favor of the remainder-only track. */
.page-title-scroll{
  animation-name:titleRemainderMarquee!important;
}

@media (hover:hover) and (pointer:fine){
  .page-title-badge:hover .page-title-scroll{
    animation-play-state:paused;
  }
}

@media (prefers-reduced-motion:reduce){
  .page-title-scroll{
    animation:none!important;
    transform:none!important;
  }
  .page-title-scroll span:nth-child(2){
    display:none;
  }
  .page-title-scroll-window{
    -webkit-mask-image:none;
    mask-image:none;
  }
}

/* Tighten spacing on narrow screens while keeping Aiterion fixed. */
@media(max-width:619px){
  .page-title-badge{
    column-gap:.04in;
    padding-left:.07in;
    padding-right:.07in;
  }
  .page-title-static::after{
    margin-left:.04in;
  }
  .page-title-scroll span{
    padding-left:.06in;
    padding-right:.18in;
  }
  .page-title-scroll span::after{
    margin-left:.18in;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Startup Logo / Welcome Transition
   Bottom-right logo removed from all normal site pages.
   Former logo size: 1.5in. Startup logo target: 4.5in (3x).
   ========================================================== */

.startup-page{
  margin:0;
  min-width:100%;
  min-height:100%;
  overflow:hidden;
  background:#000;
  color:#fff;
}

.startup-stage{
  position:fixed;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.18in;
  padding:
    max(.20in,var(--safe-top))
    max(.20in,var(--safe-right))
    max(.20in,var(--safe-bottom))
    max(.20in,var(--safe-left));
  background:
    radial-gradient(circle at 50% 48%,rgba(23,105,224,.16),transparent 32%),
    #000;
}

.startup-logo-shell{
  position:relative;
  width:min(4.5in,82vw);
  height:min(4.5in,82vw);
  display:grid;
  place-items:center;
  overflow:hidden;
  border-radius:50%;
  animation:startupLogoArrival 900ms cubic-bezier(.18,.78,.22,1) both,
            startupLogoPulse 2.4s ease-in-out 900ms infinite;
  filter:
    drop-shadow(0 0 15px rgba(45,140,255,.28))
    drop-shadow(0 0 36px rgba(23,105,224,.20));
}

.startup-logo{
  position:relative;
  z-index:3;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  animation:startupLogoGlow 2.2s ease-in-out infinite;
}

.startup-energy-ring{
  position:absolute;
  inset:2%;
  z-index:1;
  border-radius:50%;
  background:
    conic-gradient(
      from 0deg,
      rgba(255,0,0,0) 0deg,
      rgba(255,0,0,.42) 45deg,
      rgba(255,0,0,0) 95deg,
      rgba(45,140,255,0) 120deg,
      rgba(45,140,255,.52) 180deg,
      rgba(45,140,255,0) 230deg,
      rgba(0,255,80,0) 255deg,
      rgba(0,255,80,.42) 305deg,
      rgba(0,255,80,0) 360deg
    );
  filter:blur(8px);
  opacity:.55;
  animation:startupEnergySpin 7s linear infinite;
}

.startup-scanline{
  position:absolute;
  z-index:5;
  left:8%;
  width:84%;
  height:2px;
  top:12%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(45,140,255,.70) 28%,
      rgba(255,255,255,.95) 50%,
      rgba(45,140,255,.70) 72%,
      transparent
    );
  box-shadow:0 0 10px rgba(45,140,255,.70);
  animation:startupScan 2.6s ease-in-out infinite;
}

.startup-progress{
  width:min(3.15in,66vw);
  height:.045in;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.28);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  box-shadow:0 0 10px rgba(45,140,255,.12);
}

.startup-progress span{
  display:block;
  width:100%;
  height:100%;
  transform-origin:left center;
  background:linear-gradient(90deg,#0C3E8F,#2D8CFF,#fff);
  animation:startupProgress 3.0s ease-in-out both;
}

.startup-status{
  margin:0;
  color:rgba(255,255,255,.68);
  font-size:clamp(12px,2.2vw,16px);
  font-weight:600;
  letter-spacing:.08em;
  text-transform:uppercase;
  text-align:center;
}

@keyframes startupLogoArrival{
  0%{opacity:0;transform:scale(.72)}
  70%{opacity:1;transform:scale(1.035)}
  100%{opacity:1;transform:scale(1)}
}
@keyframes startupLogoPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.018)}
}
@keyframes startupLogoGlow{
  0%,100%{filter:drop-shadow(0 0 6px rgba(255,255,255,.18)) drop-shadow(0 0 18px rgba(45,140,255,.28))}
  50%{filter:drop-shadow(0 0 9px rgba(255,255,255,.26)) drop-shadow(0 0 28px rgba(45,140,255,.48))}
}
@keyframes startupEnergySpin{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}
@keyframes startupScan{
  0%,100%{top:12%;opacity:.10}
  50%{top:88%;opacity:.88}
}
@keyframes startupProgress{
  from{transform:scaleX(0)}
  to{transform:scaleX(1)}
}

@media(max-width:619px){
  .startup-logo-shell{
    width:min(4.5in,78vw);
    height:min(4.5in,78vw);
  }
}

@media(max-height:520px) and (orientation:landscape){
  .startup-logo-shell{
    width:min(4.5in,60vh);
    height:min(4.5in,60vh);
  }
  .startup-progress{width:min(2.8in,48vw)}
}

@media(prefers-reduced-motion:reduce){
  .startup-logo-shell,
  .startup-logo,
  .startup-energy-ring,
  .startup-scanline,
  .startup-progress span{
    animation:none!important;
  }
  .startup-progress span{transform:scaleX(1)}
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Enhanced Boot Loader
   Runs once per browser session via session-only server cookie.
   ========================================================== */

.startup-logo-shell{
  isolation:isolate;
  animation:
    startupLogoArrival 900ms cubic-bezier(.18,.78,.22,1) both,
    startupLogoPulse 2.4s ease-in-out 900ms infinite,
    startupMicroTilt 5.6s ease-in-out 900ms infinite;
}

.startup-logo{
  animation:
    startupLogoGlow 2.2s ease-in-out infinite,
    startupChromaticShift 6.8s ease-in-out infinite;
}

.startup-orbit{
  position:absolute;
  inset:-7%;
  z-index:0;
  border:1px solid rgba(45,140,255,.16);
  border-radius:50%;
  pointer-events:none;
}

.startup-orbit-inner{
  inset:8%;
  border-color:rgba(255,255,255,.11);
  animation:startupOrbitReverse 6.4s linear infinite;
}

.startup-orbit-outer{
  animation:startupOrbit 9.2s linear infinite;
}

.startup-orbit i{
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#fff;
  box-shadow:
    0 0 7px rgba(255,255,255,.95),
    0 0 16px rgba(45,140,255,.88);
}

.startup-orbit-outer i:nth-child(1){left:50%;top:-4px}
.startup-orbit-outer i:nth-child(2){right:7%;bottom:19%;width:6px;height:6px}
.startup-orbit-outer i:nth-child(3){left:9%;bottom:15%;width:5px;height:5px}
.startup-orbit-inner i:nth-child(1){right:-3px;top:50%;width:5px;height:5px}
.startup-orbit-inner i:nth-child(2){left:22%;top:4%;width:4px;height:4px}

.startup-energy-ring-secondary{
  inset:11%;
  opacity:.30;
  filter:blur(3px);
  animation:startupEnergySpinReverse 4.8s linear infinite;
}

.startup-radar-ring{
  position:absolute;
  z-index:1;
  left:50%;
  top:50%;
  width:72%;
  height:72%;
  translate:-50% -50%;
  border:1px solid rgba(45,140,255,.30);
  border-radius:50%;
  opacity:0;
  pointer-events:none;
}

.ring-one{animation:startupRadarPulse 2.4s ease-out infinite}
.ring-two{animation:startupRadarPulse 2.4s ease-out infinite .8s}
.ring-three{animation:startupRadarPulse 2.4s ease-out infinite 1.6s}

.startup-particles b{
  position:absolute;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#fff;
  opacity:0;
  box-shadow:0 0 8px rgba(255,255,255,.85),0 0 15px rgba(45,140,255,.72);
}

.startup-particles b:nth-child(1){left:18%;top:22%;animation:startupParticle 3.3s ease-in-out infinite .2s}
.startup-particles b:nth-child(2){right:17%;top:28%;animation:startupParticle 4.2s ease-in-out infinite 1.1s}
.startup-particles b:nth-child(3){left:24%;bottom:20%;animation:startupParticle 3.8s ease-in-out infinite 1.8s}
.startup-particles b:nth-child(4){right:22%;bottom:23%;animation:startupParticle 4.7s ease-in-out infinite .7s}
.startup-particles b:nth-child(5){left:48%;top:10%;animation:startupParticle 3.6s ease-in-out infinite 2.1s}
.startup-particles b:nth-child(6){left:10%;top:52%;animation:startupParticle 4.5s ease-in-out infinite 1.4s}
.startup-particles b:nth-child(7){right:9%;top:55%;animation:startupParticle 3.9s ease-in-out infinite 2.7s}
.startup-particles b:nth-child(8){left:52%;bottom:8%;animation:startupParticle 4.3s ease-in-out infinite .4s}

.startup-readout{
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:.12in;
  width:min(3.15in,66vw);
}

.startup-percent{
  min-width:.52in;
  color:#fff;
  font-size:clamp(16px,3.1vw,23px);
  font-weight:800;
  letter-spacing:.02em;
  text-align:right;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 12px rgba(45,140,255,.55);
}

.startup-message{
  overflow:hidden;
  color:rgba(255,255,255,.66);
  font-size:clamp(10px,1.8vw,13px);
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  white-space:nowrap;
  text-overflow:ellipsis;
}

.startup-progress span{
  transform:scaleX(0);
  transition:transform 160ms cubic-bezier(.22,.72,.22,1);
  animation:none;
}

.startup-data-strip{
  width:min(2.8in,60vw);
  height:.07in;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:3px;
}

.startup-data-strip span{
  width:10%;
  min-width:4px;
  height:35%;
  border-radius:1px;
  background:linear-gradient(180deg,#fff,#2D8CFF);
  opacity:.58;
  transform-origin:center bottom;
}

.startup-data-strip span:nth-child(1){animation:startupDataBar 1.1s ease-in-out infinite}
.startup-data-strip span:nth-child(2){animation:startupDataBar 1.35s ease-in-out infinite .15s}
.startup-data-strip span:nth-child(3){animation:startupDataBar .9s ease-in-out infinite .3s}
.startup-data-strip span:nth-child(4){animation:startupDataBar 1.5s ease-in-out infinite .45s}
.startup-data-strip span:nth-child(5){animation:startupDataBar 1.2s ease-in-out infinite .6s}

@keyframes startupMicroTilt{
  0%,100%{rotate:0deg}
  25%{rotate:.55deg}
  75%{rotate:-.55deg}
}
@keyframes startupChromaticShift{
  0%,100%{
    filter:
      drop-shadow(0 0 6px rgba(255,255,255,.18))
      drop-shadow(0 0 18px rgba(45,140,255,.28));
  }
  33%{
    filter:
      drop-shadow(2px 0 5px rgba(255,40,40,.24))
      drop-shadow(-2px 0 10px rgba(45,140,255,.34))
      drop-shadow(0 0 22px rgba(45,140,255,.30));
  }
  66%{
    filter:
      drop-shadow(-2px 0 5px rgba(20,255,90,.20))
      drop-shadow(2px 0 10px rgba(45,140,255,.34))
      drop-shadow(0 0 24px rgba(45,140,255,.34));
  }
}
@keyframes startupOrbit{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}
@keyframes startupOrbitReverse{
  from{transform:rotate(360deg)}
  to{transform:rotate(0)}
}
@keyframes startupEnergySpinReverse{
  from{transform:rotate(360deg)}
  to{transform:rotate(0)}
}
@keyframes startupRadarPulse{
  0%{opacity:.0;transform:scale(.72)}
  25%{opacity:.46}
  100%{opacity:0;transform:scale(1.38)}
}
@keyframes startupParticle{
  0%,72%,100%{opacity:0;transform:scale(.55)}
  78%{opacity:1;transform:scale(1.45)}
  84%{opacity:.18;transform:scale(.8)}
}
@keyframes startupDataBar{
  0%,100%{transform:scaleY(.35);opacity:.38}
  50%{transform:scaleY(1);opacity:.88}
}

@media(max-width:619px){
  .startup-readout{
    width:min(3.15in,74vw);
  }
  .startup-message{
    font-size:10px;
  }
}

@media(prefers-reduced-motion:reduce){
  .startup-orbit,
  .startup-energy-ring-secondary,
  .startup-radar-ring,
  .startup-particles b,
  .startup-data-strip span{
    animation:none!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Extended multi-step boot progress
   ========================================================== */

.startup-step-line{
  width:min(3.15in,66vw);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.12in;
  color:rgba(255,255,255,.48);
  font-size:clamp(9px,1.5vw,11px);
  font-weight:700;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.startup-step-line span{
  min-width:0;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
}

#startup-phase-name{
  color:rgba(117,183,255,.82);
  text-align:right;
}

.startup-progress{
  position:relative;
}

.startup-progress::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent calc(4.166% - 1px),
      rgba(255,255,255,.11) calc(0.4630% - 1px),
      rgba(255,255,255,.11) 0.4630%
    );
  opacity:.55;
}

/* Subtle checkpoint flash as the bar advances. */
.startup-progress span{
  box-shadow:
    0 0 8px rgba(45,140,255,.48),
    0 0 16px rgba(45,140,255,.20);
}

@media(max-width:619px){
  .startup-step-line{
    width:min(3.15in,74vw);
    font-size:9px;
  }
}




/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Random Twinkling Star Boot Background
   ========================================================== */

.startup-stage{
  isolation:isolate;
  overflow:hidden;
}

.twinkle-star-field{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 45%,rgba(23,105,224,.045),transparent 42%),
    #000;
}

.startup-logo-shell,
.startup-readout,
.startup-progress,
.startup-step-line,
.startup-data-strip{
  position:relative;
  z-index:2;
}

.twinkle-star{
  position:absolute;
  left:var(--star-left);
  top:var(--star-top);
  width:var(--star-size);
  height:var(--star-size);
  border-radius:50%;
  background:rgb(var(--star-color));
  opacity:var(--star-base-opacity);
  box-shadow:
    0 0 calc(var(--star-size) * 1.8) rgba(var(--star-color),.82),
    0 0 calc(var(--star-size) * 4.2) rgba(45,140,255,.24);
  transform:translate(-50%,-50%) scale(.82);
  animation:
    twinkleStar var(--star-duration) ease-in-out var(--star-delay) infinite alternate;
  will-change:opacity,transform,filter;
}

.twinkle-star::before,
.twinkle-star::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  translate:-50% -50%;
  background:rgba(var(--star-color),.72);
  border-radius:999px;
  opacity:0;
}

.twinkle-star::before{
  width:calc(var(--star-size) * 4.5);
  height:1px;
}

.twinkle-star::after{
  width:1px;
  height:calc(var(--star-size) * 4.5);
}

@keyframes twinkleStar{
  0%{
    opacity:var(--star-base-opacity);
    transform:translate(-50%,-50%) scale(.72);
    filter:brightness(.86);
  }
  48%{
    opacity:calc((var(--star-base-opacity) + var(--star-peak-opacity)) / 2);
    transform:translate(-50%,-50%) scale(1);
    filter:brightness(1);
  }
  100%{
    opacity:var(--star-peak-opacity);
    transform:translate(-50%,-50%) scale(var(--star-scale));
    filter:brightness(1.32);
  }
}

.twinkle-star:nth-child(7n)::before,
.twinkle-star:nth-child(7n)::after,
.twinkle-star:nth-child(11n)::before,
.twinkle-star:nth-child(11n)::after{
  opacity:.42;
}

.twinkle-star-static{
  animation:none!important;
  opacity:.42;
  transform:translate(-50%,-50%) scale(1);
}

@media(max-width:619px){
  .twinkle-star-field{
    opacity:.90;
  }
}

@media(prefers-reduced-motion:reduce){
  .twinkle-star{
    animation:none!important;
    opacity:.40;
    transform:translate(-50%,-50%) scale(1);
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Satin Black Shine + Natural Star Field
   ========================================================== */

/* Subtle reflective movement across the black boot background. */
.startup-stage::before{
  content:"";
  position:absolute;
  inset:-18%;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(
      112deg,
      transparent 0%,
      transparent 35%,
      rgba(255,255,255,.018) 42%,
      rgba(45,140,255,.035) 47%,
      rgba(255,255,255,.050) 50%,
      rgba(45,140,255,.025) 54%,
      transparent 60%,
      transparent 100%
    );
  transform:translateX(-38%) rotate(-2deg);
  animation:blackBackgroundShine 9.5s ease-in-out infinite;
  mix-blend-mode:screen;
}

/* Low-intensity satin halo directly behind the logo. */
.startup-stage::after{
  content:"";
  position:absolute;
  z-index:0;
  left:50%;
  top:50%;
  width:min(6.4in,92vw);
  height:min(6.4in,92vw);
  translate:-50% -53%;
  border-radius:50%;
  pointer-events:none;
  background:
    radial-gradient(
      circle at 43% 38%,
      rgba(255,255,255,.055) 0%,
      rgba(45,140,255,.035) 19%,
      rgba(8,20,38,.030) 36%,
      rgba(0,0,0,0) 68%
    );
  filter:blur(8px);
  animation:blackHaloShimmer 7.2s ease-in-out infinite;
}

@keyframes blackBackgroundShine{
  0%,12%{
    transform:translateX(-42%) rotate(-2deg);
    opacity:.10;
  }
  40%{
    opacity:.48;
  }
  60%{
    transform:translateX(42%) rotate(-2deg);
    opacity:.30;
  }
  74%,100%{
    transform:translateX(42%) rotate(-2deg);
    opacity:.08;
  }
}

@keyframes blackHaloShimmer{
  0%,100%{
    opacity:.34;
    transform:scale(.96);
  }
  50%{
    opacity:.58;
    transform:scale(1.035);
  }
}

/* Natural-looking star field: mostly small, simple points. */
.twinkle-star-field{
  background:
    radial-gradient(circle at 50% 44%,rgba(23,105,224,.025),transparent 44%),
    #000;
}

.twinkle-star{
  width:var(--star-size);
  height:var(--star-size);
  border-radius:50%;
  background:rgb(var(--star-color));
  opacity:var(--star-base-opacity);
  box-shadow:
    0 0 calc(var(--star-size) * 1.4) rgba(var(--star-color),.34);
  transform:translate(-50%,-50%) scale(.98);
  animation:
    naturalStarTwinkle var(--star-duration) ease-in-out var(--star-delay) infinite;
}

/* Remove stylized cross flares from normal stars. */
.twinkle-star::before,
.twinkle-star::after{
  display:none;
}

/* Only a small subset gets a soft halo, still circular and natural. */
.twinkle-star.star-bright{
  box-shadow:
    0 0 calc(var(--star-size) * 1.8) rgba(var(--star-color),.48),
    0 0 calc(var(--star-size) * 3.2) rgba(170,205,255,.13);
}

@keyframes naturalStarTwinkle{
  0%{
    opacity:var(--star-base-opacity);
    transform:translate(-50%,-50%) scale(.98);
    filter:brightness(.94);
  }
  36%{
    opacity:calc(var(--star-base-opacity) + .06);
    transform:translate(-50%,-50%) scale(1);
    filter:brightness(.98);
  }
  58%{
    opacity:var(--star-peak-opacity);
    transform:translate(-50%,-50%) scale(var(--star-scale));
    filter:brightness(1.08);
  }
  76%{
    opacity:calc(var(--star-base-opacity) + .03);
    transform:translate(-50%,-50%) scale(.99);
    filter:brightness(.96);
  }
  100%{
    opacity:var(--star-base-opacity);
    transform:translate(-50%,-50%) scale(.98);
    filter:brightness(.94);
  }
}

.twinkle-star-static{
  animation:none!important;
  opacity:.42;
  transform:translate(-50%,-50%) scale(1);
}

@media(max-width:619px){
  .startup-stage::after{
    width:min(5.3in,94vw);
    height:min(5.3in,94vw);
  }
}

@media(prefers-reduced-motion:reduce){
  .startup-stage::before,
  .startup-stage::after,
  .twinkle-star{
    animation:none!important;
  }
  .startup-stage::before{
    opacity:.16;
    transform:none;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — 72-phase faster boot sequence
   ========================================================== */

.startup-phase-only{
  justify-content:flex-end;
}

.startup-phase-only #startup-phase-name{
  width:100%;
  text-align:right;
}

/* 72 subtle progress divisions. */
.startup-progress::after{
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent calc(0.4630% - 1px),
      rgba(255,255,255,.10) calc(0.4630% - 1px),
      rgba(255,255,255,.10) 0.4630%
    );
  opacity:.38;
}

/* Slightly faster interpolation between percentage updates. */
.startup-progress span{
  transition:transform 90ms cubic-bezier(.22,.72,.22,1);
}






/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Rectangular Logo + Bubble Progress
   ========================================================== */

/* Rectangular startup logo plaque. */
.startup-logo-shell.startup-logo-rectangle{
  width:min(5.2in,84vw);
  height:min(2.35in,42vw);
  max-height:2.35in;
  border-radius:.16in;
  overflow:hidden;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.035),
      rgba(6,22,47,.32) 35%,
      rgba(0,0,0,.76) 72%
    );
  border:1px solid rgba(255,255,255,.22);
  box-shadow:
    inset 0 0 0 1px rgba(45,140,255,.10),
    inset 0 0 22px rgba(45,140,255,.08),
    0 0 22px rgba(45,140,255,.16);
  animation:
    startupRectangleArrival 720ms cubic-bezier(.18,.78,.22,1) both,
    startupRectangleFloat 3.8s ease-in-out .75s infinite!important;
}

.startup-logo-shell.startup-logo-rectangle .startup-logo{
  width:92%;
  height:86%;
  object-fit:contain;
  border-radius:.08in;
}

/* Existing circular/orbit effects are clipped to a rectangular composition. */
.startup-logo-shell.startup-logo-rectangle .startup-orbit,
.startup-logo-shell.startup-logo-rectangle .startup-energy-ring,
.startup-logo-shell.startup-logo-rectangle .startup-radar-ring{
  border-radius:.16in;
}

.startup-logo-shell.startup-logo-rectangle .startup-energy-ring{
  inset:3%;
}

.startup-logo-shell.startup-logo-rectangle .startup-energy-ring-secondary{
  inset:10%;
}

.startup-logo-shell.startup-logo-rectangle .startup-orbit-outer{
  inset:-5%;
}

.startup-logo-shell.startup-logo-rectangle .startup-orbit-inner{
  inset:8%;
}

@keyframes startupRectangleArrival{
  0%{
    opacity:0;
    transform:scale(.82) translateY(18px);
    filter:blur(2px) brightness(.80);
  }
  68%{
    opacity:1;
    transform:scale(1.025) translateY(-2px);
    filter:blur(0) brightness(1.08);
  }
  100%{
    opacity:1;
    transform:scale(1) translateY(0);
    filter:blur(0) brightness(1);
  }
}

@keyframes startupRectangleFloat{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-3px)}
}

/* Bubble progress indicator replaces the linear bar. */
.startup-progress-bubble{
  --progress:0%;
  position:relative;
  z-index:2;
  width:min(1.14in,24vw);
  aspect-ratio:1;
  display:grid;
  place-items:center;
  border-radius:50%;
  isolation:isolate;
  background:
    conic-gradient(
      from -90deg,
      rgba(45,140,255,.98) 0 var(--progress),
      rgba(255,255,255,.08) var(--progress) 100%
    );
  box-shadow:
    0 0 0 1px rgba(255,255,255,.20),
    0 0 18px rgba(45,140,255,.24),
    inset 0 0 18px rgba(45,140,255,.12);
  transition:background 70ms linear;
}

.startup-progress-bubble::before{
  content:"";
  position:absolute;
  inset:8%;
  z-index:-1;
  border-radius:50%;
  background:
    radial-gradient(circle at 38% 30%,rgba(255,255,255,.16),transparent 28%),
    radial-gradient(circle at 50% 60%,rgba(8,22,42,.94),rgba(0,0,0,.98) 72%);
  border:1px solid rgba(255,255,255,.10);
}

.startup-progress-bubble-fill{
  position:absolute;
  inset:20%;
  z-index:-1;
  border-radius:50%;
  background:
    radial-gradient(
      circle at 36% 30%,
      rgba(255,255,255,.32),
      rgba(45,140,255,.34) 32%,
      rgba(12,62,143,.18) 58%,
      transparent 74%
    );
  filter:blur(2px);
  transform:scale(.72);
  opacity:.22;
  transition:
    transform 70ms linear,
    opacity 70ms linear;
}

.startup-progress-bubble-ring{
  position:absolute;
  inset:-7%;
  border-radius:50%;
  border:1px solid rgba(45,140,255,.18);
  box-shadow:0 0 12px rgba(45,140,255,.14);
  animation:bubbleRingPulse 2.2s ease-in-out infinite;
}

.startup-progress-bubble-value{
  position:relative;
  z-index:3;
  color:#fff;
  font-size:clamp(13px,3vw,18px);
  font-weight:800;
  font-variant-numeric:tabular-nums;
  letter-spacing:.01em;
  text-shadow:
    0 0 8px rgba(255,255,255,.20),
    0 0 12px rgba(45,140,255,.44);
}

@keyframes bubbleRingPulse{
  0%,100%{
    opacity:.35;
    transform:scale(.96);
  }
  50%{
    opacity:.74;
    transform:scale(1.05);
  }
}

/* Hide any legacy linear progress visual if stale markup is cached. */
.startup-progress{
  display:none!important;
}

@media(max-width:619px){
  .startup-logo-shell.startup-logo-rectangle{
    width:min(4.2in,88vw);
    height:min(2.0in,44vw);
  }

  .startup-progress-bubble{
    width:min(1.0in,26vw);
  }
}

@media(max-height:520px) and (orientation:landscape){
  .startup-logo-shell.startup-logo-rectangle{
    width:min(4.0in,58vw);
    height:min(1.65in,42vh);
  }

  .startup-progress-bubble{
    width:min(.88in,18vw);
  }
}

@media(prefers-reduced-motion:reduce){
  .startup-logo-shell.startup-logo-rectangle,
  .startup-progress-bubble-ring{
    animation:none!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Full-page Boot Logo + Progress Bar
   ========================================================== */

.startup-stage{
  gap:.14in;
  justify-content:center;
  padding:
    max(.12in,var(--safe-top))
    max(.12in,var(--safe-right))
    max(.12in,var(--safe-bottom))
    max(.12in,var(--safe-left));
}

/* The boot logo now occupies most of the available page. */
.startup-logo-shell.startup-logo-rectangle{
  width:min(10.2in,90vw);
  height:min(5.8in,68vh);
  max-height:none;
  min-height:2.4in;
  border-radius:.18in;
  overflow:hidden;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.025),
      rgba(6,22,47,.24) 32%,
      rgba(0,0,0,.88) 72%
    );
  border:1px solid rgba(255,255,255,.24);
  box-shadow:
    inset 0 0 0 1px rgba(45,140,255,.09),
    inset 0 0 36px rgba(45,140,255,.08),
    0 0 30px rgba(45,140,255,.14);
}

.startup-logo-shell.startup-logo-rectangle .startup-logo{
  width:96%;
  height:94%;
  object-fit:contain;
}

/* Horizontal progress bar hovering above the logo. */
.startup-progress-wrap{
  position:relative;
  z-index:4;
  width:min(8.4in,78vw);
  display:grid;
  gap:.045in;
  margin-bottom:.02in;
}

.startup-progress-topline{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.15in;
  padding:0 .02in;
}

.startup-progress-label,
.startup-progress-value{
  color:rgba(255,255,255,.78);
  font-size:clamp(10px,1.4vw,13px);
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.startup-progress-value{
  color:#fff;
  font-variant-numeric:tabular-nums;
  text-shadow:0 0 9px rgba(45,140,255,.42);
}

.startup-progress-bar{
  position:relative;
  height:.12in;
  overflow:hidden;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.22);
  background:
    linear-gradient(
      180deg,
      rgba(255,255,255,.075),
      rgba(255,255,255,.025)
    );
  box-shadow:
    inset 0 0 8px rgba(0,0,0,.65),
    0 0 14px rgba(45,140,255,.14);
}

.startup-progress-fill{
  position:absolute;
  inset:0;
  transform:scaleX(0);
  transform-origin:left center;
  background:
    linear-gradient(
      90deg,
      #0C3E8F 0%,
      #1769E0 42%,
      #2D8CFF 72%,
      rgba(255,255,255,.96) 100%
    );
  box-shadow:
    0 0 12px rgba(45,140,255,.58),
    0 0 20px rgba(45,140,255,.22);
  transition:transform 55ms linear;
}

.startup-progress-shine{
  position:absolute;
  top:-35%;
  left:-24%;
  width:18%;
  height:170%;
  transform:skewX(-22deg);
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,255,255,.14),
      rgba(255,255,255,.72),
      rgba(255,255,255,.14),
      transparent
    );
  filter:blur(1px);
  animation:startupProgressSweep 2.5s ease-in-out infinite;
}

@keyframes startupProgressSweep{
  0%,18%{left:-24%;opacity:0}
  28%{opacity:.86}
  70%{left:108%;opacity:.58}
  84%,100%{left:108%;opacity:0}
}

/* Readout is kept compact beneath the large logo. */
.startup-readout{
  width:min(7.0in,74vw);
  margin-top:.02in;
}

/* Retire the bubble presentation entirely. */
.startup-progress-bubble,
.startup-progress-bubble-fill,
.startup-progress-bubble-ring,
.startup-progress-bubble-value{
  display:none!important;
}

@media(max-width:819px){
  .startup-logo-shell.startup-logo-rectangle{
    width:min(9.0in,92vw);
    height:min(5.0in,60vh);
  }

  .startup-progress-wrap{
    width:min(7.4in,82vw);
  }
}

@media(max-width:619px){
  .startup-stage{
    gap:.10in;
  }

  .startup-logo-shell.startup-logo-rectangle{
    width:min(5.6in,94vw);
    height:min(3.7in,56vh);
    min-height:2.0in;
  }

  .startup-progress-wrap{
    width:min(5.0in,86vw);
  }

  .startup-readout{
    width:min(4.7in,86vw);
  }
}

@media(max-height:520px) and (orientation:landscape){
  .startup-logo-shell.startup-logo-rectangle{
    width:min(7.2in,72vw);
    height:min(3.0in,54vh);
  }

  .startup-progress-wrap{
    width:min(6.2in,62vw);
  }

  .startup-readout{
    width:min(5.8in,62vw);
  }
}

@media(prefers-reduced-motion:reduce){
  .startup-progress-shine{
    animation:none!important;
    display:none;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Full-Viewport Boot Logo
   ========================================================== */

.startup-page,
.startup-stage{
  width:100%;
  height:100%;
  min-height:100dvh;
}

.startup-stage{
  position:fixed;
  inset:0;
  display:block;
  padding:0;
  margin:0;
  overflow:hidden;
  background:#000;
}

/* Full-page rectangular logo surface. */
.startup-logo-shell.startup-logo-rectangle{
  position:absolute;
  inset:0;
  width:100vw;
  height:100dvh;
  max-width:none;
  max-height:none;
  min-width:0;
  min-height:0;
  margin:0;
  border-radius:0;
  border:0;
  overflow:hidden;
  display:grid;
  place-items:center;
  background:
    linear-gradient(
      135deg,
      rgba(255,255,255,.020),
      rgba(6,22,47,.18) 30%,
      rgba(0,0,0,.94) 72%
    );
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.08),
    inset 0 0 70px rgba(45,140,255,.055);
  animation:
    startupFullPageArrival 640ms cubic-bezier(.18,.78,.22,1) both!important;
}

/* Dedicated fitting frame keeps the actual logo comfortably inside the rectangle. */
.startup-logo-fit-frame{
  position:relative;
  z-index:3;
  width:min(88vw,13.2in);
  height:min(72dvh,7.2in);
  display:grid;
  place-items:center;
  padding:
    max(.20in,env(safe-area-inset-top))
    max(.28in,env(safe-area-inset-right))
    max(.20in,env(safe-area-inset-bottom))
    max(.28in,env(safe-area-inset-left));
  box-sizing:border-box;
  overflow:hidden;
}

.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
  position:relative;
  z-index:3;
  display:block;
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center center;
  border-radius:0;
  margin:0;
  padding:0;
  transform:none;
}

/* Keep decorative effects inside the full-screen rectangle. */
.startup-logo-shell.startup-logo-rectangle .startup-orbit,
.startup-logo-shell.startup-logo-rectangle .startup-energy-ring,
.startup-logo-shell.startup-logo-rectangle .startup-radar-ring{
  border-radius:0;
}

.startup-logo-shell.startup-logo-rectangle .startup-orbit-outer{
  inset:3%;
}

.startup-logo-shell.startup-logo-rectangle .startup-orbit-inner{
  inset:10%;
}

.startup-logo-shell.startup-logo-rectangle .startup-energy-ring{
  inset:5%;
}

.startup-logo-shell.startup-logo-rectangle .startup-energy-ring-secondary{
  inset:13%;
}

/* Progress bar floats above the logo near the top of the page. */
.startup-progress-wrap{
  position:fixed;
  z-index:20;
  top:max(.28in,calc(env(safe-area-inset-top) + .16in));
  left:50%;
  transform:translateX(-50%);
  width:min(8.8in,78vw);
  margin:0;
  padding:.08in .12in .10in;
  border-radius:.12in;
  background:rgba(0,0,0,.42);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:
    0 0 18px rgba(0,0,0,.50),
    inset 0 0 12px rgba(45,140,255,.06);
  backdrop-filter:blur(5px);
}

/* Status/readout stays low-profile at bottom so the logo remains dominant. */
.startup-readout{
  position:fixed;
  z-index:20;
  left:50%;
  bottom:max(.42in,calc(env(safe-area-inset-bottom) + .18in));
  transform:translateX(-50%);
  width:min(7.2in,78vw);
  margin:0;
  padding:.06in .10in;
  border-radius:.10in;
  background:rgba(0,0,0,.34);
  backdrop-filter:blur(4px);
}

.startup-step-line{
  position:fixed;
  z-index:20;
  left:50%;
  bottom:max(.18in,env(safe-area-inset-bottom));
  transform:translateX(-50%);
  width:min(7.2in,78vw);
  margin:0;
}

.startup-data-strip{
  display:none;
}

@keyframes startupFullPageArrival{
  0%{
    opacity:0;
    transform:scale(1.015);
    filter:brightness(.82);
  }
  100%{
    opacity:1;
    transform:scale(1);
    filter:brightness(1);
  }
}

@media(max-width:819px){
  .startup-logo-fit-frame{
    width:min(92vw,8.6in);
    height:min(70dvh,6.2in);
    padding:.18in .20in;
  }

  .startup-progress-wrap{
    width:min(7.2in,84vw);
  }
}

@media(max-width:619px){
  .startup-logo-fit-frame{
    width:94vw;
    height:66dvh;
    padding:.14in .16in;
  }

  .startup-progress-wrap{
    top:max(.18in,calc(env(safe-area-inset-top) + .10in));
    width:88vw;
    padding:.06in .08in .08in;
  }

  .startup-readout{
    width:86vw;
    bottom:max(.36in,calc(env(safe-area-inset-bottom) + .16in));
  }

  .startup-step-line{
    width:86vw;
  }
}

@media(max-height:520px) and (orientation:landscape){
  .startup-logo-fit-frame{
    width:78vw;
    height:72dvh;
    padding:.10in .16in;
  }

  .startup-progress-wrap{
    width:66vw;
    top:max(.10in,calc(env(safe-area-inset-top) + .06in));
  }

  .startup-readout{
    width:62vw;
    bottom:max(.28in,calc(env(safe-area-inset-bottom) + .10in));
  }

  .startup-step-line{
    display:none;
  }
}

@supports not (height:100dvh){
  .startup-page,
  .startup-stage,
  .startup-logo-shell.startup-logo-rectangle{
    height:100vh;
    min-height:100vh;
  }

  .startup-logo-fit-frame{
    height:min(72vh,7.2in);
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — 50% Logo Artwork Reduction
   Background size and all boot animations remain unchanged.
   ========================================================== */

.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
  width:50%!important;
  height:50%!important;
  max-width:50%!important;
  max-height:50%!important;
  object-fit:contain!important;
  object-position:center center!important;
  margin:auto!important;
}

.startup-logo-fit-frame{
  display:grid!important;
  place-items:center!important;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Spinning Boot Logo + 432 Micro-Stages
   ========================================================== */

/* Spin only the actual reduced logo artwork, not the full-page background. */
.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
  animation:bootLogoSpin 5.8s linear infinite!important;
  transform-origin:center center!important;
  will-change:transform;
}

@keyframes bootLogoSpin{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

/* 432 subtle progress divisions. */
.startup-progress-bar::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent calc(0.2315% - 1px),
      rgba(255,255,255,.055) calc(0.2315% - 1px),
      rgba(255,255,255,.055) 0.2315%
    );
  opacity:.24;
}

/* Slightly quicker fill interpolation for the denser stage count. */
.startup-progress-fill{
  transition:transform 30ms linear!important;
}

@media(prefers-reduced-motion:reduce){
  .startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
    animation:none!important;
    transform:none!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Park Boot Logo at 0deg Near 90%
   ========================================================== */

/* JavaScript now owns logo rotation so it can settle precisely at zero. */
.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
  animation:none!important;
  transform:rotate(0deg);
  transform-origin:center center!important;
  will-change:transform;
}

.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo.logo-parked-zero{
  transform:rotate(0deg)!important;
  will-change:auto;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Hard Stop at 90%, Continue to 100%
   ========================================================== */

.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo.logo-parked-zero{
  animation:none!important;
  transform:rotate(0deg)!important;
  transition:none!important;
  will-change:auto!important;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Static Boot Logo
   ========================================================== */

.startup-logo-shell.startup-logo-rectangle .startup-logo-fit-frame .startup-logo{
  animation:none!important;
  transform:rotate(0deg)!important;
  transition:none!important;
  will-change:auto!important;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Remove Boot Logo Vertical Scan Line
   ========================================================== */

/* Disable vertical scan-line effects attached to the startup logo only. */
.startup-logo-shell .startup-scanline,
.startup-logo-shell .logo-scanline,
.startup-logo-shell .scanline-vertical,
.startup-logo-fit-frame .startup-scanline,
.startup-logo-fit-frame .logo-scanline,
.startup-logo-fit-frame .scanline-vertical{
  display:none!important;
  opacity:0!important;
  animation:none!important;
}

/* Prevent any logo-specific scan pseudo-element from rendering. */
.startup-logo-shell.startup-logo-rectangle::before,
.startup-logo-fit-frame::before{
  animation:none!important;
}

/* Preserve the full-page boot background, logo, stars, shine, and progress behavior. */


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Administrative Management Console
   ========================================================== */

.admin-launch-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  text-decoration:none;
  background:linear-gradient(180deg,rgba(45,140,255,.30),rgba(12,62,143,.38));
  border-color:rgba(125,185,255,.60);
}

.admin-body{
  background:#02050a;
  color:#f6f9ff;
  min-height:100%;
}

.admin-main{
  position:relative;
  min-height:calc(100dvh - (var(--banner-height) * 2));
  padding:
    calc(var(--banner-height) + .48in)
    max(.18in,env(safe-area-inset-right))
    calc(var(--banner-height) + .30in)
    max(.18in,env(safe-area-inset-left));
  background:
    radial-gradient(circle at 50% -15%,rgba(23,105,224,.13),transparent 34%),
    linear-gradient(180deg,#02050a,#000 68%);
}

.admin-heading,
.admin-panel,
.admin-security-gate{
  width:min(14.2in,96vw);
  margin:0 auto .22in;
}

.admin-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.22in;
  padding:.18in .22in;
  border:1px solid rgba(255,255,255,.14);
  border-radius:.13in;
  background:linear-gradient(135deg,rgba(7,22,45,.96),rgba(2,7,15,.94));
  box-shadow:inset 0 0 22px rgba(45,140,255,.06);
}

.admin-heading h1,
.admin-security-gate h1{
  margin:.04in 0 .05in;
  font-size:clamp(24px,3vw,38px);
  line-height:1.05;
}

.admin-heading p,
.admin-security-gate p{
  max-width:8.5in;
  margin:0;
  color:#aebdd2;
  font-size:14px;
  line-height:1.55;
}

.admin-kicker{
  display:block;
  color:#75b5ff;
  font-size:11px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
}

.admin-revision-chip{
  white-space:nowrap;
  padding:.08in .12in;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.055);
  color:#d9e9ff;
  font-size:12px;
}

.admin-metric-grid{
  width:min(14.2in,96vw);
  margin:0 auto .22in;
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.10in;
}

.admin-metric-grid article{
  min-width:0;
  padding:.14in .15in;
  border:1px solid rgba(255,255,255,.12);
  border-radius:.12in;
  background:linear-gradient(180deg,rgba(10,29,57,.90),rgba(3,10,20,.94));
}

.admin-metric-grid span{
  display:block;
  color:#94a8c2;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.admin-metric-grid strong{
  display:block;
  margin-top:.05in;
  font-size:clamp(22px,2.7vw,34px);
}

.admin-panel{
  border:1px solid rgba(255,255,255,.13);
  border-radius:.13in;
  background:rgba(2,8,17,.93);
  box-shadow:inset 0 0 24px rgba(45,140,255,.045);
  overflow:hidden;
}

.admin-panel-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.15in;
  padding:.14in .18in;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:linear-gradient(90deg,rgba(12,62,143,.22),rgba(3,10,22,.28));
}

.admin-panel-header h2{
  margin:.025in 0 0;
  font-size:19px;
}

.admin-create-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.12in;
  padding:.18in;
}

.admin-create-grid label,
.admin-user-editor label,
.admin-password-form label{
  display:grid;
  gap:5px;
  color:#bac9da;
  font-size:12px;
}

.admin-create-grid input,
.admin-create-grid select,
.admin-user-editor input,
.admin-user-editor select,
.admin-password-form input,
.admin-filter-input{
  min-width:0;
  height:40px;
  border:1px solid rgba(255,255,255,.17);
  border-radius:7px;
  background:#050d18;
  color:#fff;
  padding:0 10px;
  outline:none;
}

.admin-create-grid input:focus,
.admin-create-grid select:focus,
.admin-user-editor input:focus,
.admin-user-editor select:focus,
.admin-password-form input:focus,
.admin-filter-input:focus{
  border-color:#2d8cff;
  box-shadow:0 0 0 2px rgba(45,140,255,.16);
}

.admin-check{
  display:flex!important;
  grid-template-columns:auto 1fr;
  align-items:center;
  gap:8px!important;
  min-height:40px;
}

.admin-check input{
  width:17px!important;
  height:17px!important;
  padding:0!important;
}

.admin-primary-button,
.admin-secondary-button{
  min-height:40px;
  border:1px solid rgba(255,255,255,.20);
  border-radius:7px;
  color:#fff;
  font-weight:800;
  cursor:pointer;
}

.admin-primary-button{
  background:linear-gradient(180deg,#1769e0,#0c3e8f);
}

.admin-secondary-button{
  background:linear-gradient(180deg,#102a50,#07172d);
}

.admin-filter-input{
  width:min(3.0in,42vw);
}

.admin-table-wrap{
  overflow:auto;
  scrollbar-width:none;
}
.admin-table-wrap::-webkit-scrollbar{display:none}

.admin-table{
  width:100%;
  border-collapse:collapse;
  min-width:10.8in;
  font-size:12px;
}

.admin-table th{
  position:sticky;
  top:0;
  z-index:2;
  padding:.10in .12in;
  text-align:left;
  background:#06152a;
  color:#a9c7eb;
  border-bottom:1px solid rgba(255,255,255,.13);
  text-transform:uppercase;
  letter-spacing:.055em;
  font-size:10px;
}

.admin-table td{
  padding:.10in .12in;
  vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.07);
  color:#dbe7f6;
}

.admin-table tr:hover td{
  background:rgba(45,140,255,.035);
}

.admin-table td:first-child strong,
.admin-table td:first-child span{
  display:block;
}

.admin-table td:first-child span{
  margin-top:3px;
  color:#8fa2ba;
  font-size:11px;
}

.admin-role-badge,
.admin-status,
.admin-seeded-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:4px 8px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  font-size:10px;
  font-style:normal;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.admin-role-badge{background:rgba(45,140,255,.11)}
.admin-status-active{background:rgba(53,180,99,.13);color:#8cf0ad}
.admin-status-pending{background:rgba(255,191,61,.11);color:#ffd67f}
.admin-status-inactive{background:rgba(181,70,70,.12);color:#ff9a9a}
.admin-seeded-badge{margin-top:5px;background:rgba(255,191,61,.10);color:#ffd67f}

.admin-user-editor summary{
  cursor:pointer;
  color:#8fc3ff;
  font-weight:800;
}

.admin-user-editor[open]{
  min-width:2.5in;
}

.admin-user-editor form{
  display:grid;
  gap:8px;
  padding-top:10px;
}

.admin-security-gate{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(3.2in,.9fr);
  gap:.28in;
  padding:.26in;
  border:1px solid rgba(255,191,61,.30);
  border-radius:.14in;
  background:
    radial-gradient(circle at 10% 20%,rgba(255,191,61,.065),transparent 28%),
    linear-gradient(135deg,#071526,#02070e);
}

.admin-password-form{
  display:grid;
  gap:.10in;
}

.admin-audit-table{
  min-width:8.8in;
}

@media(max-width:1100px){
  .admin-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .admin-create-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:680px){
  .admin-main{
    padding-left:.10in;
    padding-right:.10in;
  }
  .admin-heading{
    align-items:flex-start;
    flex-direction:column;
  }
  .admin-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-create-grid{grid-template-columns:1fr}
  .admin-security-gate{grid-template-columns:1fr}
  .admin-filter-input{width:100%}
  .admin-panel-header{align-items:stretch;flex-direction:column}
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Password Change Form Badge Offset
   ========================================================== */

/*
  The forced password-change form begins 0.125in below the bottom edge
  of the top page-title badge. The badge straddles the top banner/main
  boundary, so the password-change admin surface uses a dedicated top
  offset rather than the normal Admin Console spacing.
*/
.admin-main.admin-main-password-change{
  padding-top:calc(
    var(--banner-height)
    + .25in
    + .125in
  );
}

.admin-main.admin-main-password-change .admin-security-gate{
  margin-top:0!important;
}

/* Maintain the requested 0.125in visual separation on compact devices. */
@media(max-width:680px){
  .admin-main.admin-main-password-change{
    padding-top:calc(
      var(--banner-height)
      + .25in
      + .125in
    );
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Registration Control + Auth Monitor
   ========================================================== */

.registration-disabled-button{
  opacity:.55;
  cursor:not-allowed!important;
  filter:saturate(.45);
}

.admin-setting-state{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:.58in;
  min-height:.28in;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}
.admin-setting-state.is-on{color:#99f0b2;background:rgba(45,170,90,.13)}
.admin-setting-state.is-off{color:#ff9d9d;background:rgba(185,65,65,.13)}

.admin-setting-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto auto;
  gap:.18in;
  align-items:center;
  padding:.18in;
}
.admin-setting-form strong{display:block;font-size:14px}
.admin-setting-form p{
  margin:5px 0 0;
  color:#94a8c2;
  font-size:12px;
  line-height:1.5;
}

.admin-toggle{
  display:flex;
  align-items:center;
  gap:8px;
  color:#c8d5e6;
  font-size:12px;
  cursor:pointer;
}
.admin-toggle input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}
.admin-toggle-track{
  position:relative;
  width:46px;
  height:24px;
  border:1px solid rgba(255,255,255,.22);
  border-radius:999px;
  background:#2b3441;
  transition:background .18s ease,border-color .18s ease;
}
.admin-toggle-thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  transition:transform .18s ease;
}
.admin-toggle input:checked + .admin-toggle-track{
  background:#1769e0;
  border-color:#5ca3ff;
}
.admin-toggle input:checked + .admin-toggle-track .admin-toggle-thumb{
  transform:translateX(22px);
}
.admin-toggle input:focus-visible + .admin-toggle-track{
  outline:2px solid #75b5ff;
  outline-offset:2px;
}

.admin-monitor-note{
  color:#94a8c2;
  font-size:11px;
  white-space:nowrap;
}
.admin-monitor-explainer{
  padding:.12in .18in;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
  color:#9fb0c6;
  font-size:12px;
  line-height:1.55;
}
.admin-monitor-explainer strong{color:#dce9f8}
.admin-monitor-subhead{
  padding:.11in .18in .07in;
  color:#8fc3ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.admin-auth-table{min-width:13.5in}
.admin-session-table{min-width:10.5in}
.admin-user-agent{
  max-width:3.1in;
  white-space:normal;
  word-break:break-word;
  color:#9fb0c6!important;
}
.admin-auth-result,
.admin-session-state{
  display:inline-flex;
  padding:4px 8px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:999px;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.045em;
}
.admin-auth-result-confirmed{color:#91efad;background:rgba(45,170,90,.11)}
.admin-auth-result-denied{color:#ff9d9d;background:rgba(185,65,65,.11)}
.admin-auth-result-inferred{color:#ffd67f;background:rgba(220,160,45,.11)}
.admin-session-state-active{color:#91efad;background:rgba(45,170,90,.11)}
.admin-session-state-logged_out{color:#aab8ca;background:rgba(120,135,155,.10)}
.admin-session-state-expired,
.admin-session-state-stale_abnormal,
.admin-session-state-session_lost{color:#ffd67f;background:rgba(220,160,45,.11)}

@media(max-width:820px){
  .admin-setting-form{
    grid-template-columns:1fr;
    align-items:start;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Membership Roles + User Permissions
   ========================================================== */

.admin-role-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.11in;
  padding:.16in;
}

.admin-role-card{
  min-width:0;
  padding:.13in;
  border:1px solid rgba(255,255,255,.11);
  border-radius:.10in;
  background:
    linear-gradient(145deg,rgba(10,30,58,.78),rgba(3,9,18,.92));
}

.admin-role-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.10in;
}

.admin-role-card-head strong{
  color:#f5f9ff;
  font-size:14px;
}

.admin-role-card-head code{
  color:#80b9ff;
  font-size:10px;
  white-space:nowrap;
}

.admin-role-card p{
  min-height:.42in;
  margin:.07in 0 .10in;
  color:#94a8c2;
  font-size:11px;
  line-height:1.45;
}

.admin-role-abilities{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.admin-role-abilities span{
  display:inline-flex;
  padding:4px 7px;
  border:1px solid rgba(100,165,245,.16);
  border-radius:999px;
  background:rgba(45,140,255,.075);
  color:#bcd9fb;
  font-size:9px;
}

.admin-permission-form{
  margin-top:10px;
  padding-top:10px!important;
  border-top:1px solid rgba(255,255,255,.11);
}

.admin-permission-title{
  color:#8fc3ff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.07em;
  text-transform:uppercase;
}

.admin-permission-help{
  margin:0;
  color:#91a4bc;
  font-size:10px;
  line-height:1.45;
}

.admin-permission-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:6px;
  max-height:3.4in;
  overflow:auto;
  padding-right:3px;
  scrollbar-width:thin;
}

.admin-permission-grid label{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 1.22in;
  gap:8px!important;
  align-items:center;
  padding:6px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:6px;
  background:rgba(255,255,255,.025);
}

.admin-permission-grid label > span{
  min-width:0;
}

.admin-permission-grid strong,
.admin-permission-grid small{
  display:block;
}

.admin-permission-grid strong{
  color:#dbe9fa;
  font-size:10px;
}

.admin-permission-grid small{
  margin-top:2px;
  color:#8295ad;
  font-size:9px;
  line-height:1.25;
}

.admin-permission-grid select{
  width:100%;
  min-width:0;
}

@media(max-width:1100px){
  .admin-role-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:680px){
  .admin-role-grid{
    grid-template-columns:1fr;
  }

  .admin-role-card p{
    min-height:0;
  }

  .admin-permission-grid label{
    grid-template-columns:1fr;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Password Preview UI
   ========================================================== */

.password-preview-wrap{
  position:relative;
  display:flex;
  align-items:center;
  min-width:0;
  width:100%;
}

.password-preview-wrap > input{
  width:100%;
  min-width:0;
  padding-right:4.8rem!important;
}

.password-preview-toggle{
  position:absolute;
  right:5px;
  top:50%;
  transform:translateY(-50%);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  min-width:58px;
  min-height:30px;
  padding:0 7px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:6px;
  background:rgba(3,12,24,.88);
  color:#cce1fb;
  font-size:10px;
  font-weight:800;
  cursor:pointer;
  z-index:2;
}

.password-preview-toggle:hover{
  border-color:rgba(100,170,255,.52);
  background:rgba(9,35,70,.94);
}

.password-preview-toggle:focus-visible{
  outline:2px solid #75b5ff;
  outline-offset:2px;
}

.password-preview-toggle[aria-pressed="true"]{
  color:#fff;
  background:linear-gradient(180deg,#1769e0,#0c3e8f);
}

.password-preview-icon{
  font-size:11px;
  line-height:1;
}

@media(max-width:430px){
  .password-preview-wrap > input{
    padding-right:4.3rem!important;
  }

  .password-preview-toggle{
    min-width:52px;
    padding:0 6px;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Top Banner Badge Removed
   ========================================================== */

/* The page-title badge has been removed from page markup.
   This fallback also suppresses any stale cached/legacy badge markup. */
.page-title-badge,
.page-title-static,
.page-title-scroll-window,
.page-title-scroll{
  display:none!important;
}

/* Reclaim the vertical space formerly reserved for the badge. */
.store-main{
  padding-top:calc(
    var(--responsive-banner-height)
    + var(--safe-top)
    + .125in
  )!important;
}

.admin-main{
  min-height:calc(
    100dvh
    - var(--responsive-banner-height)
    - var(--responsive-banner-height)
    - var(--safe-top)
    - var(--safe-bottom)
  )!important;
  padding-top:calc(
    var(--responsive-banner-height)
    + var(--safe-top)
    + .125in
  )!important;
}

/* The password-change form now sits 0.125in below the top banner,
   because there is no longer a title badge to clear. */
.admin-main.admin-main-password-change{
  padding-top:calc(
    var(--responsive-banner-height)
    + var(--safe-top)
    + .125in
  )!important;
}

.admin-main.admin-main-password-change .admin-security-gate{
  margin-top:0!important;
}

/* Welcome-page status/flash elements no longer need badge clearance. */
.main-section > .flash-message{
  top:.125in;
}

.main-section > .member-welcome{
  top:.125in;
}

@media(max-width:680px){
  .admin-main,
  .admin-main.admin-main-password-change{
    padding-top:calc(
      var(--responsive-banner-height)
      + var(--safe-top)
      + .125in
    )!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Icon-Only Password Preview
   ========================================================== */

.password-preview-wrap > input{
  padding-right:2.85rem!important;
}

.password-preview-toggle{
  width:34px!important;
  min-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  padding:0!important;
  gap:0!important;
  border-radius:7px;
}

.password-preview-eye{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}

.password-preview-eye-closed{
  display:none;
}

.password-preview-toggle.is-password-visible .password-preview-eye-open{
  display:none;
}

.password-preview-toggle.is-password-visible .password-preview-eye-closed{
  display:block;
}

.password-preview-icon,
.password-preview-text{
  display:none!important;
}

@media(max-width:430px){
  .password-preview-wrap > input{
    padding-right:2.75rem!important;
  }

  .password-preview-toggle{
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    min-height:32px!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Integrated Password Eye Icon
   ========================================================== */

/*
  Password visibility control remains an accessible button,
  but is visually integrated into the input field itself.
*/
.password-preview-wrap{
  position:relative;
  display:block;
  width:100%;
  min-width:0;
}

.password-preview-wrap > input{
  width:100%;
  min-width:0;
  padding-right:2.55rem!important;
}

.password-preview-toggle{
  position:absolute!important;
  top:50%!important;
  right:8px!important;
  transform:translateY(-50%)!important;

  width:26px!important;
  min-width:26px!important;
  height:26px!important;
  min-height:26px!important;

  display:inline-grid!important;
  place-items:center!important;

  padding:0!important;
  margin:0!important;
  border:0!important;
  border-radius:50%!important;

  background:transparent!important;
  box-shadow:none!important;

  color:#8fa8c8!important;
  cursor:pointer;
  z-index:3;
}

.password-preview-toggle:hover{
  color:#d7e9ff!important;
  background:rgba(255,255,255,.045)!important;
}

.password-preview-toggle:focus-visible{
  outline:2px solid #75b5ff!important;
  outline-offset:1px!important;
  background:rgba(45,140,255,.08)!important;
}

.password-preview-toggle[aria-pressed="true"],
.password-preview-toggle.is-password-visible{
  color:#6fb2ff!important;
  background:transparent!important;
}

.password-preview-eye{
  width:17px!important;
  height:17px!important;
  display:block;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  pointer-events:none;
}

.password-preview-eye-closed{
  display:none!important;
}

.password-preview-toggle.is-password-visible .password-preview-eye-open{
  display:none!important;
}

.password-preview-toggle.is-password-visible .password-preview-eye-closed{
  display:block!important;
}

/* Prevent old standalone-button visual treatments from showing. */
.password-preview-toggle::before,
.password-preview-toggle::after{
  content:none!important;
  display:none!important;
}

@media(max-width:430px){
  .password-preview-wrap > input{
    padding-right:2.45rem!important;
  }

  .password-preview-toggle{
    right:7px!important;
    width:25px!important;
    min-width:25px!important;
    height:25px!important;
    min-height:25px!important;
  }

  .password-preview-eye{
    width:16px!important;
    height:16px!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Administrator Revision History
   ========================================================== */

.revision-nav,
.revision-admin-nav{
  left:calc(1.02in + var(--safe-left))!important;
}

.revision-main{
  min-height:100dvh;
  padding:
    calc(var(--responsive-banner-height) + var(--safe-top) + .16in)
    max(.14in,calc(.10in + var(--safe-right)))
    calc(var(--responsive-banner-height) + var(--safe-bottom) + .18in)
    max(.14in,calc(.10in + var(--safe-left)));
  background:
    radial-gradient(circle at 50% -10%,rgba(23,105,224,.13),transparent 34%),
    linear-gradient(180deg,#02050a,#000 70%);
  color:#f5f9ff;
}

.revision-heading,
.revision-panel,
.revision-metric-grid{
  width:min(15.0in,97vw);
  margin-left:auto;
  margin-right:auto;
}

.revision-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.18in;
  margin-bottom:.15in;
  padding:.17in .19in;
  border:1px solid rgba(255,255,255,.13);
  border-radius:.11in;
  background:linear-gradient(135deg,rgba(7,22,45,.96),rgba(2,7,15,.94));
  box-shadow:inset 0 0 22px rgba(45,140,255,.05);
}

.revision-heading h1{
  margin:.03in 0 .04in;
  font-size:clamp(24px,3vw,38px);
}

.revision-heading p{
  max-width:9.4in;
  margin:0;
  color:#9fb0c6;
  font-size:12px;
  line-height:1.55;
}

.revision-current-chip{
  flex:0 0 auto;
  padding:.07in .11in;
  border:1px solid rgba(117,181,255,.28);
  border-radius:999px;
  background:rgba(23,105,224,.10);
  color:#cfe4ff;
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.revision-metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:.09in;
  margin-bottom:.15in;
}

.revision-metric-grid article{
  padding:.12in .14in;
  border:1px solid rgba(255,255,255,.11);
  border-radius:.09in;
  background:linear-gradient(180deg,rgba(10,29,57,.88),rgba(3,10,20,.94));
}

.revision-metric-grid span{
  display:block;
  color:#91a4bb;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.07em;
}

.revision-metric-grid strong{
  display:block;
  margin-top:.04in;
  font-size:22px;
}

.revision-panel{
  border:1px solid rgba(255,255,255,.12);
  border-radius:.11in;
  background:rgba(2,8,17,.94);
  overflow:hidden;
}

.revision-toolbar{
  display:grid;
  grid-template-columns:minmax(2.2in,1fr) minmax(1.6in,.35fr) auto;
  align-items:end;
  gap:.10in;
  padding:.12in .15in;
  border-bottom:1px solid rgba(255,255,255,.09);
  background:linear-gradient(90deg,rgba(12,62,143,.18),rgba(3,10,22,.24));
}

.revision-toolbar label{
  display:grid;
  gap:4px;
  color:#9db0c7;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.revision-toolbar input,
.revision-toolbar select{
  height:38px;
  min-width:0;
  border:1px solid rgba(255,255,255,.15);
  border-radius:7px;
  background:#050d18;
  color:#fff;
  padding:0 10px;
  outline:none;
}

.revision-toolbar input:focus,
.revision-toolbar select:focus{
  border-color:#2d8cff;
  box-shadow:0 0 0 2px rgba(45,140,255,.14);
}

.revision-count{
  min-width:1.0in;
  padding-bottom:10px;
  color:#9db0c7;
  font-size:11px;
  text-align:right;
}

.revision-table-wrap{
  max-height:calc(100dvh - 3.6in);
  overflow:auto;
  scrollbar-width:thin;
}

.revision-table{
  width:100%;
  min-width:14.1in;
  border-collapse:collapse;
  font-size:11px;
}

.revision-table th{
  position:sticky;
  top:0;
  z-index:4;
  padding:.09in .10in;
  border-bottom:1px solid rgba(255,255,255,.13);
  background:#06152a;
  color:#acc8e9;
  text-align:left;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.055em;
}

.revision-table td{
  padding:.09in .10in;
  vertical-align:top;
  border-bottom:1px solid rgba(255,255,255,.065);
  color:#dbe7f5;
}

.revision-table tbody tr:hover td{
  background:rgba(45,140,255,.035);
}

.revision-table tbody tr[hidden]{
  display:none!important;
}

.revision-row-active td{
  background:rgba(41,177,88,.045);
}

.revision-row-previous td{
  background:rgba(234,181,56,.035);
}

.revision-row-unreleased td{
  background:rgba(215,119,60,.045);
}

.revision-status,
.revision-size-chip{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.revision-status-active{
  color:#8cf0ad;
  background:rgba(53,180,99,.12);
}

.revision-status-previous{
  color:#ffd67f;
  background:rgba(255,191,61,.10);
}

.revision-status-archived{
  color:#a9d2ff;
  background:rgba(55,125,205,.09);
}

.revision-status-unreleased{
  color:#ffbe83;
  background:rgba(210,105,50,.11);
}

.revision-size-chip{
  color:#d3e8ff;
  background:rgba(45,140,255,.07);
  text-transform:none;
}

.revision-number{
  color:#f4f8ff;
  white-space:nowrap;
}

.revision-summary-cell{
  min-width:3.7in;
}

.revision-summary-cell p{
  margin:0;
  color:#d5e1ef;
  line-height:1.45;
}

.revision-summary-cell details{
  margin-top:6px;
}

.revision-summary-cell summary{
  width:max-content;
  color:#7fbcff;
  cursor:pointer;
  font-weight:800;
}

.revision-summary-cell pre{
  max-width:6.2in;
  max-height:3.6in;
  margin:7px 0 0;
  padding:.09in;
  overflow:auto;
  border:1px solid rgba(255,255,255,.09);
  border-radius:6px;
  background:#01060c;
  color:#aebfd2;
  white-space:pre-wrap;
  word-break:break-word;
  font:10px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;
}

@media(max-width:900px){
  .revision-metric-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .revision-toolbar{
    grid-template-columns:1fr 1fr;
  }

  .revision-count{
    grid-column:1 / -1;
    padding-bottom:0;
    text-align:left;
  }
}

@media(max-width:680px){
  .revision-nav,
  .revision-admin-nav{
    left:calc(.88in + var(--safe-left))!important;
  }

  .revision-heading{
    align-items:flex-start;
    flex-direction:column;
  }

  .revision-toolbar{
    grid-template-columns:1fr;
  }

  .revision-table-wrap{
    max-height:none;
    overflow:visible;
  }

  .revision-table{
    min-width:0;
    display:block;
  }

  .revision-table thead{
    display:none;
  }

  .revision-table tbody,
  .revision-table tr,
  .revision-table td{
    display:block;
    width:100%;
  }

  .revision-table tr{
    margin:.08in;
    width:calc(100% - .16in);
    border:1px solid rgba(255,255,255,.10);
    border-radius:.08in;
    overflow:hidden;
  }

  .revision-table td{
    display:grid;
    grid-template-columns:1.05in minmax(0,1fr);
    gap:.08in;
    padding:.075in .09in;
    border-bottom:1px solid rgba(255,255,255,.055);
  }

  .revision-table td::before{
    content:attr(data-label);
    color:#8195ad;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.045em;
  }

  .revision-summary-cell{
    min-width:0;
  }

  .revision-summary-cell pre{
    max-width:100%;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Boot Logo Reflection Removed
   ========================================================== */

/* Remove only Boot Logo reflection/glare surfaces. */
.startup-logo-shell .startup-shine,
.startup-logo-fit-frame .startup-shine,
.startup-logo-shell .startup-reflection,
.startup-logo-fit-frame .startup-reflection,
.startup-logo-shell .startup-glare,
.startup-logo-fit-frame .startup-glare{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  animation:none!important;
  background:none!important;
  filter:none!important;
}

/* Suppress any logo-frame pseudo-element glare without affecting the
   progress-bar shine or top/bottom banner effects. */
.startup-logo-fit-frame::after{
  content:none!important;
  display:none!important;
  background:none!important;
  animation:none!important;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Boot Logo Horizontal Glitch Removed
   ========================================================== */

/* Suppress all Boot Logo glitch-strip artifacts. */
.startup-logo-shell .startup-glitch,
.startup-logo-fit-frame .startup-glitch,
.startup-logo-shell .glitch-one,
.startup-logo-shell .glitch-two{
  display:none!important;
  opacity:0!important;
  visibility:hidden!important;
  height:0!important;
  background:none!important;
  animation:none!important;
  filter:none!important;
}

/* Do not allow pseudo-element horizontal glitch strips over the logo. */
.startup-logo-fit-frame::before,
.startup-logo-fit-frame::after{
  content:none!important;
  display:none!important;
  background:none!important;
  animation:none!important;
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Store Controller + Automated Invoices
   ========================================================== */

.store-controller-nav{
  left:calc(1.02in + var(--safe-left))!important;
  min-width:.95in;
}

.store-controller-main{
  min-height:100dvh;
  padding:
    calc(var(--responsive-banner-height) + var(--safe-top) + .14in)
    max(.14in,calc(.10in + var(--safe-right)))
    calc(var(--responsive-banner-height) + var(--safe-bottom) + .18in)
    max(.14in,calc(.10in + var(--safe-left)));
  background:
    radial-gradient(circle at 48% -10%,rgba(23,105,224,.13),transparent 35%),
    #000;
  color:#f5f9ff;
}

.sc-heading,
.sc-tabs,
.sc-panel,
.sc-metrics{
  width:min(14.8in,97vw);
  margin-left:auto;
  margin-right:auto;
}

.sc-heading{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:.15in;
  padding:.16in .18in;
  border:1px solid rgba(255,255,255,.12);
  border-radius:.10in;
  background:linear-gradient(135deg,rgba(8,26,52,.96),rgba(2,8,17,.96));
}

.sc-heading h1{
  margin:.03in 0;
  font-size:clamp(24px,3vw,36px);
}

.sc-heading p{
  margin:0;
  color:#96aac2;
  font-size:12px;
}

.sc-tabs{
  display:flex;
  gap:6px;
  margin-top:.10in;
  margin-bottom:.11in;
  overflow:auto;
  scrollbar-width:none;
}

.sc-tabs::-webkit-scrollbar{display:none}

.sc-tabs a{
  flex:0 0 auto;
  min-height:36px;
  display:grid;
  place-items:center;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:7px;
  background:#06101d;
  color:#9db6d2;
  text-decoration:none;
  font-size:10px;
  font-weight:900;
  letter-spacing:.035em;
}

.sc-tabs a.is-active,
.sc-tabs a:hover{
  color:#fff;
  border-color:rgba(82,157,255,.42);
  background:linear-gradient(180deg,#1769e0,#0c3e8f);
}

.sc-metrics{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.08in;
}

.sc-metrics article{
  padding:.12in;
  border:1px solid rgba(255,255,255,.10);
  border-radius:.08in;
  background:linear-gradient(180deg,rgba(9,28,55,.90),rgba(2,8,16,.95));
}

.sc-metrics span{
  display:block;
  color:#8ea4bd;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.sc-metrics strong{
  display:block;
  margin-top:4px;
  font-size:18px;
}

.sc-panel{
  margin-top:.11in;
  border:1px solid rgba(255,255,255,.11);
  border-radius:.10in;
  background:rgba(3,9,18,.96);
  overflow:hidden;
}

.sc-panel-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.12in;
  padding:.13in .16in;
  border-bottom:1px solid rgba(255,255,255,.08);
  background:linear-gradient(90deg,rgba(12,62,143,.18),rgba(2,8,17,.2));
}

.sc-panel-head h2{
  margin:2px 0 0;
  font-size:18px;
}

.sc-panel-head > span{
  color:#8499b1;
  font-size:10px;
}

.sc-security-note{
  margin:.13in;
  padding:.12in .14in;
  border:1px solid rgba(89,168,255,.19);
  border-left:3px solid #2d8cff;
  border-radius:7px;
  background:rgba(14,67,137,.075);
}

.sc-security-note strong{color:#dcecff}
.sc-security-note p{
  margin:4px 0 0;
  color:#9cafc5;
  font-size:11px;
  line-height:1.5;
}

.sc-form{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.09in;
  padding:.13in;
}

.sc-form label{
  display:grid;
  gap:4px;
  color:#9eb0c6;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.sc-form input,
.sc-form select,
.sc-form textarea{
  width:100%;
  min-width:0;
  border:1px solid rgba(255,255,255,.14);
  border-radius:6px;
  background:#050d18;
  color:#fff;
  padding:8px 9px;
  font:inherit;
  text-transform:none;
  letter-spacing:normal;
}

.sc-form input,
.sc-form select{height:38px}

.sc-form textarea{resize:vertical;line-height:1.45}

.sc-span-2{grid-column:1/-1}

.sc-check{
  display:flex!important;
  flex-direction:row;
  align-items:center;
  gap:7px!important;
  min-height:38px;
  text-transform:none!important;
}

.sc-check input{width:18px;height:18px}

.sc-card-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.09in;
  padding:.13in;
}

.sc-card{
  min-width:0;
  padding:.11in;
  border:1px solid rgba(255,255,255,.10);
  border-radius:.08in;
  background:linear-gradient(145deg,rgba(8,25,49,.80),rgba(2,7,14,.94));
}

.sc-card summary,
.sc-card-title{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:.08in;
  cursor:pointer;
}

.sc-card summary > span:first-child,
.sc-card-title > span:first-child{
  display:grid;
  gap:2px;
  min-width:0;
}

.sc-card small{
  color:#8298b0;
  font-size:9px;
}

.sc-card .sc-form{
  padding:.10in 0;
}

.sc-status{
  display:inline-flex;
  width:max-content;
  padding:3px 6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  font-size:8px;
  font-weight:900;
  letter-spacing:.05em;
}

.sc-status.is-good{color:#83e8a6;background:rgba(55,180,98,.10)}
.sc-status.is-warn{color:#ffd17a;background:rgba(214,155,40,.10)}
.sc-status.is-muted{color:#9baabc;background:rgba(120,135,150,.08)}

.sc-default-chip{
  display:inline-flex;
  margin-top:7px;
  padding:4px 7px;
  border-radius:999px;
  background:rgba(45,140,255,.10);
  color:#91c8ff;
  font-size:8px;
  font-weight:900;
}

.sc-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}

.sc-actions form{margin:0}

.sc-table-wrap{
  overflow:auto;
  scrollbar-width:thin;
}

.sc-table{
  width:100%;
  min-width:12.6in;
  border-collapse:collapse;
  font-size:10px;
}

.sc-table th{
  position:sticky;
  top:0;
  z-index:2;
  padding:.08in .09in;
  background:#06152a;
  color:#9ebee1;
  border-bottom:1px solid rgba(255,255,255,.11);
  text-align:left;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.sc-table td{
  padding:.08in .09in;
  border-bottom:1px solid rgba(255,255,255,.06);
  vertical-align:top;
  color:#d9e5f2;
}

.sc-table td small{
  display:block;
  margin-top:2px;
  color:#768ba3;
}

.sc-table a{color:#7ebcff}

.sc-order-form{
  width:min(5in,80vw);
  padding:.08in 0;
}

.sc-inline-list{
  display:grid;
  gap:6px;
  padding:.12in;
}

.sc-inline-list form{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.12in;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:6px;
  background:rgba(255,255,255,.02);
}

.sc-panel h3{
  margin:.14in .13in .03in;
}

.sc-footnote{
  padding:0 .13in .13in;
  margin:0;
  color:#8194aa;
  font-size:10px;
}

.sc-payout-card code{
  display:block;
  margin-top:7px;
  padding:5px 7px;
  overflow:auto;
  border-radius:5px;
  background:#01060c;
  color:#87bff8;
  font-size:9px;
}

/* Invoice */
.invoice-body{
  margin:0;
  padding:.25in;
  background:#e8edf3;
  color:#17212d;
  font-family:Arial,Helvetica,sans-serif;
}

.invoice-sheet{
  width:min(8.5in,100%);
  min-height:10.5in;
  margin:auto;
  padding:.45in;
  box-sizing:border-box;
  background:#fff;
  box-shadow:0 10px 38px rgba(0,0,0,.15);
}

.invoice-header{
  display:flex;
  justify-content:space-between;
  gap:.35in;
  padding-bottom:.22in;
  border-bottom:2px solid #163d70;
}

.invoice-brand{
  display:block;
  color:#153e75;
  font-size:12px;
  font-weight:800;
}

.invoice-header h1{
  margin:5px 0 7px;
  font-size:34px;
}

.invoice-business-lines,
.invoice-meta{
  display:grid;
  gap:4px;
  color:#5d6978;
  font-size:11px;
}

.invoice-meta{
  text-align:right;
}

.invoice-meta strong{
  color:#17212d;
  font-size:16px;
}

.invoice-billto{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:.3in;
  padding:.25in 0;
}

.invoice-billto > div{
  display:grid;
  gap:4px;
}

.invoice-label{
  color:#718096;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.invoice-items{
  width:100%;
  border-collapse:collapse;
  font-size:11px;
}

.invoice-items th{
  padding:9px;
  background:#153e75;
  color:#fff;
  text-align:left;
  font-size:9px;
  text-transform:uppercase;
}

.invoice-items td{
  padding:9px;
  border-bottom:1px solid #dfe5ec;
}

.invoice-totals{
  width:min(3.2in,100%);
  margin:.25in 0 .15in auto;
}

.invoice-totals div{
  display:flex;
  justify-content:space-between;
  gap:.2in;
  padding:6px 0;
  border-bottom:1px solid #e3e7ed;
  font-size:11px;
}

.invoice-totals .invoice-total{
  padding-top:10px;
  border-top:2px solid #153e75;
  border-bottom:0;
  font-size:15px;
}

.invoice-payment-ref{
  color:#718096;
  font-size:9px;
}

.invoice-footer{
  margin-top:.3in;
  padding-top:.18in;
  border-top:1px solid #dfe5ec;
  display:flex;
  justify-content:space-between;
  gap:.2in;
  align-items:center;
}

.invoice-footer p{color:#5d6978;font-size:10px}
.invoice-footer button{
  border:0;
  border-radius:5px;
  background:#153e75;
  color:#fff;
  padding:9px 12px;
  cursor:pointer;
}

@media(max-width:1100px){
  .sc-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .sc-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:680px){
  .store-controller-nav{
    left:calc(.88in + var(--safe-left))!important;
    min-width:.8in;
    font-size:8px;
  }

  .sc-heading{
    align-items:flex-start;
    flex-direction:column;
  }

  .sc-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sc-card-grid{grid-template-columns:1fr}
  .sc-form{grid-template-columns:1fr}
  .sc-span-2{grid-column:auto}
  .sc-order-form{width:80vw}
  .invoice-body{padding:0;background:#fff}
  .invoice-sheet{min-height:0;padding:.25in;box-shadow:none}
  .invoice-header{flex-direction:column}
  .invoice-meta{text-align:left}
}

@media print{
  .invoice-body{padding:0;background:#fff}
  .invoice-sheet{width:100%;min-height:0;box-shadow:none;padding:.35in}
  .invoice-footer button{display:none}
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Banner Architecture Stabilization
   ========================================================== */

:root{
  --top-banner-height:.52in;
  --bottom-banner-height:.375in;
  --responsive-banner-height:var(--top-banner-height);
  --banner-control-hit:44px;
  --banner-inline-pad:.125in;
}

/* Top and bottom banners now size independently. */
.top-banner,
.bottom-banner{
  left:0!important;
  width:100%!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
  filter:none!important;
  background:
    linear-gradient(
      90deg,
      var(--banner-blue-dark) 0%,
      var(--banner-blue-mid) 20%,
      var(--banner-blue-main) 42%,
      var(--banner-blue-bright) 50%,
      var(--banner-blue-main) 58%,
      var(--banner-blue-mid) 80%,
      var(--banner-blue-dark) 100%
    )!important;
  background-size:170% 100%!important;
  animation:bannerFlow 14s ease-in-out infinite alternate!important;
}

.top-banner{
  height:calc(var(--top-banner-height) + var(--safe-top))!important;
  padding:var(--safe-top) var(--safe-right) 0 var(--safe-left)!important;
}

.bottom-banner{
  height:calc(var(--bottom-banner-height) + var(--safe-bottom))!important;
  padding:0 var(--safe-right) var(--safe-bottom) var(--safe-left)!important;
}

/* Pulse the background surface, not text/inputs/buttons. */
.top-banner::before,
.bottom-banner::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% 50%,rgba(255,255,255,.09),transparent 58%);
  opacity:.14;
  animation:bannerSurfacePulse 5.8s ease-in-out infinite;
}

@keyframes bannerSurfacePulse{
  0%,100%{opacity:.07}
  50%{opacity:.18}
}

/* Shared effects remain behind all controls. */
.banner-effects{
  z-index:1!important;
}

/* Reduce competing repaint-heavy effects. One occasional shine and one
   subtle sparkle remain; the continuous scan line and extra sparks are removed. */
.banner-scanline,
.banner-spark.spark-b,
.banner-spark.spark-c{
  display:none!important;
  animation:none!important;
}

.banner-shine{
  opacity:.55!important;
  animation-duration:8.2s!important;
}

.banner-spark.spark-a{
  width:3px!important;
  height:3px!important;
  opacity:0;
  animation-duration:8.8s!important;
}

/* Shared content grid: nav | flexible separation | account. */
.banner-inner{
  position:relative;
  z-index:3;
  width:100%;
  height:var(--top-banner-height);
  min-width:0;
  display:grid;
  grid-template-columns:auto minmax(12px,1fr) auto;
  align-items:center;
  gap:.10in;
  padding:0 var(--banner-inline-pad);
}

.banner-nav-left{
  position:relative;
  z-index:4;
  min-width:0;
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:nowrap;
}

.banner-flex-spacer{
  min-width:12px;
}

/* No fixed left offsets: future navigation buttons flow naturally. */
.site-nav-button,
.store-nav,
.home-nav,
.revision-nav,
.revision-admin-nav,
.store-controller-nav{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  translate:none!important;
  transform:none!important;
  flex:0 0 auto;
  min-height:var(--banner-control-hit)!important;
  height:var(--banner-control-hit)!important;
  min-width:auto!important;
  padding:0 12px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:7px!important;
  font-size:10px!important;
  line-height:1!important;
  white-space:nowrap;
}

/* Account controls are a normal grid item, never absolutely over navigation. */
.member-access,
.store-access{
  position:static!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  translate:none!important;
  transform:none!important;
  z-index:4!important;
  min-width:0;
  max-width:min(5.8in,58vw)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end;
  gap:6px!important;
}

.member-access form{
  margin:0;
}

.member-identity{
  min-width:0;
  max-width:2.55in;
  overflow:hidden;
}

.member-name{
  display:block;
  min-width:0;
  max-width:1.55in;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.member-state{
  flex:0 0 auto;
  white-space:nowrap;
}

.guest-state{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* Uniform 44px interaction targets. */
.member-button,
.register-button,
.cart-button{
  min-height:var(--banner-control-hit)!important;
  height:var(--banner-control-hit)!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
}

.login-form{
  min-width:0;
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
}

.login-form > input[name="login"],
.login-form > .password-preview-wrap{
  width:clamp(.95in,10vw,1.25in)!important;
  min-width:.82in!important;
}

.login-form input{
  width:100%!important;
  min-height:var(--banner-control-hit)!important;
  height:var(--banner-control-hit)!important;
}

/* Correct hierarchy: wrapper, not nested password input, participates in grid. */
.login-form .password-preview-wrap{
  position:relative;
  min-width:0;
}

.login-form .password-preview-wrap > input{
  width:100%!important;
}

/* Title badge is retired; remove it from banner layout permanently. */
.page-title-badge,
.page-title-static,
.page-title-scroll-window,
.page-title-scroll{
  display:none!important;
}

/* All main surfaces use separate top/bottom dimensions. */
.main-section{
  top:calc(var(--top-banner-height) + var(--safe-top))!important;
  bottom:calc(var(--bottom-banner-height) + var(--safe-bottom))!important;
}

.store-main,
.admin-main,
.revision-main,
.store-controller-main{
  padding-top:calc(var(--top-banner-height) + var(--safe-top) + .125in)!important;
  padding-bottom:calc(var(--bottom-banner-height) + var(--safe-bottom) + .22in)!important;
}

.admin-main{
  min-height:calc(
    100dvh
    - var(--top-banner-height)
    - var(--bottom-banner-height)
    - var(--safe-top)
    - var(--safe-bottom)
  )!important;
}

.admin-main.admin-main-password-change{
  padding-top:calc(var(--top-banner-height) + var(--safe-top) + .125in)!important;
}

/* Tablet: keep one-row layout but reserve more breathing room. */
@media(max-width:819px) and (min-width:620px){
  :root{
    --top-banner-height:.58in;
    --bottom-banner-height:.375in;
  }

  .banner-inner{
    gap:6px;
    padding-left:.08in;
    padding-right:.08in;
  }

  .site-nav-button{
    padding-left:9px!important;
    padding-right:9px!important;
    font-size:9px!important;
  }

  .member-access,
  .store-access{
    max-width:62vw!important;
  }

  .login-form > input[name="login"],
  .login-form > .password-preview-wrap{
    width:clamp(.76in,12vw,.95in)!important;
  }

  .member-name{
    max-width:1.05in;
  }
}

/* Phones: account controls occupy row 1; navigation occupies row 2.
   Signed-in/Store pages use two rows. Welcome guest login uses three rows
   because its login form itself is two rows. */
@media(max-width:619px){
  :root{
    --top-banner-height:1.02in;
    --bottom-banner-height:.375in;
  }

  body.banner-guest-login{
    --top-banner-height:1.52in;
  }

  .banner-inner{
    height:var(--top-banner-height);
    grid-template-columns:minmax(0,1fr)!important;
    grid-template-rows:auto auto;
    align-content:center;
    gap:5px;
    padding:5px max(7px,var(--banner-inline-pad));
  }

  .member-access,
  .store-access{
    grid-column:1;
    grid-row:1;
    width:100%;
    max-width:none!important;
    min-width:0;
    justify-content:flex-end!important;
  }

  .banner-nav-left{
    grid-column:1;
    grid-row:2;
    width:100%;
    min-width:0;
    gap:5px;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
  }

  .banner-nav-left::-webkit-scrollbar{
    display:none;
  }

  .banner-flex-spacer{
    display:none;
  }

  .site-nav-button{
    min-height:44px!important;
    height:44px!important;
    padding:0 10px!important;
  }

  .member-button,
  .register-button,
  .cart-button{
    min-height:44px!important;
    height:44px!important;
  }

  .member-identity{
    flex:1 1 auto;
    max-width:none;
  }

  .member-name{
    max-width:clamp(.8in,30vw,1.45in);
  }

  .member-state{
    max-width:clamp(.85in,32vw,1.6in);
    overflow:hidden;
    text-overflow:ellipsis;
  }

  /* Mobile login: username/password row, Login/Register row. */
  body.banner-guest-login .banner-inner{
    grid-template-rows:auto auto;
  }

  body.banner-guest-login .member-access{
    align-self:center;
  }

  body.banner-guest-login .login-form{
    width:100%;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    grid-template-areas:
      "username password"
      "login register"!important;
    gap:5px!important;
  }

  body.banner-guest-login .login-form > input[name="login"]{
    grid-area:username!important;
    width:100%!important;
    min-width:0!important;
  }

  body.banner-guest-login .login-form > .password-preview-wrap{
    grid-area:password!important;
    width:100%!important;
    min-width:0!important;
  }

  body.banner-guest-login .login-form > .member-button{
    grid-area:login!important;
    width:100%;
  }

  body.banner-guest-login .login-form > .register-button{
    grid-area:register!important;
    width:100%;
  }

  .store-access .guest-state{
    margin-right:auto;
  }
}

@media(max-width:430px){
  .banner-inner{
    padding-left:6px;
    padding-right:6px;
  }

  .member-identity{
    gap:4px!important;
  }

  .member-state{
    font-size:8px!important;
    padding:2px 5px!important;
  }

  .site-nav-button{
    font-size:9px!important;
  }

  .login-form .password-preview-wrap > input{
    padding-right:2.45rem!important;
  }
}

/* Landscape phones use two compact rows rather than collapsing controls. */
@media(max-height:520px) and (orientation:landscape) and (max-width:819px){
  :root{
    --top-banner-height:.92in;
  }

  body.banner-guest-login{
    --top-banner-height:1.18in;
  }

  .banner-inner{
    padding-top:3px;
    padding-bottom:3px;
    gap:3px;
  }

  .site-nav-button,
  .member-button,
  .register-button,
  .cart-button,
  .login-form input{
    min-height:38px!important;
    height:38px!important;
  }
}

/* Reduced motion keeps banner geometry but removes decorative motion. */
@media(prefers-reduced-motion:reduce){
  .top-banner,
  .bottom-banner,
  .top-banner::before,
  .bottom-banner::before,
  .banner-shine,
  .banner-spark{
    animation:none!important;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Immediate Stripe Store Deployment
   ========================================================== */

.stripe-setup-main{
  min-height:100dvh;
  padding:
    calc(var(--top-banner-height) + var(--safe-top) + .125in)
    max(.14in,calc(.10in + var(--safe-right)))
    calc(var(--bottom-banner-height) + var(--safe-bottom) + .22in)
    max(.14in,calc(.10in + var(--safe-left)));
  background:
    radial-gradient(circle at 50% -8%,rgba(23,105,224,.14),transparent 35%),
    #000;
  color:#f5f9ff;
}

.stripe-setup-main > .sc-heading,
.stripe-ready-banner,
.stripe-health-grid,
.stripe-setup-main > .sc-panel{
  width:min(14.8in,97vw);
  margin-left:auto;
  margin-right:auto;
}

.stripe-ready-banner{
  margin-top:.11in;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.14in;
  padding:.13in .16in;
  border:1px solid rgba(255,255,255,.12);
  border-radius:.09in;
  background:#06101d;
}

.stripe-ready-banner > div{
  display:grid;
  gap:3px;
}

.stripe-ready-banner strong{
  font-size:15px;
}

.stripe-ready-banner > span{
  color:#9fb0c4;
  font-size:10px;
}

.stripe-ready-banner.is-ready{
  border-color:rgba(67,208,111,.35);
  background:linear-gradient(90deg,rgba(22,104,52,.22),rgba(3,13,21,.94));
}

.stripe-ready-banner.is-ready strong{color:#8af0ab}

.stripe-ready-banner.is-pending{
  border-color:rgba(234,181,56,.28);
  background:linear-gradient(90deg,rgba(129,84,10,.14),rgba(3,13,21,.94));
}

.stripe-ready-banner.is-pending strong{color:#ffd47a}

.stripe-health-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:.075in;
  margin-top:.10in;
}

.stripe-health-grid article{
  min-width:0;
  padding:.10in;
  border:1px solid rgba(255,255,255,.10);
  border-radius:.08in;
  background:linear-gradient(180deg,rgba(9,28,55,.90),rgba(2,8,16,.95));
}

.stripe-health-grid span,
.stripe-health-grid small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.stripe-health-grid span{
  color:#8da3bc;
  font-size:8px;
  text-transform:uppercase;
  letter-spacing:.055em;
}

.stripe-health-grid strong{
  display:block;
  margin:4px 0;
  font-size:12px;
}

.stripe-health-grid small{
  color:#6f8298;
  font-size:8px;
}

.stripe-health-grid .is-good strong{color:#82e7a4}
.stripe-health-grid .is-warn strong{color:#ffd078}
.stripe-health-grid .is-bad strong{color:#ff8f8f}

.stripe-connect-form{
  display:grid;
  grid-template-columns:minmax(2in,1fr) auto;
  gap:.10in;
  align-items:end;
  padding:.13in;
}

.stripe-connect-form > label{
  display:grid;
  gap:5px;
  color:#9fb2c9;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.045em;
}

.stripe-connect-form .password-preview-wrap{
  width:100%;
}

.stripe-connect-form input{
  width:100%;
  height:44px;
  border:1px solid rgba(255,255,255,.15);
  border-radius:7px;
  background:#050d18;
  color:#fff;
  padding:0 2.55rem 0 10px;
}

.stripe-connect-actions{
  display:flex;
  align-items:center;
}

.stripe-auto-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.08in;
  padding:.13in;
}

.stripe-auto-grid article{
  padding:.11in;
  border:1px solid rgba(255,255,255,.08);
  border-radius:.07in;
  background:rgba(255,255,255,.018);
}

.stripe-auto-grid strong{
  display:block;
  color:#cde2fb;
  font-size:11px;
}

.stripe-auto-grid p{
  margin:5px 0 0;
  color:#8fa3ba;
  font-size:10px;
  line-height:1.45;
}

.stripe-product-status{
  display:grid;
  gap:6px;
  padding:.13in;
}

.stripe-product-status article{
  display:grid;
  grid-template-columns:minmax(1.8in,1fr) auto minmax(1.5in,.55fr);
  align-items:center;
  gap:.10in;
  padding:.08in .10in;
  border:1px solid rgba(255,255,255,.08);
  border-radius:6px;
  background:rgba(255,255,255,.018);
}

.stripe-product-status article > div{
  display:grid;
  gap:2px;
}

.stripe-product-status small{
  color:#748aa2;
  font-size:8px;
}

.stripe-product-status code{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:#83bfff;
  font-size:9px;
}

.stripe-controller-status,
.stripe-store-admin-notice{
  width:min(14.8in,97vw);
  margin:.10in auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.14in;
  padding:.11in .14in;
  border:1px solid rgba(255,255,255,.11);
  border-radius:.08in;
  background:#06101d;
}

.stripe-controller-status > div{
  display:grid;
  gap:3px;
}

.stripe-controller-status p{
  margin:0;
  color:#8fa3ba;
  font-size:10px;
}

.stripe-controller-status.is-ready{
  border-color:rgba(70,205,112,.30);
}

.stripe-controller-status.is-ready strong{color:#85eca8}
.stripe-controller-status.is-pending{border-color:rgba(232,177,52,.28)}
.stripe-controller-status.is-pending strong{color:#ffd27a}

.stripe-store-admin-notice{
  width:min(12.6in,94vw);
  color:#dceaff;
}

.stripe-store-admin-notice span{
  flex:1 1 auto;
  color:#9baec4;
  font-size:10px;
}

.stripe-store-admin-notice a{
  flex:0 0 auto;
  color:#fff;
  text-decoration:none;
  padding:8px 10px;
  border-radius:6px;
  background:#1769e0;
  font-size:10px;
  font-weight:800;
}

@media(max-width:1000px){
  .stripe-health-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stripe-auto-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:680px){
  .stripe-ready-banner,
  .stripe-controller-status,
  .stripe-store-admin-notice{
    align-items:flex-start;
    flex-direction:column;
  }

  .stripe-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stripe-connect-form{grid-template-columns:1fr}
  .stripe-auto-grid{grid-template-columns:1fr}

  .stripe-product-status article{
    grid-template-columns:1fr auto;
  }

  .stripe-product-status code{
    grid-column:1/-1;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Digital Ecommerce + Smooth Boot
   ========================================================== */

/* Smooth progress uses compositor-friendly transform only. */
.startup-progress-fill{
  transform-origin:left center!important;
  will-change:transform!important;
  backface-visibility:hidden;
}

.startup-progress-shine{
  will-change:transform;
}

.twinkle-star{
  will-change:opacity,transform;
}

/* Digital Store */
.digital-product-grid .product-card{
  position:relative;
}

.digital-product-meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
  margin:.08in 0;
}

.digital-product-meta span{
  display:inline-flex;
  padding:3px 6px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:999px;
  background:rgba(45,140,255,.055);
  color:#9fb9d8;
  font-size:8px;
  font-weight:800;
}

.digital-store-empty{
  width:min(10in,92vw);
  margin:.18in auto;
  padding:.18in;
  border:1px solid rgba(255,255,255,.11);
  border-radius:.09in;
  background:linear-gradient(135deg,rgba(8,28,54,.88),rgba(2,8,16,.96));
  text-align:center;
}

.digital-store-empty strong{
  display:block;
  color:#dcecff;
  font-size:15px;
}

.digital-store-empty p{
  margin:5px 0 0;
  color:#8ea4bc;
  font-size:10px;
}

/* Store Controller digital files */
.sc-product-status-stack{
  display:grid;
  gap:4px;
  justify-items:end;
}

.digital-file-control{
  margin:.08in 0 .10in;
  padding:.10in;
  border:1px solid rgba(76,154,255,.18);
  border-radius:7px;
  background:rgba(14,63,129,.055);
}

.digital-file-current{
  display:grid;
  gap:3px;
  margin-bottom:.08in;
}

.digital-file-current strong{
  color:#d8eaff;
  font-size:10px;
}

.digital-file-current span{
  color:#a3b6cc;
  font-size:9px;
}

.digital-file-current small{
  color:#768ba3;
  font-size:8px;
}

.digital-file-upload-form{
  display:grid;
  grid-template-columns:minmax(1.7in,1fr) minmax(.85in,.35fr) minmax(.85in,.35fr) auto;
  gap:6px;
  align-items:end;
  margin-bottom:6px;
}

.digital-file-upload-form label{
  display:grid;
  gap:3px;
  color:#8fa7c0;
  font-size:8px;
  font-weight:800;
  text-transform:uppercase;
}

.digital-file-upload-form input{
  min-width:0;
  height:38px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:5px;
  background:#050d18;
  color:#fff;
  padding:6px 8px;
}

.digital-file-upload-form input[type="file"]{
  padding:6px;
}

/* Customer digital delivery center */
.digital-download-center-body{
  min-height:100dvh;
  margin:0;
  padding:.25in;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  background:
    radial-gradient(circle at 50% 0%,rgba(23,105,224,.15),transparent 38%),
    #000;
  color:#f5f9ff;
  font-family:Arial,Helvetica,sans-serif;
}

.digital-download-center{
  width:min(8.8in,96vw);
  padding:.24in;
  border:1px solid rgba(255,255,255,.12);
  border-radius:.11in;
  background:linear-gradient(145deg,rgba(7,23,45,.97),rgba(1,6,12,.98));
}

.digital-download-center h1{
  margin:4px 0 5px;
}

.digital-download-center > p{
  margin:0 0 .15in;
  color:#92a7bf;
  font-size:11px;
}

.digital-delivery-message{
  padding:.12in;
  border-radius:7px;
  font-size:11px;
}

.digital-delivery-message.is-pending{
  border:1px solid rgba(232,179,57,.25);
  background:rgba(157,105,18,.09);
  color:#ffd889;
}

.digital-download-list{
  display:grid;
  gap:7px;
}

.digital-download-list article{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:.12in;
  padding:.11in .12in;
  border:1px solid rgba(255,255,255,.09);
  border-radius:7px;
  background:rgba(255,255,255,.02);
}

.digital-download-list article > div{
  display:grid;
  gap:3px;
  min-width:0;
}

.digital-download-list strong{
  color:#dcecff;
}

.digital-download-list span,
.digital-download-list small{
  color:#8fa4bb;
  overflow:hidden;
  text-overflow:ellipsis;
}

.digital-download-list a{
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 14px;
  border-radius:6px;
  background:linear-gradient(180deg,#2d8cff,#1769e0);
  color:#fff;
  text-decoration:none;
  font-size:10px;
  font-weight:900;
}

.digital-unavailable-label{
  padding:6px 8px;
  border-radius:999px;
  background:rgba(130,140,150,.10);
  color:#9da9b5!important;
  font-size:8px;
  font-weight:900;
}

.digital-download-actions{
  margin-top:.14in;
  display:flex;
  justify-content:flex-end;
}

.digital-download-actions a{
  color:#87c0ff;
  text-decoration:none;
  font-size:10px;
}

.digital-download-link{
  background:linear-gradient(180deg,#1769e0,#0c3e8f)!important;
}

/* Invoice digital delivery */
.invoice-downloads{
  margin:.25in 0;
  padding:.14in;
  border:1px solid #dce4ed;
  border-radius:6px;
  background:#f8fbff;
}

.invoice-downloads h2{
  margin:0 0 8px;
  color:#153e75;
  font-size:15px;
}

.invoice-downloads > div{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:7px 0;
  border-top:1px solid #e4eaf1;
}

.invoice-downloads > div:first-of-type{
  border-top:0;
}

.invoice-downloads span{
  display:grid;
  gap:2px;
}

.invoice-downloads small{
  color:#718096;
}

.invoice-downloads a{
  flex:0 0 auto;
  padding:7px 10px;
  border-radius:5px;
  background:#153e75;
  color:#fff;
  text-decoration:none;
  font-size:9px;
  font-weight:800;
}

@media(max-width:900px){
  .digital-file-upload-form{
    grid-template-columns:1fr 1fr;
  }
}

@media(max-width:600px){
  .digital-file-upload-form{
    grid-template-columns:1fr;
  }

  .digital-download-list article{
    grid-template-columns:1fr;
  }

  .digital-download-list a{
    width:100%;
    box-sizing:border-box;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — Dedicated Login Feature
   ========================================================== */

.login-nav-button{
  font-weight:900!important;
}

.login-page-body{
  min-height:100dvh;
  margin:0;
  background:
    radial-gradient(circle at 50% 14%,rgba(23,105,224,.15),transparent 34%),
    linear-gradient(180deg,#02070f 0%,#000 68%);
  color:#f5f9ff;
}

.standalone-login-main{
  min-height:100dvh;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  padding:
    calc(var(--top-banner-height) + var(--safe-top) + .25in)
    max(.16in,var(--safe-right))
    calc(var(--bottom-banner-height) + var(--safe-bottom) + .25in)
    max(.16in,var(--safe-left));
}

.standalone-login-shell{
  width:min(4.85in,94vw);
  padding:.24in;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.14);
  border-radius:.12in;
  background:
    linear-gradient(145deg,rgba(8,28,55,.97),rgba(2,8,16,.98));
  box-shadow:
    0 18px 50px rgba(0,0,0,.42),
    inset 0 0 30px rgba(45,140,255,.035);
}

.standalone-login-intro{
  margin-bottom:.15in;
}

.standalone-login-intro h1{
  margin:.035in 0 .055in;
  font-size:clamp(25px,4vw,36px);
  letter-spacing:-.025em;
}

.standalone-login-intro p{
  margin:0;
  color:#99adc5;
  font-size:11px;
  line-height:1.55;
}

.standalone-login-form{
  display:grid;
  gap:.11in;
  margin-top:.14in;
}

.standalone-login-form > label{
  display:grid;
  gap:5px;
  color:#9fb3ca;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.055em;
}

.standalone-login-form input{
  width:100%;
  min-width:0;
  height:46px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.15);
  border-radius:7px;
  background:#040c17;
  color:#fff;
  padding:0 11px;
  outline:none;
  font-size:13px;
}

.standalone-login-form .password-preview-wrap > input{
  padding-right:2.6rem!important;
}

.standalone-login-form input:focus{
  border-color:#4c9cff;
  box-shadow:0 0 0 2px rgba(45,140,255,.13);
}

.standalone-login-submit{
  min-height:46px;
  margin-top:2px;
  border:1px solid rgba(120,185,255,.32);
  border-radius:7px;
  background:linear-gradient(180deg,#2d8cff,#1769e0);
  color:#fff;
  cursor:pointer;
  font-size:11px;
  font-weight:900;
  letter-spacing:.055em;
  text-transform:uppercase;
  box-shadow:0 7px 18px rgba(23,105,224,.20);
}

.standalone-login-submit:hover{
  filter:brightness(1.08);
}

.standalone-login-submit:focus-visible{
  outline:2px solid #9acaff;
  outline-offset:2px;
}

.standalone-login-links{
  display:flex;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin-top:.13in;
  padding-top:.12in;
  border-top:1px solid rgba(255,255,255,.08);
}

.standalone-login-links a{
  color:#84bdff;
  text-decoration:none;
  font-size:9px;
  font-weight:800;
}

.standalone-login-links a:hover{
  text-decoration:underline;
}

.standalone-login-links span{
  color:#7f92a9;
  font-size:9px;
}

.standalone-login-security{
  margin-top:.14in;
  padding:.10in .11in;
  border:1px solid rgba(255,255,255,.075);
  border-radius:7px;
  background:rgba(255,255,255,.018);
}

.standalone-login-security strong{
  display:block;
  color:#cde3fb;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.standalone-login-security p{
  margin:4px 0 0;
  color:#7f93aa;
  font-size:9px;
  line-height:1.45;
}

@media(max-width:619px){
  .login-page-body{
    --top-banner-height:1.02in;
  }

  .standalone-login-main{
    align-items:start;
    padding-top:calc(var(--top-banner-height) + var(--safe-top) + .16in);
  }

  .standalone-login-shell{
    width:min(100%,4.85in);
    padding:.18in;
  }

  .standalone-login-links{
    flex-direction:column;
  }
}


/* ==========================================================
   ALRD Rev 0.0.0.5.4 — X3A2310 Subsite Navigation
   ========================================================== */
.x3a2310-nav{
  border-color:rgba(91,171,255,.34)!important;
  background:linear-gradient(180deg,rgba(20,75,132,.76),rgba(4,28,55,.90))!important;
}
.x3a2310-nav:hover,
.x3a2310-nav:focus-visible{
  border-color:rgba(126,195,255,.72)!important;
  background:linear-gradient(180deg,#1769e0,#0c3e8f)!important;
}
