:root,[data-theme=olive]{--color-bg:#231c07;--color-text:#e9f8dc;--color-secondary:#7f96ff;--color-secondary-soft:#beccf8;--color-tertiary:#deff7f;--color-emphasis:#991515;--color-on-emphasis:#e9f8dc;--color-raised:#2f2a14;--color-surface:#e9f8dc0d;--color-hairline:#e9f8dc26;color-scheme:dark}[data-theme=ink]{--color-bg:#111a2e;--color-text:#e3e9f4;--color-secondary:#f2a65a;--color-secondary-soft:#f7cb9b;--color-tertiary:#8fe3cf;--color-emphasis:#f0585d;--color-on-emphasis:#111a2e;--color-raised:#1b2640;--color-surface:#e3e9f40d;--color-hairline:#e3e9f426;color-scheme:dark}[data-theme=sage]{--color-bg:#e9f8dc;--color-text:#231c07;--color-secondary:#3346c2;--color-secondary-soft:#5a6bd0;--color-tertiary:#4a6300;--color-emphasis:#991515;--color-on-emphasis:#e9f8dc;--color-raised:#dceccc;--color-surface:#231c070d;--color-hairline:#231c072e;color-scheme:light}*{box-sizing:border-box;margin:0;text-decoration:none}@media screen and (min-width:450px){::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:var(--color-text)}::-webkit-scrollbar-thumb{background-color:var(--color-bg)}}html{--heading-scale:1;--container-w:65vw;background:var(--color-bg);height:100dvh;overflow:hidden;padding:2px}@media screen and (max-width:1024px){html{--container-w:92%}}@media screen and (min-width:1025px){html{--heading-scale:0.8}}body{--frame-h:calc(100dvh - 54px);background:var(--color-bg);border:1px solid var(--color-text);color:var(--color-text);font-family:Martian Mono,monospace;margin:0;overflow:hidden}#root,body{display:flex;flex-direction:column;height:100%}#root{min-height:0;position:relative}.app-scroll{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}img{height:auto;max-width:100%}h1{font-size:calc(var(--heading-scale)*clamp(2rem, 5vw, 4.5rem));font-weight:600;margin:1.3vw 0;text-align:center}h1 span{color:var(--color-text);transition:all .3s ease-in-out}h1 span.emphasis{color:var(--color-emphasis)}h2{font-size:calc(var(--heading-scale)*clamp(1.75rem, 3.5vw, 2.75rem));margin:1.3vw 0}h2,h3{font-weight:600}h3{font-size:calc(var(--heading-scale)*clamp(1.25rem, 2.2vw, 1.875rem));margin:1.1vw 0}li,p{font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:300;margin-bottom:5px;margin-top:5px}a{text-decoration:none}.letter-span,a{color:var(--color-text)}.letter-span{display:inline-block;margin-left:15px;position:relative;transition:all .5s ease-in-out}.letter-span:after{background-color:var(--color-emphasis);content:"";display:block;position:absolute;transition:all .5s ease-in-out;width:0;z-index:10}.letter-span.emphasis{color:var(--color-on-emphasis);isolation:isolate}.letter-span.emphasis:after{background-color:var(--color-emphasis);bottom:0;content:"";height:100%;margin-top:5px;transition:all .5s ease-in-out;width:100%;z-index:-1}button{background:none;border:none;color:var(--color-bg);cursor:pointer;display:block;outline:inherit;padding:8px 16px;transition:all .1s ease-in-out;width:100%}button:hover{background-color:var(--color-emphasis);color:var(--color-on-emphasis)}button.inline{background-color:none;border:1px solid var(--color-text);color:var(--color-text);display:inline-block;max-width:110px;padding:14px 18px;transition:all .2s ease-in-out}button.inline:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.dropbtn{color:var(--color-text);cursor:pointer;font-family:Martian Mono,monospace;font-size:.875rem;font-weight:200}.dropbtn span{transition:all .2s ease-in-out}.dropbtn span:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.cards-container{display:flex;justify-content:center;padding:0 0 2rem;width:100%}.cards-container .cards-wrapper{align-items:center;display:flex;flex-direction:column;gap:9rem;width:var(--container-w)}@media screen and (max-width:1024px){.cards-container .cards-wrapper{gap:5rem}}.cards-container .cards-wrapper--grid{--gap-x:2.5rem;grid-gap:6rem var(--gap-x);align-items:start;display:grid;gap:6rem var(--gap-x);grid-template-columns:repeat(auto-fill,minmax(max(17rem,(100% - (var(--cols,3) - 1) * var(--gap-x))/var(--cols,3)),1fr));width:var(--container-w)}@media screen and (max-width:768px){.cards-container .cards-wrapper--grid{gap:5rem 1rem;grid-template-columns:repeat(var(--cols-mobile,1),minmax(0,1fr))}}.cards-container .cards-wrapper--grid .card-image__caption{max-width:calc(100% - 96px - 2rem)}@media screen and (max-width:768px){.cards-container .cards-wrapper--grid .card-image__caption{max-width:calc(100% - 78px - 2rem)}}.cards-container .cards-wrapper--grid .card-image__cta{left:auto;right:1rem}.cards-container .cards-wrapper--grid .card-image{container-type:inline-size}.cards-container .cards-wrapper--grid .card-image__body{font-size:clamp(12px,3.2cqi,15px);font-weight:200;margin-top:3.6rem;text-align:left;text-transform:none;width:100%}.card-image{background-color:var(--color-bg);color:var(--color-text);position:relative;width:100%}.card-image .card-image__media{margin:0;position:relative;width:100%}.card-image .card-image__media img{aspect-ratio:16/9;display:block;object-fit:cover;transition:filter .3s ease-in-out;width:100%}.card-image .card-image__media:hover img{filter:brightness(.78)}.card-image .card-image__caption{color:var(--color-text);font-size:.75rem;font-weight:600;left:0;letter-spacing:.06em;max-width:calc(28% - 1rem);position:absolute;text-transform:uppercase;top:calc(100% + .5rem)}@media screen and (max-width:1024px){.card-image .card-image__caption{max-width:calc(100% - 78px - 2rem)}}.card-image .card-image__cta{align-items:center;background-color:var(--color-text);border:none;border-radius:50%;bottom:0;color:var(--color-bg);cursor:pointer;display:flex;font-size:.75rem;font-weight:600;height:96px;justify-content:center;left:28%;letter-spacing:.04em;line-height:1.05;padding:0;position:absolute;text-align:center;text-transform:uppercase;transform:translateY(50%);transition:transform .2s ease-in-out,background-color .2s ease-in-out;width:96px}.card-image .card-image__cta:hover{background-color:var(--color-tertiary);border-radius:50%;color:var(--color-bg);transform:translateY(50%) scale(1.07)}@media screen and (max-width:1024px){.card-image .card-image__cta{height:78px;left:auto;right:1rem;width:78px}}.card-image .card-image__body{color:var(--color-text);font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:500;letter-spacing:.02em;line-height:1.55;margin:.5rem 0 0 auto;text-align:justify;text-transform:uppercase;width:55%}@media screen and (max-width:1024px){.card-image .card-image__body{margin-top:3.2rem;text-align:left;width:100%}}.list-item{align-items:flex-start;border-bottom:2.5px solid var(--color-bg);border:solid var(--color-bg);border-radius:5px;border-width:2.5px 2.5px 5px;color:var(--color-bg);display:flex;flex-direction:column;justify-content:space-evenly;max-width:100%;min-width:100%;padding:1vw;transition:all .1s ease-in-out}.list-item:hover{box-shadow:0 8px 0 0 var(--color-secondary);transform:translateY(-8px)}.list-item h3{margin-bottom:10px}.list-item p{margin-bottom:20px}.list-item a{background-color:#f0f8ff;border:1.5px solid var(--color-bg);border-radius:3px;color:var(--color-bg);font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:300;line-height:90%;padding:.8vw;text-decoration:none;transition:all .2s ease-in-out}.list-item a:active,.list-item a:hover{background-color:var(--color-secondary)}@media screen and (max-width:450px){.list-item{opacity:0;padding:2%;transform:translateY(80px);transition:opacity .3s ease-in-out,transform .3s ease-in-out;width:100%}.list-item.is-reveal{opacity:1;transform:translateY(0)}.list-item a{padding:3.5% 5%}}.blog-item{background-color:var(--color-bg);border-radius:5px;min-height:350px;padding:30px 0}.blog-item .__image{aspect-ratio:16/10;background-color:#000;cursor:pointer;margin:1.4rem 0;overflow:hidden;position:relative}.blog-item .__image img{bottom:0;display:block;height:100%;margin:0 auto;width:auto;z-index:0}.blog-item .__title{color:var(--color-text);font-size:calc(var(--heading-scale)*clamp(1.25rem, 2.2vw, 1.875rem));font-weight:600;margin-bottom:5px}.blog-item .__title a{display:inline}.blog-item .__title h3{cursor:pointer;display:inline}.blog-item .__title h3:hover{text-decoration:underline}.blog-item .__date{color:var(--color-text);font-size:.875rem;opacity:.7}.blog-item .__description{color:var(--color-text);margin:10px 0 20px;opacity:.75}.blog-item .__link_w{border:1px solid var(--color-text);border-radius:2px;cursor:pointer;padding:15px 25px;transition:all .2s ease-in-out;width:-moz-fit-content;width:fit-content}.blog-item .__link_w:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.blog-item .__link{font-size:clamp(.9375rem,1.1vw,1.0625rem);text-decoration:none}.page-content{min-height:77vh;opacity:0;position:relative;z-index:1}.page-content h1{font-size:calc(var(--heading-scale)*clamp(2.75rem, 8vw, 7rem));margin-bottom:3rem}.page-content.fade-in{animation:fadeIn .3s ease-in-out forwards}.page-content.stretch{margin-left:auto;margin-right:auto;margin-top:80px;min-height:150vh;width:var(--container-w)}.page-content.white{background-color:var(--color-text);color:var(--color-bg)}.page-content.center{align-items:center;display:flex;flex-direction:column;justify-content:center;margin:5vh auto}.page-index{background-color:var(--color-bg);border-right:1px solid var(--color-text);height:var(--frame-h);padding:20px;position:fixed;text-transform:capitalize;top:51px;width:320px;z-index:10}@media screen and (max-width:1200px){.page-index{width:200px}}.page-index .content{border-bottom:1px solid var(--color-text);margin-bottom:10px;padding-bottom:5px}.hero-wrapper{align-items:center;display:flex;height:calc(var(--frame-h)*1.02);justify-content:center;overflow:hidden;position:relative;width:100%}@media screen and (max-width:450px){.hero-wrapper{height:62vh}}.hero-wrapper .hero-content{bottom:17%;color:var(--color-text);position:absolute;right:5%}.hero-wrapper .hero-content p{font-weight:200}@media screen and (max-width:450px){.hero-wrapper .hero-content{align-items:center;bottom:8%;display:flex;flex-direction:column;justify-content:center;right:0}.hero-wrapper .hero-content .flag-img{bottom:-20%;max-width:13%}}.hero-wrapper .location-text{color:var(--color-text);font-size:.875rem;left:-2%;position:absolute;transform:rotate(-90deg)}.hero-wrapper .flag-img{position:absolute;right:2%}.hero-wrapper img{max-width:none}.hero-wrapper--game{background-color:var(--color-bg);cursor:pointer;outline:none}.hero-wrapper--game .hero-game-canvas{height:100%;image-rendering:pixelated;inset:0;max-width:100%;object-fit:contain;position:absolute;width:100%;z-index:0}.hero-wrapper--game .hero-content,.hero-wrapper--game .hero-game-hint,.hero-wrapper--game .location-text{z-index:2}.hero-wrapper--game .location-text{bottom:17%;left:5%;top:auto;transform:none}.hero-wrapper--game .hero-game-hint{animation:fadeIn 2s linear .5s infinite alternate;bottom:50%;color:var(--color-text);font-size:.875rem;font-weight:200;left:50%;opacity:.7;pointer-events:none;position:absolute;transform:translateX(-50%)}@media screen and (max-width:1200px){.hero-wrapper--game .hero-game-hint{bottom:11%}}.hero-wrapper--game .hero-game-controls{display:flex;gap:8px;position:absolute;right:1%;top:6vh;z-index:3}.hero-wrapper--game .hero-game-button{background:#0000;background-color:var(--color-bg);border:none;border:1px solid var(--color-text);border-radius:4px;color:inherit;color:var(--color-text);cursor:pointer;font:inherit;font-size:.75rem;font-weight:200;height:26px;outline:inherit;padding:5px;transition:all .2s ease-in-out;width:26px}.hero-wrapper--game .hero-game-button:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}@media screen and (max-width:450px){.hero-wrapper--game{height:88vh}.hero-wrapper--game .location-text{bottom:auto;left:0;right:0;text-align:center;top:5%}.hero-wrapper--game .hero-content{bottom:3%;left:0;padding:0 6vw;right:0;text-align:center;top:auto}.hero-wrapper--game .hero-content .flag-img{margin:6px auto 0;position:static}}@media screen and (min-width:451px){.hero-wrapper--game.hero-wrapper--portrait .hero-game-canvas{height:82%}.hero-wrapper--game.hero-wrapper--portrait .hero-content,.hero-wrapper--game.hero-wrapper--portrait .location-text{left:0;right:0;text-align:center}.hero-wrapper--game.hero-wrapper--portrait .location-text{bottom:11%;top:auto}.hero-wrapper--game.hero-wrapper--portrait .hero-content{align-items:center;bottom:3%;display:flex;flex-direction:column}.hero-wrapper--game.hero-wrapper--portrait .hero-content .flag-img{margin-top:6px;position:static}}.hero-wrapper--game:fullscreen{height:100vh}.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.paragraph-big{font-size:calc(var(--heading-scale)*clamp(2rem, 5vw, 4.5rem));line-height:110%;transition:color .5s ease-in-out}@media screen and (max-width:450px){.paragraph-big{text-align:center}}.paragraph-small{align-self:flex-end;font-size:clamp(1.125rem,1.5vw,1.375rem);font-weight:100}@media screen and (max-width:450px){.paragraph-small{text-align:center}}.messages-section{align-items:center;column-gap:20px;display:flex;flex-direction:row;justify-content:center;margin-left:auto;margin-right:auto;width:var(--container-w)}@media screen and (max-width:1024px){.messages-section{flex-direction:column}}@media screen and (max-width:450px){.messages-section{padding:5vw 0}}.span-arrow{display:flex;justify-content:flex-end;position:relative}.span-arrow .triangle{width:55px}.section-heading{margin-bottom:4vh}.section-title{font-size:calc(var(--heading-scale)*clamp(1.75rem, 3.5vw, 2.75rem));font-weight:300;line-height:100%}.section-subtitle{font-size:clamp(1.125rem,1.5vw,1.375rem);font-weight:100;margin-top:8px;opacity:.7}.experience-section,.impact-section{margin:12vh auto;width:var(--container-w)}@media screen and (max-width:450px){.experience-section,.impact-section{margin-bottom:8vh;margin-top:8vh}}.experience-list{display:flex;flex-direction:column;row-gap:0}.experience-item{border-top:1px solid var(--color-hairline);column-gap:4vw;display:flex;flex-direction:row;padding:4vh 0}.experience-item:last-child{border-bottom:1px solid var(--color-hairline)}@media screen and (max-width:1024px){.experience-item{flex-direction:column;row-gap:12px}}.experience-period{flex:0 0 22%;font-size:.875rem;font-weight:200;opacity:.7;white-space:nowrap}.experience-body{flex:1 1}.experience-role{font-size:calc(var(--heading-scale)*clamp(1.25rem, 2.2vw, 1.875rem));font-weight:600;line-height:110%}.experience-company{color:var(--color-tertiary);font-weight:200}.experience-location{font-weight:100;margin:6px 0 14px;opacity:.7}.experience-description{font-size:.875rem;font-weight:200;line-height:150%;max-width:65ch;text-transform:uppercase}.impact-lead{font-size:clamp(1.125rem,1.5vw,1.375rem);font-weight:200;line-height:145%;margin-top:14px;max-width:70ch}.impact-list{grid-gap:4vh 4vw;display:grid;gap:4vh 4vw;grid-template-columns:repeat(2,1fr);list-style:none;padding:0}@media screen and (max-width:1024px){.impact-list{grid-template-columns:1fr}}.impact-item{border-left:2px solid var(--color-secondary);display:flex;flex-direction:column;padding-left:18px;row-gap:8px}.impact-highlight{color:var(--color-tertiary);font-size:clamp(1.125rem,1.5vw,1.375rem);font-weight:400}.impact-text{font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:200;line-height:150%}.content-404{align-items:center;display:flex;flex-direction:column;height:var(--frame-h);justify-content:center;text-align:center;width:100%}@media screen and (max-width:1024px){.content-404{flex-direction:column}}.content-wrapper{align-items:center;background-color:var(--color-bg);column-gap:10%;display:flex;flex-direction:row;height:100%;justify-content:center;row-gap:20px}@media screen and (max-width:1024px){.content-wrapper{flex-direction:column}}.form-style{display:flex;flex:1 1;flex-direction:column;width:100%}.form-style label{display:block;margin-top:2%}.form-style input,.form-style label{color:var(--color-text);font-size:clamp(.9375rem,1.1vw,1.0625rem)}.form-style input{background:none;border:none;border-bottom:1px solid var(--color-text);border-radius:0;padding:8px 10px;width:100%}.form-style input:focus{outline:none}.form-style textarea{font-size:clamp(.9375rem,1.1vw,1.0625rem);margin-bottom:50px;padding:1%;resize:none;width:100%}.form-style .submit-btn,.form-style textarea{align-self:center;background-color:var(--color-bg);border:1px solid var(--color-text);color:var(--color-text);margin-top:20px}.form-style .submit-btn{border-radius:5px;cursor:pointer;display:block;font-size:clamp(1.125rem,1.5vw,1.375rem);padding:1rem;transition:all .2s ease-in-out;width:50%}.form-style .submit-btn:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.submission-message{align-items:center;background-color:var(--color-bg);color:var(--color-text);display:flex;height:var(--frame-h);justify-content:center;width:100%}.contact-info-page{align-self:flex-start;white-space:pre-line}@media screen and (max-width:450px){.contact-info-page{align-self:center;text-align:center}}.circle{border:1.5px solid var(--color-bg);border-radius:50%;height:62vw;left:22%;position:absolute;width:62vw;z-index:-1}@media screen and (max-width:450px){.circle{height:160vw;top:-50px;width:160vw}}.project-content{margin-left:auto;margin-right:auto;padding:6vw 0;width:var(--container-w)}.project-content h1{margin-bottom:10%}.project-content p{font-weight:200}.img-container-dp{height:96vh;margin:auto auto 2vw;overflow:hidden;padding:2vw 0;width:99%}@media screen and (max-width:450px){.img-container-dp{height:auto;overflow:auto}.img-container-dp img{max-width:250%}}.page-content.case-study{padding:0}.case-hero{align-items:flex-end;border-bottom:1px solid var(--color-text);display:flex;min-height:72vh;overflow:hidden;position:relative}@media screen and (max-width:450px){.case-hero{min-height:60vh}}.case-hero .case-hero-image{object-fit:cover;opacity:.8}.case-hero .case-hero-image,.case-hero:after{height:100%;left:0;position:absolute;top:0;width:100%}.case-hero:after{background:linear-gradient(to top,color-mix(in srgb,var(--color-bg) 96%,#0000) 0,color-mix(in srgb,var(--color-bg) 60%,#0000) 50%,color-mix(in srgb,var(--color-bg) 25%,#0000) 100%);content:"";z-index:0}.case-hero .case-hero-content{container-type:inline-size;margin-left:auto;margin-right:auto;padding:6vw 0 4vw;position:relative;width:var(--container-w);z-index:1}.case-hero .case-hero-eyebrow{color:var(--color-tertiary);font-size:.875rem;font-weight:400;font-weight:300;letter-spacing:.14em;margin-bottom:1.5rem;text-transform:uppercase}.case-hero .case-hero-title{font-size:min(calc(var(--heading-scale)*clamp(2.75rem, 8vw, 7rem)),10cqi);font-weight:800;line-height:85%;margin-bottom:2rem;overflow-wrap:anywhere}.case-hero .case-hero-description{font-size:clamp(1.125rem,1.5vw,1.375rem);font-weight:200;line-height:150%;max-width:46ch}.case-hero .case-hero-cta{background-color:var(--color-text);border:1px solid var(--color-text);border-radius:999px;color:var(--color-bg);display:inline-block;font-size:.875rem;font-weight:600;letter-spacing:.06em;margin-top:2.5rem;padding:.9rem 2rem;text-decoration:none;text-transform:uppercase;transition:background-color .2s ease-in-out,color .2s ease-in-out,transform .2s ease-in-out}.case-hero .case-hero-cta:hover{background-color:initial;color:var(--color-text);transform:translateY(-2px)}@media screen and (max-width:450px){.case-hero .case-hero-cta{margin-top:2rem;padding:.8rem 1.6rem}}.case-section{margin-left:auto;margin-right:auto;padding:6vw 0;width:var(--container-w)}@media screen and (max-width:450px){.case-section{padding:12vw 0}}.case-section-title{font-size:calc(var(--heading-scale)*clamp(1.75rem, 3.5vw, 2.75rem));font-weight:600;line-height:110%;margin-bottom:3rem}.case-body,.case-text-block-body,.case-text-flow{font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:200;line-height:165%}.case-text-grid{grid-column-gap:3vw;grid-row-gap:3rem;column-gap:3vw;display:grid;grid-template-columns:repeat(var(--cs-columns,2),minmax(0,1fr));list-style:none;margin:0;padding:0;row-gap:3rem}@media screen and (max-width:1024px){.case-text-grid{grid-template-columns:1fr}}.case-text-block-title{color:var(--color-secondary);font-size:.875rem;font-weight:400;letter-spacing:.14em;margin-bottom:1rem;text-transform:uppercase}.case-text-flow{column-count:var(--cs-columns,2);column-gap:3vw}@media screen and (max-width:1024px){.case-text-flow{column-count:1}}.case-split{align-items:center;column-gap:4vw;display:flex;flex-direction:row;row-gap:2.5rem}@media screen and (max-width:1024px){.case-split{align-items:flex-start;flex-direction:column}}.case-split-aside{align-self:flex-start;flex:0 0 30%}.case-split-aside.case-split-aside--left{order:0}.case-split-aside.case-split-aside--right{order:2}@media screen and (max-width:1024px){.case-split-aside{flex:1 1 auto;width:100%}.case-split-aside.case-split-aside--left,.case-split-aside.case-split-aside--right{order:0}}.case-split-main{flex:1 1 auto;order:1}.case-section--image .case-split-aside{align-self:center;flex:0 0 48%}@media screen and (max-width:1024px){.case-section--image .case-split-aside{flex:1 1 auto}}.case-section--markdown .blog-post{max-width:100%}.case-hint{border-left:1px solid var(--color-tertiary);color:var(--color-tertiary);font-size:.875rem;font-weight:400;letter-spacing:.14em;line-height:150%;padding-left:1.2rem;text-transform:uppercase}.case-image{border-radius:4px;display:block;height:auto;width:100%}.blog-index-main{margin:5vh 0 0 25vw;max-width:50vw;padding:25px}@media screen and (max-width:1200px){.blog-index-main{margin-left:200px;max-width:none;padding:25px 6vw}}.blog-post{font-size:clamp(.9375rem,1.1vw,1.0625rem);font-weight:300;line-height:1.8;max-width:72ch;overflow-wrap:break-word}.blog-post h1,.blog-post h2,.blog-post h3,.blog-post h4{font-weight:600;line-height:1.25;text-align:left}.blog-post h1{font-size:calc(var(--heading-scale)*clamp(1.75rem, 3.5vw, 2.75rem));margin:0 0 2.4rem}.blog-post h2{font-size:calc(var(--heading-scale)*clamp(1.25rem, 2.2vw, 1.875rem));margin:4rem 0 1.2rem}.blog-post h3{color:var(--color-tertiary);font-size:clamp(1.125rem,1.5vw,1.375rem);margin:2.8rem 0 .8rem}.blog-post h4{font-size:1em;margin:2rem 0 .4rem}.blog-post blockquote,.blog-post ol,.blog-post p,.blog-post pre,.blog-post table,.blog-post ul{margin:0 0 1.6rem}.blog-post li,.blog-post p{font-size:inherit}.blog-post pre{overflow-x:auto}.blog-post ol,.blog-post ul{padding-left:1.5em}.blog-post li{margin:0 0 .4em}.blog-post li::marker{color:var(--color-secondary)}.blog-post strong{font-weight:600}.blog-post a{color:var(--color-secondary);text-decoration:underline;text-underline-offset:3px}.blog-post a:hover{color:var(--color-tertiary)}.blog-post blockquote{border-left:2px solid var(--color-tertiary);font-style:italic;margin-left:0;padding:.2em 0 .2em 1.2em}.blog-post blockquote p:last-child{margin-bottom:0}.blog-post hr{border:none;border-top:1px solid var(--color-hairline);margin:4rem 0}.blog-post :not(pre)>code{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:3px;font-size:.9em;padding:.1em .35em}.blog-post pre[class*=language-]{font-size:.85em;line-height:1.6;margin:2rem 0}.blog-post img{border:1px solid var(--color-hairline);border-radius:4px;display:block;margin:3.2rem auto}.blog-post table{border-collapse:collapse;display:block;font-size:.9em;line-height:1.5;overflow-x:auto}.blog-post td,.blog-post th{border:1px solid var(--color-hairline);padding:.6em .9em;text-align:left;vertical-align:top}.blog-post th{background:var(--color-surface);font-weight:600}.blog-post div:before{content:"";display:block;height:90px;margin:-90px 0 0}.blog-post pre.mermaid{background:var(--color-surface);border:1px solid var(--color-hairline);border-radius:6px;margin:3.2rem 0;overflow-x:auto;padding:2rem 1.6rem;position:relative;text-align:center}.blog-post pre.mermaid div:before{content:none}.blog-post .mermaid-zoom{background:var(--color-bg);border:1px solid var(--color-hairline);border-radius:4px;color:var(--color-text);cursor:pointer;cursor:zoom-in;display:grid;height:34px;padding:0;place-items:center;position:absolute;right:10px;top:10px;transition:all .2s ease-in-out;width:34px}.blog-post .mermaid-zoom:hover{background-color:var(--color-text);border-radius:4px;color:var(--color-bg)}.blog-post .mermaid-zoom:focus-visible{outline:2px solid var(--color-tertiary);outline-offset:2px}.blog-post .mermaid-zoom svg{height:18px;width:18px}.navbar{align-items:center;background-color:var(--color-bg);border-bottom:1px solid var(--color-text);color:var(--color-text);display:flex;flex:0 0 auto;font-size:.875rem;font-weight:200;height:48px;justify-content:space-between;padding:4px 10px;position:relative;transition:transform .2s ease-in-out;width:100%;z-index:100}.navbar .nav_links a{color:inherit;padding:0 20px 0 10px;text-decoration:none;transition:all .2s ease-in-out}.navbar .nav_links a:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.custom-dropdown{display:inline-block;position:relative}.selected-option{border-radius:4px;cursor:pointer;padding:12px}.options{background-color:var(--color-bg);border-radius:0 0 4px 4px;border-top:none;height:0;left:0;overflow:hidden;padding-top:4px;position:absolute;top:100%;transition:height .2s ease-in-out;width:100%;z-index:1}.options.open{height:70px}.options div{cursor:pointer;padding:5px 12px}.options div:hover{background-color:#f0f0f0;transition:background-color .2s ease-in-out}.dropdown{display:inline-block;position:relative}.dropdown:hover .dropdown-content{background-color:var(--color-text);opacity:1;transform:translateY(10px);width:100%}.dropdown-content{cursor:pointer;font-family:Martian Mono,monospace;opacity:0;overflow:hidden;position:absolute;transform:translateY(-10px);transition:all .2s ease-in-out;width:100%;z-index:1}.dropdown-content button{font-family:Martian Mono,monospace;font-size:.75rem;font-weight:200}.dropdown-content a{display:block;padding:12px 16px;text-decoration:none}.nav-panel-wrapper{border-bottom:1px solid var(--color-text);flex:0 0 auto;height:48px;position:relative;z-index:100}.nav-panel-wrapper>.nav_actions{align-items:center;height:100%;position:absolute;right:8px;top:0;z-index:4}.nav-panel-wrapper .bar{left:0;padding:10px 0;position:absolute;top:0;z-index:4}.nav-panel-wrapper .nav-button{--s:24px;--c:var(--color-text);--_g1:linear-gradient(var(--c) 20%,#0000 0 80%,var(--c) 0) no-repeat content-box border-box;--_g2:radial-gradient(circle closest-side at 50% 12.5%,var(--c) 95%,#0000) repeat-y content-box border-box;appearance:none;background:var(--_g2) left var(--_p,0) top,var(--_g1) left calc(var(--s)/10 + var(--_p, 0px)) top,var(--_g2) right var(--_p,0) top,var(--_g1) right calc(var(--s)/10 + var(--_p, 0px)) top;background-size:20% 80%,40% 100%;border:none;border-inline:calc(var(--s)/2) solid #0000;box-sizing:initial;clip-path:inset(0 25%);cursor:pointer;height:var(--s);left:0;-webkit-mask:linear-gradient(90deg,#0000,#000 25% 75%,#0000);padding:0;position:absolute;top:calc((48px - var(--s))/2);transition:background-position .3s var(--_s,.3s),clip-path 0s var(--_s,.6s);width:var(--s);z-index:4}.nav-panel-wrapper .nav-button:after,.nav-panel-wrapper .nav-button:before{background:var(--c);border-radius:var(--s);content:"";inset:40% 0;position:absolute;transition:transform .3s calc(.3s - var(--_s, .3s))}.nav-panel-wrapper .nav-button.open{--_p:calc(var(--s)*-1);--_s:0s;clip-path:inset(0)}.nav-panel-wrapper .nav-button.open:before{transform:rotate(45deg)}.nav-panel-wrapper .nav-button.open:after{transform:rotate(-45deg)}.nav-panel-wrapper .nav-button:focus-visible{border:none;clip-path:none;-webkit-mask:none;outline:2px solid var(--c);outline-offset:5px}.nav-panel{background-color:var(--color-bg);border-bottom-right-radius:150px;border-right:1.5px solid var(--color-text);border-top-right-radius:150px;bottom:3px;display:flex;flex-direction:column;left:3px;margin-left:auto;overflow:auto;padding-left:3%;padding-top:100px;position:fixed;right:3px;top:3px;transform:translateX(calc(-100% - 6px));transition:all .4s ease-in-out;z-index:1}.nav-panel a{color:var(--color-text);display:inline-block;font-size:calc(var(--heading-scale)*clamp(2rem, 5vw, 4.5rem));margin:20px 0;transition:all .5s ease}.nav-panel a:before{content:"";display:inline-block;height:50%;overflow:hidden;transition:all 1s ease;width:0}.nav-panel a:hover{color:var(--color-emphasis);text-decoration:underline}.nav-panel a:hover:before{background-color:var(--color-emphasis);color:var(--color-text);content:"";margin-right:10px;width:120px}.nav-panel.open{border-bottom-right-radius:0;border-top-right-radius:0;transform:translateX(0)}[data-theme=sage] .flag-img{filter:drop-shadow(0 0 .6px var(--color-text)) drop-shadow(0 0 .6px var(--color-text))}.theme-switcher{align-items:center;display:flex;gap:2px}.theme-switcher button{align-items:center;background:none;border:1.4px solid #0000;color:var(--color-text);cursor:pointer;display:flex;font:inherit;height:40px;justify-content:center;padding:0;width:40px}.theme-switcher button:hover{background:var(--color-surface);color:var(--color-text)}.theme-switcher button[aria-checked=true]{border-color:var(--color-text)}.theme-switcher button:focus-visible{outline:2px solid var(--color-secondary);outline-offset:2px}.theme-swatch{align-items:center;background:var(--color-bg);border:1.2px solid var(--color-text);box-sizing:border-box;display:flex;height:24px;justify-content:center;width:24px}.theme-swatch:after{background:var(--color-tertiary);border-radius:50%;content:"";height:8px;width:8px}.nav_actions{align-items:center;display:flex;gap:16px}.footer{background-color:var(--color-bg);margin-left:var(--sb-gutter,0);margin-top:7vh;position:relative;z-index:2}.footer .img-wrapper{height:100%;overflow:hidden;position:relative;width:60px}.footer .img-wrapper img{bottom:0;display:block;height:100%;margin:0 auto;width:auto;z-index:0}.footer .end-footer{border:1px solid var(--color-text);display:flex;flex-direction:row;height:60px}.footer .end-layout{display:flex;flex-direction:row;justify-content:space-around;margin-left:auto}.footer .end-layout .social-item{align-items:center;border-left:1px solid var(--color-text);color:inherit;display:flex;justify-content:center;text-decoration:none;transition:all .2s ease-in-out;width:80px}.footer .end-layout .social-item:hover{background-color:var(--color-text);border-radius:0;color:var(--color-bg)}.bodyWrap .loadingAnim:nth-child(2){height:150px;width:70%}.bodyWrap .loadingAnim:nth-child(3){width:80%}.bodyWrap .loadingAnim:nth-child(4){width:50%}.bodyWrap .loadingAnim:nth-child(5){width:90%}.bodyWrap .loadingAnim:nth-child(7){width:60%}.bodyWrap .loadingAnim:nth-child(8){height:250px;width:95%}.bodyWrap .loadingAnim:nth-child(9){width:80%}.bodyWrap .loadingAnim:last-child{height:100px}.bodyWrap .loadingAnim{animation:loadanimation 1s ease infinite;background:linear-gradient(90deg,var(--color-hairline),var(--color-surface));background-size:800% 800%;border-radius:2px;margin:1.5vw 0;min-height:30px;padding:6px;width:100%}.diagram-modal{background:var(--color-bg);border:1px solid var(--color-hairline);border-radius:6px;color:var(--color-text);margin:auto;max-height:90vh;max-width:none;overflow:hidden;padding:0;width:min(1400px,94vw)}.diagram-modal[open]{display:grid;grid-template-rows:auto 1fr auto}.diagram-modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000b3}.diagram-modal__foot,.diagram-modal__head{align-items:center;display:flex;gap:16px;justify-content:space-between;padding:10px 12px 10px 20px}.diagram-modal__head{border-bottom:1px solid var(--color-hairline)}.diagram-modal__head h2{color:var(--color-tertiary);font-size:.875rem;font-weight:600;line-height:1.4;margin:0;min-width:0;text-align:left}.diagram-modal__foot{border-top:1px solid var(--color-hairline);font-size:.75rem;opacity:.85}.diagram-modal__body{display:grid;font-weight:300;min-height:0;overflow:auto;padding:24px;place-items:center}.diagram-modal__body p{font-size:inherit}.diagram-modal__body svg{height:auto;max-height:calc(90vh - 140px);max-width:none!important;width:100%}.diagram-modal__button{align-items:center;background:var(--color-bg);background:#0000;border:1px solid var(--color-hairline);border-radius:4px;color:var(--color-text);cursor:pointer;display:inline-flex;flex:none;font:inherit;font-size:.75rem;gap:8px;height:34px;justify-content:center;min-width:34px;padding:0;transition:all .2s ease-in-out;width:auto}.diagram-modal__button:hover{background-color:var(--color-text);border-radius:4px;color:var(--color-bg)}.diagram-modal__button:focus-visible{outline:2px solid var(--color-tertiary);outline-offset:2px}.diagram-modal__button svg{height:16px;width:16px}.diagram-modal__button--text{padding:0 12px}.diagram-modal.is-full{border:0;border-radius:0;height:100vh;max-height:none;width:100vw}.diagram-modal.is-full .diagram-modal__body svg{max-height:calc(100vh - 130px)}@media screen and (max-width:768px){.diagram-modal{border:0;border-radius:0;height:100dvh;max-height:none;width:100vw}.diagram-modal__body{padding:16px;place-items:start}.diagram-modal__body svg{max-height:none;width:900px}.diagram-modal__foot{display:none}}.container-cube{position:absolute;right:20%;top:20%;transform:rotate(45deg)}@media screen and (max-width:450px){.container-cube{left:39%;top:20%;transform:rotate(45deg) scale(.6)}}.flex{align-items:center;display:flex;height:80px;justify-content:center;margin:0 -80px 0 0;width:80px}.cube{height:1px;margin:0 80px 0 0;position:relative;transform-style:preserve-3d;width:1px}.wall{border:1px solid var(--color-text);height:20px;left:-40px;line-height:100px;position:absolute;text-align:center;top:-40px;width:20px}.front{transform:translateZ(15px)}.back{transform:translateZ(-15px) rotateY(180deg)}.right{transform:translateX(15px) rotateY(90deg)}.left{transform:translateX(-15px) rotateY(-90deg)}.top{transform:translateY(-15px) rotateX(90deg)}.bottom{transform:translateY(15px) rotateX(-90deg)}.flex:nth-of-type(4) .cube:first-of-type{animation:rotation 3s ease-in-out .5s infinite alternate}.flex:nth-of-type(3) .cube:first-of-type{animation:rotation 3s ease-in-out .6s infinite alternate}.flex:nth-of-type(4) .cube:nth-of-type(2){animation:rotation 3s ease-in-out .6s infinite alternate-reverse}.flex:nth-of-type(2) .cube:first-of-type{animation:rotation 3s ease-in-out .7s infinite alternate}.flex:nth-of-type(3) .cube:nth-of-type(2){animation:rotation 3s ease-in-out .6s infinite alternate-reverse}.flex:first-of-type .cube:first-of-type,.flex:nth-of-type(4) .cube:nth-of-type(3){animation:rotation 3s ease-in-out .8s infinite alternate}.flex:nth-of-type(2) .cube:nth-of-type(2){animation:rotation 3s ease-in-out .6s infinite alternate-reverse}.flex:nth-of-type(3) .cube:nth-of-type(3){animation:rotation 3s ease-in-out .8s infinite alternate}.flex:nth-of-type(4) .cube:nth-of-type(4){animation:rotation 3s ease-in-out .8s infinite alternate-reverse}.flex:first-of-type .cube:nth-of-type(2){animation:rotation 3s ease-in-out .6s infinite alternate-reverse}.flex:nth-of-type(2) .cube:nth-of-type(3){animation:rotation 3s ease-in-out .9s infinite alternate}.flex:nth-of-type(3) .cube:nth-of-type(4){animation:rotation 3s ease-in-out .8s infinite alternate-reverse}.flex:first-of-type .cube:nth-of-type(3){animation:rotation 3s ease-in-out 1s infinite alternate}.flex:first-of-type .cube:nth-of-type(4),.flex:nth-of-type(2) .cube:nth-of-type(4){animation:rotation 3s ease-in-out .8s infinite alternate-reverse}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rotation{to{transform:rotateX(270deg) rotateY(90deg)}}@keyframes loadanimation{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}code[class*=language-],pre[class*=language-]{word-wrap:normal;background:#030314;color:#d6e7ff;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;-webkit-hyphens:none;hyphens:none;letter-spacing:.2px;line-height:1.5;tab-size:4;text-align:left;text-shadow:none;white-space:pre;word-break:normal;word-spacing:normal}code[class*=language-] ::-moz-selection,code[class*=language-] ::selection,code[class*=language-]::-moz-selection,code[class*=language-]::selection,pre[class*=language-] ::-moz-selection,pre[class*=language-] ::selection,pre[class*=language-]::-moz-selection,pre[class*=language-]::selection{background:#1d3b54;color:inherit;text-shadow:none}pre[class*=language-]{border:1px solid #2a4555;border-radius:5px;margin:1em 0;overflow:auto;padding:1.5em 1em}:not(pre)>code[class*=language-]{background:#2a4555;border-radius:.2em;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#f0f6f6;padding:.2em .3em}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#446e69}.token.punctuation{color:#d6b007}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#d6e7ff}.token.attr-name,.token.builtin,.token.inserted,.token.selector{color:#e60067}.token.char,.token.string{color:#49c6ec}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{background:#0000;color:#ec8e01}.token.atrule,.token.attr-value,.token.keyword{color:#0fe468}.token.class-name,.token.function{color:#78f3e9}.token.important,.token.regex,.token.variable{color:#d6e7ff}
/*# sourceMappingURL=main.7ae9271a.css.map*/