/* トップページ */
.ticker { border-bottom: 2px solid var(--line); background: var(--yellow); color: #121212; overflow: hidden; white-space: nowrap; font-family: var(--mono); font-weight: 700; font-size: .85rem; }
.ticker-track { display: inline-flex; gap: 22px; padding: 8px 0; animation: ticker 38s linear infinite; }
.ticker i { font-style: normal; color: var(--vermilion); }
@keyframes ticker { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .ticker-track { animation: none; } }

.hub-hero { padding: 56px 0 40px; }
.hub-hero .eyebrow { font-family: var(--mono); font-size: .8rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); margin: 0 0 12px; }
.hub-hero h1 { font-size: clamp(2.2rem, 1.2rem + 4.6vw, 4.6rem); line-height: 1.12; max-width: 15em; }
.hub-hero .lead { color: var(--ink-2); font-size: 1.05rem; max-width: 640px; margin: 16px 0 0; }

.hub-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); }
.hub-card { position: relative; display: grid; gap: 8px; padding: 26px 24px 22px; text-decoration: none; color: #121212; border: 2px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-lg); transition: transform .12s, box-shadow .12s; overflow: hidden; }
.hub-card.tool-tedori { background: var(--yellow); transform: rotate(-.6deg); }
.hub-card.tool-irai { background: var(--vermilion); transform: rotate(.6deg); }
.hub-card:hover { transform: translate(-3px, -3px) rotate(0); box-shadow: 11px 11px 0 var(--ink); background-color: inherit; }
.hub-card.tool-tedori:hover { background: var(--yellow); }
.hub-card.tool-irai:hover { background: var(--vermilion); }
:root[data-theme="dark"] .hub-card:hover { box-shadow: 11px 11px 0 #000; }
.hub-no { font-family: var(--display); font-size: 4.2rem; line-height: .9; position: absolute; right: 16px; top: 12px; opacity: .22; }
.hub-card h2 { margin: 0; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.hub-card p { margin: 0; font-weight: 500; max-width: 30em; }
.hub-go { justify-self: start; margin-top: 10px; font-weight: 700; background: #121212; color: #fffcf2; padding: 6px 14px; border-radius: var(--radius-sm); }
