/* Shared by the visitor page (/), the app (/app) and the help pages: colours, type, buttons, the viral finder,
   the sign-in box and the footer. Bright and optimistic: warm white, sunny yellow, coral for actions. */
:root{
  --bg:#FFFCF7; --panel:#FFFFFF; --raise:#FFF9F0; --sunk:#F6EFE4; --ink:#1D1B2E; --muted:#55526A; --faint:#77738A; --line:#EFE5D5;
  --accent:#D23D1A; --accent-hover:#B8320F; --accent-soft:#FFEAE2; --accent-ink:#ffffff; --accent-text:#A8300F;
  --sun:#FFC21A; --sun-soft:#FFF1C9; --sun-ink:#5C3A00; --peach:#FFF3E3; --sky:#EEF4FF; --blue:#2F6BEF;
  --ok:#1F8A4C; --ok-soft:#E3F6EA; --warn:#A35F00; --bad:#C8102E; --bad-soft:#FDECEE;
  --shadow-sm:0 1px 2px rgba(29,27,46,.06),0 2px 8px rgba(29,27,46,.04);
  --shadow:0 1px 2px rgba(29,27,46,.05),0 10px 30px rgba(29,27,46,.07);
  --shadow-lg:0 2px 6px rgba(29,27,46,.06),0 24px 60px rgba(29,27,46,.14);
  --header:rgba(255,252,247,.86); --scrim:rgba(29,27,46,.32);
  --sans:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --display:"Bricolage Grotesque","Figtree",-apple-system,sans-serif;
  --mono:"SF Mono",ui-monospace,Menlo,Consolas,monospace;
  --r-lg:28px; --r:20px; --r-sm:12px;
  color-scheme:light;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
html{scroll-behavior:smooth}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 45%,transparent);outline-offset:2px;border-radius:8px}
h1,h2,h3{font-family:var(--display)}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
@media (max-width:600px){.wrap{padding:0 16px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}

.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--ink);font-family:var(--display);font-weight:800;font-size:20px;letter-spacing:-.02em;white-space:nowrap}
.go{background:var(--accent);border:0;color:var(--accent-ink);font-weight:700;font-size:15px;padding:11px 22px;border-radius:99px;white-space:nowrap;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:10px;box-shadow:0 6px 18px rgba(210,61,26,.22);transition:background .15s,transform .1s}
.go:hover{background:var(--accent-hover)}
.go:active{transform:scale(.98)}
.go:disabled{opacity:.45;cursor:not-allowed;transform:none}
.go.big{padding:16px 30px;font-size:18px}
.ghost{background:var(--panel);border:0;box-shadow:inset 0 0 0 1.5px var(--line);padding:10px 18px;border-radius:99px;color:var(--ink);font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;transition:background .15s}
.ghost:hover{background:var(--raise)}
.ghost.big{padding:15px 26px;font-size:17px}
.link{background:none;border:0;padding:0;color:var(--accent-text);font-size:14px;font-weight:600}
.link:hover{text-decoration:underline;text-underline-offset:3px}

/* ── the viral finder ── */
.finder{display:flex;flex-direction:column;gap:14px;min-width:0}
.finder>*{min-width:0;max-width:100%}
.fsearch{display:flex;gap:8px;align-items:center;background:var(--panel);border-radius:99px;padding:6px 6px 6px 8px;box-shadow:inset 0 0 0 1.5px var(--line)}
.fsearch:focus-within{box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--accent-soft)}
.fsearch svg{flex:none;margin:0 2px 0 12px;color:var(--faint)}
.fsearch input{flex:1;min-width:0;background:none;border:0;padding:11px 4px;font-size:17px;outline:none}
.fsearch input::placeholder{color:var(--faint)}
.fsearch .go{background:var(--ink);box-shadow:none;padding:11px 22px}
.fsearch .go:hover{background:#34314D}
.fniche{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}
.fniche::-webkit-scrollbar{display:none}
.fniche button{flex:none;border:0;background:var(--sunk);color:var(--ink);padding:7px 15px;border-radius:99px;font-size:14px;font-weight:600;white-space:nowrap}
.fniche button:hover{background:#EEE4D5}
.fniche button[aria-pressed="true"]{background:var(--ink);color:#fff}
.fbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:6px}
.fwhat{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.01em}
.fsrc{display:flex;gap:2px;background:var(--sunk);padding:3px;border-radius:99px;flex-wrap:wrap}
.fsrc button{border:0;background:none;color:var(--muted);padding:6px 12px;border-radius:99px;font-size:13.5px;display:flex;align-items:center;gap:6px}
.fsrc button[aria-pressed="true"]{background:var(--panel);color:var(--ink);box-shadow:var(--shadow-sm);font-weight:600}
.fsrc button:disabled{opacity:.45;cursor:default}
.fsrc .c{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.fupd{margin-left:auto;display:flex;gap:12px;align-items:center;color:var(--faint);font-size:13px}
.dot-src{display:inline-block;width:8px;height:8px;border-radius:50%;flex:none}
.src-youtube{background:#ff3b30}.src-reddit{background:#ff7a1a}.src-hn{background:#f5a623}.src-news{background:#2f8cff}
.fgrid{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,250px);gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:4px;padding:4px 4px 16px;margin:0 -4px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.fgrid>*{scroll-snap-align:start}
.fgrid.single{display:block;overflow:visible}
.farrows{display:flex;gap:6px}
.farrows button{width:38px;height:38px;border-radius:50%;border:0;background:var(--sunk);color:var(--ink);font-size:18px;line-height:1;display:grid;place-items:center}
.farrows button:hover{background:#EEE4D5}
.fcard{background:var(--panel);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;min-width:0;box-shadow:inset 0 0 0 1.5px var(--line);transition:transform .2s ease,box-shadow .2s ease}
.fcard:hover{transform:translateY(-3px);box-shadow:inset 0 0 0 1.5px var(--line),0 12px 28px rgba(29,27,46,.10)}
.fcard.sel{box-shadow:0 0 0 3px var(--accent)}
.fimgl{display:block}
.fimg{width:100%;aspect-ratio:16/9;object-fit:cover;display:block;background:var(--sunk)}
.fph{display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:14px 16px;color:#fff}
.fph b{font-size:15px}
.fph span{font-size:12.5px;opacity:.9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fph.src-youtube{background:linear-gradient(135deg,#E5322D,#8E1410)}.fph.src-reddit{background:linear-gradient(135deg,#FF7A33,#C23F00)}.fph.src-hn{background:linear-gradient(135deg,#F38A3C,#B4450F)}.fph.src-news{background:linear-gradient(135deg,#3C7DF0,#173E8C)}
.fb{padding:14px 16px 6px;display:flex;flex-direction:column;gap:6px;flex:1}
.ft{font-weight:700;font-size:15px;line-height:1.35;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fm{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);min-width:0}
.fm span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fa{display:flex;gap:10px;align-items:center;padding:8px 16px 16px}
.fa .go{padding:8px 16px;font-size:14px;box-shadow:none}
.fa a{color:var(--faint);font-size:13px;text-decoration:none;margin-left:auto;white-space:nowrap}
.fa a:hover{color:var(--accent)}
.fskel{height:290px;border-radius:var(--r);background:linear-gradient(90deg,var(--raise),var(--sunk),var(--raise));background-size:200% 100%;animation:fsh 1.4s ease-in-out infinite}
@keyframes fsh{to{background-position:-200% 0}}
.fempty{color:var(--muted);font-size:15px;padding:36px 24px;text-align:center;background:var(--raise);border-radius:var(--r);box-shadow:inset 0 0 0 1.5px var(--line);display:flex;flex-direction:column;align-items:center;gap:10px}
.fempty b{color:var(--ink);font-family:var(--display);font-size:20px}
/* phones: swipe the row; the next card peeks in from the edge */
@media (max-width:700px){.farrows{display:none}}
@media (max-width:600px){
  .fupd{margin-left:0;flex-basis:100%}
  .fsearch{padding:5px 5px 5px 4px}.fsearch input{font-size:16px;padding:10px 2px}.fsearch .go{padding:10px 16px}
  .fgrid{grid-auto-columns:78%;gap:12px}
  .fcard:hover{transform:none}
  .fsrc{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}.fsrc::-webkit-scrollbar{display:none}
  .fsrc button{white-space:nowrap}
}

/* ── sign-in box ── */
.scrim{position:fixed;inset:0;background:var(--scrim);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:grid;place-items:center;z-index:50;padding:16px;animation:fade .2s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:var(--panel);border-radius:28px;padding:30px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:16px;max-height:calc(100vh - 32px);overflow:auto;box-shadow:var(--shadow-lg);animation:rise .25s ease}
@keyframes rise{from{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}
.modal h3{margin:0;font-size:22px;letter-spacing:-.02em;font-weight:700}
.modal p{margin:0;color:var(--muted);font-size:15px}
.modal .row2{display:flex;gap:8px;align-items:center}
.modal input[type=email]{flex:1;min-width:0;background:var(--raise);border:1px solid transparent;border-radius:12px;padding:12px 14px}
.modal input[type=email]:focus{outline:none;background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}
.modal input.code{flex:1;min-width:0;background:var(--raise);border:1px solid transparent;border-radius:12px;padding:12px 14px;font-size:20px;letter-spacing:.3em;font-variant-numeric:tabular-nums}
.modal input.code:focus{outline:none;background:var(--panel);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 16%,transparent)}
.modal input.code::placeholder{font-size:15px;letter-spacing:0}
.modal .codestep{display:flex;flex-direction:column;gap:10px}
.modal .codestep .codenote{color:var(--ink);font-size:15px}
.modal .codelinks{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.gbtn{display:flex;align-items:center;justify-content:center;gap:10px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:99px;padding:12px;font-weight:600}
.gbtn:hover{background:var(--raise)}
.or{display:flex;align-items:center;gap:12px;color:var(--faint);font-size:13px}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.modal .msg{font-size:14px;color:var(--muted)}
.modal .msg.ok{color:var(--ok)} .modal .msg.bad{color:var(--bad)}
.modal .news{font-size:13.5px;line-height:1.45;color:var(--muted);background:var(--sky);border-radius:var(--r-sm);padding:10px 12px;margin:0}
.modal .news b{color:var(--ink)}
.modal .fine{font-size:12.5px;color:var(--faint);text-align:center}
.modal .fine a{color:inherit}

/* ── footer ── */
.foot{border-top:1px solid var(--line);color:var(--faint);font-size:14px}
.foot .wrap{display:flex;flex-wrap:wrap;gap:10px 22px;align-items:center;padding-top:24px;padding-bottom:32px}
.foot a{color:var(--muted);text-decoration:none}
.foot a:hover{color:var(--ink);text-decoration:underline}
.foot .c{margin-left:auto}
@media (max-width:600px){.foot .c{margin-left:0;flex-basis:100%}}
