/* Buy page. Builds on /styles.css: the same navigation, panels, type, and
   square buttons as the home page. */
.buy-hero { padding-block: 150px 40px; }
.buy-heading { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; margin-top: 26px; }
.buy-heading .intro { max-width: 400px; padding-bottom: 6px; }
.buy-steps { list-style: none; margin: 64px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.buy-steps li:nth-child(2) a { --i: 1; }
.buy-steps li:nth-child(3) a { --i: 2; }
.buy-steps a { --i: 0; --delay: calc(.5s + var(--i) * .6s); position: relative; display: block; height: 100%; padding: 28px 28px 32px; background: #f4f5f7; border-radius: 2px; overflow: hidden; transition: background .3s, transform .3s; }
.buy-steps a:hover { background: #edf2ff; transform: translateY(-3px); }
.buy-steps span { display: inline-grid; place-items: center; width: 36px; height: 36px; border: 1px solid #c9ccd2; border-radius: 2px; font: 12px monospace; color: var(--muted); animation: step-number .4s ease forwards; animation-delay: calc(var(--delay) + .45s); }
.buy-steps h2 { font-size: 26px; letter-spacing: -.8px; margin-top: 26px; }
.buy-steps p { font-size: 14px; color: var(--muted); margin-top: 10px; max-width: 300px; }
.buy-steps i { position: absolute; right: 26px; top: 30px; font-style: normal; font-size: 16px; color: #9aa0aa; transition: transform .3s, color .3s; }
.buy-steps a:hover i { transform: translateY(3px); color: var(--blue); }
/* On entry a blue line runs along each step in turn, with a soft sheen
   crossing the card, and the step number turns blue. */
.buy-steps a::before { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 3px; background: var(--blue); transform: scaleX(0); transform-origin: left; animation: step-line .7s cubic-bezier(.65, 0, .35, 1) forwards; animation-delay: var(--delay); }
.buy-steps a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, transparent 25%, rgb(50 107 250 / 12%) 50%, transparent 75%); transform: translateX(-100%); animation: step-sheen 1.1s ease forwards; animation-delay: var(--delay); pointer-events: none; }
@keyframes step-line { to { transform: scaleX(1); } }
@keyframes step-sheen { to { transform: translateX(100%); } }
@keyframes step-number { to { background: var(--blue); border-color: var(--blue); color: #fff; } }
@media (prefers-reduced-motion: reduce) {
  .buy-steps a::before { animation: none; transform: scaleX(1); }
  .buy-steps a::after { display: none; }
  .buy-steps span { animation: none; background: var(--blue); border-color: var(--blue); color: #fff; }
}

.buy-section-heading { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; }
.buy-section-heading .intro { font-size: 15px; max-width: 380px; padding-bottom: 4px; }
.board-cards { margin-top: 55px; }
.board-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 60px; align-items: center; padding: 40px 0; border-top: 1px solid var(--line); }
.board-card:last-child { border-bottom: 1px solid var(--line); }
.board-card-art { position: relative; height: 300px; padding: 34px 44px 50px; background: radial-gradient(ellipse 70% 60% at 50% 55%, #fff 0%, #f3f4f6 70%, #eceef1 100%); overflow: hidden; }
.board-card-art::after { content: ""; position: absolute; left: 22%; right: 22%; bottom: 32px; height: 18px; border-radius: 50%; background: radial-gradient(ellipse, rgb(16 17 18 / 16%), transparent 70%); }
.board-card-art img { position: relative; z-index: 1; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 14px 18px rgb(16 17 18 / 14%)); transition: transform .8s cubic-bezier(.2, .7, .2, 1); }
.board-card:hover .board-card-art img { transform: translateY(-6px) scale(1.02); }
.board-card-index { font: 10px monospace; color: #8d939f; }
.board-card h3 { font-size: 30px; letter-spacing: -1.2px; margin-top: 14px; }
.board-card-specs { font: 11px monospace; color: var(--muted); margin-top: 10px; }
.board-card-text > p:not(.board-card-specs) { font-size: 14px; color: var(--muted); margin-top: 18px; max-width: 440px; }
.board-card dl { display: grid; grid-template-columns: 80px 1fr; gap: 9px 16px; margin: 24px 0 28px; font-size: 13px; max-width: 440px; }
.board-card dt { font: 10px monospace; text-transform: uppercase; letter-spacing: .5px; color: #8d939f; padding-top: 2px; }
.board-card dd { margin: 0; }
.button-line { background: var(--paper); color: var(--ink); border-color: var(--line); }
.button-line:hover { border-color: #a1a8b5; transform: translateY(-2px); }
.button-white { background: #fff; color: var(--blue); }
.button-white:hover { background: #eef3ff; transform: translateY(-2px); }

.licence-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: start; }
.licence-layout .intro { margin-top: 25px; max-width: 360px; }
.licence-layout .button { margin-top: 30px; }
.licence-points { list-style: none; margin: 0; padding: 0; }
.licence-points li { border-top: 1px solid var(--line); padding: 24px 0 28px; }
.licence-points h3 { font-size: 20px; }
.licence-points p { font-size: 14px; margin-top: 10px; max-width: 440px; }
.flash-layout { display: grid; grid-template-columns: 1.2fr 1fr; gap: 80px; align-items: end; }
.flash-layout .intro { max-width: 380px; }
.flash-layout .button { margin-top: 28px; }

@media (max-width: 1050px) {
  .buy-heading, .buy-section-heading, .licence-layout, .flash-layout { gap: 45px; }
  .board-card { gap: 40px; }
}
@media (max-width: 760px) {
  .buy-hero { padding-block: 112px 20px; }
  .buy-heading, .buy-section-heading, .licence-layout, .flash-layout { grid-template-columns: 1fr; gap: 24px; }
  .buy-steps { grid-template-columns: 1fr; gap: 12px; margin-top: 40px; }
  .buy-steps a { padding: 22px 22px 24px; }
  .buy-steps h2 { font-size: 22px; margin-top: 18px; }
  .board-cards { margin-top: 35px; }
  .board-card { grid-template-columns: 1fr; gap: 22px; padding: 28px 0; }
  .board-card-art { height: 230px; padding: 26px 26px 40px; }
  .board-card h3 { font-size: 24px; }
}
