:root {
  --ink: #120a8f;
  --peach: #ffdab9;
  --paper: #faf9f7;
  --muted: #484654;
  --line: #d4d1dc;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: var(--paper);
  color: var(--ink);
  font:
    600 18px/1.5 Arial,
    Helvetica,
    sans-serif;
  user-select: none;
  -webkit-user-select: none;
}
input {
  user-select: text;
  -webkit-user-select: text;
}
header {
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
  padding: 28px 5%;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.brand {
  color: var(--ink);
  font-size: 26px;
  font-weight: 800;
  text-decoration: none;
  letter-spacing: -1px;
}
main {
  width: 100%;
  max-width: 800px;
  padding: 40px 24px;
  margin: auto;
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
footer {
  text-align: center;
  padding: 26px 20px;
  color: var(--muted);
  font-size: 15px;
  font-weight: 700;
}
.card {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
}
.registration,
.center {
  max-width: 460px;
  margin: 0 auto;
}
.center {
  text-align: center;
}
h1 {
  font-size: 44px;
  letter-spacing: -1.5px;
  line-height: 1.15;
  margin: 0 0 36px;
  font-weight: 800;
}
h2 {
  font-size: 30px;
  line-height: 1.35;
  margin: 0 0 24px;
  letter-spacing: -0.5px;
}
p {
  color: var(--muted);
  margin: 0 0 24px;
}
label {
  display: block;
  font-weight: 700;
  font-size: 18px;
  margin-bottom: 22px;
}
.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
input {
  display: block;
  width: 100%;
  height: 56px;
  border: 2px solid var(--line);
  border-radius: 6px;
  background: transparent;
  padding: 0 12px;
  margin-top: 8px;
  color: var(--ink);
  font:
    600 20px Arial,
    sans-serif;
}
input:focus {
  outline: 2px solid var(--ink);
  outline-offset: 2px;
}
button {
  min-height: 54px;
  font:
    700 18px/1.4 Arial,
    sans-serif;
  cursor: pointer;
  background: var(--ink);
  color: white;
  border: 2px solid transparent;
  border-radius: 6px;
  padding: 14px 22px;
}
button:hover {
  background: #2920a3;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 3px solid #aa5f2a;
  outline-offset: 4px;
}
button:disabled {
  cursor: default;
  background: #e9e7ed;
  color: #56535e;
}
.wide {
  width: 100%;
  margin-top: 10px;
}
.text-button {
  background: transparent;
  color: var(--muted);
  font-size: 16px;
  padding: 10px 0;
  min-height: 44px;
}
.text-button:hover {
  background: transparent;
  color: var(--ink);
  text-decoration: underline;
}
.ready-actions {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-top: 12px;
}
.confirm-data {
  font-size: 22px;
  line-height: 1.7;
  margin-bottom: 30px;
  overflow-wrap: anywhere;
}
.secondary {
  color: var(--ink);
  background: transparent;
  border-color: var(--line);
}
.secondary:hover {
  background: #eeecf5;
}
.center .secondary {
  margin-top: 12px;
}
.eyebrow {
  display: block;
  font-size: 18px;
  font-weight: 700;
  color: var(--muted);
  margin-bottom: 20px;
}
.quiz-shell {
  width: 100%;
  max-width: 650px;
  margin: auto;
}
.question h2 {
  font-size: 30px;
  margin-bottom: 30px;
}
.option {
  display: flex;
  align-items: center;
  gap: 16px;
  width: 100%;
  text-align: left;
  margin: 12px 0;
  padding: 17px 20px;
  font-size: 21px;
  color: var(--ink);
  border-color: var(--line);
  background: transparent;
}
.option:hover:not(:disabled) {
  background: #fff0e3;
  border-color: var(--ink);
}
.option:disabled {
  opacity: 1;
  color: #484654;
  background: transparent;
  border-color: var(--line);
}
.option.selected:disabled {
  color: var(--ink);
  border-color: var(--ink);
  background: var(--peach);
}
.letter {
  min-width: 22px;
  font-size: 17px;
}
.answer-status {
  height: 27px;
  margin: 18px 0 0;
  font-size: 16px;
  color: var(--ink);
}
.quiz-nav {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 18px;
}
.question-list {
  margin-top: 28px;
  color: var(--muted);
  font-size: 16px;
}
summary {
  cursor: pointer;
  width: fit-content;
  padding: 8px 0;
}
.numbers {
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 7px;
  margin-top: 12px;
}
.numbers button {
  padding: 8px 0;
  min-height: 40px;
  font-size: 16px;
  background: #eeecf5;
  color: var(--ink);
}
.numbers button.answered {
  background: var(--peach);
}
.numbers button.active {
  background: var(--ink);
  color: white;
}
#timer {
  font-size: 28px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
#timer.urgent {
  color: #a42925;
}
dialog {
  width: calc(100% - 32px);
  max-width: 560px;
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border: 0;
  border-radius: 12px;
  padding: 32px;
  color: var(--ink);
  background: var(--paper);
}
dialog::backdrop {
  background: #19152c99;
}
dialog h2 {
  font-size: 30px;
}
dialog p,
dialog li {
  font-size: 18px;
  color: var(--muted);
  line-height: 1.55;
}
dialog ul {
  padding-left: 23px;
  margin: 0 0 24px;
}
dialog li {
  margin: 12px 0;
}
dialog .rules-note {
  font-size: 16px;
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.result-note {
  font-size: 16px;
}
.error {
  color: #a42925;
  font-size: 17px;
}
[hidden] {
  display: none !important;
}
@media (max-width: 550px) {
  header {
    padding: 22px 24px;
  }
  main {
    padding: 30px 24px;
  }
  .form-row {
    grid-template-columns: 1fr;
    gap: 0;
  }
  h1 {
    font-size: 38px;
    margin-bottom: 28px;
  }
  .question h2 {
    font-size: 25px;
  }
  .option {
    font-size: 19px;
    padding: 15px;
  }
  .numbers {
    grid-template-columns: repeat(5, minmax(0, 1fr));
  }
  dialog {
    padding: 24px;
  }
  .ready-actions {
    gap: 12px;
  }
  .text-button {
    font-size: 15px;
  }
  footer {
    font-size: 14px;
  }
}

/* Local font hooks; licensed webfont files can be added when supplied. */
@font-face {
  font-family: "Extenda";
  src: local("Extenda 50 Mega"), local("Extenda-50Mega"), local("Extenda");
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: "Young Love";
  src: local("Young Love"), local("YoungLove");
  font-weight: 100 900;
  font-display: swap;
}
h1,
.brand {
  font-family: "Extenda", Arial, Helvetica, sans-serif;
}
footer {
  font-family: "Young Love", Arial, Helvetica, sans-serif;
  font-size: 17px;
}
body {
  position: relative;
  isolation: isolate;
}
.flourishes {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: -1;
}
.swirl {
  position: absolute;
  width: clamp(140px, 20vw, 260px);
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 5;
}
.swirl-top {
  top: 100px;
  right: -45px;
  stroke: #ebba91;
  opacity: 0.65;
  transform: rotate(-12deg);
}
.swirl-bottom {
  bottom: 90px;
  left: -62px;
  stroke: #120a8f;
  opacity: 0.13;
  transform: rotate(12deg);
}
body:has(.quiz-shell) .swirl {
  opacity: 0.08;
}
@media (max-width: 650px) {
  .swirl-top {
    width: 130px;
    top: 60px;
    right: -40px;
    opacity: 0.4;
  }
  .swirl-bottom {
    width: 115px;
    bottom: 66px;
    left: -46px;
    opacity: 0.1;
  }
  footer {
    font-size: 15px;
  }
}

/* Soft colour, tactile controls, and a protected focus state. */
:root {
  --paper: #f7f6fc;
  --line: #dcd9e9;
}
body {
  background:
    radial-gradient(ellipse at 85% 8%, #ffdab95e, transparent 45%),
    radial-gradient(ellipse at 4% 85%, #dad4ff66, transparent 42%), var(--paper);
}
.brand {
  display: flex;
  align-items: center;
  gap: 10px;
}
.brand:before {
  content: "";
  display: block;
  width: 13px;
  height: 13px;
  border-radius: 4px;
  background: var(--peach);
  box-shadow: 5px -5px 0 var(--ink);
  transform: rotate(-12deg);
  margin-right: 4px;
}
.card {
  background: #ffffffd9;
  border: 1px solid #fff;
  border-radius: 26px;
  padding: 38px;
  box-shadow: 0 14px 55px #20165a09;
}
.registration,
.center {
  max-width: 530px;
}
.registration h1 {
  margin-bottom: 32px;
}
input {
  background: #f7f6fb;
  border-width: 1px;
  border-radius: 12px;
  transition:
    border-color 0.18s,
    background 0.18s;
}
input:focus {
  background: white;
}
button {
  border-radius: 12px;
  transition:
    background 0.18s,
    transform 0.18s,
    box-shadow 0.18s;
}
button:not(:disabled):hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 18px #120a8f18;
}
button:not(:disabled):active {
  transform: translateY(0);
}
.text-button:hover {
  box-shadow: none;
}
.confirm-data {
  background: #f7f5fc;
  border-radius: 15px;
  padding: 18px;
}
.option {
  background: #fff;
  border-width: 1px;
  border-radius: 14px;
}
.option .letter {
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: #f0eef8;
  font-size: 16px;
  flex-shrink: 0;
}
.option.selected:disabled .letter {
  background: var(--ink);
  color: white;
}
.option.selected:disabled {
  border-width: 2px;
}
.question-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
}
.question-meta .eyebrow {
  margin: 0;
  font-variant-numeric: tabular-nums;
}
.mini-progress {
  width: 110px;
  height: 6px;
  overflow: hidden;
  background: #eeebf6;
  border-radius: 10px;
}
.mini-progress span {
  display: block;
  height: 100%;
  background: var(--ink);
  border-radius: 10px;
  transition: width 0.25s;
}
#timer {
  background: #ffffffc9;
  border: 1px solid #e6e1f3;
  padding: 9px 16px;
  border-radius: 14px;
  font-size: 24px;
}
.question-list {
  padding: 0 18px;
}
.swirl-top {
  stroke-width: 4;
}
.swirl-bottom {
  stroke-width: 4;
}
dialog {
  background: #fff;
  border: 1px solid #eeebf7;
  border-radius: 24px;
  padding: 34px;
  box-shadow: 0 28px 100px #120a8f26;
}
dialog::backdrop {
  background: #17132cb3;
  backdrop-filter: blur(8px);
}
.dialog-label {
  display: block;
  color: var(--muted);
  font-size: 16px;
  margin-bottom: 12px;
}
.answer-preview {
  padding: 22px;
  background: #fff0e3;
  border: 1px solid #efcfb6;
  border-radius: 14px;
  font-size: 23px;
  margin: 20px 0;
  overflow-wrap: anywhere;
}
.dialog-actions {
  display: flex;
  gap: 12px;
}
.dialog-actions button {
  flex: 1;
  padding: 14px 12px;
}
#warning::backdrop {
  background: #090714;
  backdrop-filter: blur(24px);
}
body.screen-blocked main,
body.screen-blocked .flourishes,
body.screen-blocked footer {
  visibility: hidden;
}
body.screen-blocked #answer-confirm {
  visibility: hidden;
}
#warning {
  border-top: 5px solid var(--peach);
}
@media (prefers-reduced-motion: no-preference) {
  dialog[open] {
    animation: dialog-in 0.18s ease-out;
  }
  @keyframes dialog-in {
    from {
      opacity: 0;
      transform: translateY(10px) scale(0.98);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}
@media (max-width: 550px) {
  main {
    padding: 24px 16px;
  }
  .card {
    padding: 26px 22px;
    border-radius: 22px;
  }
  .question h2 {
    font-size: 24px;
  }
  .option {
    padding: 13px 12px;
    gap: 12px;
  }
  dialog {
    padding: 26px 22px;
  }
  .dialog-actions {
    flex-direction: column-reverse;
  }
  .dialog-actions button {
    width: 100%;
  }
  .mini-progress {
    width: 85px;
  }
}
/* Crisp two-tone composition. No coloured haze or background blur. */
:root {
  --paper: #f6f4ef;
  --line: #d4d1dd;
  --muted: #514f60;
}
body {
  background: var(--paper);
  position: relative;
  isolation: isolate;
}
header {
  max-width: 1280px;
  border-bottom: 1px solid #120a8f1f;
  padding-top: 24px;
  padding-bottom: 24px;
}
.brand {
  gap: 13px;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 30px;
  font-weight: 800;
  letter-spacing: -1.6px;
  line-height: 1;
}
.brand:before {
  display: none;
}
.brand-mark {
  font:
    italic 48px/1 Georgia,
    serif;
  letter-spacing: -4px;
  width: 30px;
  color: var(--ink);
}
.brand-period {
  color: #b57340;
}
.blueprint {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: -1;
}
.orbit {
  position: absolute;
  right: -115px;
  top: 17%;
  width: 360px;
  height: 360px;
  border: 1px solid #120a8f38;
  border-radius: 50%;
  background: var(--peach);
}
.orbit i {
  position: absolute;
  inset: 30px;
  border: 1px solid #120a8f45;
  border-radius: 50%;
}
.orbit i:nth-child(2) {
  inset: 60px;
}
.orbit i:nth-child(3) {
  inset: 90px;
}
.orbit:before,
.orbit:after {
  content: "";
  position: absolute;
  background: #120a8f45;
}
.orbit:before {
  width: 1px;
  height: 410px;
  left: 50%;
  top: -25px;
}
.orbit:after {
  height: 1px;
  width: 410px;
  top: 50%;
  left: -25px;
}
.orbit span {
  position: absolute;
  top: calc(50% - 18px);
  left: calc(50% - 12px);
  font: 30px monospace;
}
.rail {
  position: absolute;
  left: 5%;
  bottom: 20%;
  display: flex;
  gap: 8px;
  transform: rotate(-30deg);
}
.rail span {
  display: block;
  width: 6px;
  height: 80px;
  background: #120a8f;
}
.rail span:nth-child(2) {
  height: 65px;
}
.rail span:nth-child(3) {
  height: 50px;
}
.rail span:nth-child(4) {
  height: 35px;
}
.rail span:nth-child(5) {
  height: 20px;
}
.corner-cross {
  position: absolute;
  left: 12%;
  top: 22%;
  font: 32px monospace;
  color: var(--ink);
}
main {
  padding-top: 50px;
  padding-bottom: 50px;
}
.card {
  background: #fff;
  border: 1.5px solid #120a8f;
  border-radius: 24px;
  padding: 38px;
  box-shadow: 8px 8px 0 #ffdab9;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  position: relative;
}
.card:before {
  content: "";
  position: absolute;
  left: 38px;
  top: -5px;
  width: 48px;
  height: 9px;
  background: var(--ink);
  border: 2px solid var(--paper);
}
.card:after {
  content: "";
  position: absolute;
  right: 26px;
  top: 23px;
  width: 28px;
  height: 8px;
  background: repeating-linear-gradient(90deg, var(--ink) 0 3px, transparent 3px 7px);
  opacity: 0.55;
  pointer-events: none;
}
.registration,
.center {
  max-width: 520px;
}
h1 {
  font-family: "Extenda", "Bahnschrift", Arial, sans-serif;
  font-size: 46px;
  letter-spacing: -1.4px;
  font-weight: 700;
}
h2 {
  font-family: "Bahnschrift", Arial, sans-serif;
  font-weight: 600;
}
.registration h1 {
  margin: 10px 0 36px;
}
input {
  background: #f7f6f3;
  border: 1px solid #b8b5c5;
  border-radius: 10px;
  box-shadow: none;
}
input:focus {
  background: white;
  outline-color: var(--ink);
}
button {
  border-radius: 11px;
  background: var(--ink);
  box-shadow: none;
}
button:not(:disabled):hover {
  background: #2d239e;
  box-shadow: 3px 3px 0 #ffdab9;
}
.secondary {
  background: white;
  border-color: #b8b5c5;
}
.secondary:hover {
  color: var(--ink);
  background: #f5f3fa !important;
}
.text-button {
  background: transparent;
  box-shadow: none;
}
.text-button:hover {
  background: transparent !important;
  color: var(--ink);
  box-shadow: none !important;
}
.confirm-data {
  background: #f6f4ef;
  border: 1px solid #dedbe4;
  border-radius: 12px;
}
.option {
  background: white;
  border: 1px solid #c7c3d3;
  border-radius: 12px;
  box-shadow: none;
}
.option .letter {
  background: #f1eff6;
  border-radius: 7px;
}
.option:hover:not(:disabled) {
  background: #f2f9fe;
  border-color: #120a8f;
  box-shadow: none;
}
.option:disabled {
  background: #faf9fc;
  border-color: #d2cedc;
  color: #4e4a5d;
}
.option.selected:disabled {
  background: #bce7ff75;
  border: 2px solid #56a6d1;
  box-shadow: none;
  color: var(--ink);
}
.option.selected:disabled .letter {
  background: #bee6fb;
  color: var(--ink);
}
.answer-preview {
  background: #bce7ff75;
  border: 1px solid #56a6d1;
  border-radius: 12px;
}
.numbers button.answered {
  background: #ccecff;
  color: var(--ink);
}
.question-list {
  background: transparent;
  border-top: 1px solid #120a8f3d;
  border-radius: 0;
  padding: 12px 0 0;
}
.eyebrow,
#timer {
  font-family: "Bahnschrift", Consolas, monospace;
}
.mini-progress {
  background: #e6e3ef;
}
.mini-progress span {
  background: var(--ink);
}
#timer {
  background: var(--peach);
  border: 1px solid var(--ink);
  border-radius: 10px;
  backdrop-filter: none;
  box-shadow: none;
}
dialog {
  background: #fff;
  border: 1.5px solid var(--ink);
  border-radius: 22px;
  box-shadow: 7px 7px 0 #ffdab9;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
dialog::backdrop {
  background: #121025b8;
  backdrop-filter: none;
}
#warning {
  background: white;
  border-top: 5px solid var(--peach);
}
#warning::backdrop {
  background: #090714;
  backdrop-filter: none;
}
.flourishes {
  display: none;
}
footer {
  font:
    700 14px Arial,
    sans-serif;
  letter-spacing: 0.2px;
  color: var(--muted);
  border-top: 1px solid #120a8f1f;
  margin: 0 5%;
  padding: 24px 0;
}
body.screen-blocked .blueprint {
  visibility: hidden;
}
body:has(.quiz-shell) .orbit {
  right: -195px;
  background: transparent;
}
body:has(.quiz-shell) .rail {
  opacity: 0.22;
}
@media (prefers-reduced-motion: no-preference) {
  .question-enter {
    animation: question-in 0.25s ease-out;
  }
  .answer-pulse {
    animation: answer-glow 0.35s ease-out;
  }
  @keyframes question-in {
    from {
      opacity: 0;
      transform: translateY(12px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
  @keyframes answer-glow {
    0% {
      transform: scale(0.985);
    }
    60% {
      transform: scale(1.01);
    }
    100% {
      transform: scale(1);
    }
  }
}
@media (max-width: 900px) {
  .orbit {
    width: 230px;
    height: 230px;
    right: -150px;
    top: 15%;
  }
  .orbit i {
    inset: 20px;
  }
  .orbit i:nth-child(2) {
    inset: 40px;
  }
  .orbit i:nth-child(3) {
    inset: 60px;
  }
  .orbit:before {
    height: 280px;
  }
  .orbit:after {
    width: 280px;
  }
  .rail {
    left: -12px;
    bottom: 14%;
    opacity: 0.3;
  }
  .corner-cross {
    left: 6%;
    top: 15%;
    font-size: 22px;
  }
}
@media (max-width: 550px) {
  header {
    padding: 20px 24px;
  }
  .brand {
    font-size: 27px;
  }
  .brand-mark {
    font-size: 42px;
  }
  main {
    padding: 38px 20px;
  }
  .card {
    padding: 30px 22px;
    border-radius: 20px;
    box-shadow: 5px 5px 0 var(--peach);
  }
  h1 {
    font-size: 38px;
  }
  .card:before {
    left: 22px;
  }
  .card:after {
    right: 20px;
    top: 18px;
    width: 20px;
  }
  .question h2 {
    font-size: 24px;
  }
  .corner-cross {
    display: none;
  }
  .rail {
    bottom: 8%;
    opacity: 0.16;
  }
  .option {
    padding: 13px 12px;
  }
  dialog {
    padding: 28px 22px;
  }
  .orbit {
    right: -175px;
  }
  footer {
    font-size: 13px;
  }
}

/* Dense frosted glass: restrained palette, clear text, no circular ornament. */
.card {
  background: linear-gradient(125deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.87));
  border: 1px solid rgba(255, 255, 255, 0.98);
  border-radius: 28px;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow:
    inset 0 2px 1px #fff,
    inset 0 -2px 2px #120a8f09,
    0 0 0 1px #120a8f18,
    0 12px 30px #120a8f0c,
    6px 7px 0 #ffdab966;
}
.card:before {
  left: 9%;
  right: 9%;
  top: 0;
  width: auto;
  height: 2px;
  border: 0;
  border-radius: 50%;
  background: linear-gradient(90deg, transparent, #fff 25%, #fff 75%, transparent);
}
.card:after {
  top: 20px;
  right: 24px;
  opacity: 0.32;
}
.card h1,
.card h2,
.card label {
  position: relative;
}
input {
  background: linear-gradient(140deg, #f6f5f2f5, #ffffffed);
  border: 1px solid #d8d5df;
  border-radius: 14px;
  box-shadow:
    inset 0 2px 5px #120a8f06,
    0 1px 0 #fff;
}
input:focus {
  background: white;
}
.option {
  background: linear-gradient(125deg, #fffffffa, #f9f8fbf5);
  border-color: #d9d6e1;
  border-radius: 17px;
  box-shadow:
    inset 0 1px 0 #fff,
    0 2px 4px #120a8f04;
}
.option:disabled {
  background: #faf9fcf5;
}
.option.selected:disabled {
  background: linear-gradient(125deg, #d5effcf5, #e8f6fff0);
  border-color: #6eafd2;
  box-shadow:
    inset 0 2px 0 #ffffffbd,
    0 3px 10px #2984b312;
}
.option.selected:disabled .letter {
  background: #c5e8fa;
}
.secondary {
  background: linear-gradient(130deg, #fffffffa, #f4f3f8f5);
  border-color: #d6d2df;
  box-shadow: inset 0 1px 0 white;
}
button {
  border-radius: 15px;
}
.confirm-data {
  background: #f6f4eff0;
  border-color: #e0dde5;
}
#timer {
  background: linear-gradient(130deg, #ffead8f5, #ffdab9eb);
  border-color: #ffffffed;
  box-shadow:
    inset 0 2px 0 #ffffffc9,
    0 0 0 1px #120a8f20;
  border-radius: 15px;
}
dialog {
  background: linear-gradient(130deg, #fffffff7, #f8f7fcf5);
  border: 1px solid #fff;
  border-radius: 27px;
  box-shadow:
    inset 0 2px 1px white,
    0 0 0 1px #120a8f20,
    0 18px 45px #120a8f22;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
#warning {
  background: #fff;
  border-top: 5px solid var(--peach);
}
#warning::backdrop {
  background: #090714;
  backdrop-filter: none;
}
.answer-preview {
  background: #e0f3ffed;
  border-radius: 16px;
}
.rail {
  opacity: 0.7;
}
.corner-cross {
  opacity: 0.65;
}
@media (max-width: 550px) {
  .card {
    border-radius: 24px;
    box-shadow:
      inset 0 2px 1px #fff,
      0 0 0 1px #120a8f18,
      4px 5px 0 #ffdab966;
  }
  .card:before {
    left: 10%;
    right: 10%;
  }
  .option {
    border-radius: 15px;
  }
}
@supports not (backdrop-filter: blur(1px)) {
  .card,
  dialog {
    background: #fff;
  }
}

/* Continuous edge-to-edge ribbons behind clear glass. */
body {
  background: #f5f3ef;
}
.flow-background {
  position: fixed;
  inset: 0;
  z-index: -1;
  overflow: hidden;
  pointer-events: none;
}
.flow-background svg {
  width: 100%;
  height: 100%;
  display: block;
}
.flow-ribbon {
  stroke: #ffdab9;
  stroke-width: 76;
  opacity: 0.58;
}
.flow-lines {
  stroke: #120a8f;
  stroke-width: 1.2;
  opacity: 0.15;
}
.flow-secondary {
  stroke: #120a8f;
  stroke-width: 1.4;
  opacity: 0.1;
}
.card {
  background: linear-gradient(125deg, #ffffffa3, #ffffff59);
  border: 1px solid #fffffff2;
  backdrop-filter: blur(10px) saturate(105%);
  -webkit-backdrop-filter: blur(10px) saturate(105%);
  box-shadow:
    inset 0 2px 1px #ffffffed,
    inset 0 -1px 1px #ffffffb3,
    0 0 0 1px #120a8f0e,
    0 12px 30px #120a8f0b;
}
.card:after {
  display: none;
}
.card:before {
  height: 2px;
  left: 5%;
  right: 5%;
  background: linear-gradient(90deg, transparent, #fff 25%, #fff 70%, transparent);
}
input {
  background: #ffffff59;
  border-color: #bdb9c9;
  box-shadow:
    inset 0 2px 5px #120a8f05,
    0 1px 0 #ffffffd9;
}
input:focus {
  background: #ffffffad;
}
.option {
  background: linear-gradient(125deg, #ffffff9c, #ffffff47);
  border-color: #c6c2d2;
  box-shadow: inset 0 1px 0 #fff;
}
.option:disabled {
  background: #ffffff52;
}
.option.selected:disabled {
  background: linear-gradient(125deg, #a8ddfa94, #d9f2ff75);
  border-color: #66a9cf;
  box-shadow: inset 0 2px 0 #ffffffbd;
}
.secondary {
  background: #ffffff6b;
}
.confirm-data {
  background: #ffffff61;
  border-color: #ffffffc2;
}
dialog {
  background: linear-gradient(125deg, #ffffffe8, #ffffffc9);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  box-shadow:
    inset 0 2px 1px white,
    0 0 0 1px #120a8f12,
    0 18px 45px #120a8f20;
}
#warning {
  background: #fff;
}
#warning::backdrop {
  background: #090714;
  backdrop-filter: none;
}
body.screen-blocked .flow-background {
  visibility: hidden;
}
#timer {
  background: #ffe3cda6;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
@supports not (backdrop-filter: blur(1px)) {
  .card,
  dialog {
    background: #fffffff0;
  }
}
@media (max-width: 550px) {
  .flow-ribbon {
    stroke-width: 100;
    opacity: 0.42;
  }
  .flow-lines {
    stroke-width: 2;
    opacity: 0.1;
  }
  .flow-secondary {
    opacity: 0.08;
  }
  .card {
    box-shadow:
      inset 0 2px 1px white,
      0 0 0 1px #120a8f12,
      0 8px 25px #120a8f08;
  }
}
/* Страница команды и контактов. */
.site-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
}
.footer-link,
.back-link {
  color: var(--ink);
  text-decoration: none;
  font-weight: 700;
  font-size: 15px;
}
.footer-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 12px 18px;
  border: 1px solid #120a8f30;
  background: #ffffff70;
  border-radius: 14px;
}
.footer-link:hover,
.back-link:hover {
  background: #ffffffb0;
  text-decoration: underline;
  text-underline-offset: 4px;
}
.about-page {
  user-select: text;
  -webkit-user-select: text;
}
.about-main {
  max-width: 850px;
  padding-top: 35px;
  padding-bottom: 45px;
}
.about-card {
  padding: 42px;
}
.about-kicker {
  display: block;
  font:
    700 14px "Bahnschrift",
    Arial,
    sans-serif;
  letter-spacing: 1px;
  margin-bottom: 20px;
  color: var(--muted);
}
.about-card h1 {
  font-size: 44px;
  margin-bottom: 20px;
}
.about-intro {
  font-size: 18px;
  line-height: 1.65;
  max-width: 620px;
}
#about-link {
    display: inline-block;
    padding: 12px 24px;
    background-color: #2d239e;
    color: white;
    border: none;
    border-radius: 8px;
    text-decoration: none;
    font-size: 16px;
    cursor: pointer;
    transition: 0.3s;
}

#about-link:hover {
    background-color: #1d4ed8;
}
.team-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  margin: 28px 0;
  border-top: 1px solid #120a8f26;
}
.team-list > div {
  padding: 22px 0;
  border-bottom: 1px solid #120a8f26;
}
.team-list dt {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 8px;
}
.team-list dd {
  margin: 0;
  font-size: 23px;
  line-height: 1.4;
  font-weight: 700;
}
.team-mentors {
  grid-column: 1/-1;
}
.team-note {
  font-size: 17px;
  line-height: 1.7;
  border-left: 3px solid var(--peach);
  padding-left: 18px;
  margin: 26px 0;
}
.contact-block {
  border-top: 1px solid #120a8f26;
  padding-top: 25px;
  display: flex;
  align-items: center;
  gap: 24px;
  justify-content: space-between;
}
.contact-block h2 {
  font-size: 25px;
  margin-bottom: 8px;
}
.contact-block p {
  font-size: 16px;
  margin: 0;
  max-width: 290px;
}
.contact-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  flex-shrink: 0;
  border-radius: 15px;
  padding: 17px 20px;
  background: var(--ink);
  color: white;
  font-weight: 700;
  text-decoration: none;
  font-size: 17px;
}
.contact-link:hover {
  background: #2d239e;
  box-shadow: 0 5px 15px #120a8f1a;
}
@media (max-width: 650px) {
  .site-footer {
    justify-content: center;
    flex-direction: column;
    gap: 14px;
  }
  .about-card {
    padding: 30px 24px;
  }
  .about-card h1 {
    font-size: 34px;
  }
  .contact-block {
    align-items: stretch;
    flex-direction: column;
  }
  .team-list {
    grid-template-columns: 1fr;
  }
  .team-list dd {
    font-size: 21px;
  }
  .back-link {
    font-size: 14px;
  }
  .about-main {
    padding: 25px 20px;
  }
  .about-intro {
    font-size: 17px;
  }
}
