:root{--cf-accent:#8b5cf6;--cf-accent-soft:#f5f3ff;--cf-accent-strong:#6d28d9;--cf-ink:#111827;--cf-ink-soft:#6b7280;--cf-ink-muted:#9ca3af;--cf-line:#e7e2d8;--cf-line-strong:#d8d0c3;--cf-surface:#fff;--cf-surface-hover:#f4f1ea;--cf-bg:#fafaf7;--cf-primary:#2563eb;--cf-primary-hover:#1d4ed8;--cf-success:#16a34a;--cf-warning:#d97706;--cf-danger:#dc2626;--cf-shadow-soft:0 10px 30px #1118270d;--cf-shadow-lift:0 20px 40px #11182714;--cf-ease-out:cubic-bezier(.16, 1, .3, 1);--cf-ease-in-out:cubic-bezier(.65, 0, .35, 1)}.cf-reveal{opacity:0;transition:opacity .8s var(--cf-ease-out), transform .8s var(--cf-ease-out);will-change:opacity, transform;transform:translateY(14px)}.cf-reveal.is-in{opacity:1;will-change:auto;transform:translate(0,0)}.cf-stagger-in>.cf-reveal,.cf-stagger-in>.cf-reveal:first-child{transition-delay:0s}.cf-stagger-in>.cf-reveal:nth-child(2){transition-delay:80ms}.cf-stagger-in>.cf-reveal:nth-child(3){transition-delay:.16s}.cf-stagger-in>.cf-reveal:nth-child(4){transition-delay:.24s}.cf-stagger-in>.cf-reveal:nth-child(5){transition-delay:.32s}.cf-stagger-in>.cf-reveal:nth-child(6){transition-delay:.4s}.cf-stagger-in>.cf-reveal:nth-child(7){transition-delay:.48s}.cf-stagger-in>.cf-reveal:nth-child(8){transition-delay:.56s}.cf-word{opacity:0;transition:opacity .7s var(--cf-ease-out), transform .7s var(--cf-ease-out);display:inline-block;transform:translateY(12px)}.cf-word.is-in{opacity:1;transform:translate(0,0)}.cf-reveal-left{opacity:0;transition:opacity .9s var(--cf-ease-out), transform .9s var(--cf-ease-out);transform:translate(-20px)}.cf-reveal-right{opacity:0;transition:opacity .9s var(--cf-ease-out), transform .9s var(--cf-ease-out);transform:translate(20px)}.cf-reveal-left.is-in,.cf-reveal-right.is-in{opacity:1;transform:translate(0,0)}.cf-hero-spotlight{pointer-events:none;z-index:1;opacity:0;width:540px;height:540px;transition:opacity .5s var(--cf-ease-out);background:radial-gradient(circle,#8b5cf614 0%,#8b5cf600 60%);position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.cf-hero-spotlight.is-active{opacity:1}/* @keyframes cf-kanban-pop removed (epilepsy-safe) *//* .cf-kanban-card-live animation removed (epilepsy-safe): card is static *//* .cf-live-pulse keyframes removed (epilepsy-safe): use static halo on .cf-live-dot */.cf-live-dot{box-shadow:0 0 0 4px #16a34a26}@keyframes cf-blob-drift-1{0%,to{transform:translate3d(0,0,0)scale(1)}33%{transform:translate3d(40px,-30px,0)scale(1.08)}66%{transform:translate3d(-20px,25px,0)scale(.96)}}@keyframes cf-blob-drift-2{0%,to{transform:translate3d(0,0,0)scale(1)}50%{transform:translate3d(-50px,30px,0)scale(1.05)}}.cf-blob-a{animation:cf-blob-drift-1 18s var(--cf-ease-in-out) infinite;will-change:transform,filter}.cf-blob-b{animation:cf-blob-drift-2 22s var(--cf-ease-in-out) infinite;will-change:transform,filter}@keyframes cf-cursor-blink{0%,40%{opacity:1}60%,to{opacity:.15}}.cf-counter-cursor{background:var(--cf-accent);vertical-align:-.05em;width:3px;height:.95em;margin-left:4px;animation:2s ease-in-out infinite cf-cursor-blink;display:inline-block}@keyframes cf-counter-flash{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.cf-counter.is-done{animation:cf-counter-flash .5s var(--cf-ease-out);transform-origin:50%;display:inline-block}.cf-header{transition:background-color .3s var(--cf-ease-out), border-color .3s var(--cf-ease-out), backdrop-filter .3s var(--cf-ease-out)}.cf-header.is-scrolled{-webkit-backdrop-filter:saturate(180%)blur(10px);border-bottom:1px solid var(--cf-line);background-color:#fafaf7d9}.cf-nav-link{position:relative}.cf-nav-link.is-active{color:var(--cf-ink);background-color:var(--cf-surface-hover)}.cf-nav-link.is-active:after{content:"";background:var(--cf-accent);width:16px;height:2px;animation:cf-underline-in .4s var(--cf-ease-out) forwards;border-radius:2px;position:absolute;bottom:-1px;left:50%;transform:translate(-50%)}@keyframes cf-underline-in{0%{transform:translate(-50%)scaleX(0)}to{transform:translate(-50%)scaleX(1)}}.cf-menu-backdrop{pointer-events:none;opacity:0;visibility:hidden}.cf-menu-backdrop.is-open{pointer-events:auto;opacity:1;visibility:visible;-webkit-backdrop-filter:blur(4px);background-color:#11182759}.cf-menu-panel{opacity:0;max-height:0;transition:max-height .4s var(--cf-ease-out), opacity .3s var(--cf-ease-out)}.cf-menu-panel.is-open{opacity:1;max-height:480px}.cf-menu-link{opacity:0;transition:opacity .4s var(--cf-ease-out), transform .4s var(--cf-ease-out), background-color .2s var(--cf-ease-out);transform:translateY(8px)}.cf-menu-link.is-in{opacity:1;transform:translate(0,0)}.cf-menu-bars{width:18px;height:14px;display:block;position:relative}.cf-menu-bars>span{width:100%;height:2px;transition:transform .35s var(--cf-ease-out), opacity .25s var(--cf-ease-out), top .25s var(--cf-ease-out);background:currentColor;border-radius:2px;position:absolute;left:0}.cf-menu-bars>span:first-child{top:0}.cf-menu-bars>span:nth-child(2){top:6px}.cf-menu-bars>span:nth-child(3){top:12px}.cf-menu-toggle.is-open .cf-menu-bars>span:first-child{top:6px;transform:rotate(45deg)}.cf-menu-toggle.is-open .cf-menu-bars>span:nth-child(2){opacity:0;transform:scaleX(.3)}.cf-menu-toggle.is-open .cf-menu-bars>span:nth-child(3){top:6px;transform:rotate(-45deg)}.cf-magnetic{transition:transform .25s var(--cf-ease-out);will-change:transform}.cf-magnetic:hover{transform:translateY(-2px)}.cf-bento-card{transition:transform .4s var(--cf-ease-out), box-shadow .4s var(--cf-ease-out), border-color .4s var(--cf-ease-out);position:relative;overflow:hidden}.cf-bento-card:hover{border-color:var(--cf-line-strong);box-shadow:var(--cf-shadow-lift);transform:translateY(-4px)}.cf-bento-card:active{transition-duration:.1s;transform:translateY(-1px)scale(.995)}.cf-bento-card:after{content:"";pointer-events:none;transition:transform .8s var(--cf-ease-out);z-index:1;background:linear-gradient(105deg,#0000 30%,#ffffffb3 50%,#0000 70%);position:absolute;inset:0;transform:translate(-100%)}.cf-bento-card:hover:after{transform:translate(100%)}.cf-bento-card .cf-bento-detail{opacity:0;max-height:0;transition:max-height .4s var(--cf-ease-out), opacity .4s var(--cf-ease-out);overflow:hidden}.cf-bento-card:hover .cf-bento-detail,.cf-bento-card:focus-within .cf-bento-detail{opacity:1;max-height:120px}.cf-bento-card>*{z-index:2;position:relative}.cf-glow-card{background:var(--cf-surface);z-index:0;border-radius:1rem;position:relative}.cf-glow-card:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;opacity:0;transition:opacity .5s var(--cf-ease-out);z-index:-1;background:conic-gradient(#8b5cf6 0%,#2563eb 25%,#16a34a 50%,#d97706 75%,#8b5cf6 100%);padding:1px;animation:6s linear infinite cf-glow-spin;animation-play-state:paused;will-change:opacity,transform;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.cf-glow-card:hover:before{opacity:1;animation-play-state:running}@keyframes cf-glow-spin{to{transform:rotate(360deg)}}@keyframes cf-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.cf-bento-shimmer{background-size:200% 100%;animation:3s ease-in-out infinite cf-shimmer}.cf-bento-task{transition:transform .3s var(--cf-ease-out), box-shadow .3s var(--cf-ease-out);transform:translate(0,0)}.cf-bento-card:hover .cf-bento-task{transform:translateY(-2px);box-shadow:0 2px 8px #1118270f}.cf-bento-msg-in,.cf-bento-msg-out{transition:transform .35s var(--cf-ease-out)}.cf-bento-card:hover .cf-bento-msg-in{transition-delay:50ms;transform:translate(3px)}.cf-bento-card:hover .cf-bento-msg-out{transition-delay:.1s;transform:translate(-3px)}.cf-bento-event-dot{transition:transform .3s var(--cf-ease-out)}.cf-bento-card:hover .cf-bento-event-dot{transform:translate(-50%)scale(1.5)}.cf-bento-ai-response{transition:box-shadow .35s var(--cf-ease-out)}.cf-bento-card:hover .cf-bento-ai-response{box-shadow:0 0 0 2px #8b5cf626}.cf-bento-push-card{transition:transform .3s var(--cf-ease-out)}.cf-bento-card:hover .cf-bento-push-card{transform:scale(1.02)}.cf-marquee{width:max-content;animation:60s linear infinite cf-marquee-scroll;display:flex}@keyframes cf-marquee-scroll{0%{transform:translate(0,0)}to{transform:translate(-50%)}}.cf-marquee-pause:hover .cf-marquee{animation-play-state:paused}.cf-typing:after,.cf-code-done:after{content:"▎";color:var(--cf-accent);margin-left:2px;animation:2s ease-in-out infinite cf-cursor-blink}.cf-code-line{opacity:0;transition:opacity .25s var(--cf-ease-out), transform .25s var(--cf-ease-out);transform:translate(-4px)}.cf-code-line.is-in{opacity:1;transform:translate(0,0)}details.cf-faq summary .cf-faq-chevron{transition:transform .3s var(--cf-ease-out)}details.cf-faq[open] summary .cf-faq-chevron{transform:rotate(180deg)}.cf-scroll-progress{background:linear-gradient(90deg, var(--cf-accent) 0%, var(--cf-primary) 100%);z-index:60;pointer-events:none;width:0;height:2px;transition:width .1s linear;position:fixed;top:0;left:0;box-shadow:0 0 8px #8b5cf680}.cf-scroll-progress:after{content:"";background:var(--cf-accent);opacity:0;width:6px;height:6px;transition:opacity .3s var(--cf-ease-out);border-radius:50%;position:absolute;top:50%;right:0;transform:translate(50%,-50%);box-shadow:0 0 12px 2px #8b5cf6b3}.cf-scroll-progress.is-active:after{opacity:1}body:before{content:"";pointer-events:none;z-index:0;opacity:.035;background-image:url("assets/noise.png");background-size:96px 96px;will-change:opacity;position:fixed;inset:0}main,header,footer{z-index:1;position:relative}.cf-section-marker{letter-spacing:.08em;text-transform:uppercase;color:var(--cf-ink-soft);align-items:center;gap:.5rem;font-size:.75rem;font-weight:500;display:inline-flex}.cf-section-marker:before{content:"";background:var(--cf-ink-soft);transform-origin:0;width:28px;height:1px;transition:transform .6s var(--cf-ease-out) .2s;transform:scaleX(0)}.cf-section-marker.is-in:before{transform:scaleX(1)}.cf-section-marker>span:first-child{opacity:0;transition:opacity .5s var(--cf-ease-out) .35s, transform .5s var(--cf-ease-out) .35s;display:inline-block;transform:translate(-4px)}.cf-section-marker.is-in>span:first-child{opacity:1;transform:translate(0,0)}.cf-section-marker.is-in>span:last-child{opacity:0;animation:cf-marker-eyebrow .5s var(--cf-ease-out) .5s forwards;transform:translate(-4px)}@keyframes cf-marker-eyebrow{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0,0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.cf-reveal,.cf-reveal-left,.cf-reveal-right{opacity:1;transform:none}.cf-marquee,.cf-glow-card:before{animation:none}}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--cf-primary);outline-offset:2px;border-radius:.5rem}
