:root{--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--sans:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:#fff;min-width:320px;font:400 16px/1.5 var(--sans);-webkit-font-smoothing:antialiased;background:#000;margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible{outline-offset:4px;outline:2px solid #fff}::selection{color:#000;background:#fff}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.view-count{font-variant-numeric:tabular-nums;align-items:center;gap:5px;display:inline-flex}
.q-page{color:#fff;background:#000;min-height:100svh}.q-frame{z-index:51;pointer-events:none;position:fixed;inset:0}.q-frame span{mix-blend-mode:difference;background:#ffffff26;width:1px;position:absolute;top:0;bottom:0}.q-frame span:first-child{left:10px}.q-frame span:nth-child(2){right:10px}.q-frame span:nth-child(3){left:16px}.q-frame span:nth-child(4){right:16px}.q-header{z-index:50;transition:top .35s;position:fixed;top:12px;left:0;right:0}.q-header.is-docked{top:0}.q-header nav{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0006;justify-content:space-between;align-items:center;width:calc(100% - 32px);height:48px;margin:0 auto;padding:0 20px;display:flex;position:relative}.q-header nav:before,.q-header nav:after{content:"";background:#ffffff1a;height:1px;position:absolute;left:0;right:0}.q-header nav:before{top:0}.q-header nav:after{bottom:0}.q-logo{font:500 19px/1 var(--font-display),var(--sans);letter-spacing:-.04em;text-transform:uppercase;align-items:center;gap:9px;display:inline-flex}.q-logo span{color:#000;width:24px;height:24px;font:700 12px/1 var(--mono);background:#fff;border-radius:4px;place-items:center;display:grid;transform:skew(-10deg)}.q-links{align-items:center;gap:48px;display:flex}.q-links a{color:#ffffffb3;align-items:center;gap:9px;font-size:14px;transition:color .3s;display:inline-flex;position:relative}.q-links a svg{opacity:.7;transition:opacity .3s}.q-links a:hover svg{opacity:1}.q-links a:after{content:"";background:#fff;width:0;height:1px;transition:width .3s;position:absolute;bottom:-4px;left:27px}.q-links a:hover{color:#fff}.q-nav-soon{color:#ffffff59;cursor:default;align-items:center;gap:9px;font-size:14px;display:inline-flex}.q-nav-soon small{color:#ffffff73;font:500 10px/1.2 var(--mono);letter-spacing:.04em;text-transform:uppercase;border:1px solid #ffffff1f;border-radius:999px;padding:2px 6px}.q-links a:hover:after{width:calc(100% - 27px)}@property --q-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.star-btn{isolation:isolate;color:#fff;text-transform:uppercase;white-space:nowrap;background:#000;border:1px solid #e2e8f080;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:40px;padding:0 18px;font-size:14px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.star-btn:before{content:"";z-index:-1;border-radius:inherit;background:conic-gradient(from var(--q-angle),transparent 0deg 290deg,#fafafa 335deg,transparent 360deg);-webkit-mask-composite:xor;padding:2px;animation:3s linear infinite q-orbit;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.star-btn:after{content:"";z-index:-2;border-radius:inherit;background:#000;position:absolute;inset:2px}.star-btn:hover{border-color:#e2e8f0}.star-btn--sm{height:32px;padding:0 16px;font-size:12px}.q-btn-light{color:#000;text-transform:uppercase;white-space:nowrap;background:#fff;border:1px solid #ffffff4d;border-radius:999px;justify-content:center;align-items:center;gap:8px;height:40px;padding:0 20px;font-size:14px;font-weight:500;display:inline-flex;position:relative;overflow:hidden}.q-btn-light span{background:linear-gradient(90deg,#0a0a0a00,#737373,#0a0a0a00);height:1px;position:absolute;top:0;left:18px;right:18px}@keyframes q-orbit{to{--q-angle:360deg}}.q-hero{background:#000;flex-direction:column;justify-content:center;min-height:100svh;display:flex;position:relative;overflow:hidden}.q-hero-visual{z-index:0;background:#000;position:absolute;inset:0 16px;overflow:hidden}.hero-figures{width:100%;height:100%;display:block}.q-hero-shade{pointer-events:none;background:linear-gradient(#0003,#0000 50%,#0009),radial-gradient(42% 30% at 50% 46%,#000000a6,#0000 100%);position:absolute;inset:0}.hero-figure-meta{color:#ffffff73;font:500 11px/1 var(--mono);letter-spacing:.02em;font-variant-numeric:tabular-nums;gap:18px;display:flex;position:absolute;bottom:14px;right:20px}.q-hero-content{z-index:10;text-align:center;flex-direction:column;align-items:center;width:100%;margin:0 auto;padding:160px 32px;display:flex;position:relative}.q-hero h1{font:400 clamp(2rem,4.6vw,4.5rem)/.92 var(--font-display),var(--sans);letter-spacing:-.025em;margin:0 0 24px}.q-hero h1 span,.q-hero p span{white-space:nowrap;display:block}.q-fade-text{background:linear-gradient(#fff,#d4d4d8 50%,#71717a);color:#0000;-webkit-background-clip:text;background-clip:text;padding-bottom:.08em}.q-hero p{margin:0 0 40px;font-size:18px;line-height:1.625}.q-actions{justify-content:center;align-items:center;gap:12px;display:flex}.q-marquee{z-index:10;position:absolute;bottom:48px;left:0;right:0}.q-marquee>div{width:calc(100% - 32px);margin:0 auto;overflow:hidden;-webkit-mask:linear-gradient(90deg,#0000,#000 25% 75%,#0000);mask:linear-gradient(90deg,#0000,#000 25% 75%,#0000)}.q-marquee-track{gap:42px;width:max-content;animation:36s linear infinite q-marquee;display:flex}.q-marquee-track a{color:#fff;opacity:.75;height:40px;font:500 28px/1 var(--font-display),var(--sans);letter-spacing:-.04em;white-space:nowrap;align-items:center;transition:opacity .3s;display:flex}.q-marquee-track a:hover{opacity:1}@keyframes q-marquee{to{transform:translateX(calc(-100% / var(--copies) - 42px / var(--copies)))}}.q-rise{animation:1s cubic-bezier(.2,.7,.2,1) both q-rise}.q-rise--2{animation-duration:.7s;animation-delay:.15s}.q-rise--3{animation-duration:.7s;animation-delay:.2s}.q-rise--4{animation-duration:.7s;animation-delay:.5s}@keyframes q-rise{0%{opacity:0;transform:translateY(16px)}}.q-section{padding:128px 56px;position:relative}.q-section-head{grid-template-columns:1.1fr 1fr;align-items:end;gap:48px;display:grid}.q-section-head h2{font:400 48px/.95 var(--font-display),var(--sans);letter-spacing:-1.2px;margin:0}.q-section-head h2 span{display:block}.q-section-head h2 span+span{color:#737373;margin-top:12px}.q-section-head p{color:#737373;max-width:440px;margin:0 0 0 auto;font-size:20px;line-height:1.625}.q-grid{background:radial-gradient(circle at 50% 0,#ffffff0e,#0000 70%),linear-gradient(#0a0a0c,#070708);border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:repeat(2,1fr);margin-top:32px;display:grid;overflow:hidden}.q-card{border-bottom:1px solid #ffffff1f;flex-direction:column;min-height:620px;padding:40px;transition:background .4s;display:flex;position:relative}.q-card:nth-child(odd){border-right:1px solid #ffffff1f}.q-card:nth-last-child(-n+2){border-bottom:0}.q-card:hover{background:#ffffff05}.q-card-visual{flex:1;place-items:center;padding:24px 0 40px;display:grid;position:relative;-webkit-mask:linear-gradient(#000 72%,#0000);mask:linear-gradient(#000 72%,#0000)}.q-card-visual>*{transition:transform .6s cubic-bezier(.2,.7,.2,1)}.q-card:hover .q-card-visual>*{transform:translateY(-6px)}.q-card-text{margin-top:-20px;position:relative}.q-eyebrow--icon{align-items:center;gap:7px;display:inline-flex}.q-eyebrow{color:#ffffff59;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.q-card h3{letter-spacing:-.75px;margin:14px 0 0;font-size:30px;font-weight:500;line-height:1.2}.q-card p{color:#ffffff80;max-width:28rem;margin:12px 0 0;font-size:16px;line-height:1.625}.q-card-open{color:#fff;letter-spacing:.02em;text-transform:uppercase;opacity:.7;align-items:center;gap:8px;margin-top:22px;font-size:13px;font-weight:500;transition:opacity .3s,gap .3s;display:inline-flex}.q-card:hover .q-card-open{opacity:1;gap:12px}.q-card--art{padding:0;overflow:hidden}.q-card--art .q-card-visual{min-height:440px;padding:0;position:static;-webkit-mask:none;mask:none}.q-card--art .q-card-visual>*{transition:none}.q-card--art:hover .q-card-visual>*{transform:none}.q-card--art .q-card-text{z-index:2;margin-top:-110px;padding:0 40px 40px}@keyframes q-blink{50%{opacity:.25}}@media (max-width:1023px){.q-section{padding:96px 24px}.q-section-head{grid-template-columns:1fr;gap:20px}.q-section-head p{margin:0}.q-section-head h2{font-size:37px}}@media (max-width:767px){.q-grid{grid-template-columns:1fr}.q-card{min-height:auto;padding:20px 15px 32px}.q-card:nth-child(odd){border-right:0}.q-card:nth-last-child(2){border-bottom:1px solid #ffffff1f}.q-card h3{font-size:24px}.q-section-head p{font-size:17px}}#projects{padding-bottom:56px}#contact{padding-top:0}.q-footer{color:#ffffff73;border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;gap:24px;margin:0 16px;padding:28px 40px 40px;font-size:13px;display:flex}.q-footer nav{flex-wrap:wrap;gap:28px;display:flex}.q-footer nav a{align-items:center;gap:7px;transition:color .2s;display:inline-flex}.q-footer .q-nav-soon{font-size:13px}.q-footer nav a:hover{color:#fff}@media (max-width:1239px){.q-links{gap:32px}}@media (max-width:1023px){.q-frame span:first-child{left:0}.q-frame span:nth-child(2){right:0}.q-frame span:nth-child(3){left:1px}.q-frame span:nth-child(4){right:1px}.q-header nav,.q-marquee>div{width:calc(100% - 4px)}.q-hero-visual{left:2px;right:2px}.q-links{gap:28px}}@media (max-width:767px){.q-links{display:none}.q-hero-content{padding:112px 16px}.q-hero h1{text-wrap:balance;max-width:22rem;font-size:clamp(2rem,9vw,2.5rem);line-height:.96}.q-hero h1 span,.q-hero p span{white-space:normal;display:inline}.q-hero p{max-width:22rem;margin-bottom:32px;font-size:15px}.q-marquee-track a{font-size:22px}.hero-figure-meta span:last-child{display:none}.q-footer{flex-direction:column;align-items:flex-start;gap:20px;padding:28px 24px 36px}.q-footer nav{gap:12px 22px}}@media (max-width:389px){.q-actions{flex-direction:column}}@media (prefers-reduced-motion:reduce){.q-rise,.q-marquee-track,.star-btn:before{animation:none}}.q-menu-button,.q-mobile-menu{display:none}html.is-menu-open{overflow:hidden}@media (max-width:767px){.q-header nav{height:52px;padding:0 6px 0 14px}.q-header-cta{display:none}.q-logo{min-height:44px}.q-menu-button{color:#fff;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:10px;place-items:center;width:44px;height:44px;display:grid}.q-menu-button:active{background:#ffffff14}.q-mobile-menu:not([hidden]){padding:12px 20px calc(24px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#000000f5;flex-direction:column;gap:28px;animation:.25s both q-menu-in;display:flex;position:fixed;inset:52px 0 0;overflow-y:auto}.q-mobile-links{flex-direction:column;display:flex}.q-mobile-links a{min-height:60px;font:400 26px/1 var(--font-display),var(--sans);letter-spacing:-.02em;border-bottom:1px solid #ffffff14;align-items:center;gap:14px;display:flex}.q-mobile-links a svg{color:#ffffff8c}.q-mobile-links .q-nav-soon{min-height:60px;font:400 26px/1 var(--font-display),var(--sans);letter-spacing:-.02em;border-bottom:1px solid #ffffff14;gap:14px;display:flex}.q-mobile-links .q-nav-soon small{margin-left:auto}.q-mobile-social{grid-template-columns:1fr 1fr;gap:10px;display:grid}.q-mobile-social a{border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:10px;min-height:52px;padding:0 14px;font-size:15px;display:flex}.q-mobile-social a svg:last-child{color:#ffffff73;margin-left:auto}.q-mobile-cta{width:100%;height:52px;margin-top:auto;font-size:15px}.star-btn,.q-btn-light{height:46px}.q-footer nav{grid-template-columns:1fr 1fr;gap:0 16px;width:100%;display:grid}.q-footer nav a,.q-footer .q-nav-soon{min-height:44px}}@keyframes q-menu-in{0%{opacity:0;transform:translateY(-8px)}}@media (prefers-reduced-motion:reduce){.q-mobile-menu{animation:none!important}}
.morrak-art{background:#060606;position:absolute;inset:0;overflow:hidden;container-type:size}.morrak-frame{aspect-ratio:2/3;transform-origin:52% 21%;width:max(100cqw,74cqh);transition:scale 1.8s cubic-bezier(.2,.7,.2,1);position:absolute;top:-6%;left:50%;translate:-50%}.morrak-frame img{object-fit:cover;filter:grayscale()contrast(1.12)brightness(.95);-webkit-user-select:none;user-select:none;width:100%;height:100%;transition:filter 1.1s;display:block}.morrak-art.is-hot .morrak-frame{scale:1.08}.morrak-art.is-hot .morrak-frame img{filter:grayscale(0)contrast(1.05)brightness(1.05)}.morrak-eye{opacity:0;background:#fff1e8;border-radius:50%;width:4px;height:4px;transition:opacity .9s;position:absolute;top:19.4%;transform:translate(-50%,-50%);box-shadow:0 0 4px 2px #ff4a1f,0 0 10px 3px #ff2a0a99}.morrak-eye--left{left:49.3%}.morrak-eye--right{top:20.1%;left:55%}.morrak-fog{pointer-events:none;opacity:.35;will-change:transform;background:radial-gradient(22% 42% at 18% 62%,#d4d4d838,#d4d4d800 70%),radial-gradient(20% 36% at 46% 72%,#d4d4d82e,#d4d4d800 70%),radial-gradient(24% 40% at 76% 58%,#d4d4d833,#d4d4d800 70%);height:50%;transition:opacity 1.2s;animation:14s ease-in-out infinite alternate paused morrak-fog;position:absolute;bottom:-6%;left:-40%;right:-40%}.morrak-fog--back{opacity:.25;height:44%;animation-duration:20s;animation-direction:alternate-reverse;bottom:12%}.morrak-art.is-hot .morrak-fog{opacity:.9;animation-play-state:running}.morrak-art.is-hot .morrak-fog--back{opacity:.6}@keyframes morrak-fog{0%{transform:translate(-10%)}to{transform:translate(10%,-4%)}}.morrak-art.is-hot .morrak-eye{opacity:1;animation:2.4s ease-in-out .8s infinite morrak-flicker}.morrak-art.is-hot .morrak-frame img+.morrak-eye,.morrak-art.is-hot .morrak-eye--right{transition-delay:.25s}@keyframes morrak-flicker{0%,to{opacity:1}45%{opacity:.7}50%{opacity:.95}70%{opacity:.8}}.morrak-shade{background:linear-gradient(#08080a00,#08080ae6 70%,#08080a);height:46%;position:absolute;bottom:0;left:0;right:0}.morrak-art canvas{width:100%;height:100%;position:absolute;inset:0}@media (max-width:767px){.q-card--art .q-card-visual{min-height:470px}.q-card--art .q-card-text{padding:0 15px 32px}}@media (prefers-reduced-motion:reduce){.morrak-frame,.morrak-frame img,.morrak-eye{transition:none}.morrak-art.is-hot .morrak-eye,.morrak-fog{animation:none}}
.godot-art{display:flex;position:absolute;inset:0}.ge-window{color:#c8ccd2;min-height:0;font:500 10px/1.55 var(--mono);filter:grayscale()brightness(.92);background:#15181e;flex-direction:column;flex:1;transition:filter .8s;display:flex;overflow:hidden;container-type:inline-size}.godot-art.is-active .ge-window{filter:none}.ge-top{height:30px;font-family:var(--sans);background:#1d2128;border-bottom:1px solid #00000080;flex:none;align-items:center;gap:10px;padding:0 14px;display:flex}.ge-logo{flex:none;width:16px;height:16px;display:block}.ge-tabs{gap:2px;margin:0 auto;display:flex}.ge-tabs i,.ge-run i{font-style:normal}.ge-tabs i{color:#c8ccd299;border-radius:4px;padding:2px 8px}.ge-tabs i.is-on{color:#e6f0fa;background:#478cbf40}.ge-run{color:#c8ccd2b3;gap:9px;font-size:9px;display:flex}.ge-main{flex:1;min-height:0;display:flex}.ge-script{background:#15181e;flex-direction:column;flex:0 0 52%;min-width:0;display:flex}.ge-file{font-family:var(--sans);background:#1d2128;border-bottom:1px solid #00000080;gap:2px;padding:5px 8px 0;display:flex}.ge-file span{color:#c8ccd280;border-radius:5px 5px 0 0;padding:3px 10px}.ge-file span.is-on{color:#e6e8eb;background:#15181e}.ge-code{flex:1;min-height:0;padding:10px 0;overflow:hidden}.ge-line{border-left:2px solid #0000;animation:.25s both ge-in;display:flex}.ge-line.is-ai{border-left-color:var(--c);background:linear-gradient(90deg,color-mix(in srgb,var(--c) 10%,transparent),transparent 75%)}@keyframes ge-in{0%{background-color:#ffffff10}}.ge-num-col{color:#c8ccd24d;text-align:right;flex:none;width:30px;padding-right:10px}.ge-text{white-space:pre;position:relative}.ge-kw{color:#ff7085}.ge-type{color:#42ffc2}.ge-fn{color:#57b3ff}.ge-str{color:#ffeda1}.ge-num{color:#a1ffe0}.ge-an{color:#ffb373}.ge-cursor{width:0;height:1em;display:inline-block;position:relative}.ge-cursor i{background:var(--c);width:2px;height:1.35em;animation:1s step-end infinite q-blink;position:absolute;top:-1px;left:1px}.ge-cursor b{background:var(--c);color:#0b0b0d;font:600 9px/1.35 var(--sans);white-space:nowrap;border-radius:3px 3px 3px 0;padding:1px 5px;position:absolute;bottom:calc(100% + 3px);left:1px}.ge-viewport{background:radial-gradient(80% 60% at 50% 45%,#ffffff08,#0000 70%),linear-gradient(#ffffff0a 1px,#0000 1px) 0 0/16px 16px,linear-gradient(90deg,#ffffff0a 1px,#0000 1px) 0 0/16px 16px,#1f232b;border-left:1px solid #00000080;flex:1;min-width:0;position:relative}.ge-sprite{transition:opacity .5s,transform .5s cubic-bezier(.2,.7,.2,1);display:block;position:absolute}.ge-sprite img{-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.godot-art.is-active .ge-sprite{opacity:.14;transform:scale(.97)}.godot-art.is-active .ge-sprite.is-placed{opacity:1;transform:none}.ge-sprite:before{content:"";border:1px solid var(--c);opacity:0;background:linear-gradient(var(--c),var(--c)) -1px -1px/5px 5px no-repeat,linear-gradient(var(--c),var(--c)) calc(100% + 1px) -1px/5px 5px no-repeat,linear-gradient(var(--c),var(--c)) -1px calc(100% + 1px)/5px 5px no-repeat,linear-gradient(var(--c),var(--c)) calc(100% + 1px) calc(100% + 1px)/5px 5px no-repeat;transition:opacity .3s;position:absolute;inset:-3px}.ge-sprite b{background:var(--c);color:#0b0b0d;font:600 9px/1.6 var(--sans);opacity:0;border-radius:2px;padding:0 5px;transition:opacity .3s;position:absolute;bottom:calc(100% + 5px);left:-4px}.ge-sprite.is-placed:before{opacity:.25}.ge-sprite.is-current:before,.ge-sprite.is-current b{opacity:1}.ge-toast{color:#c8ccd2;white-space:nowrap;text-overflow:ellipsis;background:#0d0f13d9;border:1px solid #ffffff1a;border-radius:6px;padding:4px 9px;font-size:9.5px;animation:.35s both ge-toast;position:absolute;top:10px;left:10px;right:10px;overflow:hidden}.ge-toast b{font-weight:600}@keyframes ge-toast{0%{opacity:0;transform:translateY(-4px)}}.q-card--godot .q-card-text{width:52%;padding-right:18px}.q-card--godot .ge-script{position:relative}.q-card--godot .ge-script:after{content:"";pointer-events:none;background:linear-gradient(#15181e00,#0d0f13f2 55%,#0b0c10);height:58%;position:absolute;inset:auto 0 0}@container (max-width:520px){.ge-run,.ge-tabs i:not(.is-on){display:none}.ge-code{font-size:8.5px}.ge-num-col{width:22px;padding-right:6px}}@media (max-width:767px){.q-card--godot .q-card-visual{min-height:560px}.q-card--godot .godot-art{inset:0 0 210px}.q-card--godot .ge-main{flex-direction:column-reverse}.q-card--godot .ge-script{flex:0 0 42%}.q-card--godot .ge-script:after{display:none}.q-card--godot .ge-viewport{border-bottom:1px solid #00000080;border-left:0}.q-card--godot .q-card-text{width:auto;margin-top:0}}@media (prefers-reduced-motion:reduce){.ge-window,.ge-sprite{transition:none}.ge-line,.ge-toast,.ge-cursor i{animation:none}}
.geofact-art{filter:grayscale()brightness(.92);transition:filter .8s;display:flex;position:absolute;inset:0}.geofact-art.is-run{filter:none}.gf-cad{background:linear-gradient(#ffffff10 1px,#0000 1px) 0 0/100px 100px,linear-gradient(90deg,#ffffff10 1px,#0000 1px) 0 0/100px 100px,linear-gradient(#ffffff07 1px,#0000 1px) 0 0/20px 20px,linear-gradient(90deg,#ffffff07 1px,#0000 1px) 0 0/20px 20px,#212830;flex-direction:column;flex:0 0 60%;min-width:0;display:flex;position:relative;container-type:inline-size}.gf-cad-tab{height:30px;font:500 10px/1 var(--sans);background:#1a2027;border-bottom:1px solid #00000080;flex:none;gap:2px;padding:6px 10px 0;display:flex}.gf-cad-tab span{color:#e8edf380;border-radius:5px 5px 0 0;padding:6px 10px}.gf-cad-tab span.is-on{color:#e8edf3;background:#212830}.gf-command{z-index:1;color:#e8edf3;font:500 9.5px/1.4 var(--mono);background:#1a2027cc;gap:6px;padding:4px 10px;display:flex;position:absolute;top:30px;left:0;right:0}.gf-command span{color:#e8edf380}.gf-command i{background:#e8edf3;width:6px;height:11px;animation:1s step-end infinite q-blink}.gf-plan{flex:none;width:100%;height:calc(100% - 262px);min-height:200px;padding:62px 8px 0;display:block;overflow:visible}.gf-plan text{font-family:var(--mono);text-anchor:middle}.gf-legend{z-index:1;color:#e8edf3b3;font:500 9px/1.3 var(--sans);flex-wrap:wrap;gap:4px 12px;display:flex;position:absolute;top:54px;left:10px;right:10px}.gf-legend span{white-space:nowrap;align-items:center;gap:5px;display:inline-flex}.gf-legend span:before{content:"";border-top:1.5px solid;width:14px;height:0}.gf-legend--design:before{border-color:#38bdf8}.gf-legend--fact:before{border-color:#4ade80}.gf-legend--cloud:before{border:1.2px solid #f87171;border-radius:50%;width:8px;height:8px}.gf-axes path{fill:none;stroke:#ef444480;stroke-width:.6px;stroke-dasharray:10 3 2 3}.gf-axes circle{fill:#212830;stroke:#e8edf399;stroke-width:.7px}.gf-axes text{fill:#e8edf3;font-size:7.5px}.gf-walls path{fill:#aeb6c0}.gf-walls .gf-door{fill:#212830}.gf-rooms text{fill:#e8edf34d;font:500 7px var(--sans)}.gf-dim{--fc:#4ade80}.gf-dim--warn{--fc:#fbbf24}.gf-dim--bad{--fc:#f87171}.gf-dim-line{fill:none;stroke:#38bdf8;stroke-width:.7px}.gf-design{fill:#e8edf3;font-size:8.5px}.gf-fact{fill:var(--fc);opacity:0;font-size:8.5px;font-weight:700;transition:opacity .2s}.gf-fact tspan{font-size:7px}.gf-points path{fill:none;stroke:#e879f9;stroke-width:1px;opacity:0;transition:opacity .2s}.gf-cloud{fill:none;stroke-width:1px;stroke-dasharray:100;stroke-dashoffset:100px;transition:stroke-dashoffset .2s}.gf-cloud--warn{stroke:#fbbf24}.gf-cloud--bad{stroke:#f87171}.gf-ucs path{fill:none;stroke:#e8edf399;stroke-width:.8px}.gf-ucs text{fill:#e8edf399;font-size:6px}.is-run .gf-fact{opacity:1;transition:opacity .45s ease var(--d)}.is-run .gf-points path{opacity:1;transition:opacity .3s ease var(--d)}.is-run .gf-cloud{stroke-dashoffset:0;transition:stroke-dashoffset 1s ease var(--d)}.gf-panel{color:#e8edf3;min-width:0;font:400 10px/1.4 "Segoe UI",system-ui,var(--sans);background:#0f141b;border-left:1px solid #00000080;flex-direction:column;flex:1;display:flex;container-type:inline-size}.gf-head{border-bottom:1px solid #1e252f;align-items:center;gap:7px;padding:9px 12px;display:flex}.gf-logo{color:#fff;background:#1a84ff;border-radius:3px;place-items:center;width:16px;height:16px;font-size:7px;font-weight:800;display:grid}.gf-head strong{font-size:11px;font-weight:600}.gf-head span{color:#6b7684;font-size:9px}.gf-steps{background:#131922;border-bottom:1px solid #1e252f;grid-template-columns:repeat(4,1fr);padding:10px 6px 8px;display:grid;position:relative}.gf-steps:before{content:"";background:#333b47;height:1px;position:absolute;top:18px;left:12%;right:12%}.gf-step{color:#6b7684;flex-direction:column;align-items:center;gap:4px;font-size:8px;display:flex;position:relative}.gf-step i{color:#6b7684;background:#0f141b;border:1px solid #333b47;border-radius:50%;place-items:center;width:16px;height:16px;font-size:8px;font-style:normal;display:grid}.gf-step.is-done i,.gf-step.is-on i{color:#fff;background:#1a84ff;border-color:#1a84ff}.gf-step.is-on i{box-shadow:0 0 0 3px #1a84ff40}.gf-step.is-on{color:#fff;font-weight:600}.gf-body{flex-direction:column;padding:12px;display:flex}.gf-title{font-size:12px;font-weight:600}.gf-body p{color:#9aa4b2;margin:3px 0 10px;font-size:9.5px}.gf-run{color:#fff;background:#1a84ff;border:1px solid #1a84ff;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:11px;font-weight:700;transition:box-shadow .4s,transform .15s;display:flex}.gf-run b{font-weight:400}.is-run .gf-run{animation:.5s .1s gf-press;box-shadow:0 0 22px -4px #1a84ffaa}@keyframes gf-press{30%{transform:scale(.97)}}.gf-body small{color:#6b7684;text-align:center;margin:6px 0 10px;font-size:8.5px}.gf-coverage{background:#151b23;border:1px solid #333b47;border-radius:5px;padding:8px}.gf-coverage-head{align-items:baseline;gap:6px;display:flex}.gf-coverage-head b{color:#1a84ff;font-variant-numeric:tabular-nums;font-size:15px;font-weight:700}.gf-coverage-head span{color:#9aa4b2;font-variant-numeric:tabular-nums;font-size:9px}.gf-coverage-head em{color:#6b7684;margin-left:auto;font-size:8px;font-style:normal}.gf-bar{background:#333b47;border-radius:2px;height:4px;margin:6px 0 7px;overflow:hidden}.gf-bar i{border-radius:inherit;background:#1a84ff;width:0;height:100%;transition:width .3s;display:block}.is-run .gf-bar i{width:94%;transition:width 2.4s cubic-bezier(.2,.7,.2,1)}.gf-stats{grid-template-columns:repeat(3,1fr);gap:5px;display:grid}.gf-stats div{text-align:center;background:#1e252f;border:1px solid #333b47;border-radius:4px;padding:5px 2px}.gf-stats b{font-variant-numeric:tabular-nums;font-size:11px;font-weight:700;display:block}.gf-stats span{color:#6b7684;white-space:nowrap;font-size:7.5px;display:block}.gf-section{color:#6b7684;letter-spacing:.08em;text-transform:uppercase;margin:12px 0 6px;font-size:8px;font-weight:600}.gf-ghosts{grid-template-columns:1fr 1fr;gap:5px;display:grid}.gf-ghosts span{text-align:center;background:#1e252f;border:1px solid #333b47;border-radius:4px;padding:6px;font-size:9.5px}.gf-foot{border-top:1px solid #1e252f;gap:6px;margin-top:auto;padding:10px 12px;display:flex}.gf-foot span{white-space:nowrap;background:#1e252f;border:1px solid #333b47;border-radius:4px;padding:6px 9px;font-size:9.5px}.gf-foot .gf-next{text-overflow:ellipsis;background:#1a84ff;border-color:#1a84ff;flex:1;font-weight:600;overflow:hidden}@container (max-width:340px){.gf-plan{padding-top:84px}}@container (max-width:230px){.gf-step span,.gf-body p,.gf-body small,.gf-section,.gf-ghosts,.gf-foot span:first-child,.gf-coverage-head em{display:none}.gf-stats span{font-size:6.5px}}.q-card--geofact .q-card-text{width:60%;padding-right:18px}.q-card--geofact .gf-cad:after{content:"";pointer-events:none;background:linear-gradient(#21283000,#0d0f13f2 55%,#0b0c10);height:46%;position:absolute;inset:auto 0 0}@media (max-width:767px){.q-card--geofact .q-card-visual{min-height:0;margin:-20px -15px 0}.q-card--geofact .geofact-art{flex-direction:column;width:100%;height:690px;position:relative;inset:auto;overflow:hidden}.q-card--geofact .gf-cad{flex:0 0 300px}.q-card--geofact .gf-plan{flex:1;height:auto;min-height:0;padding-top:58px}.q-card--geofact .gf-panel{overflow:hidden}.q-card--geofact .gf-body>p,.q-card--geofact .gf-body>small,.q-card--geofact .gf-cad:after{display:none}.q-card--geofact .gf-panel{border-top:1px solid #00000080;border-left:0}.q-card--geofact .q-card-text{width:auto;margin-top:0;padding-top:24px}}@media (prefers-reduced-motion:reduce){.geofact-art,.gf-fact,.gf-points path,.gf-cloud,.gf-bar i{transition:none!important}.gf-command i,.is-run .gf-run{animation:none}}
.xtrainix-art{filter:grayscale()brightness(.92);background:radial-gradient(50% 45% at 78% 42%,#c2fa4c1f,#0000 70%),radial-gradient(circle at 14% 18%,#c2fa4c17,#0000 34%);transition:filter .8s;position:absolute;inset:0;overflow:hidden;container-type:size}.xtrainix-art.is-live{filter:none}.xtrainix-art:before{content:"";pointer-events:none;background:radial-gradient(70% 55% at 10% 100%,#0b0c10f2,#0b0c10b3 45%,#0b0c1000 75%);position:absolute;inset:0}.xt-threads{z-index:2;pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.xt-threads path{fill:none;stroke-linecap:round}.xt-thread{stroke:#c2fa4c;stroke-width:1px;opacity:.28;stroke-dasharray:2 7}.xt-sync .xt-thread{opacity:.5;stroke-dasharray:none}.xt-spark{stroke:#e9ffb8;stroke-width:2px;stroke-dasharray:6 94;stroke-dashoffset:6px;opacity:0;filter:drop-shadow(0 0 3px #c2fa4c)}.xtrainix-art.is-live .xt-thread{opacity:.5;animation:1.6s linear infinite xt-flow}.xtrainix-art.is-live .xt-spark{opacity:1;animation:2.4s linear infinite xt-spark}@keyframes xt-flow{to{stroke-dashoffset:-18px}}@keyframes xt-spark{to{stroke-dashoffset:-94px}}.xp-pulse{fill:none;stroke:#c2fa4c;stroke-width:3px;stroke-linecap:round;stroke-dasharray:14 100;stroke-dashoffset:14px;opacity:0;filter:drop-shadow(0 0 4px #c2fa4c)}.xp-pulse.is-on{opacity:1;animation:.7s ease-in forwards xp-run}@keyframes xp-run{to{stroke-dashoffset:-100px}}.xp-phone{z-index:2;aspect-ratio:430/880;filter:drop-shadow(0 40px 40px #000);width:min(44cqw,45cqh);position:absolute;top:6%;left:49%;rotate:-5deg}.xp-frame{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.xp-screen{color:#fcfcfc;width:86.05%;height:95.45%;font-family:var(--sans);background:radial-gradient(100% 45% at 15% 0,#26360f,#0000 70%),#0b0a0a;border-radius:14%/6.2%;position:absolute;top:2.27%;left:6.98%;overflow:hidden;container-type:inline-size}.xp-screen svg{width:100%;height:100%;display:block}.xp-status{z-index:3;justify-content:space-between;align-items:center;height:12cqw;padding:1cqw 7.5cqw 0;display:flex;position:absolute;top:0;left:0;right:0}.xp-status b{font-size:4.2cqw;font-weight:600}.xp-status-icons{color:#fcfcfc;align-items:center;gap:1.4cqw;display:flex}.xp-status-icons svg{fill:currentColor;width:auto;height:3.2cqw}.xp-view{padding:14cqw 4.5cqw 0;transition:transform .55s cubic-bezier(.2,.7,.2,1),opacity .45s;position:absolute;inset:0}.xp-home.is-out{opacity:0;transform:translate(-30%)}.xp-tracker{background:#0b0a0a;transform:translate(100%)}.xp-tracker.is-in{transform:none}.xp-greet{grid-template-columns:1fr auto auto;align-items:center;gap:2cqw;display:grid}.xp-greet b{white-space:nowrap;font-size:4.9cqw;font-weight:700;display:block}.xp-greet em{color:#c2fa4c;font-style:normal}.xp-greet small{color:#c2fa4c;margin-top:1.4cqw;font-size:3.4cqw;display:block}.xp-bell{background:#1a1a1a;border:1px solid #ffffff14;border-radius:50%;width:10cqw;height:10cqw;padding:2.4cqw;position:relative}.xp-bell i{background:#c2fa4c;border-radius:50%;width:1.8cqw;height:1.8cqw;position:absolute;top:2cqw;right:2.4cqw}.xp-avatar{background:#141414;border:.6cqw solid #c2fa4c;border-radius:50%;place-items:center;width:11.5cqw;height:11.5cqw;font-size:4.6cqw;font-weight:700;display:grid}.xp-week{text-align:center;grid-template-columns:repeat(7,1fr);margin-top:6cqw;font-size:4.4cqw;font-weight:500;display:grid}.xp-week span{border-radius:99px;padding:2cqw 0}.xp-week small{color:#a5a3a4;font-size:3.4cqw;display:block}.xp-week .is-on{color:#0b0a0a;background:#c2fa4c}.xp-week .is-on small{color:#0b0a0a}.xp-section{margin-top:7cqw;font-size:4.4cqw;font-weight:600;display:block}.xp-today{text-align:center;background:linear-gradient(160deg,#28361a,#161616 58%);border:1px solid #ffffff14;border-radius:7cqw;flex-direction:column;align-items:center;margin-top:3.4cqw;padding:5.5cqw 5cqw 5cqw;display:flex;position:relative;overflow:hidden}.xp-today-icon{color:#c2fa4c;border:1px solid #c2fa4c55;border-radius:50%;width:12cqw;height:12cqw;padding:2.8cqw}.xp-today>b{margin-top:4cqw;font-size:5.4cqw;font-weight:800;line-height:1.15;position:relative}.xp-today>small{color:#a5a3a4;margin-top:2cqw;font-size:3.5cqw;position:relative}.xp-cta{z-index:1;color:#0b0a0a;background:linear-gradient(90deg,#b4e65a,#7cb300);border:1px solid #d8ff8a;border-radius:99px;align-items:center;gap:2.4cqw;margin-top:4.5cqw;padding:3.6cqw 6.5cqw;font-size:4.8cqw;font-weight:800;transition:transform .2s,box-shadow .3s;display:inline-flex;position:relative}.xp-cta svg{width:4cqw;height:4cqw}.xp-cta.is-pressed{transform:scale(.96);box-shadow:0 0 28px -2px #c2fa4c}.xp-link{z-index:1;color:#a5a3a4;align-items:center;gap:1.4cqw;margin-top:3cqw;font-size:3.6cqw;display:inline-flex;position:relative}.xp-link svg{width:3.4cqw;height:3.4cqw}.xp-arcs{position:absolute;inset:0}.xp-arcs path{fill:none;stroke:#c2fa4c;stroke-width:1.4px;opacity:.65;vector-effect:non-scaling-stroke}.xp-nav{background:#1c1c1ee6;border:1px solid #ffffff14;border-radius:99px;justify-content:space-around;align-items:center;height:19cqw;display:flex;position:absolute;bottom:3.5cqw;left:3.5cqw;right:3.5cqw}.xp-nav span{color:#a5a3a4;flex-direction:column;align-items:center;gap:.8cqw;display:flex}.xp-nav span svg{width:6cqw;height:6cqw}.xp-nav small{font-size:2.8cqw}.xp-nav .is-on{color:#c2fa4c}.xp-nav .xp-nav-plus{color:#0b0a0a;background:#c2fa4c;border-radius:50%;width:13cqw;height:13cqw;padding:3cqw}.xp-tracker{background:radial-gradient(100% 40% at 15% 0,#2a3a10,#0000 70%),#0b0a0a}.xp-bar{justify-content:space-between;align-items:center;display:flex}.xp-bar span{color:#fcfcfc;background:#ffffff08;border:1px solid #ffffff26;border-radius:50%;width:9.8cqw;height:9.8cqw;padding:2.6cqw}.xp-ex-title{letter-spacing:-.01em;margin-top:3.6cqw;font-size:5.8cqw;font-weight:900;display:block}.xp-ex-muscle{color:#a5a3a4;margin-top:.6cqw;font-size:3.1cqw;display:block}.xp-dials{border-radius:6cqw;grid-template-columns:1fr 1fr;margin-top:4.4cqw;display:grid;overflow:hidden}.xp-dial{text-align:center;flex-direction:column;align-items:center;padding:5cqw 3.4cqw 4.4cqw;display:flex}.xp-dial--weight{background:linear-gradient(160deg,#126044,#0b3a2b)}.xp-dial--reps{background:linear-gradient(160deg,#43621a,#2c4111);border-left:1px solid #ffffff26}.xp-dial small{color:#ffffffb3;font-size:3cqw}.xp-dial b{font-variant-numeric:tabular-nums;margin:2cqw 0 1cqw;font-size:9.6cqw;font-weight:800;line-height:1}.xp-step{border:1px solid #ffffff2e;border-radius:99px;grid-template-columns:1fr 1fr;width:100%;height:9.4cqw;margin-top:4cqw;display:grid}.xp-step i{place-items:center;font-size:5cqw;font-style:normal;transition:background .2s;display:grid}.xp-step i+i{border-left:1px solid #ffffff26}.xp-step i.is-pressed{background:#ffffff26;border-radius:0 99px 99px 0}.xp-sets-head{justify-content:space-between;align-items:center;margin-top:6cqw;display:flex}.xp-sets-head b{font-size:4.6cqw;font-weight:800}.xp-sets-head em{color:#c2fa4c;margin-left:1cqw;font-style:normal}.xp-sets-head span{color:#d4d4d4;border:1px solid #ffffff26;border-radius:99px;align-items:center;gap:1.4cqw;padding:1.8cqw 3cqw;font-size:3.1cqw;display:flex}.xp-sets-head span svg{width:3.6cqw;height:3.6cqw}.xp-set-row{background:#1c1c1c;border-radius:6cqw;grid-template-columns:17cqw 1fr 1fr;align-items:center;height:23cqw;margin-top:3.4cqw;display:grid}.xp-set-row i{color:#0b0a0a;background:#c2fa4c;border-radius:50%;place-items:center;width:10.6cqw;height:10.6cqw;margin-left:3.6cqw;font-size:4cqw;font-style:normal;font-weight:800;display:grid}.xp-set-row span{color:#a5a3a4;text-align:center;border-left:1px solid #ffffff12;font-size:3cqw}.xp-set-row b{font-size:5.6cqw;font-weight:800}.xp-set-row .is-weight{color:#19d29a}.xp-set-row .is-reps{color:#c2fa4c}.xp-set-row--new{opacity:0;height:auto;max-height:0;margin-top:0;transition:max-height .45s,margin .45s,opacity .35s .1s;overflow:hidden}.xp-set-row--new.is-on{opacity:1;height:23cqw;max-height:23cqw;margin-top:3.4cqw}.xp-add-set{border:1.5px dashed #fff3;border-radius:6cqw;justify-content:center;align-items:center;gap:3cqw;height:18cqw;margin-top:3cqw;font-size:4cqw;font-weight:600;transition:background .2s;display:flex}.xp-add-set svg{color:#c2fa4c;width:5cqw;height:5cqw}.xp-add-set.is-pressed{background:#c2fa4c1f}.xp-rest{border:.8cqw solid #c2fa4c;border-radius:7cqw;grid-template-columns:1fr auto auto auto;align-items:center;gap:2.6cqw;height:37cqw;margin-top:6cqw;padding:0 4cqw 0 6cqw;transition:box-shadow .4s;display:grid}.xp-rest>b{font-variant-numeric:tabular-nums;font-size:5.8cqw;font-weight:500}.xp-rest-play,.xp-rest-reset{border-radius:50%;width:14cqw;height:14cqw;padding:4cqw}.xp-rest-play{color:#0b0a0a;background:#c2fa4c;box-shadow:0 0 18px -6px #c2fa4c}.xp-rest-reset{color:#a5a3a4;background:#1a1a1a;border:1px solid #ffffff14}.xp-rest-min{text-align:center;flex-direction:column;gap:1.2cqw;display:flex}.xp-rest-min b{color:#c2fa4c;background:#26350f;border-radius:3cqw;padding:1.6cqw 6cqw;font-size:5.4cqw;font-weight:800}.xp-rest-min small{color:#a5a3a4;background:#1f1f1f;border-radius:3cqw;padding:2cqw 4cqw;font-size:3.4cqw}.xp-rest.is-running{box-shadow:0 0 30px -8px #c2fa4c}.xp-pager{justify-content:center;gap:1.4cqw;margin-top:3.4cqw;display:flex}.xp-pager i{background:#fff3;border-radius:99px;width:1.4cqw;height:1.4cqw}.xp-pager i.is-on{background:#c2fa4c;width:5cqw}.xw-watch{z-index:3;aspect-ratio:194/250;filter:drop-shadow(0 30px 30px #000);width:min(21cqw,30cqh);position:absolute;top:18%;left:19%;rotate:6deg}.xw-case{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.xw-screen{color:#fff;width:70.1%;height:82.4%;font-family:-apple-system,"SF Pro Rounded",var(--sans);background:#000;border-radius:23.5%/15.5%;position:absolute;top:8.8%;left:13.4%;overflow:hidden;container-type:inline-size}.xw-view{opacity:0;flex-direction:column;padding:13cqw 9cqw 9cqw;transition:opacity .4s,transform .5s cubic-bezier(.2,.7,.2,1);display:flex;position:absolute;inset:0;transform:translateY(8%)}.xw-view.is-in{opacity:1;transform:none}.xw-view.is-out{opacity:0;transform:translateY(-8%)}.xw-idle{opacity:1;justify-content:center;align-items:center;gap:5cqw;transform:none}.xw-idle img{filter:drop-shadow(0 0 10px #b7ff3c66);width:34cqw;height:auto}.xw-idle b{font-size:11cqw;font-weight:700}.xw-title{white-space:nowrap;font-size:10.5cqw;font-weight:700;line-height:1.1}.xw-sub{color:#fff9;white-space:nowrap;margin-top:1.5cqw;font-size:7cqw}.xw-stepper{grid-template-columns:auto 1fr auto;align-items:center;gap:3cqw;margin-top:4.5cqw;display:grid}.xw-stepper i{background:#ffffff24;border-radius:50%;place-items:center;width:17cqw;height:17cqw;font-size:11cqw;font-style:normal;font-weight:700;line-height:1;transition:background .2s,transform .2s;display:grid}.xw-stepper i.is-pressed{background:#fff5;transform:scale(.9)}.xw-stepper span{flex-direction:column;align-items:center;line-height:1;display:flex}.xw-stepper b{font-variant-numeric:tabular-nums;font-size:16cqw;font-weight:700}.xw-stepper small{color:#fff9;margin-top:1cqw;font-size:6.5cqw}.xw-log{color:#000;background:#b7ff3c;border-radius:99px;place-items:center;height:16cqw;margin-top:5cqw;font-size:8.5cqw;font-weight:700;transition:transform .2s,box-shadow .3s;display:grid}.xw-log.is-pressed{transform:scale(.93);box-shadow:0 0 22px -2px #b7ff3c}.xw-rest{justify-content:center;align-items:center}.xw-rest>b{color:#b7ff3c;font-variant-numeric:tabular-nums;text-shadow:0 0 24px #b7ff3c55;font-size:30cqw;font-weight:700;line-height:1}.xw-rest>small{color:#fff9;margin-top:2cqw;font-size:7.5cqw}.xw-controls{grid-template-columns:1fr 1fr;gap:4cqw;width:100%;margin-top:8cqw;display:grid}.xw-controls span{background:#ffffff1f;border-radius:6cqw;flex-direction:column;align-items:center;gap:1cqw;padding:3.5cqw 0;font-size:6.5cqw;font-weight:600;display:flex}.xw-controls span.is-accent{color:#b7ff3c;background:#b7ff3c2e}.xw-controls svg{width:8cqw;height:8cqw}.xg-gear{pointer-events:none;position:absolute;inset:0}.xg-item{transform:translate(0,0) rotate(var(--r,0deg));transition:transform 1.4s cubic-bezier(.2,.7,.2,1);display:block;position:absolute}.xg-item img{filter:drop-shadow(0 18px 24px #000c);width:100%;height:auto;display:block}.xtrainix-art.is-live .xg-item{transform:translate(var(--mx,0),var(--my,0)) rotate(calc(var(--r,0deg) + var(--rr,0deg)))}.xtrainix-art.is-live .xg-item img{animation:xg-bob var(--t,5s) ease-in-out infinite alternate}@keyframes xg-bob{to{translate:0 -4%;rotate:4deg}}.xg-item--plate{z-index:1;--r:-14deg;--mx:-2cqw;--my:-1.5cqw;--rr:-10deg;--t:6s;width:21cqw;top:3%;left:-4%}.xg-item--basketball{z-index:4;--mx:-1cqw;--my:1cqw;--rr:20deg;--t:5.2s;width:13cqw;top:2%;right:1%}.xg-item--gloves{z-index:1;--r:10deg;--my:-1cqw;--rr:-8deg;--t:4.6s;width:12cqw;top:1%;left:33%}.xg-item--kettlebell{z-index:4;--r:8deg;--mx:-1cqw;--my:1.5cqw;--rr:6deg;--t:5.6s;width:13cqw;top:62%;right:2%}.xg-item--sneakers{z-index:1;--r:-10deg;--mx:-2cqw;--rr:-6deg;--t:6.4s;width:13cqw;top:48%;left:3%}.xg-item--tennis{z-index:4;--mx:1cqw;--my:2cqw;--rr:40deg;--t:4.2s;width:8cqw;top:84%;right:2%}.q-card--xtrainix .q-card-text{width:46%;padding-right:12px}@media (max-width:767px){.q-card--xtrainix .q-card-visual{min-height:470px}.q-card--xtrainix .xtrainix-art{inset:0 0 170px}.q-card--xtrainix .xtrainix-art:before{display:none}.q-card--xtrainix .xp-phone{width:min(48cqw,48cqh);left:auto;right:4%}.q-card--xtrainix .xw-watch{width:min(28cqw,30cqh);top:16%;left:8%}.q-card--xtrainix .xg-item--basketball{width:15cqw;top:1%;right:2%}.q-card--xtrainix .xg-item--gloves,.q-card--xtrainix .xg-item--sneakers,.q-card--xtrainix .xg-item--tennis{display:none}.q-card--xtrainix .q-card-text{width:auto;margin-top:0}}@media (prefers-reduced-motion:reduce){.xtrainix-art,.xp-view,.xp-cta,.xp-step i,.xp-set-row--new,.xp-add-set,.xp-rest{transition:none!important}.xp-pulse.is-on,.xg-item img,.xt-thread,.xt-spark{animation:none!important}.xg-item,.xw-view,.xw-log,.xw-stepper i{transition:none!important}}
.q-grid>*{min-width:0}.q-grid--terminal{padding:40px;display:block}.t-window{height:min(560px,72vh);font:500 14px/1.65 var(--mono);color:#e4e4e7;cursor:text;background:linear-gradient(#111114,#09090b);border:1px solid #ffffff1a;border-radius:12px;flex-direction:column;display:flex;overflow:hidden;box-shadow:0 50px 100px -40px #000,inset 0 1px #ffffff0d}.t-bar{border-bottom:1px solid #ffffff12;align-items:center;gap:7px;padding:13px 16px;display:flex}.t-bar i{background:#ffffff1f;border-radius:50%;width:11px;height:11px}.t-bar{position:relative}.t-bar>span{color:#ffffff59;margin:0 auto;padding-right:52px;font-size:12px}.t-bar-actions{gap:6px;display:flex;position:absolute;top:50%;right:10px;translate:0 -50%}.t-quit{color:#fffc;height:28px;font:500 12px/1 var(--mono);cursor:pointer;background:#ffffff0a;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:5px;padding:0 11px;transition:background .2s,border-color .2s;display:inline-flex}.t-quit:hover{background:#ffffff14;border-color:#ffffff59}.t-quit[aria-pressed=true]{color:#fff;border-color:#ffffff59}.t-body{scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex:1;min-height:0;padding:20px 22px;overflow-y:auto}.t-entry{margin-bottom:14px;animation:.3s both t-in}@keyframes t-in{0%{opacity:0;transform:translateY(4px)}}.t-line{align-items:baseline;gap:12px;display:flex}.t-prompt{color:#ffffff59;flex:none}.t-output{margin-top:6px;padding-left:2px}.t-output p{margin:0}.t-welcome p+p{margin-top:4px}.t-dim{color:#ffffff80}.t-output b{color:#fff;font-weight:600}.t-error{color:#fca5a5}.t-row{align-items:center;gap:14px;padding:6px 0;display:flex}.t-key{color:#ffffff59;flex:none;width:84px}.t-row a:not(.t-chip){color:#fff;text-underline-offset:4px;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40;transition:text-decoration-color .2s}.t-row a:not(.t-chip):hover{text-decoration-color:#fff}.t-chip{color:#ffffffa6;font:inherit;cursor:pointer;background:#ffffff08;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:5px;padding:2px 10px;font-size:12px;transition:background .2s,color .2s;display:inline-flex}.t-chip:hover{color:#fff;background:#ffffff1a}.t-help{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:2px 24px;display:grid}.t-help button{color:#ffffff80;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;gap:14px;padding:4px 0;display:flex}.t-help button span{color:#fff;flex:none;align-items:center;gap:7px;width:104px;display:inline-flex}.t-help button span svg{color:#ffffff73}.t-help button:hover span{text-underline-offset:4px;text-decoration:underline}.t-input input{color:#fff;min-width:0;font:inherit;caret-color:#fff;background:0 0;border:0;outline:0;flex:1;padding:0}.t-input input::placeholder{color:#ffffff26}.t-window:focus-within{border-color:#fff3}.t-suggest{color:#ffffff59;border-top:1px solid #ffffff12;flex-wrap:wrap;align-items:center;gap:8px;padding:14px 22px;font-size:12px;display:flex}.t-suggest button{color:#ffffffbf;height:30px;font:inherit;cursor:pointer;background:0 0;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:6px;padding:0 13px;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.t-suggest button:hover:not(:disabled){color:#fff;background:#ffffff0d;border-color:#ffffff59}.t-suggest button:disabled{opacity:.5;cursor:default}.t-psst{grid-column:1/-1;margin:10px 0 0!important}.t-game{width:100%;min-height:0;color:inherit;font:inherit;text-align:left;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:0;flex:1;padding:0;display:block}.t-game canvas{width:100%;height:100%;display:block}.t-game:focus,.t-game:focus-visible{outline:none}.t-suggest[hidden]{display:none}@media (max-width:767px){.q-grid--terminal{padding:12px}.t-window{height:min(520px,78vh);font-size:13px}.t-body{padding:16px 14px}.t-prompt{font-size:11px}.t-key{width:68px}.t-row{flex-wrap:wrap;gap:6px 12px}.t-suggest{padding:12px 14px}.t-bar>span{padding-right:0;font-size:11px}}@media (prefers-reduced-motion:reduce){.t-entry{animation:none}}@media (max-width:767px){.t-suggest button{height:40px;padding:0 14px}.t-chip{min-height:32px;padding:4px 12px}.t-bar-actions{right:8px}.t-quit{height:36px}.t-quit-label{display:none}.t-quit[aria-pressed]{justify-content:center;width:36px;padding:0}.t-bar>span{text-align:left;text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:6px;padding-right:0;overflow:hidden}.t-input input{min-height:40px;font-size:16px}.t-bar.is-playing>span{padding-right:140px}}#contact{scroll-margin-top:64px}
.q-page-hero{isolation:isolate;flex-direction:column;align-items:flex-start;padding:176px 56px 72px;display:flex;position:relative;overflow:hidden}.q-page-hero-visual{z-index:-1;pointer-events:none;position:absolute;inset:0 16px 0 30%}.q-page-hero-visual .hero-figures,.q-page-hero-visual .hero-backdrop{opacity:0;width:100%;height:100%;animation:1.6s cubic-bezier(.2,.7,.2,1) .2s forwards q-figure-in;display:block}.q-page-hero-visual--rain{left:16px}.q-page-hero-visual--rain .q-page-hero-shade{background:linear-gradient(90deg,#0009,#0000 55%),linear-gradient(#000000b3,#0000 25% 70%,#000)}.q-page-hero-shade{background:linear-gradient(90deg,#000 0,#000000b3 22%,#0000 55%),linear-gradient(#00000080,#0000 30% 70%,#000);position:absolute;inset:0}@keyframes q-figure-in{to{opacity:1}}.q-page-hero--full{justify-content:center;min-height:calc(100svh - 100px)}.q-crumbs{color:#ffffff59;font:500 12px/1.4 var(--mono);flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:40px;display:flex}.q-crumbs>span{align-items:center;gap:10px;display:inline-flex}.q-crumbs i{color:#ffffff2e;font-style:normal}.q-crumbs a{transition:color .2s}.q-crumbs a:hover{color:#fff}.q-crumbs [aria-current]{color:#ffffffb3}.q-page-hero h1{max-width:18ch;font:400 clamp(2.75rem,6.4vw,5.75rem)/.95 var(--font-display),var(--sans);letter-spacing:-.03em;text-wrap:balance;margin:18px 0 0}.q-page-hero h1 span{display:block}.q-page-lead{color:#a1a1aa;max-width:36rem;margin:28px 0 0;font-size:19px;line-height:1.6}.q-page-meta{color:#ffffff73;font:500 12px/1.3 var(--mono);text-transform:uppercase;letter-spacing:.06em;gap:20px;margin-top:28px;display:flex}.q-page-hero .q-actions{justify-content:flex-start;margin-top:40px}.q-section--tight{padding-top:0}.q-showcase-wrap+.q-section--tight{padding-top:120px}.q-section--tight .q-grid{margin-top:32px}.q-showcase-wrap{padding:0 56px}.q-showcase.q-card{background:radial-gradient(circle at 50% 0,#ffffff0e,#0000 70%),linear-gradient(#0a0a0c,#070708);border:1px solid #ffffff1f;border-radius:8px;min-height:min(720px,82svh)}.q-showcase .q-card-text{max-width:34rem}.q-showcase h2{letter-spacing:-.02em;text-wrap:balance;margin:14px 0 0;font-size:clamp(22px,2.2vw,30px);font-weight:500;line-height:1.25}.q-showcase-hint{color:#ffffff73;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;justify-content:flex-end;align-items:center;gap:8px;margin-bottom:14px;display:flex}.q-showcase-hint svg{color:#fff;animation:1.6s ease-in-out infinite q-blink}.q-card--xtrainix.q-showcase .q-card-text{width:44%}.q-project-story{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8%;padding:120px 56px 0;display:grid}.q-project-story-sections{max-width:720px}.q-project-story-sections section{border-top:1px solid #ffffff26;padding:28px 0 32px;scroll-margin-top:96px}.q-project-story-sections h3{color:#fff;letter-spacing:-.02em;margin:0 0 18px;font-size:22px;font-weight:500}.q-project-story-sections p,.q-project-story-sections li{color:#a1a1aa;font-size:17px;line-height:1.7}.q-project-story-sections p{margin:0 0 16px}.q-project-story-sections p:last-child{margin-bottom:0}.q-project-story-sections ul{margin:0;padding-left:22px}.q-project-story-sections li+li{margin-top:10px}.q-story-toc{align-self:start;position:sticky;top:110px}.q-story-toc h2{font:400 clamp(32px,3.6vw,52px)/1.05 var(--font-display),var(--sans);letter-spacing:-.03em;margin:0 0 36px}.q-story-toc ol{border-left:1px solid #ffffff1f;margin:0;padding:0 0 0 20px;list-style:none;position:relative}.q-story-toc ol:before{content:"";width:1px;height:44px;transform:translateY(calc(var(--q-active,0) * 44px));background:#fff;transition:transform .45s cubic-bezier(.2,.7,.2,1);position:absolute;top:0;left:-1px}.q-story-toc a{color:#fff6;align-items:center;height:44px;font-size:15px;transition:color .25s;display:flex}.q-story-toc a:hover{color:#ffffffb3}.q-story-toc a[aria-current]{color:#fff}.q-project-story-sections ul.q-checklist{padding:0;list-style:none}.q-check{grid-template-columns:22px minmax(0,1fr);align-items:start;gap:12px;display:grid}.q-check svg{margin-top:6px}.q-check.is-done svg{color:#fff}.q-check.is-wip{color:#ffffff73}.q-check.is-wip svg{color:#ffffff59}.q-check small{color:#ffffff59;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.q-pager+.q-section--tight{padding-top:120px}.q-page-hero--aside{grid-template-columns:minmax(0,1fr) minmax(320px,400px);align-items:start;column-gap:64px;display:grid}.q-page-hero--aside>*{grid-column:1}.q-page-hero--aside .q-page-hero-aside{grid-area:1/2/span 7;align-self:end}.q-passport{-webkit-backdrop-filter:blur(10px)saturate(.8);backdrop-filter:blur(10px)saturate(.8);background:radial-gradient(circle at 50% 0,#ffffff0e,#0000 70%),#0a0a0cd9;border:1px solid #ffffff1f;border-radius:8px;margin:0}.q-passport>div{border-top:1px solid #ffffff14;grid-template-columns:96px minmax(0,1fr);gap:16px;padding:14px 20px;display:grid}.q-passport>div:first-child{border-top:0}.q-passport dt{color:#ffffff59;font:500 11px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;padding-top:3px}.q-passport dd{color:#ffffffd9;margin:0;font-size:14px;line-height:1.5}.q-passport-status{padding-block:18px!important}.q-passport-status dd{color:#fff;align-items:center;gap:10px;font-weight:500;display:flex}.q-pulse{background:#fff;border-radius:50%;flex:none;width:7px;height:7px;position:relative}.q-pulse:after{content:"";border:1px solid #fff;border-radius:50%;animation:2s cubic-bezier(.2,.7,.2,1) infinite q-pulse;position:absolute;inset:-4px}@keyframes q-pulse{0%{opacity:.8;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}.q-passport-stack ul{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.q-passport-stack li{color:#fffc;white-space:nowrap;border:1px solid #ffffff26;border-radius:999px;padding:3px 9px;font-size:12.5px;line-height:1.5}.q-section--stages{padding-top:120px;padding-bottom:0}.q-stages{margin-top:40px}.q-stage-rail{--q-col:calc(100% / var(--q-stages));grid-template-columns:repeat(var(--q-stages),minmax(0,1fr));margin:0;padding:0;list-style:none;display:grid;position:relative}.q-stage-rail:before,.q-stage-rail:after{content:"";pointer-events:none;height:1px;position:absolute;top:7px;left:7px}.q-stage-rail:before{right:calc(var(--q-col) - 7px);background:repeating-linear-gradient(90deg,#ffffff40 0 4px,#0000 4px 8px)}.q-stage-rail:after{width:calc(var(--q-col) * var(--q-lit));transform-origin:0;background:#fff;animation:1.2s cubic-bezier(.2,.7,.2,1) .3s both q-rail}@keyframes q-rail{0%{transform:scaleX(0)}}.q-stage{color:#ffffff80;text-align:left;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:10px;width:100%;padding:0 16px 24px 0;transition:color .25s;display:flex;position:relative}.q-stage:hover{color:#fffc}.q-stage[aria-pressed=true]{color:#fff}.q-stage-dot{z-index:1;background:#000;border:1px solid #ffffff59;border-radius:50%;width:15px;height:15px;margin-bottom:12px;transition:transform .3s cubic-bezier(.2,.7,.2,1),border-color .25s;position:relative}.q-stage.is-done .q-stage-dot{background:#fff;border-color:#fff;box-shadow:inset 0 0 0 4px #000}.q-stage.is-current .q-stage-dot{background:#fff;border-color:#fff}.q-stage.is-current .q-stage-dot:after{content:"";border:1px solid #fff;border-radius:50%;animation:2s cubic-bezier(.2,.7,.2,1) infinite q-pulse;position:absolute;inset:-5px}.q-stage[aria-pressed=true] .q-stage-dot{transform:scale(1.25)}.q-stage-state{color:#ffffff59;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}.q-stage.is-current .q-stage-state{color:#ffffffb3}.q-stage-label{font:400 clamp(19px,1.8vw,24px)/1.15 var(--font-display),var(--sans);letter-spacing:-.02em;text-wrap:balance}.q-stage-panel{background:radial-gradient(circle at 0 0,#ffffff0c,#0000 60%),linear-gradient(#0a0a0c,#070708);border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:32px;min-height:180px;margin-top:16px;padding:32px 36px;display:grid}.q-stage-panel-body{max-width:44rem;animation:.5s cubic-bezier(.2,.7,.2,1) both q-stage-in}@keyframes q-stage-in{0%{opacity:0;filter:blur(6px);transform:translateY(8px)}}.q-stage-tag{color:#ffffff73;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;display:inline-flex}.q-stage-tag.is-current{color:#fff}.q-stage-panel h3{letter-spacing:-.02em;margin:14px 0 0;font-size:26px;font-weight:500}.q-stage-panel p{color:#a1a1aa;margin:10px 0 0;font-size:17px;line-height:1.65}.q-stage-step{color:#ffffff2e;font:400 72px/.8 var(--font-display),var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.q-stage-step span{font-size:28px}.q-pager{border:1px solid #ffffff1f;border-radius:8px;grid-template-columns:1fr 1fr;margin:120px 56px 0;display:grid;overflow:hidden}.q-pager a{flex-direction:column;gap:12px;padding:32px 36px;transition:background .4s;display:flex}.q-pager a+a{text-align:right;border-left:1px solid #ffffff1f;align-items:flex-end}.q-pager a:hover{background:#ffffff08}.q-pager-dir{color:#ffffff73;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:8px;transition:gap .3s,color .3s;display:inline-flex}.q-pager a:hover .q-pager-dir{color:#fff;gap:12px}.q-pager strong{font:400 clamp(30px,3.4vw,48px)/1 var(--font-display),var(--sans);letter-spacing:-.03em}.q-pager-type{color:#ffffff73;font-size:14px}.q-card--cta{justify-content:space-between}.q-cta-terminal{font:500 14px/1.4 var(--mono);background:#0a0a0b;border:1px solid #ffffff1a;border-radius:10px;flex-direction:column;gap:12px;margin:24px 0 40px;padding:24px;display:flex}.q-cta-terminal i{color:#ffffff59;font-style:normal}.q-cta-terminal .is-out{color:#ffffffb3;align-items:center;gap:6px;display:inline-flex}.q-cta-terminal b{vertical-align:-2px;background:#fff;width:8px;height:15px;animation:1s step-end infinite q-blink;display:inline-block}.lab-panel{background:linear-gradient(#0a0a0c,#070708);border:1px solid #ffffff1f;border-radius:8px;overflow:hidden}.lab-toolbar{color:#ffffff59;min-height:64px;font:500 11px/1 var(--mono);letter-spacing:.08em;border-bottom:1px solid #ffffff1f;grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;padding:12px 20px;display:grid}.shape-options{gap:6px;display:flex}.shape-options button{color:#ffffffa6;background:#000;border:1px solid #ffffff1f;border-radius:999px;place-items:center;width:40px;height:40px;font-size:19px;transition:border-color .2s,color .2s,background .2s;display:grid}.shape-options button:hover{color:#fff;border-color:#ffffff59}.shape-options button[aria-pressed=true]{color:#000;background:#fff;border-color:#fff}.lab-reset{white-space:nowrap;color:#ffffffa6;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;background:0 0;border:0;justify-self:end;align-items:center;gap:6px;padding:0;transition:color .2s;display:inline-flex}.lab-reset:hover{color:#fff}.lab-body{grid-template-columns:minmax(0,1.6fr) minmax(260px,.6fr);display:grid}.lab-canvas{background-image:radial-gradient(60% 55% at 50% 45%,#ffffff10,#0000 70%),linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:auto,48px 48px,48px 48px;border-right:1px solid #ffffff1f;min-height:540px;position:relative}.scene-mount{isolation:isolate;width:100%;height:100%;min-height:540px;position:relative}.scene-mount canvas{z-index:2;cursor:grab;touch-action:none;width:100%;height:100%;position:absolute;inset:0}.scene-mount canvas:active{cursor:grabbing}.object-shadow{z-index:0;background:radial-gradient(#ffffff26,#0000 70%);border-radius:50%;height:54px;transition:opacity .3s;position:absolute;bottom:68px;left:30%;right:30%}.orbit{pointer-events:none;border:1px solid #ffffff1f;border-top-color:#0000;border-radius:50%;width:61%;height:110px;position:absolute;bottom:48px;left:19.5%}.fallback-cube{width:52%;height:72%;position:absolute;inset:14% 24%}.canvas-corner{z-index:3;color:#ffffff59;font:500 11px/1.3 var(--mono);letter-spacing:.06em;pointer-events:none;position:absolute;left:20px}.canvas-corner-top{top:20px}.canvas-corner-bottom{bottom:20px}.lab-controls{flex-direction:column;gap:26px;padding:28px;display:flex}.lab-readout{border-bottom:1px solid #ffffff1f;flex-direction:column;gap:16px;padding-bottom:26px;display:flex}.lab-readout span,.control-label{color:#ffffff73;font:500 11px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase}.lab-readout output{font:400 clamp(56px,5.6vw,88px)/1 var(--font-display),var(--sans);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.control-label{flex-direction:column;gap:12px;display:flex}.control-label input{accent-color:#fff;cursor:pointer;width:100%}.visibility-button{color:#fff;text-transform:uppercase;letter-spacing:.02em;background:0 0;border:0;border-top:1px solid #ffffff1f;justify-content:space-between;align-items:center;margin-top:auto;padding:14px 0 0;font-size:14px;font-weight:500;display:flex}@media (max-width:1023px){.q-page-hero{padding:144px 24px 56px}.q-page-hero-visual{opacity:.6;left:2px;right:2px}.q-page-hero-shade{background:linear-gradient(#0009,#000000b3 60%,#000)}.q-showcase-wrap,.q-project-story{padding-inline:24px}.q-page-hero--aside{display:flex}.q-page-hero-aside{width:100%;max-width:560px;margin-top:48px}.q-pager{margin-inline:24px}.lab-body{grid-template-columns:1fr}.lab-canvas{border-bottom:1px solid #ffffff1f;border-right:0}}@media (max-width:767px){.q-page-hero{padding:120px 24px 40px}.q-page-hero .q-actions{flex-direction:column;align-items:stretch;width:100%}.q-page-lead{font-size:16px}.q-showcase-hint{display:none}.q-card--xtrainix.q-showcase .q-card-text{width:auto}.q-project-story{padding-top:80px;display:block}.q-story-toc{margin-bottom:32px;position:static}.q-story-toc ol{display:none}.q-project-story-sections p,.q-project-story-sections li{font-size:16px}.q-pager+.q-section--tight{padding-top:80px}.q-page-hero-aside{margin-top:36px}.q-passport>div{grid-template-columns:84px minmax(0,1fr);padding-inline:16px}.q-section--stages{padding-top:80px}.q-stage-rail{grid-template-columns:1fr}.q-stage-rail:before,.q-stage-rail:after{display:none}.q-stage-rail li{position:relative}.q-stage-rail li:not(:last-child):before{content:"";background:repeating-linear-gradient(#ffffff40 0 4px,#0000 4px 8px);width:1px;position:absolute;top:7px;bottom:-7px;left:7px}.q-stage-rail li:has(.is-done):before{background:#fff}.q-stage{grid-template-columns:15px minmax(0,1fr);gap:6px 16px;padding:0 0 22px;display:grid}.q-stage-dot{grid-row:1/span 2;margin:0}.q-stage-state,.q-stage-label{grid-column:2}.q-stage-label{font-size:20px}.q-stage-panel{grid-template-columns:1fr;min-height:0;padding:24px 20px}.q-stage-step{display:none}.q-pager{grid-template-columns:1fr;margin-top:80px}.q-pager a{padding:24px 20px}.q-pager a+a{border-top:1px solid #ffffff1f;border-left:0}.lab-toolbar{grid-template-columns:1fr auto;padding:12px 14px}.lab-toolbar>span{display:none}.lab-canvas,.scene-mount{min-height:380px}}@media (prefers-reduced-motion:reduce){.q-page-hero-visual .hero-figures,.q-page-hero-visual .hero-backdrop{opacity:1;animation:none}.q-cta-terminal b,.q-showcase-hint svg,.q-pulse:after,.q-stage-dot:after,.q-stage-rail:after,.q-stage-panel-body{animation:none}.q-story-toc ol:before{transition:none}}@media (max-width:767px){.q-crumbs{margin-bottom:24px}.q-crumbs a,.q-crumbs [aria-current]{align-items:center;min-height:40px;display:inline-flex}.lab-reset{min-height:40px;padding:0 4px}.control-label input{height:32px}.visibility-button{min-height:52px}.shape-options button{width:44px;height:44px}}.a-inline{color:#fff;text-underline-offset:3px;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40}.a-links{flex-wrap:wrap;gap:4px 14px;display:flex}.a-links a{color:#fff;text-underline-offset:3px;-webkit-text-decoration:underline #ffffff40;text-decoration:underline #ffffff40;transition:text-decoration-color .2s}.a-links a:hover,.a-inline:hover{text-decoration-color:#fff}.a-section{padding-bottom:0}.a-section+#contact{padding-top:128px}.a-areas{border-top:1px solid #ffffff1f;grid-template-columns:repeat(2,minmax(0,1fr));margin:40px 0 0;padding:0;list-style:none;display:grid}.a-areas>li{isolation:isolate;border-bottom:1px solid #ffffff1f;flex-direction:column;padding:36px 40px 40px 0;display:flex;position:relative}.a-code{--lens:radial-gradient(circle 160px at var(--lens-x,50%) var(--lens-y,50%),#000 30%,#0000008c 60%,transparent 100%);z-index:-1;font:400 13px/1.75 var(--mono);white-space:pre;tab-size:4;pointer-events:none;-webkit-user-select:none;user-select:none;opacity:0;-webkit-mask:var(--lens),linear-gradient(90deg,transparent 48%,#000 72%);-webkit-mask-composite:source-in;-webkit-mask:var(--lens) intersect,linear-gradient(90deg,transparent 48%,#000 72%);mask:var(--lens) intersect,linear-gradient(90deg,transparent 48%,#000 72%);margin:0;padding:28px 20px 28px 50%;transition:opacity .45s cubic-bezier(.2,.7,.2,1);position:absolute;inset:0;overflow:hidden}.a-code code{font:inherit;display:block}.a-code .line{display:block}.a-code--soft{filter:blur(3px);-webkit-mask:var(--lens),linear-gradient(90deg,#000 50%,transparent 74%);-webkit-mask-composite:source-in;-webkit-mask:var(--lens) intersect,linear-gradient(90deg,#000 50%,transparent 74%);mask:var(--lens) intersect,linear-gradient(90deg,#000 50%,transparent 74%)}.a-areas>li:before{content:"";z-index:-2;background:radial-gradient(circle 170px at var(--lens-x,50%) var(--lens-y,50%),#ffffff0d,transparent 70%);opacity:0;pointer-events:none;transition:opacity .45s;position:absolute;inset:0}.a-areas>li>h3,.a-areas>li>p,.a-examples a{text-shadow:0 0 14px #000,0 0 6px #000,0 0 2px #000}.a-stack li{background:#000000b3}@media (hover:hover) and (min-width:1024px){.a-areas>li:hover .a-code{opacity:.85}.a-areas>li:hover .a-code--soft{opacity:.6}.a-areas>li:hover:before{opacity:1}}.a-areas>li:nth-child(2n){border-left:1px solid #ffffff1f;padding:36px 0 40px 40px}.a-areas h3{font:400 clamp(26px,2.4vw,34px)/1.1 var(--font-display),var(--sans);letter-spacing:-.025em;margin:0}.a-areas p{color:#a1a1aa;max-width:30rem;margin:12px 0 0;font-size:17px;line-height:1.6}.a-stack{flex-wrap:wrap;gap:6px;margin:20px 0 0;padding:0;list-style:none;display:flex}.a-stack li{color:#fffc;border:1px solid #ffffff26;border-radius:999px;padding:3px 10px;font-size:13px}.a-examples{flex-wrap:wrap;gap:8px 24px;margin-top:auto;padding-top:28px;display:flex}.a-examples a{color:#fff;letter-spacing:.02em;text-transform:uppercase;opacity:.75;align-items:center;gap:8px;font-size:14px;font-weight:500;transition:opacity .25s,gap .25s;display:inline-flex}.a-examples a:hover{opacity:1;gap:12px}@media (max-width:767px){.a-areas{grid-template-columns:1fr}.a-areas>li,.a-areas>li:nth-child(2n){border-left:0;padding:28px 0 32px}.a-areas p{font-size:16px}.a-section+#contact{padding-top:96px}}
.b-index{padding:128px 56px 120px}.b-avatar{color:#000;width:40px;height:40px;font:700 14px/1 var(--mono);background:#fff;border-radius:8px;flex:none;place-items:center;display:grid;transform:skew(-10deg)}.b-side-title{color:#ffffff59;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;margin:0 0 14px}.b-demo{color:#ffffffb3;font:500 10px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase;border:1px dashed #ffffff4d;border-radius:999px;padding:1px 7px}.b-index-head{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px 40px;display:grid}.b-index-head .q-crumbs{grid-column:1/-1;margin:0}.b-index-title h1{font:400 clamp(40px,4.6vw,64px)/1 var(--font-display),var(--sans);letter-spacing:-.035em;margin:0}.b-index-title p{color:#a1a1aa;max-width:40rem;margin:14px 0 0;font-size:18px;line-height:1.6}.b-subscribe{gap:8px;display:flex}.b-subscribe a{color:#fffc;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:8px;height:38px;padding:0 16px;font-size:14px;transition:border-color .2s,color .2s;display:inline-flex}.b-subscribe a:hover{color:#fff;border-color:#fff}.b-tabs{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#000000e6;border-bottom:1px solid #ffffff1f;margin:40px -56px 0;padding:0 56px;position:sticky;top:48px}.b-tabs>div{scrollbar-width:none;gap:4px;display:flex;overflow-x:auto}.b-tabs a{color:#ffffff8c;flex:none;align-items:center;gap:8px;height:52px;padding:0 14px;font-size:15px;transition:color .2s;display:inline-flex;position:relative}.b-tabs a:first-child{padding-left:0}.b-tabs a small{color:#ffffff4d;font:500 11px/1 var(--mono);font-variant-numeric:tabular-nums}.b-tabs a:hover,.b-tabs a[aria-current]{color:#fff}.b-tabs a[aria-current]:after{content:"";background:#fff;height:2px;position:absolute;bottom:-1px;left:14px;right:14px}.b-tabs a:first-child[aria-current]:after{left:0}.b-index-body{grid-template-columns:minmax(0,720px) 280px;justify-content:space-between;gap:64px;margin-top:40px;display:grid}.b-feed{min-width:0}.b-tools{flex-wrap:wrap;align-items:center;gap:12px 20px;padding-bottom:8px;display:flex}.b-search{color:#ffffff73;border:1px solid #ffffff26;border-radius:10px;flex:240px;align-items:center;gap:10px;height:42px;padding:0 12px 0 14px;transition:border-color .2s;display:flex;position:relative}.b-search:focus-within{color:#fff;border-color:#fff}.b-search input{color:#fff;background:0 0;border:0;outline:0;flex:1;min-width:0;height:100%;font-size:15px}.b-search input::placeholder{color:#ffffff59}.b-search input::-webkit-search-cancel-button{display:none}.b-search button{color:#fff9;background:0 0;border:0;border-radius:6px;place-items:center;width:28px;height:28px;display:grid}.b-search button:hover{color:#fff;background:#ffffff14}.b-formats{border:1px solid #ffffff1f;border-radius:10px;gap:2px;padding:3px;display:flex}.b-formats button{color:#ffffffa6;background:0 0;border:0;border-radius:7px;align-items:center;gap:7px;height:34px;padding:0 12px;font-size:14px;transition:background .2s,color .2s;display:inline-flex}.b-formats button small{color:#ffffff59;font:500 11px/1 var(--mono)}.b-formats button:hover:not(:disabled){color:#fff}.b-formats button[aria-pressed=true]{color:#000;background:#fff}.b-formats button[aria-pressed=true] small{color:#00000080}.b-formats button:disabled{color:#ffffff40;cursor:default}.b-meta{color:#ffffff73;flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:13px;display:flex}.b-meta-topic{color:#fff;font-weight:500;transition:opacity .2s}.b-meta-topic:hover{opacity:.7}.b-meta-format{align-items:center;gap:6px;display:inline-flex}.b-entry{border-bottom:1px solid #ffffff1a;grid-template-columns:minmax(0,1fr);gap:28px;padding:32px 0;display:grid;position:relative}.b-entry.has-cover{grid-template-columns:minmax(0,1fr) 200px}.b-entry .b-meta-topic{z-index:1;position:relative}.b-entry h2{letter-spacing:-.02em;text-wrap:balance;margin:12px 0 0;font-size:24px;font-weight:500;line-height:1.25}.b-entry h2 a{background:linear-gradient(#fff,#fff) 0 100%/0 1px no-repeat;transition:background-size .35s cubic-bezier(.2,.7,.2,1)}.b-entry:hover h2 a{background-size:100% 1px}.b-entry h2 a:after{content:"";position:absolute;inset:0}.b-entry p{color:#a1a1aa;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:10px 0 0;font-size:16px;line-height:1.65;display:-webkit-box;overflow:hidden}.b-entry--note p{color:#d4d4d8;-webkit-line-clamp:6}.b-entry-cover{aspect-ratio:4/3;border:1px solid #ffffff1a;border-radius:8px;display:block;overflow:hidden}.b-entry-cover img{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1)}.b-entry:hover .b-entry-cover img{transform:scale(1.03)}.b-more{color:#fff;background:0 0;border:1px solid #ffffff26;border-radius:10px;justify-content:center;align-items:center;gap:10px;width:100%;height:52px;margin-top:24px;font-size:15px;transition:border-color .2s,background .2s;display:flex}.b-more:hover{background:#ffffff08;border-color:#fff}.b-more small{color:#ffffff73;font:500 12px/1 var(--mono)}.b-nothing{border-bottom:1px solid #ffffff1a;padding:48px 0}.b-nothing p{color:#a1a1aa;margin:0;font-size:17px}.b-nothing button{color:#fff;text-underline-offset:4px;background:0 0;border:0;margin-top:12px;padding:0;font-size:15px;text-decoration:underline}.b-side{flex-direction:column;align-self:start;gap:40px;display:flex;position:sticky;top:132px}.b-popular{margin:0;padding:0;list-style:none}.b-popular li{border-top:1px solid #ffffff14;grid-template-columns:24px minmax(0,1fr);gap:10px;padding:12px 0;display:grid}.b-popular li:first-child{border-top:0;padding-top:0}.b-popular span{color:#ffffff4d;font:500 13px/1.45 var(--mono)}.b-popular a{color:#ffffffd9;font-size:15px;line-height:1.45;transition:color .2s}.b-popular a:hover{color:#fff;text-underline-offset:3px;text-decoration:underline}.b-rubrics{margin:0;padding:0;list-style:none}.b-rubrics a,.b-rubrics span{color:#ffffffb3;align-items:center;gap:10px;height:40px;font-size:15px;transition:color .2s;display:flex}.b-rubrics span{color:#ffffff4d}.b-rubrics small{color:#ffffff4d;font:500 11px/1 var(--mono);margin-left:auto}.b-rubrics a:hover,.b-rubrics a[aria-current]{color:#fff}.b-side-author{padding:20px}.b-side-author h2{margin:14px 0 0;font-size:16px;font-weight:500}.b-side-author p{color:#a1a1aa;margin:6px 0 12px;font-size:14px;line-height:1.55}.b-side-author a{color:#fff;font-size:14px;font-weight:500}.b-progress{z-index:60;height:2px;transform:scaleX(var(--b-progress,0));transform-origin:0;pointer-events:none;background:#fff;position:fixed;top:0;left:0;right:0}.b-post{--b-col:min(700px,100%);padding:136px 24px 0}.b-post-head,.b-post-foot{width:var(--b-col);margin:0 auto}.b-post-head .q-crumbs{margin-bottom:28px}.b-post-head h1{font:400 clamp(34px,4.4vw,54px)/1.06 var(--font-display),var(--sans);letter-spacing:-.035em;text-wrap:balance;margin:0}.b-post-lead{color:#a1a1aa;margin:20px 0 0;font-size:20px;line-height:1.55}.b-byline{border-top:1px solid #ffffff1a;border-bottom:1px solid #ffffff1a;align-items:center;gap:14px;margin-top:32px;padding:20px 0;display:flex}.b-byline b{margin-bottom:4px;font-size:15px;font-weight:500;display:block}.b-post-cover{width:min(1040px,100%);margin:48px auto 0}.b-post-cover img{border:1px solid #ffffff1a;border-radius:10px;width:100%;display:block}.b-post-body{grid-template-columns:minmax(0,1fr) var(--b-col) minmax(0,1fr);gap:0 48px;margin-top:44px;display:grid}.b-post-body>.b-prose,.b-post-body>.b-toc-mobile{grid-column:2}.b-toc{grid-area:1/3/span 3;align-self:start;max-width:260px;position:sticky;top:96px}.b-toc .q-story-toc{position:static}.b-toc .q-story-toc a{height:auto;min-height:36px;padding:7px 0;font-size:14px;line-height:1.4}.b-toc .q-story-toc ol:before{height:36px;transform:translateY(calc(var(--q-active,0) * 36px))}.b-prose{color:#d4d4d8;min-width:0;font-size:19px;line-height:1.75}.b-prose>p:first-child{color:#fff}.b-prose section{scroll-margin-top:96px}.b-prose h2{color:#fff;font:400 30px/1.2 var(--font-display),var(--sans);letter-spacing:-.025em;margin:56px 0 16px;position:relative}.b-anchor{color:#ffffff59;opacity:0;place-items:center;width:28px;height:28px;transition:opacity .2s,color .2s;display:grid;position:absolute;top:50%;left:-34px;translate:0 -50%}.b-prose h2:hover .b-anchor,.b-anchor:focus-visible{opacity:1}.b-anchor:hover{color:#fff}.b-prose p{margin:0 0 22px}.b-prose ul,.b-prose ol{margin:0 0 26px;padding-left:26px}.b-prose li{padding-left:4px}.b-prose li+li{margin-top:10px}.b-prose li::marker{color:#ffffff73}.b-prose strong{color:#fff;font-weight:600}.b-prose a:not(.b-anchor){color:#fff;text-underline-offset:4px;-webkit-text-decoration:underline #fff6;text-decoration:underline #fff6;transition:text-decoration-color .2s}.b-prose a:not(.b-anchor):hover{text-decoration-color:#fff}.b-prose code{color:#fff;font:500 .84em/1 var(--mono);background:#ffffff0d;border:1px solid #ffffff1f;border-radius:5px;padding:2px 6px}.b-prose blockquote{border-left:1px solid #fff;margin:36px 0;padding:2px 0 2px 24px}.b-prose blockquote p{color:#fff;margin:0;font-size:21px;line-height:1.6}.b-prose blockquote p+p{margin-top:14px}.b-code{background:#0a0a0b;border:1px solid #ffffff1f;border-radius:10px;margin:32px 0;overflow:hidden}.b-code figcaption{color:#ffffff73;height:42px;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:12px;padding:0 6px 0 16px;display:flex}.b-code-title{color:#ffffffd9;min-width:0;font:500 13px/1 var(--mono);letter-spacing:0;text-transform:none;white-space:nowrap;text-overflow:ellipsis;align-items:baseline;gap:10px;display:inline-flex;overflow:hidden}.b-code-title small{color:#ffffff59;letter-spacing:.06em;text-transform:uppercase;font-size:11px}.b-code button{color:#ffffffa6;height:30px;font:inherit;letter-spacing:inherit;text-transform:inherit;background:0 0;border:0;border-radius:6px;flex:none;align-items:center;gap:6px;padding:0 10px;transition:background .2s,color .2s;display:inline-flex}.b-code button:hover{color:#fff;background:#ffffff0f}.b-code button.is-copied{color:#fff}.b-code button.is-failed{color:#fca5a5}.b-code pre{color:#e4e4e7;font:400 14.5px/1.7 var(--mono);tab-size:4;scrollbar-color:#fff3 transparent;margin:0;padding:18px 20px;position:relative;overflow-x:auto}.b-code pre:focus-visible{outline-offset:-2px;outline:2px solid #fff}.b-code pre code{min-width:100%;font:inherit;background:0 0;border:0;padding:0;display:inline-block}.b-code .line{margin:0 -20px;padding:0 20px;display:block}.b-code .line.is-marked{background:#ffffff12;box-shadow:inset 2px 0 #fff}.b-code.is-numbered code{counter-reset:line}.b-code.is-numbered .line:before{counter-increment:line;content:counter(line);color:#fff3;text-align:right;-webkit-user-select:none;user-select:none;width:2ch;margin-right:20px;display:inline-block}.b-code.is-numbered .line.is-marked:before{color:#ffffffb3}.b-diff-legend{color:#ffffff59;letter-spacing:.04em;align-items:center;gap:6px;margin-right:auto;display:inline-flex}.b-diff-legend b{margin-left:8px;font-weight:500}.b-diff-legend b:first-child{margin-left:0}.b-diff-legend .is-del{color:#f87171}.b-diff-legend .is-add{color:#4ade80}.b-code.is-diff .line.is-add{background:#22c55e17}.b-code.is-diff .line.is-del{background:#ef444417}.b-code.is-diff .line.is-del>span:not(.b-diff-mark){opacity:.55}.b-diff-mark{color:#ffffff40;-webkit-user-select:none;user-select:none;width:1ch;margin-right:16px;display:inline-block}.line.is-add .b-diff-mark{color:#4ade80}.line.is-del .b-diff-mark{color:#f87171}.b-callout{background:#ffffff08;border:1px solid #ffffff1f;border-radius:10px;margin:32px 0;padding:18px 22px 20px}.b-callout p{color:#d4d4d8;margin:8px 0 0;font-size:17px;line-height:1.65}.b-prose .b-callout-title{color:#fff;align-items:center;gap:10px;margin:0;font-size:15px;font-weight:600;line-height:1.3;display:flex}.b-callout.is-important{background:#f59e0b0d;border-color:#f59e0b4d}.b-callout.is-important .b-callout-title{color:#fcd34d}.b-callout.is-important .b-callout-title svg{color:#fbbf24}.b-figure{margin:36px 0}.b-figure img{border:1px solid #ffffff1a;border-radius:10px;width:100%;display:block}.b-figure figcaption{color:#ffffff73;text-align:center;margin-top:10px;font-size:14px}.b-toc-mobile{border:1px solid #ffffff1f;border-radius:10px;margin-bottom:28px;display:none}.b-toc-mobile summary{color:#fff;cursor:pointer;justify-content:space-between;align-items:center;min-height:48px;padding:0 16px;font-size:15px;list-style:none;display:flex}.b-toc-mobile summary::-webkit-details-marker{display:none}.b-toc-mobile summary svg{transition:transform .25s}.b-toc-mobile[open] summary svg{transform:rotate(180deg)}.b-toc-mobile ol{color:#ffffff73;margin:0;padding:4px 16px 14px 36px}.b-toc-mobile a{color:#fffc;padding:7px 0;font-size:15px;display:block}.b-post-foot{border-top:1px solid #ffffff1a;flex-direction:column;gap:24px;margin-top:56px;padding-top:32px;display:flex}.b-post-tags{flex-wrap:wrap;gap:8px;display:flex}.b-post-tags a{color:#fffc;border:1px solid #ffffff26;border-radius:999px;align-items:center;gap:7px;height:34px;padding:0 14px;font-size:14px;transition:border-color .2s,color .2s;display:inline-flex}.b-post-tags a:hover{color:#fff;border-color:#fff}.b-share{flex-wrap:wrap;gap:8px;display:flex}.b-share button,.b-share a{color:#fff;background:#ffffff0f;border:0;border-radius:10px;align-items:center;gap:8px;height:40px;padding:0 16px;font-size:14px;transition:background .2s;display:inline-flex}.b-share button:hover,.b-share a:hover{background:#ffffff1f}.b-author{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:22px;display:grid}.b-author b{font-size:16px;font-weight:500}.b-author p{color:#a1a1aa;margin:3px 0 0;font-size:14px;line-height:1.5}.b-author-link.star-btn{text-decoration:none}.b-glow .star-btn:before{display:none}.b-glow .star-btn{border-color:#ffffff40;transition:border-color .2s}.b-glow .star-btn:hover{border-color:#fff}.b-glow{isolation:isolate;background:radial-gradient(90% 120% at 0 0,#ffffff17,transparent 60%) padding-box, linear-gradient(#0b0b0d,#070708) padding-box, conic-gradient(from var(--q-angle),#ffffff1f 0deg 250deg,#ffffff8c 310deg,#fff 330deg,#ffffff1f 360deg) border-box;border:1px solid #0000;border-radius:12px;animation:6s linear infinite q-orbit;position:relative;box-shadow:0 24px 60px -32px #ffffff2e}.b-glow .b-avatar{box-shadow:0 0 0 6px #ffffff0d,0 8px 24px -8px #ffffff59}.b-more-posts{width:min(1040px,100% - 48px);margin:96px auto 120px}.b-more-posts>h2{font:400 28px/1.1 var(--font-display),var(--sans);letter-spacing:-.025em;margin:0}.b-teasers{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin:24px 0 0;padding:0;list-style:none;display:grid}.b-teaser{border-top:1px solid #ffffff26;flex-direction:column;gap:10px;padding-top:20px;display:flex;position:relative}.b-teaser-meta{color:#ffffff73;font-size:13px}.b-teaser a{letter-spacing:-.015em;font-size:19px;font-weight:500;line-height:1.3}.b-teaser a:after{content:"";position:absolute;inset:0}.b-teaser:hover a{text-underline-offset:4px;text-decoration:underline}.b-teaser p{color:#a1a1aa;-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.55;display:-webkit-box;overflow:hidden}.b-older-newer{border-top:1px solid #ffffff1a;grid-template-columns:1fr 1fr;gap:32px;margin-top:56px;padding-top:24px;display:grid}.b-older-newer a{color:#ffffffd9;flex-direction:column;gap:8px;font-size:16px;line-height:1.4;transition:color .2s;display:flex}.b-older-newer a[rel=next]{text-align:right;grid-column:2;align-items:flex-end}.b-older-newer a span{color:#ffffff73;font:500 11px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;display:inline-flex}.b-older-newer a:hover{color:#fff}@media (max-width:1180px){.b-index-body{grid-template-columns:minmax(0,1fr) 240px;gap:40px}.b-post-body{gap:0}.b-toc{display:none}.b-toc-mobile{display:block}}@media (max-width:1023px){.b-index{padding:112px 24px 96px}.b-tabs{margin-inline:-24px;padding-inline:24px}.b-index-body{grid-template-columns:minmax(0,1fr)}.b-side{grid-template-columns:1fr 1fr;gap:40px;display:grid;position:static}.b-side-author{grid-column:1/-1}.b-teasers{grid-template-columns:1fr}.b-anchor{display:none}}@media (max-width:767px){.b-index-head{grid-template-columns:1fr}.b-index-title p{font-size:16px}.b-tabs{margin-top:28px;top:52px}.b-tabs a{height:48px}.b-tools{flex-direction:column;align-items:stretch}.b-formats{scrollbar-width:none;overflow-x:auto}.b-formats button{flex:none;height:38px}.b-search{flex:none;height:46px}.b-entry,.b-entry.has-cover{grid-template-columns:minmax(0,1fr);gap:16px;padding:26px 0}.b-entry.has-cover .b-entry-cover{aspect-ratio:16/9;order:-1}.b-entry h2{font-size:21px}.b-side{grid-template-columns:1fr}.b-post{padding:108px 20px 0}.b-post-lead{font-size:17px}.b-prose{font-size:17.5px}.b-prose h2{margin-top:44px;font-size:25px}.b-prose blockquote p{font-size:19px}.b-code pre{padding:16px;font-size:13.5px}.b-code.is-numbered .line:before{margin-right:14px}.b-code .line{margin:0 -16px;padding:0 16px}.b-callout{padding:16px 18px}.b-callout p{font-size:16px}.b-author{grid-template-columns:auto minmax(0,1fr)}.b-author-link{grid-column:1/-1}.b-older-newer{grid-template-columns:1fr}.b-older-newer a[rel=next]{text-align:left;grid-column:1;align-items:flex-start}.b-more-posts{width:calc(100% - 40px);margin-top:72px}}@media (max-width:420px){.b-diff-legend span{display:none}}@media (prefers-reduced-motion:reduce){.b-progress{display:none}.b-glow{--q-angle:200deg;animation:none}}
@font-face{font-family:Google Sans Local;font-style:normal;font-weight:400 500;font-display:swap;src:url(../media/google-sans-cyrillic.2c3m7wyps-z0s.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Google Sans Local;font-style:normal;font-weight:400 500;font-display:swap;src:url(../media/google-sans-latin.40-jm68xkzcno.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}:root{--font-display:"Google Sans Local"}
