/* Generated brand tokens: src/app/globals.css. */
:root {
--color-island-ink: #132d3a;
--color-island-paper: #fff8e7;
--color-island-sea: #267a7a;
--color-island-sun: #f4c84a;
--color-island-mist: #d9eef0;
}
@font-face {
  font-family: "Bricolage Holding";
  src: url("/assets/bricolage.ttf") format("truetype");
  font-weight: 800;
  font-style: normal;
  font-display: swap;
}

* {
  box-sizing: border-box;
}
:root {
  color-scheme: dark;
}
html {
  background: var(--color-island-ink);
}
body {
  margin: 0;
  color: var(--color-island-paper);
  background: var(--color-island-ink);
  font:
    500 1rem/1.5 "Trebuchet MS",
    Arial,
    sans-serif;
  -webkit-font-smoothing: antialiased;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
button {
  font: inherit;
}
[hidden] {
  display: none !important;
}
::selection {
  background: var(--color-island-sun);
  color: var(--color-island-ink);
}
.page {
  min-height: 100svh;
  min-height: 100dvh;
  display: grid;
  grid-template-rows: auto 1fr auto;
  padding: clamp(1.5rem, 4.5vw, 4.5rem);
  gap: 2.5rem;
  max-width: 160rem;
  margin-inline: auto;
}
.masthead,
footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.masthead {
  font-size: clamp(0.875rem, 1.1vw, 1.125rem);
}
.domain {
  font-weight: 700;
  letter-spacing: -0.025em;
}
.status {
  display: inline-flex;
  align-items: center;
  gap: 0.65rem;
}
.status-dot {
  width: 0.4rem;
  height: 0.4rem;
  border-radius: 50%;
  background: var(--color-island-sun);
}
main {
  display: grid;
  align-items: center;
  min-width: 0;
}
.hero {
  width: 100%;
  padding-block: clamp(1rem, 3vh, 3rem);
}
.wordmark-stage {
  width: 100%;
  padding-block: 1rem;
}
.wordmark {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}
.glyph-base {
  fill: var(--color-island-paper);
}
.glyph-colour {
  opacity: 0;
}
.colour-0 {
  fill: var(--color-island-sun);
}
.colour-1 {
  fill: var(--color-island-mist);
}
.ray-sea {
  fill: var(--color-island-sea);
}
.ray-sun {
  fill: var(--color-island-sun);
}
.glyph {
  pointer-events: none;
  transform-box: view-box;
}
.letter-hit {
  fill: transparent;
  pointer-events: none;
}
.letter-focus {
  fill: none;
  stroke: var(--color-island-sun);
  stroke-width: 0.6;
  opacity: 0;
  pointer-events: none;
}
[data-letter] {
  outline: none;
}
[data-letter][role="button"] {
  cursor: pointer;
}
[data-letter][role="button"] .letter-hit {
  pointer-events: all;
}
[data-letter]:focus-visible .letter-focus {
  opacity: 1;
}
.under-wordmark {
  margin-inline: 9.9% 7%;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 2rem;
}
.message {
  font:
    800 clamp(1.625rem, 3.3vw, 4.5rem)/1.15 "Bricolage Holding",
    "Trebuchet MS",
    sans-serif;
  letter-spacing: -0.045em;
  margin: 0;
}
.play-tools {
  text-align: right;
  padding-top: 0.2rem;
}
.play-hint {
  margin: 0 0 0.25rem;
  color: var(--color-island-mist);
  font-size: clamp(0.75rem, 1vw, 0.9375rem);
}
.replay {
  color: var(--color-island-paper);
  background: none;
  border: 0;
  cursor: pointer;
  min-height: 44px;
  padding: 0.4rem 0 0.4rem 1rem;
  display: inline-flex;
  gap: 1.25rem;
  align-items: center;
}
.replay span {
  font-size: 1.5em;
  line-height: 1;
}
.replay:hover,
.return-link:hover {
  color: var(--color-island-sun);
}
.replay:focus-visible,
a:focus-visible {
  outline: 2px solid var(--color-island-sun);
  outline-offset: 6px;
  border-radius: 2px;
}
footer {
  font-size: 0.75rem;
  color: var(--color-island-mist);
}
.footer-mark {
  font:
    800 1.5rem/1 "Bricolage Holding",
    sans-serif;
  color: var(--color-island-sun);
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: absolute;
  z-index: 2;
  top: 1rem;
  left: 1rem;
  padding: 0.75rem 1rem;
  background: var(--color-island-paper);
  color: var(--color-island-ink);
  transform: translateY(-200%);
}
.skip-link:focus {
  transform: none;
}
.missing {
  padding-block: 4rem;
}
.missing h1 {
  font:
    800 clamp(3rem, 8vw, 8rem)/1.05 "Bricolage Holding",
    sans-serif;
  letter-spacing: -0.06em;
  max-width: 10ch;
}
.return-link {
  color: var(--color-island-paper);
  text-underline-offset: 0.3em;
}
@media (max-width: 600px) {
  .page {
    padding: 1.5rem;
    gap: 2rem;
  }
  .hero {
    padding-block: 2rem;
  }
  .wordmark-stage {
    margin-inline: -1rem;
    width: calc(100% + 2rem);
  }
  .under-wordmark {
    margin: 1.5rem 5% 0;
    flex-direction: column;
    gap: 2.5rem;
  }
  .message {
    font-size: clamp(1.875rem, 7vw, 2.75rem);
  }
  .play-tools {
    text-align: left;
  }
  .play-hint {
    font-size: 0.8125rem;
  }
  .replay {
    padding-left: 0;
  }
}
@media (prefers-reduced-motion: reduce) {
  .glyph {
    transform: none !important;
  }
}
