:root {
  color-scheme: light;
  color: #1d201b;
  background: #f5f5f4;
  font: 1rem/1.5 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; }
button, input { font: inherit; }
button { cursor: pointer; }
button:disabled, [aria-disabled="true"] { cursor: default; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

:where(a, button, input, summary):focus-visible {
  outline: 3px solid #2057bc;
  outline-offset: 3px;
}

.locked-page {
  --beta-paper: #f6f3ea;
  --beta-sheet: #fffcf4;
  --beta-ink: #171916;
  --beta-quiet: #50544b;
  --beta-rule: #c5c4b9;
  --beta-lime: #d5fa42;
  min-height: 100vh;
  min-height: 100dvh;
  color: var(--beta-ink);
  background: var(--beta-paper);
}

.beta-entrance {
  width: min(100%, 70rem);
  margin-inline: auto;
  padding: clamp(1.15rem, 4.3vw, 2.6rem);
}

.beta-entrance .beta-entrance-stamp {
  margin: 0;
  padding: .25rem .56rem;
  box-shadow: 2px 2px var(--beta-ink);
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
  transform: rotate(-3deg);
}

.beta-entrance-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .87fr);
  align-items: center;
  gap: clamp(1.5rem, 5vw, 4.1rem);
  padding-block: clamp(2rem, 6.8vw, 4.5rem);
}

.beta-entrance-kicker {
  margin: 0 0 .62rem;
  color: var(--beta-quiet);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.beta-entrance-intro h1 {
  margin: 0;
  font: 700 clamp(2.7rem, 7.1vw, 5.2rem)/.98 Georgia, "Times New Roman", serif;
  letter-spacing: -.065em;
}

.beta-entrance-intro h1 span {
  padding-inline: 2px 4px;
  background: linear-gradient(176deg, transparent 71%, var(--beta-lime) 72% 91%, transparent 92%);
}

.beta-entrance-lead {
  max-width: 32ch;
  margin: 1.1rem 0 0;
  color: var(--beta-quiet);
  font-size: clamp(.95rem, 2vw, 1.12rem);
}

.lock-panel {
  min-width: 0;
  padding: clamp(1rem, 3.1vw, 1.75rem);
  border: 1px solid var(--beta-ink);
  border-radius: 5px;
  background: var(--beta-sheet);
  box-shadow: 4px 4px var(--beta-ink);
}

.signup-panel { container: beta-signup / inline-size; }

.signup-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .5rem .8rem;
  margin-bottom: .58rem;
}

.signup-heading h2 {
  margin: 0;
  font: 700 clamp(1.72rem, 3.3vw, 2.35rem)/1.04 Georgia, "Times New Roman", serif;
  letter-spacing: -.055em;
}

.signup-stamp {
  padding: .17rem .36rem;
  border: 1px solid var(--beta-ink);
  color: var(--beta-ink);
  background: var(--beta-lime);
  box-shadow: 2px 2px var(--beta-ink);
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
  white-space: nowrap;
  transform: rotate(5deg);
}

.signup-help,
.field-help {
  margin: 0;
  color: var(--beta-quiet);
  font-size: .88rem;
}

.signup-help { max-width: 38ch; margin-bottom: 1rem; }

.code-fallback > summary::-webkit-details-marker { display: none; }

.access-choice-icon {
  display: grid;
  width: 2.3rem;
  height: 2.3rem;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid var(--beta-ink);
  border-radius: .2rem;
  background: #f9e7a5;
  transform: rotate(4deg);
}

.access-choice-icon svg,
.code-fallback summary svg {
  width: 1.18rem;
  height: 1.18rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.browser-option-text {
  display: grid;
  min-width: 0;
  gap: .12rem;
  line-height: 1.26;
}

.browser-option-text strong { font-size: 1rem; }
.browser-option-text > span { color: var(--beta-quiet); font-size: .8rem; }

.code-fallback > summary::after {
  width: .43rem;
  height: .43rem;
  flex: 0 0 auto;
  margin-inline: auto .15rem;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  content: "";
}

.code-fallback[open] > summary::after { transform: rotate(225deg); }

.lock-panel label {
  display: block;
  margin-bottom: .32rem;
  font-size: .82rem;
  font-weight: 700;
}

.lock-panel input:not([type="radio"]) {
  width: 100%;
  min-height: 2.88rem;
  padding: .55rem .7rem;
  border: 1px solid #787c72;
  border-radius: 3px;
  color: inherit;
  background: var(--beta-sheet);
}

.lock-panel input::placeholder {
  color: #6c7067;
  opacity: 1;
}

.field-help { margin-top: .4rem; }

.device-options {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.device-options .install-heading { gap: .45rem .7rem; }

.device-options .install-heading h3 {
  margin: 0;
  font: 700 1.16rem/1.15 Georgia, "Times New Roman", serif;
  letter-spacing: -.022em;
}

.device-options .install-options { margin: .7rem 0 .85rem; }

.device-options .platform {
  display: grid;
  margin: 0;
  gap: .48rem;
  padding: clamp(.55rem, 2vw, .65rem);
  cursor: pointer;
}

.device-options .platform-heading {
  flex-direction: column;
  align-items: flex-start;
  gap: .45rem;
}

.device-options .platform-heading > span {
  min-width: 0;
  overflow-wrap: anywhere;
}

.device-options .platform-icon { width: clamp(2.55rem, 7vw, 3.05rem); }
.device-options .platform-device { display: block; color: #e3e5de; font-size: .62rem; letter-spacing: .055em; text-transform: uppercase; }

.device-options .platform-name {
  display: block;
  font: 700 1rem/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}

@container beta-signup (min-width: 24rem) {
  .device-options .platform { padding: .85rem; }

  .device-options .platform-heading {
    flex-direction: row;
    align-items: center;
  }

  .device-options .platform-name { font-size: 1.22rem; }
}

.device-options .platform-select {
  display: flex;
  align-items: center;
  gap: .35rem;
  padding-top: .35rem;
  border-top: 1px dashed #a09f8b;
  color: #d5fa42;
  font-size: .7rem;
}

.device-options .browser-option {
  display: flex;
  align-items: center;
  gap: .68rem;
  min-height: 4rem;
  margin: 0;
  padding: .54rem .68rem;
  border: 1px solid var(--beta-ink);
  border-radius: 5px;
  box-shadow: 2px 2px var(--beta-ink);
  cursor: pointer;
}

.device-options input {
  flex: 0 0 auto;
  margin: 0;
  accent-color: var(--beta-ink);
}

.device-options .browser-option input { margin-inline-start: auto; }
.device-options .platform input { accent-color: var(--beta-lime); }
.device-options .browser-option:hover { background: var(--beta-paper); }
.device-options .platform:hover { filter: brightness(1.08); }
.device-options label:has(input:focus-visible) { outline: 3px solid #2057bc; outline-offset: 3px; }
.device-options .browser-option:has(input:checked) { background: #edf6b8; }

.signup-entry {
  margin-top: .95rem;
  padding-top: .85rem;
  border-top: 1px dashed var(--beta-rule);
}

#signup-email-help span { display: block; }

.signup-profile-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .7rem;
  margin-top: .75rem;
}

.signup-profile-fields label span { color: var(--beta-quiet); font-weight: 500; }
.signup-profile-fields .field-help { font-size: .76rem; }
.signup-surname-field, .signup-phone-field { grid-column: 1 / -1; }
.signup-privacy { margin-top: .7rem; font-size: .8rem; }
.lock-panel input[aria-invalid="true"] { border-color: #a02a21; }

@media (max-width: 37rem) {
  .signup-profile-fields { grid-template-columns: minmax(0, 1fr); }
}

.signup-phone-row {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: .4rem;
}

.signup-phone-row > input {
  flex: 1 1 0;
  min-width: 0;
}

.calling-code-picker {
  flex: none;
  border: 1px solid #787c72;
  border-radius: 3px;
}

.calling-code-picker > summary {
  display: flex;
  align-items: center;
  gap: .45rem;
  min-height: calc(2.88rem - 2px);
  padding: .45rem .65rem;
  color: var(--beta-quiet);
  font-size: .8rem;
  list-style: none;
  cursor: pointer;
}

.calling-code-picker > summary::-webkit-details-marker { display: none; }
.calling-code-picker > summary:hover, .calling-code-picker[open] > summary { background: var(--beta-paper); }
.calling-code-picker > summary strong { color: var(--beta-ink); white-space: nowrap; }

.calling-code-picker > summary::after {
  width: .4rem;
  height: .4rem;
  flex: 0 0 auto;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  content: "";
}

.calling-code-picker[open] > summary::after { transform: rotate(225deg); }
.calling-code-menu {
  position: absolute;
  z-index: 2;
  inset: calc(100% + .25rem) 0 auto;
  padding: .6rem;
  border: 1px solid #787c72;
  border-radius: 3px;
  background: var(--beta-sheet);
  box-shadow: 2px 2px var(--beta-ink);
}
.calling-code-status { margin: .35rem 0 .2rem; color: var(--beta-quiet); font-size: .75rem; }

.calling-code-options {
  max-height: min(13rem, 35vh);
  margin: 0;
  padding: 0 .2rem;
  overflow-y: auto;
  list-style: none;
}

.calling-code-options button {
  display: flex;
  justify-content: space-between;
  gap: .5rem;
  width: 100%;
  min-height: 2.75rem;
  padding: .4rem .45rem;
  border: 0;
  border-top: 1px solid var(--beta-rule);
  color: var(--beta-ink);
  background: transparent;
  font-size: .85rem;
  text-align: start;
}

.calling-code-options button strong { flex: 0 0 auto; }
.calling-code-options button:hover { background: var(--beta-paper); }
.calling-code-options button[aria-current="true"] { background: #edf6b8; }
.calling-code-options button:focus-visible { outline-offset: -3px; }

@supports selector(.platform:has(input:checked)) {
  .device-options .platform-icon { filter: brightness(.88) saturate(.87); }
  .device-options .platform:has(input:checked) { border-color: var(--beta-lime); box-shadow: .15rem .22rem var(--beta-lime); }
  .device-options .platform:has(input:checked) .platform-icon { filter: brightness(1.17) saturate(1.24) drop-shadow(0 0 .23rem #c5f43254); }
  .beta-signup-form:not(:has(input[type="radio"]:checked)) .signup-entry,
  .beta-signup-form:not(:has(#signup-platform-iphone:checked)) .iphone-email-help,
  .beta-signup-form:not(:has(#signup-platform-android:checked)) .android-email-help,
  .beta-signup-form:has(#signup-platform-browser:checked) #signup-email-help { display: none; }
}

.signup-button,
.unlock-button {
  width: 100%;
  min-height: 2.88rem;
  margin-top: .7rem;
  padding: .5rem .7rem;
  border: 1px solid var(--beta-ink);
  border-radius: 3px;
  color: inherit;
  background: var(--beta-lime);
  font-size: .88rem;
  font-weight: 750;
}

.signup-button {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .62rem;
  text-align: left;
}

.signup-button:hover,
.unlock-button:hover { background: #e3fb80; }

.signup-notice {
  margin: .68rem 0 .8rem;
  padding: .55rem .7rem;
  border-left: 2px solid var(--beta-ink);
  background: var(--beta-paper);
  font-size: .85rem;
}

.signup-notice:empty { display: none; }

.signup-panel:not([hidden]) + .code-fallback {
  margin-top: .9rem;
  border-top: 1px dashed var(--beta-rule);
}

.code-fallback summary {
  display: flex;
  align-items: center;
  gap: .55rem;
  min-height: 2.75rem;
  padding: .5rem .2rem;
  color: var(--beta-quiet);
  font-size: .85rem;
  font-weight: 650;
  list-style: none;
  cursor: pointer;
}

.code-fallback summary:hover { color: var(--beta-ink); }
.code-fallback summary svg { width: 1.05rem; height: 1.05rem; }

.code-fallback form { padding-top: .45rem; }

.signup-panel:not([hidden]) + .code-fallback .unlock-button {
  background: transparent;
}

.signup-panel:not([hidden]) + .code-fallback .unlock-button:hover {
  background: var(--beta-paper);
}

.unlock-error {
  margin: .7rem 0 0;
  color: #a02a21;
  font-size: .85rem;
}

.unlock-error:empty { display: none; }

.beta-entrance-thanks {
  display: flex;
  align-items: baseline;
  gap: .55rem;
  padding-top: 1rem;
  border-top: 1px solid var(--beta-rule);
  color: var(--beta-quiet);
  font-size: .82rem;
}

.beta-entrance-thanks p { margin: 0; }
.beta-entrance-thanks :is(strong, span) { color: var(--beta-ink); }

@media (max-width: 42rem) {
  .beta-entrance-layout { grid-template-columns: minmax(0, 1fr); }
  .beta-entrance-intro h1 { font-size: clamp(2.7rem, 10vw, 4.2rem); }
  .beta-entrance-lead { margin-top: .82rem; }
}

.portal-page {
  min-height: 100vh;
  background: #f6f3ea;
}

.portal {
  width: min(100%, 56rem);
  margin-inline: auto;
  padding: 1.4rem clamp(1.1rem, 5vw, 3rem) 1.75rem;
}

.portal-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid #c5c4b9;
}

.brand {
  display: flex;
  align-items: center;
  gap: .45rem;
}

.brand-mark { width: 2.85rem; height: 2.85rem; }

.brand p {
  margin: 0;
  font-size: 1.6rem;
  font-weight: 800;
  letter-spacing: -.055em;
}

.lock-button {
  min-height: 2.75rem;
  padding: .45rem .75rem;
  border: 1px solid #9d9e91;
  border-radius: .3rem;
  color: inherit;
  background: transparent;
  font-size: .875rem;
  font-weight: 650;
}

.lock-button:hover { background: #eae7dd; }

.hero {
  padding-block: clamp(2rem, 6vw, 3.75rem) clamp(1.5rem, 4vw, 2.5rem);
}

.test-stamp {
  display: inline-block;
  margin: 0 0 .9rem;
  padding: .17rem .48rem;
  border: 1px solid #272b22;
  background: #d5fa42;
  font-size: .8rem;
  font-weight: 750;
  letter-spacing: .035em;
}

.hero h1 {
  max-width: 13ch;
  margin: 0;
  font: 700 clamp(2.45rem, 8vw, 5rem)/.98 Georgia, "Times New Roman", serif;
  letter-spacing: -.055em;
  text-wrap: balance;
}

.hero-detail {
  max-width: 36rem;
  margin: 1rem 0 0;
  color: #45493f;
  font-size: clamp(1rem, 2.2vw, 1.15rem);
}

.web-access {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: clamp(.95rem, 4vw, 1.4rem);
  border: 1px solid #252922;
  border-radius: .6rem;
  background: #fffcf5;
  box-shadow: .19rem .19rem #252922;
}

.web-access h2 {
  margin: 0;
  font-size: 1.2rem;
  line-height: 1.25;
}

.web-access p {
  margin: .25rem 0 0;
  color: #45493f;
}

.web-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .55rem;
}

.web-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 2.75rem;
  padding: .45rem .85rem;
  border: 1px solid #252922;
  border-radius: .35rem;
  color: #252922;
  background: #fffcf5;
  font-weight: 700;
  text-decoration: none;
}

.web-action-primary {
  background: #d5fa42;
}

a.web-action:hover { filter: brightness(.94); }

.web-action[aria-disabled="true"] {
  border-color: #c9cbbf;
  color: #4d5148;
  background: #ebece4;
}

.install-section { margin-top: 2.1rem; }

.install-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .65rem 1rem;
}

.install-heading h2 {
  margin: 0;
  font: 700 clamp(1.45rem, 4.8vw, 2.35rem)/1.05 Georgia, "Times New Roman", serif;
  letter-spacing: -.045em;
}

.install-stamp {
  padding: .19rem .42rem;
  border: 1px solid #252922;
  color: #252922;
  background: repeating-linear-gradient(-16deg, transparent 0 3px, #52670e16 3px 4px), #d5fa42;
  box-shadow: .09rem .09rem #252922;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .075em;
  text-transform: uppercase;
  transform: rotate(-4deg);
}

.install-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(.55rem, 2.5vw, 1rem);
  margin-top: 1rem;
}

.platform {
  --badge-accent: #a5bd41;
  position: relative;
  display: grid;
  align-content: start;
  grid-template-rows: 1fr auto;
  gap: .7rem;
  min-width: 0;
  padding: clamp(.75rem, 2.75vw, 1.3rem);
  border: 1px solid #202219;
  border-radius: .48rem .66rem .42rem .62rem;
  color: #fffdf4;
  background:
    radial-gradient(ellipse at 5% 0%, #353a2b, transparent 65%),
    repeating-linear-gradient(154deg, #fff9e908 0 1px, transparent 1px 4px),
    #171916;
  box-shadow: .15rem .22rem var(--badge-accent);
}

.platform + .platform { --badge-accent: #c3a372; }

.platform::before {
  position: absolute;
  inset: .24rem .22rem .22rem .24rem;
  border: 1px solid #fff4d62e;
  border-radius: .48rem .34rem .55rem .33rem;
  pointer-events: none;
  content: "";
}

.platform-heading {
  display: flex;
  align-items: center;
  gap: clamp(.55rem, 1.5vw, 1rem);
}

.platform-icon {
  display: block;
  width: clamp(3.65rem, 8.5vw, 5.4rem);
  height: auto;
  aspect-ratio: 1;
  flex: 0 0 auto;
}

.platform-heading h3 {
  margin: 0;
  font: 700 clamp(1.04rem, 3.8vw, 1.8rem)/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.025em;
}

.platform-heading p {
  margin: 0 0 .19rem;
  color: #e3e5de;
  font-size: .69rem;
  font-weight: 750;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.platform-install {
  display: flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .25rem 0;
  border-top: 1px dashed #a09f8b;
  color: #d5fa42;
  font-size: clamp(.75rem, 2.6vw, .875rem);
  font-weight: 650;
  text-underline-offset: .15em;
}

a.platform-install:hover { color: #fff; }

a.platform-install::after {
  position: absolute;
  inset: 0;
  border-radius: .48rem;
  content: "";
}

a.platform-install:focus-visible { outline: none; }

a.platform-install:focus-visible::after {
  outline: 3px solid #2057bc;
  outline-offset: 3px;
}

.platform .platform-install:is([aria-disabled="true"], :disabled) {
  color: #dfdfd4;
}

@media (max-width: 37rem) {
  .platform-heading {
    flex-direction: column;
    align-items: flex-start;
  }
}

.install-note {
  margin: .95rem 0 0;
  color: #45493f;
  font-size: .875rem;
}

.portal-footer {
  margin-top: 1.7rem;
  padding-top: .95rem;
  border-top: 1px solid #c5c4b9;
  color: #45493f;
  font-size: .9rem;
}

.portal-footer p { margin: 0; }

