.tpc-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.4vw,34px) clamp(16px,1.8vw,26px);transition:opacity .34s,transform .34s;display:grid}.tpc-grid.is-fading{opacity:0;pointer-events:none;transition-duration:.2s;transform:translateY(8px)}@media (prefers-reduced-motion:reduce){.tpc-grid{transition:none}.tpc-grid.is-fading{opacity:1;transform:none}}.tpc-card{flex-direction:column;align-items:flex-start;min-width:0;display:flex}.tpc-thumb{width:100%;margin-bottom:10px;display:block}.tpc-thumb img{aspect-ratio:16/9;object-fit:cover;background:var(--rule-soft);width:100%;height:auto;transition:opacity .15s;display:block}.tpc-thumb:hover img{opacity:.92}.tpc-plate{aspect-ratio:16/9;background:var(--brand-navy);border-bottom:3px solid var(--brand-red);align-items:flex-end;width:100%;padding:12px;display:flex}.tpc-plate span{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#ffffffdb;-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:11px;line-height:1.35;display:-webkit-box;overflow:hidden}.tpc-meta{font-family:var(--sans);color:var(--muted);flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;font-size:10.5px;display:flex}.tpc-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--brand-red);font-weight:700}.tpc-hed{font-family:var(--serif);letter-spacing:-.012em;text-wrap:balance;margin:0;font-size:15.5px;font-weight:600;line-height:1.2}.tpc-hed a{color:var(--ink)}.tpc-hed a:hover{text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:2px}.tpc-hed a:focus-visible{outline:2px solid var(--brand-blue);outline-offset:3px}.tpc-place{font-family:var(--sans);color:var(--muted);margin:6px 0 0;font-size:10.5px}.tpc-dek{font-family:var(--serif);color:var(--ink-soft);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:7px 0 0;font-size:14.5px;line-height:1.45;display:-webkit-box;overflow:hidden}.tpc-badge{font-family:var(--sans);letter-spacing:.1em;border-radius:2px;margin-top:8px;padding:3px 8px;font-size:9.5px;font-weight:700;display:inline-block}.tpc-bar{border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:baseline;gap:16px;margin:0 0 clamp(18px,2.2vw,28px);padding-bottom:10px;display:flex}.tpc-pageno{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--brand-navy);white-space:nowrap;font-size:clamp(11px,1vw,13px);font-weight:500}.tpc-pager{border-top:1px solid var(--rule);justify-content:center;align-items:center;gap:clamp(14px,2vw,28px);margin-top:clamp(28px,3.4vw,48px);padding-top:clamp(18px,2.2vw,28px);display:flex}.tpc-page-btn{border:1px solid var(--brand-navy);width:42px;height:42px;font-family:var(--sans);color:var(--brand-navy);cursor:pointer;background:0 0;border-radius:2px;justify-content:center;align-items:center;padding:0;font-size:22px;line-height:1;transition:background-color .15s,color .15s,border-color .15s,opacity .15s;display:inline-flex}.tpc-page-btn span{margin-top:-3px;display:block}.tpc-page-btn:hover:not(:disabled){background:var(--brand-navy);color:#fff}.tpc-page-btn:disabled{opacity:.3;cursor:default;border-color:var(--rule);color:var(--muted)}.tpc-page-btn:focus-visible,.tpc-dot:focus-visible{outline:2px solid var(--brand-blue);outline-offset:3px}.tpc-dots{align-items:center;gap:9px;display:flex}.tpc-dot{border:1px solid var(--brand-navy);cursor:pointer;background:0 0;border-radius:50%;width:9px;height:9px;padding:0;transition:background-color .15s,transform .15s}.tpc-dot:hover:not(:disabled){background:var(--brand-blue);border-color:var(--brand-blue)}.tpc-dot:disabled{cursor:default}.tpc-dot.is-active{background:var(--brand-red);border-color:var(--brand-red);transform:scale(1.25)}@media (prefers-reduced-motion:reduce){.tpc-dot{transition:none}.tpc-dot.is-active{transform:none}}@media (max-width:1100px){.tpc-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:760px){.tpc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:460px){.tpc-grid{grid-template-columns:1fr}.tpc-hed{font-size:18px}.tpc-dots{display:none}.tpc-pager{justify-content:space-between}}.tpc-dispatch .tpc-kicker{color:var(--brand-blue)}.tpc-dispatch .tpc-plate{border-bottom-color:var(--brand-blue)}.tpc-dispatch .tpc-dot.is-active{background:var(--brand-blue);border-color:var(--brand-blue)}.tpc-dispatch .tpc-dot:hover:not(:disabled){background:var(--brand-navy);border-color:var(--brand-navy)}
