:root{--ink:#1e293b;--muted:#64748b;--accent:#2a63e0;--accent-dark:#1c46a8;--sun:#f59e0b;--bg:#f6f9fc;--card:#fff;--line:#e6ecf3;--tint:#e8f0fe;--tint-line:#c9ddfb;--radius:14px;--maxw:1040px;color:var(--ink);background:var(--bg);font:16px/1.6 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:var(--accent-dark)}.wrap{max-width:var(--maxw);margin:0 auto;padding:0 20px}header.site{background:var(--card);border-bottom:1px solid var(--line)}header.site .wrap{justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.brand{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:10px;font-size:20px;font-weight:800;text-decoration:none;display:inline-flex}.brand-logo{width:auto;height:38px;display:block}.brand span{color:var(--accent)}.tagline{color:var(--muted);font-size:13px}footer.site{border-top:1px solid var(--line);background:var(--card);margin-top:40px}footer.site .wrap{color:var(--muted);padding:22px 20px;font-size:13px}.disclosure{color:var(--muted);background:#eef4fe;border-radius:8px;margin-bottom:12px;padding:10px 12px;font-size:12.5px}.hero{color:#fff;background:linear-gradient(315deg,#3f7bee 0%,#2a63e0 45%,#17418f 100%);border-radius:20px;margin:22px 0 18px;padding:56px 36px;overflow:hidden;box-shadow:0 10px 26px #2a63e02e}.hero h1{letter-spacing:-.025em;color:#fff;max-width:16ch;margin:0 0 12px;font-size:40px;line-height:1.12}.hero h1 em{color:#ffd54a;font-style:normal}.hero p{color:#ffffffeb;max-width:56ch;margin:0;font-size:18px;line-height:1.5}@media (width<=640px){.hero{padding:36px 22px}.hero h1{font-size:30px}}.filters{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:0 0 22px;padding:16px 18px}.filters-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.filters-head h2{letter-spacing:-.01em;margin:0;font-size:15px}.filters-clear{color:var(--accent-dark);cursor:pointer;background:0 0;border:0;padding:0;font-size:13px;font-weight:600}.filters-clear:hover{text-decoration:underline}.filter-row{flex-wrap:wrap;gap:16px;display:flex}.filter-group{flex-direction:column;gap:6px;display:flex}.filter-group label{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-size:12px;font-weight:700}.filter-group select{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:8px;min-width:160px;padding:9px 11px;font-size:14px;transition:border-color .12s,box-shadow .12s}.filter-group select:hover{border-color:#ddd}.filter-group select.active{border-color:var(--accent);color:var(--accent-dark);font-weight:600;box-shadow:0 0 0 3px #2a63e01a}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:8px 0 30px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;transition:transform 80ms,box-shadow .12s;display:block;overflow:hidden}.card:hover{transform:translateY(-2px);box-shadow:0 6px 18px #0000000f}.card-hero{aspect-ratio:16/9;background:#e3e7ec;width:100%}.card-hero img{object-fit:cover;width:100%;height:100%;display:block}.card-body{padding:18px}.card .name{font-size:19px;font-weight:800}.card .type{color:var(--muted);text-transform:capitalize;font-size:12px}.card .summary{color:var(--muted);margin-top:8px;font-size:14px}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chip{background:var(--tint);color:var(--accent-dark);border:1px solid var(--tint-line);border-radius:999px;padding:3px 9px;font-size:12px}.detail h1{letter-spacing:-.02em;margin:24px 0 6px;font-size:30px}.detail .summary{color:var(--muted);font-size:18px}.detail-hero{aspect-ratio:21/9;background:#e3e7ec;border-radius:18px;margin:12px 0 18px;position:relative;overflow:hidden}.detail-hero>img{object-fit:cover;width:100%;height:100%;display:block}.detail-hero .overlay{background:linear-gradient(#0000 35%,#0000009e 100%);flex-direction:column;justify-content:flex-end;padding:22px 26px;display:flex;position:absolute;inset:0}.detail-hero h1{color:#fff;letter-spacing:-.02em;text-shadow:0 2px 14px #00000073;margin:0;font-size:36px}.detail-hero .detail-type{color:#ffffffe6;text-transform:capitalize;font-size:13px}@media (width<=640px){.detail-hero{aspect-ratio:16/9}.detail-hero h1{font-size:26px}}.section-title{margin:30px 0 12px;font-size:20px}.embed-list{grid-template-columns:1fr;gap:18px;display:grid}.embed{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.embed .frame{aspect-ratio:16/9;background:#e3e7ec;width:100%;position:relative}.embed .frame iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.embed-img{aspect-ratio:16/9;object-fit:cover;background:#e3e7ec;width:100%;display:block}.embed .attribution{color:var(--muted);padding:8px 12px;font-size:13px}.embed-card-link{color:var(--ink);align-items:center;gap:12px;padding:16px;text-decoration:none;display:flex}.embed-card-link .pill{color:var(--accent-dark);background:var(--tint);border:1px solid var(--tint-line);border-radius:999px;padding:3px 9px;font-size:12px;font-weight:700}.embed-card-label{flex:1;font-size:14px}.embed-card-arrow{color:var(--muted)}.social-strip{grid-auto-columns:minmax(220px,240px);grid-auto-flow:column;gap:14px;padding-bottom:8px;display:grid;overflow-x:auto}.social-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.social-card:hover{box-shadow:0 6px 18px #0000000f}.social-thumb{aspect-ratio:16/9;background-color:#e3e7ec;background-position:50%;background-size:cover;width:100%}.social-thumb--blank{background-color:#e6e9ee}.social-meta{align-items:center;gap:8px;padding:10px 12px 0;display:flex}.social-meta .pill{text-transform:capitalize;color:var(--accent-dark);background:var(--tint);border:1px solid var(--tint-line);border-radius:999px;padding:3px 9px;font-size:11px;font-weight:700}.social-sentiment{font-size:15px}.social-trend{color:var(--accent);margin-left:auto;font-size:12px;font-weight:700}.social-caption{-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;margin:8px 12px;font-size:13px;line-height:1.4;display:-webkit-box;overflow:hidden}.social-foot{justify-content:space-between;gap:8px;padding:0 12px 12px;font-size:12px;display:flex}.aff-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.aff-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);padding:16px;text-decoration:none;display:block}.aff-card:hover{box-shadow:0 6px 18px #0000000f}.aff-card .k{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-dark);font-size:11px}.aff-card .t{margin-top:3px;font-weight:700}.place-facts{flex-wrap:wrap;gap:14px;margin:4px 0 10px;display:flex}.place-facts .fact{color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:4px 12px;font-size:13px}.poi-group{margin:6px 0 14px}.poi-kind{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-dark);margin:10px 0 6px;font-size:13px}.poi-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.poi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);flex-direction:column;gap:2px;padding:10px 12px;display:flex}.poi>a,.poi-name{font-size:14px;font-weight:700}.poi-addr{color:var(--muted);font-size:12px}.poi-meta{color:var(--accent-dark);font-size:12px}.attribution{color:var(--muted);margin-top:6px;font-size:11px}.product-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.product-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);color:var(--ink);text-decoration:none;display:block;overflow:hidden}.product-card:hover{box-shadow:0 6px 18px #0000000f}.product-img{object-fit:cover;width:100%;height:130px;display:block}.product-body{padding:12px}.product-title{font-size:14px;font-weight:700;line-height:1.3}.product-meta{color:var(--muted);justify-content:space-between;gap:8px;margin-top:8px;font-size:12px;display:flex}.product-price{color:var(--accent-dark);font-weight:700}.capture{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:30px 0;padding:22px}.capture h3{margin:0 0 6px}.capture p{color:var(--muted);margin:0 0 12px;font-size:15px}.capture form{flex-wrap:wrap;gap:8px;display:flex}.capture input{border:1px solid var(--line);border-radius:10px;flex:220px;padding:11px 13px;font-size:15px}.capture button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 18px;font-weight:700}.capture button:hover{background:var(--accent-dark)}.thanks{color:var(--accent-dark);font-weight:600}.back{color:var(--muted);margin:18px 0 0;text-decoration:none;display:inline-block}.muted{color:var(--muted)}.loading{color:var(--muted);padding:40px 0}.rubric{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:22px 0;padding:18px}.rubric-head{justify-content:space-between;align-items:baseline;margin-bottom:12px;display:flex}.rubric-title{text-transform:capitalize;font-weight:800}.rubric-row{grid-template-columns:1fr 140px 34px;align-items:center;gap:10px;margin:7px 0;font-size:14px;display:grid}.rubric-label{color:var(--muted)}.rubric-bar{background:#eee;border-radius:999px;height:8px;overflow:hidden}.rubric-fill{background:var(--accent);border-radius:999px;height:100%;display:block}.rubric-val{text-align:right;font-variant-numeric:tabular-nums;font-weight:700}.review-list{flex-direction:column;gap:12px;display:flex}.review{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.review-head{justify-content:space-between;display:flex}.review p{margin:6px 0 8px}.review-scores{flex-wrap:wrap;gap:6px;display:flex}.score-pill{background:var(--tint);color:var(--accent-dark);text-transform:capitalize;border-radius:999px;padding:2px 8px;font-size:12px}.review-form{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin:18px 0;padding:18px}.review-form h3{margin:0 0 12px}.rf-row{flex-wrap:wrap;gap:10px;margin-bottom:10px;display:flex}.rf-row input{border:1px solid var(--line);border-radius:9px;flex:200px;padding:10px 12px;font-size:14px}.rf-overall{color:var(--muted);align-items:center;gap:6px;font-size:13px;display:flex}.rf-overall select,.rf-score select{border:1px solid var(--line);border-radius:8px;padding:8px 10px;font-size:14px}.review-form textarea{border:1px solid var(--line);resize:vertical;border-radius:9px;width:100%;padding:10px 12px;font-family:inherit;font-size:14px}.rf-rubric{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:12px 0;display:grid}.rf-score{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:13px;display:flex}.rf-error{color:#b3261e;font-size:14px}.review-form button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:10px 18px;font-weight:700}.review-form button:hover{background:var(--accent-dark)}.review-form button:disabled{opacity:.6;cursor:default}.recommend{border:1px solid var(--tint-line);border-radius:var(--radius);background:linear-gradient(#eef4fe,#fff);margin:4px 0 18px;padding:18px}.recommend-head{margin-bottom:12px}.recommend-head h2{letter-spacing:-.01em;margin:0 0 2px;font-size:19px}.recommend-head p{color:var(--muted);margin:0;font-size:14px}.recommend-form label{text-transform:uppercase;letter-spacing:.06em;color:var(--accent-dark);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.recommend-row{flex-wrap:wrap;gap:8px;display:flex}.recommend-row input{border:1px solid var(--line);border-radius:10px;flex:280px;padding:11px 13px;font-size:15px}.recommend-row button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 18px;font-weight:700}.recommend-row button:hover{background:var(--accent-dark)}.recommend-row button:disabled{opacity:.6;cursor:default}.recommend-meta{margin:14px 0 8px;font-size:13px}.recommend-results{flex-direction:column;gap:8px;display:flex}.rec-card{background:var(--card);border:1px solid var(--line);color:var(--ink);border-radius:12px;align-items:flex-start;gap:12px;padding:12px 14px;text-decoration:none;display:flex}.rec-card:hover{box-shadow:0 6px 18px #0000000f}.rec-rank{background:var(--sun);color:#151515;border-radius:50%;flex:0 0 26px;place-items:center;height:26px;font-size:13px;font-weight:800;display:grid}.rec-body{flex-direction:column;display:flex}.rec-name{font-weight:800}.rec-why{color:var(--muted);font-size:14px}.site-nav{align-items:center;gap:16px;display:flex}.nav-link{color:var(--ink);font-size:14px;font-weight:600;text-decoration:none}.nav-link:hover{color:var(--accent-dark)}.nav-user{color:var(--muted);font-size:14px}.as-button{cursor:pointer;font:inherit;background:0 0;border:0;padding:0}.btn-primary{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;padding:11px 18px;font-size:15px;font-weight:700}.btn-primary:hover{background:var(--accent-dark)}.page-title{letter-spacing:-.02em;margin:24px 0 14px;font-size:26px}.fav-btn{border:1px solid var(--line);color:var(--accent);cursor:pointer;background:#ffffffe6;border-radius:50%;place-items:center;width:34px;height:34px;font-size:18px;line-height:1;transition:transform 80ms,background .12s;display:grid}.fav-btn:hover{transform:scale(1.08)}.fav-btn.is-saved{color:#e0436b}.card-hero{position:relative}.card-fav,.detail-fav{position:absolute;top:10px;right:10px;box-shadow:0 2px 8px #0000002e}.detail-fav{width:40px;height:40px;font-size:20px;top:14px;right:14px}.detail-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.modal-overlay{z-index:50;background:#141c2880;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border-radius:16px;width:100%;max-width:380px;padding:28px;position:relative;box-shadow:0 20px 60px #00000040}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:0;font-size:24px;line-height:1;position:absolute;top:12px;right:14px}.modal h2{letter-spacing:-.02em;margin:0 0 4px;font-size:22px}.modal-sub{color:var(--muted);margin:0 0 18px;font-size:14px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form label{color:var(--ink);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}.auth-form input{border:1px solid var(--line);border-radius:9px;padding:10px 12px;font-size:15px}.auth-form input:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #2a63e01f}.auth-form button[type=submit]{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:10px;margin-top:4px;padding:11px;font-size:15px;font-weight:700}.auth-form button[type=submit]:hover{background:var(--accent-dark)}.auth-error{color:#b3261e;margin:2px 0 0;font-size:14px}.auth-switch{color:var(--muted);text-align:center;margin:16px 0 0;font-size:14px}.auth-switch button{color:var(--accent-dark);cursor:pointer;font-weight:700;font:inherit;background:0 0;border:0}.prefs-bar{align-items:center;gap:12px;margin:-10px 0 18px;display:flex}.prefs-save{background:var(--tint);color:var(--accent-dark);border:1px solid var(--tint-line);cursor:pointer;border-radius:999px;padding:7px 14px;font-size:13px;font-weight:700}.prefs-save:hover{background:#dbe7fd}.prefs-msg{color:var(--muted);font-size:13px}
