html,
body {
height: 100%;
}
body {
background: linear-gradient(90deg, #024b78, #0bb0be);
margin: 0;
height: 100vh;
max-height: 100vh;
overflow: hidden;
font-family: 'Montserrat', sans-serif;
display: flex;
flex-direction: column;
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: border-box;
}
/* Fits a 890×610 window with a 68px browser sidebar (~822×610 content)
by compacting chrome — cards stay full size. */
/* header */
header {
color: #ffffff;
display: flex;
flex: 0 0 auto;
height: 48px;
padding: 4px 12px;
align-items: center;
justify-content: start;
}
header img {
height: 36px;
width: auto;
}
header-logo {
height: 50px;
width: 100px;
}
.branding {
font-weight: 600;
margin: 0 12px;
font-size: 1.25rem;
text-transform: uppercase;
}
section {
flex: 1 1 auto;
min-height: 0;
display: flex;
flex-direction: column;
justify-content: center;
padding: 8px 8px 0;
}
/* cards */
.download-cards {
margin: 0 auto;
padding: 0;
width: 100%;
max-width: 1400px;
text-align: center;
color: #ffffff;
display: flex;
flex-direction: column;
align-items: center;
min-height: 0;
}
.download-cards-text {
font-weight: 600;
font-size: 1.25rem;
margin: 0 0 2px;
flex-shrink: 0;
}
.download-cards > a {
font-size: 13px !important;
margin-top: 2px !important;
flex-shrink: 0;
}
.download-options {
display: flex;
flex-wrap: nowrap;
justify-content: center;
align-items: flex-start;
width: 100%;
margin: 8px auto 0;
gap: 4px;
min-height: 0;
}
.download-row {
display: contents;
}
#windows-option {
order: 1;
}
#apple-silicon-option {
order: 2;
}
#apple-arm-option {
order: 3;
}
#apple-intel-option {
order: 4;
}
#linux-option {
order: 5;
}
/* When five full-size cards cannot sit on one row: Win+Linux on top, Macs below.
Card size is driven by --card-height from index.js (innerHeight), not 100vh. */
@media (max-width: 1024px) {
section {
padding: 2px 6px 0;
justify-content: center;
}
body.qt-embed section {
padding-top: 4px;
}
.download-cards {
flex: 0 1 auto;
justify-content: flex-start;
max-height: 100%;
}
.download-cards-text {
font-size: 1.05rem;
}
.download-cards > a {
font-size: 12px !important;
margin-top: 0 !important;
}
.download-options {
flex: 0 0 auto;
flex-direction: column;
flex-wrap: nowrap;
align-items: center;
justify-content: flex-start;
gap: 0;
margin-top: 2px;
}
.download-row {
display: flex;
flex-wrap: nowrap;
justify-content: center;
align-items: flex-start;
gap: 2px;
flex: 0 0 auto;
}
#windows-option,
#apple-silicon-option,
#apple-arm-option,
#apple-intel-option,
#linux-option {
order: initial;
}
.card {
width: 148px;
height: var(--card-height, 200px);
min-height: var(--card-height, 200px);
max-height: var(--card-height, 200px);
margin: 1px;
padding: var(--card-pad, 12px) 14px;
}
.card:hover {
transform: none;
}
.option-logo {
font-size: var(--card-logo-size, 56px);
margin-bottom: var(--card-logo-gap, 8px);
}
.card-info {
min-height: 0;
}
.card-info h3 {
margin: 0 0 2px;
font-size: 0.95rem;
}
.card-info p {
font-size: 11px;
line-height: 1.15;
}
.card button {
height: var(--card-btn-height, 30px);
font-size: 13px;
}
.detected-message {
height: 14px;
margin-top: 0;
font-size: 11px;
}
}
/* Qt embed: collapse chrome so the download header sits at the top */
body.qt-embed header,
body.qt-embed footer {
display: none;
}
body.qt-embed section {
padding-top: 8px;
}
@media (max-width: 1024px) {
body.qt-embed section {
padding-top: 6px;
}
}
/* Apple flip card */
.flip-card,
.flip-card--detected {
background: transparent;
margin: 15px;
perspective: 500px;
transition: 0.5s;
}
.flip-card:hover {
transform: scale(1.1);
}
.flip-card:hover .flip-card-inner,
.flip-card--detected:hover .flip-card-inner {
transform: rotatey(180deg);
}
.flip-card-inner {
transition: 0.5s;
transform-style: preserve-3d;
box-shadow: 0px 8px 8px rgba(29, 28, 29, 0.5);
}
.flip-card-inner:hover {
transition: 0.5s;
box-shadow: 0px 12px 12px rgba(29, 28, 29, 0.5);
}
.flip-card-front,
.flip-card-back {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
}
.flip-card-front {
position: absolute;
align-content: space-between;
background: rgba(255, 255, 255, 1);
border-radius: 8px;
color: #1d1c1d;
display: flex;
flex-direction: column;
font-weight: 500;
height: 300px;
padding: 40px 30px;
width: 180px;
}
.flip-card-back {
align-content: space-between;
background: rgba(255, 255, 255, 1);
border-radius: 8px;
color: #1d1c1d;
display: flex;
flex-direction: column;
font-weight: 500;
height: 300px;
padding: 40px 30px;
width: 180px;
transform: rotatey(180deg);
}
.version-selection {
display: flex;
flex-direction: column;
align-items: center;
margin: 10px 0;
}
.version-selection button {
margin: 0;
width: 180px;
}
.version-selection p {
margin-bottom: 2px;
}
/* standard card */
.option {
display: flex;
flex-direction: column;
align-items: center;
border: 2px solid transparent;
border-radius: 15px;
flex-shrink: 0;
}
.option--detected {
border: 2px solid #ffffff;
border-radius: 15px;
transition: 0.5s;
}
.option--detected:hover {
border: 2px solid #ffffff;
}
.detected-message {
visibility: hidden;
height: 18px;
margin-top: 6px;
font-size: 13px;
text-shadow: 0px 5px 8px rgba(29, 28, 29, 0.5);
width: 100%;
text-align: center;
pointer-events: none;
}
.detected-message--detected {
visibility: visible;
}
.detected-message p {
margin: 0;
}
.card {
background: rgba(255, 255, 255, 1);
border-radius: 8px;
box-shadow: 0px 8px 8px rgba(29, 28, 29, 0.5);
color: #1d1c1d;
display: flex;
flex-direction: column;
align-items: center;
font-weight: 500;
height: var(--card-height, 300px);
min-height: var(--card-height, 300px);
max-height: var(--card-height, 300px);
margin: 6px;
padding: var(--card-pad, 40px) 30px;
width: 180px;
transition: box-shadow 0.25s;
z-index: 10;
box-sizing: border-box;
flex-shrink: 0;
}
.card:hover {
box-shadow: 0px 12px 12px rgba(29, 28, 29, 0.5);
transform: scale(1.05);
}
.card--detected {
transform: none !important;
}
.option-logo {
font-size: var(--card-logo-size, 100px);
margin-bottom: var(--card-logo-gap, 20px);
line-height: 1;
flex-shrink: 0;
}
.card-info {
display: flex;
flex-direction: column;
align-items: center;
justify-content: flex-start;
flex: 1 1 auto;
width: 100%;
min-height: 90px;
text-align: center;
}
.card-info h3 {
margin: 0 0 6px;
font-size: 1.17em;
line-height: 1.2;
}
.card-info p {
margin: 0;
line-height: 1.35;
font-size: 14px;
}
.card button {
background: #007e9c;
border: none;
border-radius: 30px;
color: #ffffff;
font-size: medium;
font-weight: 500;
margin-top: auto;
width: 100%;
height: var(--card-btn-height, 40px);
flex-shrink: 0;
transition: 0.25s;
}
.card button:hover:not(:disabled) {
background: #ffffff;
border: 2px solid #007e9c;
color: #007e9c;
cursor: pointer;
transition: 0.25s;
}
.card button:disabled {
background: #9aa7ac;
color: #ffffff;
cursor: not-allowed;
}
.card button:active {
background: #0bb0be;
color: #ffffff;
transition: 0.15s;
}
/* footer */
footer {
border-top: 2px solid #007e9c;
padding: 0 16px;
font-size: 11px;
background: #1d1c1d;
color: #ffffff;
position: relative;
flex: 0 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
height: 40px;
gap: 8px;
}
.copyright {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
min-width: 0;
}
.social-links {
display: flex;
justify-content: flex-end;
flex-shrink: 0;
}
.social-link {
color: #ffffff;
font-size: 1.25rem;
margin: 0 6px;
transition: 0.25s;
}
.social-link:hover {
color: rgba(11, 176, 190, 0.8);
cursor: pointer;
transition: 0.25s;
}