/* ================================================================
   SERVICE TECH VAULT — GLOBAL VIKING / FIRE DESIGN SYSTEM
   ================================================================ */

:root{
  --stv-black:#070504;
  --stv-black-2:#0d0907;
  --stv-panel:#15100c;
  --stv-panel-2:#1d130d;
  --stv-orange:#ff6819;
  --stv-orange-2:#ff8b28;
  --stv-gold:#ffc066;
  --stv-red:#a92a0c;
  --stv-text:#fff7eb;
  --stv-muted:#c1ad98;
  --stv-dim:#8f7b68;
  --stv-line:rgba(255,108,24,.26);
  --stv-max:1180px;
}

html{
  background:var(--stv-black)!important;
  scroll-behavior:smooth;
}

body.stv-global-theme{
  margin:0!important;
  color:var(--stv-text)!important;
  background:
    radial-gradient(circle at 50% -8%,rgba(255,92,16,.20),transparent 29%),
    radial-gradient(circle at 8% 38%,rgba(150,36,7,.10),transparent 27%),
    radial-gradient(circle at 92% 64%,rgba(255,91,12,.07),transparent 28%),
    linear-gradient(180deg,#070504,#120a06 33%,#070605 100%)!important;
  background-attachment:fixed!important;
  min-height:100vh;
}

/* Global readable width */
body.stv-global-theme > main,
body.stv-global-theme .container,
body.stv-global-theme .wrap,
body.stv-global-theme .content,
body.stv-global-theme .page,
body.stv-global-theme article{
  max-width:var(--stv-max);
}

/* --------------------------------------------------------------
   STV TOP DOCK
   -------------------------------------------------------------- */

#stv-global-dock{
  position:sticky;
  top:0;
  z-index:99990;

  min-height:66px;

  display:flex;
  align-items:center;

  border-bottom:1px solid rgba(255,105,22,.19);

  background:rgba(7,5,4,.92);

  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);

  box-shadow:0 8px 35px rgba(0,0,0,.26);
}

#stv-global-dock .stv-dock-inner{
  width:min(calc(100% - 28px),1180px);
  margin:auto;

  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

#stv-global-dock .stv-dock-brand{
  display:flex;
  align-items:center;
  gap:10px;

  color:#fff6e9;
  text-decoration:none!important;
}

#stv-global-dock .stv-dock-rune{
  width:40px;
  height:40px;

  display:grid;
  place-items:center;

  flex:0 0 40px;

  border-radius:12px;

  color:#1a0802;

  font-family:Georgia,serif;
  font-size:22px;
  font-weight:900;

  background:
    linear-gradient(
      180deg,
      #ffab46,
      #ee5610 58%,
      #bd3109
    );

  border:1px solid rgba(255,190,105,.55);

  box-shadow:
    0 0 22px rgba(255,71,6,.20),
    inset 0 1px 0 rgba(255,255,255,.24);
}

#stv-global-dock .stv-dock-name{
  line-height:1.05;
}

#stv-global-dock .stv-dock-name strong{
  display:block;

  color:#fff5e8;

  font-size:12px;
  font-weight:950;
  letter-spacing:.14em;
}

#stv-global-dock .stv-dock-name span{
  display:block;

  margin-top:5px;

  color:#ff7c21;

  font-size:8px;
  font-weight:900;
  letter-spacing:.22em;
}

#stv-global-dock nav{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  flex-wrap:wrap;
}

#stv-global-dock nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;

  min-height:36px;

  padding:0 11px;

  border-radius:999px;

  text-decoration:none!important;

  color:#d8c4ad!important;

  border:1px solid transparent;

  background:transparent;

  font-size:11px;
  font-weight:800;

  transition:
    color .18s ease,
    border-color .18s ease,
    background .18s ease,
    transform .18s ease;
}

#stv-global-dock nav a:hover,
#stv-global-dock nav a:focus{
  color:#fff6e8!important;
  border-color:rgba(255,113,27,.42);
  background:rgba(255,91,13,.08);
  transform:translateY(-1px);
}

/* --------------------------------------------------------------
   RUNE RAILS
   -------------------------------------------------------------- */

.stv-global-runes{
  position:fixed;
  z-index:-1;

  top:110px;

  display:flex;
  flex-direction:column;
  gap:30px;

  pointer-events:none;
  user-select:none;

  color:rgba(255,101,22,.09);

  font-family:Georgia,serif;
  font-size:25px;
}

.stv-global-runes.left{
  left:15px;
}

.stv-global-runes.right{
  right:15px;
}

/* --------------------------------------------------------------
   EMBERS
   -------------------------------------------------------------- */

#stv-global-embers{
  position:fixed;
  inset:0;

  z-index:-1;
  pointer-events:none;
  overflow:hidden;
}

#stv-global-embers i{
  position:absolute;

  bottom:-10px;

  width:3px;
  height:3px;

  border-radius:50%;

  background:#ff8b26;

  box-shadow:0 0 7px #ff5a10;

  animation:stvGlobalEmber 15s linear infinite;
}

#stv-global-embers i:nth-child(1){left:7%;animation-delay:-4s;}
#stv-global-embers i:nth-child(2){left:19%;animation-delay:-10s;animation-duration:18s;}
#stv-global-embers i:nth-child(3){left:37%;animation-delay:-2s;animation-duration:13s;}
#stv-global-embers i:nth-child(4){left:56%;animation-delay:-12s;animation-duration:20s;}
#stv-global-embers i:nth-child(5){left:74%;animation-delay:-6s;animation-duration:16s;}
#stv-global-embers i:nth-child(6){left:91%;animation-delay:-1s;animation-duration:19s;}

@keyframes stvGlobalEmber{
  0%{transform:translateY(0);opacity:0;}
  12%{opacity:.75;}
  75%{opacity:.30;}
  100%{transform:translateY(-110vh) translateX(24px);opacity:0;}
}

/* --------------------------------------------------------------
   PAGE CONTENT
   -------------------------------------------------------------- */

body.stv-global-theme main,
body.stv-global-theme article,
body.stv-global-theme .container,
body.stv-global-theme .content,
body.stv-global-theme .wrap{
  color:var(--stv-text);
}

body.stv-global-theme h1,
body.stv-global-theme h2,
body.stv-global-theme h3,
body.stv-global-theme h4{
  color:#fff3e2!important;
}

body.stv-global-theme h1{
  font-family:Georgia,"Times New Roman",serif!important;

  background:
    linear-gradient(
      180deg,
      #fff8ed,
      #ffd09c 40%,
      #ff741e 76%,
      #b42b09
    );

  background-clip:text;
  -webkit-background-clip:text;
  color:transparent!important;

  text-shadow:none!important;
}

body.stv-global-theme h2{
  position:relative;
  padding-top:10px;
}

body.stv-global-theme h2::before{
  content:"ᚠ ᚱ ᛏ";

  display:block;

  margin-bottom:5px;

  color:#c84c17;

  font-family:Georgia,serif;
  font-size:11px;
  letter-spacing:.42em;
  font-weight:400;
}

body.stv-global-theme h3::before{
  content:"ᛉ";
  margin-right:7px;
  color:#d85218;
  font-family:Georgia,serif;
  font-weight:400;
}

body.stv-global-theme p,
body.stv-global-theme li{
  color:#c3af9a;
  line-height:1.72;
}

body.stv-global-theme strong{
  color:#f5e2ca;
}

body.stv-global-theme a{
  color:#ff9639;
}

body.stv-global-theme hr{
  border:0;
  height:1px;

  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255,106,21,.38),
      transparent
    );
}

/* Generic old cards become forged panels */
body.stv-global-theme .card,
body.stv-global-theme .panel,
body.stv-global-theme .guide-card,
body.stv-global-theme .resource-card,
body.stv-global-theme .result-card,
body.stv-global-theme .box,
body.stv-global-theme section > div[class*="card"]{
  border-color:rgba(255,105,22,.25)!important;

  background:
    linear-gradient(
      145deg,
      rgba(27,17,10,.96),
      rgba(8,7,6,.98)
    )!important;

  box-shadow:
    0 18px 55px rgba(0,0,0,.27),
    inset 0 0 35px rgba(255,78,7,.02)!important;

  border-radius:20px!important;
}

/* Inputs */
body.stv-global-theme input,
body.stv-global-theme select,
body.stv-global-theme textarea{
  color:#fff1df!important;

  background:#100c09!important;

  border:
    1px solid rgba(255,108,25,.27)!important;

  border-radius:12px!important;

  outline:none;
}

body.stv-global-theme input:focus,
body.stv-global-theme select:focus,
body.stv-global-theme textarea:focus{
  border-color:#ff7820!important;

  box-shadow:
    0 0 0 3px rgba(255,97,16,.10)!important;
}

/* Buttons */
body.stv-global-theme button,
body.stv-global-theme input[type="submit"],
body.stv-global-theme .button,
body.stv-global-theme .btn{
  border:
    1px solid rgba(255,183,91,.58)!important;

  color:#1b0902!important;

  background:
    linear-gradient(
      180deg,
      #ffa447,
      #ff6819 55%,
      #d9410b
    )!important;

  border-radius:12px!important;

  font-weight:900!important;

  box-shadow:
    0 8px 24px rgba(255,67,5,.17)!important;
}

/* Tables */
body.stv-global-theme table{
  width:100%;

  border-collapse:separate;
  border-spacing:0;

  overflow:hidden;

  border:
    1px solid rgba(255,105,22,.23);

  border-radius:15px;

  background:rgba(8,7,6,.76);
}

body.stv-global-theme th{
  color:#ffb161!important;

  background:
    rgba(255,94,13,.08)!important;
}

body.stv-global-theme th,
body.stv-global-theme td{
  padding:12px 14px;

  border-bottom:
    1px solid rgba(255,255,255,.07)!important;

  border-color:
    rgba(255,255,255,.07)!important;
}

/* Code / technical values */
body.stv-global-theme code,
body.stv-global-theme pre{
  color:#ffd2a2!important;

  background:#090806!important;

  border:
    1px solid rgba(255,107,24,.20)!important;

  border-radius:10px;
}

/* Images */
body.stv-global-theme main img,
body.stv-global-theme article img{
  max-width:100%;
}

/* --------------------------------------------------------------
   GUIDE-SPECIFIC ENHANCEMENT
   -------------------------------------------------------------- */

body.stv-global-theme.stv-guide-page main,
body.stv-global-theme.stv-guide-page article{
  width:min(calc(100% - 30px),980px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

body.stv-global-theme.stv-guide-page h1{
  margin-top:45px!important;
}

body.stv-global-theme.stv-guide-page h2{
  margin-top:42px!important;
}

body.stv-global-theme.stv-guide-page pre{
  overflow:auto;
}

/* --------------------------------------------------------------
   LEGAL PAGES — RESTRAINED
   -------------------------------------------------------------- */

body.stv-global-theme.stv-legal-page .stv-global-runes,
body.stv-global-theme.stv-legal-page #stv-global-embers{
  opacity:.35;
}

body.stv-global-theme.stv-legal-page h1{
  background:none;
  -webkit-text-fill-color:#fff2df;
  color:#fff2df!important;
}

body.stv-global-theme.stv-legal-page h2::before{
  content:"ᛉ";
  letter-spacing:0;
}

/* --------------------------------------------------------------
   GLOBAL FOOTER
   -------------------------------------------------------------- */

#stv-global-footer{
  margin-top:70px;

  padding:
    31px 20px
    40px;

  text-align:center;

  border-top:
    1px solid rgba(255,102,20,.11);

  background:
    linear-gradient(
      180deg,
      rgba(12,8,5,.28),
      rgba(5,4,3,.75)
    );
}

#stv-global-footer .stv-footer-runes{
  margin-bottom:10px;

  color:#a63a12;

  font-family:Georgia,serif;

  letter-spacing:.47em;
}

#stv-global-footer .stv-footer-main{
  color:#9f8974;

  font-size:11px;
  font-weight:800;

  letter-spacing:.10em;

  text-transform:uppercase;
}

#stv-global-footer .stv-footer-links{
  margin-top:11px;

  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:13px;
}

#stv-global-footer .stv-footer-links a{
  color:#7e6b5a!important;

  text-decoration:none;

  font-size:10px;
}

#stv-global-footer .stv-footer-links a:hover{
  color:#ff9140!important;
}

/* --------------------------------------------------------------
   MOBILE
   -------------------------------------------------------------- */

@media(max-width:760px){

  #stv-global-dock{
    position:relative;
  }

  #stv-global-dock .stv-dock-inner{
    width:calc(100% - 18px);

    padding:
      9px 0;

    align-items:flex-start;
  }

  #stv-global-dock .stv-dock-rune{
    width:36px;
    height:36px;
    flex-basis:36px;

    font-size:19px;
  }

  #stv-global-dock .stv-dock-name strong{
    font-size:10px;
  }

  #stv-global-dock .stv-dock-name span{
    font-size:7px;
  }

  #stv-global-dock nav{
    max-width:62%;

    gap:3px;
  }

  #stv-global-dock nav a{
    min-height:30px;

    padding:0 7px;

    font-size:9px;
  }

  .stv-global-runes{
    display:none;
  }

  body.stv-global-theme h1{
    font-size:
      clamp(34px,10vw,54px)!important;
  }

  body.stv-global-theme table{
    font-size:12px;
  }

}

@media(prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    animation:none!important;
    transition:none!important;
    scroll-behavior:auto!important;
  }
}
