/* HOKIEMAS88 V2: self-contained floating menu + modal + INLINE SVG topbar.
   Adjust --hokie-float-bottom-desktop / --hokie-float-bottom-mobile if needed.
   Original TeePublic/Normad fonts, scripts and images are not required for this UI. */
:root {
  --hokie-float-bottom-desktop: 28px;
  --hokie-float-bottom-mobile: 82px;
  --hokie-gold: #d5b17a;
  --hokie-bright-gold: #fff0bf;
  --hokie-background: #0c0d0f;
  --hokie-border: rgba(223,181,110,.66);
}
/* 1: Fixed left-side floating 'KLIK DISINI' toggle. Replaces .right. */
body .ard-sosmed-bar, body .ard-sosmed-bar.closed, body .ard-sosmed-bar.open,
body .ard-sosmed-bar.closed.ardhide {
  position:fixed!important;
  inset:auto auto var(--hokie-float-bottom-desktop) 18px!important;
  width:max-content!important;
  height:auto!important;
  z-index:2147483000!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:0!important;
  transform:none!important;
  scale:1!important;
  opacity:1!important;
  transition:none!important;
  overflow:visible!important;
  font-size:14px!important;
  font-family:system-ui,-apple-system,'Segoe UI',sans-serif!important;
}
@property --hokie-menu-spin { syntax:"<angle>"; inherits:false; initial-value:0deg; }
@keyframes hokie-menu-spin { to { --hokie-menu-spin:360deg; } }
@keyframes hokie-menu-bob { 0%,100% {translate:0 0} 50%{translate:0 -4px} }
body .hokie-menu-toggle {
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex!important;
  gap:10px!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative!important;
  z-index:3!important;
  width:auto!important;
  min-width:172px!important;
  height:56px!important;
  padding:11px 19px!important;
  border:2px solid transparent!important;
  border-radius:16px!important;
  color:#ffedc7!important;
  font-family:inherit!important;
  font-size:14px!important;
  font-weight:900!important;
  letter-spacing:1px!important;
  text-shadow:0 1px 1px #24150b!important;
  background:
    linear-gradient(132deg,#392c29,#0d0c0f 82%) padding-box,
    conic-gradient(from var(--hokie-menu-spin),#5a3d22 0deg,#ffd994 70deg,#896038 120deg,#f8e3ac 210deg,#ab7340 280deg,#5a3d22 360deg) border-box!important;
  box-shadow:0 9px 25px rgba(0,0,0,.65),0 0 14px rgba(219,171,85,.26)!important;
  cursor:pointer!important;
  animation:hokie-menu-spin 7s linear infinite!important;
  transition:filter .2s,transform .2s!important;
}
body .hokie-menu-toggle:hover { filter:brightness(1.15);transform:translateY(-2px); }
body .hokie-menu-toggle:focus-visible { outline:3px solid #fff0b9!important;outline-offset:4px!important; }
body .hokie-menu-toggle svg {width:23px!important;height:23px!important;flex:none!important;stroke:#f5cd80!important;fill:none!important;stroke-width:2.3!important;}
body .hokie-menu-toggle span {color:#ffedc7!important;-webkit-text-stroke:0!important;writing-mode:horizontal-tb!important;white-space:nowrap!important;letter-spacing:1px!important;font-weight:900!important;}
body .ard-sosmed-bar .left {
  position:absolute!important;
  inset:auto auto calc(100% + 12px) 0!important;
  box-sizing:border-box!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  gap:9px!important;
  width:184px!important;
  max-height:calc(100dvh - 170px)!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  border:1px solid #ceab72!important;
  border-radius:18px!important;
  padding:13px!important;
  background:linear-gradient(151deg,rgba(45,34,33,.985),rgba(12,12,15,.99))!important;
  box-shadow:0 15px 40px rgba(0,0,0,.7),inset 0 1px 0 rgba(250,210,145,.2)!important;
  text-align:center!important;
  transform:translateY(12px) scale(.96)!important;
  transform-origin:bottom left!important;
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transition:transform .24s ease,opacity .24s ease,visibility .24s!important;
}
body .ard-sosmed-bar.open .left {
  transform:translateY(0) scale(1)!important;
  opacity:1!important;
  visibility:visible!important;
  pointer-events:auto!important;
}
body .ard-sosmed-bar .left .headlogo {display:block!important;width:147px!important;max-width:100%!important;height:auto!important;margin:0 auto 1px!important;object-fit:contain!important;}
body .ard-sosmed-bar .left > div {
  width:100%!important;min-width:0!important;height:49px!important;min-height:49px!important;
  padding:3px!important;margin:0!important;box-sizing:border-box!important;
  border-radius:11px!important;
  border:1px solid rgba(225,183,111,.35)!important;
  background:rgba(216,171,104,.10)!important;
  transition:background .2s, transform .2s!important;
}
body .ard-sosmed-bar .left > div:hover {background:rgba(217,172,103,.23)!important;transform:translateX(2px);}
body .ard-sosmed-bar .left > div > a {display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;text-decoration:none!important;}
body .ard-sosmed-bar .left > div > a svg {width:43px!important;height:43px!important;display:block!important;flex:none!important;}
body .ard-sosmed-bar .left .hokie-promo-entry {
  cursor:pointer!important;width:100%!important;padding:9px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  background:linear-gradient(145deg,#ffebaf,#bc8740)!important;
  border:1px solid #f8d58e!important;border-radius:10px!important;
  color:#17120e!important;font-size:12px!important;font-weight:900!important;
}
body .ard-sosmed-bar .left .hokie-promo-entry svg {width:18px!important;height:18px!important;stroke:#20170e!important;fill:none!important;stroke-width:2.2!important;}
/* 2: Topbar SVG fix. Original <i data-icon> uses external CSS background masks, which can be missing. */
body .topbar-inner-container .topbar-left-section {display:flex!important;align-items:center!important;gap:7px!important;flex-wrap:wrap!important;}
body .topbar-inner-container .topbar-left-section > .topbar-item {min-width:0!important;height:auto!important;display:flex!important;align-items:center!important;justify-content:center!important;}
body .topbar-inner-container .topbar-left-section .topbar-item > :is(a,span) {
  min-height:34px!important;min-width:34px!important;display:inline-flex!important;
  align-items:center!important;justify-content:center!important;border-radius:8px!important;
}
body .topbar-inner-container .topbar-left-section i[data-icon] {display:none!important;}
body .topbar-inner-container .hokie-top-icon {
  width:22px!important;height:22px!important;min-width:22px!important;
  display:block!important;overflow:visible!important;
  stroke:#f7d69a!important;stroke-width:1.9!important;fill:none!important;
  stroke-linecap:round!important;stroke-linejoin:round!important;
  opacity:1!important;visibility:visible!important;
}
body .topbar-inner-container .topbar-left-section a:hover .hokie-top-icon {stroke:#fff4d7!important;filter:drop-shadow(0 0 5px rgba(240,189,107,.55));}
body .topbar-inner-container .language-selector-trigger {display:inline-flex!important;align-items:center!important;gap:4px!important;min-height:34px!important;padding:1px 3px!important;cursor:pointer!important;color:#f7d69a!important;}
body .topbar-inner-container .language-selector-trigger > i {display:none!important;}
body .topbar-inner-container .language-selector-trigger > .hokie-top-icon {width:20px!important;height:20px!important;}
body .topbar-inner-container .hokie-lang-label {font-family:system-ui,sans-serif!important;color:#f7d69a!important;font-size:11px!important;font-weight:900!important;}
/* 3: Isolated accessible popup layer, independent of template library. */
body .hokie-promo-layer[hidden], body .hokie-promo-layer [hidden] {display:none!important;}
body .hokie-promo-layer {
  position:fixed!important;inset:0!important;
  display:grid!important;place-items:center!important;z-index:2147483646!important;
  padding:16px!important;box-sizing:border-box!important;
  font-family:system-ui,-apple-system,'Segoe UI',sans-serif!important;
  line-height:1.45!important;color:#fbf3e8!important;
}
body .hokie-promo-layer .hokie-promo-veil {position:absolute!important;inset:0!important;background:rgba(1,1,2,.83)!important;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);}
body .hokie-promo-layer .hokie-promo-dialog {
  position:relative!important;z-index:1!important;
  box-sizing:border-box!important;width:min(100%,590px)!important;
  max-height:min(92dvh,960px)!important;
  overflow-y:auto!important;overscroll-behavior:contain!important;
  border:2px solid rgba(228,187,112,.8)!important;
  border-radius:22px!important;
  padding:20px 24px 24px!important;
  background:radial-gradient(ellipse at top,rgba(91,68,43,.39),transparent 53%),linear-gradient(160deg,#272020,#0a0b0e 80%)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.85),0 0 32px rgba(217,161,81,.18),inset 0 0 0 1px rgba(255,228,168,.11)!important;
  text-align:center!important;scrollbar-width:thin;scrollbar-color:#a38354 transparent;
}
body .hokie-promo-layer .hokie-promo-close {
  position:sticky!important;top:0!important;float:right!important;z-index:5!important;
  width:36px!important;height:36px!important;display:grid!important;place-items:center!important;
  margin:0 -8px -33px 0!important;padding:7px!important;
  border-radius:50%!important;border:1px solid #dfb475!important;
  background:#151214!important;color:#ffe6bc!important;cursor:pointer!important;
}
body .hokie-promo-layer .hokie-promo-close svg {width:19px!important;height:19px!important;stroke:currentColor!important;fill:none!important;stroke-width:2.6!important;}
body .hokie-promo-layer .hokie-promo-logo {display:block!important;max-width:290px!important;width:78%!important;height:auto!important;min-height:60px!important;margin:0 auto 10px!important;object-fit:contain!important;}
body .hokie-promo-layer .hokie-promo-kicker {display:block!important;margin:0 auto 5px!important;color:#c6a36b!important;letter-spacing:2px!important;font-size:10px!important;font-weight:900!important;}
body .hokie-promo-layer .hokie-promo-title {color:#ffe9ba!important;font-weight:900!important;font-size:clamp(19px,3vw,25px)!important;line-height:1.27!important;letter-spacing:.4px!important;margin:0 auto 9px!important;max-width:480px!important;text-transform:uppercase!important;text-shadow:0 2px 12px rgba(220,156,68,.28)!important;}
body .hokie-promo-layer .hokie-promo-desc {color:#e0d4c8!important;font-size:13px!important;line-height:1.6!important;margin:0 auto 14px!important;max-width:445px!important;}
body .hokie-promo-layer .hokie-promo-hero {
  display:block!important;position:relative!important;width:min(100%,306px)!important;
  margin:0 auto 15px!important;aspect-ratio:1!important;overflow:hidden!important;
  border:1px solid #b88c52!important;border-radius:13px!important;
  box-shadow:0 10px 25px rgba(0,0,0,.42)!important;
}
body .hokie-promo-layer .hokie-promo-hero img {display:block!important;width:100%!important;height:100%!important;max-height:none!important;object-fit:contain!important;}
body .hokie-promo-layer .hokie-promo-actions {display:grid!important;grid-template-columns:1fr 1fr!important;gap:12px!important;margin:0 auto 15px!important;max-width:450px!important;}
body .hokie-promo-layer .hokie-promo-actions a {
  text-decoration:none!important;display:flex!important;align-items:center!important;justify-content:center!important;
  padding:12px 13px!important;min-height:44px!important;border-radius:12px!important;
  font-weight:900!important;font-size:14px!important;letter-spacing:.5px!important;
  transition:filter .2s,transform .2s!important;
}
body .hokie-promo-layer .hokie-promo-actions a:first-child {border:1px solid #e7c088!important;color:#ffe2b0!important;background:linear-gradient(145deg,#292122,#0b0c10)!important;}
body .hokie-promo-layer .hokie-promo-actions a:last-child {border:1px solid #ffe4af!important;color:#19130d!important;background:linear-gradient(135deg,#f9dea6,#be8a44)!important;}
body .hokie-promo-layer .hokie-promo-actions a:hover {transform:translateY(-2px)!important;filter:brightness(1.15)!important;}
body .hokie-promo-layer .hokie-promo-gif {display:block!important;width:100%!important;max-width:476px!important;margin:0 auto!important;}
body .hokie-promo-layer .hokie-promo-gif img {display:block!important;width:100%!important;height:auto!important;border:1px solid rgba(213,177,122,.66)!important;border-radius:10px!important;}
body .hokie-promo-layer .hokie-promo-note {font-size:11px!important;color:#c9b79e!important;margin:9px auto 0!important;}
body.hokie-promo-open {overflow:hidden!important;}
@media (max-width:640px) {
  :root {--hokie-float-bottom-desktop:var(--hokie-float-bottom-mobile);}
  body .ard-sosmed-bar,body .ard-sosmed-bar.closed,body .ard-sosmed-bar.open {left:12px!important;}
  body .hokie-menu-toggle {height:49px!important;min-width:154px!important;padding:8px 13px!important;font-size:12px!important;}
  body .hokie-menu-toggle svg {width:21px!important;height:21px!important;}
  body .ard-sosmed-bar .left {width:164px!important;max-height:calc(100dvh - 188px)!important;}
  body .hokie-promo-layer {padding:10px!important;}
  body .hokie-promo-layer .hokie-promo-dialog {width:100%!important;max-height:94dvh!important;border-radius:17px!important;padding:12px 14px 16px!important;}
  body .hokie-promo-layer .hokie-promo-logo {max-width:230px!important;min-height:50px!important;}
  body .hokie-promo-layer .hokie-promo-title {font-size:19px!important;}
  body .hokie-promo-layer .hokie-promo-desc {font-size:12px!important;}
  body .hokie-promo-layer .hokie-promo-hero {width:min(100%,235px)!important;}
  body .hokie-promo-layer .hokie-promo-actions {gap:9px!important;margin-bottom:12px!important;}
  body .hokie-promo-layer .hokie-promo-actions a {font-size:13px!important;min-height:39px!important;padding:8px 10px!important;}
  body .topbar-inner-container .topbar-left-section {gap:4px!important;}
  body .topbar-inner-container .topbar-left-section .topbar-item > :is(a,span) {min-width:30px!important;min-height:31px!important;}
  body .topbar-inner-container .hokie-top-icon {width:19px!important;height:19px!important;min-width:19px!important;}
}
@media (prefers-reduced-motion:reduce) {
  body .hokie-menu-toggle {animation:none!important;}
  body .ard-sosmed-bar .left,body .hokie-promo-layer .hokie-promo-actions a {transition:none!important;}
}
