*,:after,:before{margin:0;padding:0;box-sizing:border-box}:root{--bg:#fafaf8;--card-bg:#fff;--text:#1a1a1a;--text-secondary:#6b6b6b;--text-muted:#9b9b9b;--border:#e8e8e4;--border-hover:#d0d0cc;--accent:#2563eb;--accent-bg:#eef2ff;--affiliate-text:#92400e;--affiliate-bg:#fef3c7;--pill-active-bg:#1a1a1a;--pill-active-text:#fff;--surface-muted:#f3f3f0}body{font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,sans-serif;background:var(--bg);color:var(--text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.container{max-width:960px;margin:0 auto;padding:0 24px}nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0;border-bottom:1px solid var(--border)}.logo{font-family:DM Sans,sans-serif;font-size:20px;font-weight:700;letter-spacing:-.5px}.logo-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);margin-left:1px;vertical-align:super}.nav-links{display:flex;gap:28px}.nav-links a{font-size:14px;color:var(--text-secondary);transition:color .15s}.nav-links a:hover{color:var(--text)}.hero{padding:48px 0 32px}.hero h1{font-family:DM Sans,sans-serif;font-size:32px;font-weight:600;letter-spacing:-.8px;line-height:1.2;margin-bottom:8px;max-width:480px}.hero p{font-size:16px;color:var(--text-secondary);max-width:420px}.search-bar{display:flex;align-items:center;gap:10px;background:var(--card-bg);border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:20px;transition:border-color .15s}.search-bar:focus-within{border-color:var(--accent)}.search-bar svg{color:var(--text-muted);flex-shrink:0}.search-bar input{border:none;outline:none;background:transparent;font-family:inherit;font-size:15px;color:var(--text);width:100%}.search-bar input::placeholder{color:var(--text-muted)}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.filter-pill{font-family:inherit;font-size:14px;font-weight:500;padding:7px 16px;border-radius:100px;border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .15s}.filter-pill:hover{border-color:var(--border-hover);color:var(--text)}.filter-pill.active{background:var(--pill-active-bg);color:var(--pill-active-text);border-color:var(--pill-active-bg)}.count{font-size:13px;margin-bottom:8px}.count,.section-label{color:var(--text-muted)}.section-label{font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;letter-spacing:.8px;text-transform:uppercase;margin:20px 0 12px}.grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:12px;gap:12px}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;transition:border-color .15s,box-shadow .15s;display:block}.card:hover{border-color:var(--border-hover);box-shadow:0 1px 3px rgba(0,0,0,.04)}.card-header{gap:10px;margin-bottom:8px}.card-header,.favicon{display:flex;align-items:center}.favicon{width:36px;height:36px;border-radius:8px;background:var(--surface-muted);border:1px solid var(--border);justify-content:center;overflow:hidden;flex-shrink:0}.favicon img{width:20px;height:20px;object-fit:contain}.favicon-letter{font-family:DM Sans,sans-serif;color:var(--text-secondary)}.card-name,.favicon-letter{font-weight:600;font-size:15px}.card-name{letter-spacing:-.2px}.card-oneliner{font-size:14px;color:var(--text-secondary);line-height:1.5;margin-bottom:12px;min-height:36px}.card-footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.category-tag{font-size:13px;color:var(--text-secondary);padding:4px 12px;background:var(--surface-muted);border:1px solid var(--border);border-radius:100px;white-space:nowrap}.type-badge{font-size:10px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding:3px 8px;border-radius:4px;white-space:nowrap}.type-ryoka{background:var(--accent-bg);color:var(--accent)}.type-affiliate{background:var(--affiliate-bg);color:var(--affiliate-text)}footer{margin-top:48px;padding:20px 0;border-top:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}footer span{font-size:13px;color:var(--text-muted)}footer a{font-size:13px;color:var(--accent);font-weight:500}footer a:hover{text-decoration:underline}@media (max-width:700px){.grid{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:26px}}@media (max-width:480px){.grid{grid-template-columns:1fr}.nav-links{gap:16px}}