/* The contest site's pages. Every value is a token from design/tokens.css. */
*{box-sizing:border-box}
body{margin:0;min-height:100vh;background:var(--surface-page);color:var(--text-primary);
     font-family:var(--font-ui);font-size:var(--type-sm);line-height:var(--leading-normal)}
.topbar{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);
     background:var(--surface-panel);border-bottom:var(--line-width) solid var(--line)}
.topbar .brand{font-family:var(--font-display);font-weight:var(--weight-bold);font-size:var(--type-md);
     color:var(--text-primary);text-decoration:none}
.topbar .brand span{color:var(--text-muted);font-weight:var(--weight-medium)}
.topbar a{font-size:var(--type-xs);color:var(--text-muted);text-decoration:none}
.topbar a:hover{color:var(--accent)}
.sp{margin-left:auto}
main{max-width:780px;margin:0 auto;padding:var(--space-8) var(--space-4) var(--space-12, 64px)}
h1{font-family:var(--font-display);font-size:var(--type-lg);margin:0 0 var(--space-2)}
h2{font-size:var(--type-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);
   font-weight:var(--weight-medium);margin:var(--space-8) 0 var(--space-3)}
.lede{color:var(--text-secondary);margin:0 0 var(--space-4)}
.muted{color:var(--text-muted);font-size:var(--type-xs)}
.card{background:var(--surface-panel);border:var(--line-width) solid var(--line);border-radius:var(--radius-resting);
     padding:var(--space-4);margin-bottom:var(--space-3)}
a.card{display:block;color:inherit;text-decoration:none;transition:all var(--motion-fast) var(--ease)}
a.card:hover{border-color:var(--accent);border-radius:var(--radius-active)}
.card .name{font-weight:var(--weight-medium);font-size:var(--type-md)}
table{width:100%;border-collapse:collapse;font-size:var(--type-xs)}
td,th{text-align:left;padding:var(--space-2);border-bottom:var(--line-width) solid var(--line);vertical-align:top}
th{color:var(--text-muted);font-weight:var(--weight-medium)}
label{display:block;font-size:var(--type-xs);color:var(--text-muted);margin:var(--space-3) 0 var(--space-1)}
input,select,textarea{width:100%;font:inherit;background:var(--surface-sunken);color:var(--text-primary);
     border:var(--line-width) solid var(--line);border-radius:var(--radius-resting);padding:var(--space-2) var(--space-3)}
textarea{font-family:var(--font-mono, Consolas, monospace);font-size:var(--type-xs);min-height:160px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);border-radius:var(--radius-active)}
.btn{display:inline-block;font:inherit;font-weight:var(--weight-medium);font-size:var(--type-xs);
     padding:var(--space-2) var(--space-4);border-radius:var(--radius-resting);border:var(--line-width) solid transparent;
     cursor:pointer;text-decoration:none;transition:all var(--motion-fast) var(--ease)}
.btn-primary{background:var(--accent);color:var(--text-on-accent)}
.btn-secondary{background:var(--surface-sunken);color:var(--text-primary);border-color:var(--line)}
.btn:hover{border-radius:var(--radius-active)}
.btn:disabled{opacity:.5;cursor:default}
.row{display:flex;gap:var(--space-2);align-items:center;flex-wrap:wrap;margin-top:var(--space-3)}
.err{color:var(--danger);font-size:var(--type-xs);margin-top:var(--space-2)}
.ok{color:var(--accent);font-size:var(--type-xs);margin-top:var(--space-2)}
.big{font-family:var(--font-display);font-size:var(--type-lg);font-weight:var(--weight-bold)}
.plain{background:var(--surface-sunken);border-radius:var(--radius-resting);padding:var(--space-3);
     font-size:var(--type-xs);color:var(--text-secondary)}
@media (max-width:700px){main{padding:var(--space-4)}}
