@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("../island-grove/atkinson-latin-ext.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Atkinson Hyperlegible Next";
  src: url("../island-grove/atkinson-latin.woff2") format("woff2");
  font-weight: 200 800;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

.login-pf:root {
  color-scheme: light dark;
  --passport-font: "Atkinson Hyperlegible Next", system-ui, sans-serif;
  font-family: var(--passport-font);
  background: var(--paper);
  color: var(--ink);
}
.login-pf body {
  display: flex;
  flex-direction: column;
  min-height: 100svh;
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 16px/1.5 var(--passport-font);
}
.frame { width: min(1120px, calc(100% - 56px)); margin-inline: auto; }
.passport-shell {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-width: 0;
  background: linear-gradient(180deg, rgb(10 24 15 / .72), rgb(12 24 16 / .25) 32%, rgb(13 24 16 / .45)),
    var(--workspace-scene) 59% 48% / cover no-repeat, #26372b;
}
.passport-lockup { display: inline-flex; align-items: center; gap: 10px; color: #fdf1da; }
.passport-lockup img { object-fit: contain; }
.passport-lettering { display: grid; gap: 1px; line-height: 1; }
.passport-lettering > span { font: 700 11px/1.15 var(--passport-font); text-transform: uppercase; letter-spacing: .205em; }
.passport-lettering > strong { font: 600 27px/.98 "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; letter-spacing: -.035em; }
.passport-panel.pf-v5-c-login__main {
  min-width: 0;
  margin-inline: auto;
  padding: clamp(24px, 5vw, 32px);
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: 12px;
  color: var(--ink);
  box-shadow: none;
  overflow-wrap: anywhere;
}
.passport-panel .pf-v5-c-login__main-header,
.passport-panel .pf-v5-c-login__main-body,
.passport-panel .pf-v5-c-login__main-footer,
.passport-panel .pf-v5-c-login__main-footer-band {
  margin: 0;
  padding: 0;
  border: 0;
  color: inherit;
  background: none;
}
.passport-panel .pf-v5-c-login__main-header { margin-bottom: 7px; }
.passport-panel #kc-page-title {
  font: 700 clamp(22px, 3vw, 29px)/1.14 var(--passport-font);
  --pf-v5-c-title--FontFamily: var(--passport-font);
  letter-spacing: -.035em;
}
.passport-panel .pf-v5-c-form { --pf-v5-c-form--GridGap: 12px; }
.passport-panel #kc-register-form {
  --pf-v5-c-form--GridGap: 16px;
}
.passport-panel #form-help-text-after-minecraftUsername {
  margin-block-start: 8px;
  color: var(--quiet);
  font-size: .875rem;
  line-height: 1.45;
}
.passport-email-verification {
  display: grid;
  gap: 18px;
  margin-top: 18px;
}
.passport-email-verification p { margin: 0; }
.passport-register-next { margin-block: 8px 16px; color: var(--quiet); font-size: .875rem; }
.passport-verification-recipient {
  padding: 12px 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--surface);
}
.passport-verification-recipient p,
.passport-verification-help p { color: var(--quiet); font-size: .875rem; }
.passport-verification-recipient strong { display: block; margin-top: 2px; }
.passport-verification-help { padding-top: 14px; border-top: 1px solid var(--line); }
.passport-verification-help a { display: inline-block; margin-top: 4px; font-weight: 650; }
.passport-panel .pf-v5-c-form__label { color: var(--ink); font-weight: 650; }
.passport-panel .pf-v5-c-form-control,
.passport-panel .pf-v5-c-input-group > .pf-v5-c-input-group__item {
  background: none;
}
.passport-panel .pf-v5-c-form-control::before,
.passport-panel .pf-v5-c-form-control::after { border: 0; }
.passport-panel .pf-v5-c-form-control :is(input, select, textarea) {
  min-height: 44px;
  min-width: 0;
  border: 1px solid var(--control);
  border-radius: 6px;
  padding: 6px 9px;
  background: var(--surface);
  color: var(--ink);
  font: inherit;
  caret-color: var(--accent);
}
.passport-panel input[type="checkbox"], .passport-panel input[type="radio"] { accent-color: var(--accent); }
.passport-panel .pf-v5-c-input-group:has([data-password-toggle]) { gap: 6px; }
.passport-panel a { color: var(--accent); text-decoration: underline; text-underline-offset: 3px; }
.passport-panel .pf-v5-c-button {
  min-height: 44px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--surface);
  color: var(--ink);
  font: 650 16px/1.2 var(--passport-font);
}
.passport-panel .pf-v5-c-button::after { border: 0; }
.passport-panel [data-password-toggle] { width: 44px; padding: 0; }
.passport-panel [data-password-toggle] i {
  display: inline-block;
  width: 18px;
  height: 18px;
  background: currentColor;
  mask: url("../icons/eye.svg") center / contain no-repeat;
  vertical-align: middle;
}
.passport-panel [data-password-toggle] i::before { content: none; }
.passport-panel [data-password-toggle] i.fa-eye-slash { mask-image: url("../icons/eye-off.svg"); }
.passport-panel .pf-v5-c-button:hover { background: var(--soft); }
.passport-panel .pf-v5-c-button.pf-m-primary {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--accentInk);
}
.passport-panel .pf-v5-c-button.pf-m-primary:hover { opacity: .87; }
.passport-panel .passport-info-continue {
  display: inline-flex;
  align-items: center;
  margin-block-start: 12px;
  text-decoration: none;
}
.passport-panel .pf-v5-c-button:disabled { opacity: .45; }
.passport-panel :is(.pf-v5-c-helper-text__item-text, .subtitle) { color: var(--quiet); }
.passport-panel .pf-v5-c-helper-text__item-text.pf-m-error { color: light-dark(#782d33, #ffd3d1); }
.passport-panel .pf-v5-c-alert {
  margin-block: 8px 14px;
  border: 0;
  border-radius: 6px;
  background: var(--soft);
  color: var(--ink);
}
.passport-panel .pf-v5-c-alert.pf-m-danger { background: light-dark(#fae9e8, #472a30); color: light-dark(#782d33, #ffd3d1); }
.passport-panel :is(.pf-v5-c-alert__title, .pf-v5-c-alert__icon) { color: inherit; }
.passport-panel #kc-info { margin-top: 15px; }
.passport-footer { background: #191918; color: #e5e3db; border-top: 1px solid var(--line); font-size: 12px; }
.passport-footer-credit { display: flex; align-items: center; gap: 9px; min-height: 46px; padding-block: 8px; }
.passport-footer-credit img { display: block; object-fit: contain; }
.login-pf :focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
::selection { background: var(--soft); color: var(--ink); }
.skip-link:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.skip-link:focus { position: fixed; z-index: 2; inset: 8px auto auto 8px; padding: 8px 12px; background: var(--surface); color: var(--accent); }

@media (prefers-color-scheme: dark) {
  .passport-shell {
    background-image: linear-gradient(180deg, rgb(10 20 13 / .72), rgb(11 20 14 / .37) 34%, rgb(8 17 11 / .62)), var(--workspace-scene);
  }
}
@media (max-width: 560px) { .frame { width: calc(100% - 32px); } }

.passport-provider-preview {
  display: grid;
  gap: 8px;
  margin-top: 22px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
.passport-provider-preview button:disabled {
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--control);
  border-radius: 6px;
  background: var(--surface);
  color: var(--ink);
  font: 650 16px/1.2 var(--passport-font);
  opacity: 1;
}
