.tp{background:var(--void);flex-direction:column;min-height:100dvh;display:flex}.tp-head{padding:var(--safe-t) var(--safe-r) 0 var(--safe-l);justify-content:space-between;align-items:center;gap:16px;display:flex}.tp-mark{color:var(--ink);font-size:22px;text-decoration:none}.tp-osd{color:var(--accent);font:600 13px/1 var(--font-ui);letter-spacing:.12em;text-shadow:0 0 10px color-mix(in srgb, var(--accent) 60%, transparent);font-stretch:112.5%}.tp-main{width:100%;max-width:1080px;padding:clamp(40px, 9vh, 96px) var(--safe-r) 48px var(--safe-l);flex:1;margin:0 auto}.tp-intro h1{font:800 clamp(40px, 8vw, 84px)/.95 var(--font-mark);letter-spacing:-.01em;margin:0}.tp-intro p{max-width:46ch;color:var(--ink-dim);margin:14px 0 0;font-size:14px;line-height:1.6}.tp-controls{flex-wrap:wrap;align-items:center;gap:12px 16px;margin:40px 0 20px;display:flex}.tp-search{flex:260px;max-width:380px;position:relative}.tp-search input{width:100%;height:44px;color:var(--ink);font:400 14px/1 var(--font-ui);background:#0d0d0c;border:1px solid #2a2a28;border-radius:4px;outline:none;padding:0 40px 0 14px;transition:border-color .15s}.tp-search input::placeholder{color:#6b6a64}.tp-search input:focus{border-color:var(--accent)}.tp-search kbd{color:#6b6a64;font:400 12px/1.4 var(--font-ui);border:1px solid #2a2a28;border-radius:3px;padding:2px 7px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.tp-tags{flex-wrap:wrap;gap:6px;display:flex}.chip{min-height:32px;color:var(--ink-dim);font:400 12px/1 var(--font-ui);letter-spacing:.04em;cursor:pointer;background:0 0;border:1px solid #2a2a28;border-radius:999px;padding:0 12px;transition:color .15s,border-color .15s,background .15s}.chip:hover{color:var(--ink);border-color:#4a4a46}.chip[aria-pressed=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--ink)}.tp-count{color:#6b6a64;margin:0 0 0 auto;font-size:12px}.tp-list{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.tool{background:#0b0b0a;border:1px solid #1f1f1d;border-radius:6px;flex-direction:column;transition:border-color .15s,transform .15s;display:flex;position:relative}.tool:hover,.tool:focus-within{border-color:#3a3a36}.tool__link{color:inherit;outline:none;flex:1;gap:8px;padding:18px 18px 6px;text-decoration:none;display:grid}.tool__link:after{content:"";border-radius:6px;position:absolute;inset:0}.tool__link:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.tool__year{color:var(--accent);letter-spacing:.08em;font-size:12px}.tool__name{font:700 19px/1.2 var(--font-ui);font-stretch:112.5%}.tool__name:after{content:" →";color:var(--ink-dim);opacity:0;font-weight:400;transition:opacity .15s}.tool:hover .tool__name:after,.tool:focus-within .tool__name:after{opacity:1}.tool__ext:before{content:" ↗";color:var(--ink-dim)}.tool__desc{color:var(--ink-dim);font-size:13px;line-height:1.55}.tool__tags{flex-wrap:wrap;gap:6px;margin:0;padding:10px 18px 16px;list-style:none;display:flex}.tool__tags li{color:#6b6a64;letter-spacing:.04em;font-size:11px}.tool__tags li:before{content:"#";opacity:.6}.tp-empty{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:40px 0;font-size:14px}.tp-foot{padding:20px var(--safe-r) var(--safe-b) var(--safe-l);color:#6b6a64;border-top:1px solid #161615;flex-wrap:wrap;justify-content:space-between;gap:8px 24px;font-size:12px;display:flex}.tp-foot a{color:var(--ink-dim);text-decoration:none}.tp-foot a:hover{color:var(--accent)}@media (prefers-reduced-motion:reduce){.tool,.chip,.tool__name:after{transition:none}}
