@import url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.6.3/css/font-awesome.css');
@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital,wght@0,300;0,400;0,500;0,700;1,300;1,400;1,500;1,700&display=swap');

:root {
  --go-color: #42dcb6;
  /* Darkened brand fills: these carry white text at AA (the bright mint
     above cannot - it only reaches 1.73:1 against white). */
  --btn-bg: #188369;
  --btn-bg-hover: #146f59;

  --box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  --box-shadow-hover: 0 20px 40px rgba(0, 0, 0, 0.25);
  --transition-duration: 0.5s;
  --transition: 0.6s cubic-bezier(0.83, 0, 0.17, 1);

  --master-border-radius: 2rem;
  scroll-behavior: smooth;
}

body {
  background-color: #04061d;
  color: #eee;
  font-family: "Ubuntu";
}

.down {
  width: 100px;
  height: 100px;
  position: absolute;
  bottom: 0;
  left: 50%;
  margin-left: -50px;
  background-image: url('../images/icons/down.svg');
  opacity: 0.6;
  transition-duration: 0.5s;
  z-index: 1;
}

.down:hover {
  opacity: 1;
  background-color: var(--go-color);
  transition-duration: 0.5s;
}

p {
  font-size: 18px;
  font-weight: 200;
  color: rgba(255, 255, 255, 0.7);
}

li {
  font-size: 18px;
  color: rgba(255, 255, 255, 0.7);
}

a {
  color: #42dcb6;
}

span {
  font-weight: 400;
}

.color-go {
  color: #42dcb6;
}

.badge {
  width: 100%;
  display: inline-block;
}

.badge:hover {
  transform: scale(1.05);
  transition-duration: var(--transition-duration);
}

.subtitle {
  color: #8c9ed9;
  font-size: 16px;
  font-weight: 400;
  text-transform: uppercase;
}

.section {
  padding: 10vh 0 10vh 0;
  min-height: 100vh;
  background-size: cover;
  background-attachment: fixed;
  background-position: bottom;
}

.hero-center {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.half {
  min-height: 50vh;
}

.section img {
  width: 100%;
  transition-duration: var(--transition-duration);
}

.thumbnail {
  border-radius: 12px;
  margin-top: 60px;
}

.collapsible {
  border-top: 0px solid #000;
  border-left: 0px solid #000;
  border-right: 0px solid #000;
}

.collapsible-header {
  border-bottom: 1px solid rgba(255,255,255,0.1);
  background-color: rgba(255,255,255,0.05);
  color: var(--go-color);
  font-size: 24px;
  position: relative;
  padding-right: 48px;
  box-sizing: border-box;
}

.collapsible-header::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  width: 22px;
  height: 22px;
  margin-top: -11px;
  background-image: url('../images/icons/down.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.25s ease;
  pointer-events: none;
}

.collapsible-header.active::after,
.collapsible li.active > .collapsible-header::after {
  transform: rotate(180deg);
}

.collapsible-body {
  border-bottom: 1px solid rgba(255,255,255,0.1);
}

/* EasySketch FAQ accordion (vanilla JS toggles .open + display) */
#faq-accordion.faq-accordion {
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
}

.faq-accordion .faq-item {
  margin-bottom: 18px;
}

.faq-accordion .faq-question {
  cursor: pointer;
  user-select: none;
  margin: 0 0 4px 0;
  font-weight: 400;
  padding: 14px 24px 14px 14px;
  border-radius: 8px;
  position: relative;
  box-sizing: border-box;
}

.faq-accordion .faq-question::after {
  content: '';
  position: absolute;
  right: 14px;
  top: 50%;
  width: 22px;
  height: 22px;
  margin-top: -11px;
  background-image: url('../images/icons/down.svg');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  transition: transform 0.25s ease;
  pointer-events: none;
}

.faq-accordion .faq-item.open .faq-question::after {
  transform: rotate(180deg);
}

.faq-accordion .faq-answer {
  padding: 0px 18px;
}

.faq-accordion .faq-answer[hidden] {
  display: none;
}

.drawdojo {
  /* Top layer darkens the whole stack so body copy clears AA - the raw
     gradient below peaks around luminance .19, where even pure white is 4.3:1. */
  background: linear-gradient(rgba(4, 6, 29, 0.42), rgba(4, 6, 29, 0.42)), linear-gradient(180deg, rgb(66, 137, 205), rgba(6, 6, 155, 0.1) 150%), linear-gradient(32deg, rgba(0, 179, 255, 0.738), rgba(0, 255, 0, 0) 75%), linear-gradient(334deg, rgba(0, 255, 208, 0.852), rgba(0, 0, 255, 0) 75%);
  min-height: 60vh;
}

#backgroundVideo {
  object-fit: cover;
  object-position: 50% 50%;
  /* 100% of layout viewport — avoids 100vw + scrollbar gutter horizontal overflow */
  width: 100%;
  max-width: 100%;
  height: 100vh;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  z-index: -1;
  /* -webkit-mask-image: url('../images/mask.png');
  mask-image: url('../images/mask.png');
  -webkit-mask-position: 50% 50%;
  mask-position: 50% 50%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-size: cover;
  mask-size: cover; */
}

.clear-20 {
  height: 20px;
}

.clear-40 {
  height: 40px;
}

.clear-60 {
  height: 60px;
}

#mainHero {
  background-image: url('../images/hero.jpg');
  background-size: cover;
  background-attachment: scroll;
}

/* Gimmick */

.gimmick {
  background-image: url('../images/hero-bg.svg');
  background-size: cover;
  position: absolute;
  height: 600px;
  width: 600px;
  top: calc(50vh - 300px);
  left: calc(50vw - 300px);
  animation-name: spin;
  animation-duration: 20s;
  animation-iteration-count: infinite;
  z-index: 0;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
    opacity: 0.6;
  }
  100%{
    transform: rotate(360deg);
    opacity: 0.6;
  }
}

.mysticalpath {
  background-image: url('../images/mysticalpath-bg.jpg');
  background-repeat: no-repeat;
  background-attachment: cover;
  background-position: fixed;
  min-height: 50vh;
}

.mysticalpath-hero {
  background-image: url('../images/mysticalpath-hero.png');
  background-repeat: no-repeat;
  background-attachment: scroll;
  background-size: 100%;
  background-position: top;
}

.drawingstats {
  background-image: url('../images/mysticalpath-bg2.jpg');
  background-repeat: no-repeat;
  background-attachment: cover;
  background-position: fixed;
  min-height: 50vh;
}

.zensketch {
  background-image: url('../images/zensketch/zenmode-bg.jpg');
  background-position: bottom;
  min-height: 60vh;
}

.destined {
  background-image: url('../images/destined2.jpg');
}

.discord-section {
  background: linear-gradient(135deg, #141b35 0%, #19203c 50%, #1e2643 100%);
  text-align: center;
  min-height: 50vh;
}

.header-contact {
  background-image: url('../images/header-contact.jpg');
  background-size: cover;
  background-position: bottom;
  padding: 300px 0 200px 0px;
}

h1 {
  font-size: 3rem; 
}

h2 {
  font-size: 2.4rem;
}

h3 {
  font-size: 2rem;
}

h4 {
  font-size: 1.6rem;
}

h5 {
  font-size: 1.2rem;
}

.btn {
  height: 48px;
  border-radius: 24px;
  z-index: 0;
  background-color: var(--btn-bg);
  color: #fff;               /* WCAG AA: white on #188369 = 4.68:1 */
  line-height: 48px;
  transition-duration: var(--transition-duration);
}

.btn:hover {
  transform: scale(1.1);
  transition-duration: var(--transition-duration);
}

.discord, .discord:hover, .discord:active {
  background-color: #5970BF;      /* WCAG AA: white text = 4.67:1 (was 3.99:1) */
  color: #fff;
}

.easySketch, .easySketch:hover, .easySketch:active {
  background-color: #0078C3;      /* WCAG AA: white text = 4.69:1 (was 2.89:1) */
  color: #fff;
  margin: 0 auto;
  display: block;
}

/* Logo */
#logo {
  background-image: url('../images/logo.svg');
  background-repeat: no-repeat;
  background-size: cover;
  position: fixed;
  top: 12px;
  left: 28px;
  height: 80px;
  width: 240px;
  transition-duration: var(--transition-duration);
}

#logo:hover {
  transform: scale(1.05);
  transition-duration: var(--transition-duration);
}

/* Nav */
#nav {
  position: fixed;
  top: 0px;
  right: 0px;
  margin: 0;
  padding: 0;
  transition-duration: var(--transition-duration);
}

#nav a {
  color: white;
}

#nav {
  margin-right: 30px;
}

#nav li {
  display: inline-block;
  font-size: 20px;
  line-height: 100px;
  transition-duration: 2000ms;
  text-transform: uppercase;
  color: #fff;
}

#nav li a {
  display: block;
  padding: 0 20px;
  color: #fff;
  /* Materialize's `nav ul a` sets font-size:1rem straight on the anchor, which
     beats the size inherited from #nav li. Take the li's size back. */
  font-size: inherit;
  line-height: inherit;
  text-transform: inherit;
}

#nav li:hover a {
  color: #fff;             /* white on #188369 hover = 4.68:1 */
}

/* Materialize also paints `nav ul a:hover` with its own translucent black,
   which would darken the hover colour chosen above. The li supplies it. */
#nav li a:hover,
#nav li a:focus {
  background-color: transparent;
}

#nav li:hover {
  background-color: var(--btn-bg);
  transform: scale(1.1);
  transition-duration: var(--transition-duration);
  cursor: pointer;
}

#navWrapper {
  position: fixed;
  background-color: rgba(0, 0, 0, 0);
  transition-duration: var(--transition-duration);
  z-index: 2;
}

#navTrigger {
  width: 40px;
  height: 40px;
  position: fixed;
  top: 32px;
  right: 28px;
  background-image: url('../images/icons/hamburger.svg');
  z-index: 3;
  display: none;
  cursor: pointer;
}

/* The only rule that matters */
#video-background {
  /*  making the video fullscreen  */
  position: fixed;
  right: 0;
  bottom: 0;
  min-width: 100%;
  min-height: 100%;
  width: auto;
  height: auto;
  z-index: -100;

}

.video-container {
  background-color: rgba(0, 0, 0, 0.4);
}

.footer {
  margin: 100px 0;
}

.social-icon {
  color: #fff;
}

ul.social-icons {
  width: 245px;
  margin: 10px auto 10px auto;
}

.social-icons li {
  vertical-align: top;
  display: inline;
  height: 100px;
  margin-right: 5px;
}

.social-icons a {
  color: #fff;
  text-decoration: none;

}

.fa-facebook {
  padding: 12px 16px;
  -o-transition: .5s;
  -ms-transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
  transition: .5s;
  background-color: #3d5b99;
  border-radius: 20px;
  height: 40px;
  width: 40px;
}

.fa-facebook:hover {
  opacity: 0.6;
}

.fa-twitter {
  padding: 12px 13px;
  -o-transition: .5s;
  -ms-transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
  transition: .5s;
  background-color: #00aced;
  border-radius: 20px;
  height: 40px;
  width: 40px;
}

.fa-twitter:hover {
  opacity: 0.6;
}

.fa-youtube {
  padding: 12px 14px;
  -o-transition: .5s;
  -ms-transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
  transition: .5s;
  background-color: #e64a41;
  border-radius: 20px;
  height: 40px;
  width: 40px;
}

.fa-youtube:hover {
  opacity: 0.6;
}

.fa-linkedin {
  padding: 12px 14px;
  -o-transition: .5s;
  -ms-transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
  transition: .5s;
  background-color: #0073a4;
  border-radius: 20px;
  height: 40px;
  width: 40px;
}

.fa-linkedin:hover {
  opacity: 0.6;
}

.fa-google-plus {
  padding: 12px 10px;
  -o-transition: .5s;
  -ms-transition: .5s;
  -moz-transition: .5s;
  -webkit-transition: .5s;
  transition: .5s;
  background-color: #e25714;
  border-radius: 20px;
  height: 40px;
  width: 40px;
}

.fa-google-plus:hover {
  opacity: 0.6;
}

nav .button-collapse {
  float: right;
}

.side-nav {
  background-color: rgba(0, 0, 0, 0.8);
}

.side-nav li>a {
  color: #eee;
  font-size: 18px;
  font-weight: 300;
  height: 80px;
  line-height: 80px;
  margin: 0;
  border-top: 1px solid #222;
}

.gameTitle {
  margin-top: 40px;
}

@media only screen and (max-width: 992px) {
  nav .brand-logo {
    left: 0;
    transform: translateX(0%);
  }

  .gimmick {
    display: none;
  }
}

/* Change look / feel for smaller screen sizes */
@media only screen and (max-width: 576px) {

  #nav {
    top: 20vh;
    right: 0;
    width: 100%;
    margin-right: 0px;
  }

  #nav li {
    font-size: 24px;
    display: block;
    text-align: center;
  }

  #navWrapper {
    background-color: rgba(0, 0, 0, 0.2);
    -webkit-backdrop-filter: blur(30px);
    backdrop-filter: blur(30px);
    z-index: -1;
    opacity: 0;
    height: 100vh;
    width: 100%;
    transition-duration: var(--transition);
  }

  #navWrapper.active {
    z-index: 2;
    opacity: 1;
    transition-duration: var(--transition);
  }

  #navTrigger {
    display: block;
  }

  #navTrigger.active {
    background-image: url('../images/icons/x.svg');
  }
}
/* ==========================================================================
   Accessibility (WCAG 2.1 AA)
   ========================================================================== */

/* Visually hidden, still announced by screen readers */
.visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

/* 2.4.1 Bypass Blocks */
.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  z-index: 100;
  padding: 12px 20px;
  border-radius: 0 0 8px 8px;
  background-color: var(--go-color);
  color: #04061d;
  font-weight: 500;
  text-decoration: none;
  transition: top 0.2s ease-in-out;
}

.skip-link:focus {
  top: 0;
  color: #04061d;
}

/* 2.4.7 Focus Visible - the stylesheet previously defined none at all.
   Longhands (not the shorthand) because Materialize ships `.btn { outline: 0 }`,
   which otherwise keeps winning on outline-width. Selectors include .btn so the
   specificity clears the framework's. */
a:focus,
a.btn:focus,
button:focus,
input:focus,
select:focus,
textarea:focus,
summary:focus,
video:focus,
[tabindex]:focus {
  outline-width: 3px !important;
  outline-style: solid !important;
  outline-color: #42dcb6 !important;
  outline-offset: 3px !important;
}

/* Mouse and touch users don't need the ring; keyboard users keep it. */
a:focus:not(:focus-visible),
a.btn:focus:not(:focus-visible),
button:focus:not(:focus-visible),
input:focus:not(:focus-visible),
select:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
summary:focus:not(:focus-visible),
video:focus:not(:focus-visible),
[tabindex]:focus:not(:focus-visible) {
  outline-style: none !important;
}

a:focus-visible,
a.btn:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
summary:focus-visible,
video:focus-visible,
[tabindex]:focus-visible {
  outline-width: 3px !important;
  outline-style: solid !important;
  outline-color: #42dcb6 !important;
  outline-offset: 3px !important;
}

/* On the blue and indigo fills a white ring reads better than the mint one */
.discord-section a.btn:focus-visible,
.discord-section button:focus-visible,
a.easySketch:focus-visible {
  outline-color: #ffffff !important;
}

/* Hamburger is a real <button> now - strip UA chrome, keep the icon */
#navTrigger {
  padding: 0;
  border: none;
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: contain;
  appearance: none;
  -webkit-appearance: none;
}

/* Logo link wraps a fixed-position box; give it a focusable footprint */
.logo-link {
  display: inline-block;
}

.logo-link:focus,
.logo-link:focus-visible {
  outline-style: none !important;
}

/* #logo is the visible box (the anchor itself collapses), so ring the child */
.logo-link:focus #logo,
.logo-link:focus-visible #logo {
  outline: 3px solid #42dcb6;
  outline-offset: 3px;
}

.logo-link:focus:not(:focus-visible) #logo {
  outline: none;
}

/* Discord section: lighter subtitle against the darkened gradient (7.01:1) */
.discord-section .subtitle {
  color: #a8b8e8;
}

/* FAQ accordion: a real <button> inside the heading, looking exactly as before.
   Padding, radius and the chevron come from .faq-accordion .faq-question above. */
.faq-question-heading {
  margin: 0;
}

button.faq-question {
  display: block;
  width: 100%;
  border: none;
  background: none;
  color: inherit;
  font: inherit;
  text-align: left;
}

/* 2.2.2 - honour a reduced-motion preference everywhere */
@media (prefers-reduced-motion: reduce) {
  :root {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  .btn:hover,
  .badge:hover,
  #logo:hover,
  #nav li:hover {
    transform: none;
  }
}

/* Heading levels are chosen for document structure (WCAG 1.3.1); these pin the
   visual size to what the old tag rendered, so semantics changed and looks did not. */
.as-h3 { font-size: 2.92rem; margin: 1.46rem 0 1.168rem 0; }
.as-h4 { font-size: 2.28rem; margin: 1.14rem 0 0.912rem 0; }
.as-h5 { font-size: 1.64rem; margin: 0.82rem 0 0.656rem 0; }

/* The <nav> landmark is a semantic wrapper only - Materialize styles a bare
   <nav> as its own pink navbar, so neutralise its box entirely. The children
   (#navTrigger, #navWrapper, #nav) are position:fixed and style themselves. */
#siteNav {
  width: auto;
  height: auto;
  line-height: normal;
  background-color: transparent;
  color: inherit;
  box-shadow: none;
}

#siteNav ul,
#siteNav ul li {
  float: none;
}

#siteNav ul li > a {
  height: auto;
  line-height: inherit;
}

/* 1.4.1 Use of Color - links inside running text must not rely on hue alone.
   Materialize clears underlines globally; put them back for in-text links only. */
p a:not(.btn):not([class*="waves"]),
li a:not(.btn):not([class*="waves"]),
.faq-answer a:not(.btn) {
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ...but the nav is a list of links, not running text - keep it clean */
#nav li a,
.social a,
.badge-link {
  text-decoration: none;
}

/* Materialize's `.btn { outline: 0 }` fights the outline-based ring on buttons,
   so buttons get a box-shadow ring instead - it is unaffected by outline resets.
   Two layers: a dark spacer, then the mint ring, so it reads on any backdrop. */
a.btn:focus-visible,
button.btn:focus-visible,
input[type="submit"]:focus-visible {
  box-shadow: 0 0 0 3px #04061d, 0 0 0 6px #42dcb6 !important;
}

.discord-section a.btn:focus-visible,
.discord-section button.btn:focus-visible,
a.easySketch:focus-visible {
  box-shadow: 0 0 0 3px #04061d, 0 0 0 6px #ffffff !important;
}

/* Materialize sets `.teal { background-color: #009688 !important }`, which only
   reaches 3.03:1 under white text. Same hue, dark enough for AA. */
a.btn.teal,
a.btn.teal:hover,
a.btn.teal:active,
a.btn.teal:focus {
  background-color: #008376 !important;   /* white text = 4.66:1 */
  color: #fff;
}

/* Full-strength body copy on the DrawDojo panel (the .7 alpha used elsewhere
   only works against the near-black page background). */
.drawdojo p,
.drawdojo li {
  color: #fff;
}
