:root{--paper:#f7f5f0;--card:#fff;--ink:#14213d;--muted:#5c6475;--line:#e4e0d6;--accent:#ff6b35;--accent-ink:#b8430f;--teal:#2a9d8f;--radius:10px;--body2:#333;--tagbg:#efece4;--featbg:#fff8f4;--btn:#14213d;--btn-ink:#fff;--btn-hover:#000;--panel:#14213d;--panel-ink:#fff;--panel-muted:#c9cfdb;--input:#fff;--ok:#1f7a5a;color-scheme:light}:root[data-theme=dark]{--paper:#0e1526;--card:#16203a;--ink:#ece7dc;--muted:#a3abbd;--line:#283456;--accent:#ff7a45;--accent-ink:#ff9a6b;--teal:#3cc1b0;--body2:#d3d7e0;--tagbg:#232e4d;--featbg:#2a1c18;--btn:#ece7dc;--btn-ink:#14213d;--btn-hover:#fff;--panel:#1b2747;--panel-ink:#fff;--panel-muted:#b9c1d4;--input:#0e1526;--ok:#5fd3a5;color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper:#0e1526;--card:#16203a;--ink:#ece7dc;--muted:#a3abbd;--line:#283456;--accent:#ff7a45;--accent-ink:#ff9a6b;--teal:#3cc1b0;--body2:#d3d7e0;--tagbg:#232e4d;--featbg:#2a1c18;--btn:#ece7dc;--btn-ink:#14213d;--btn-hover:#fff;--panel:#1b2747;--panel-ink:#fff;--panel-muted:#b9c1d4;--input:#0e1526;--ok:#5fd3a5;color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:var(--ink);text-decoration-color:var(--accent);text-underline-offset:3px}a:hover{color:var(--accent-ink)}h1,h2,h3{line-height:1.2;letter-spacing:-.015em;margin:0 0 .5em}h1{font-size:clamp(1.8rem,4vw,2.6rem)}h2{font-size:1.4rem;margin-top:1.6em}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}header.site{border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:10}header.site .wrap{display:flex;align-items:center;gap:24px;height:60px}.logo{font-weight:800;text-decoration:none;display:flex;align-items:center;gap:8px;font-size:1.05rem}.logo span{color:var(--accent)}nav.main{display:flex;gap:18px;flex-wrap:wrap;font-size:.95rem}nav.main a{text-decoration:none;color:var(--muted)}nav.main a:hover,nav.main a[aria-current]{color:var(--ink)}.btn{display:inline-block;background:var(--btn);color:var(--btn-ink);border:0;border-radius:8px;padding:10px 16px;font-weight:600;text-decoration:none;cursor:pointer;font-size:.95rem}.btn:hover{background:var(--btn-hover);color:var(--btn-ink)}.btn.alt{background:transparent;color:var(--ink);border:1px solid var(--ink)}.btn.accent{background:var(--accent);color:#fff}header.site .btn{margin-left:auto;padding:7px 12px;white-space:nowrap;flex-shrink:0}main{padding:32px 0 64px}.lede{font-size:1.15rem;color:var(--muted);max-width:640px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;font-weight:700;color:var(--accent-ink)}.grid{display:grid;gap:16px}.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.g4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:18px}.card h3{margin:0 0 6px;font-size:1.05rem}.card p{margin:0;color:var(--muted);font-size:.95rem}a.card{text-decoration:none;display:block;transition:border-color .15s}a.card:hover{border-color:var(--ink)}.tag{display:inline-block;font-size:.72rem;font-weight:600;padding:2px 8px;border-radius:99px;background:var(--tagbg);color:var(--muted);margin-right:6px}.hubdot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px}.launches{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.launch{display:grid;grid-template-columns:36px 1fr auto;gap:14px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}.launch .rank{font-weight:800;color:var(--muted);text-align:center}.launch h3{margin:0;font-size:1.05rem}.launch p{margin:2px 0 6px;color:var(--muted);font-size:.93rem}.launch .meta{font-size:.8rem;color:var(--muted)}.vote{display:flex;flex-direction:column;align-items:center;min-width:56px;border:1px solid var(--line);border-radius:8px;background:var(--paper);padding:6px 8px;cursor:pointer;font:inherit;color:var(--ink)}.vote b{font-size:1rem}.vote.on{border-color:var(--accent);color:var(--accent-ink)}.featured-slot{border:1.5px dashed var(--accent);background:var(--featbg)}.featured-slot .tag{background:var(--accent);color:#fff}.steps{counter-reset:s;list-style:none;padding:0}.steps li{counter-increment:s;position:relative;padding:0 0 18px 52px}.steps li:before{content:counter(s);position:absolute;left:0;top:0;width:34px;height:34px;border-radius:50%;background:var(--btn);color:var(--btn-ink);display:grid;place-items:center;font-weight:700}.steps h3{font-size:1.05rem;margin:4px 0}.steps p{margin:0;color:var(--body2)}.box{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;padding:14px 16px}.signup{background:var(--panel);color:var(--panel-ink);border-radius:14px;padding:26px}.signup h2{margin:0 0 6px;color:var(--panel-ink)}.signup p{color:var(--panel-muted);margin:0 0 14px}.signup form{display:flex;gap:8px;flex-wrap:wrap}.signup input{flex:1;min-width:220px;padding:11px 12px;border-radius:8px;border:0;font:inherit}.signup .btn{background:var(--accent);color:#fff}.signup .msg{margin-top:10px;font-size:.9rem;color:#ffd2bf}.price{font-size:2rem;font-weight:800;margin:6px 0}.card.hl{border:2px solid var(--ink)}input,select,textarea{background:var(--input);color:var(--ink)}.signup input{background:#fff;color:#14213d}.card ul{padding-left:18px;margin:10px 0 16px;color:var(--body2);font-size:.93rem}footer.site{border-top:1px solid var(--line);padding:28px 0;color:var(--muted);font-size:.88rem}footer.site .wrap{display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between}.crumbs{font-size:.85rem;color:var(--muted);margin-bottom:10px}.issue{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px;max-width:680px}.issue h2{font-size:1.1rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-ink);border-top:1px solid var(--line);padding-top:18px}.sponsor-slot{border:1.5px dashed var(--muted);border-radius:8px;padding:12px 14px;color:var(--muted);font-size:.92rem}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:32px;align-items:start;margin-bottom:28px}@media(max-width:820px){.hero{grid-template-columns:1fr}header.site .wrap{gap:14px}}.small{font-size:.85rem;color:var(--muted)}.theme-toggle{background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;width:36px;height:34px;display:grid;place-items:center;cursor:pointer;padding:0;flex:none}.theme-toggle:hover{border-color:var(--ink)}.theme-toggle .sun{display:none}:root[data-theme=dark] .theme-toggle .sun{display:block}:root[data-theme=dark] .theme-toggle .moon{display:none}header.site .btn{margin-left:0}.theme-toggle{margin-left:auto}.logo .mark-bg{fill:#14213d}:root[data-theme=dark] .logo .mark-bg{fill:#ece7dc}.avail{display:inline-block;font-size:.78rem;font-weight:700;padding:2px 9px;border-radius:99px;background:var(--tagbg);color:var(--ok)}.avail.full{color:var(--muted)}.scarce{font-weight:700;color:var(--accent-ink)}.cal{width:100%;border-collapse:collapse;font-size:.92rem;margin-top:8px}.cal th,.cal td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}.cal th{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.slotbar{display:flex;gap:4px;margin:8px 0}.slotbar i{width:22px;height:8px;border-radius:4px;background:var(--teal);opacity:.85}.slotbar i.b{background:var(--line)}.tablewrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:4px 10px}:root{--paper:#fff;--card:#f6f6f6;--ink:#000;--muted:#525252;--line:#d4d4d4;--accent:#0b63ce;--accent-ink:#0b63ce;--teal:#0b63ce;--radius:8px;--body2:#3a3a3a;--tagbg:#ececec;--featbg:#eef4fb;--btn:#000;--btn-ink:#fff;--btn-hover:#262626;--panel:#f6f6f6;--panel-ink:#000;--panel-muted:#525252;--input:#fff;--ok:#1f7a5a;--brand:#ff6b35;--font-sans:"Funnel Sans",ui-sans-serif,system-ui,sans-serif;--font-display:"Funnel Display","Funnel Sans",ui-sans-serif,sans-serif;--font-mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace}:root[data-theme=dark]{--paper:#000;--card:#0d0d0d;--ink:#fff;--muted:#a3a3a3;--line:#262626;--accent:#5aabff;--accent-ink:#5aabff;--teal:#5aabff;--body2:#d4d4d4;--tagbg:#1c1c1c;--featbg:#060d15;--btn:#fff;--btn-ink:#000;--btn-hover:#e5e5e5;--panel:#0d0d0d;--panel-ink:#fff;--panel-muted:#a3a3a3;--input:#000;--ok:#5fd3a5}@media(prefers-color-scheme:dark){:root:not([data-theme]){--paper:#000;--card:#0d0d0d;--ink:#fff;--muted:#a3a3a3;--line:#262626;--accent:#5aabff;--accent-ink:#5aabff;--featbg:#060d15;--btn:#fff;--btn-ink:#000;--panel:#0d0d0d;--panel-ink:#fff;--panel-muted:#a3a3a3;--input:#000}}body{font-family:var(--font-sans);font-size:15px;letter-spacing:-.005em}h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.025em}.logo{font-family:var(--font-display);font-weight:600}.logo span{color:var(--brand)}.eyebrow,.tag,.avail,.launch .rank,.launch .meta,.crumbs,.issue h2{font-family:var(--font-mono);font-weight:500;letter-spacing:.1em}.eyebrow{color:var(--muted)}.tag{border-radius:6px;background:transparent;border:1px solid var(--line);color:var(--muted);text-transform:uppercase;font-size:.66rem}.btn{border-radius:6px;font-weight:600}.btn.alt{border-color:var(--line)}.btn.accent{background:var(--btn);color:var(--btn-ink)}.card,.launch{background:var(--card);border-color:var(--line);border-radius:8px;box-shadow:none}a.card:hover,.card.hl{border-color:var(--ink)}.vote{border-radius:6px;background:var(--paper)}.vote.on{border-color:var(--accent);color:var(--accent)}.featured-slot{border:1px solid var(--line);background:var(--card)}.featured-slot .tag{background:transparent;color:var(--accent);border-color:var(--accent)}.sponsor-slot{border:1px dashed var(--line);border-radius:8px;background:var(--card);font-family:var(--font-mono);font-size:.8rem;letter-spacing:.02em}.box{border-left:1px solid var(--line);background:var(--featbg)}.signup{border:1px solid var(--line);border-radius:8px}.signup input{border:1px solid var(--line)}.signup .btn{background:var(--btn);color:var(--btn-ink)}.signup .msg{color:var(--accent)}header.site{border-bottom-style:dashed}footer.site{border-top-style:dashed}.menu-toggle{display:none;background:transparent;border:1px solid var(--line);color:var(--ink);border-radius:8px;width:36px;height:34px;place-items:center;cursor:pointer;padding:0;flex:none}.menu-toggle:hover{border-color:var(--ink)}.menu-toggle path{transition:transform .2s,opacity .2s;transform-origin:12px 12px}.menu-toggle[aria-expanded=true] .l1{transform:translateY(5px) rotate(45deg)}.menu-toggle[aria-expanded=true] .l2{opacity:0}.menu-toggle[aria-expanded=true] .l3{transform:translateY(-5px) rotate(-45deg)}.menu-toggle:focus-visible,.theme-toggle:focus-visible,nav.main a:focus-visible,header.site .btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(max-width:820px){header.site .wrap{position:relative}.js .menu-toggle{display:grid;order:3;margin-left:0}.js .theme-toggle{order:2}.js header.site .btn{order:4}.js nav.main{display:none;position:absolute;top:60px;left:0;right:0;flex-direction:column;flex-wrap:nowrap;gap:0;background:var(--paper);border-bottom:1px dashed var(--line);padding:8px 20px 14px;box-shadow:0 10px 24px #00000014}.js nav.main.open{display:flex}.js nav.main a{padding:11px 4px;border-bottom:1px dashed var(--line);font-size:1rem;color:var(--ink)}.js nav.main a:last-child{border-bottom:0}.js nav.main a[aria-current]{color:var(--accent-ink);font-weight:600}html:not(.js) nav.main{order:9;width:100%;gap:10px;font-size:.9rem}html:not(.js) header.site .wrap{height:auto;flex-wrap:wrap;padding-top:10px;padding-bottom:10px}}@media(prefers-reduced-motion:reduce){.menu-toggle path{transition:none}}@media(max-width:420px){header.site .wrap{gap:6px;padding-left:12px;padding-right:12px}.logo{font-size:.92rem;gap:6px}.logo svg{width:20px;height:20px}.theme-toggle,.js .menu-toggle{width:32px}header.site .btn{padding:6px 9px;font-size:.82rem}}.hp-head{max-width:760px;margin:8px 0 28px}.hp-head h1{font-size:clamp(1.9rem,4.2vw,3rem);line-height:1.04;letter-spacing:-.035em;margin:.35em 0 .3em;text-wrap:balance}.hp-head .lede{font-size:1.05rem;margin:0}.dateline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin:0;font:500 .72rem/1.4 var(--font-mono);letter-spacing:.04em;color:var(--muted);text-transform:uppercase}.dateline span+span:before{content:"/";margin-right:14px;color:var(--line)}.dateline .stamp{color:var(--paper);background:var(--brand);padding:3px 7px 3px 18px;border-radius:3px;position:relative}.dateline .stamp:after{content:"";position:absolute;left:6px;top:50%;margin-top:-4px;border:4px solid transparent;border-bottom:8px solid var(--paper);border-top:0}.hp-cols{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:40px;align-items:start}.hp-side{position:sticky;top:76px}.sec-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;border-bottom:1px solid var(--ink);padding-bottom:8px;margin:0 0 4px}.sec-h h2{font-size:1rem;margin:0;letter-spacing:-.01em}.sec-h a{font:500 .75rem var(--font-mono);color:var(--muted);text-decoration:none;white-space:nowrap}.sec-h a:hover{color:var(--accent)}section+section,.hp-cols+section{margin-top:44px}.launches.dense{gap:0}.launches.dense .launch{grid-template-columns:22px 32px minmax(0,1fr) auto;gap:12px;align-items:start;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:14px 0;transition:background .12s}.launches.dense .launch:hover{background:var(--card)}.launches.dense .rank{font-size:.72rem;padding-top:8px;letter-spacing:0;text-align:left}.launches.dense .rank.lead{color:var(--brand)}.logo-tile{width:32px;height:32px;border-radius:7px;border:1px solid var(--line);background:#fff;object-fit:contain;padding:4px;display:grid;place-items:center;font:600 .95rem var(--font-display);color:#000}.logo-tile.empty{background:transparent;color:var(--accent);border-style:dashed}.launches.dense h3{font-size:1rem;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.launches.dense h3 a{text-decoration:none}.launches.dense h3 a:hover{text-decoration:underline}.kind{font:500 .66rem var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.launches.dense p{margin:2px 0 4px;font-size:.92rem;color:var(--body2);max-width:62ch}.launches.dense .meta{letter-spacing:.02em;font-size:.72rem;overflow-wrap:anywhere}.launches.dense .meta a{color:var(--muted)}.launches.dense .vote{min-width:48px;padding:5px 6px;font-size:.75rem}.launches.dense .featured-slot{background:var(--featbg);padding-left:10px;padding-right:10px;border-bottom:1px dashed var(--accent)}.more{margin:12px 0 0;font:500 .8rem var(--font-mono)}.idx{list-style:none;counter-reset:i;padding:0;margin:0 0 18px}.idx li{counter-increment:i;display:grid;grid-template-columns:26px 1fr;padding:9px 0;border-bottom:1px solid var(--line);font-size:.92rem;line-height:1.35}.idx li:before{content:counter(i,decimal-leading-zero);font:500 .7rem/1.9 var(--font-mono);color:var(--muted)}.idx a{text-decoration:none}.idx a:hover{color:var(--accent)}.rows{list-style:none;padding:0;margin:0}.rows a{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,1fr) auto;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);text-decoration:none;align-items:baseline}.rows a:hover .r-t{color:var(--accent)}.r-t{font-weight:600}.r-d{color:var(--muted);font-size:.9rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.r-n{font:500 .72rem var(--font-mono);color:var(--muted)}.hubline{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--line)}.hubline a{display:block;padding:14px 16px 14px 0;text-decoration:none;font-size:.88rem;color:var(--muted)}.hubline b{color:var(--ink);font-weight:600;margin-right:6px}.hubline span:last-child{display:block;margin-top:4px}.hubline a:hover b{color:var(--accent)}@media(max-width:900px){.hp-cols{grid-template-columns:1fr;gap:32px}.hp-side{position:static}.hubline{grid-template-columns:1fr 1fr}}@media(max-width:600px){.hide-sm{display:none}.rows a{grid-template-columns:minmax(0,1fr) auto}.r-d{display:none}.launches.dense .launch{grid-template-columns:32px minmax(0,1fr) auto;gap:10px}.launches.dense .rank{display:none}.hubline{grid-template-columns:1fr}}
