*{box-sizing:border-box}body{margin:0;font:16px/1.55 Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:#f7f7f4;color:#1b1d22}
a{color:#2f5bd8;text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}
header.top{background:#fff;border-bottom:1px solid #e6e6e0;position:sticky;top:0;z-index:5}header.top .wrap{display:flex;align-items:center;justify-content:space-between;min-height:62px;flex-wrap:wrap;gap:8px}
.logo{font-weight:800;font-size:20px;color:#111;display:flex;align-items:center;gap:8px}.logo:hover{text-decoration:none}
.mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#b8f36b;color:#111;font-weight:900}
nav{display:flex;align-items:center;flex-wrap:wrap}nav a{margin-left:16px;color:#444;font-size:15px}
.btn{display:inline-block;padding:10px 16px;border-radius:10px;background:#111;color:#fff;font-weight:700;border:0;cursor:pointer}.btn:hover{text-decoration:none;background:#333}
.btn.sm{padding:7px 12px;color:#fff}.btn.ghost{background:transparent;color:#111;border:1px solid #ccc}
.hero{padding:44px 0 18px}.hero h1{font-size:40px;line-height:1.12;margin:0 0 12px;max-width:780px}.hero p{font-size:18px;color:#555;max-width:740px}
.cols{display:grid;grid-template-columns:1fr 300px;gap:32px}@media(max-width:860px){.cols{grid-template-columns:1fr}.hero h1{font-size:30px}}
aside h3{margin:22px 0 8px;font-size:15px;text-transform:uppercase;letter-spacing:.05em;color:#666}
.list{background:#fff;border:1px solid #e6e6e0;border-radius:14px;overflow:hidden}
.row{display:flex;gap:14px;padding:14px 16px;border-bottom:1px solid #efefea;align-items:flex-start}.row:last-child{border-bottom:0}
.row.ph{background:#fbfbe9;border:1px dashed #d8d59a;border-radius:12px;margin-bottom:12px}
.rbody{flex:1;min-width:0}.pname{font-weight:700;color:#111;font-size:17px}.tagline{color:#444;margin:2px 0 6px}
.meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.tag{font-size:12px;padding:2px 8px;border-radius:99px;background:#eef1ff;color:#2f4bb0}.tag:hover{text-decoration:none;background:#dde3ff}
.tag.t-cursor{background:#eaeaea;color:#222}.tag.t-lovable{background:#ffe6ef;color:#b0245a}.tag.t-claude-code{background:#fbeee6;color:#a2491b}.tag.t-codex{background:#e7f6ee;color:#16784a}.tag.t-replit{background:#fff0e3;color:#b4520c}.tag.t-ai{background:#f1f1f1;color:#666}
.cat{font-size:12px;color:#666;border:1px solid #ddd;border-radius:99px;padding:1px 8px}
.muted{color:#6b6f78}.small{font-size:13px}
.vote{display:flex;flex-direction:column;align-items:center;min-width:52px;padding:6px 8px;border:1px solid #ddd;border-radius:10px;background:#fff;cursor:pointer;font:inherit;color:#333}
.vote:hover{border-color:#111}.vote .arr{font-size:12px}.vote .n{font-weight:800}.vote.done{background:#b8f36b;border-color:#8fcf3c}
.spon{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#8a6d00;background:#fff4c2;border-radius:6px;padding:2px 6px;margin-left:8px;vertical-align:middle}
.featwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin:10px 0 8px}
.feat{background:#fff;border:2px solid #111;border-radius:16px;padding:18px}.feat img{width:100%;border-radius:10px;margin:8px 0;aspect-ratio:1200/630;object-fit:cover;background:#eee}
.feat.ph{border-style:dashed;border-color:#bbb;background:#fcfcf7}.feat.ph b{display:block;font-size:20px;margin:6px 0}.feat .spon{margin-left:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{font-size:14px;background:#fff;border:1px solid #ddd;border-radius:99px;padding:4px 10px;color:#222}.chip span{color:#888}
.side-cta{margin-top:24px;background:#111;color:#fff;border-radius:14px;padding:16px}.side-cta .btn{background:#b8f36b;color:#111}
.news-ph{background:#fff;border:1px dashed #ccc;border-radius:12px;padding:12px;font-size:14px;color:#555}
.news{display:flex;gap:6px}.news input{flex:1}
.crumbs{font-size:14px;color:#777;margin:22px 0 6px}
.phead{display:flex;gap:16px;align-items:flex-start}.phead h1{margin:0;font-size:34px}.lead{font-size:19px;color:#444;margin:4px 0 8px}
.shot{display:block;max-width:100%;border-radius:12px;border:1px solid #e3e3dd;margin:16px 0;background:#eee}
table.facts{border-collapse:collapse;background:#fff;border:1px solid #e6e6e0;border-radius:12px;margin:16px 0;min-width:min(520px,100%)}
.facts th,.facts td{padding:9px 14px;text-align:left;border-bottom:1px solid #f0f0ea;vertical-align:top}.facts th{color:#666;font-weight:600;width:130px}
blockquote{margin:0;padding:12px 16px;background:#fff;border-left:4px solid #b8f36b;border-radius:6px;color:#333}
.ev li{margin:4px 0}.claim{margin:28px 0;padding:14px;border-radius:12px;background:#fff;border:1px solid #e6e6e0;font-size:14px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:18px 0}.tile{background:#fff;border:1px solid #e6e6e0;border-radius:12px;padding:16px;color:#111}.tile span{display:block;color:#777;font-size:14px}
.tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin:22px 0}.tier{background:#fff;border:1px solid #e0e0da;border-radius:16px;padding:20px;display:flex;flex-direction:column}
.tier.hi{border:2px solid #111}.tier h3{margin:0}.price{font-size:34px;font-weight:800;margin:6px 0}.price span{font-size:15px;color:#777;font-weight:500}.tier ul{padding-left:18px;flex:1}
.form{max-width:640px;background:#fff;border:1px solid #e6e6e0;border-radius:16px;padding:22px}
.form label{display:block;margin:12px 0 4px;font-size:14px;font-weight:600;color:#333}
.form input:not([type=checkbox]):not([type=radio]),.form select,.form textarea{display:block;width:100%;margin-top:4px;padding:10px;border:1px solid #d5d5cf;border-radius:9px;font:inherit;background:#fdfdfb}
.form button{margin-top:16px;padding:11px 20px;border-radius:10px;border:0;background:#111;color:#fff;font-weight:700;cursor:pointer;font:inherit}
fieldset{border:1px solid #e6e6e0;border-radius:10px;margin:14px 0;padding:10px 14px}legend{font-weight:600;font-size:14px}
.cbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.form label.cb{font-weight:400;margin:4px 0}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.notice{margin-top:10px;font-size:14px;color:#a14a00;min-height:1em}
.empty{background:#fff;border:1px dashed #ccc;border-radius:12px;padding:20px;text-align:center;color:#666}
pre{background:#111;color:#e6e6e6;padding:14px;border-radius:10px;white-space:pre-wrap;word-break:break-all;font-size:13px}
.badgebox{padding:16px;background:#fff;border:1px solid #e6e6e0;border-radius:12px;display:inline-block}
footer{border-top:1px solid #e6e6e0;margin-top:60px;padding:28px 0;background:#fff;font-size:14px}.fgrid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px}@media(max-width:700px){.fgrid{grid-template-columns:1fr}}

.price s.was{color:#999;font-weight:500;font-size:22px}.eb{display:inline-block;background:#fde68a;color:#7c4a03;font-size:12px;font-weight:700;padding:2px 8px;border-radius:999px;margin-bottom:6px}
