:root{--blue:#244bea;--ink:#17191d;--muted:#60646e;--line:#dedfe3;--paper:#fafafa}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,summary:focus-visible{outline-offset:6px;outline:3px solid #ff9f45}a:hover{color:var(--blue)}.wrap{max-width:1280px;margin:auto;padding-left:64px;padding-right:64px}.nav{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:108px;display:flex}.brand{letter-spacing:-1.7px;font-size:32px;font-weight:800}.brand span,.blue{color:var(--blue)}nav{gap:36px;font-size:15px;display:flex}.nav-github{border:1px solid var(--line);border-radius:30px;padding:11px 21px;font-size:14px}.hero{padding-top:84px}.eyebrow{letter-spacing:1.5px;font-size:12px;font-weight:600;line-height:1.6}.hero .eyebrow{align-items:center;gap:12px;display:flex}.line{background:var(--blue);width:25px;height:2px}h1{letter-spacing:-6px;margin:31px 0 34px;font-size:clamp(48px,7.5vw,102px);font-weight:600;line-height:1.04}h2{letter-spacing:-1.8px;margin:16px 0 0;font-size:44px;font-weight:500;line-height:1.1}p{color:var(--muted);font-size:16px;line-height:1.7}.hero-bottom{justify-content:space-between;align-items:center;gap:40px;display:flex}.hero-bottom p{max-width:550px;margin:0;font-size:20px}.button{white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;padding:19px 28px;font-size:15px;font-weight:600;transition:transform .2s,background .2s;display:inline-flex}.button:hover{transform:translateY(-3px)}.primary{background:var(--blue);color:#fff}.primary:hover{color:#fff;background:#1837bc}.hero-foot{border-bottom:1px solid var(--line);letter-spacing:1px;color:var(--muted);justify-content:space-between;margin-bottom:80px;padding:68px 0 24px;font-size:11px;display:flex}.section-head{justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:36px;display:flex}.section-head p{margin:0;font-size:15px}.project{border:1px solid var(--line);border-radius:10px;overflow:hidden}.featured{background:#fff;grid-template-columns:1fr 1fr;display:grid}.project-copy{padding:44px}.project h3{letter-spacing:-1.2px;margin:24px 0 18px;font-size:35px;font-weight:500;line-height:1.15}.project p{max-width:410px}.tags{flex-wrap:wrap;gap:8px;margin:26px 0;display:flex}.tags span{border:1px solid var(--line);border-radius:30px;padding:7px 11px;font-size:12px}.project-stat{background:var(--blue);color:#fff;flex-direction:column;justify-content:space-between;min-height:430px;padding:42px;display:flex}.stat-caption{letter-spacing:1.5px;opacity:.8;font-size:11px}.big-stat{letter-spacing:-12px;font-size:clamp(96px,14vw,180px);font-weight:500;line-height:1.1}.big-stat span{letter-spacing:-4px;font-size:56px}.stat-bottom{border-top:1px solid #ffffff50;justify-content:space-between;align-items:center;padding-top:20px;display:flex}.stat-index{opacity:.65;font-size:13px}.project-grid{grid-template-columns:1fr 1fr;gap:24px;margin:24px 0 90px;display:grid}.secondary{background:#eff1f5;padding:40px}.secondary.dark{color:#fff;background:#1c1e24;border-color:#1c1e24}.dark p{color:#b6bac6}.dark .tags span{border-color:#45474e}.metric{align-items:center;gap:20px;margin:35px 0;display:flex}.metric strong{letter-spacing:-2px;font-size:52px;font-weight:500}.metric span{max-width:150px;color:var(--muted);font-size:14px;line-height:1.5}.dark .metric span{color:#b6bac6}details{border-top:1px solid var(--line);margin-top:30px}.dark details{border-color:#45474e}summary{cursor:pointer;justify-content:space-between;padding-top:21px;font-size:14px;font-weight:600;list-style:none;display:flex}summary::-webkit-details-marker{display:none}summary span{font-size:21px;font-weight:400;line-height:16px;transition:transform .2s}details[open] summary span{transform:rotate(45deg)}.detail-body{color:var(--muted);padding-top:20px;font-size:15px;line-height:1.7}.dark .detail-body{color:#b6bac6}.about-section{background:#f0f1f3;padding:80px 0}.about-grid{grid-template-columns:1fr 1fr;gap:72px;display:grid}.about-grid h2{font-size:42px}.large-copy{letter-spacing:-.5px;color:var(--ink);margin-top:0;font-size:24px;line-height:1.5}.monogram{letter-spacing:-12px;margin-top:40px;font-size:140px;font-weight:700;line-height:1.1}.monogram span{color:var(--blue)}.location{letter-spacing:1.4px;color:var(--muted);margin-top:20px;font-size:11px;display:block}.skill-groups{border-top:1px solid #d4d5da;grid-template-columns:1fr 1fr;gap:24px;margin-top:35px;padding-top:24px;display:grid}.skill-groups h3{margin:0 0 10px;font-size:15px;font-weight:600}.skill-groups p{margin:0;font-size:14px;line-height:1.8}.experience{padding-top:85px;padding-bottom:85px}.text-link{border-bottom:1px solid;padding-bottom:5px;font-size:14px}.timeline article{border-top:1px solid var(--line);grid-template-columns:210px 1fr 170px;gap:22px;padding:29px 0;display:grid}.job-date{letter-spacing:.8px;color:var(--muted);padding-top:5px;font-size:11px}.timeline h3{letter-spacing:-.4px;margin:0 0 8px;font-size:22px;font-weight:500}.timeline span{color:var(--muted);font-size:14px}.timeline p{max-width:480px;margin-bottom:0;font-size:14px}.job-place{text-align:right;padding-top:5px;font-size:12px!important}.contact{background:var(--blue);color:#fff;padding:70px 0}.contact h2{letter-spacing:-4px;margin:30px 0;font-size:clamp(50px,7vw,88px);line-height:1.07}.contact h2 span{color:#a7b9ff}.contact-bottom{justify-content:space-between;align-items:center;display:flex}.contact p{color:#e2e8ff;font-size:18px}.light{color:var(--blue);background:#fff;min-width:170px}.light:hover{background:#e2e8ff}.email{border-bottom:1px solid #ffffff60;margin-top:22px;padding-bottom:6px;font-size:15px;display:inline-block}.email:hover{color:#fff;border-color:#fff}footer{justify-content:space-between;align-items:center;gap:24px;min-height:120px;display:flex}footer>span{color:var(--muted);font-size:12px}footer>div{gap:24px;font-size:14px;display:flex}.skip{background:var(--ink);color:#fff;z-index:20;padding:15px;position:absolute;top:-70px;left:16px}.skip:focus{top:16px}@media (min-width:1500px){.hero{padding-top:100px}}@media (max-width:900px){.wrap{padding-left:32px;padding-right:32px}h1{letter-spacing:-4px}.hero-bottom p{font-size:18px}.project-copy,.secondary{padding:30px}.project h3{font-size:29px}.project-stat{padding:28px}.about-grid{gap:36px}.timeline article{grid-template-columns:165px 1fr}.job-place{display:none}.hero-foot span:first-child{max-width:220px;line-height:1.7}.about-grid h2{font-size:35px}}@media (max-width:620px){.wrap{padding-left:23px;padding-right:23px}.nav{height:82px}.brand{font-size:29px}nav{gap:23px;font-size:14px}.nav-github{display:none}.hero{padding-top:52px}h1{letter-spacing:-2.6px;margin-top:25px;font-size:clamp(40px,9.6vw,60px);line-height:1.12}.hero .eyebrow{letter-spacing:1px;font-size:10px}.hero-bottom{display:block}.hero-bottom p{font-size:18px}.hero-bottom .button{margin-top:26px}.hero-foot{gap:15px;margin-bottom:52px;padding-top:45px;font-size:10px}.hero-foot span:last-child{text-align:right;max-width:150px;line-height:1.7}.section-head{flex-direction:column;align-items:flex-start;gap:20px}.section-head p br{display:none}h2{font-size:35px}.featured,.project-grid,.about-grid{grid-template-columns:1fr}.project-stat{grid-row:1;min-height:300px}.big-stat{letter-spacing:-8px;font-size:120px}.project-copy,.secondary{padding:28px}.project-grid{gap:20px;margin-bottom:55px}.project h3{font-size:32px}.about-section{padding:55px 0}.monogram{display:none}.location{margin:24px 0 0}.about-grid{gap:35px}.large-copy{font-size:22px}.skill-groups{gap:24px 14px}.skill-groups p{font-size:13px}.experience{padding-top:55px;padding-bottom:55px}.timeline article{grid-template-columns:1fr;gap:13px;padding:24px 0}.timeline p{font-size:15px}.contact{padding:50px 0}.contact h2{letter-spacing:-2.5px;font-size:52px}.contact-bottom{flex-direction:column;align-items:flex-start;gap:10px}.email{overflow-wrap:anywhere;font-size:14px}footer{flex-wrap:wrap;padding-top:28px;padding-bottom:28px}footer>span{order:3;width:100%}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}.headline-mask{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:clip}.headline-line{transform-origin:0 100%;display:block}.button>span{pointer-events:none;display:inline-block}.project{transition:border-color .3s,box-shadow .3s}@media (hover:hover) and (pointer:fine){.project:hover{border-color:#a4b4f5;box-shadow:0 14px 40px -24px #244bea55}nav a{position:relative}nav a:after{content:"";background:var(--blue);transform-origin:100%;height:2px;transition:transform .3s;position:absolute;bottom:-7px;left:0;right:0;transform:scaleX(0)}nav a:hover:after,nav a:focus-visible:after{transform-origin:0;transform:scaleX(1)}}@media (prefers-reduced-motion:reduce){.headline-mask{overflow:visible}.button:hover{transform:none}}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){[data-motion-root]:not([data-motion-ready]) :is(.nav>*,.hero>.eyebrow,.headline-line,.hero-bottom>*,.hero-foot){visibility:hidden;animation:0s 2.5s forwards motion-failsafe}}@keyframes motion-failsafe{to{visibility:visible}}.loader{--l-muted:#666;z-index:9999;color:#171717;background:radial-gradient(at 100% 110%,#333 0%,#999 9%,#e8e8e8 24%,#fafafa 43%,#fff 68%);flex-direction:column;justify-content:center;align-items:center;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:flex;position:fixed;inset:0}.loader.is-leaving{opacity:0;pointer-events:none;transition:opacity .9s cubic-bezier(.65,0,.35,1) .3s}.loader__greeting,.loader__caption,.loader__line{will-change:transform,opacity,filter}@media (prefers-reduced-motion:no-preference){.loader.is-leaving :is(.loader__greeting,.loader__caption,.loader__line){opacity:0;filter:blur(6px);transition:opacity .55s cubic-bezier(.4,0,.2,1),transform .7s cubic-bezier(.22,1,.36,1),filter .55s cubic-bezier(.4,0,.2,1);transform:translateY(-18px)}.loader.is-leaving .loader__caption{transition-delay:60ms}.loader.is-leaving .loader__line{transition-delay:.12s}}.loader.is-done{display:none}.loader__halo{opacity:.5;background:radial-gradient(#00000005 0%,#0000 69%);border-radius:50%;width:340px;height:250px;position:absolute;transform:translateY(-15px)}.loader__greeting{place-items:center;width:100%;height:105px;margin-top:-24px;display:grid;position:relative}.loader__greeting span{letter-spacing:-3px;opacity:0;font-size:clamp(40px,7vw,68px);font-weight:400;line-height:1.4;display:block}@media (scripting:none){.loader__greeting span{opacity:1}}.loader__greeting span:after{content:".";color:var(--blue);letter-spacing:0;margin-left:2px}.loader__caption{letter-spacing:.1px;color:var(--l-muted);margin-top:16px;font-size:13px;position:relative}.loader__line{background:#00000012;border-radius:10px;width:44px;height:2px;margin-top:27px;overflow:hidden}.loader__line div{transform-origin:0;background:#222;height:100%;transform:scaleX(0)}@media (max-width:460px){.loader__caption{letter-spacing:0;font-size:12px}}@media (prefers-reduced-motion:reduce){.loader.is-leaving{transition:opacity .4s!important}}@media (scripting:none){.loader{display:none}}@media (scripting:enabled){html:has(.loader:not(.is-leaving,.is-done)){animation:0s 6s forwards loader-failsafe-scroll;overflow:hidden}.loader:not(.is-in){animation:0s 6s forwards loader-failsafe}}@keyframes loader-failsafe{to{visibility:hidden}}@keyframes loader-failsafe-scroll{to{overflow:visible}}
