.site{--bg:#fff;--fg:#111412;--muted:#5f6661;--line:#e3e6e4;--card:#f7f8f7;--accent:#0f8a4f;--accent-soft:#0f8a4f1a;--grid:#1114120b}@media (prefers-color-scheme:dark){.site{--bg:#0b0d0c;--fg:#ecefed;--muted:#949b96;--line:#232826;--card:#121614;--accent:#3ddc84;--accent-soft:#3ddc841f;--grid:#ecefed0a}}.site *{box-sizing:border-box}.site{isolation:isolate;background:var(--bg);min-height:100dvh;color:var(--fg);-webkit-font-smoothing:antialiased;flex-direction:column;flex:1;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55;display:flex;position:relative;overflow-x:hidden}.site .bg{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.site .bg .grid{background:linear-gradient(var(--grid) 1px, transparent 1px) 0 0 / 40px 40px, linear-gradient(90deg, var(--grid) 1px, transparent 1px) 0 0 / 40px 40px;animation:18s linear infinite site-grid-pan;position:absolute;inset:-40px;-webkit-mask-image:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 80%);mask-image:radial-gradient(70% 60% at 50% 30%,#000 30%,#0000 80%)}@keyframes site-grid-pan{to{transform:translate(40px,40px)}}.site .bg .blob{background:radial-gradient(circle, var(--accent-soft) 0%, transparent 65%);filter:blur(20px);opacity:0;border-radius:50%;width:55vmax;height:55vmax;animation:2s .1s forwards site-blob-in,22s ease-in-out infinite alternate site-drift;position:absolute}.site .bg .blob.b1{top:-25vmax;left:-10vmax}.site .bg .blob.b2{animation-duration:2s,28s;animation-delay:.4s,-8s;top:-15vmax;right:-20vmax}.site .bg .blob.b3{animation-duration:2s,34s;animation-delay:.7s,-15s;bottom:-30vmax;left:20vw}@keyframes site-blob-in{to{opacity:1}}@keyframes site-drift{0%{transform:translate(0)scale(1)}50%{transform:translate(6vmax,4vmax)scale(1.1)}to{transform:translate(-4vmax,8vmax)scale(.95)}}.site .bg canvas{opacity:0;width:100%;height:100%;animation:2.4s .6s forwards site-blob-in;position:absolute;inset:0}.site .site-reveal{opacity:0;filter:blur(6px);animation:site-reveal .8s cubic-bezier(.22, 1, .36, 1) var(--d,0s) forwards;transform:translateY(14px)}@keyframes site-reveal{to{opacity:1;filter:none;transform:none}}.site h1 .ch{opacity:0;animation:site-reveal .7s cubic-bezier(.22, 1, .36, 1) calc(.25s + var(--i) * 50ms) forwards;display:inline-block;transform:translateY(.4em)rotate(4deg)}.site main{flex:1;width:100%;max-width:620px;margin:0 auto;padding:clamp(64px,16vh,160px) 16px 64px}.site .badge{border:1px solid var(--line);background:var(--bg);color:var(--muted);border-radius:999px;align-items:center;gap:8px;margin-bottom:20px;padding:4px 12px 4px 10px;font-size:.8rem;display:inline-flex}.site .badge:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;animation:2.4s ease-out 1.5s infinite site-ping}@keyframes site-ping{0%{box-shadow:0 0 0 0 var(--accent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.site h1{letter-spacing:-.045em;margin:0;font-size:clamp(2.75rem,10vw,4rem);font-weight:800;line-height:1}.site h1 .dot{color:var(--accent)}.site h1 .dot.ch{animation:site-reveal .7s cubic-bezier(.22, 1, .36, 1) calc(.25s + var(--i) * 50ms) forwards, site-blink 1.2s steps(2, jump-none) 2.5s 3}@keyframes site-blink{50%{opacity:.15}}.site .chart-wrap{color:var(--accent);margin:40px 0 56px;position:relative}.site .chart{width:100%;height:72px;display:block;overflow:visible}.site .chart .line{filter:drop-shadow(0 0 6px var(--accent-soft))}.site .chart .site-shimmer{stroke-dasharray:60 1140;stroke-dashoffset:60px;opacity:0;animation:4s cubic-bezier(.45,0,.55,1) 2.2s infinite site-shimmer}@keyframes site-shimmer{0%{stroke-dashoffset:60px;opacity:0}10%{opacity:1}60%{stroke-dashoffset:-1140px;opacity:1}61%,to{opacity:0}}.site .chart-dot{background:var(--accent);opacity:0;border-radius:50%;width:10px;height:10px;animation:.4s cubic-bezier(.34,1.56,.64,1) 1.9s forwards site-pop,2s ease-out 2.4s infinite site-ping;position:absolute;top:-1px;right:-5px;transform:scale(0)}@keyframes site-pop{to{opacity:1;transform:scale(1)}}.site .chart .site-draw{stroke-dasharray:1200;stroke-dashoffset:1200px;animation:1.6s cubic-bezier(.65,0,.35,1) .5s forwards site-draw}.site .chart .area{opacity:0;transform-origin:bottom;animation:.9s 1.5s forwards site-area-in;transform:scaleY(.6)}@keyframes site-draw{to{stroke-dashoffset:0}}@keyframes site-area-in{to{opacity:1;transform:none}}.site h2{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 14px;font-size:.75rem;font-weight:600}.site ul{gap:12px;margin:0;padding:0;list-style:none;display:grid}.site .project{--x:50%;--y:50%;border:1px solid var(--line);background:var(--card);color:inherit;border-radius:14px;align-items:center;gap:16px;padding:18px 20px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.site a.project:before{content:"";background:radial-gradient(220px circle at var(--x) var(--y), var(--accent-soft), transparent 70%);opacity:0;pointer-events:none;transition:opacity .2s;position:absolute;inset:0}.site a.project:after{content:"";pointer-events:none;background:linear-gradient(100deg,#0000,#ffffff40,#0000);width:40%;position:absolute;top:0;bottom:0;left:-60%;transform:skew(-20deg)}.site a.project:hover:after,.site a.project:focus-visible:after{animation:.9s site-sweep}@keyframes site-sweep{to{left:130%}}.site a.project:hover,.site a.project:focus-visible{border-color:var(--accent);box-shadow:0 12px 32px -14px var(--accent);outline:none;transform:translateY(-3px)}.site a.project:hover:before,.site a.project:focus-visible:before{opacity:1}.site a.project:active{transform:translateY(-1px)scale(.99)}.site a.project>*{position:relative}.site .icon{background:var(--accent-soft);width:44px;height:44px;color:var(--accent);border-radius:10px;flex:none;place-items:center;transition:transform .4s cubic-bezier(.34,1.56,.64,1);display:grid}.site a.project:hover .icon,.site a.project:focus-visible .icon{transform:rotate(-12deg)scale(1.08)}.site .text{flex:1;min-width:0}.site .text strong{font-size:1.05rem;display:block}.site .text span{color:var(--muted);font-size:.925rem}.site .arrow{color:var(--muted);flex:none;font-size:1.25rem;transition:transform .15s,color .15s}.site a.project:hover .arrow,.site a.project:focus-visible .arrow{color:var(--accent);animation:.9s ease-in-out infinite site-nudge}@keyframes site-nudge{50%{transform:translate(5px)}}.site footer{text-align:center;color:var(--muted);padding:32px 16px;font-size:.8rem}.site footer a{color:inherit;text-underline-offset:2px}.site footer a:hover{color:var(--fg)}.site footer a.credit{vertical-align:bottom;align-items:center;gap:4px;display:inline-flex}.site footer a.credit svg{flex:none}@media (prefers-reduced-motion:reduce){.site *,.site :before,.site :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.site .chart .site-shimmer,.site .bg canvas{display:none}}.site .site-header{z-index:1;align-items:center;gap:10px;padding:16px;font-size:.85rem;display:flex;position:absolute;top:0;right:0}.site .who{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:40vw;overflow:hidden}.site .pill-btn{border:1px solid var(--line);background:var(--bg);color:var(--fg);font:inherit;cursor:pointer;border-radius:999px;align-items:center;padding:5px 14px;text-decoration:none;transition:border-color .15s;display:inline-flex}.site .pill-btn:hover,.site .pill-btn:focus-visible{border-color:var(--accent);outline:none}.site .lock{color:var(--muted);flex:none;place-items:center;display:grid}.site .hint{color:var(--muted);margin:18px 2px 0;font-size:.875rem}.site .hint a{color:var(--accent)}.site .login{max-width:420px}.site .brand-link{color:inherit;letter-spacing:-.04em;font-size:1.5rem;font-weight:800;text-decoration:none}.site .brand-link .dot{color:var(--accent)}.site .login h1{margin:28px 0 8px;font-size:clamp(2rem,8vw,2.6rem)}.site .login .lead{color:var(--muted);margin:0 0 28px}.site .card{border:1px solid var(--line);background:var(--card);border-radius:14px;padding:22px}.site .card h2{text-transform:none;letter-spacing:0;color:var(--fg);margin:0 0 6px;font-size:1.05rem;font-weight:600}.site .card p{color:var(--muted);margin:0 0 16px;font-size:.925rem}.site .card label{color:var(--muted);margin-bottom:6px;font-size:.8rem;display:block}.site .card input{border:1px solid var(--line);background:var(--bg);width:100%;color:var(--fg);font:inherit;border-radius:10px;margin-bottom:14px;padding:10px 12px}.site .card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);outline:none}.site .primary{background:var(--accent);width:100%;color:var(--bg);font:inherit;cursor:pointer;border:0;border-radius:10px;padding:10px 14px;font-weight:600;transition:filter .15s,transform .15s}.site .primary:hover{filter:brightness(1.08)}.site .primary:active{transform:scale(.99)}.site .primary[disabled]{opacity:.6;cursor:default}.site .secondary{justify-content:center;width:100%}.site .card .error{color:#e5484d;margin:-4px 0 12px;font-size:.875rem}.site .card .switch{justify-content:space-between;gap:12px;margin:14px 0 0;display:flex}.site .link-btn{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;padding:0;font-size:.875rem}.site .link-btn:hover,.site .link-btn:focus-visible{outline:none;text-decoration:underline}.site .card code{font-family:ui-monospace,monospace;font-size:.85em}
