:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #081323;
  color: #eef6ff;
  font-synthesis: none;
}
* { box-sizing: border-box; }
body { margin: 0; min-width: 300px; }
.shell {
  min-height: 100vh;
  padding: 0 clamp(20px, 5vw, 80px);
  background: radial-gradient(ellipse at 75% 15%, #183959 0, transparent 43%),
              radial-gradient(ellipse at 0 80%, #102d32 0, transparent 35%), #081323;
}
.topbar, .brand { display: flex; align-items: center; }
.topbar { min-height: 94px; justify-content: space-between; gap: 20px; border-bottom: 1px solid #ffffff1c; }
.brand { gap: 12px; font-size: 16px; font-weight: 730; letter-spacing: -.03em; }
.brand small { display: block; margin-top: 3px; color: #9cb5ca; font-size: 11px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; }
.tag, .overline, .detail-number { color: #6de7c7; font-size: 11px; font-weight: 750; letter-spacing: .16em; }
.tag { padding: 9px 13px; border: 1px solid #6de7c74d; border-radius: 100px; white-space: nowrap; }
.content { max-width: 1260px; margin: 0 auto; padding: clamp(36px, 7vw, 96px) 0 56px; }
.hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(230px, .8fr); align-items: center; gap: 32px; }
.overline { margin: 0 0 20px; }
h1 { max-width: 670px; margin: 0; font-size: clamp(42px, 6vw, 78px); font-weight: 780; letter-spacing: -.065em; line-height: 1.06; }
.lead { max-width: 590px; margin: 24px 0 32px; color: #aec3d4; font-size: clamp(16px, 1.5vw, 19px); line-height: 1.7; }
.status { display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 12px 16px; border: 1px solid #42778c; border-radius: 12px; background: #14374b8c; color: #c3deed; font-size: 13px; font-weight: 650; }
.status-dot { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #ffcb72; box-shadow: 0 0 14px #ffcb7290; }
.status.ready { border-color: #399f88; background: #173f3f99; color: #b8f6e2; }
.status.ready .status-dot { background: #6de7c7; box-shadow: 0 0 14px #6de7c7aa; }
.illustration { position: relative; display: grid; place-items: center; aspect-ratio: 1; max-width: 440px; width: 100%; margin: 0 auto; }
.illustration::before { position: absolute; width: 68%; aspect-ratio: 1; border-radius: 50%; background: #36b1bd25; filter: blur(46px); content: ""; }
.orbit { position: absolute; border: 1px solid #5896aa55; border-radius: 50%; }
.orbit-outer { inset: 5%; }
.orbit-inner { inset: 21%; border-style: dashed; }
.illustration-center { z-index: 1; display: grid; place-items: center; width: 138px; height: 138px; border: 1px solid #76f5cd70; border-radius: 36px; background: #163b50; box-shadow: 0 24px 80px #0006; transform: rotate(-6deg); }
.illustration-center img { transform: rotate(6deg); }
.orbit-dot { position: absolute; z-index: 1; width: 12px; height: 12px; border-radius: 50%; background: #6de7c7; box-shadow: 0 0 22px #6de7c7b0; }
.dot-one { top: 14%; right: 22%; }
.dot-two { bottom: 20%; left: 14%; width: 8px; height: 8px; background: #a5d2ff; }
.session-panel { margin-top: 44px; padding: clamp(22px, 4vw, 40px); border: 1px solid #6de7c751; border-radius: 24px; background: linear-gradient(140deg, #163249ec, #101f34eb); box-shadow: 0 20px 70px #0003; }
.session-heading, .action-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.session-heading .overline { margin: 0 0 8px; }
.session-heading h2 { margin: 0; font-size: clamp(24px, 3vw, 32px); }
.session-badge { display: inline-flex; padding: 9px 14px; border: 1px solid #7294a1; border-radius: 50px; color: #d0e0e9; font-size: 12px; font-weight: 720; white-space: nowrap; }
.session-badge[data-state="valid"], .check-item strong[data-state="valid"] { color: #85f4ce; border-color: #42b995; }
.session-badge[data-state="invalid"], .session-badge[data-state="expired"], .check-item strong[data-state="invalid"], .check-item strong[data-state="expired"], .check-item strong[data-state="missing"] { color: #ffb7b7; border-color: #eb7f86; }
.session-message { margin: 18px 0 25px; color: #b8cfdb; line-height: 1.6; }
.check-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.check-item { display: flex; flex-direction: column; gap: 15px; min-width: 0; padding: 17px; border: 1px solid #ffffff25; border-radius: 15px; background: #08182a88; color: #b2c8d8; font-size: 13px; }
.check-item strong { width: fit-content; padding: 5px 9px; border: 1px solid #7c9aab; border-radius: 8px; color: #d2e4ed; font-size: 12px; }
.expiry-panel { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; margin: 22px 0; padding: 15px 18px; border: 1px solid #ffffff20; border-radius: 13px; color: #afc5d5; font-size: 13px; }
.expiry-panel strong { color: #f0f7ff; font-size: 14px; }
.expiry-panel span:last-child { margin-left: auto; color: #6de7c7; font-weight: 700; }
.claims-section { padding: 22px; border: 1px solid #ffffff20; border-radius: 15px; background: #08192999; }
.claims-section h3 { margin: 0 0 17px; font-size: 16px; }
.claims-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; margin: 0; }
.claims-grid div { min-width: 0; }
.claims-grid dt { margin: 0 0 4px; color: #91abbf; font-size: 11px; font-weight: 740; letter-spacing: .05em; text-transform: uppercase; }
.claims-grid dd { margin: 0; overflow-wrap: anywhere; font-size: 13px; line-height: 1.5; }
.action-row { justify-content: flex-start; margin-top: 22px; }
.action-row button { padding: 12px 16px; border: 1px solid #3cc79e; border-radius: 10px; background: #237c69; color: white; cursor: pointer; font: inherit; font-size: 13px; font-weight: 720; }
.action-row button:hover:not(:disabled), .action-row button:focus-visible { background: #2a9a7d; }
.action-row button:disabled { border-color: #7291a4; background: #375063; color: #d3e1eb; cursor: not-allowed; }
.action-row p, .privacy-note { margin: 0; color: #b3c8d7; font-size: 12px; line-height: 1.6; }
.privacy-note { margin-top: 20px; color: #94acbf; }
.details { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 28px; }
.detail-card { min-height: 196px; padding: 25px; border: 1px solid #ffffff1c; border-radius: 20px; background: #12253bc4; }
.detail-number { color: #86b9c7; font-size: 10px; }
h2 { margin: 22px 0 9px; font-size: 18px; letter-spacing: -.025em; }
.detail-card p { margin: 0; color: #a4bacd; font-size: 14px; line-height: 1.6; }
.footer { max-width: 1260px; margin: 0 auto; padding: 24px 0 32px; border-top: 1px solid #ffffff1c; color: #89a4b8; font-size: 12px; }
@media (max-width: 780px) {
  .hero { grid-template-columns: 1fr; }
  .illustration { max-width: 275px; }
  .details, .check-grid, .claims-grid { grid-template-columns: 1fr; }
  .details { margin-top: 20px; }
  .detail-card { min-height: auto; }
  .session-heading, .action-row { align-items: flex-start; flex-direction: column; }
  .expiry-panel span:last-child { margin-left: 0; }
}
@media (max-width: 420px) { .tag { display: none; } }