.tp-parts{display:grid;gap:10px;margin:8px 0 6px}
.tp-parts .switch{font-weight:600}
.tp-sup{font-size:13.5px;font-weight:600;color:var(--ink-2);background:var(--soft);border:2px solid var(--line);border-radius:12px;padding:10px 12px;margin:0}
.tp-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px}
.tp-links a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border:2px solid var(--ink);border-radius:12px;font-weight:700;font-size:14px;color:var(--ink);text-decoration:none;background:#fff;box-shadow:2px 2px 0 var(--ink)}
.tp-links a:hover{background:var(--blue-soft)}
.tp-roll{position:relative;background:repeating-linear-gradient(0deg,#eef1f7 0 2px,#f6f7fb 2px 4px);border:2px solid var(--line);border-radius:var(--r-sm);padding:18px 12px;max-height:680px;overflow:auto;display:grid;justify-items:center}
.tp-roll img,.tp-roll canvas{display:block;width:100%;max-width:340px;height:auto;background:#fff;box-shadow:0 10px 26px rgba(15,18,34,.18)}
.tp-roll.sample::after{content:"Sample: tap anything to make yours";position:sticky;bottom:6px;margin-top:-34px;justify-self:center;background:var(--sun);color:var(--ink);border:2px solid var(--ink);border-radius:999px;padding:4px 12px;font-weight:700;font-size:12.5px;box-shadow:2px 2px 0 var(--ink)}
@media (max-width:900px){.tp-roll{max-height:440px}}
