@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,450;9..144,560&family=IBM+Plex+Sans:wght@400;500&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --bg-deep:   #170f0a;
  --bg-mid:    #2a1810;
  --panel-bg:  rgba(23,15,10,0.74);
  --ember-bright:#f2a154;
  --ember-mid: #cf7a34;
  --text-primary:#f4e9d8;
  --text-muted:  #b8a58e;
  --hairline: rgba(244,233,216,0.14);
}

*{ box-sizing:border-box; }
html, body{ height:100%; }
body{
  margin:0;
  background:var(--bg-deep);
  color:var(--text-primary);
  font-family:'IBM Plex Sans', sans-serif;
  overflow:hidden;
}

body::after{
  content:'';
  position:fixed; inset:0; z-index:1; pointer-events:none;
  opacity:.05; mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

canvas#game{
  position:fixed;
  inset:0;
  width:100vw;
  height:100vh;
  z-index:0;
  display:block;
}

header.navbar{
  position:relative;
  z-index:2;
  height:100vh;
  display:grid;
  grid-template-columns:repeat(2, 54vmin);
  grid-template-rows:auto 1fr;
  grid-template-areas:
    "nav  nav"
    "text pic";
  column-gap:4rem;
  align-items:center;
  justify-content:space-between;
  padding:1.5rem 2rem;
  font-family:'IBM Plex Mono', monospace;
}

header.navbar nav{
  grid-area:nav;
  justify-self:end;
  display:flex;
  gap:2rem;
  font-size:.78rem;
  letter-spacing:.08em;
  background:var(--panel-bg);
  backdrop-filter:blur(18px) saturate(120%);
  -webkit-backdrop-filter:blur(18px) saturate(120%);
  border-radius:6px;
  padding:.7rem 1.4rem;
}

header.navbar nav a{
  color:var(--text-muted);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:color .2s ease, border-color .2s ease;
}

header.navbar nav a:hover, header.navbar nav a:focus-visible{
  color:var(--ember-bright);
  border-color:var(--ember-mid);
}

div.text-block{
  grid-area:text;
  display:flex;
  flex-direction:column;
  width:100%;
  container-type:inline-size;
}

div.paragraph{
  position:relative;
  z-index:1;
  width:100%;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  background:var(--panel-bg);
  backdrop-filter:blur(18px) saturate(120%);
  -webkit-backdrop-filter:blur(18px) saturate(120%);
  border-radius:6px;
  padding:2.25rem 2rem 2.5rem;
}

div.paragraph h1{
  margin-bottom:2rem;
}

h1{
  font-family:'Fraunces', serif;
  font-weight:560;
  font-size:clamp(2.2rem, 7.5cqw, 3.6rem);
  line-height:1.05;
  margin:0;
  color:var(--text-primary);
}

p.paragraph{
  max-width:100%;
  color:var(--text-muted);
  font-size:1.02rem;
  line-height:1.65;
  margin:0;
}

figure.pic{
  grid-area:pic;
  margin:0;
  width:100%;
  aspect-ratio:1;
  border:1px solid var(--hairline);
  background:var(--bg-mid);
  padding:6px;
  border-radius:4px;
}

figure.pic img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:2px;
  filter:sepia(.4) saturate(1.35) hue-rotate(-8deg) brightness(.82) contrast(1.08);
}

@media (max-width:800px){
  header.navbar{
    padding:1.1rem 1.25rem;
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    grid-template-areas:
      "nav"
      "text"
      "pic";
    row-gap:1.75rem;
    overflow-y:auto;
  }
  header.navbar nav{
    justify-self:stretch;
    overflow-x:auto;
    white-space:nowrap;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;
  }
  header.navbar nav::-webkit-scrollbar{ display:none; }
  div.paragraph{
    width:100%;
    max-width:min(80vmin, 420px);
    align-self:center;
  }
  figure.pic{
    width:100%;
    max-width:min(80vmin, 420px);
    justify-self:center;
  }
}
