:root {
  color-scheme: dark;
  --page-color: #000000;
  --text-color: #f4dac8;
  --cursor-color: #000000;
  --accent-color: #3D2412;
  background: var(--page-color);
  color: var(--text-color);
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; }
.page {
  display: flex;
  align-items: center;
  position: absolute;
  inset: 0;
  min-height: 100svh;
  padding: 5vw;
  overflow: auto;
  background: var(--page-color);
}
h1 {
  margin: 0;
  min-height: 4.32em;
  max-width: 1440px;
  font-size: clamp(2.5rem, 7.3vw, 8rem);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.065em;
  overflow-wrap: break-word;
  position: relative;
  z-index: 2;
  width: min(53vw, 50rem);
  pointer-events: none;
}
.intro { position: relative; z-index: 2; pointer-events: none; }
.actions { display: flex; gap: 12px; margin-top: 28px; pointer-events: auto; }
.actions a, .actions button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 12px 24px; border: 0; border-radius: 0;
  background: #f04c4c; color: #000000; font: 600 16px "Helvetica Neue", Helvetica, Arial, sans-serif;
  text-decoration: none;
}
.actions a:hover { background: #f76a6a; }
.actions :focus-visible { outline: 2px solid var(--text-color); outline-offset: 4px; }
.actions button { cursor: pointer; opacity: 1; }
.actions button:disabled { cursor: wait; }
#typed { white-space: pre-wrap; }
.typed-cursor {
  display: inline-block;
  width: .045em;
  height: .78em;
  margin-left: .07em;
  vertical-align: -.025em;
  background: var(--cursor-color);
  letter-spacing: 0;
}
.typed-cursor--blink { animation: blink 1.05s step-end infinite; }
@keyframes blink { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
#skateboard {
  position: fixed;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 3;
  pointer-events: none;
}
#skateboard canvas { display: block; width: 100%; height: 100%; }
#skateboard canvas { pointer-events: none; }
#home { cursor: grab; }
#home:active { cursor: grabbing; }
#skateboard canvas:active { cursor: grabbing; }
@media (max-width: 760px) {
  .page { padding: 7vw; align-items: flex-end; }
  h1 { width: 86vw; font-size: clamp(2.25rem, 10vw, 5.5rem); min-height: 3.24em; }
}
@media (prefers-reduced-motion: reduce) {
  .typed-cursor { animation: none; }
}

#pages { position: relative; min-height: 100svh; isolation: isolate; }
.page { clip-path: inset(0); }
#demo { clip-path: inset(0 100% 0 0); }
/* Reserve the complete text/scene layout before either animation starts. */
.demo-page { --page-color: #000000; color: var(--text-color); display: grid; grid-template-columns: 1fr 1fr; gap: 4vw; align-items: center; }
.demo-intro { align-self: center; }
.demo-heading { width: 100%; min-height: 0; font-size: clamp(2rem, 3.8vw, 4.5rem); }
.demo-heading::before { content: attr(aria-label); visibility: hidden; grid-area: 1 / 1; }
.demo-heading { display: grid; }
#demo-typed { grid-area: 1 / 1; }
.knowledge-slot, .knowledge-volume { width: 100%; height: min(70svh, 48vw); min-height: 300px; opacity: 0; pointer-events: none; transition: opacity 350ms ease; }
.knowledge-volume.is-visible { opacity: 1; pointer-events: auto; }
.demo-next { position: fixed; right: 5vw; bottom: 5vw; z-index: 4; padding: 12px 0 12px 12px; border: 0; background: transparent; color: color-mix(in srgb, var(--text-color) 55%, transparent); font: 500 clamp(1rem, 1.5vw, 1.25rem) "Helvetica Neue", Helvetica, Arial, sans-serif; cursor: pointer; transition: color 200ms ease; }
.demo-next:hover, .demo-next:focus-visible { color: var(--text-color); }
.demo-next:focus-visible { outline: 1px solid currentColor; outline-offset: 4px; }
@media (max-width: 760px) {
  .demo-page { grid-template-columns: 1fr; grid-template-rows: auto 1fr; align-items: start; gap: 3svh; padding-bottom: 80px; }
  .demo-heading { width: 100%; font-size: clamp(1.65rem, 5.6vw, 2.6rem); }
  .knowledge-slot, .knowledge-volume { height: 38svh; min-height: 220px; }
  .demo-next { right: 7vw; bottom: 4vw; }
}
@media (prefers-reduced-motion: reduce) {
  .knowledge-volume, .demo-next { transition: none; }
}
.is-transitioning #skateboard canvas, body[data-page="demo"] #skateboard canvas { pointer-events: none; }
[data-page-heading]:focus { outline: none; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-old(*), ::view-transition-new(*), ::view-transition-group(*) {
    animation-duration: 0s !important;
    animation-delay: 0s !important;
  }
}
.demo-heading[data-sizing-text]::before { content: attr(data-sizing-text); }

/* One persistent visualization, sized by the original page's reserved slot. */
#knowledge-volume { position: absolute; z-index: 2; min-height: 0; }
