@import "https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap";:root{color-scheme:dark;--bg:#0b1417;--bg-2:#0f1a1e;--surface:#111d22;--text:#e6edf0;--muted:#9dafb6;--faint:#65787f;--border:#24363d;--border-strong:#3c535c;--accent:#92d8e7;--accent-2:#d5a84a;--focus:#e1bd67;--max:1120px;--radius:8px;--font-mono:"JetBrains Mono", "SF Mono", "SFMono-Regular", ui-monospace, monospace}*{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:4.5rem;font-size:93.75%}body{margin:0;min-height:100vh;background:#0b1417;color:var(--text);font-family:var(--font-mono);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}body::before{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";background:linear-gradient(155deg,rgba(14,36,40,.82),transparent 42%),linear-gradient(20deg,rgba(30,38,31,.58),transparent 36%),linear-gradient(180deg,rgba(9,17,20,.2),rgba(6,12,15,.96))}body::after{position:fixed;inset:0;z-index:-1;pointer-events:none;content:"";opacity:.32;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 .38'/%3E%3C/feComponentTransfer%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}::selection{color:#091114;background:var(--accent)}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:4px}img,svg{display:block}svg{width:1em;height:1em;fill:currentColor}p,ul,dl,h1,h2,h3{margin:0}ul{padding:0}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:30;transform:translateY(-180%);padding:.45rem .65rem;border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font-family:var(--font-mono);font-size:.75rem}.skip-link:focus{transform:translateY(0)}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(60,83,92,.55);background:rgba(11,20,23,.86);backdrop-filter:blur(12px)}.topbar-inner{display:flex;align-items:center;gap:1rem;width:min(calc(100% - 2rem),var(--max));min-height:3.35rem;margin:0 auto}.brand{display:inline-flex;align-items:center;min-width:8.5rem;transform-origin:left center;transition:color .14s ease}.brand:hover{color:var(--accent)}.brand-name{color:var(--accent);font-family:var(--font-mono);font-size:.9rem;font-weight:600}.top-nav{display:flex;align-items:center;min-width:0;justify-content:flex-end;margin-left:auto;overflow-x:auto;scrollbar-width:none}.top-nav::-webkit-scrollbar{display:none}.top-nav a{display:inline-flex;flex:none;align-items:center;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;line-height:1;transition:color .14s ease}.top-nav a+a{margin-left:1.45rem}.top-nav a.is-active{color:var(--accent)}.top-nav a.is-active{font-weight:600}@media(hover:hover){.top-nav a:hover{color:var(--accent)}}.text-action,.entry-links a,.section-title-link,.crumb{appearance:none;padding:0;border:0;background:0 0;display:inline-flex;align-items:center;gap:.45rem;width:fit-content;color:var(--text);cursor:pointer;font-family:var(--font-mono);font-size:.78rem;font-weight:600;line-height:1;transform-origin:left center;transition:color .14s ease,transform .14s ease}.text-action svg,.entry-links a svg,.section-title-link svg,.crumb svg{flex:none;width:1.05em;height:1.05em}.text-action .icon-linkedin{transform:translateY(-.15em)}.text-action:hover,.entry-links a:hover,.section-title-link:hover,.crumb:hover{color:var(--accent);transform:scale(1.035)}.site-shell{min-height:100vh}.content-shell{display:flex;flex-direction:column;width:min(calc(100% - 2rem),var(--max));min-height:calc(100vh - 3.35rem);margin:0 auto;padding:1.55rem 0 1.25rem}.hero-section{display:block;padding:2.35rem 0 2.1rem}.hero-copy{max-width:880px}.hero-identity{display:flex;align-items:center;gap:1rem}.hero-heading{display:grid;gap:.22rem;align-items:start}.eyebrow,.entry-date,.entry-meta,.stack-line,.site-footer,.crumb,.tag-list::before{color:var(--muted);font-family:var(--font-mono);font-size:.73rem;line-height:1.55}.eyebrow,.entry-date{color:var(--accent-2)}h1,h2,h3{color:var(--text);line-height:1.15}h1{margin-top:0;color:var(--accent);font-size:2.85rem;font-weight:700}h2{font-size:1.32rem;font-weight:700}h3{width:fit-content;font-size:.92rem;font-weight:700;transform-origin:left center;transition:color .14s ease,transform .14s ease}h3 span{color:var(--muted);font-weight:500}.lead{display:grid;gap:.55rem;max-width:800px;margin-top:.9rem;color:var(--muted);font-size:.9rem;line-height:1.65}.lead>p{margin:0}.lead .read-more-link{margin-left:0;font-size:inherit}.read-more-link{display:inline-flex;align-items:center;gap:.32rem;width:fit-content;color:var(--accent);font-family:var(--font-mono);font-size:.78rem;font-weight:600;white-space:nowrap;transition:color .14s ease,transform .14s ease}.read-more-link:hover{color:var(--text);transform:translateX(2px)}.read-more-link span{color:var(--accent-2)}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;column-gap:1.35rem;row-gap:.7rem;margin-top:1.15rem}.hero-panel{display:grid;align-items:start;padding:.95rem 0 .95rem 1rem;border-left:1px solid var(--border-strong)}.hero-mark{position:relative;flex:none;width:4.75rem;height:4.75rem;overflow:hidden;border:1px solid var(--border-strong);border-radius:8px;background:rgba(17,29,34,.35)}.hero-mark picture{display:contents}.hero-mark img,.hero-mark canvas{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}.hero-mark canvas{opacity:0;transition:opacity .25s ease}.hero-mark.is-pixelating canvas{opacity:1}.hero-mark.is-pixelating img{opacity:0}.cursor-name::after{display:inline-block;width:.58em;height:.92em;margin-left:.08em;background:var(--accent);box-shadow:0 0 0 1px rgba(146,216,231,.16);content:"";transform:translateY(.12em)}.cursor-hidden::after{opacity:0;visibility:hidden}.type-loop{display:inline-flex;align-items:center;height:1.15em;line-height:1.15;min-width:calc(var(--name-ch,0ch) + .65em)}.type-loop span[data-type-loop]{display:inline-block;line-height:inherit;white-space:nowrap}.type-loop::after{display:inline-block;flex:none;width:.5em;height:.86em;margin-left:.1em;background:var(--accent);box-shadow:0 0 0 1px rgba(146,216,231,.16);content:""}.hero-panel dl{display:grid;gap:.55rem}.hero-panel dt,.highlights dt,.skill-row h3{color:var(--faint);font-family:var(--font-mono);font-size:.68rem}.skill-row h3{color:var(--accent-2)}.hero-panel dd,.highlights dd{margin:.08rem 0 0;color:var(--text);font-size:.82rem;font-weight:600;line-height:1.25}.hero-panel dd a{color:inherit;text-decoration:none;transition:color .14s ease}.hero-panel dd a:hover{color:var(--accent)}.content-section,.page-view{padding:2.25rem 0}.page-layout{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}.page-layout:has(.page-toc:not([hidden])){grid-template-columns:15rem minmax(0,1fr);gap:2rem}.page-toc{position:sticky;top:4.85rem;align-self:start;margin-left:-1.25rem;padding:2.25rem 0}.page-toc-title{margin-bottom:.85rem;padding-left:.9rem;color:var(--faint);font-family:var(--font-mono);font-size:.62rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.page-toc-nav{display:grid;gap:.1rem;border-left:1px solid var(--border)}.page-toc-link{position:relative;display:block;padding:.34rem .9rem;margin-left:-1px;border-left:1px solid transparent;color:var(--faint);font-family:var(--font-mono);font-size:.72rem;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:color .14s ease,border-color .14s ease,transform .14s ease}.page-toc-link:hover{color:var(--text);transform:translateX(2px)}.page-toc-link.is-active{border-left-color:var(--accent);color:var(--accent);font-weight:600}.crumb{margin-bottom:1.2rem;color:var(--faint)}.toc-target{scroll-margin-top:5.25rem}.toc-scroll-spacer{width:100%;pointer-events:none}.section-heading{display:block;margin-bottom:1.1rem}.section-heading .eyebrow{display:none}.section-heading h2{font-size:1.62rem;font-weight:700;color:var(--accent-2)}.section-title-link{color:inherit;font-size:inherit;font-weight:inherit}.section-title-link:hover{color:var(--accent)}.section-title-link span{color:var(--accent-2);font-size:.72em}.about-grid{display:grid;grid-template-columns:minmax(0,1fr)13rem;gap:2rem}.prose{display:grid;gap:.75rem;color:var(--muted);font-size:.94rem;line-height:1.65}.prose h2{margin-top:1.85rem;margin-bottom:.15rem;color:var(--accent-2)}.page-view-about .section-heading h2,.page-view-blog .section-heading h2,.page-view-projects .section-heading h2,.page-view-research .section-heading h2{color:var(--accent)}.prose p{color:inherit}.about-closing{margin-top:2.25rem;display:grid;gap:.75rem}.prose a{color:var(--accent);text-decoration:underline;text-underline-offset:.2em}.prose a:hover{color:var(--text)}.prose em{font-style:italic;color:var(--text)}.prose strong{color:var(--text);font-weight:600}.highlights{display:grid;gap:.8rem}.highlights div,.skill-row{position:relative;padding-left:.85rem}.highlights div::before,.skill-row::before{position:absolute;top:.15rem;bottom:.15rem;left:0;width:1px;content:"";background:var(--border-strong)}.entry-list,.skill-list{display:grid}.entry{display:grid;grid-template-columns:7.75rem minmax(0,1fr);gap:1.15rem;padding:1rem 0;border-top:1px solid rgba(60,83,92,.42);transition:border-color .14s ease}.entry:first-child{border-top-color:var(--border-strong)}.entry:hover{border-top-color:var(--accent)}.entry:hover h3{color:var(--accent);transform:scale(1.015)}.entry-clickable{cursor:pointer}.entry-clickable a{position:relative;z-index:1}.entry-clickable:focus-within{border-top-color:var(--accent)}.entry-title-arrow{color:var(--accent-2);font-size:1em;font-weight:700}.entry-body{display:grid;gap:.45rem}.entry-body p{color:var(--muted);font-size:.88rem;line-height:1.6}.post-header{display:grid;gap:.7rem;padding-bottom:1.25rem;border-bottom:1px solid rgba(60,83,92,.42)}.post-header h1{font-size:2rem}.post-content{display:grid;gap:.9rem;max-width:760px;padding-top:1.25rem;color:var(--muted);font-size:.95rem;line-height:1.7}.post-content h2,.post-content h3,.post-content h4{margin-top:.9rem;color:var(--accent-2)}.post-content a{color:var(--accent)}.tag-list{display:flex;flex-wrap:wrap;align-items:center;gap:.38rem;list-style:none}.tag-list::before{display:none;align-items:center;min-height:1.35rem;margin-right:.05rem;color:var(--faint);content:"tags"}.tag-list li{display:inline-flex;align-items:center;min-height:1.35rem;padding:.18rem .5rem;border:1px solid rgba(146,216,231,.2);border-radius:999px;background:rgba(146,216,231,.055);color:#c9d7dc;font-family:var(--font-mono);font-size:.68rem;line-height:1;transform-origin:left center;transition:border-color .14s ease,background .14s ease,color .14s ease,transform .14s ease}.tag-list li:hover{border-color:rgba(146,216,231,.36);background:rgba(146,216,231,9%);color:var(--text);transform:scale(1.02)}.entry-links{display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:.55rem}.entry-links a{font-size:.76rem}.entry-links a:hover{color:var(--accent-2);text-decoration:underline;text-underline-offset:.3em}.item-link-footer{max-width:760px;margin-top:1.25rem;padding-top:1rem;border-top:1px solid rgba(60,83,92,.42)}.item-link-footer .entry-links{margin-top:0}.detail-list{display:grid;gap:.25rem;padding-left:1rem;color:var(--muted);font-size:.88rem;line-height:1.55}.skill-list{gap:.85rem}.content-section>.skill-row+.skill-row{margin-top:.85rem}.skill-row{display:grid;grid-template-columns:8.5rem minmax(0,1fr);gap:1rem}.skill-row p{color:var(--muted);font-size:.88rem;line-height:1.55;transform-origin:left center;transition:color .14s ease,transform .14s ease}.skill-row:hover p{color:var(--text);transform:scale(1.008)}.contact-row,.contact-section{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.contact-links{display:flex;flex-wrap:wrap;column-gap:1.35rem;row-gap:.75rem;align-items:center}.contact-row p,.contact-section>p{color:var(--muted);font-size:.9rem;line-height:1.6;border-top:1px solid var(--border-strong);padding-top:1rem;width:100%;align-self:stretch}.site-footer{display:flex;justify-content:space-between;gap:1rem;margin-top:auto;padding:1.25rem 0;color:var(--faint);font-size:.7rem}.not-found{min-height:55vh}@media(max-width:920px){html{scroll-padding-top:6.5rem}.topbar-inner{display:grid;gap:.55rem;padding:.65rem 0}.brand{min-width:0}.top-nav{width:100%;justify-content:flex-end;justify-self:end}.content-shell{padding-top:1rem}.hero-copy,.hero-heading{min-width:0;max-width:100%}.page-layout,.page-layout:has(.page-toc:not([hidden])){grid-template-columns:1fr;gap:0}.page-toc{position:fixed;top:var(--mobile-toc-top,3.35rem);left:0;right:0;z-index:18;width:100%;max-height:calc(100dvh - var(--mobile-toc-top,3.35rem) - 1rem);margin-left:0;padding:.4rem 1.5rem .6rem;border:none;border-radius:0;background:rgba(11,20,23,.15);box-shadow:none;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-100%);transition:opacity .45s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);mask-image:radial-gradient(ellipse at top center,black 20%,rgba(0,0,0,.85) 50%,transparent 95%);-webkit-mask-image:radial-gradient(ellipse at top center,black 20%,rgba(0,0,0,.85) 50%,transparent 95%)}.page-toc.is-mobile-visible{opacity:1;pointer-events:auto;transform:translateY(0)}.page-toc-title{text-align:center;margin-bottom:.2rem;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--faint);opacity:1}.page-toc-nav{position:relative;height:6.5rem;perspective:400px;transform-style:preserve-3d;overflow:hidden;border-left:none;margin-left:0;padding-left:0}.page-toc-nav::before{content:"";position:absolute;top:50%;left:0;right:0;height:1.6rem;margin-top:-.8rem;border-top:1px solid rgba(146,216,231,.15);border-bottom:1px solid rgba(146,216,231,.15);background:rgba(146,216,231,2%);pointer-events:none;z-index:1}.page-toc-link{position:absolute;top:50%;left:0;right:0;height:1.6rem;line-height:1.6rem;margin:0;margin-top:-.8rem;padding:0 .5rem;border-left:none;text-align:center;transform-style:preserve-3d;transform:rotateX(calc(var(--offset,0) * -22deg))translateZ(48px);opacity:calc(1 - min(.8,abs(var(--offset,0)) * .45));pointer-events:calc(abs(var(--offset,0)) < 3 ? "auto":"none");transition:transform .45s cubic-bezier(.16,1,.3,1),opacity .45s cubic-bezier(.16,1,.3,1),color .14s ease;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:.82rem}.page-toc-link:hover{transform:rotateX(calc(var(--offset,0) * -22deg))translateZ(48px)scale(1.02);color:var(--text)}.page-toc-link.is-active{border-left-color:transparent;color:var(--accent);font-weight:600}.hero-section{grid-template-columns:1fr;gap:1.2rem;padding:1.8rem 0}.hero-panel{padding:.85rem 0 0;border-top:1px solid var(--border-strong);border-left:0}h1{font-size:clamp(1.35rem,6.5vw,1.85rem)}.lead{font-size:.86rem}.hero-identity{align-items:flex-start;gap:.8rem}.type-loop{display:block;height:auto;min-width:0;max-width:100%;line-height:1.08;overflow-wrap:anywhere}.type-loop span[data-type-loop]{display:inline;white-space:normal;overflow-wrap:anywhere}.type-loop::after{vertical-align:-.06em}.about-grid{grid-template-columns:1fr;gap:.65rem}.section-heading,.contact-row,.contact-section{gap:.65rem}.entry{grid-template-columns:1fr;gap:.35rem}.skill-row{grid-template-columns:1fr;gap:.25rem}}@media(max-width:520px){.topbar-inner,.content-shell{width:min(calc(100% - 1.5rem),var(--max))}.top-nav a{font-size:.68rem}.top-nav a+a{margin-left:1.4rem}h1{font-size:clamp(1.2rem,5.5vw,1.6rem)}.hero-mark{width:3.75rem;height:3.75rem}h2{font-size:1.12rem}h3{font-size:.88rem}.content-section,.page-view{padding:1.75rem 0}.hero-actions,.contact-links{row-gap:1.35rem}.hero-actions{column-gap:1rem}.site-footer{display:grid}}.use-type-animation .type-animate-hidden{opacity:0!important;pointer-events:none!important;transform:translateY(4px)!important;transition:opacity .3s ease,transform .3s ease!important}.use-type-animation #home .hero-copy .hero-identity,.use-type-animation #home .hero-copy .lead,.use-type-animation #home .hero-copy .hero-actions,.use-type-animation #home .hero-panel dl>div,.use-type-animation .section-heading,.use-type-animation .entry,.use-type-animation .skill-row,.use-type-animation .crumb,.use-type-animation .about-grid .prose,.use-type-animation .about-grid .highlights>div,.use-type-animation .contact-row,.use-type-animation .contact-section p,.use-type-animation .contact-section .text-action,.use-type-animation .post-header,.use-type-animation .post-content{opacity:0;pointer-events:none;transform:translateY(4px);transition:opacity .3s ease,transform .3s ease}.use-type-animation .type-animate-visible{opacity:1!important;pointer-events:auto!important;transform:translateY(0)!important}.use-type-animation #home .hero-panel{border-left-color:transparent;transition:border-color .4s ease}.use-type-animation #home .hero-panel.type-animate-visible{border-left-color:var(--border-strong)!important}.type-animate-done #home .hero-panel{border-left-color:var(--border-strong)!important;transition:none!important}.use-type-animation .tag-list,.use-type-animation .entry-links,.use-type-animation .tag-list li,.use-type-animation .entry-links a,.use-type-animation .detail-list li{opacity:0;pointer-events:none;transition:opacity .25s ease}.use-type-animation .tag-list.type-animate-visible,.use-type-animation .entry-links.type-animate-visible,.use-type-animation .tag-list li.type-animate-visible,.use-type-animation .entry-links a.type-animate-visible,.use-type-animation .detail-list li.type-animate-visible{opacity:1!important;pointer-events:auto!important}.type-animate-done .tag-list,.type-animate-done .entry-links,.type-animate-done .tag-list li,.type-animate-done .entry-links a,.type-animate-done .detail-list li{opacity:1!important;pointer-events:auto!important;transition:none!important}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto;transition-duration:.01ms!important}}.mascot-container{position:fixed;top:0;left:0;z-index:15;width:clamp(32px,2.5vw,44px);height:clamp(32px,2.5vw,44px);--mascot-x:80px;--mascot-y:50vh;--mascot-facing:1;--mascot-rotation:0deg;--mascot-fill:rgba(10, 38, 42, 0.98);pointer-events:auto;cursor:pointer;opacity:.88;transform:translate3d(var(--mascot-x),var(--mascot-y),0)rotate(var(--mascot-rotation,0deg))scaleX(var(--mascot-facing));transform-origin:center center;transition:filter .2s ease-out,opacity .2s ease-out;filter:drop-shadow(0 0 1px rgba(3,8,10,.95))drop-shadow(0 4px 9px rgba(0,240,255,.2));perspective:700px;will-change:transform}.mascot-sprite{width:100%;height:100%;transform-origin:center center;transform-style:preserve-3d}.mascot-container svg{width:100%;height:100%;overflow:visible}.mascot-container [stroke="#00f0ff"]{stroke:#7ff7ff}.mascot-container [fill="#00f0ff"]{fill:#7ff7ff}.mascot-paw{transform-box:fill-box;transform-origin:center top}.mascot-tail{transform-origin:18px 34px;animation:tail-idle 2s infinite ease-in-out}.mascot-container.is-walking .leg-bl{animation:cat-leg-walk-a 1s infinite linear}.mascot-container.is-walking .leg-fr{animation:cat-leg-walk-a 1s infinite linear}.mascot-container.is-walking .leg-br{animation:cat-leg-walk-b 1s infinite linear}.mascot-container.is-walking .leg-fl{animation:cat-leg-walk-b 1s infinite linear}.mascot-container.is-walking .mascot-body-stroke,.mascot-container.is-walking .mascot-body-fill{animation:body-bob .5s infinite alternate ease-in-out}.mascot-container.is-walking .mascot-head-stroke,.mascot-container.is-walking .mascot-head-fill{animation:body-bob .5s infinite alternate ease-in-out .1s}.mascot-container.is-walking .mascot-tail{animation:tail-wag .5s infinite alternate ease-in-out;transform-origin:18px 34px}.mascot-container.is-sleeping{opacity:.68;filter:drop-shadow(0 0 1px rgba(3,8,10,.95))drop-shadow(0 2px 5px rgba(0,240,255,.1))}.mascot-container.is-sleeping .mascot-sprite{transform:scale(.9)translateY(4px)}.mascot-container.is-sleeping .leg-bl,.mascot-container.is-sleeping .leg-br,.mascot-container.is-sleeping .leg-fl,.mascot-container.is-sleeping .leg-fr{transform:translateY(-1.5px)rotate(8deg);opacity:.65}.mascot-container.is-sleeping .mascot-tail{animation:tail-sleep 2.2s infinite ease-in-out;transform-origin:18px 34px}.mascot-container.is-sleeping .mascot-body-stroke,.mascot-container.is-sleeping .mascot-body-fill,.mascot-container.is-sleeping .mascot-head-stroke,.mascot-container.is-sleeping .mascot-head-fill{animation:breathe 3.2s infinite ease-in-out;transform-origin:center bottom}.mascot-container.is-sleeping .mascot-eye-l,.mascot-container.is-sleeping .mascot-eye-r{transform:scaleY(.18);transform-origin:center;opacity:.8}.mascot-eye-shock-l,.mascot-eye-shock-r{display:none}.mascot-container.is-reacting .mascot-eye-l,.mascot-container.is-reacting .mascot-eye-r{display:none}.mascot-container.is-reacting .mascot-eye-shock-l,.mascot-container.is-reacting .mascot-eye-shock-r{display:block}.mascot-container.is-reacting .mascot-sprite{animation:mascot-startled-shake-jump .8s cubic-bezier(.25,1,.5,1)both;transform-origin:center bottom}.mascot-container.is-reacting .mascot-tail{animation:tail-startled .8s ease-in-out both;transform-origin:18px 34px}@keyframes mascot-startled-shake-jump{0%{transform:translate(0,0)}5%{transform:translate(-3px,0)}10%{transform:translate(3px,0)}15%{transform:translate(-3px,0)}20%{transform:translate(3px,0)}25%{transform:translate(-2px,0)}30%{transform:translate(2px,0)}35%{transform:translate(0,0)}50%{transform:translateY(-20px)}70%{transform:translateY(0)}85%{transform:translateY(-2px)}100%{transform:translateY(0)}}@keyframes tail-startled{0%{transform:rotate(0)}10%,30%{transform:rotate(-30deg)}20%,40%{transform:rotate(30deg)}50%,80%{transform:rotate(-45deg)}100%{transform:rotate(0)}}@keyframes cat-leg-walk-a{0%{transform:translate(0,0)rotate(12deg)}25%{transform:translate(-1.5px,-2.5px)rotate(0)}50%{transform:translate(1px,0)rotate(-12deg)}75%{transform:translate(.5px,0)rotate(-4deg)}100%{transform:translate(0,0)rotate(12deg)}}@keyframes cat-leg-walk-b{0%{transform:translate(1px,0)rotate(-12deg)}25%{transform:translate(.5px,0)rotate(-4deg)}50%{transform:translate(0,0)rotate(12deg)}75%{transform:translate(-1.5px,-2.5px)rotate(0)}100%{transform:translate(1px,0)rotate(-12deg)}}@keyframes body-bob{0%{transform:translateY(0)}100%{transform:translateY(-1.2px)}}@keyframes tail-wag{0%{transform:rotate(-8deg)}100%{transform:rotate(10deg)}}@keyframes tail-sleep{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(5deg)}}@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)translateY(-.2px)}}@keyframes tail-idle{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}@media(max-width:520px){.mascot-container{width:32px;height:32px}}