:root{--blue:#244bea;--ink:#17191d;--muted:#60646e;--line:#dedfe3;--paper:#fafafa;--site-header-h:80px}*{box-sizing:border-box}html{--scroll-offset:calc(var(--site-header-h) + 24px);scroll-behavior:smooth;scroll-padding-top:var(--scroll-offset)}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}.brand{letter-spacing:-1.7px;font-size:32px;font-weight:800}.brand span,.blue{color:var(--blue)}.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 p{max-width:550px;margin:0;font-size:18px}.hero-actions{flex-wrap:wrap;align-items:center;gap:16px 22px;margin-top:28px;display:flex}.button{white-space:nowrap;border-radius:5px;justify-content:center;align-items:center;padding:16px 24px;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}.outline{border:1px solid var(--line);background:#fff;padding:15px 23px}.outline:hover{border-color:var(--blue)}.outline svg{vertical-align:-1px;margin-left:8px;transition:transform .2s}.outline:hover svg{transform:translate(2px,-2px)}.hero-foot{border-top:1px solid var(--line);letter-spacing:1px;color:var(--muted);justify-content:space-between;gap:16px;margin-top:clamp(40px,4vw,56px);margin-bottom:80px;padding-top:20px;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-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}.metric--adoption{margin-bottom:10px}.metric--adoption strong{white-space:nowrap;font-variant-numeric:tabular-nums;flex-shrink:0}.metric--adoption span{text-wrap:balance;max-width:190px}.metric-note{margin:0;font-size:13px;line-height:1.5}.dark .metric-note{color:#9ea2ae}@media (max-width:620px){.metric--adoption{flex-direction:column;align-items:flex-start;gap:4px}.metric--adoption span{max-width:none}}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}.project-cta{border-top:1px solid var(--line);margin-top:30px}.dark .project-cta{border-color:#45474e}.dark .cf-cta:hover{color:#8aa1ff}.large-copy{letter-spacing:-.5px;color:var(--ink);margin-top:0;font-size:24px;line-height:1.5}.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}.timeline article{grid-template-columns:165px 1fr}.job-place{display:none}.hero-foot span:first-child{max-width:220px;line-height:1.7}}@media (max-width:620px){.wrap{padding-left:23px;padding-right:23px}.brand{font-size:29px}.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 p{font-size:18px}.hero-foot{gap:15px;margin-bottom:52px;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{grid-template-columns:1fr}.project-copy,.secondary{padding:28px}.project-grid{gap:20px;margin-bottom:55px}.project h3{font-size:32px}.large-copy{font-size:22px}.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}}.hero-body{--portrait-w:clamp(280px, 30vw, 400px);--hero-gap:clamp(40px, 5vw, 80px);--hero-h1-max:96px;grid-template-columns:minmax(0, 1fr) var(--portrait-w);column-gap:var(--hero-gap);grid-template-rows:auto 1fr;align-items:start;margin-top:31px;display:grid;container-type:inline-size}.hero h1{font-size:min(var(--hero-h1-max), (100cqi - var(--portrait-w) - var(--hero-gap)) / 7.9);letter-spacing:-.057em;grid-area:1/1;margin:0 0 28px;line-height:1.04}.hero-bottom{grid-area:2/1}.hero-portrait{grid-area:1/2/span 2;margin:0}.hero-stage{--mono-reach:min(12cqi, var(--hero-gap) * .6);--mono-lift:50px;isolation:isolate;position:relative;container-type:inline-size}.hero-monogram{z-index:-1;left:calc(var(--mono-reach) * -1);top:calc(var(--mono-lift) * -1);width:calc(100cqi + var(--mono-reach));aspect-ratio:187/110;pointer-events:none;background:#e9eaed;position:absolute;-webkit-mask:url(../media/black.190l0f7efe26y.svg) 50%/100% 100% no-repeat;mask:url(../media/black.190l0f7efe26y.svg) 50%/100% 100% no-repeat}.hero-photo{aspect-ratio:4/5;object-fit:cover;object-position:50% 0;border-radius:5px;width:100%;height:auto;display:block}.hero-caption{letter-spacing:.3px;color:var(--muted);align-items:center;gap:10px;margin-top:14px;font-size:12px;display:flex}.hero-caption:before{content:"";background:var(--ink);width:24px;height:1px}@media (max-width:840px){.hero-body{--portrait-w:0px;--hero-gap:0px;--hero-h1-max:72px;grid-template-rows:none;grid-template-columns:minmax(0,1fr)}.hero h1,.hero-bottom,.hero-portrait{grid-area:auto/1}.hero-portrait{width:min(300px,100%);margin-top:40px}.hero-monogram{display:none}}@media (max-width:620px){.hero-body{margin-top:25px}.hero h1{margin-bottom:22px}.hero-portrait{margin-top:32px}}.about-section{--about-rule:#d4d5da;--about-bg:#f0f1f3;background:var(--about-bg);padding:84px 0;overflow-x:clip}.about-head h2{font-size:clamp(32px,2.6vw + 14px,42px)}.about-main,.about-outside{grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:32px clamp(40px,5vw,72px);display:grid}.about-main{align-items:center;margin-top:44px}.about-mark{--mark-w:clamp(200px, 22vw, 300px);--guide-run:48px;padding:calc(var(--mark-w) * .08 + 8px) var(--guide-run) calc(var(--mark-w) * .18 + 16px) 0}.about-mark__plate{width:var(--mark-w);position:relative}.about-mark__logo{width:100%;height:auto;display:block}.construction,.construction-sheet,.construction-labels{pointer-events:none;position:absolute}.construction,.construction-labels{inset:0}.construction-sheet{width:186.26%;height:188.55%;top:-48.55%;left:-65.94%;overflow:visible}.construction-sheet *{fill:none;stroke-width:1px;vector-effect:non-scaling-stroke}.construction-guide--base{stroke:var(--ink);opacity:.16}.construction-guide--minor,.construction-guide--hover{stroke:var(--line)}.construction-guide--hover{opacity:0}.construction-bbox{stroke:var(--muted);stroke-dasharray:2 2;opacity:.32}.construction-outline path{stroke:var(--ink)}.construction-anchors rect{fill:var(--about-bg);stroke:var(--ink)}.construction-anchor{opacity:.6}.construction-anchor--minor{opacity:0}.construction-marker circle{stroke:var(--line)}.construction-marker line,.construction-measurements line{stroke:var(--ink);opacity:.3}.construction-label{letter-spacing:.4px;white-space:nowrap;color:var(--muted);opacity:.75;font-size:10px;line-height:1.2;position:absolute}.construction-label--stem{top:-12%;left:-.75%}.construction-label--size{top:106%;left:50%;transform:translate(-50%)}.construction-label--marker{top:89.55%;left:111.07%;transform:translateY(-50%)}.construction-label--x,.construction-label--baseline{right:calc(100% + 20px)}.construction-label--x{top:4px}.construction-label--baseline{bottom:4px}.construction-label--r,.construction-label--s{top:112.7%}.construction-label--r{left:0}.construction-label--s{left:36.33%}.construction-label--title{top:129.7%;left:0}.construction-label--hover{opacity:0}@media (hover:hover) and (pointer:fine){.construction-guide,.construction-bbox,.construction-anchor,.construction-label{transition:opacity .4s}.about-mark:hover .construction-guide--base{opacity:.24}.about-mark:hover .construction-guide--hover{opacity:1}.about-mark:hover .construction-bbox{opacity:.5}.about-mark:hover .construction-anchor,.about-mark:hover .construction-label--hover{opacity:.75}}.about-copy p{max-width:31em;margin:20px 0 0;font-size:17px}.about-copy .about-lead{letter-spacing:-.4px;max-width:26em;color:var(--ink);margin:0;font-size:23px;line-height:1.45}.about-label{letter-spacing:1.4px;color:var(--muted);font-size:11px;line-height:1.6;display:block}.about-copy .about-label{margin-top:28px}.about-outside{border-top:1px solid var(--about-rule);margin-top:48px;padding-top:40px}.about-outside h3,.about-index__title{letter-spacing:-.4px;color:var(--ink);font-size:23px;font-weight:500;line-height:1.3}.about-outside h3{margin:14px 0 0}.about-outside__intro p{max-width:30em;margin:12px 0 0}.about-index{margin:0;padding:0;list-style:none}.about-index li+li{border-top:1px solid var(--about-rule)}.about-index__row{grid-template-columns:44px minmax(0,1fr) auto;align-items:start;column-gap:20px;padding:22px 0;display:grid;position:relative}.about-index li:first-child .about-index__row{padding-top:4px}.about-index li:last-child .about-index__row{padding-bottom:4px}.about-index__symbol{width:44px;height:44px;color:var(--ink);align-self:center;display:block}.about-index__text{flex-direction:column;min-width:0;display:flex}.about-index__label{letter-spacing:1.4px;color:var(--muted);font-size:11px;line-height:1.6}.about-index__title{text-underline-offset:5px;margin-top:6px;-webkit-text-decoration:underline #244bea73;text-decoration:underline #244bea73;text-decoration-thickness:1px;transition:color .2s,text-decoration-color .2s}.about-index__description{color:var(--muted);margin-top:6px;font-size:15px;line-height:1.5}.about-index__arrow{color:var(--ink);align-self:center;font-size:22px;transition:transform .2s,color .2s}.about-index__link:is(:hover,:focus-visible) :is(.about-index__title,.about-index__arrow){color:var(--blue)}.about-index__link:is(:hover,:focus-visible) .about-index__title{-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.about-index__link:is(:hover,:focus-visible) .about-index__arrow{transform:translate(3px)}.about-index__link[target=_blank]:is(:hover,:focus-visible) .about-index__arrow{transform:translate(2px,-2px)}.about-index__link:focus-visible{outline-offset:4px}.about-index__hint{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.about-index__link .about-index__arrow{transform:none!important}}.about-skills{border-top:1px solid var(--about-rule);grid-template-columns:repeat(4,minmax(0,1fr));gap:24px clamp(24px,3vw,48px);margin:48px 0 0;padding:32px 0 0;list-style:none;display:grid}.about-skills h3{margin:0 0 8px;font-size:15px;font-weight:600}.about-skills p{margin:0;font-size:14px;line-height:1.8}@media (max-width:1040px){.about-main{grid-template-columns:auto minmax(0,1fr);gap:32px 40px}.about-mark{--mark-w:clamp(200px, 24vw, 240px);--guide-run:32px}.about-outside{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px 40px}.about-copy .about-lead{font-size:21px}}@media (max-width:900px){.about-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 32px}}@media (max-width:1040px){.construction-label--marker{display:none}}@media (max-width:1319px){.construction-label--x,.construction-label--baseline{display:none}}@media (max-width:780px){.about-main,.about-outside{grid-template-columns:minmax(0,1fr)}.about-main{margin-top:36px}.about-mark{--mark-w:200px;--guide-run:40px;justify-self:start}.about-outside{gap:28px}.construction-label--stem,.construction-label--size,.construction-label--hover,.construction-measurements{display:none}}@media (max-width:620px){.about-section{padding:52px 0}.about-main{margin-top:32px}.about-mark{--mark-w:172px;--guide-run:28px;padding-top:4px}.construction-guide--minor,.construction-guide--hover,.construction-bbox,.construction-anchors,.construction-marker{display:none}.about-copy p{font-size:16px}.about-outside,.about-skills{margin-top:40px;padding-top:32px}.about-outside h3,.about-index__title{font-size:21px}.about-index__row{grid-template-columns:34px minmax(0,1fr) auto;column-gap:16px}.about-index__symbol{width:34px;height:34px}.about-skills{gap:24px 16px}}@media (max-width:360px){.about-skills{grid-template-columns:minmax(0,1fr)}.about-index__row{grid-template-columns:minmax(0,1fr) auto}.about-index__symbol{grid-column:1/-1;align-self:start;margin-bottom:10px}}.site-header{z-index:15;height:var(--site-header-h);background:var(--paper);border-bottom:1px solid var(--line);position:sticky;top:0}.site-header :is(a,button){scroll-margin-top:calc(-1 * var(--scroll-offset))}.site-header__bar{justify-content:space-between;align-items:center;gap:32px;height:100%;display:flex}.site-header__identity{flex-shrink:0;align-items:center;gap:13px;display:flex}.site-header__mark{width:auto;height:38px;display:block}.site-header__text{white-space:nowrap;flex-direction:column;gap:3px;display:flex}.site-header__name{letter-spacing:-.2px;font-size:16px;font-weight:600;line-height:1.2}.site-header__role{color:var(--muted);font-size:12px;line-height:1.3}.site-header__nav,.site-header__panel{align-items:center;display:flex}.site-header__toggle{display:none}.site-header__list{gap:28px;margin:0;padding:0;list-style:none;display:flex}.site-header__link{white-space:nowrap;align-items:center;gap:5px;min-height:44px;padding:0 2px;font-size:15px;display:inline-flex}.site-header__num{letter-spacing:.4px;font-variant-numeric:tabular-nums;color:var(--muted);font-size:10.5px;transition:color .2s;position:relative;top:-5px}.site-header__label{color:var(--ink);flex-direction:column;display:inline-flex}.site-header__label:after{content:attr(data-label);content:attr(data-label) / "";visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none;height:0;font-weight:600;overflow:hidden}.site-header__link[aria-current] .site-header__label{font-weight:600}.site-header__link[aria-current] .site-header__num{color:var(--ink)}.site-header__link:hover .site-header__num,.site-header__link:focus-visible .site-header__num{color:var(--blue)}.site-header__rule{background:var(--line);width:1px;height:16px;margin:0 24px}.site-header__github{min-height:44px;color:var(--muted);white-space:nowrap;align-items:center;gap:5px;font-size:14px;display:inline-flex}.site-header__arrow{transition:transform .2s;display:inline-block}.site-header__github:hover .site-header__arrow,.site-header__github:focus-visible .site-header__arrow{transform:translate(2px,-2px)}.site-header__marker{background:var(--blue);opacity:0;pointer-events:none;width:28px;height:2px;transition:opacity .2s;position:absolute;bottom:-1px;left:0}.site-header__marker[data-visible]{opacity:1;transition:transform .22s cubic-bezier(.2,.7,.2,1),opacity .2s}.site-header__marker[data-settling]{transition:opacity .2s}main section[tabindex="-1"]:focus{outline:none}@media (max-width:1040px){.site-header__list{gap:22px}.site-header__rule{margin:0 18px}}@media (max-width:840px){:root{--site-header-h:64px}.site-header__mark{height:32px}.site-header__text{gap:2px}.site-header__name{font-size:15px}.site-header__toggle{min-height:44px;font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:6px;margin-right:-6px;padding:0 6px;font-size:14px;font-weight:600;display:inline-flex}.site-header__toggle span{text-align:center;width:.6em;font-size:17px;font-weight:400}.site-header__toggle:hover{color:var(--blue)}.site-header__panel{max-height:calc(100dvh - var(--site-header-h));overscroll-behavior:contain;background:var(--paper);border-bottom:1px solid var(--line);visibility:hidden;opacity:0;padding:10px 32px 18px;transition:opacity .2s,transform .2s,visibility 0s linear .2s;display:block;position:absolute;top:calc(100% + 1px);left:0;right:0;overflow-y:auto;transform:translateY(-6px)}.site-header__nav[data-open] .site-header__panel{visibility:visible;opacity:1;transition:opacity .2s,transform .2s cubic-bezier(.2,.7,.2,1);transform:none}.site-header__list{flex-direction:column;gap:0}.site-header__list li+li{border-top:1px solid var(--line)}.site-header__link{gap:14px;min-height:56px;padding:0;font-size:18px;display:flex}.site-header__num{width:18px;font-size:11px;top:0}.site-header__rule,.site-header__marker{display:none}.site-header__github{border-top:1px solid var(--line);min-height:52px;display:flex}}@media (max-width:620px){.site-header__panel{padding-left:23px;padding-right:23px}}@media (max-width:360px){.site-header__role{display:none}}@media (scripting:none) and (max-width:840px){:root{--site-header-h:0px}.site-header{height:auto;position:relative}.site-header__bar{flex-wrap:wrap;row-gap:0;min-height:64px;padding-top:12px;padding-bottom:4px}.site-header__toggle{display:none}.site-header__nav,.site-header__panel{width:100%}.site-header__panel{visibility:visible;opacity:1;background:0 0;border:0;flex-wrap:wrap;column-gap:20px;max-height:none;padding:0;display:flex;position:static;transform:none}.site-header__list{flex-flow:wrap;column-gap:20px}.site-header__list li+li{border-top:0}.site-header__link{gap:5px;min-height:44px;font-size:15px}.site-header__num{width:auto;font-size:10.5px;top:-5px}.site-header__github{border-top:0;min-height:44px}}@media (prefers-reduced-motion:reduce){.site-header__github:hover .site-header__arrow,.site-header__github:focus-visible .site-header__arrow{transform:none}}.headline-mask{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:clip}.headline-line{white-space:nowrap;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}}@media (prefers-reduced-motion:reduce){.headline-mask{overflow:visible}.button:hover,.outline:hover svg{transform:none}}@media (scripting:enabled) and (prefers-reduced-motion:no-preference){[data-motion-root]:not([data-motion-ready]) :is(.site-header__identity,.site-header__toggle,.site-header__link,.site-header__rule,.site-header__github,.hero>.eyebrow,.headline-line,.hero-bottom>*,.hero-portrait,.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}}.privacy .button{color:inherit;font:inherit;cursor:pointer;background:0 0;border:1px solid #45474e;padding:14px 22px;font-size:14px;font-weight:600}button:focus-visible{outline-offset:4px;outline:3px solid #ff9f45}.privacy{max-width:860px;padding-top:72px;padding-bottom:96px}.privacy h1{letter-spacing:-3px;margin:24px 0;font-size:clamp(40px,6vw,72px)}.privacy section{border-top:1px solid var(--line);margin-top:48px;padding-top:8px}.privacy h2{letter-spacing:-.8px;font-size:28px}.privacy h3{margin:24px 0 0;font-size:17px;font-weight:600}.privacy code{font-size:14px}.privacy .text-link{padding-bottom:2px}.privacy-status{margin:8px 0 14px}.privacy-actions{flex-wrap:wrap;gap:12px;max-width:520px;display:flex}.privacy .button{border-color:var(--line);flex:0 240px}.privacy .button:hover,.privacy .button[aria-pressed=true]{border-color:var(--blue);color:var(--blue)}@media (max-width:620px){.privacy{padding-top:48px;padding-bottom:64px}}.featured--compfeed{grid-template:"copy preview"1fr"cta preview"/calc(50% - 12px) minmax(0,1fr)}.featured--compfeed .project-copy{grid-area:copy;padding:40px 40px 0}.cf-capabilities{color:var(--muted);flex-wrap:wrap;gap:6px 0;margin:26px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.cf-capabilities li:not(:last-child):after{content:"·";margin:0 9px}.cf-cta-row{grid-area:cta;padding:32px 40px 40px}.cf-cta{border-bottom:1px solid;align-items:center;gap:8px;padding:20px 0 6px;font-size:15px;font-weight:600;display:inline-flex}.cf-cta svg{transition:transform .2s}.cf-preview{background:#f0f1f3;grid-area:preview;padding:30px 30px 28px;position:relative;overflow:hidden}.cf-shot{border:1px solid var(--line);pointer-events:none;background:#fff;overflow:hidden}.cf-shot img{width:100%;height:auto;display:block}.cf-shot--main{aspect-ratio:1000/745;border-radius:8px;transition:transform .35s;box-shadow:0 12px 32px #17191d14}.cf-shot--main img{object-fit:cover;object-position:top;height:100%}.cf-shot--widget{border-radius:12px;width:clamp(122px,24%,156px);transition:transform .3s;position:absolute;bottom:16px;right:46px;box-shadow:0 16px 32px -16px #17191d4d}@media (hover:hover) and (pointer:fine){.featured--compfeed:hover .cf-shot--main{transform:scale(1.015)}.featured--compfeed:hover .cf-shot--widget{transform:translateY(-5px)}.cf-cta:hover svg{transform:translate(2px,-2px)}}.featured--compfeed:focus-within .cf-shot--main{transform:scale(1.015)}.featured--compfeed:focus-within .cf-shot--widget{transform:translateY(-5px)}.cf-cta:focus-visible svg{transform:translate(2px,-2px)}@media (prefers-reduced-motion:reduce){.cf-shot--main,.cf-shot--widget,.cf-cta svg{transition:none;transform:none!important}}@media (max-width:1200px){.cf-shot--main{aspect-ratio:1000/875}}@media (max-width:1080px){.cf-shot--main{aspect-ratio:1000/1018}}@media (max-width:1064px){.featured--compfeed{grid-template:"copy""preview""cta"/minmax(0,1fr)}.featured--compfeed .project-copy{padding-bottom:32px}.cf-break{display:none}.cf-preview{padding:28px 30px 26px}.cf-shot--main{aspect-ratio:1000/745}.cf-cta-row{padding:22px 40px 36px}}@media (max-width:900px){.featured--compfeed .project-copy{padding:30px 30px 28px}.cf-cta-row{padding:22px 30px 30px}}@media (max-width:620px){.featured--compfeed .project-copy{padding:28px 28px 24px}.cf-preview{padding:18px}.cf-shot--widget{display:none}.cf-cta-row{padding:18px 28px 26px}}
