:root{--bg:#f5f7fa;--surface:#ffffff;--surface-hover:#f8f9fb;--border:#e2e6ea;--border-focus:#4a90d9;--text:#1a1d21;--text-secondary:#5f6b7a;--text-muted:#8b95a5;--accent:#4a90d9;--accent-hover:#3a7bc8;--header-bg:linear-gradient(135deg, #667eea 0%, #764ba2 100%);--header-text:#ffffff;--header-cta:#ffd166;--chip-bg:#eef1f5;--shadow-sm:0 1px 3px rgba(0,0,0,0.06);--shadow-md:0 4px 12px rgba(0,0,0,0.08);--shadow-lg:0 8px 24px rgba(0,0,0,0.12);--radius:12px;--radius-sm:8px;--transition:.2s ease}[data-theme="dark"]{--bg:#0f1117;--surface:#1a1d27;--surface-hover:#22262f;--border:#2d323e;--border-focus:#6b9ede;--text:#e4e7ec;--text-secondary:#9aa3b2;--text-muted:#6b7280;--accent:#6b9ede;--accent-hover:#8bb4ea;--header-bg:linear-gradient(135deg, #4c5fd7 0%, #6b3fa0 100%);--chip-bg:#252a36;--shadow-sm:0 1px 3px rgba(0,0,0,0.2);--shadow-md:0 4px 12px rgba(0,0,0,0.3);--shadow-lg:0 8px 24px rgba(0,0,0,0.4)}[data-theme="dark"] body{background-image:url('/images/bg_pattern/topography-dark.svg')}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;background-image:url('/images/bg_pattern/topography.svg');background-repeat:repeat}.page{max-width:1200px;margin:0 auto;padding:24px 16px 60px}.top-logo{text-align:center;margin-bottom:24px}.top-logo img{height:32px;width:auto}.top-row{display:flex;align-items:center;gap:12px;max-width:900px;margin:0 auto 12px;flex-wrap:wrap;justify-content:center}.top-links{display:flex;justify-content:center;gap:16px;max-width:900px;margin:0 auto 28px}.top-links a{color:var(--text-secondary);font-size:.85rem;white-space:nowrap}.top-links a:hover{color:var(--accent)}.search-bar{position:relative;flex:1;min-width:200px}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--text-muted);pointer-events:none}.search-input{width:100%;padding:14px 44px 14px 42px;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);font-size:15px;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px rgba(74,144,217,0.15)}.clear-btn{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:28px;height:28px;border:none;border-radius:50%;background:var(--chip-bg);color:var(--text-secondary);font-size:16px;cursor:pointer;display:none;align-items:center;justify-content:center;transition:background var(--transition)}.clear-btn:hover{background:var(--border)}.result-count{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.review-grid{display:grid;grid-template-columns:1fr;gap:16px}@media (min-width:520px){.review-grid{grid-template-columns:repeat(2, 1fr)}}@media (min-width:840px){.review-grid{grid-template-columns:repeat(3, 1fr)}}.review-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition),border-color var(--transition);text-decoration:none;color:inherit;display:flex;flex-direction:column}.review-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:transparent}.review-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}.review-avatar{width:40px;height:40px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;color:#fff;text-transform:uppercase}.review-meta{min-width:0}.review-author{font-weight:600;font-size:.9rem;color:var(--accent);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.review-timestamp{font-size:.75rem;color:var(--text-muted)}.review-body{flex:1;font-size:.9rem;color:var(--text-secondary);line-height:1.55;overflow:hidden}.review-body img{max-width:100%;height:auto;border-radius:var(--radius-sm);margin-top:8px}.review-body blockquote{margin:8px 0;padding:8px 12px;border-left:3px solid var(--accent);background:var(--chip-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;font-style:italic;color:var(--text-secondary)}.review-body blockquote p{margin:0}.review-reactions{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.reaction-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;background:var(--chip-bg);font-size:.8rem;color:var(--text-secondary)}.header-card{background:#d00e73;border:none;color:var(--header-text)}.header-card .review-body{display:flex;flex-direction:column;gap:8px}.header-card:hover{box-shadow:var(--shadow-lg)}.header-card .review-body{color:var(--header-text);opacity:.95}.header-card .click-here{color:var(--header-cta);font-weight:700;font-size:1.05em;margin-top:8px;display:inline-block}.pagination{display:none;justify-content:center;align-items:center;gap:6px;margin-top:28px;flex-wrap:wrap}.pagination button{min-width:36px;height:36px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-size:14px;cursor:pointer;transition:background var(--transition),border-color var(--transition);display:inline-flex;align-items:center;justify-content:center}.pagination button:hover:not(:disabled){background:var(--chip-bg);border-color:var(--accent)}.pagination button:disabled{opacity:.35;cursor:default}.page-info{padding:0 10px;font-size:.85rem;color:var(--text-secondary)}.no-results{text-align:center;padding:60px 20px;color:var(--text-muted);font-size:1rem;display:none;grid-column:1 / -1}.loading{text-align:center;padding:60px 20px;color:var(--text-muted);grid-column:1 / -1}.skeleton-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.skeleton-header{display:flex;gap:10px;margin-bottom:14px}.skeleton-avatar{width:40px;height:40px;border-radius:50%;background:var(--chip-bg);animation:pulse 1.5s ease-in-out infinite}.skeleton-lines{flex:1}.skeleton-line{height:12px;border-radius:6px;background:var(--chip-bg);animation:pulse 1.5s ease-in-out infinite}.skeleton-line--short{width:60%;margin-bottom:6px}.skeleton-line--long{width:90%;margin-bottom:4px}.skeleton-body{display:flex;flex-direction:column;gap:6px}@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}.theme-toggle{background:none;border:none;padding:0;cursor:pointer;font-size:1.2em;line-height:1}