@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('assets/fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:Manrope;font-style:normal;font-weight:400 800;font-display:swap;src:url('assets/fonts/manrope-latin.woff2') format('woff2')}

:root{--ink:#102522;--ink-soft:#42504a;--cream:#f5f5ee;--paper:#fafaf6;--line:#d6dcd2;--lime:#e5fa9c;--green:#173e35;--display:Manrope,Arial,sans-serif;--body:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:16px;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}
body.project-dialog-open{overflow:hidden}
img,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit}
a:focus-visible,button:focus-visible{outline:3px solid #a5d534;outline-offset:4px}
::selection{background:var(--lime);color:var(--ink)}
.container{width:min(100% - 80px,1320px);margin-inline:auto}
.skip-link{position:absolute;z-index:50;left:12px;top:-70px;padding:12px 18px;background:var(--lime);color:var(--ink)}
.skip-link:focus{top:12px}
.site-header{height:84px;position:sticky;top:0;z-index:20;background:var(--ink);border-bottom:1px solid rgba(255,255,255,.15)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:30px}
.brand{display:inline-flex;align-items:center;gap:13px;color:white;flex:none}
.brand-mark{font:800 33px/.8 var(--display);letter-spacing:-4px;color:white}
.brand-mark span{color:var(--lime)}
.brand-name{font:700 11px/1.15 var(--display);letter-spacing:.11em;text-transform:uppercase}
.site-nav{display:flex;align-items:center;gap:clamp(16px,2vw,32px);font-size:13px;font-weight:700;color:#e5eee9}
.site-nav>a:not(.nav-contact){transition:color .2s}
.site-nav>a:not(.nav-contact):hover{color:var(--lime)}
.nav-contact{display:flex;align-items:center;justify-content:space-between;gap:26px;border:1px solid rgba(255,255,255,.4);padding:13px 17px;transition:background .2s,color .2s,border-color .2s}
.nav-contact:hover{background:var(--lime);border-color:var(--lime);color:var(--ink)}
.nav-contact span{font-size:17px;font-weight:400;line-height:1}
.language-switch{display:flex;align-items:center;gap:5px;padding-left:12px;border-left:1px solid rgba(255,255,255,.3);font:800 11px/1 var(--display);letter-spacing:.04em}.language-switch a{padding:8px 6px;color:#aabdb2;transition:color .2s}.language-switch a:hover{color:var(--lime)}.language-switch a[aria-current="page"]{color:var(--lime)}
.menu-toggle{display:none}

.hero{position:relative;overflow:hidden;background:var(--ink);color:white}
.hero-grain{position:absolute;inset:0;pointer-events:none;opacity:.12;background-image:radial-gradient(rgba(255,255,255,.4) .5px,transparent .5px);background-size:5px 5px;mask-image:linear-gradient(to bottom,black,transparent 65%)}
.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.13fr) minmax(0,.87fr);min-height:655px;gap:5%;align-items:stretch}
.hero-copy{padding:100px 0 34px;display:flex;flex-direction:column;align-items:flex-start;min-width:0}
.eyebrow{display:flex;align-items:center;gap:12px;font:700 11px/1.4 var(--display);letter-spacing:.14em}
.hero-eyebrow{color:#c6d8cc;white-space:nowrap}
.eyebrow-dot{width:7px;height:7px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(229,250,156,.12);flex:none}
.eyebrow-line{width:26px;height:1px;background:#6e8277}
.hero h1{font:800 clamp(64px,7.4vw,116px)/.99 var(--display);letter-spacing:-.09em;margin:50px 0 29px;white-space:nowrap}
.hero h1 em,.profile-content h2 em,.education-grid h2 em,.contact-inner h2 em{font-style:normal;color:var(--lime)}
.hero-intro{font:400 clamp(18px,1.7vw,23px)/1.55 var(--body);color:#cbd9d1;max-width:590px;margin:0}
.hero-actions{display:flex;align-items:center;gap:32px;margin-top:42px}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:53px;padding:0 19px;font-size:13px;font-weight:700;transition:transform .2s,background .2s}
.button:hover{transform:translateY(-3px)}
.button-lime{background:var(--lime);color:var(--ink)}
.button-lime:hover{background:white}
.button span{font-size:19px;font-weight:400;line-height:1}
.text-link{display:inline-flex;align-items:center;gap:12px;font-weight:700;font-size:13px;border-bottom:1px solid currentColor;padding:7px 0}
.text-link span{font-size:18px;line-height:1}
.hero-linkedin:hover{color:var(--lime)}
.hero-bottom{margin-top:auto;width:100%;display:flex;align-items:center;justify-content:space-between;color:#a9bbb0;font:700 10px var(--display);letter-spacing:.14em;padding-top:70px}
.hero-scroll{display:flex;gap:12px;align-items:center}.hero-scroll span{font-size:18px;color:var(--lime)}
.hero-visual{min-width:0;position:relative;display:flex;align-items:center;justify-content:center;padding:61px 24px 49px}
.portrait-frame{position:relative;width:min(100%,430px);aspect-ratio:4/4.8;border:0;padding:0;border-radius:215px 215px 10px 10px;background:#d9ded7;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.18);cursor:pointer;touch-action:manipulation;appearance:none}
.portrait-frame img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:saturate(.72) contrast(1.04);transform:scale(1.17);transform-origin:center 27%}
.portrait-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(16,37,34,.47),transparent 42%);pointer-events:none}
.portrait-ring{position:absolute;width:92%;aspect-ratio:1;border:1px solid rgba(255,255,255,.36);border-radius:50%;left:4%;top:5%;pointer-events:none}
.easter-cats{--cat-size:clamp(125px,16vw,180px);position:fixed;inset:0;z-index:40;pointer-events:none;overflow:hidden;transition:opacity 1.2s}.easter-cats.is-fading{opacity:0}.easter-cat{position:absolute;bottom:12px;width:var(--cat-size);transition:left 6.2s linear}.easter-cat--white{left:calc(-1 * var(--cat-size) - 20px)}.easter-cat--tabby{left:100vw}.easter-cats.is-walking .easter-cat--white,.easter-cats.is-playing .easter-cat--white,.easter-cats.is-sleeping .easter-cat--white{left:calc(50% - var(--cat-size) - 7px)}.easter-cats.is-walking .easter-cat--tabby,.easter-cats.is-playing .easter-cat--tabby,.easter-cats.is-sleeping .easter-cat--tabby{left:calc(50% + 7px)}.easter-cat img{display:block;width:100%;height:auto;filter:drop-shadow(0 12px 9px rgba(7,25,22,.23))}.easter-cat--white img{transform:scaleX(-1)}.easter-cats.is-walking .easter-cat-bob{animation:cat-walk-bob .42s ease-in-out infinite alternate}.easter-cats.is-playing .easter-cat--white .easter-cat-bob{animation:cat-play-white .95s ease-in-out infinite}.easter-cats.is-playing .easter-cat--tabby .easter-cat-bob{animation:cat-play-tabby .95s ease-in-out infinite}.easter-cats.is-sleeping .easter-cat-bob{animation:cat-breathe 2.2s ease-in-out infinite}.easter-cat-zzz{position:absolute;top:-12px;right:6px;opacity:0;color:#d9f5a5;font:800 21px var(--display);text-shadow:0 2px 6px rgba(16,37,34,.75)}.easter-cat--tabby .easter-cat-zzz{right:auto;left:6px}.easter-cats.is-sleeping .easter-cat-zzz{opacity:1;animation:cat-zzz 2s ease-in-out infinite}.easter-cat-yarn{position:absolute;left:50%;bottom:8px;width:30px;height:30px;border:3px solid #734f88;border-radius:50%;background:repeating-linear-gradient(30deg,#b487c8 0 5px,#8d64aa 5px 9px);box-shadow:0 8px 10px rgba(7,25,22,.22);opacity:1;transform:translateX(-50%)}.easter-cats.is-playing .easter-cat-yarn{opacity:1;animation:cat-yarn-roll 1.15s ease-in-out infinite alternate}.easter-cat-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes cat-walk-bob{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-8px) rotate(1deg)}}@keyframes cat-play-white{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-25px) rotate(8deg)}}@keyframes cat-play-tabby{0%,100%{transform:translateY(-7px) rotate(5deg)}50%{transform:translateY(-27px) rotate(-8deg)}}@keyframes cat-breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes cat-zzz{0%,100%{transform:translateY(0);opacity:.5}50%{transform:translateY(-13px);opacity:1}}@keyframes cat-yarn-roll{from{transform:translateX(-75%) rotate(-25deg)}to{transform:translateX(-25%) rotate(45deg)}}
.expertise-strip{background:var(--lime);color:var(--ink);overflow:hidden}
.strip-inner{display:flex;justify-content:space-between;align-items:center;gap:23px;min-height:64px;white-space:nowrap;font:800 11px/1 var(--display);letter-spacing:.08em}
.strip-inner b{font-size:22px;font-weight:400}

.section{padding:112px 0}
.section-kicker{font:800 11px/1 var(--display);letter-spacing:.17em;color:#477459;margin:0 0 29px}
.section-number{font:800 11px/1 var(--display);letter-spacing:.17em}
.profile-section{background:var(--cream);border-bottom:1px solid var(--line)}
.profile-grid{display:grid;grid-template-columns:210px 1fr;gap:7%}
.section-aside{display:flex;flex-direction:column;gap:22px;padding-top:6px}.aside-rule{height:1px;width:50px;background:var(--ink)}
.profile-content h2{max-width:1020px;font:700 clamp(39px,4.8vw,73px)/1.12 var(--display);letter-spacing:-.065em;margin:0 0 56px}
.profile-content h2 em{color:#65946e}
.profile-bottom{display:grid;grid-template-columns:minmax(0,1fr) minmax(275px,.9fr);gap:8%;align-items:end;border-top:1px solid var(--line);padding-top:35px}
.profile-bottom>p{max-width:520px;margin:0;color:var(--ink-soft);line-height:1.8;font-size:17px}
.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.profile-facts>div{display:flex;flex-direction:column;gap:4px}.profile-facts strong{font:700 clamp(40px,4vw,57px)/1 var(--display);letter-spacing:-.08em}.profile-facts span{font-size:12px;color:var(--ink-soft)}

.experience-section{background:var(--paper)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:45px}
.section-heading .section-kicker{margin-bottom:19px}
.section-heading h2{font:800 clamp(48px,6vw,83px)/1 var(--display);letter-spacing:-.075em;margin:0}
.heading-dot{color:#8daa62}
.section-heading>p{margin:0 0 4px;max-width:345px;line-height:1.65;color:var(--ink-soft);font-size:15px}
.timeline{border-top:1px solid var(--ink)}
.timeline-item{display:grid;grid-template-columns:25% minmax(0,1fr) 35px;gap:28px;position:relative;padding:32px 0 33px;border-bottom:1px solid var(--line);transition:padding-left .2s,background .2s}
.timeline-item:hover{padding-left:14px;background:#f0f3e9}
.timeline-period{font:800 11px/1.4 var(--display);letter-spacing:.11em;padding-top:9px;display:flex;flex-direction:column;align-items:flex-start;gap:10px}
.timeline-current{display:inline-block;background:#e4f2d7;border-radius:20px;padding:6px 9px;font-size:9px;letter-spacing:.1em;color:#37643a}
.timeline-details h3{font:700 clamp(23px,2.4vw,34px)/1.25 var(--display);letter-spacing:-.045em;margin:0 0 5px}
.company{font-size:14px;font-weight:700;margin:0 0 16px}.company span{color:#789183;font-weight:500}
.role-progression{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;max-width:650px;margin:4px 0 21px}.role-progression>div{display:flex;flex-direction:column;gap:6px;padding:1px 0 1px 13px;border-left:2px solid #b9cbb8}.role-progression>div:last-child{border-color:#6d9a6d}.role-progression span{font:800 10px/1.4 var(--display);letter-spacing:.06em;color:#6d8b77}.role-progression strong{font:700 13px/1.4 var(--body)}
.timeline-details>p:not(.company){color:var(--ink-soft);line-height:1.65;max-width:680px;margin:0 0 17px;font-size:15px}
.tech-list{display:flex;flex-wrap:wrap;gap:7px}.tech-list span{border:1px solid #d2ddd1;border-radius:20px;padding:6px 10px;font-size:11px;color:#436452;background:#f7f9f3}
.timeline-link{font-size:26px;line-height:1;align-self:start;justify-self:end;transition:transform .2s,color .2s}.timeline-link:hover{transform:translate(3px,-3px);color:#4c8750}

.skills-section{background:#e9efe6}
.skills-heading{margin-bottom:43px}
.skills-subtitle{font:800 13px/1.3 var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0 0 19px}
.skills-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.skill-card{background:var(--paper);min-height:360px;padding:27px;display:flex;flex-direction:column;border:1px solid #dce4d9}
.skill-card-top{font:800 11px var(--display);letter-spacing:.1em;color:#6b8b73}
.skill-card h4{font:700 clamp(22px,2.1vw,30px)/1.16 var(--display);letter-spacing:-.06em;margin:53px 0 12px;max-width:220px}
.skill-card p{font-size:14px;line-height:1.6;color:var(--ink-soft);margin:0 0 30px;max-width:440px}
.skill-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto}.skill-tags span{border:1px solid #d3ded4;border-radius:4px;padding:7px 9px;font-size:11px;font-weight:700;color:#486456}
.soft-skills{margin-top:67px}.soft-skills-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink);border-bottom:1px solid #cad6ca}.soft-skill{padding:25px 22px 27px 0}.soft-skill+.soft-skill{padding-left:22px;border-left:1px solid #cad6ca}.soft-skill>span{font:800 10px/1.4 var(--display);letter-spacing:.1em;color:#608168}.soft-skill h4{font:700 clamp(18px,1.7vw,23px)/1.3 var(--display);letter-spacing:-.04em;margin:19px 0 11px}.soft-skill p{font-size:13px;line-height:1.65;color:var(--ink-soft);margin:0;max-width:260px}

.projects-section{background:var(--paper)}
.projects-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.project-card{position:relative;border:1px solid var(--line);background:white;overflow:hidden;transition:transform .25s,box-shadow .25s}.project-card:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(16,37,34,.08)}
.project-art{height:250px;position:relative;overflow:hidden;display:grid;place-items:center}.art-label{position:absolute;left:22px;bottom:18px;font:800 10px var(--display);letter-spacing:.14em;z-index:2}
.project-art-reservo{background:#cfeaaf;color:var(--ink)}.project-art-reservo:before,.project-art-reservo:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(16,37,34,.23);border-radius:50%}.project-art-reservo:after{width:500px;height:500px}
.reservo-symbol{position:relative;width:160px;height:160px;z-index:1;transform:rotate(-14deg)}.reservo-symbol span{position:absolute;background:var(--ink);border-radius:50%}.reservo-symbol span:first-child{width:105px;height:105px;left:15px;top:18px}.reservo-symbol span:nth-child(2){width:70px;height:70px;left:79px;top:65px;background:#699c63}.reservo-symbol span:last-child{width:34px;height:34px;left:32px;top:95px;background:#eefbd9}
.project-art-opc{background:#183b3b;color:#d7ffb0;background-image:linear-gradient(130deg,#10322f,#2a5e5a)}.opc-orbit{position:relative;width:230px;height:230px;border:1px solid rgba(215,255,176,.5);border-radius:50%;display:grid;place-items:center}.opc-orbit:before,.opc-orbit:after{content:"";position:absolute;inset:24px;border:1px dashed rgba(215,255,176,.45);border-radius:50%}.opc-orbit:after{inset:52px;border-style:solid}.opc-orbit>span{font:800 43px/.8 var(--display);letter-spacing:-.08em;text-align:center;z-index:1}.opc-orbit i{position:absolute;width:11px;height:11px;border-radius:50%;background:var(--lime)}.opc-orbit i:first-child{top:22px;left:31px}.opc-orbit i:nth-child(2){right:3px;top:101px}.opc-orbit i:nth-child(3){bottom:7px;left:69px}
.project-art-covid{background:#e9e9dc;color:var(--ink);background-image:linear-gradient(0deg,transparent 29px,#d5d8c9 30px,transparent 31px),linear-gradient(90deg,transparent 29px,#d5d8c9 30px,transparent 31px);background-size:30px 30px}.data-bars{display:flex;align-items:end;gap:12px;height:150px;position:relative}.data-bars span{width:23px;background:#53846a;height:var(--h)}.data-bars span:nth-child(1){--h:23%}.data-bars span:nth-child(2){--h:52%}.data-bars span:nth-child(3){--h:78%}.data-bars span:nth-child(4){--h:91%;background:#193b34}.data-bars span:nth-child(5){--h:65%}.data-bars span:nth-child(6){--h:42%}.data-bars span:nth-child(7){--h:28%}.data-bars:before{content:"";position:absolute;left:-12px;right:-12px;bottom:0;height:2px;background:var(--ink)}
.project-art-voronoi{background:#e5e6de;color:var(--ink)}.project-art-voronoi svg{width:85%;height:90%;overflow:visible;fill:none;stroke:#8da391;stroke-width:1.5}.project-art-voronoi circle{fill:var(--ink);stroke:none}.project-art-voronoi .route{stroke:#5e8f55;stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.project-wide{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.project-wide .project-art{height:100%;min-height:250px}.project-wide .project-info{justify-content:center}
.project-art-rational{background:#ecf0d9;color:var(--ink)}.project-art-rational svg{width:90%;height:90%;fill:none}.project-art-rational .math-grid{stroke:#d5ddc9;stroke-width:1}.project-art-rational .math-axis{stroke:#8daa95;stroke-width:2}.project-art-rational .math-curve{stroke:#315e4d;stroke-width:5;stroke-linecap:round}
.project-info{padding:25px 28px 29px;min-height:218px;display:flex;flex-direction:column;align-items:flex-start}.project-category{font:800 10px var(--display);letter-spacing:.13em;color:#568269}.project-info h3{font:700 28px/1.2 var(--display);letter-spacing:-.055em;margin:15px 0 10px}.project-info p{font-size:14px;line-height:1.65;color:var(--ink-soft);margin:0 0 21px;max-width:510px}.project-link{font-size:12px;font-weight:800;border-bottom:1px solid var(--ink);padding-bottom:4px;margin-top:auto;display:inline-flex;align-items:center;gap:13px}.project-link:hover{color:#4b8454;border-color:#4b8454}.project-link span{font-size:16px;font-weight:400}.project-note{font-size:12px;color:#5d765f;margin-top:auto;font-weight:700}
.project-links{display:flex;flex-wrap:wrap;gap:15px 24px;margin-top:auto}.project-links .project-link{margin-top:0}.project-note{background:#e4f2d7;border-radius:20px;padding:7px 11px;color:#37643a}
.project-card-trigger{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;background:transparent;cursor:pointer;text-align:right}.project-card-trigger>span{position:absolute;top:17px;right:18px;display:inline-flex;padding:8px 10px;background:var(--lime);color:var(--ink);font:800 10px/1 var(--display);letter-spacing:.04em}.project-card-trigger:hover>span{background:white}.project-card-trigger:focus-visible{outline:3px solid #80ad26;outline-offset:-4px}.project-info .project-link,.project-info .project-links{position:relative;z-index:2}
.all-projects{margin:33px 0 0 auto;display:table;border-bottom:1px solid;padding-bottom:5px;font-size:13px;font-weight:800}.all-projects span{font-size:17px;margin-left:14px}.all-projects:hover{color:#4b8454}
.project-dialog{width:min(760px,calc(100% - 32px));max-height:90vh;padding:0;border:1px solid #d6e0d1;background:var(--paper);color:var(--ink);box-shadow:0 28px 80px rgba(5,24,20,.28);overflow:auto}.project-dialog::backdrop{background:rgba(7,25,22,.7);backdrop-filter:blur(4px)}.project-dialog-top{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(24px,5vw,48px);border-bottom:1px solid var(--line);background:var(--paper)}.project-dialog-top>span{font:800 10px/1.3 var(--display);letter-spacing:.14em;color:#608168}.project-dialog-close{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:28px;line-height:1;cursor:pointer}.project-dialog-close:hover{background:var(--lime)}.project-dialog-content{padding:36px clamp(24px,5vw,48px) 46px}.project-dialog-kicker{margin:0 0 18px;color:#568269;font:800 10px/1.4 var(--display);letter-spacing:.13em}.project-dialog-content h2{font:800 clamp(35px,5vw,56px)/1.08 var(--display);letter-spacing:-.065em;margin:0 0 23px}.project-dialog-lead{font:500 clamp(17px,2vw,21px)/1.5 var(--body);color:var(--ink);margin:0 0 27px}.project-dialog-content>p:not(.project-dialog-kicker):not(.project-dialog-lead){font-size:15px;line-height:1.75;color:var(--ink-soft);margin:26px 0 0}.project-dialog-facts{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.project-dialog-facts>div{padding:19px 22px 20px 0}.project-dialog-facts>div+div{border-left:1px solid var(--line);padding-left:22px}.project-dialog-facts span{font:800 10px/1.4 var(--display);letter-spacing:.1em;color:#608168}.project-dialog-facts p{font-size:14px;line-height:1.55;margin:9px 0 0}.project-dialog-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.project-dialog-links a{display:inline-flex;padding:12px 15px;border:1px solid #bfd0bc;font-size:12px;font-weight:800;transition:background .2s}.project-dialog-links a:hover{background:var(--lime)}

.education-section{background:#e9efe6;border-top:1px solid #d7e0d3}
.education-grid{display:grid;grid-template-columns:1fr 1fr;gap:9%}.education-grid h2{font:700 clamp(37px,4.1vw,57px)/1.15 var(--display);letter-spacing:-.065em;margin:0}.education-grid h2 em{color:#6b9b71}
.education-list{border-top:1px solid var(--ink)}.education-item{display:grid;grid-template-columns:120px 1fr;gap:18px;border-bottom:1px solid #cad6ca;padding:22px 0}.education-item>span{font:800 10px var(--display);letter-spacing:.08em;padding-top:5px}.education-item h3{font:700 18px/1.35 var(--display);letter-spacing:-.035em;margin:0 0 7px}.education-item p{font-size:13px;color:var(--ink-soft);margin:0}
.education-item .education-detail{margin-top:10px;line-height:1.6}
.publication-link{display:grid;grid-template-columns:120px 1fr 22px;gap:18px;align-items:start;padding:22px 0;border-bottom:1px solid #cad6ca}.publication-link>span:first-child{font:800 10px/1.4 var(--display);letter-spacing:.08em}.publication-link strong{font:700 15px/1.45 var(--body)}.publication-link>span:last-child{font-size:22px;line-height:1}.publication-link:hover{color:#4b8454}
.education-extras{display:grid;grid-template-columns:1fr 1fr;gap:20px;padding-top:22px}.education-extras span{font:800 10px var(--display);letter-spacing:.1em;color:#608168}.education-extras p{font-size:13px;line-height:1.6;margin:8px 0 0}
.education-extras.education-extras--single{grid-template-columns:1fr}

.contact-section{background:var(--green);color:white;padding:81px 0 88px;position:relative;overflow:hidden}.contact-section:after{content:"";position:absolute;width:600px;height:600px;border:1px solid rgba(229,250,156,.15);border-radius:50%;right:-210px;top:80px;pointer-events:none}.contact-section:before{content:"";position:absolute;width:400px;height:400px;border:1px solid rgba(229,250,156,.12);border-radius:50%;right:-110px;top:180px;pointer-events:none}
.contact-inner{position:relative;z-index:1}.contact-top{display:flex;justify-content:space-between;color:#b5d0bc;font:800 11px var(--display);letter-spacing:.16em}.contact-inner h2{font:800 clamp(55px,7.2vw,106px)/1.05 var(--display);letter-spacing:-.08em;margin:67px 0 34px}.contact-email{display:inline-flex;align-items:center;gap:30px;font:600 clamp(22px,3.1vw,43px)/1.2 var(--display);letter-spacing:-.05em;border-bottom:2px solid var(--lime);padding-bottom:10px;overflow-wrap:anywhere}.contact-email:hover{color:var(--lime)}.contact-email span{font-size:clamp(25px,2.7vw,39px);font-weight:400}
.contact-bottom{display:flex;justify-content:space-between;align-items:end;gap:30px;border-top:1px solid rgba(255,255,255,.25);padding-top:27px;margin-top:96px}.contact-bottom p{max-width:390px;font-size:14px;line-height:1.6;color:#bdd2c4;margin:0}.social-links{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:13px 22px;font-size:13px;font-weight:700}.social-links a:hover{color:var(--lime)}
.site-footer{background:#102522;color:#aabcb1;padding:22px 0}.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px;font:700 10px var(--display);letter-spacing:.1em}.footer-inner a{color:white}.footer-inner a:hover{color:var(--lime)}
.footer-links{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:12px 28px}
.legal-header .header-inner{justify-content:space-between}.legal-header-actions{display:flex;align-items:center;gap:26px}.legal-header-actions>a{color:white;font-size:13px;font-weight:700}.legal-header-actions>a:hover{color:var(--lime)}.legal-header-actions .language-switch{color:white}
.legal-main{padding:88px 0 108px;background:var(--paper)}.legal-content{max-width:800px}.legal-content h1{font:800 clamp(48px,6vw,76px)/1.05 var(--display);letter-spacing:-.065em;margin:0 0 22px}.legal-lead{font-size:18px;line-height:1.65;color:var(--ink-soft);margin:0 0 52px}.legal-content section{border-top:1px solid var(--line);padding:29px 0}.legal-content h2{font:700 clamp(22px,2.5vw,28px)/1.3 var(--display);letter-spacing:-.035em;margin:0 0 14px}.legal-content p,.legal-content li{font-size:15px;line-height:1.75;color:var(--ink-soft)}.legal-content p{margin:0 0 13px}.legal-content p:last-child{margin-bottom:0}.legal-content ul{margin:0 0 13px;padding-left:22px}.legal-content a{color:var(--green);text-decoration:underline;text-underline-offset:3px}.legal-content a:hover{color:#4d8654}.legal-updated{font:700 11px/1.5 var(--display);letter-spacing:.08em;text-transform:uppercase;color:#608168;margin-top:24px}
@media (max-width:620px){.footer-inner{align-items:flex-start}.footer-links{gap:10px 16px}.legal-header-actions{gap:10px}.legal-header-actions>a{font-size:11px}.legal-header-actions .language-switch{margin:0;padding:0;border:0;font-size:11px}.legal-header-actions .language-switch a{padding:8px 3px}.legal-main{padding:56px 0 72px}.legal-lead{font-size:16px;margin-bottom:35px}.legal-content section{padding:24px 0}}

@media (max-width:1100px){.hero-grid{grid-template-columns:1fr .82fr;gap:0}.hero h1{font-size:clamp(61px,7.3vw,82px)}.hero-visual{padding-left:0;padding-right:0}.hero-scroll{display:none}.profile-grid{grid-template-columns:145px 1fr;gap:4%}.strip-inner{font-size:9px;gap:12px}.strip-inner b{font-size:17px}}
@media (max-width:820px){.container{width:min(100% - 42px,700px)}.site-header{height:72px}.menu-toggle{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:43px;height:43px;border:1px solid rgba(255,255,255,.4);background:transparent;color:white;cursor:pointer;z-index:2}.menu-toggle span{height:2px;width:20px;background:white;transition:transform .2s}.menu-toggle[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded="true"] span:last-child{transform:translateY(-4px) rotate(-45deg)}.site-nav{position:absolute;top:72px;left:0;right:0;min-height:calc(100vh - 72px);padding:36px 21px 70px;display:none;flex-direction:column;align-items:stretch;background:var(--ink);gap:0;font-size:24px}.site-nav.is-open{display:flex}.site-nav>a:not(.nav-contact){padding:17px 0;border-bottom:1px solid rgba(255,255,255,.16)}.nav-contact{margin-top:34px;font-size:16px}.hero-grid{grid-template-columns:1fr;min-height:0}.hero-copy{padding:67px 0 0}.hero h1{font-size:clamp(64px,10vw,100px);margin-top:37px}.hero-intro{max-width:550px}.hero-bottom{display:none}.hero-visual{padding:60px 33px 70px}.portrait-frame{width:min(100%,480px);aspect-ratio:1}.strip-inner{overflow:auto;justify-content:flex-start;scrollbar-width:none;padding-right:20px}.strip-inner::-webkit-scrollbar{display:none}.strip-inner span{flex:none}.section{padding:78px 0}.profile-grid{grid-template-columns:1fr}.section-aside{display:none}.profile-content h2{font-size:clamp(41px,7vw,65px)}.section-heading h2{font-size:clamp(48px,8vw,72px)}.skills-grid{grid-template-columns:1fr 1fr}.education-grid{gap:5%}}
@media (max-width:620px){.container{width:min(100% - 34px,500px)}.hero-copy{padding-top:47px}.hero-eyebrow{font-size:9px;letter-spacing:.08em;gap:8px}.eyebrow-line{width:13px}.hero h1{font-size:clamp(55px,12.7vw,77px);white-space:normal;letter-spacing:-.09em;margin:36px 0 21px}.hero-intro{font-size:17px;line-height:1.55}.hero-actions{flex-wrap:wrap;gap:19px;margin-top:28px}.button{min-height:49px}.hero-visual{padding:46px 15px 60px}.portrait-frame{max-width:400px;aspect-ratio:1}.strip-inner{min-height:54px}.section{padding:64px 0}.profile-content h2{font-size:clamp(37px,9.5vw,52px);margin-bottom:35px}.profile-bottom{display:block;padding-top:26px}.profile-bottom>p{font-size:15px}.profile-facts{margin-top:36px;gap:10px}.profile-facts strong{font-size:41px}.profile-facts span{font-size:10px}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:clamp(45px,10.5vw,61px)}.section-heading>p{margin-top:21px;font-size:14px}.timeline-item{grid-template-columns:minmax(0,1fr) 28px;gap:5px 14px;padding:25px 0}.timeline-period{grid-column:1;grid-row:1;flex-direction:row;align-items:center;gap:10px;padding:0 0 13px}.timeline-details{grid-column:1;grid-row:2}.timeline-details h3{font-size:24px}.timeline-link{grid-column:2;grid-row:2;font-size:23px}.timeline-details>p:not(.company){font-size:14px}.skills-grid,.projects-grid{grid-template-columns:1fr}.skill-card{min-height:310px}.skill-card h4{margin-top:41px}.project-art{height:215px}.project-info{min-height:205px}.education-grid{grid-template-columns:1fr;gap:39px}.education-grid h2{font-size:clamp(37px,9vw,48px)}.education-item,.publication-link{grid-template-columns:96px 1fr;gap:10px}.publication-link>span:last-child{display:none}.education-item h3{font-size:16px}.education-extras{grid-template-columns:1fr 1fr;gap:12px}.contact-section{padding:59px 0 65px}.contact-top{font-size:9px}.contact-inner h2{font-size:clamp(48px,11vw,70px);margin:64px 0 30px}.contact-email{font-size:clamp(22px,5vw,31px);gap:11px}.contact-email span{font-size:24px}.contact-bottom{margin-top:70px;display:block}.contact-bottom p{font-size:13px}.social-links{margin-top:24px;flex-wrap:wrap;gap:17px}.footer-inner{font-size:9px}}
@media (max-width:620px){.hero-eyebrow{flex-wrap:wrap;white-space:normal}.hero-eyebrow .eyebrow-line{display:none}.hero-eyebrow>span:last-child{flex-basis:100%;margin-left:15px}.role-progression{grid-template-columns:1fr;gap:13px}.project-wide{grid-column:auto;display:block}.project-wide .project-art{height:215px;min-height:0}.social-links{justify-content:flex-start}}
@media (max-width:1100px){.soft-skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.soft-skill:nth-child(3){border-left:0;padding-left:0}.soft-skill:nth-child(n+3){border-top:1px solid #cad6ca}}
@media (max-width:620px){.soft-skills{margin-top:53px}.soft-skills-grid{grid-template-columns:1fr}.soft-skill,.soft-skill+.soft-skill,.soft-skill:nth-child(3){padding:21px 0 23px;border-left:0}.soft-skill+.soft-skill{border-top:1px solid #cad6ca}.soft-skill h4{margin:12px 0 6px}}
@media (max-width:620px){.project-dialog{max-height:calc(100vh - 32px)}.project-dialog-content{padding-top:28px;padding-bottom:34px}.project-dialog-facts{grid-template-columns:1fr}.project-dialog-facts>div+div{border-left:0;border-top:1px solid var(--line);padding-left:0}.project-dialog-facts>div{padding:16px 0}.project-dialog-links{flex-direction:column}.project-dialog-links a{justify-content:space-between}.project-card-trigger>span{top:13px;right:13px}}
@media (max-width:820px){.language-switch{margin-top:25px;padding:18px 0 0;border-left:0;border-top:1px solid rgba(255,255,255,.16);font-size:14px}.language-switch a{padding:8px 12px 8px 0}}
@media (max-width:620px){.easter-cat{bottom:6px}.easter-cat-yarn{bottom:1px;width:25px;height:25px}}
.easter-cats.is-walking .easter-cat--white{animation:cat-arrive-white 6.2s linear both}
.easter-cats.is-walking .easter-cat--tabby{animation:cat-arrive-tabby 6.2s linear both}
@keyframes cat-arrive-white{from{left:calc(-1 * var(--cat-size) - 20px)}to{left:calc(50% - var(--cat-size) - 7px)}}
@keyframes cat-arrive-tabby{from{left:100vw}to{left:calc(50% + 7px)}}
.easter-cats.is-walking .easter-cat-bob{animation:cat-gait .68s ease-in-out infinite}
.easter-cats.is-walking .easter-cat--tabby .easter-cat-bob{animation-duration:.72s;animation-delay:-.36s}
.easter-cats.is-playing .easter-cat--white .easter-cat-bob{animation:cat-pounce-white 1.8s ease-in-out infinite}
.easter-cats.is-playing .easter-cat--tabby .easter-cat-bob{animation:cat-pounce-tabby 1.8s ease-in-out infinite .9s}
.easter-cat{transition:left 6.2s linear,opacity .25s ease}
.easter-cats.is-tussling .easter-cat--white,.easter-cats.is-cloud .easter-cat--white,.easter-cats.is-cloud-clearing .easter-cat--white{left:calc(50% - var(--cat-size) - 7px)}
.easter-cats.is-tussling .easter-cat--tabby,.easter-cats.is-cloud .easter-cat--tabby,.easter-cats.is-cloud-clearing .easter-cat--tabby{left:calc(50% + 7px)}
.easter-cats.is-tussling .easter-cat--white .easter-cat-bob{animation:cat-scuffle-white .62s ease-in-out infinite}
.easter-cats.is-tussling .easter-cat--tabby .easter-cat-bob{animation:cat-scuffle-tabby .62s ease-in-out infinite .31s}
.easter-cats.is-tussling .easter-cat-yarn,.easter-cats.is-cloud .easter-cat-yarn,.easter-cats.is-cloud-clearing .easter-cat-yarn,.easter-cats.is-sleeping .easter-cat-yarn{opacity:0}
.easter-cats.is-cloud .easter-cat,.easter-cats.is-cloud-clearing .easter-cat{opacity:0}
.easter-cats.is-sleeping .easter-cat{transition:left .15s ease,opacity .45s ease}
.easter-cats.is-sleeping .easter-cat--white{left:calc(50% - var(--cat-size) + 12px)}
.easter-cats.is-sleeping .easter-cat--tabby{left:calc(50% - 12px)}
.easter-cat-cloud{position:absolute;left:50%;bottom:2px;width:min(340px,92vw);height:150px;opacity:0;transform:translateX(-50%) scale(.35);transform-origin:50% 90%;transition:opacity .35s ease,transform .55s cubic-bezier(.2,1.3,.4,1);filter:drop-shadow(0 12px 10px rgba(7,25,22,.24))}
.easter-cats.is-cloud .easter-cat-cloud{opacity:1;transform:translateX(-50%) scale(1)}
.easter-cats.is-cloud-clearing .easter-cat-cloud{opacity:0;transform:translateX(-50%) scale(1.25);transition:opacity 1.1s ease,transform 1.1s ease}
.easter-cloud-puff{position:absolute;border:2px solid #92968d;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fffefa 0,#eeece5 50%,#cbc9c2 100%);box-shadow:inset -9px -9px 15px rgba(103,105,100,.12)}
.easter-cloud-puff:nth-child(1){left:1%;bottom:10%;width:39%;height:62%}.easter-cloud-puff:nth-child(2){left:18%;bottom:30%;width:39%;height:66%}.easter-cloud-puff:nth-child(3){left:46%;bottom:27%;width:37%;height:68%}.easter-cloud-puff:nth-child(4){right:1%;bottom:9%;width:37%;height:62%}.easter-cloud-puff:nth-child(5){left:18%;bottom:0;width:43%;height:55%}.easter-cloud-puff:nth-child(6){right:17%;bottom:0;width:43%;height:55%}
.easter-cats.is-cloud .easter-cloud-puff:nth-child(odd){animation:cat-cloud-puff .46s ease-in-out infinite alternate}.easter-cats.is-cloud .easter-cloud-puff:nth-child(even){animation:cat-cloud-puff .53s ease-in-out infinite alternate-reverse}
.easter-cloud-paw{position:absolute;z-index:1;top:12%;left:10%;width:26px;height:39px;border:2px solid #77786f;border-radius:50% 50% 38% 38%;background:#f8f7f1;transform-origin:50% 100%}.easter-cloud-paw:nth-of-type(8){left:auto;right:10%;top:6%;background:#aaa69c}
.easter-cats.is-cloud .easter-cloud-paw{animation:cat-cloud-paw .57s ease-in-out infinite alternate}.easter-cats.is-cloud .easter-cloud-paw:nth-of-type(8){animation-delay:-.29s}
.easter-cloud-spark{position:absolute;z-index:2;color:#eaffad;font-size:26px;line-height:1;text-shadow:0 2px 3px rgba(45,64,48,.4)}.easter-cloud-spark:nth-of-type(9){left:9%;top:-4%}.easter-cloud-spark:nth-of-type(10){right:12%;top:-10%;font-size:20px}.easter-cloud-spark:nth-of-type(11){left:48%;top:-14%;font-size:18px}
.easter-cats.is-cloud .easter-cloud-spark{animation:cat-cloud-spark .8s ease-in-out infinite alternate}.easter-cats.is-cloud .easter-cloud-spark:nth-of-type(10){animation-delay:-.3s}.easter-cats.is-cloud .easter-cloud-spark:nth-of-type(11){animation-delay:-.55s}
@keyframes cat-gait{0%,50%,100%{transform:translateY(0) rotate(-.5deg)}25%{transform:translateY(-3px) rotate(.5deg)}75%{transform:translateY(-2px) rotate(.5deg)}}
@keyframes cat-pounce-white{0%,100%{transform:translate(-8px,0) rotate(-1deg)}30%{transform:translate(1px,-3px) rotate(1deg)}52%{transform:translate(11px,-9px) rotate(2deg)}70%{transform:translate(5px,-4px) rotate(0)}}
@keyframes cat-pounce-tabby{0%,100%{transform:translate(8px,0) rotate(1deg)}30%{transform:translate(-1px,-3px) rotate(-1deg)}52%{transform:translate(-11px,-9px) rotate(-2deg)}70%{transform:translate(-5px,-4px) rotate(0)}}
@keyframes cat-scuffle-white{0%,100%{transform:translate(7px,-2px) rotate(-3deg)}50%{transform:translate(36px,-13px) rotate(11deg)}}
@keyframes cat-scuffle-tabby{0%,100%{transform:translate(-7px,-2px) rotate(3deg)}50%{transform:translate(-36px,-13px) rotate(-11deg)}}
@keyframes cat-cloud-puff{from{transform:translate(-5px,2px) scale(.96)}to{transform:translate(5px,-5px) scale(1.05)}}
@keyframes cat-cloud-paw{from{transform:rotate(-30deg) translateY(8px)}to{transform:rotate(35deg) translateY(-16px)}}
@keyframes cat-cloud-spark{from{transform:translateY(4px) rotate(-18deg);opacity:.45}to{transform:translateY(-8px) rotate(18deg);opacity:1}}
.easter-cat{transition:left 6.2s linear,opacity .85s ease}
.easter-cats.is-meeting .easter-cat--white,.easter-cats.is-winding-up .easter-cat--white,.easter-cats.is-cloud-forming .easter-cat--white{left:calc(50% - var(--cat-size) - 7px)}
.easter-cats.is-meeting .easter-cat--tabby,.easter-cats.is-winding-up .easter-cat--tabby,.easter-cats.is-cloud-forming .easter-cat--tabby{left:calc(50% + 7px)}
.easter-cats.is-meeting .easter-cat-bob{animation:cat-meet 1s ease-in-out both}
.easter-cats.is-playing .easter-cat--white .easter-cat-bob{animation:cat-play-fluid-white 1.6s ease-in-out infinite}
.easter-cats.is-playing .easter-cat--tabby .easter-cat-bob{animation:cat-play-fluid-tabby 1.6s ease-in-out infinite}
.easter-cats.is-winding-up .easter-cat--white .easter-cat-bob{animation:cat-windup-white 1s ease-in-out both}
.easter-cats.is-winding-up .easter-cat--tabby .easter-cat-bob{animation:cat-windup-tabby 1s ease-in-out both}
.easter-cats:is(.is-tussling,.is-cloud-forming) .easter-cat--white .easter-cat-bob{animation:cat-tussle-white .6s ease-in-out infinite}
.easter-cats:is(.is-tussling,.is-cloud-forming) .easter-cat--tabby .easter-cat-bob{animation:cat-tussle-tabby .6s ease-in-out infinite}
.easter-cats.is-cloud-forming .easter-cat{opacity:0}
.easter-cats.is-cloud-clearing .easter-cat,.easter-cats.is-sleeping .easter-cat{transition:left .9s ease,opacity .8s ease}
.easter-cats.is-cloud-clearing .easter-cat--white{left:calc(50% - var(--cat-size) + 12px)}
.easter-cats.is-cloud-clearing .easter-cat--tabby{left:calc(50% - 12px)}
.easter-cats.is-sleeping .easter-cat{opacity:1}
.easter-cat-zzz{transition:opacity .65s ease .5s}
.easter-cat-yarn{--yarn-reach:clamp(38px,4.8vw,54px);transform:translateX(-50%) scale(1);transition:opacity .5s ease,transform 1s ease}
.easter-cats.is-meeting .easter-cat-yarn{opacity:1;transform:translateX(-50%) scale(1)}
.easter-cats.is-playing .easter-cat-yarn{opacity:1;animation:cat-yarn-play 1.6s ease-in-out infinite}
.easter-cats.is-winding-up .easter-cat-yarn{opacity:1;animation:cat-yarn-leave 1s ease-in forwards}
.easter-cats.is-cloud-forming .easter-cat-yarn{opacity:0}
.easter-cats.is-cloud-forming .easter-cat-cloud,.easter-cats.is-cloud .easter-cat-cloud{opacity:1;transform:translateX(-50%) scale(1);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.easter-cats.is-cloud-clearing .easter-cat-cloud{opacity:0;transform:translateX(-50%) scale(1.24);transition:opacity 1.2s ease,transform 1.2s ease}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-puff:nth-child(odd){animation:cat-cloud-puff .46s ease-in-out infinite alternate}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-puff:nth-child(even){animation:cat-cloud-puff .53s ease-in-out infinite alternate-reverse}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-paw{animation:cat-cloud-paw .57s ease-in-out infinite alternate}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-paw:nth-of-type(8){animation-delay:-.29s}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-spark{animation:cat-cloud-spark .8s ease-in-out infinite alternate}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-spark:nth-of-type(10){animation-delay:-.3s}
.easter-cats:is(.is-cloud-forming,.is-cloud,.is-cloud-clearing) .easter-cloud-spark:nth-of-type(11){animation-delay:-.55s}
@keyframes cat-meet{0%{transform:translateY(0) scale(1)}65%{transform:translateY(1px) scale(1.02,.98)}100%{transform:translateY(3px) scale(1.04,.96)}}
@keyframes cat-play-fluid-white{0%,100%{transform:translateY(3px) scale(1.04,.96)}42%{transform:translate(9px,-7px) rotate(2deg)}72%{transform:translate(3px,-3px) rotate(-1deg)}}
@keyframes cat-play-fluid-tabby{0%,100%{transform:translateY(3px) scale(1.04,.96)}42%{transform:translate(-9px,-7px) rotate(-2deg)}72%{transform:translate(-3px,-3px) rotate(1deg)}}
@keyframes cat-windup-white{0%{transform:translateY(3px) scale(1.04,.96)}50%{transform:translate(-8px,5px) rotate(-5deg)}100%{transform:translate(7px,-2px) rotate(-3deg)}}
@keyframes cat-windup-tabby{0%{transform:translateY(3px) scale(1.04,.96)}50%{transform:translate(8px,5px) rotate(5deg)}100%{transform:translate(-7px,-2px) rotate(3deg)}}
@keyframes cat-tussle-white{0%,100%{transform:translate(7px,-2px) rotate(-3deg)}50%{transform:translate(35px,-12px) rotate(10deg)}}
@keyframes cat-tussle-tabby{0%,100%{transform:translate(-7px,-2px) rotate(3deg)}50%{transform:translate(-35px,-12px) rotate(-10deg)}}
@keyframes cat-yarn-play{0%,100%{transform:translateX(-50%) rotate(0)}22%,28%{transform:translateX(calc(-50% - var(--yarn-reach))) rotate(-120deg)}50%{transform:translateX(-50%) rotate(0)}72%,78%{transform:translateX(calc(-50% + var(--yarn-reach))) rotate(120deg)}}
@keyframes cat-yarn-leave{0%{transform:translateX(-50%) rotate(0) scale(1);opacity:1}100%{transform:translateX(-50%) rotate(360deg) scale(.35);opacity:0}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
