/* Current account controls and accessibility, keeping the supplied site's design. */
:root {
  color-scheme: dark;
  --bg: #100d17;
  --panel: #16121e;
  --raised: #271a30;
  --line: #49384f;
  --text: #fff4fa;
  --muted: #c2b6cc;
  --accent: var(--accent-color);
}
[hidden] { display:none!important; }
/* The footer stays at the bottom of the window on short pages. */
body { display:flex; flex-direction:column; min-height:100vh; min-height:100dvh; }
body > main { flex:1 0 auto; }
button,input { font:inherit; }
button { cursor:pointer; }
button:disabled { opacity:.5; cursor:not-allowed; }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent-color); }
:is(button,a,input,summary):focus-visible { outline:2px solid var(--accent-color); outline-offset:5px; }
img { max-width:100%; }
.site-nav .discord-login { color:#8d97ff; font-weight:600; }
.site-nav .user-profile { padding:7px 16px; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.logo-img,.hero-logo { object-fit:contain; }
.hero-title { line-height:1.1; }
.hero-brand-group { max-width:100%; }
.hero-credits { margin-top:0; grid-template-columns:repeat(4,max-content); }
.credit-label { color:#878995; }
.btn-purchase-buy:hover { animation:none; }
.slider-wrapper { aspect-ratio:16/10; }
.slider-track,.slide,.screenshot-button { height:100%; }
.slider-track { transition:transform .55s cubic-bezier(.22,1,.36,1); }
.slide { position:relative; }
.screenshot-button { display:block; width:100%; border:0; padding:0; background:transparent; cursor:zoom-in; }
.slide img { width:100%; height:100%; max-height:none; object-fit:contain; }
.screenshot-button:focus-visible { outline-offset:-5px; }
.slider-btn:focus-visible,.slider-wrapper:focus-within .slider-btn { opacity:1; }
.dot { border:1px solid #ffffff66; padding:0; }
.dot::before { content:""; display:block; width:28px; height:28px; transform:translate(-9px,-9px); }
.slider-dots { bottom:12px; padding:9px 13px; border-radius:22px; background:#0a0c12b3; }
.slider-status { margin-top:-25px; color:#aaaab7; }
.purchase-card { max-width:100%; }
.btn-purchase,.btn-purchase-sec { padding:16px 28px; }
.btn-preview { min-width:195px; padding-inline:28px; }
.footer-links a { color:#999ba8; }
.footer-desc { color:#999ba8; }
.footer-brand .logo-img { height:44px; }
.copyright { color:#9294a1; }
.disclaimer { color:#828591; }
.image-viewer { width:100vw; max-width:none; height:100dvh; max-height:none; margin:0; inset:0; border:0; padding:60px 40px 30px; background:#090b11f5; color:var(--text); overflow:auto; }
.image-viewer[open] { display:flex; flex-direction:column; align-items:center; justify-content:center; }
.image-viewer::backdrop { background:#000a; }
.image-viewer>img { max-width:100%; max-height:calc(100dvh - 130px); object-fit:contain; border-radius:7px; }
.image-viewer>p { margin-top:17px; font-size:13px; color:#ccc; }
.viewer-close { position:fixed; right:22px; top:18px; display:grid; place-items:center; width:38px; height:38px; background:#24242ecc; color:#fff; border:1px solid #ffffff22; border-radius:50%; font-size:28px; line-height:1; transition:transform .3s; }
.viewer-close:hover { transform:rotate(90deg); }
body.viewer-open { overflow:hidden; }
[data-arrive] { animation:arrive .7s cubic-bezier(.16,1,.3,1) both; }
@keyframes arrive { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }

.button { display:inline-flex; align-items:center; justify-content:center; gap:22px; padding:13px 21px; background:var(--accent-color); color:white; border:1px solid var(--accent-color); border-radius:6px; font-size:14px; font-weight:600; text-align:center; }
.secondary { background:rgba(255,255,255,.05); border-color:var(--line); }
.secondary:hover { background:rgba(255,255,255,.1); }
.text-link { font-size:13px; color:var(--accent); }
.wordmark { color:var(--text); font-size:30px; font-weight:800; }
.wordmark span { color:var(--accent); }
.narrow,.account,.checkout { padding-top:140px; padding-bottom:70px; }
.narrow { max-width:1000px; min-height:65vh; }
.narrow h1 { font-size:44px; line-height:1.2; }
.narrow p,.account p,.checkout p { color:var(--muted); }
.narrow h2 { line-height:1.25; }
.narrow .steps { margin-top:30px; }
.narrow .steps li { margin-bottom:12px; }
.narrow details { border-bottom:1px solid var(--line); }
.narrow summary { list-style:none; display:flex; justify-content:space-between; gap:20px; cursor:pointer; align-items:center; }
.narrow summary::-webkit-details-marker { display:none; }
.narrow summary:after { flex-shrink:0; }
.narrow ul,.narrow ol { margin-top:16px; }
.narrow .legal-title { font-size:40px; }
.checkout-grid h1 { line-height:1.2; }
.account-heading h1 { line-height:1.2; }
.license-panel h2 { line-height:1.2; }
.account-heading h1,.checkout-grid h1 { font-weight:700; }
.account-heading>form { flex-shrink:0; }
.account-grid { align-items:start; }
.license-panel,.purchase-panel { border-color:#ff40683b; box-shadow:0 16px 50px #0002; }
.key-row input:focus-visible { outline-offset:-2px; }
.flash-container { padding-top:98px; }
.flash-container + main { padding-top:30px; }
.flash-container .notice { margin-top:0; }
.inline-form { flex-wrap:wrap; }

@media (max-width:1150px) {
  .site-nav { padding-right:4%; }
  .nav-links { gap:20px; }
  .hero-logo { height:160px; }
  .hero-title { font-size:5rem; }
  .footer-nav-group { gap:40px; }
  .checkout-grid { gap:30px; }
  .checkout-grid h1 { font-size:40px; }
  .key-row { flex-wrap:wrap; }
  .key-row input { flex-basis:100%; }
  .copy-button { width:100%; border-left:0; border-top:1px solid var(--line); padding:10px; }
}
@media (max-width:768px) {
  html { font-size:16px; scroll-padding-top:95px; }
  .site-nav { padding:12px 5%; }
  .logo-img { height:38px; width:40px; }
  .logo-container { gap:9px; }
  .logo-text { font-size:1.3rem; }
  .nav-links { gap:10px; }
  .site-nav .user-profile { display:none; }
  .nav-btn-download { padding:8px 15px; font-size:13px!important; }
  .hero { padding-top:115px; }
  .hero-brand-group { gap:16px; margin-bottom:25px; }
  .hero-logo { height:clamp(70px,20vw,115px); }
  .hero-title { font-size:clamp(42px,10vw,70px); letter-spacing:-2px; }
  .hero p { font-size:1.1rem; margin-bottom:25px; }
  .hero-btns { gap:10px; margin-bottom:28px; }
  .btn-primary,.btn-secondary { padding:13px 24px; font-size:1rem; }
  .hero-credits { grid-template-columns:repeat(4,max-content); gap:clamp(12px,4vw,26px); }
  .credit-label { font-size:.58rem; }
  .slider-dots { gap:12px; bottom:10px; }
  .slider-btn { width:35px; height:35px; }
  .slider-status { font-size:.75rem; margin-bottom:35px; }
  .purchase-card { padding:22px; width:100%; }
  .purchase-section { padding-bottom:25px; }
  footer { padding-top:45px; margin-top:25px; }
  .footer-container { gap:35px; }
  .footer-nav-group { gap:30px; }
  .footer-col h4 { margin-bottom:14px; }
  .footer-links li { margin-bottom:10px; }
  .footer-bottom { margin-top:35px; }
  .image-viewer { padding:60px 12px 24px; }
  .image-viewer>p { font-size:11px; }
  .narrow,.account,.checkout { padding-top:110px; padding-bottom:40px; }
  .narrow h1,.narrow .legal-title { font-size:32px; }
  .narrow summary { font-size:15px; }
  .checkout-grid { grid-template-columns:1fr; gap:30px; margin-top:26px; }
  .checkout-grid h1 { font-size:35px; }
  .lead { font-size:15px; }
  .account-heading h1 { font-size:29px; }
  .account-grid { grid-template-columns:1fr; }
  .license-panel,.purchase-panel,.info-panel { padding:23px; }
  .license-panel h2 { font-size:30px; }
  .account-heading { align-items:start; }
  .flash-container { padding-top:85px; }
}
@media (max-width:480px) {
  .hero-credits { grid-template-columns:repeat(2,max-content); gap:20px 26px; }
  :is(.credit-creator,.credit-code) .idea-avatar-wrap::after { left:0; transform:translate(0,5px) scale(.94); transform-origin:left bottom; }
  :is(.credit-creator,.credit-code) .idea-avatar-wrap:hover::after,:is(.credit-creator,.credit-code) .idea-avatar-wrap:focus-visible::after { transform:translate(0,0) scale(1); }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  .btn-preview::before { background-image:none; }
  .menu-parallax-bg { transform:none!important; }
}

.footer-contact,.legal-content a[href^="mailto:"] { overflow-wrap:anywhere; }

/* Main download button on the home page. */
.landing .release-download {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:15px 23px 15px 16px;
  border-radius:14px;
  background:linear-gradient(135deg,#ff5277,var(--accent-color));
  box-shadow:0 8px 24px #ff40681c;
}
.release-download-icon {
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex-shrink:0;
  border-radius:50%;
  background:#ffffff1c;
  font-size:24px;
  line-height:1;
}
.release-download-version {
  margin-left:8px;
  padding:4px 9px;
  border:1px solid #ffffff38;
  border-radius:7px;
  font-size:.8em;
  font-weight:600;
  white-space:nowrap;
}
.landing .release-download:hover { background:linear-gradient(135deg,#ff6485,#ff4a70); }
@media (max-width:768px) { .landing .release-download { padding:13px 18px; } }

/* Download information for the protected Windows build. */
.download-notice { margin-top:24px; padding:22px 24px; max-width:760px; border:1px solid #ff40682e; border-radius:14px; background:linear-gradient(135deg,#ff406807,#14162099); }
.download-notice-heading { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.download-notice-icon { display:grid; place-items:center; flex-shrink:0; width:24px; height:24px; border:1px solid #ff40685c; border-radius:50%; background:#ff406814; color:var(--accent-color); font-size:14px; font-weight:700; }
.download-notice h3 { margin:0; color:#e0e0eb; font-size:.95rem; font-weight:600; line-height:1.4; }
.download-notice p { margin:0 0 11px; color:#aaaab7; font-size:.85rem; line-height:1.7; }
.download-notice-links { display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:14px; }
.download-notice-links a { color:var(--accent-color); font-size:.8rem; }
.download-notice-links a:hover { color:#ff7897; text-decoration:underline; }
.account .download-notice { margin-top:18px; padding:17px; }
.account .download-notice h3 { font-size:.9rem; }
.narrow>.download-notice { margin-top:22px; }
@media (max-width:768px) { .download-notice { padding:18px; } .download-notice-links { flex-direction:column; gap:10px; } }
.download-notice-more { color:var(--accent-color); font-size:.8rem; line-height:1.6; }
.download-notice-more:hover { color:#ff7897; text-decoration:underline; }
.download-notice-compact { padding:18px 22px; }
.download-notice-compact .download-notice-heading { margin-bottom:9px; }
#windows-defender-help { scroll-margin-top:105px; }
.download-notice .download-notice-steps { margin:18px 0; padding-left:22px; display:grid; gap:18px; color:#aaaab7; }
.download-notice .download-notice-steps li { margin:0; padding-left:4px; }
.download-notice .download-notice-steps li::marker { color:var(--accent-color); font-weight:600; }
.download-notice-steps strong { display:block; margin-bottom:8px; color:#e0e0eb; font-size:.9rem; font-weight:600; }
.download-notice-steps p { margin:0; }
.download-settings-path { color:#d0d0dd; }
.download-notice code { font-family:Consolas,monospace; overflow-wrap:anywhere; }
.download-notice .download-notice-caution { padding:12px 14px; border-left:2px solid #ff40686b; background:#ff406807; border-radius:0 6px 6px 0; }

/* Language switcher stays visible on phones, where other nav text links are hidden. */
.lang-switch { display:inline-flex; align-items:center; border:1px solid var(--line); border-radius:6px; overflow:hidden; }
.nav-links .lang-switch a { display:inline-block; padding:5px 9px; font-size:.8rem; font-weight:700; letter-spacing:.5px; color:var(--muted); }
.nav-links .lang-switch a + a { border-left:1px solid var(--line); }
.nav-links .lang-switch a[aria-current] { color:var(--text-color); background:rgba(255,64,104,.15); }
.nav-links .lang-switch a:hover { color:var(--text-color); }
@media (max-width:768px) { .nav-links .lang-switch a { padding:5px 7px; font-size:12px; } }
/* Phones and tablets: the navigation folds into a menu under the ≡ button instead of disappearing or wrapping.
   Up to 1023 px, where the 80% desktop scale below gives the full bar enough room. */
.nav-toggle { display:none; }
@media (max-width:1023px) {
  .nav-toggle { display:inline-flex; flex-direction:column; justify-content:center; gap:5px; width:44px; height:42px; padding:0 11px; margin-left:auto; background:rgba(255,255,255,.05); border:1px solid var(--line); border-radius:10px; cursor:pointer; }
  .nav-toggle span { display:block; height:2px; border-radius:2px; background:var(--text-color); transition:transform .25s ease, opacity .2s ease; }
  .site-nav.is-open .nav-toggle span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  .site-nav.is-open .nav-toggle span:nth-child(2) { opacity:0; }
  .site-nav.is-open .nav-toggle span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .site-nav .nav-links { position:absolute; top:100%; left:0; right:0; display:none; flex-direction:column; align-items:stretch; gap:0; padding:6px 5% 18px; background:rgba(12,10,18,.97); border-bottom:1px solid var(--line); box-shadow:0 22px 40px rgba(0,0,0,.5); }
  .site-nav.is-open .nav-links { display:flex; animation:nav-drop .22s ease; }
  .site-nav .nav-links > a:not(.nav-btn-download), .site-nav .nav-links > .user-profile { display:block !important; margin:0; border-radius:0; padding:14px 2px; font-size:1rem !important; color:var(--text-color); border-bottom:1px solid rgba(255,255,255,.06); }
  .site-nav .nav-links > .nav-btn-download { margin-top:14px; padding:12px; text-align:center; border:1px solid rgba(255,64,104,.35); border-radius:10px; }
  .site-nav .nav-links .lang-switch { align-self:flex-start; margin-top:14px; }
  .site-nav .nav-links .lang-switch a { display:inline-block !important; padding:7px 14px; border-bottom:0; }
}
@keyframes nav-drop { from { opacity:0; transform:translateY(-6px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .site-nav.is-open .nav-links { animation:none; } .nav-toggle span { transition:none; } }

/* Desktop draws the page at 80% of its designed size, the look of 80% browser zoom. Only the page itself is
   scaled: the background layers and the full-screen image viewer stay full size. Media queries still see the
   real window width. Browsers without CSS zoom show the page at 100%. */
@media (min-width:1024px) {
  .site-nav, .flash-container, main, footer { zoom:.8; }
  .menu-parallax-bg { background-position:right 8vw top 94px; background-size:min(432px, 29vw) auto; }
}
