signup / src /app /page.module.css
burtenshaw's picture
burtenshaw HF Staff
Move registration above challenge flow
8a41708 verified
.page {
--shell-gutter: 56px;
min-height: 100vh;
width: 100%;
max-width: 100%;
overflow-x: hidden;
padding: 36px clamp(16px, 2.8vw, 28px) 72px;
}
.shell {
width: 100%;
max-width: min(920px, calc(100vw - var(--shell-gutter)));
margin: 0 auto;
display: grid;
gap: 28px;
min-width: 0;
}
.hero {
width: 100%;
display: grid;
gap: 18px;
max-width: 920px;
min-width: 0;
}
.partnerRail {
display: grid;
gap: 0;
width: 100%;
padding: 18px;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.02);
min-width: 0;
}
.partnerGrid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
gap: 0;
align-items: center;
}
.partnerCard {
display: flex;
align-items: center;
justify-content: center;
min-height: 110px;
padding: 0 10px;
min-width: 0;
}
.partnerMarkSurface {
width: 100%;
min-height: 92px;
padding: 6px 0;
display: flex;
align-items: center;
justify-content: center;
min-width: 0;
}
.openaiWordmark {
width: min(198px, 100%);
height: auto;
display: block;
}
.hfPirateLogo {
width: min(70px, 100%);
height: auto;
display: block;
}
.gpuModeLogo {
width: min(168px, 100%);
height: auto;
display: block;
}
.executorchLogo {
width: min(72px, 100%);
height: auto;
display: block;
}
.title {
font-size: clamp(2.3rem, 7vw, 4.6rem);
line-height: 0.95;
letter-spacing: -0.05em;
text-transform: uppercase;
}
.subtitle {
width: 100%;
max-width: min(760px, 100%);
font-size: 1rem;
line-height: 1.7;
color: #c6c6c6;
}
.heroMeta {
display: flex;
flex-wrap: wrap;
gap: 10px;
width: 100%;
max-width: 100%;
}
.heroMeta span {
max-width: 100%;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.03);
padding: 10px 12px;
font-size: 0.76rem;
letter-spacing: 0.08em;
text-transform: uppercase;
}
.grid {
display: grid;
width: 100%;
max-width: 100%;
grid-template-columns: 1fr;
gap: 20px;
align-items: start;
}
.panel {
border: 1px solid var(--border);
background: linear-gradient(180deg, rgba(20, 20, 20, 0.96), rgba(8, 8, 8, 0.96));
box-shadow: 0 28px 70px var(--shadow);
padding: 24px;
display: grid;
align-content: start;
gap: 18px;
min-width: 0;
}
.registrationPanel {
order: 1;
}
.challengePanel {
order: 2;
}
.panelLabel {
font-size: 0.74rem;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--muted);
}
.panelTitle {
font-size: clamp(1.35rem, 3vw, 2rem);
line-height: 1.05;
}
.panelCopy {
color: #d0d0d0;
line-height: 1.7;
}
.list {
display: grid;
gap: 12px;
padding-left: 18px;
color: #d0d0d0;
line-height: 1.7;
}
.noteBlock {
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.03);
padding: 16px;
display: grid;
gap: 8px;
}
.noteTitle {
font-size: 0.76rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--muted);
}
.noteBody {
font-size: 1rem;
}
.noteFoot {
color: var(--muted);
font-size: 0.86rem;
line-height: 1.6;
}
.profileCard {
display: flex;
gap: 16px;
align-items: center;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.03);
padding: 18px;
}
.avatar {
width: 72px;
height: 72px;
object-fit: cover;
border: 1px solid var(--border);
background: #111111;
}
.profileCopy {
display: grid;
gap: 6px;
}
.profileName {
font-size: 1.1rem;
}
.profileMeta {
color: var(--muted);
font-size: 0.9rem;
}
.inlineLink {
width: fit-content;
color: #ffffff;
text-decoration: underline;
text-underline-offset: 3px;
font-size: 0.86rem;
}
.detailGrid {
display: grid;
gap: 12px;
}
.detailRow {
display: grid;
gap: 6px;
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.02);
padding: 14px 16px;
}
.detailLabel {
font-size: 0.74rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--muted);
}
.detailValue {
line-height: 1.55;
word-break: break-word;
}
.actions {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: center;
}
.primaryButton,
.secondaryButton {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 50px;
padding: 0 18px;
border: 1px solid var(--border);
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 0.76rem;
transition:
background 0.18s ease,
color 0.18s ease,
border-color 0.18s ease,
transform 0.18s ease;
}
.primaryButton {
background: #ffffff;
color: #000000;
}
.primaryButton:disabled {
opacity: 0.6;
cursor: wait;
}
.secondaryButton {
background: transparent;
color: #ffffff;
}
.successBadge {
display: inline-flex;
align-items: center;
min-height: 44px;
padding: 0 14px;
border: 1px solid rgba(255, 255, 255, 0.35);
background: rgba(255, 255, 255, 0.08);
text-transform: uppercase;
letter-spacing: 0.12em;
font-size: 0.72rem;
}
.status {
border: 1px solid var(--border);
background: rgba(255, 255, 255, 0.03);
padding: 14px 16px;
line-height: 1.6;
color: #d8d8d8;
}
.statusInfo {
border-color: rgba(255, 255, 255, 0.22);
}
.statusSuccess {
border-color: rgba(255, 255, 255, 0.42);
color: #ffffff;
}
.statusError {
border-color: rgba(255, 255, 255, 0.42);
background: rgba(255, 255, 255, 0.08);
}
@media (hover: hover) and (pointer: fine) {
.primaryButton:hover,
.secondaryButton:hover {
transform: translateY(-1px);
}
.primaryButton:hover {
background: transparent;
color: #ffffff;
}
.secondaryButton:hover {
background: rgba(255, 255, 255, 0.08);
}
}
@media (max-width: 720px) {
.page {
--shell-gutter: 28px;
padding: 24px 14px 40px;
}
.heroMeta span {
width: 100%;
}
.panel {
padding: 18px;
}
.partnerRail {
padding: 16px;
}
.partnerMarkSurface {
min-height: 72px;
}
.openaiWordmark {
width: min(176px, 100%);
}
.gpuModeLogo {
width: min(160px, 100%);
}
.executorchLogo {
width: 68px;
}
.profileCard {
align-items: flex-start;
}
.actions {
flex-direction: column;
align-items: stretch;
}
.primaryButton,
.secondaryButton,
.successBadge {
width: 100%;
}
}