@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/hanken-grotesk-latin-400-normal.BG6hkEXj.woff2)format("woff2"),url(/_astro/hanken-grotesk-latin-400-normal.CjyVwvJV.woff)format("woff")}@font-face{font-family:Hanken Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/hanken-grotesk-latin-500-normal.DrDcrrxK.woff2)format("woff2"),url(/_astro/hanken-grotesk-latin-500-normal.Bo-NxEKf.woff)format("woff")}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-space-y-reverse:0;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:root,:host{--font-sans:"Hanken Grotesk", system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Code", Consolas, monospace;--spacing:.25rem;--font-weight-normal:400;--font-weight-medium:500;--tracking-tight:-.025em;--leading-tight:1.25;--leading-snug:1.375;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-canvas:#0d1117;--color-surface:#161b22;--color-edge:#30363d;--color-ink:#e6edf3;--color-body:#c9d1d9;--color-muted:#8b949e;--color-accent:#ab7df8;--text-small:1rem;--text-body:clamp(1.0625rem, 1rem + .25vw, 1.1875rem);--text-lead:clamp(1.25rem, 1.1rem + .7vw, 1.625rem);--text-head:clamp(2.25rem, 6vw, 5.5rem);--text-display:min(15.4vw, 36svh);--ease-out-strong:cubic-bezier(.16, 1, .3, 1)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}html{color-scheme:dark;scroll-behavior:smooth;background:var(--color-canvas);scroll-padding-top:1.5rem}body{font-family:var(--font-sans);font-size:var(--text-body);letter-spacing:-.005em;color:var(--color-ink);font-variant-numeric:tabular-nums;line-height:1.5}h1,h2,h3{text-wrap:balance;font-weight:500}h2{font-size:var(--text-head);letter-spacing:-.05em;line-height:.95}a,summary{transition:color .16s,background-color .16s}:focus-visible{outline:3px solid var(--color-accent);outline-offset:3px}::selection{background:var(--color-accent);color:var(--color-canvas)}.bg-accent::selection,.bg-accent ::selection{background:var(--color-canvas);color:var(--color-ink)}.bg-canvas::selection,.bg-canvas ::selection{background:var(--color-accent);color:var(--color-canvas)}}@layer components{.frame{padding-inline:clamp(1rem,3.4vw,3rem)}.section{padding-block:clamp(4.5rem,11vw,10rem)}.skip-link{z-index:10;background:var(--color-accent);color:var(--color-canvas);padding:.75rem 1rem;font-weight:500;position:absolute;top:.5rem;left:.5rem;transform:translateY(-200%)}.skip-link:focus{transform:none}.text-link{color:var(--color-ink);text-decoration:underline;-webkit-text-decoration-color:var(--color-accent);-webkit-text-decoration-color:var(--color-accent);text-decoration-color:var(--color-accent);text-underline-offset:.2em}.text-link:hover{color:var(--color-accent)}.data-table{border-collapse:collapse;width:100%;font-size:var(--text-small);text-align:left}.data-table caption{text-align:left;font-size:var(--text-lead);letter-spacing:-.02em;padding-bottom:1rem;font-weight:500}.data-table th,.data-table td{vertical-align:top;padding:.875rem 1.25rem .875rem 0}.data-table thead th{color:var(--color-muted);padding-block:0 .625rem;font-weight:400}.data-table tbody tr{border-top:1px solid var(--color-edge)}.data-table tbody th{color:var(--color-ink);font-weight:500}.data-table td{color:var(--color-body)}.data-table .cell-end{text-align:right;white-space:nowrap;padding-right:0}@media (width<=40rem){.data-table thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.data-table,.data-table tbody,.data-table tr,.data-table th,.data-table td,.data-table caption{display:block}.data-table tbody tr{padding-block:.75rem}.data-table th,.data-table td,.data-table .cell-end{text-align:left;white-space:normal;padding:.125rem 0}}.ascii-sky{font-family:var(--font-mono);font-size:.8125rem;line-height:1.15;overflow:hidden}.ascii-track{width:max-content;display:flex}.ascii-unit{width:clamp(18rem,34vw,30rem);margin-right:clamp(1.5rem,5vw,5rem)}.ascii-unit:nth-child(2n){margin-top:clamp(2rem,5vw,4.5rem)}.ascii-unit img{width:100%;height:auto}.ascii-rain{justify-content:space-between;height:6.9em;margin-top:-6%;padding-inline:18%;display:flex;overflow:hidden}.rain-ec2{color:#f08ad6}.rain-s3{color:#38c8f0}.rain-lambda{color:#ff6fa8}.rain-rds{color:#7d8cff}}@layer utilities{.mt-1{margin-top:var(--spacing)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-10{margin-top:calc(var(--spacing) * 10)}.mt-\[9svh\]{margin-top:9svh}.mt-auto{margin-top:auto}.-mb-\[0\.26em\]{margin-bottom:-.26em}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-10{margin-bottom:calc(var(--spacing) * 10)}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.h-auto{height:auto}.h-full{height:100%}.min-h-svh{min-height:100svh}.w-full{width:100%}.max-w-\[17em\]{max-width:17em}.max-w-\[42ch\]{max-width:42ch}.max-w-\[46ch\]{max-width:46ch}.max-w-\[62ch\]{max-width:62ch}.list-disc{list-style-type:disc}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-\[6rem_1fr\]{grid-template-columns:6rem 1fr}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.items-stretch{align-items:stretch}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-8{gap:calc(var(--spacing) * 8)}.gap-10{gap:calc(var(--spacing) * 10)}.gap-12{gap:calc(var(--spacing) * 12)}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-6{column-gap:calc(var(--spacing) * 6)}.gap-y-1{row-gap:var(--spacing)}.overflow-hidden{overflow:hidden}.bg-accent{background-color:var(--color-accent)}.bg-body{background-color:var(--color-body)}.bg-canvas{background-color:var(--color-canvas)}.bg-edge{background-color:var(--color-edge)}.bg-surface{background-color:var(--color-surface)}.object-cover{object-fit:cover}.object-top{object-position:top}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-6{padding:calc(var(--spacing) * 6)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-4{padding-block:calc(var(--spacing) * 4)}.pt-0\!{padding-top:0!important}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pt-12{padding-top:calc(var(--spacing) * 12)}.pt-\[clamp\(4\.5rem\,11vw\,10rem\)\]{padding-top:clamp(4.5rem,11vw,10rem)}.pb-0\!{padding-bottom:0!important}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.pb-\[0\.04em\]{padding-bottom:.04em}.pl-4{padding-left:calc(var(--spacing) * 4)}.pl-5{padding-left:calc(var(--spacing) * 5)}.pl-\[2vw\]{padding-left:2vw}.text-center{text-align:center}.text-\[26vw\]{font-size:26vw}.text-\[clamp\(1\.75rem\,4\.4vw\,4rem\)\]{font-size:clamp(1.75rem,4.4vw,4rem)}.text-\[clamp\(1\.75rem\,6vw\,5\.5rem\)\]\!{font-size:clamp(1.75rem,6vw,5.5rem)!important}.text-\[clamp\(2rem\,3\.6vw\,3\.25rem\)\]{font-size:clamp(2rem,3.6vw,3.25rem)}.text-display{font-size:var(--text-display)}.text-head{font-size:var(--text-head)}.text-lead{font-size:var(--text-lead)}.text-small{font-size:var(--text-small)}.leading-\[0\.9\]{--tw-leading:.9;line-height:.9}.leading-none{--tw-leading:1;line-height:1}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.tracking-\[-0\.05em\]{--tw-tracking:-.05em;letter-spacing:-.05em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.whitespace-nowrap{white-space:nowrap}.text-accent{color:var(--color-accent)}.text-body{color:var(--color-body)}.text-canvas{color:var(--color-canvas)}.text-ink{color:var(--color-ink)}.text-ink\!{color:var(--color-ink)!important}.text-muted{color:var(--color-muted)}.italic{font-style:italic}.\[--stagger\:0\]{--stagger:0}.\[--stagger\:1\]{--stagger:1}.\[--stagger\:2\]{--stagger:2}.marker\:text-accent ::marker,.marker\:text-accent::marker{color:var(--color-accent)}.marker\:text-accent ::-webkit-details-marker{color:var(--color-accent)}.marker\:text-accent::-webkit-details-marker{color:var(--color-accent)}@media (hover:hover){.hover\:bg-ink:hover{background-color:var(--color-ink)}.hover\:bg-surface:hover{background-color:var(--color-surface)}.hover\:text-accent:hover{color:var(--color-accent)}}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}@media (width>=40rem){.sm\:block{display:block}.sm\:gap-6{gap:calc(var(--spacing) * 6)}}@media (width>=48rem){.md\:ml-auto{margin-left:auto}.md\:h-full{height:100%}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-\[2fr_3fr\]{grid-template-columns:2fr 3fr}.md\:grid-cols-\[3fr_2fr\]{grid-template-columns:3fr 2fr}.md\:flex-row{flex-direction:row}.md\:items-end{align-items:flex-end}.md\:justify-between{justify-content:space-between}.md\:p-6{padding:calc(var(--spacing) * 6)}.md\:p-8{padding:calc(var(--spacing) * 8)}.md\:px-7{padding-inline:calc(var(--spacing) * 7)}.md\:py-6{padding-block:calc(var(--spacing) * 6)}.md\:text-right{text-align:right}}@media (width>=64rem){.lg\:min-h-svh{min-height:100svh}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-\[1fr_2fr\]{grid-template-columns:1fr 2fr}.lg\:grid-cols-\[2fr_1fr\]{grid-template-columns:2fr 1fr}.lg\:gap-3{gap:calc(var(--spacing) * 3)}.lg\:gap-16{gap:calc(var(--spacing) * 16)}}}@keyframes line-up{0%{transform:translateY(105%)}}@keyframes fade-up{0%{opacity:0;transform:translateY(1rem)}}@keyframes rise{0%{transform:translateY(2rem)}}@keyframes sky-drift{0%{transform:translate(-50%)}to{transform:translate(0)}}@keyframes bit-fall{0%{transform:translateY(-50%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:no-preference){.line>span{animation:line-up .9s var(--ease-out-strong) both}.line+.line>span{animation-delay:.11s}.hero-foot{animation:fade-up .6s var(--ease-out-strong) .42s both}.ascii-track{animation:80s linear infinite sky-drift}.ascii-rain pre{animation:7s linear infinite bit-fall}.ascii-rain pre:nth-child(2n){animation-duration:9s;animation-delay:-3s}.ascii-rain pre:nth-child(3n){animation-duration:11s;animation-delay:-6s}@supports (animation-timeline:view()){.rise{animation-name:rise;animation-timing-function:linear;animation-fill-mode:both;animation-range:entry 0% entry calc(45% + var(--stagger,0) * 12%)}.rise:not(#_){animation-timeline:view()}}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}
