@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/7a79a8532ddacb0c-s.p.34f9nwclrjpmo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../media/ded494f396ddea9f-s.p.1_j-vbs-91rji.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/7a79a8532ddacb0c-s.p.34f9nwclrjpmo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../media/ded494f396ddea9f-s.p.1_j-vbs-91rji.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/7a79a8532ddacb0c-s.p.34f9nwclrjpmo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Schibsted Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../media/ded494f396ddea9f-s.p.1_j-vbs-91rji.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Schibsted Grotesk Fallback;src:local(Arial);ascent-override:93.46%;descent-override:24.67%;line-gap-override:0.0%;size-adjust:104.49%}.madI2q_className{font-family:Schibsted Grotesk,Schibsted Grotesk Fallback;font-style:normal}.madI2q_variable{--font-sans:"Schibsted Grotesk", "Schibsted Grotesk Fallback"}
@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/192eb266b35252ee-s.p.3deb4k1l7b0hc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:400;font-display:swap;src:url(../media/d0894cd0614db15e-s.p.30mp6k74iam-2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/192eb266b35252ee-s.p.3deb4k1l7b0hc.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Spline Sans Mono;font-style:normal;font-weight:500;font-display:swap;src:url(../media/d0894cd0614db15e-s.p.30mp6k74iam-2.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Spline Sans Mono Fallback;src:local(Arial);ascent-override:71.59%;descent-override:17.57%;line-gap-override:0.0%;size-adjust:134.59%}.GEtJPq_className{font-family:Spline Sans Mono,Spline Sans Mono Fallback;font-style:normal}.GEtJPq_variable{--font-mono:"Spline Sans Mono", "Spline Sans Mono Fallback"}
:root{--paper:#f4f4f1;--ink:#141414;--text:#2b2b28;--muted:#4f4f4a;--meta:#5f5f59;--line:#d9d9d3;--window:#fbfbf9;--bezel:#0e0e0e;--bezel-edge:#0e0e0e;--hover:#55554f;--sans:var(--font-sans), "Helvetica Neue", Arial, sans-serif;--monof:var(--font-mono), Menlo, monospace;--gutter:64px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--paper:#121211;--ink:#edede8;--text:#d6d6d0;--muted:#c4c4bd;--meta:#a3a39b;--line:#2f2f2b;--window:#1a1a18;--bezel:#000;--bezel-edge:#34342f;--hover:#c8c8c1}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}a:hover{color:var(--hover)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}img{max-width:100%;display:block}.mono{font-family:var(--monof)}.skip{background:var(--ink);color:var(--paper);z-index:10;border-radius:6px;padding:10px 14px;position:absolute;top:-48px;left:8px}.skip:focus{color:var(--paper);top:8px}.page{max-width:1440px;padding:0 var(--gutter) 56px;margin:0 auto}.top{justify-content:space-between;align-items:center;height:88px;display:flex}.brand{letter-spacing:-.01em;padding:12px 0;font-size:16px;font-weight:600}.top nav{gap:32px;font-size:15px;display:flex}.top nav a{padding:12px 0}.top nav .lang{color:var(--meta)}.home-first{flex-direction:column;min-height:min(100svh - 88px,812px);padding-bottom:44px;display:flex}.hero{flex-direction:column;gap:22px;margin-top:52px;display:flex}.hero h1{letter-spacing:-.022em;text-wrap:pretty;max-width:1010px;margin:0;font-size:46px;font-weight:500;line-height:1.12}.position{font-family:var(--monof);color:var(--meta);margin:0;font-size:13px}.shelf{--obj-h:clamp(300px, calc(100svh - 470px), 420px);--phone-w:calc(var(--obj-h) * .4738);--mac-w:calc(var(--obj-h) * .767);grid-template-columns:var(--phone-w) var(--phone-w) var(--mac-w) minmax(0, 1fr);grid-template-rows:auto auto;gap:20px 56px;margin-top:auto;padding-top:64px;display:grid}.work{grid-row:span 2;grid-template-rows:subgrid;row-gap:20px;display:grid}.work:hover{color:inherit}.work .media{align-self:end}.label{flex-direction:column;align-self:start;gap:5px;display:flex}.label .name{font-size:16px;font-weight:600}.work:hover .name{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.label .line{color:var(--muted);font-size:14px;line-height:1.4}.label .where{font-family:var(--monof);color:var(--meta);margin-top:3px;font-size:12px}.media{display:block;position:relative}.media.phone{width:var(--phone-w);height:var(--obj-h);background:var(--bezel);box-shadow:0 0 0 1px var(--bezel-edge);border-radius:34px;padding:5px}.media.phone img{object-fit:cover;border-radius:29px;width:100%;height:100%}.media.mac{width:var(--mac-w);height:calc(var(--obj-h) * .905)}.media.mac img{object-fit:contain;object-position:center bottom;width:100%;height:100%}.media.canvas{height:calc(var(--obj-h) * .714);border:1px solid var(--line);background:var(--window);border-radius:12px;overflow:hidden}.media.canvas img{width:868px;max-width:none;height:329px;position:absolute;top:2px;left:-147px}.media:after{content:"";border-radius:inherit;background:var(--paper);opacity:0;pointer-events:none;position:absolute;inset:-2px}:root[data-fx=pending] .media[data-form]:after{opacity:1;animation:.3s 3s forwards fx-failsafe}:root[data-fx=ready] .media[data-form]:not(.fx-done):after{opacity:1;animation:none}.media.fx-done:after{opacity:0;transition:opacity .45s}@keyframes fx-failsafe{to{opacity:0}}.fx-canvas{z-index:1;pointer-events:none;width:100%;height:100%;transition:opacity .5s .1s;position:absolute;inset:0}.media.fx-done .fx-canvas{opacity:0}.hero-meta{flex-wrap:wrap;align-items:baseline;gap:14px 40px;display:flex}.pointer{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--meta);text-decoration-color:var(--meta);margin:-6px 0;padding:6px 0;font-size:16px}.pointer:hover{text-decoration-color:currentColor}.build{grid-template-columns:260px minmax(0,720px);gap:28px 48px;margin-top:112px;display:grid}.build h2{margin:0;font-size:16px;font-weight:600;line-height:2}.build-lede{color:var(--text);text-wrap:pretty;margin:0;font-size:20px;line-height:1.6}.build .ag-frame{grid-column:1/-1;margin-top:12px}.build-foot{flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:baseline;gap:8px 24px;display:flex}.build-foot .mono{color:var(--meta);font-size:13px}.ag-frame{border:1px solid var(--line);background:var(--window);border-radius:12px;overflow:hidden}.ag-svg{width:100%;height:auto;display:block}.ag-svg .bg-dots{fill:var(--lg-dot)}.ag-tall{display:none}.ag-node{fill:var(--lg-node);stroke:var(--lg-stroke);stroke-width:1px}.ag-sub{fill:var(--window);stroke:var(--lg-stroke);stroke-width:1px}.ag-group{fill:var(--lg-node);stroke:var(--ink);stroke-width:1.6px}.ag-label{font-family:var(--sans);fill:var(--ink);font-size:12px}.ag-hub{font-weight:600}.ag-rank,.ag-tag,.ag-legend text{font-family:var(--monof);fill:var(--meta);font-size:11px}.ag-rank{letter-spacing:.08em}.ag-tag{font-size:10px}.ag-legend text{fill:var(--muted)}.lab-note{color:var(--muted);margin:0 0 26px;font-size:16px;line-height:1.5}.rows{grid-template-columns:260px minmax(0,720px);gap:72px 48px;margin-top:120px;display:grid}.rows h2{margin:0;font-size:16px;font-weight:600;line-height:2}.prose{color:var(--text);flex-direction:column;gap:24px;font-size:20px;line-height:1.6;display:flex}.prose p{text-wrap:pretty;margin:0}.prose strong{color:var(--ink);font-weight:600}.lab{flex-direction:column;gap:22px;margin:0;padding:0;list-style:none;display:flex}.lab li{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;column-gap:24px;padding-bottom:22px;display:grid}.lab .lab-name{font-size:18px;font-weight:600}.lab .lab-line{color:var(--muted);grid-column:1;margin:6px 0 0;font-size:16px;line-height:1.5}.lab a{text-underline-offset:4px;grid-area:1/2/span 2;padding:8px 0;font-size:15px;text-decoration:underline;text-decoration-thickness:1px}.stack{font-family:var(--monof);color:var(--text);margin:0;font-size:14px;line-height:2}.footer{border-top:1px solid var(--line);flex-direction:column;gap:24px;margin-top:96px;padding-top:28px;display:flex}.footer nav{flex-wrap:wrap;gap:8px 28px;font-size:15px;display:flex}.footer nav a{padding:10px 0}.case-head{flex-direction:column;gap:20px;margin-top:48px;display:flex}.back{font-family:var(--monof);color:var(--meta);align-self:flex-start;margin:-8px 0;padding:8px 0;font-size:13px}.case-head h1{letter-spacing:-.022em;margin:0;font-size:46px;font-weight:500;line-height:1.1}.lede{max-width:820px;color:var(--text);text-wrap:pretty;margin:0;font-size:22px;line-height:1.45}.case-meta{flex-wrap:wrap;align-items:baseline;gap:8px 24px;display:flex}.case-meta .mono{color:var(--meta);font-size:13px}.ext{text-underline-offset:4px;padding:8px 0;font-size:15px;text-decoration:underline;text-decoration-thickness:1px}.case-visual{grid-template-columns:300px 300px minmax(0,1fr);align-items:center;column-gap:56px;margin-top:64px;display:grid}.case-visual.mac{grid-template-columns:minmax(0,420px) minmax(0,340px) minmax(0,1fr);align-items:end}.case-phone{background:var(--bezel);width:300px;height:640px;box-shadow:0 0 0 1px var(--bezel-edge);border-radius:50px;padding:6px}.case-phone img{object-fit:cover;border-radius:44px;width:100%;height:100%}.case-mac img{width:100%;height:auto}.live{border-top:1px solid var(--line);flex-direction:column;gap:14px;min-height:1px;padding-top:24px;display:flex}.live .mono{color:var(--meta);font-size:12px;line-height:1.6}.live .big{letter-spacing:-.015em;margin:0;font-size:30px;font-weight:500;line-height:1.2}.live .small{color:var(--text);margin:0;font-size:17px;line-height:1.55}.dots{flex-direction:column;gap:8px;margin-top:10px;display:flex}.dots-row,.dots-axis{grid-template-columns:repeat(24,minmax(0,18px));place-items:center;display:grid}.dots-row{height:26px}.dots-row span{background:var(--ink);border-radius:50%;display:block}.dots-row span.now{outline:1.5px solid var(--ink);outline-offset:3px}.dots-axis{font-family:var(--monof);color:var(--meta);font-size:11px}.case-rows{margin-top:104px}.next{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;margin-top:112px;padding-top:28px;display:flex}.next .mono{color:var(--meta);font-size:13px}.next .to{letter-spacing:-.015em;font-size:30px;font-weight:500}.next:hover .to{text-underline-offset:6px;text-decoration:underline;text-decoration-thickness:1px}.case-footer{margin-top:72px}.case-footer.footer{border-top:0;padding-top:0}.lineage{flex-direction:column;gap:14px;margin:56px 0 0;display:flex}.lineage-frame{border:1px solid var(--line);background:var(--window);border-radius:12px;position:relative;overflow:hidden}.lineage-scroll{overscroll-behavior-x:contain;overflow-x:auto}.lineage-board{aspect-ratio:1240/470;min-width:940px;position:relative}.lineage-board svg{width:100%;height:100%;position:absolute;inset:0}.lineage-board .bg-dots{fill:var(--lg-dot)}.rank{font-family:var(--monof);letter-spacing:.08em;text-transform:uppercase;color:var(--meta);font-size:11px;position:absolute;top:10.6%}.node{border:1px solid var(--lg-stroke);background:var(--lg-node);color:var(--ink);font:12px var(--sans);text-align:left;cursor:pointer;white-space:nowrap;border-radius:7px;align-items:center;gap:8px;padding:0 0 0 10px;display:flex;position:absolute}.node.code{font-family:var(--monof)}.node:hover{border-color:var(--meta)}.node[aria-pressed=true]{border:1.6px solid var(--ink)}.node.stale{color:var(--meta);border-style:dashed}.node .mark{border-radius:2px;flex:none;width:8px;height:8px}.stale-tag{font-family:var(--monof);color:var(--lg-stale);white-space:nowrap;padding-bottom:4px;font-size:10px;position:absolute;transform:translate(-100%,-100%)}.legend{color:var(--muted);gap:24px;font-size:11px;display:flex;position:absolute;bottom:3%;left:2.4%}.legend span{align-items:center;gap:8px;display:inline-flex}.legend i{border-top:2px solid;width:22px;display:inline-block}.legend i.dash{border-top-style:dashed}.panel{border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr);gap:8px 40px;padding:20px 24px 24px;font-size:14px;display:grid}.panel h2{grid-column:1/-1;align-items:baseline;gap:12px;margin:0 0 8px;font-size:18px;font-weight:600;display:flex}.panel h2 .mono{color:var(--meta);font-size:12px;font-weight:400}.panel dl{grid-template-columns:auto minmax(0,1fr);gap:6px 16px;margin:0;display:grid}.panel dt{color:var(--meta)}.panel dd{margin:0}.panel .warn{color:var(--lg-stale)}.panel ul{font-family:var(--monof);flex-wrap:wrap;gap:6px 14px;margin:0;padding:0;font-size:12px;list-style:none;display:flex}.panel .sub{color:var(--meta);margin-bottom:6px;display:block}.caption{font-family:var(--monof);color:var(--meta);font-size:12px;line-height:1.6}.lineage-board,.ag-frame{--lg-dot:#d3d3cc;--lg-stroke:#cfcfc8;--lg-node:#fff;--lg-stale:#8a5a00;--flow-ingest:#2f6fd6;--flow-transform:#c46a12;--flow-serve:#2e8a57;--flow-source:#5b5b55}.panel{--lg-stale:#8a5a00}@media (prefers-color-scheme:dark){.lineage-board,.ag-frame{--lg-dot:#33332f;--lg-stroke:#3c3c37;--lg-node:#232321;--lg-stale:#d9a13a;--flow-ingest:#6f9ff0;--flow-transform:#e0893a;--flow-serve:#52b27c;--flow-source:#a3a39b}.panel{--lg-stale:#d9a13a}}@media (max-width:1040px){.ag-wide{display:none}.ag-tall{max-width:400px;margin:0 auto;display:block}}@media (max-width:1240px){:root{--gutter:48px}.shelf{--obj-h:420px;grid-template-rows:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:56px 48px}.work{grid-row:auto;grid-template-rows:auto auto}.case-visual{grid-template-columns:300px 300px;row-gap:48px}.case-visual .live{grid-column:1/-1;max-width:560px}.case-visual.mac{grid-template-columns:minmax(0,1fr) minmax(0,.8fr)}}@media (max-width:760px){:root{--gutter:20px}.top{height:64px}.brand{font-size:15px}.top nav{gap:4px;font-size:14px}.top nav a{padding:12px 8px}.top nav a:last-child{padding-right:0}.top nav .nav-about{display:none}.home-first{min-height:0;padding-bottom:0}.hero{gap:16px;margin-top:24px}.hero h1{letter-spacing:-.02em;font-size:30px;line-height:1.16}.position{font-size:12px}.shelf{flex-direction:column;gap:56px;margin-top:44px;padding-top:0;display:flex}.work{flex-direction:column;gap:16px;display:flex}.work .label{order:-1;gap:4px}.work .media{align-self:center}.media.phone{border-radius:44px;width:270px;height:575px;padding:5px}.media.phone img{border-radius:38px}.media.mac{aspect-ratio:812/958;width:min(100%,340px);height:auto}.media.canvas{height:260px;align-self:stretch!important}.media.canvas img{width:736px;height:279px;left:-120px}.rows,.build{grid-template-columns:minmax(0,1fr);row-gap:16px;margin-top:88px}.build-lede{font-size:18px}.build .ag-frame{margin:8px -8px 0}.pointer{font-size:15px}.hero-meta{flex-direction:column;align-items:flex-start}.rows>h2:not(:first-child){margin-top:48px}.prose{gap:18px;font-size:18px}.lab li{grid-template-columns:minmax(0,1fr)}.lab a{grid-area:auto/1;justify-self:start}.case-head{gap:16px;margin-top:24px}.case-head h1{font-size:34px}.lede{font-size:19px}.case-visual,.case-visual.mac{flex-direction:column;align-items:center;gap:40px;margin-top:40px;display:flex}.case-phone{border-radius:44px;width:270px;height:576px}.case-phone img{border-radius:38px}.case-visual .live{align-self:stretch}.dots-row,.dots-axis{grid-template-columns:repeat(24,minmax(0,1fr))}.case-rows{margin-top:72px}.next{margin-top:80px}.next .to{font-size:26px}.panel{grid-template-columns:minmax(0,1fr);gap:16px;padding:18px 16px 20px}.lineage{margin-top:40px}}
