 * {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
   -webkit-tap-highlight-color: transparent;
 }

 html {
   scroll-behavior: smooth;
 }


 html,
 body {
   min-height: 100%;
   margin: 0;
   height: 100%;
 }


 body {
   color: var(--text);
   background: linear-gradient(135deg, #0d7ca5 0%, #157599 25%, #4b8ca8 60%, #2b6078 100%);
   font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
     "Segoe UI", sans-serif;
 }

 .container-wrapper {
   display: flex;
   flex-direction: column;
   min-width: 320px;
   min-height: 100%;
   height: 100%;
   overflow-x: hidden;
 }

 .container {
   display: flex;
   flex-direction: column;
   align-items: center;
   width: 100%;
   max-width: 1040px;
   height: 100%;
   min-height: 100%;
   margin: 0 auto;
   overflow-y: scroll;
 }

 .container::-webkit-scrollbar {
   display: none;
 }

 :root {
   --bg: #080b18;
   --bg-soft: #11162b;
   --surface: rgba(22, 28, 52, 0.88);
   --surface-solid: #171d35;
   --surface-light: #f7f8ff;
   --text: #f7f8ff;
   --text-dark: #15182a;
   --muted: #e1e1e1;
   --muted-dark: #616980;
   --violet: #8b72ff;
   --violet-dark: #6750dc;
   --cyan: #4bd6e8;
   --pink: #ff6fae;
   --yellow: #ffd76a;
   --line: rgba(255, 255, 255, 0.12);
   --shadow: 0 26px 70px rgba(0, 0, 0, 0.38);
 }


 a {
   color: inherit;
 }

 button,
 a {
   font: inherit;
 }

 .page-shell {
   width: min(550px, 100%);
   margin: 0 auto;
   position: relative;
 }

 .hero-screen {
   min-height: 100svh;
   min-height: 100dvh;
   padding: 20px 18px calc(18px + env(safe-area-inset-bottom));
   display: flex;
   flex-direction: column;
   position: relative;
   isolation: isolate;
 }

 .intro {
   margin-bottom: 18px;
 }

 .eyebrow {
   margin: 0 0 8px;
   color: var(--cyan);
   font-size: 12px;
   font-weight: 900;
   letter-spacing: 0.08em;
   text-transform: uppercase;
 }

 .intro h1 {
   margin: 0 0 10px;
   max-width: 390px;
   font-size: clamp(36px, 10.6vw, 49px);
   line-height: 0.98;
   letter-spacing: -0.055em;
   font-weight: 950;
   text-wrap: balance;
 }

 .intro p {
   margin: 0;
   max-width: 390px;
   color: var(--muted);
   font-size: 14.5px;
   line-height: 1.45;
   font-weight: 600;
 }

 .intro strong {
   color: #fff;
 }

 .quiz-card {
   position: relative;
   overflow: hidden;
   padding: 17px 14px 15px;
   border: 1px solid rgba(255, 255, 255, 0.14);
   border-radius: 28px;
   background:
     linear-gradient(180deg, rgba(255, 255, 255, 0.08), transparent 28%),
     var(--surface);
   box-shadow: var(--shadow);
   backdrop-filter: blur(18px);
   animation: cardIn 0.42s ease-out both;
 }

 .quiz-card::before {
   content: "";
   position: absolute;
   inset: 0 auto auto 0;
   width: 100%;
   height: 4px;
   background: linear-gradient(90deg, var(--pink), var(--violet), var(--cyan));
 }

 .sequence {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 7px;
   margin: 4px auto 15px;
 }

 .arrow {
   width: 14px;
   height: 2px;
   border-radius: 99px;
   background: #59617b;
   position: relative;
   flex: 0 0 auto;
 }

 .arrow::after {
   content: "";
   position: absolute;
   right: 0;
   top: -3px;
   width: 6px;
   height: 6px;
   border-top: 2px solid #727b9a;
   border-right: 2px solid #727b9a;
   transform: rotate(45deg);
 }

 .tile {
   width: 52px;
   height: 52px;
   padding: 8px;
   display: grid;
   grid-template-columns: repeat(2, 1fr);
   gap: 5px;
   border: 1px solid rgba(255, 255, 255, 0.16);
   border-radius: 16px;
   background: #202743;
   box-shadow: 0 8px 20px rgba(0, 0, 0, 0.22);
 }

 .tile i {
   border-radius: 5px;
   background: #343c5d;
 }

 .tile.one i:nth-child(1),
 .tile.two i:nth-child(1),
 .tile.three i:nth-child(1) {
   background: var(--pink);
 }

 .tile.two i:nth-child(2),
 .tile.three i:nth-child(2) {
   background: var(--yellow);
 }

 .tile.three i:nth-child(3) {
   background: var(--cyan);
 }

 .tile.missing {
   padding: 0;
   place-items: center;
   border: 1px dashed rgba(75, 214, 232, 0.72);
   background: rgba(75, 214, 232, 0.08);
   color: var(--cyan);
   font-size: 25px;
   font-weight: 950;
   grid-template-columns: 1fr;
 }

 .quiz-card h2 {
   margin: 0 6px 5px;
   text-align: center;
   font-size: clamp(24px, 7vw, 30px);
   line-height: 1.06;
   letter-spacing: -0.04em;
   font-weight: 950;
 }

 .hint {
   margin: 0 0 13px;
   text-align: center;
   color: #929ab7;
   font-size: 12.5px;
   line-height: 1.35;
   font-weight: 700;
 }

 .answers {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 10px;
 }

 .answer {
   min-height: 92px;
   display: grid;
   place-items: center;
   border: 1px solid rgba(255, 255, 255, 0.12);
   border-radius: 20px;
   background: rgba(255, 255, 255, 0.055);
   text-decoration: none;
   transition:
     transform 0.13s ease,
     border-color 0.13s ease,
     background 0.13s ease,
     box-shadow 0.13s ease;
 }

 .answer .answer-tile {
   width: 55px;
   height: 55px;
   padding: 9px;
 }

 .answer:hover,
 .answer:focus-visible {
   border-color: rgba(139, 114, 255, 0.9);
   background: rgba(139, 114, 255, 0.13);
   box-shadow: 0 12px 28px rgba(103, 80, 220, 0.22);
   outline: 3px solid rgba(139, 114, 255, 0.16);
   outline-offset: 2px;
 }

 .answer:active {
   transform: scale(0.97);
 }

 .answer:nth-child(1) .answer-tile i:nth-child(1) {
   background: var(--pink);
 }

 .answer:nth-child(1) .answer-tile i:nth-child(2) {
   background: var(--yellow);
 }

 .answer:nth-child(1) .answer-tile i:nth-child(3) {
   background: var(--cyan);
 }

 .answer:nth-child(1) .answer-tile i:nth-child(4) {
   background: var(--violet);
 }

 .answer:nth-child(2) .answer-tile i:nth-child(1),
 .answer:nth-child(2) .answer-tile i:nth-child(4) {
   background: var(--violet);
 }

 .answer:nth-child(3) .answer-tile i:nth-child(2),
 .answer:nth-child(3) .answer-tile i:nth-child(3),
 .answer:nth-child(3) .answer-tile i:nth-child(4) {
   background: var(--cyan);
 }

 .answer:nth-child(4) .answer-tile i:nth-child(1),
 .answer:nth-child(4) .answer-tile i:nth-child(2),
 .answer:nth-child(4) .answer-tile i:nth-child(4) {
   background: var(--pink);
 }

 .scroll-note {
   margin-top: auto;
   padding-top: 14px;
   text-align: center;
   color: #fff;
   font-size: 11.5px;
   font-weight: 750;
 }

 .scroll-note span {
   display: inline-flex;
   align-items: center;
   gap: 8px;
 }

 .scroll-note span::before {
   content: "↓";
   width: 22px;
   height: 22px;
   display: grid;
   place-items: center;
   border: 1px solid var(--line);
   border-radius: 50%;
   color: #fff;
   background: rgba(255, 255, 255, 0.05);
 }

 .details {
   padding: 34px 17px 18px;
 }

 .details-card {
   padding: 23px 18px;
   color: var(--text-dark);
   border-radius: 28px;
   background:
     radial-gradient(circle at 100% 0%, rgba(139, 114, 255, 0.15), transparent 25%),
     var(--surface-light);
   box-shadow: 0 24px 55px rgba(0, 0, 0, 0.28);
 }

 .details-card h2 {
   margin: 0 0 10px;
   font-size: 32px;
   line-height: 1;
   letter-spacing: -0.05em;
   font-weight: 950;
   text-wrap: balance;
 }

 .details-card>p {
   margin: 0 0 15px;
   color: var(--muted-dark);
   font-size: 14.5px;
   line-height: 1.5;
   font-weight: 560;
 }

 .steps {
   display: grid;
   gap: 10px;
   margin: 16px 0;
 }

 .step {
   display: grid;
   grid-template-columns: 36px 1fr;
   gap: 12px;
   align-items: start;
   padding: 13px;
   border: 1px solid #e1e4f0;
   border-radius: 17px;
   background: #fff;
 }

 .step-number {
   width: 36px;
   height: 36px;
   display: grid;
   place-items: center;
   border-radius: 12px;
   color: #fff;
   background: linear-gradient(145deg, var(--violet), var(--violet-dark));
   font-size: 13px;
   font-weight: 950;
 }

 .step:nth-child(2) .step-number {
   background: linear-gradient(145deg, var(--pink), #dc4c8b);
 }

 .step b {
   display: block;
   margin: 1px 0 3px;
   font-size: 14px;
 }

 .step p {
   margin: 0;
   color: var(--muted-dark);
   font-size: 13px;
   line-height: 1.42;
 }

 .info-box {
   margin: 10px 0;
   padding: 14px;
   border: 1px solid #dfe3ef;
   border-radius: 17px;
   color: #4c5369;
   background: #fff;
   font-size: 14px;
   line-height: 1.46;
 }

 .info-box b {
   display: block;
   margin-bottom: 4px;
   color: var(--text-dark);
 }

 .info-box.notice {
   border-color: #c8c3f4;
   background: #f1efff;
 }

 .info-box.price {
   border-color: #ffc4dd;
   background: #fff0f7;
 }

 .info-box.price strong {
   color: #a22b66;
 }

 .footer {
   padding: 10px 18px 30px;
   color: #fff;
   font-size: 11.5px;
   line-height: 1.5;
   text-align: center;
 }

 .footer p {
   margin: 0 0 9px;
 }

 .footer a {
   font-weight: 800;
   text-underline-offset: 3px;
 }

 @keyframes cardIn {
   from {
     opacity: 0.55;
     transform: translateY(10px) scale(0.992);
   }

   to {
     opacity: 1;
     transform: translateY(0) scale(1);
   }
 }

 @media (max-height: 710px) {
   .hero-screen {
     padding-top: 15px;
   }

   .topbar {
     margin-bottom: 14px;
   }

   .intro {
     margin-bottom: 10px;
   }

   .intro h1 {
     font-size: 34px;
     margin-bottom: 6px;
   }

   .intro p {
     font-size: 13px;
     line-height: 1.32;
   }

   .quiz-card {
     padding: 12px;
   }

   .sequence {
     margin-bottom: 9px;
   }

   .tile {
     width: 43px;
     height: 43px;
     padding: 7px;
   }

   .quiz-card h2 {
     font-size: 23px;
   }

   .hint {
     margin-bottom: 9px;
   }

   .answer {
     min-height: 70px;
   }

   .answer .answer-tile {
     width: 46px;
     height: 46px;
     padding: 8px;
   }

   .scroll-note {
     padding-top: 8px;
   }
 }

 @media (max-width: 355px) {
   .hero-screen {
     padding-inline: 14px;
   }

   .intro h1 {
     font-size: 32px;
   }

   .tile {
     width: 43px;
     height: 43px;
   }

   .arrow {
     width: 10px;
   }

   .answer {
     min-height: 78px;
   }
 }


 @media (prefers-reduced-motion: reduce) {
   html {
     scroll-behavior: auto;
   }

   .quiz-card {
     animation: none;
   }

   .answer {
     transition: none;
   }
 }