:root { --bg:#0b0f14; --panel:#0e141b; --line:#1f2a35; --fg:#c5d1de; --dim:#5c6b7a; --acc:#3ddc84; } * { box-sizing:border-box; margin:0; padding:0; } html { background:var(--bg); } body { min-height:100svh; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; padding:24px 16px; background:radial-gradient(1200px 600px at 50% -10%, #101822 0%, var(--bg) 60%); color:var(--fg); font-family: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace; font-size:15px; line-height:1.7; -webkit-font-smoothing: antialiased; } .sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; } ::selection { background:var(--acc); color:var(--bg); } a { color:var(--acc); } .win { width:100%; max-width:760px; background:var(--panel); border:1px solid var(--line); border-radius:12px; box-shadow: 0 28px 90px rgba(0,0,0,.55), 0 0 0 1px rgba(61,220,132,.04); overflow:hidden; } .bar { display:flex; align-items:center; gap:8px; padding:11px 14px; border-bottom:1px solid var(--line); background:#0c1117; } .dot { width:11px; height:11px; border-radius:50%; } .dot.r { background:#ff5f57; } .dot.y { background:#febc2e; } .dot.g { background:#28c840; } .title { margin-left:auto; margin-right:auto; font-size:12.5px; color:var(--dim); letter-spacing:.02em; } .term { padding:22px 20px 26px; overflow-x:auto; } .l { white-space:pre; opacity:0; transform:translateY(3px); animation:in .35s ease forwards; } .p { color:var(--acc); } .d { color:var(--dim); } .a { color:var(--acc); } .l:nth-child(1){ animation-delay:.15s; } .l:nth-child(2){ animation-delay:.40s; } .l:nth-child(3){ animation-delay:.55s; } .l:nth-child(4){ animation-delay:.70s; } .l:nth-child(5){ animation-delay:.90s; } .l:nth-child(6){ animation-delay:1.10s; } .l:nth-child(7){ animation-delay:1.30s; } .l:nth-child(8){ animation-delay:1.50s; } .l:nth-child(9){ animation-delay:1.70s; } .l:nth-child(10){ animation-delay:1.90s; } .l:nth-child(11){ animation-delay:2.10s; } .l:nth-child(12){ animation-delay:2.30s; } @keyframes in { to { opacity:1; transform:none; } } @keyframes blink { 50% { opacity:0; } } /* Cat — real button, two poses, a11y-first */ .cat-btn { all:unset; display:inline-block; cursor:pointer; color:var(--acc); position:relative; user-select:none; border-radius:6px; } .cat-btn:focus-visible { outline: 2px solid var(--acc); outline-offset: 6px; } .cat-art { display:block; font-size: clamp(13px, 3.6vw, 19px); line-height:1.25; transition: transform .18s ease; animation: wiggle 4s ease-in-out 2.4s infinite; } .cat-btn:hover .cat-art { transform: translateY(-1px); } .cat-btn:active .cat-art { transform: scale(.97); } @keyframes wiggle { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } } .bubble { position:absolute; top:-8px; right:-6px; background:var(--bg); border:1px solid var(--acc); border-radius:10px; color:var(--acc); font-size:13px; padding:3px 10px; opacity:0; transform: translateY(6px) scale(.92); transition: opacity .18s ease, transform .18s ease; pointer-events:none; white-space:nowrap; box-shadow: 0 4px 14px rgba(0,0,0,.4); } .bubble.show { opacity:1; transform: none; } /* Fact row with refresh */ .fact-row { display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; } .fact { color:var(--fg); white-space:normal; min-width:0; } .refresh { all:unset; cursor:pointer; color:var(--dim); font-size:12px; padding:3px 8px; border-radius:4px; transition: color .15s ease, background .15s ease; white-space:nowrap; } .refresh:hover, .refresh:focus-visible { color:var(--acc); background: rgba(61,220,132,.08); } .refresh:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; } .refresh[aria-busy="true"] { opacity:.55; cursor:progress; } .cursor { display:inline-block; width:.62em; height:1.1em; background:var(--acc); vertical-align:-.18em; animation: blink 1.1s steps(2) 2.4s infinite; } @media (max-width: 380px) { body { font-size:13.5px; padding:24px 12px; } .term { padding:18px 14px 22px; } } .foot { font-size:12px; color:var(--dim); text-align:center; } .foot .vibe { color:var(--acc); animation: glow 2.6s ease-in-out infinite; } @keyframes glow { 0%,100% { opacity:.6; text-shadow:none; } 50% { opacity:1; text-shadow: 0 0 14px rgba(61,220,132,.9); } } @media (prefers-reduced-motion: reduce) { .l { animation:none; opacity:1; transform:none; } .cat-art, .foot .vibe, .cursor { animation:none; } .cursor { opacity:1; } .cat-art, .bubble, .refresh { transition:none; } }
Skip to the cat