/* Fancy Crab Studios site. One centered column, the game's title-screen hierarchy. */
@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@600;700&display=swap');

:root{
  --bg:#001429;
  --line:#12305e;
  --fg:#ffffff;
  --text:#c9d6ff;
  --muted:#8fa6d6;
  --cyan:#5ee6ff;
  --purple:#6b28cf;
  --purple-hover:#8140f0;
  --purple-edge:#3a1877;
  --purple-dim:#2f0c60;
  --ink:#120a2c;
  --display:'Luckiest Guy','Nunito',system-ui,sans-serif;
  --body:'Nunito',system-ui,sans-serif;
  color-scheme:dark;
}
@font-face{font-family:'Luckiest Guy';src:url(LuckiestGuy-Regular.ttf) format('truetype');font-weight:400;font-style:normal;font-display:swap}

*{box-sizing:border-box}
html,body{margin:0}
body{min-height:100vh;background:var(--bg);color:var(--fg);font-family:var(--body);font-weight:600;-webkit-font-smoothing:antialiased}
img{max-width:100%}
body::before{content:'';position:fixed;inset:0;z-index:-1;background:var(--bg) url(bg-pattern.svg) center / 36px 36px repeat;transform-origin:center;animation:breathe 16s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
body::after{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 85% 75% at 50% 40%,rgba(0,20,41,0) 0%,rgba(0,8,20,0.32) 100%)}
a:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}

.display{font-family:var(--display);text-transform:uppercase;letter-spacing:0.02em;line-height:1;color:var(--fg)}
.outlined{-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink)}

.screen{min-height:100vh;width:100%;max-width:1120px;margin:0 auto;padding-left:max(24px,env(safe-area-inset-left,0px));padding-right:max(24px,env(safe-area-inset-right,0px));padding-block:20px 40px;display:flex;flex-direction:column;align-items:center}

/* Header */
.corners{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px}
.mark{display:block;text-decoration:none}
.mark img{height:46px;width:auto;display:block}
.topnav{display:flex;gap:22px;font-family:var(--display);font-size:17px;letter-spacing:0.02em;text-transform:uppercase}
.topnav a{color:var(--fg);text-decoration:none;text-shadow:2px 2px 0 var(--ink);padding:8px 0}
.topnav a:hover,.topnav a[aria-current]{color:var(--cyan)}

/* Home stage */
.stage{flex:1;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;padding-block:36px 48px}
.logo-wrap{margin:0;width:100%;display:flex;justify-content:center}
.logo{width:100%;max-width:720px;height:auto;display:block;filter:drop-shadow(0 16px 30px rgba(0,0,0,0.6))}
.tagline{margin:26px 0 0;max-width:46ch;text-align:center;font-size:21px;line-height:1.5;color:var(--text)}
.release{margin:12px 0 0;text-align:center;font-family:var(--display);font-size:22px;letter-spacing:0.04em;text-transform:uppercase;color:var(--cyan);text-shadow:2px 2px 0 var(--ink)}

.steam{width:100%;max-width:646px;margin-top:30px}
.steam-box{width:100%;height:190px;overflow:hidden;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,0.5)}
.steam iframe{display:block;width:646px;height:190px;border:0;border-radius:8px;background:#1b2838;transform-origin:top left}
.steam>a{display:block;width:100%;height:190px}

.menu{width:100%;max-width:646px;margin-top:14px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.btn{display:flex;align-items:center;justify-content:center;min-height:56px;padding:0 24px;border-radius:8px;background:var(--purple);color:var(--fg);text-decoration:none;font-family:var(--display);font-size:20px;letter-spacing:0.03em;text-transform:uppercase;text-shadow:2px 2px 0 var(--ink);box-shadow:0 6px 0 var(--purple-edge);transition:transform .08s ease,box-shadow .08s ease,background .12s ease}
.btn:hover{background:var(--purple-hover);transform:translateY(3px);box-shadow:0 3px 0 var(--purple-edge)}
.btn-play{grid-column:span 2;min-height:78px;font-size:32px;-webkit-text-stroke:1px var(--ink);paint-order:stroke fill;text-shadow:3px 3px 0 var(--ink)}

/* Games page */
.intro{width:100%;max-width:720px;margin-top:40px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.intro h1{font-size:56px;margin:0;text-wrap:balance}
.intro p{margin:0;font-size:18px;line-height:1.5;color:var(--text);max-width:52ch}

.grid{width:100%;margin-top:40px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}
.game{display:flex;flex-direction:column;min-width:0;text-decoration:none;color:var(--fg);transition:transform .12s ease}
.game:hover{transform:translateY(-6px)}
.game.featured{grid-column:span 2;grid-row:span 2}
.cover{position:relative;aspect-ratio:63/50;border-radius:10px 10px 0 0;overflow:hidden;background:var(--purple-dim)}
.game.featured .cover{aspect-ratio:auto;flex:1;min-height:280px}
.cover img{width:100%;height:100%;object-fit:cover;display:block}
.cover .fallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#4a1f95,#2d0f6e)}
.cover .fallback img{width:38%;height:auto;opacity:0.55}
.cover img.art+.fallback{display:none}
.cover img.art.missing{display:none}
.cover img.art.missing+.fallback{display:flex}
.bar{display:flex;align-items:center;justify-content:center;min-height:62px;padding:12px 16px;border-radius:0 0 8px 8px;background:var(--purple);box-shadow:0 6px 0 var(--purple-edge);text-align:center}
.bar span{font-family:var(--display);font-size:24px;line-height:1;letter-spacing:0.02em;text-transform:uppercase;text-shadow:2px 2px 0 var(--ink)}
.game.featured .bar span{font-size:30px}
.game.featured .blurb{font-size:17px}
.blurb{margin:18px 0 0;font-size:15px;line-height:1.5;color:var(--text)}
.meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.meta span{padding:5px 10px;border-radius:6px;background:var(--purple-dim);font-size:12px;color:var(--text)}
.meta .wip{background:#153a6b;color:var(--cyan)}

.more{margin-top:44px;display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

/* Footer */
.studio{width:100%;margin-top:56px;padding-top:28px;border-top:2px solid var(--line);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 24px;font-size:14px;color:var(--muted)}
.stage+.studio{margin-top:0}
.studio-left{display:flex;align-items:center;gap:16px}
.studio-left img{height:56px;width:auto;display:block}
.studio-left span{display:block}
.social{display:flex;flex-wrap:wrap;gap:10px}
.social a{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:8px;background:var(--purple);color:var(--fg);box-shadow:0 4px 0 var(--purple-edge);transition:transform .08s ease,box-shadow .08s ease,background .12s ease}
.social a:hover{background:var(--purple-hover);transform:translateY(2px);box-shadow:0 2px 0 var(--purple-edge)}
.social svg{width:22px;height:22px}

@media (max-width:900px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .game.featured{grid-row:span 1}
  .game.featured .cover{aspect-ratio:16/9;flex:none;min-height:0}
}
@media (max-width:760px){
  .corners{flex-direction:column;align-items:flex-start;gap:8px}
  .mark img{height:40px}
  .tagline{font-size:18px}
  .btn-play{font-size:28px;min-height:70px}
  .intro h1{font-size:42px}
}
@media (max-width:560px){
  .grid{grid-template-columns:repeat(1,minmax(0,1fr))}
  .game.featured{grid-column:span 1}
  .game.featured .cover{aspect-ratio:63/50;flex:none;min-height:0}
  .game.featured .bar span{font-size:24px}
}
@media (max-width:420px){
  .menu{grid-template-columns:repeat(1,minmax(0,1fr))}
  .btn-play{grid-column:span 1}
}
@media (prefers-reduced-motion:reduce){
  body::before{animation:none}
  .btn,.social a,.game{transition:none}
}
