.res-hero{padding-top:48px;padding-bottom:28px}
.res-hero .kicker{font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.res-hero h1{margin-top:12px;font-weight:700;font-size:clamp(44px,6vw,84px);line-height:.96;letter-spacing:-.045em;max-width:12em}
.res-list{padding-bottom:112px}
.res-group+.res-group{margin-top:56px}
.res-cat{font-family:var(--sans);font-size:14px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 16px}
.res-cards{display:grid;gap:20px}
.res-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;background:var(--paper);border:2px solid var(--ink);border-radius:var(--r);padding:28px 28px 24px;text-decoration:none;box-shadow:12px 12px 0 var(--l2);transition:transform .3s var(--ease),box-shadow .3s}
.res-card:hover{color:var(--ink);transform:translate(-3px,-3px);box-shadow:16px 16px 0 var(--l2)}
.res-card .tags{display:flex;gap:8px;margin-bottom:12px}
.res-card .tag{font-size:13px;font-weight:700;border:2px solid var(--ink);border-radius:999px;padding:2px 10px;background:var(--l1);color:#fff}
.res-card .tag.alt{background:var(--paper);color:var(--ink)}
.res-card h2{font-size:clamp(28px,3vw,40px);letter-spacing:-.03em}
.res-card p{margin-top:8px;max-width:36em;color:var(--body);font-size:18px;line-height:1.5}
.res-card em{font-style:normal;font-weight:600}
.res-card:nth-child(2n){box-shadow:12px 12px 0 var(--l1)}
.res-card:nth-child(2n):hover{box-shadow:16px 16px 0 var(--l1)}
.steps{margin-top:22px;padding-left:1.2em;list-style:decimal}
.steps li{margin-top:8px;font-size:19px;line-height:1.5;color:var(--body)}

.piece{max-width:740px}
.piece p{margin-top:18px;font-size:19px;line-height:1.6;color:var(--body)}
.piece h2{margin-top:64px;font-size:clamp(32px,4vw,48px);letter-spacing:-.03em;line-height:1.05}
.piece .note{margin-top:28px;padding:20px 22px;background:var(--paper);border:2px solid var(--ink);border-radius:var(--r);box-shadow:8px 8px 0 var(--l3)}
.piece .note p{margin-top:0;color:var(--ink)}
.piece .note p+p{margin-top:12px}

.downloads{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.how{margin-top:18px;font-size:16px;line-height:1.55;color:var(--muted);max-width:40em}
.how strong{color:var(--ink)}

.prompt{margin-top:18px;background:var(--paper);border:2px solid var(--ink);border-radius:var(--r);box-shadow:8px 8px 0 var(--ink)}
.prompt header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border-bottom:2px solid var(--ink)}
.prompt header b{font-family:var(--display);font-size:16px;letter-spacing:-.01em}
.prompt pre{margin:0;padding:16px 18px 18px;white-space:pre-wrap;font:16px/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:var(--ink)}
.copy{min-height:40px;padding:0 14px;font-size:15px}

.style-file{margin-top:18px}
.style-file pre{max-height:none}

.cheat{max-width:860px}
.cheat h2{margin-top:36px;font-size:28px;letter-spacing:-.03em}
.cheat table{width:100%;border-collapse:collapse;margin-top:14px;background:var(--paper);border:2px solid var(--ink)}
.cheat th,.cheat td{text-align:left;vertical-align:top;padding:10px 12px;border-bottom:1px solid var(--line);font-size:15px;line-height:1.4}
.cheat th{font-family:var(--display);font-size:14px;background:var(--ink);color:var(--ground)}
.cheat tr:last-child td{border-bottom:0}
.cheat .close{margin-top:18px;padding:16px 18px;background:var(--paper);border:2px solid var(--ink);box-shadow:8px 8px 0 var(--l2);font-family:var(--display);font-size:22px;line-height:1.25;letter-spacing:-.02em}
@media print{
  .site-header,.site-footer,.downloads,.skip{display:none!important}
  body{background:#fff}
  .cheat .close{box-shadow:none}
}
@media (max-width:720px){
  .res-card{grid-template-columns:minmax(0,1fr)}
  .prompt header{align-items:flex-start;flex-direction:column}
}
