*{box-sizing:border-box}
:root{
  --bg:#1a1919;
  --panel:#111113;
  --text:#f5f5f2;
  --muted:#909096;
  --line:#242428;
  --soft:#17171a;
  --hero-text:#e7e7e3;
  --upcoming-title:#b6b6bc;
  --upcoming-link-hover-text:#f5f5f2;
  --nav-inactive:#66666d;
  --topbar-bg:rgba(10,10,11,.2);
  --topbar-border:rgba(255,255,255,.06);
  --platform-bg:#020720;
  --platform-hover-bg:#020720;
  --platform-active-bg:#020720;
  --platform-ink:#b9b9be;
  --platform-icon-filter:none;
  --platform-copy-front:#000;
  --platform-copied:#fff;
  --footer-text:#6f6f76;
  --deck-hint:#707076;
  --font-body:"Segoe UI",-apple-system,BlinkMacSystemFont,"Microsoft YaHei","Helvetica Neue","PingFang SC","Noto Sans","Noto Sans CJK SC",Arial,system-ui,sans-serif;
  --font-title:Georgia,"Times New Roman",SimSun,"Songti SC","Noto Serif CJK SC",serif;
  --type-display:clamp(2.5rem,4vw,3.5rem);
  --type-heading:clamp(1.5rem,2.4vw,2rem);
  --type-subheading:1.25rem;
  --type-body:1rem;
  --type-small:.875rem;
  --type-label:.75rem;
  --type-micro:.625rem;
  --tracking-title:-.02em;
  --tracking-label:.08em;
  --cursor-arrow:image-set(url("assets/ui/Arrow2.png") 2x) 1 1,default;
  --cursor-card-detail:image-set(url("assets/ui/Arrow2.png") 2x) 1 1,default;
  --cursor-hand:image-set(url("assets/ui/Hand2.png") 2x) 5 1,pointer;
}
:root[data-theme="light"]{
  --bg:#45a781;
  --text:#f2f0e8;
  --muted:#f2f0e8;
  --line:rgba(32,47,29,.25);
  --hero-text:#f2f0e8;
  --upcoming-title:#f2f0e8;
  --upcoming-link-hover-text:#fff;
  --nav-inactive:#f2f0e8;
  --topbar-bg:rgba(69,167,129,.78);
  --topbar-border:rgba(32,47,29,.25);
  --platform-bg:#202f1d;
  --platform-hover-bg:#202f1d;
  --platform-active-bg:#202f1d;
  --platform-ink:#fff;
  --platform-icon-filter:none;
  --platform-copy-front:#202f1d;
  --platform-copied:#fff;
  --footer-text:#f2f0e8;
  --deck-hint:#f2f0e8;
}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-body);
  -webkit-font-smoothing:antialiased;
  line-height:1.6;
  cursor:var(--cursor-arrow);
}
body::selection{background:#fff;color:#000}
a{color:inherit}
a,button{cursor:var(--cursor-hand)}
h1,h2,h3,h4{font-family:var(--font-title)}
.page-background{
  position:fixed;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
  isolation:isolate;
  background:var(--bg);
}
.noise{
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.035;
  z-index:10;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E");
}
main,.footer{position:relative;z-index:1}
.shell{width:min(1180px,calc(100% - 48px));margin:0 auto}
.topbar{
  position:sticky;
  top:0;
  z-index:5;
  background:var(--topbar-bg);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--topbar-border);
}
:root[data-theme="light"] .topbar{--text:#f2f0e8;color:#f2f0e8}
.nav{
  height:68px;
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.brand{
  text-decoration:none;
  font-family:"Times New Roman",Times,serif;
  font-variant-numeric:lining-nums;
  white-space:nowrap;
  font-size:1.25rem;
  font-weight:700;
  letter-spacing:.015em;
}
.brand:focus-visible{outline:2px solid var(--text);outline-offset:4px}
.brand-number{
  display:inline-block;
  font-size:inherit;
  font-variant-numeric:lining-nums;
  line-height:inherit;
}
.nav-controls{
  display:flex;
  align-items:center;
  gap:22px;
}
.display-controls{display:flex;align-items:center;gap:8px}
.language-toggle{
  display:flex;
  align-items:center;
  gap:5px;
  padding:7px 10px;
  border:0;
  border-radius:999px;
  background:transparent;
  color:var(--nav-inactive);
  font-family:var(--font-body);
  font-size:var(--type-small);
  font-weight:400;
  line-height:1;
  letter-spacing:normal;
  cursor:var(--cursor-hand);
  transition:color .2s ease;
}
.language-toggle:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.language-toggle [data-lang-value]{color:var(--nav-inactive);transition:color .2s ease}
.language-toggle [data-lang-value].active{color:var(--text)}
:root[data-theme="light"] .language-toggle [data-lang-value].active{text-decoration:underline;text-underline-offset:3px}
.theme-toggle{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:50%;
  background:transparent;
  color:var(--text);
  cursor:var(--cursor-hand);
  transition:background .2s ease;
}
.theme-toggle:hover{background:var(--topbar-border)}
.theme-toggle:focus-visible{outline:2px solid var(--text);outline-offset:3px}
.theme-icon{width:19px;height:19px;pointer-events:none}
.theme-icon--moon{display:none}
:root[data-theme="light"] .theme-icon--sun{display:none}
:root[data-theme="light"] .theme-icon--moon{display:block}
.hero{
  min-height:auto;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  padding:40px 0 24px;
}
.typewriter{
  width:100%;
}
.typewriter-line{
  margin:0;
  min-height:3.2em;
  color:var(--hero-text);
  font-family:var(--font-title);
  font-size:var(--type-heading);
  font-weight:400;
  font-variant-numeric:lining-nums;
  line-height:1.5;
  letter-spacing:var(--tracking-title);
}
.typewriter-line::first-letter{
  margin-right:.04em;
  font-size:1.75em;
  font-weight:700;
  line-height:1;
}
.typed-text{white-space:pre-line}
.typewriter-caret{
  display:inline-block;
  width:.42em;
  height:1em;
  margin-left:.08em;
  vertical-align:-.16em;
  animation:typewriter-blink 1s steps(1,end) infinite;
}
.typewriter-caret img{
  display:block;
  width:100%;
  height:100%;
  object-fit:fill;
  image-rendering:pixelated;
}
.about-nav-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 0;
  border:0;
  background:transparent;
  color:var(--text);
  font:400 var(--type-small)/1 var(--font-body);
  letter-spacing:normal;
  transition:color .16s ease,opacity .16s ease;
}
.about-nav-button:hover{
  background:transparent;
  color:var(--text);
}
.about-nav-button:active{
  opacity:.68;
}
.about-nav-button:focus-visible{
  outline:2px solid var(--text);
  outline-offset:4px;
}
@keyframes typewriter-blink{
  0%,48%{opacity:1}
  49%,100%{opacity:0}
}
.section{
  padding:30px 0 48px;
}
.section-head{
  display:flex;
  align-items:baseline;
  gap:18px;
  margin-bottom:26px;
}
.section-head span{
  color:var(--muted);
  font-size:var(--type-label);
  letter-spacing:var(--tracking-label);
}
.section-head h2{
  margin:0;
  font-size:var(--type-display);
  letter-spacing:var(--tracking-title);
  font-weight:600;
}
.upcoming-feature{
  margin-bottom:70px;
}
.subsection-title{
  margin:0 0 28px;
  color:var(--text);
  font-size:var(--type-heading);
  font-weight:600;
  line-height:1.2;
  letter-spacing:var(--tracking-title);
}
.published-title{margin-bottom:18px}
.upcoming-intro{
  display:flex;
  align-items:flex-end;
  margin-bottom:18px;
}
.upcoming-intro h4{
  margin:0;
  color:var(--upcoming-title);
  font-size:var(--type-subheading);
  line-height:1.2;
  letter-spacing:var(--tracking-title);
  font-weight:600;
}
.upcoming-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.trailer-player{
  position:relative;
  width:100%;
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:14px;
  background:#000;
}
.trailer-video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.trailer-play{display:none}
.js .trailer-play{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  border:0;
  background:rgba(0,0,0,.12);
  color:var(--text);
  font:inherit;
  font-size:var(--type-label);
  letter-spacing:var(--tracking-label);
  cursor:var(--cursor-hand);
  transition:opacity .25s ease,background .25s ease,visibility .25s ease;
}
.js .trailer-play:hover{background:rgba(0,0,0,.25)}
.js .trailer-play:focus-visible{outline:2px solid var(--text);outline-offset:-6px}
.play-mark{
  position:relative;
  width:76px;
  height:76px;
  border:1px solid rgba(255,255,255,.7);
  border-radius:50%;
  background:rgba(10,10,11,.56);
  backdrop-filter:blur(10px);
  transition:transform .2s ease,background .2s ease;
}
.play-mark::after{
  content:"";
  position:absolute;
  top:50%;
  left:52%;
  transform:translate(-40%,-50%);
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  border-left:14px solid #fff;
}
.trailer-play:hover .play-mark{transform:scale(1.06);background:rgba(10,10,11,.78)}
.trailer-player.is-playing .trailer-play{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
}
.upcoming-links{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:96px;
  align-self:auto;
  width:100%;
  gap:12px;
}
.upcoming-link{
  --link-surface:#141519;
  --link-raised:#27292e;
  --link-hover:#303238;
  --link-pressed:#141519;
  --link-highlight:rgba(255,255,255,.045);
  --link-shadow:rgba(0,0,0,.82);
  position:relative;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-height:96px;
  padding:13px 16px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.045);
  border-radius:12px;
  background:linear-gradient(145deg,var(--link-raised),var(--link-surface));
  box-shadow:
    -6px -6px 14px var(--link-highlight),
    7px 7px 16px var(--link-shadow),
    inset 1px 1px 0 rgba(255,255,255,.035);
  color:#fff;
  text-decoration:none;
  transition:color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;
}
.upcoming-link[data-link-key="steam_wishlist"]{
  --link-surface:#192b3a;
  --link-raised:#294b63;
  --link-hover:#315a76;
  --link-pressed:#192b3a;
  --link-highlight:rgba(102,192,244,.08);
  --link-shadow:rgba(0,5,10,.76);
}
.upcoming-link:not(.is-placeholder):hover{
  color:var(--upcoming-link-hover-text);
  background:linear-gradient(145deg,var(--link-hover),var(--link-surface));
  box-shadow:
    -8px -8px 17px var(--link-highlight),
    10px 10px 20px var(--link-shadow),
    inset 1px 1px 0 rgba(255,255,255,.055);
  transform:translateY(-3px);
}
.upcoming-link:not(.is-placeholder):active{
  transform:translateY(1px) scale(.98);
  background:var(--link-pressed);
  box-shadow:
    inset 5px 5px 10px rgba(0,0,0,.76),
    inset -4px -4px 9px rgba(255,255,255,.055);
}
.upcoming-link:not(.is-placeholder):focus-visible{outline:2px solid var(--text);outline-offset:3px}
.upcoming-link.is-placeholder{
  pointer-events:none;
  opacity:.45;
  box-shadow:inset 3px 3px 8px rgba(0,0,0,.66),inset -3px -3px 8px rgba(255,255,255,.035);
}
.upcoming-link:not(.is-placeholder) .upcoming-link-status{display:none}
.upcoming-link-arrow{
  position:absolute;
  top:14px;
  right:17px;
  font-size:18px;
  line-height:1;
}
.upcoming-link-logo{
  display:block;
  width:150px;
  height:42px;
  margin:0 0 5px;
  object-fit:contain;
  object-position:left center;
}
.upcoming-link-logo--steam{
  height:46px;
  margin-bottom:3px;
}
.upcoming-link-logo--steam + .upcoming-link-label{transform:translateY(2px)}
.upcoming-link-logo--wavedash{filter:invert(1)}
.upcoming-link-label{
  max-width:100%;
  font-size:var(--type-label);
  font-weight:600;
  line-height:1.2;
  letter-spacing:var(--tracking-label);
}
.upcoming-link-status{
  margin-top:9px;
  font-size:var(--type-label);
  line-height:1.2;
  letter-spacing:var(--tracking-label);
}
.card-gallery{
  position:relative;
  min-height:540px;
  padding-top:1px;
}
.card-stage{
  position:relative;
  height:500px;
  perspective:1400px;
  isolation:isolate;
}
.game-card-shell{
  --x:0px;
  --y:0px;
  --r:0deg;
  --draw-distance:54px;
  position:absolute;
  left:50%;
  bottom:40px;
  width:286px;
  height:438px;
  transform-origin:50% 94%;
  transform:translateX(-50%) translate(var(--x),var(--y)) rotate(var(--r));
}
.game-card-shell:nth-child(1){--x:-340px;--y:85px;--r:-18deg;z-index:1}
.game-card-shell:nth-child(2){--x:-170px;--y:24px;--r:-9deg;z-index:2}
.game-card-shell:nth-child(3){--x:0px;--y:0px;--r:0deg;z-index:5}
.game-card-shell:nth-child(4){--x:170px;--y:24px;--r:9deg;z-index:4}
.game-card-shell:nth-child(5){--x:340px;--y:85px;--r:18deg;z-index:3}
.game-card{
  --card-accent:#a79d89;
  --card-accent-rgb:167,157,137;
  --card-frame:#17110d;
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:16px;
  background:var(--card-frame);
  color:#1b1813;
  box-shadow:
    0 30px 70px rgba(0,0,0,.52),
    inset 0 1px 0 rgba(255,230,196,.12),
    inset 0 -2px 0 rgba(0,0,0,.72),
    inset 0 0 22px rgba(0,0,0,.22);
  transform:translateY(0);
  transition:transform .48s cubic-bezier(.2,.78,.2,1),filter .35s ease,opacity .35s ease;
  will-change:transform;
}
.game-card--five{--card-accent:#f1edd8;--card-accent-rgb:241,237,216}
.game-card--one{--r:-15deg;--card-accent:#77bec4;--card-accent-rgb:119,190,196}
.game-card--two{--r:-5deg;--card-accent:#b18855;--card-accent-rgb:177,136,85}
.game-card--three{--r:5deg;--card-accent:#748aa9;--card-accent-rgb:116,138,169}
.game-card--four{--r:15deg;--card-accent:#c67a32;--card-accent-rgb:198,122,50}
.game-card-shell:hover>.game-card:not(.is-active){transform:translateY(calc(-1 * var(--draw-distance)))}
.game-card.is-held-raised{transform:translateY(calc(-1 * var(--draw-distance)))}
body.card-in-motion .game-card-shell:not(.is-in-motion)>.game-card:not(.game-card-placeholder):not(.is-hover-releasing){transform:none;transition:none}
.card-trigger{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-rows:34px minmax(150px,1fr) 29px 82px 27px;
  gap:6px;
  width:100%;
  height:100%;
  padding:12px;
  border:0;
  background:var(--card-frame);
  color:#1b1813;
  font:inherit;
  text-align:left;
  cursor:var(--cursor-hand);
  box-shadow:
    inset 1px 1px 0 rgba(255,230,196,.055),
    inset -1px -1px 0 rgba(0,0,0,.62);
}
.card-trigger::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:-1;
  border:1px solid rgba(220,178,127,.13);
  border-radius:9px;
  pointer-events:none;
  box-shadow:
    0 1px 0 rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,225,183,.065),
    inset 0 -1px 0 rgba(0,0,0,.58),
    0 0 0 1px rgba(0,0,0,.2);
}
.card-trigger:focus-visible{outline:2px solid #f1e4c9;outline-offset:-6px}
.card-number{
  position:absolute;
  top:17px;
  right:17px;
  z-index:3;
  display:grid;
  place-items:center;
  min-width:25px;
  height:20px;
  padding:0 5px;
  border:1px solid rgba(45,38,28,.55);
  border-radius:999px;
  background:rgba(235,225,204,.9);
  color:#342d23;
  font-size:var(--type-micro);
  font-weight:700;
  letter-spacing:var(--tracking-label);
  box-shadow:0 1px 4px rgba(0,0,0,.28);
}
.card-cover{
  position:relative;
  z-index:3;
  min-height:0;
  overflow:hidden;
  border:0;
  border-radius:2px;
  background:#09090a;
  box-shadow:none;
}
.card-cover img,
.card-gameplay{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.card-cover img{
  filter:saturate(.88) contrast(1.04);
  transition:transform .55s cubic-bezier(.2,.78,.2,1),filter .35s ease;
}
.card-gameplay{display:none}
.game-card-shell:hover>.game-card:not(.is-active) .card-cover img{filter:saturate(1) contrast(1.03)}
body.card-in-motion .game-card-shell:not(.is-in-motion)>.game-card:not(.is-hover-releasing) .card-cover img{transition:none}
.card-caption{
  position:relative;
  grid-row:1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-width:0;
  padding:4px 43px 4px 9px;
  border:0;
  border-radius:4px 8px 8px 4px;
  background:linear-gradient(90deg,
    rgba(var(--card-accent-rgb),.56),
    rgba(var(--card-accent-rgb),.9) 50%,
    rgba(var(--card-accent-rgb),.56));
  box-shadow:0 1px 4px rgba(0,0,0,.34);
}
.card-caption strong{
  overflow:hidden;
  font-family:var(--font-title);
  font-size:var(--type-body);
  font-weight:700;
  line-height:1.25;
  letter-spacing:var(--tracking-title);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.card-caption>span{display:none}
.card-type{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:3px 8px;
  overflow:hidden;
  border:0;
  border-radius:3px;
  background:linear-gradient(90deg,
    rgba(var(--card-accent-rgb),.52),
    rgba(var(--card-accent-rgb),.86) 50%,
    rgba(var(--card-accent-rgb),.52));
  color:#282219;
  font-family:var(--font-body);
  font-size:var(--type-micro);
  font-weight:700;
  letter-spacing:normal;
  white-space:nowrap;
  box-shadow:none;
}
.card-type>span:first-child{overflow:hidden;text-overflow:ellipsis}
.card-type>span:last-child{color:rgba(43,35,25,.62);font-size:inherit}
.card-rules{
  display:-webkit-box;
  padding:8px 9px;
  overflow:hidden;
  border:0;
  border-radius:2px;
  background:linear-gradient(90deg,
    rgba(188,176,155,.9),
    rgba(230,222,204,.98) 50%,
    rgba(188,176,155,.9));
  color:#312b22;
  font-family:var(--font-body);
  font-size:var(--type-micro);
  line-height:1.42;
  white-space:pre-line;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  box-shadow:inset 0 0 13px rgba(75,62,40,.12);
}
.card-open,
.playtest-button{
  position:relative;
  display:flex;
  align-items:center;
  padding:2px 4px 0;
  border:0;
  color:#fff;
  text-decoration:none;
  font-size:var(--type-micro);
  letter-spacing:var(--tracking-label);
  text-transform:uppercase;
}
.card-details{display:none}
.game-card-placeholder{
  visibility:hidden!important;
  pointer-events:none!important;
  transition:none!important;
  transform:none!important;
}
.game-card-placeholder.is-raised{transform:translateY(calc(-1 * var(--draw-distance)))!important}
.deck-mobile-hint{display:none}
body.about-dialog-open,
body.dialog-open,
body.game-dialog-open{overflow:hidden}
.about-dialog{
  width:100%;
  max-width:none;
  height:100%;
  max-height:none;
  margin:0;
  padding:24px;
  border:0;
  background:transparent;
  color:#1d1c18;
  cursor:var(--cursor-card-detail);
}
.about-dialog[open]{display:grid;place-items:center}
.about-dialog::backdrop{
  background:rgba(3,5,5,.72);
  backdrop-filter:blur(5px);
}
.about-paper{
  position:relative;
  display:flex;
  flex-direction:column;
  width:min(620px,calc(100% - 10px));
  min-height:min(520px,calc(100vh - 48px));
  max-height:calc(100vh - 48px);
  margin:0;
  padding:64px 58px 54px;
  overflow:auto;
  border:0;
  background:transparent;
  box-shadow:none;
  filter:
    drop-shadow(1px 0 0 #171716)
    drop-shadow(-1px 0 0 #171716)
    drop-shadow(0 1px 0 #171716)
    drop-shadow(0 -1px 0 #171716)
    drop-shadow(0 25px 34px rgba(0,0,0,.48))
    drop-shadow(0 3px 5px rgba(0,0,0,.3));
  transform:rotate(-.4deg);
}
.about-paper::before,
.about-paper::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  -webkit-mask:url("assets/ui/paper.png") center/100% 100% no-repeat;
  mask:url("assets/ui/paper.png") center/100% 100% no-repeat;
}
.about-paper::before{
  background-color:#d9d8d2;
  background-image:
    linear-gradient(91deg,transparent 47%,rgba(40,40,38,.08) 49.4%,rgba(255,255,255,.5) 50.2%,transparent 53%),
    linear-gradient(7deg,transparent 46%,rgba(40,40,38,.07) 49.3%,rgba(255,255,255,.42) 50.4%,transparent 54%),
    repeating-linear-gradient(11deg,rgba(35,35,33,.018) 0,rgba(35,35,33,.018) 1px,transparent 1px,transparent 6px);
}
.about-paper::after{
  opacity:.08;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='paper'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.55' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23paper)' opacity='.28'/%3E%3C/svg%3E");
  mix-blend-mode:multiply;
}
.about-copy{
  position:relative;
  z-index:1;
  flex:1;
  margin:0;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  color:#252522;
  font:600 1.08rem/1.72 "Segoe Print","Comic Sans MS",STKaiti,KaiTi,"Bradley Hand","Kaiti SC",cursive;
  letter-spacing:.015em;
  text-shadow:0 0 .45px rgba(25,25,23,.36);
  transform:rotate(.25deg);
}
.about-dialog-close{
  position:absolute;
  top:16px;
  right:17px;
  z-index:2;
  display:grid;
  width:34px;
  height:34px;
  padding:0;
  place-items:center;
  border:0;
  border-radius:50%;
  background:transparent;
  color:#32322f;
  font:400 1.5rem/1 var(--font-body);
  transform:rotate(5deg);
  transition:background-color .16s ease,color .16s ease;
}
.about-dialog-close:hover{color:#111}
.about-dialog-close:focus-visible{outline:0;text-decoration:underline;text-underline-offset:3px}
.project-dialog{
  box-sizing:border-box;
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:32px;
  border:0;
  background:rgba(8,8,9,.76);
  color:var(--text);
  overflow:auto;
  backdrop-filter:blur(9px);
  cursor:var(--cursor-card-detail);
}
.project-dialog[open]{display:block}
.project-dialog::backdrop{background:transparent}
.active-card-mount{
  display:grid;
  place-items:safe center;
  width:100%;
  min-height:100%;
}
.game-card.is-active{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  grid-template-rows:395px 39px;
  width:286px;
  height:438px;
  overflow:visible;
  border:2px solid #fff;
  border-radius:16px;
  background:var(--card-frame);
  color:var(--text);
  box-shadow:0 44px 120px rgba(0,0,0,.68);
  transform-origin:center;
  transform:none;
  transition:none;
  zoom:1.5;
}
.game-card.is-active .card-trigger{
  display:grid;
  grid-template-rows:34px 214px 29px 82px;
  gap:6px;
  width:100%;
  height:100%;
  aspect-ratio:auto;
  padding:12px 12px 6px;
  overflow:hidden;
  border-radius:13px 13px 0 0;
  background:var(--card-frame);
  cursor:var(--cursor-card-detail);
}
.game-card.is-active .card-trigger::before{display:none}
.game-card.is-active::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:2;
  border:1px solid rgba(220,178,127,.13);
  border-radius:9px;
  pointer-events:none;
  box-shadow:
    0 1px 0 rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,225,183,.065),
    inset 0 -1px 0 rgba(0,0,0,.58),
    0 0 0 1px rgba(0,0,0,.2);
}
.game-card,
.card-trigger,
.game-card.is-active,
.game-card.is-active .card-trigger{
  background-color:var(--card-frame);
  background-image:
    radial-gradient(ellipse at 50% -12%,rgba(150,104,57,.28),transparent 48%),
    linear-gradient(135deg,rgba(255,224,174,.045),transparent 36%,rgba(0,0,0,.18)),
    repeating-linear-gradient(112deg,rgba(255,232,199,.018) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(22deg,rgba(0,0,0,.055) 0 1px,transparent 1px 5px),
    radial-gradient(circle at 18% 12%,rgba(238,202,148,.1) 0 1px,transparent 1.5px),
    radial-gradient(circle at 72% 64%,rgba(112,70,36,.16) 0 1px,transparent 1.5px);
  background-size:auto,auto,auto,auto,17px 19px,23px 29px;
}
.game-card.is-active .card-number{
  position:absolute;
  top:17px;
  right:17px;
  left:auto;
  bottom:auto;
  z-index:3;
  width:auto;
  height:20px;
  padding:0 5px;
  border:1px solid rgba(45,38,28,.55);
  border-radius:999px;
  background:rgba(235,225,204,.9);
  color:#342d23;
  box-shadow:0 1px 4px rgba(0,0,0,.28);
}
.game-card.is-active .card-cover{
  position:relative;
  inset:auto;
  aspect-ratio:auto;
  border:0;
}
.game-card.is-active .card-caption{display:flex}
.game-card.is-active .card-type{display:flex}
.game-card.is-active .card-type>span:first-child{
  overflow-x:auto;
  overflow-y:hidden;
  overscroll-behavior-inline:contain;
  scrollbar-width:none;
  text-overflow:clip;
  touch-action:pan-x;
}
.game-card.is-active .card-type>span:first-child::-webkit-scrollbar{display:none}
.game-card.is-active .card-open{display:none}
.game-card.is-active .card-rules{
  display:block;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-width:thin;
  scrollbar-color:rgba(49,43,34,.5) transparent;
  touch-action:pan-y;
  -webkit-box-orient:initial;
  -webkit-line-clamp:unset;
}
.game-card.is-active .card-rules::-webkit-scrollbar{width:5px}
.game-card.is-active .card-rules::-webkit-scrollbar-thumb{
  border-radius:999px;
  background:rgba(49,43,34,.5);
}
.game-card.is-active .card-cover img{display:none}
.game-card.is-active .card-gameplay{
  display:block;
  filter:saturate(.88) contrast(1.04);
}
.game-card.is-active .card-details{
  position:relative;
  z-index:3;
  display:block;
  min-width:0;
  overflow:auto;
  border-radius:0 0 13px 13px;
}
.card-details-inner{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:0 12px 12px;
}
.game-card.is-active>.card-close{right:-54px}
.card-close{
  position:absolute;
  top:16px;
  right:16px;
  z-index:3;
  display:none;
  place-items:center;
  width:42px;
  height:42px;
  padding:0;
  border:1px solid rgba(255,255,255,.15);
  border-radius:50%;
  background:rgba(11,11,12,.64);
  color:#fff;
  cursor:var(--cursor-hand);
  backdrop-filter:blur(10px);
  transition:background .2s ease,transform .2s ease;
}
.game-card.is-active>.card-close{z-index:4;display:grid}
.game-card.is-active>.card-close{
  top:10.667px;
  right:-36px;
  width:28px;
  height:28px;
}
.game-card.is-active>.card-close span,
.game-card.is-active>.card-close span::after{width:9.333px}
.card-close:hover{background:#f2f2ee;color:#0a0a0b;transform:rotate(4deg)}
.card-close:focus-visible{outline:2px solid #fff;outline-offset:3px}
.card-close span,
.card-close span::after{
  display:block;
  width:14px;
  height:1px;
  background:currentColor;
  transform:rotate(45deg);
}
.card-close span::after{content:"";transform:rotate(90deg)}
.playtest-button{
  min-height:27px;
  transition:background .2s ease,color .2s ease;
}
.playtest-button:hover{background:rgba(255,255,255,.035);color:#fff}
.playtest-button:focus-visible{outline:2px solid #f1e4c9;outline-offset:2px}
.playtest-button[aria-disabled="true"]{opacity:.5;cursor:default;pointer-events:none}
.game-player-dialog{
  isolation:isolate;
  width:100vw;
  max-width:none;
  height:100dvh;
  max-height:none;
  margin:0;
  padding:16px;
  border:0;
  background:#1a1919;
  color:#f5f5f2;
  overflow:auto;
  cursor:var(--cursor-card-detail);
}
.game-player-dialog[open]{display:grid;place-items:center}
.game-player-dialog::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background-image:
    conic-gradient(from 210deg at 34% 53%,transparent 0 66deg,rgba(158,222,214,.42) 66deg 127deg,transparent 127deg),
    conic-gradient(from 65deg at 73% 48%,transparent 0 73deg,rgba(56,159,173,.2) 73deg 131deg,transparent 131deg),
    linear-gradient(180deg,#6abdc0,#79c6c7);
  filter:grayscale(1);
  pointer-events:none;
}
.game-player-dialog::after{
  content:"";
  position:fixed;
  top:11%;
  right:3%;
  z-index:0;
  width:min(35vw,420px);
  aspect-ratio:3.15;
  background:#f7fffb;
  clip-path:polygon(0 69%,8% 56%,17% 55%,22% 35%,32% 30%,39% 8%,48% 10%,56% 33%,68% 30%,77% 48%,90% 48%,100% 68%,94% 84%,10% 88%);
  opacity:.72;
  pointer-events:none;
}
.game-player-dialog::backdrop{background:transparent}
.game-player-stage{
  --game-player-panel-width:988px;
  position:relative;
  z-index:1;
  width:min(calc(100vw - 32px),var(--game-player-panel-width));
}
.game-player-panel{
  --card-accent:#a79d89;
  --card-accent-rgb:167,157,137;
  --card-frame:#17110d;
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  width:100%;
  overflow:hidden;
  border:2px solid #fff;
  border-radius:16px;
  background-color:var(--card-frame);
  background-image:
    radial-gradient(ellipse at 50% -12%,rgba(150,104,57,.28),transparent 48%),
    linear-gradient(135deg,rgba(255,224,174,.045),transparent 36%,rgba(0,0,0,.18)),
    repeating-linear-gradient(112deg,rgba(255,232,199,.018) 0 1px,transparent 1px 4px),
    repeating-linear-gradient(22deg,rgba(0,0,0,.055) 0 1px,transparent 1px 5px),
    radial-gradient(circle at 18% 12%,rgba(238,202,148,.1) 0 1px,transparent 1.5px),
    radial-gradient(circle at 72% 64%,rgba(112,70,36,.16) 0 1px,transparent 1.5px);
  background-size:auto,auto,auto,auto,17px 19px,23px 29px;
  box-shadow:
    0 40px 110px rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,230,196,.12),
    inset 0 -2px 0 rgba(0,0,0,.72),
    inset 0 0 22px rgba(0,0,0,.22);
  animation:game-player-in .34s cubic-bezier(.2,.78,.2,1) both;
  transform-origin:center;
}
.game-player-panel::before{
  content:"";
  position:absolute;
  inset:7px;
  z-index:1;
  border:1px solid rgba(220,178,127,.13);
  border-radius:9px;
  pointer-events:none;
  box-shadow:
    0 1px 0 rgba(0,0,0,.72),
    inset 0 1px 0 rgba(255,225,183,.065),
    inset 0 -1px 0 rgba(0,0,0,.58),
    0 0 0 1px rgba(0,0,0,.2);
}
.game-player-toolbar{
  position:relative;
  z-index:2;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:38px;
  margin:12px 12px 6px;
  padding:5px 6px 5px 12px;
  border:0;
  border-radius:4px 8px 8px 4px;
  background:linear-gradient(90deg,
    rgba(var(--card-accent-rgb),.56),
    rgba(var(--card-accent-rgb),.9) 50%,
    rgba(var(--card-accent-rgb),.56));
  box-shadow:0 1px 4px rgba(0,0,0,.34);
}
.game-player-title{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  color:#282219;
  font-family:var(--font-title);
  font-size:var(--type-small);
  font-weight:700;
  letter-spacing:var(--tracking-title);
  text-overflow:ellipsis;
  white-space:nowrap;
}
.game-escape-hint{
  flex:0 0 auto;
  margin:0 10px;
  color:#fff;
  font-size:var(--type-micro);
  font-weight:700;
  letter-spacing:var(--tracking-label);
}
.game-player-actions{display:flex;align-items:center;gap:6px}
.game-fullscreen-button,
.game-player-close{
  display:flex;
  align-items:center;
  justify-content:center;
  height:28px;
  border:0;
  background:transparent;
  color:#fff;
  font:inherit;
  transition:color .2s ease;
}
.game-fullscreen-button{
  width:32px;
  padding:0;
}
.game-player-close{
  width:32px;
  padding:0;
}
.game-fullscreen-button:hover,
.game-player-close:hover{border:0;background:transparent;color:#fff}
.game-fullscreen-button:focus-visible,
.game-player-close:focus-visible{outline:2px solid #fff;outline-offset:2px}
.fullscreen-icon{
  width:14px;
  height:14px;
  background:
    linear-gradient(currentColor,currentColor) left top / 5px 1px no-repeat,
    linear-gradient(currentColor,currentColor) left top / 1px 5px no-repeat,
    linear-gradient(currentColor,currentColor) right top / 5px 1px no-repeat,
    linear-gradient(currentColor,currentColor) right top / 1px 5px no-repeat,
    linear-gradient(currentColor,currentColor) left bottom / 5px 1px no-repeat,
    linear-gradient(currentColor,currentColor) left bottom / 1px 5px no-repeat,
    linear-gradient(currentColor,currentColor) right bottom / 5px 1px no-repeat,
    linear-gradient(currentColor,currentColor) right bottom / 1px 5px no-repeat;
  transition:transform .18s ease;
}
.game-player-close span,
.game-player-close span::after{
  display:block;
  width:13px;
  height:1px;
  background:currentColor;
  transform:rotate(45deg);
  transition:transform .18s ease;
}
.game-player-close span::after{content:"";transform:rotate(90deg)}
.game-fullscreen-button:hover .fullscreen-icon{transform:scale(1.2)}
.game-player-close:hover>span{transform:rotate(45deg) scale(1.2)}
.game-frame{
  position:relative;
  z-index:2;
  width:auto;
  margin:0 12px 12px;
  overflow:hidden;
  aspect-ratio:var(--game-aspect-ratio,16 / 9);
  border-radius:2px;
  background:#000;
  box-shadow:0 1px 0 rgba(255,230,196,.08),0 8px 24px rgba(0,0,0,.34);
}
.game-frame iframe{display:block;width:100%;height:100%;border:0;background:#000;cursor:var(--cursor-card-detail)}
.game-player-footer{
  position:relative;
  z-index:2;
  display:flex;
  justify-content:flex-start;
  padding:10px 2px 0;
}
.game-wavedash-link{
  display:inline-flex;
  align-items:baseline;
  gap:.5em;
  color:#fff;
  text-decoration:none;
  font-family:var(--font-body);
  font-size:var(--type-body);
  font-weight:700;
  line-height:1.2;
  letter-spacing:normal;
  text-rendering:geometricPrecision;
  transition:transform .2s ease;
}
.game-wavedash-link[hidden]{display:none}
.game-wavedash-link>span:first-child{
  text-decoration:underline;
  text-decoration-color:#fff;
  text-decoration-thickness:1.5px;
  text-underline-offset:4px;
}
.game-wavedash-arrow{
  color:#fff;
  font-family:var(--font-body);
  font-size:1.08em;
  font-weight:700;
  transition:transform .2s ease;
}
.game-wavedash-link:hover .game-wavedash-arrow{transform:translate(2px,-2px)}
.game-wavedash-link:focus-visible{outline:2px solid #fff;outline-offset:3px}
.game-wavedash-link.is-disabled{color:#fff;pointer-events:none}
@keyframes game-player-in{
  from{opacity:.35;transform:scale(.94)}
  to{opacity:1;transform:scale(1)}
}
.game-player-panel:fullscreen,
.game-player-panel:-webkit-full-screen{
  width:100vw;
  height:100vh;
  border:0;
  border-radius:0;
}
.game-player-panel:fullscreen .game-player-toolbar,
.game-player-panel:-webkit-full-screen .game-player-toolbar{margin:8px 8px 6px}
.game-player-panel:fullscreen .game-frame,
.game-player-panel:-webkit-full-screen .game-frame{flex:1;min-height:0;margin:0;aspect-ratio:auto;border-radius:0}
.footer{
  padding:34px 0 48px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--footer-text);
  font-size:var(--type-label);
  border-top:1px solid var(--line);
}
.platform-links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  gap:16px;
  margin-top:156px;
}
.platform-link{
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  color:var(--platform-ink);
  border:1px solid rgba(255,255,255,.045);
  border-radius:18px;
  background:var(--platform-bg);
  box-shadow:
    -6px -6px 14px rgba(255,255,255,.065),
    7px 7px 16px rgba(0,0,0,.78),
    inset 1px 1px 0 rgba(255,255,255,.035);
  padding:0;
  font:inherit;
  text-decoration:none;
  transition:color .2s ease,background .2s ease,box-shadow .2s ease,transform .2s ease;
}
.platform-link svg{
  width:34px;
  height:34px;
  fill:currentColor;
}
.platform-link:not(.is-placeholder):not(:disabled):hover{
  color:var(--text);
  background:var(--platform-hover-bg);
  box-shadow:
    -8px -8px 17px rgba(255,255,255,.085),
    10px 10px 20px rgba(0,0,0,.82),
    inset 1px 1px 0 rgba(255,255,255,.055);
  transform:translateY(-3px);
}
.platform-link:not(.is-placeholder):not(:disabled):active{
  transform:translateY(1px) scale(.98);
  background:var(--platform-active-bg);
  box-shadow:
    inset 5px 5px 10px rgba(0,0,0,.76),
    inset -4px -4px 9px rgba(255,255,255,.055);
}
.platform-link:not(.is-placeholder):not(:disabled):focus-visible{outline:2px solid var(--text);outline-offset:3px}
.platform-link.is-placeholder{
  pointer-events:none;
  opacity:.45;
  box-shadow:inset 3px 3px 8px rgba(0,0,0,.66),inset -3px -3px 8px rgba(255,255,255,.035);
}
.platform-link:disabled{
  opacity:.42;
  cursor:not-allowed;
  box-shadow:inset 3px 3px 8px rgba(0,0,0,.66),inset -3px -3px 8px rgba(255,255,255,.035);
}
.platform-brand-icon{
  display:block;
  width:38px;
  height:38px;
  object-fit:contain;
  filter:var(--platform-icon-filter);
}
[data-link-key="platform_steam"] .platform-brand-icon{width:45px;height:45px}
[data-link-key="platform_x"] .platform-brand-icon{width:44px;height:44px}
[data-link-key="platform_youtube"] .platform-brand-icon{width:44px;height:44px}
.platform-email-copy svg{
  grid-area:1 / 1;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:opacity .14s ease,transform .14s ease;
}
.platform-email-copy .platform-brand-icon{grid-area:1 / 1}
.platform-check-icon{opacity:0;transform:scale(.65)}
.platform-email-copy .platform-check-icon{width:42px;height:42px}
.platform-copy-sheet--front{fill:var(--platform-copy-front)}
.platform-copy-check{stroke-width:2.2}
.platform-email-copy.is-copied{color:var(--platform-copied)}
.platform-email-copy.is-copied .platform-email-icon{opacity:0;transform:scale(.65)}
.platform-email-copy.is-copied .platform-check-icon{opacity:1;transform:scale(1)}
.platform-copy-status{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  white-space:nowrap;
}
:root[data-theme="light"] .platform-link{
  border-color:rgba(255,255,255,.1);
  box-shadow:-5px -5px 13px rgba(255,255,255,.15),6px 6px 14px rgba(15,50,29,.35),inset 1px 1px 0 rgba(255,255,255,.12);
}
:root[data-theme="light"] .platform-link:not(.is-placeholder):not(:disabled):hover{
  box-shadow:-7px -7px 16px rgba(255,255,255,.18),8px 8px 18px rgba(15,50,29,.4),inset 1px 1px 0 rgba(255,255,255,.15);
}
:root[data-theme="light"] .platform-link:not(.is-placeholder):not(:disabled):active,
:root[data-theme="light"] .platform-link.is-placeholder,
:root[data-theme="light"] .platform-link:disabled{
  box-shadow:inset 3px 3px 7px rgba(0,0,0,.4),inset -3px -3px 8px rgba(255,255,255,.08);
}
@media(max-width:980px) and (min-width:761px){
  .card-gallery{min-height:510px}
  .card-stage{height:480px}
  .game-card-shell{width:248px;height:380px;--draw-distance:50px}
  .game-card-shell:nth-child(1){--x:-280px;--y:70px}
  .game-card-shell:nth-child(2){--x:-140px;--y:20px}
  .game-card-shell:nth-child(3){--x:0px;--y:0px}
  .game-card-shell:nth-child(4){--x:140px;--y:20px}
  .game-card-shell:nth-child(5){--x:280px;--y:70px}
}
@media(max-width:860px){
  .shell{width:min(100% - 32px,1180px)}
  .nav-controls{gap:12px}
  .hero{min-height:auto;padding:32px 0 20px}
  .section{padding:28px 0 44px}
  .upcoming-feature{margin-bottom:52px}
  .footer{gap:18px;flex-direction:column}
}
@media(max-width:760px){
  .platform-links{margin-top:128px}
  .upcoming-layout{grid-template-columns:1fr}
  .upcoming-links{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:none}
  .upcoming-link{min-height:96px;padding:13px 16px}
  .card-gallery{min-height:0}
  .card-stage{
    display:flex;
    gap:14px;
    height:auto;
    margin-right:calc(50% - 50vw);
    padding:10px max(16px,calc(50vw - 50%)) 34px 2px;
    overflow-x:auto;
    overscroll-behavior-x:contain;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    perspective:none;
  }
  .game-card-shell,
  .game-card-shell:hover{
    position:relative;
    left:auto;
    bottom:auto;
    flex:0 0 min(78vw,300px);
    width:auto;
    height:auto;
    aspect-ratio:286 / 438;
    z-index:auto;
    transform:none;
    scroll-snap-align:start;
  }
  .game-card,
  .game-card-shell:hover>.game-card:not(.is-active),
  .game-card.is-held-raised{transform:none}
  .game-card-placeholder.is-raised{transform:none!important}
  .card-stage::-webkit-scrollbar{display:none}
  .game-card{transition:transform .28s ease;box-shadow:none}
  .card-cover img,
  .card-gameplay{object-fit:contain}
  .game-card-placeholder{transform:none!important}
  .deck-mobile-hint{
    display:block;
    margin:4px 0 0;
    color:var(--deck-hint);
    font-size:var(--type-label);
    letter-spacing:normal;
  }
  .project-dialog{padding:12px}
  .game-card.is-active{
    grid-template-columns:1fr;
    grid-template-rows:395px 39px;
    width:286px;
    height:438px;
    overflow:visible;
    zoom:1;
  }
  .game-card.is-active .card-trigger{
    border-right:0;
  }
  .game-card.is-active .card-details{overflow:visible}
  .game-card.is-active>.card-close{
    top:10px;
    right:-34px;
    width:32px;
    height:32px;
  }
  .game-card.is-active>.card-close span,
  .game-card.is-active>.card-close span::after{width:14px}
  .card-details-inner{padding:0 12px 12px}
}
@media(max-width:357px){
  .game-card.is-active{zoom:.82}
}
@media(max-width:520px){
  .brand{font-size:1.125rem}
  .nav-controls{gap:6px;flex:0 0 auto}
  .display-controls{gap:2px;flex:0 0 auto}
  .language-toggle{min-height:44px;padding:10px 4px;touch-action:manipulation}
  .theme-toggle{width:44px;height:44px;flex:0 0 44px;touch-action:manipulation}
  .about-nav-button{min-height:44px;padding:6px 0}
  .about-dialog{padding:12px}
  .about-paper{
    min-height:min(460px,calc(100vh - 24px));
    max-height:calc(100vh - 24px);
    padding:52px 28px 36px;
  }
  .about-copy{line-height:1.7}
  .trailer-player{border-radius:14px}
  .upcoming-links{grid-template-columns:1fr}
  .upcoming-link{min-height:92px}
  .play-mark{width:62px;height:62px}
  .game-escape-hint{margin:0 6px}
}
@media(max-width:360px){
  .brand{font-size:1rem}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .page-background .vanta-canvas{display:none!important}
  .typewriter-caret{animation:none}
  .about-nav-button{transition:none}
  .platform-link,.upcoming-link{transition:none}
  .game-card,
  .card-cover img{transition-duration:.01ms!important}
  .game-player-panel{animation:none}
}
