.fa{--fa-bg:#f2f0eb;--fa-glow-gold:rgba(214,200,166,.72);--fa-glow-blue:rgba(124,167,255,.3);--fa-dot:rgba(24,24,27,.08);--fa-tile:#fff;--fa-raised:#fff;--fa-tile-border:rgba(24,24,27,.07);--fa-highlight:transparent;--fa-ink:#18181b;--fa-muted:#71717a;--fa-faint:#a1a1aa;--fa-soft:#f4f4f5;--fa-line:#ebebee;--fa-line-strong:#d4d4d8;--fa-bar:#e7e3d9;--fa-shadow:rgba(40,36,30,.24);--fa-shadow-near:rgba(40,36,30,.05);--fa-gold:#d6c8a6;--fa-on-gold:#3d3424;--fa-blue:#7ca7ff;--fa-blue-soft:rgba(124,167,255,.16);--fa-photo:linear-gradient(160deg,#f1e9d7,#d8cbab);--fa-dark:#18181b;--fa-dark-border:rgba(255,255,255,.06);--fa-dark-ink:#e4e4e7;--fa-dark-muted:#71717a;--fa-ease:cubic-bezier(.2,.65,.3,1);background:var(--fa-bg);color:var(--fa-ink);-webkit-user-select:none;-moz-user-select:none;user-select:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;container-type:size}.dark .fa{--fa-bg:#232220;--fa-glow-gold:rgba(214,200,166,.16);--fa-glow-blue:rgba(124,167,255,.13);--fa-dot:rgba(255,255,255,.055);--fa-tile:#2d2d2f;--fa-raised:#434347;--fa-tile-border:rgba(255,255,255,.07);--fa-highlight:rgba(255,255,255,.05);--fa-ink:#ececec;--fa-muted:#9fa3a8;--fa-faint:#6e7176;--fa-soft:#242426;--fa-line:rgba(255,255,255,.08);--fa-line-strong:rgba(255,255,255,.17);--fa-bar:rgba(255,255,255,.1);--fa-shadow:rgba(0,0,0,.55);--fa-shadow-near:rgba(0,0,0,.25);--fa-blue-soft:rgba(124,167,255,.2);--fa-photo:linear-gradient(160deg,#3d3830,#29261f);--fa-dark:#141415;--fa-dark-border:rgba(255,255,255,.09)}.fa-backdrop{background:radial-gradient(45% 62% at 92% 6%,var(--fa-glow-gold),transparent 70%),radial-gradient(40% 58% at 5% 98%,var(--fa-glow-blue),transparent 70%);position:absolute;top:0;bottom:0;left:0;right:0}.fa-backdrop:after{content:"";background-image:radial-gradient(var(--fa-dot)1px,transparent 1px);background-size:16px 16px;position:absolute;top:0;bottom:0;left:0;right:0;-webkit-mask-image:radial-gradient(75% 80% at 50% 55%,#000,transparent);mask-image:radial-gradient(75% 80% at 50% 55%,#000,transparent)}.fa-stage{font-size:10px;width:56em;height:24em;font-size:min(1.85185cqw,4.44444cqh);line-height:1.4;position:absolute;top:50%;left:50%;translate:-50% -50%}.fa-stage>*{position:absolute}.fa-tile{border:1px solid var(--fa-tile-border);background:var(--fa-tile);box-shadow:inset 0 1px 0 var(--fa-highlight),0 1px 2px var(--fa-shadow-near),0 .9em 1.8em -1em var(--fa-shadow);border-radius:1.1em;flex-direction:column;gap:.7em;padding:1em 1.1em;display:flex}.fa-ink{border-color:var(--fa-dark-border);background:var(--fa-dark);color:var(--fa-dark-ink);box-shadow:0 1px 2px rgba(0,0,0,.1),0 1.6em 2.8em -1.4em rgba(24,24,27,.55)}.dark .fa-ink{box-shadow:inset 0 1px rgba(255,255,255,.04),0 1.6em 2.8em -1.2em rgba(0,0,0,.75)}.fa-pill{white-space:nowrap;border-radius:999px;flex-direction:row;align-items:center;gap:.45em;padding:.5em 1em;font-weight:500}.fa-label,.fa-ink-label{color:var(--fa-muted);font-size:.85em;font-weight:500}.fa-ink-label{color:var(--fa-dark-muted)}.fa-file{font-family:var(--font-code),monospace;align-items:center;gap:.45em;font-size:.9em;font-weight:600;display:flex}.fa-file svg{width:1.15em;height:1.15em;color:var(--fa-muted);flex-shrink:0}.fa-chip{background:var(--fa-soft);color:var(--fa-muted);border-radius:999px;margin-left:auto;padding:.05em .55em;font-size:.85em;font-weight:500}.fa-lines{flex-direction:column;gap:.55em;width:100%;display:flex}.fa-line{background:var(--fa-line);border-radius:999px;flex-shrink:0;width:100%;height:.5em;display:block}.fa-line-strong{background:var(--fa-line-strong);height:.65em}.fa-bar{background:var(--fa-soft);border-radius:999px;flex-shrink:0;height:.45em;overflow:hidden}.fa-bar span{border-radius:inherit;background:linear-gradient(90deg,var(--fa-blue),var(--fa-gold));transform-origin:0;height:100%;display:block}.fa-number{letter-spacing:-.03em;font-variant-numeric:tabular-nums;align-items:baseline;gap:.15em;font-size:2.5em;font-weight:700;line-height:1;display:flex}.fa-number:after{content:attr(data-unit);color:var(--fa-muted);letter-spacing:0;font-size:.42em}.fa-checkbox{border:1px solid var(--fa-line-strong);color:transparent;border-radius:.4em;flex-shrink:0;place-items:center;width:1.3em;height:1.3em;transition:background-color .3s ease-out,border-color .3s ease-out,color .3s ease-out;display:grid}.fa-checkbox svg{stroke-width:3px;width:.9em;height:.9em}[data-done]>.fa-checkbox{border-color:var(--fa-blue);background:var(--fa-blue);color:#fff}.fa-segmented{background:var(--fa-soft);flex-direction:row;gap:0;padding:.35em}.fa-segmented>span:not(.fa-segmented-indicator){z-index:1;color:var(--fa-muted);flex:1;place-items:center;font-size:.95em;font-weight:600;transition:color .3s ease-out;display:grid;position:relative}.fa-segmented-indicator{background:var(--fa-raised);transition:translate .5s var(--fa-ease);border-radius:.75em;position:absolute;top:.35em;bottom:.35em;left:.35em;box-shadow:0 .1em .4em rgba(0,0,0,.1)}.fa-command{flex-direction:row;align-items:center;padding-top:0;padding-bottom:0}.fa-command code,.fa-ink code{font-family:var(--font-code),monospace;white-space:nowrap;font-size:.9em;overflow:hidden}.fa-command-prompt{color:var(--fa-dark-muted)}.fa-command-accent{color:var(--fa-gold)}.fa-lift{transition:translate .5s var(--fa-ease)}.fa-spec-doc{width:15.5em;height:16.5em;top:5em;left:3em}.fa-spec-checks{flex-direction:column;gap:.8em;margin-top:.3em;display:flex}.fa-spec-check{white-space:nowrap;align-items:center;gap:.6em;font-size:.92em;font-weight:500;display:flex}.fa-spec-doc .fa-lines{margin-top:auto}.fa-spec-steps{width:32.5em;height:3.6em;top:2.5em;left:20em}.fa-spec-steps .fa-segmented-indicator{width:calc(25% - .175em);translate:200%}.fa-spec-steps>span:nth-child(3){color:var(--fa-ink)}.fa-spec-preview{gap:0;width:22em;height:14.1em;padding:0;top:7.4em;left:20em;overflow:hidden}.fa-window-bar{border-bottom:1px solid var(--fa-tile-border);align-items:center;gap:.35em;padding:.75em .9em;display:flex}.fa-window-bar i{background:var(--fa-line-strong);border-radius:50%;width:.55em;height:.55em}.fa-window-url{background:var(--fa-soft);border-radius:999px;flex:1;height:.95em;margin-left:.6em}.fa-spec-filters{gap:.4em;margin:.9em .9em .8em;display:flex}.fa-spec-filters b{background:var(--fa-soft);color:var(--fa-muted);border-radius:999px;padding:.2em .75em;font-size:.8em;font-weight:500}.fa-spec-filters b[data-active]{background:var(--fa-ink);color:var(--fa-tile)}.fa-spec-rows{flex-direction:column;gap:.7em;margin-left:.9em;margin-right:.9em;display:flex}.fa-spec-row{align-items:center;gap:.6em;display:flex}.fa-spec-row i{background:var(--fa-blue-soft);border-radius:.3em;flex-shrink:0;width:1em;height:1em}.fa-spec-export{background:var(--fa-gold);color:var(--fa-on-gold);border-radius:.6em;padding:.35em .9em;font-size:.85em;font-weight:600;position:absolute;bottom:1.1em;right:1.1em}.fa-spec-review{border:1.5px dashed var(--fa-blue);border-radius:.9em;transition:opacity .3s ease-out;position:absolute;top:-.4em;bottom:-.4em;left:-.4em;right:-.4em}.fa-spec-review:after{content:"";border:.15em solid var(--fa-tile);background:var(--fa-blue);border-radius:50%;width:.7em;height:.7em;position:absolute;top:-.35em;right:-.35em}.fa-spec-report{gap:.55em;width:14.5em;top:10.6em;left:38em}.fa-spec-report-row{white-space:nowrap;align-items:center;gap:.5em;font-size:.9em;display:flex}.fa-spec-report-row svg{width:1em;height:1em;color:var(--fa-gold);stroke-width:2.6px;flex-shrink:0}.fa-matrix-tile{gap:.55em;width:14em;height:14em;padding:.8em}.fa-matrix-source{top:6em;left:4em}.fa-matrix-field{top:4.4em;left:21em}.fa-matrix-ascii{justify-content:center;align-items:center;top:6em;left:38em}.fa-matrix-photo{background:var(--fa-photo);border-radius:.6em;flex:1;position:relative;overflow:hidden}.fa-matrix-photo:before{content:"";aspect-ratio:1;background:radial-gradient(circle at 32% 30%,#f4f8ff,#9dbcff 28%,#5d82cc 64%,#2f4677);border-radius:50%;width:66%;position:absolute;top:50%;left:50%;translate:-50% -50%;box-shadow:0 .8em 1.4em -.6em rgba(30,40,70,.5)}.fa-matrix-photo:after{--fa-lattice:rgba(255,255,255,.32);content:"";background-image:linear-gradient(var(--fa-lattice)1px,transparent 1px),linear-gradient(90deg,var(--fa-lattice)1px,transparent 1px);background-size:12.5% 12.5%;position:absolute;top:0;bottom:0;left:0;right:0}.dark .fa-matrix-photo:after{--fa-lattice:rgba(255,255,255,.12)}.fa-matrix-scan{z-index:1;background:var(--fa-blue);height:.16em;transition:top 1.1s var(--fa-ease);position:absolute;top:22%;left:0;right:0;box-shadow:0 0 .8em .15em rgba(124,167,255,.7)}.fa-matrix-caption{color:var(--fa-muted);font-family:var(--font-code),monospace;align-items:center;gap:.4em;font-size:.8em;display:flex}.fa-matrix-caption svg{width:1.1em;height:1.1em}.fa-matrix-dots{flex:1;width:100%;min-height:0}.fa-matrix-dots circle{fill:var(--fa-line-strong)}.fa-matrix-dots circle[data-tone=mid]{fill:color-mix(in oklab,var(--fa-blue)55%,var(--fa-faint))}.fa-matrix-dots circle[data-tone=lit]{fill:var(--fa-blue)}.fa-matrix-ascii pre{color:var(--fa-gold);font-family:var(--font-code),monospace;white-space:pre;margin:0;font-size:.95em;line-height:1}.fa-matrix-arrow{border:1px solid var(--fa-tile-border);background:var(--fa-tile);width:1.8em;height:1.8em;color:var(--fa-muted);box-shadow:0 .3em .8em -.3em var(--fa-shadow);border-radius:50%;place-items:center;display:grid;top:12.1em}.fa-matrix-arrow svg{width:1.1em;height:1.1em}.fa-matrix-pipeline{color:var(--fa-muted);font-family:var(--font-code),monospace;top:19.9em;left:28em;translate:-50%}.fa-skills-tree{width:16em;height:16.5em;top:5em;left:3em}.fa-skills-list{flex-direction:column;gap:.2em;min-width:0;display:flex}.fa-skills-item{color:var(--fa-muted);font-family:var(--font-code),monospace;white-space:nowrap;border-radius:.6em;align-items:center;gap:.5em;padding:.45em .55em;font-size:.85em;display:flex;overflow:hidden}.fa-skills-item svg{width:1.15em;height:1.15em;color:var(--fa-faint);flex-shrink:0}.fa-skills-item[data-active]{background:var(--fa-soft);color:var(--fa-ink)}.fa-skills-item[data-active] svg{color:var(--fa-gold)}.fa-skills-sheet{transform-origin:50% 100%;width:17em;height:14.6em;transition:rotate .5s var(--fa-ease),translate .5s var(--fa-ease);top:2.8em;left:21.5em}.fa-skills-sheet[data-layer]{background:var(--fa-soft)}.fa-skills-sheet[data-layer=back]{translate:-1em .4em;rotate:-7deg}.fa-skills-sheet[data-layer=middle]{translate:.9em .2em;rotate:4deg}.fa-skills-meta{background:var(--fa-soft);color:var(--fa-ink);font-family:var(--font-code),monospace;white-space:nowrap;border-radius:.65em;flex-direction:column;gap:.15em;padding:.6em .75em;font-size:.8em;display:flex;overflow:hidden}.fa-skills-meta>span:first-child,.fa-skills-meta>span:last-child{color:var(--fa-faint)}.fa-skills-meta em{color:var(--fa-blue);font-style:normal}.fa-skills-doc .fa-lines{margin-top:.2em}.fa-skills-team{width:12em;height:11.2em;top:3.6em;left:40.5em}.fa-skills-avatars{display:flex}.fa-skills-avatars i{border:.18em solid var(--fa-tile);width:2.3em;height:2.3em;color:var(--fa-muted);border-radius:50%;place-items:center;margin-left:-.6em;font-size:1em;font-style:normal;display:grid}.fa-skills-avatars i:first-child{background:var(--fa-gold);margin-left:0}.fa-skills-avatars i:nth-child(2){background:var(--fa-blue)}.fa-skills-avatars i:nth-child(3){background:#8bbaa7}.fa-skills-avatars i:nth-child(4){background:var(--fa-soft);font-size:.8em;font-weight:600}.fa-skills-sync{color:var(--fa-muted);white-space:nowrap;align-items:center;gap:.4em;font-size:.82em;display:flex}.fa-skills-sync svg{width:1.05em;height:1.05em;color:var(--fa-blue)}.fa-skills-team .fa-bar{margin-top:auto}.fa-skills-install{width:27em;height:3.6em;top:16.6em;left:25.5em}.fa-flow-curve{width:12.5em;height:11em;top:7em;left:3.5em}.fa-flow-graph{flex:1;width:100%;min-height:0;overflow:visible}.fa-flow-grid{fill:none;stroke:var(--fa-line);stroke-width:1px;vector-effect:non-scaling-stroke}.fa-flow-line{fill:none;stroke:var(--fa-gold);stroke-width:2.6px;stroke-linecap:round}.fa-flow-graph circle{fill:var(--fa-blue)}.fa-flow-panel{gap:.45em;width:20.5em;padding:.9em;top:2.2em;left:18.5em}.fa-flow-head{justify-content:space-between;align-items:center;padding:.1em .3em .3em;font-size:.95em;font-weight:600;display:flex}.fa-flow-head svg{width:1.05em;height:1.05em;color:var(--fa-muted)}.fa-flow-item{background:var(--fa-soft);border-radius:.65em;align-items:center;gap:.6em;height:2.2em;padding-left:.75em;padding-right:.75em;font-size:.9em;font-weight:500;display:flex}.fa-flow-item i{background:var(--fa-line-strong);border-radius:50%;width:.6em;height:.6em}.fa-flow-item i[data-tone=blue]{background:var(--fa-blue)}.fa-flow-item svg{width:1.05em;height:1.05em;color:var(--fa-muted);transition:rotate .45s var(--fa-ease);margin-left:auto}.fa-flow-open svg{rotate:180deg}.fa-flow-collapse{transition:grid-template-rows .55s var(--fa-ease);grid-template-rows:1fr;display:grid}.fa-flow-content{min-height:0;overflow:hidden}.fa-flow-content-inner{flex-direction:column;justify-content:center;gap:.55em;height:4.4em;padding-left:.75em;padding-right:.75em;transition:opacity .3s ease-out;display:flex}.fa-flow-swatches{gap:.5em;margin-bottom:.2em;display:flex}.fa-flow-swatches i{border-radius:50%;width:1.4em;height:1.4em}.fa-flow-swatches i[data-active]{box-shadow:0 0 0 .15em var(--fa-tile),0 0 0 .3em var(--fa-ink)}.fa-flow-action{margin-top:.3em;position:relative}.fa-flow-button{background:var(--fa-gold);height:2.6em;color:var(--fa-on-gold);border-radius:.7em;place-items:center;font-size:.9em;font-weight:600;display:grid}.fa-flow-trail{width:1em;height:4.4em;color:var(--fa-blue);transition:height .55s var(--fa-ease),opacity .3s ease-out;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:1.15em;right:-1.9em}.fa-flow-trail:before{content:"";border:.15em solid;border-radius:50%;flex-shrink:0;width:.6em;height:.6em}.fa-flow-trail:after{content:"";border-left:.15em dashed;flex:1;order:1;min-height:0}.fa-flow-trail svg{stroke-width:2.6px;flex-shrink:0;order:2;width:1em;height:1em;margin-top:-.2em}.fa-flow-code{gap:.3em;width:11.5em;top:6.4em;left:41.2em}.fa-flow-code-indent{padding-left:1.3em}.fa-flow-pill{color:var(--fa-muted);font-family:var(--font-code),monospace;top:13.6em;left:42.4em}.fa-morph-path{width:56em;height:24em;top:0;left:0;overflow:visible}.fa-morph-path path{fill:none;stroke:var(--fa-blue);stroke-width:1.4px;stroke-dasharray:4 5;stroke-linecap:round}.fa-morph-path circle{fill:var(--fa-gold)}.fa-morph-ghost{border:1.5px dashed color-mix(in oklab,var(--fa-blue)55%,var(--fa-faint));background:color-mix(in oklab,var(--fa-tile)60%,transparent);transition:translate .6s var(--fa-ease),opacity .4s ease-out;border-radius:1em}.fa-morph-ghost[data-step="1"]{opacity:.7;width:10em;height:8em;top:11.2em;left:11em}.fa-morph-ghost[data-step="2"]{opacity:.95;width:15.4em;height:12.6em;top:7.4em;left:17em}.fa-morph-source{height:3.2em;box-shadow:0 0 0 .3em var(--fa-blue-soft),0 .9em 1.8em -1em var(--fa-shadow);padding-left:1.2em;padding-right:1.2em;font-weight:600;top:15.2em;left:4.6em}.fa-morph-source svg{width:1.1em;height:1.1em;color:var(--fa-blue)}.fa-morph-panel{gap:.55em;width:24em;height:18.6em;padding:1em 1.2em;top:3em;left:27em}.fa-morph-panel .fa-flow-head{padding-left:0;padding-right:0}.fa-morph-options{flex-direction:column;gap:.6em;margin-bottom:.2em;display:flex}.fa-morph-range{height:1.3em;position:relative}.fa-morph-range:before,.fa-morph-range:after{content:"";border-radius:999px;height:.35em;position:absolute;top:50%;translate:0 -50%}.fa-morph-range:before{background:var(--fa-line);left:0;right:0}.fa-morph-range:after{background:var(--fa-blue);left:25%;right:30%}.fa-morph-range i{z-index:1;border:.18em solid var(--fa-blue);background:var(--fa-raised);border-radius:50%;width:1.2em;height:1.2em;position:absolute;top:50%;translate:-50% -50%}.fa-morph-range i:first-child{left:25%}.fa-morph-range i:last-child{left:70%}.fa-morph-actions{justify-content:flex-end;gap:.5em;margin-top:auto;display:flex}.fa-morph-actions b{background:var(--fa-soft);color:var(--fa-muted);border-radius:.6em;padding:.35em 1em;font-size:.85em;font-weight:600}.fa-morph-actions b[data-primary]{background:var(--fa-ink);color:var(--fa-tile)}.fa-axis-chart{gap:0;width:38em;height:17.2em;padding:1em 1.2em 1.1em;top:4.6em;left:3.5em}.fa-axis-legend{color:var(--fa-muted);gap:1.1em;margin-bottom:.6em;font-size:.8em;display:flex}.fa-axis-legend span{align-items:center;gap:.4em;display:flex}.fa-axis-legend i{background:var(--fa-bar);border-radius:.2em;width:.6em;height:.6em}.fa-axis-legend i[data-tone=blue]{background:var(--fa-blue)}.fa-axis-plot{border-bottom:1px solid var(--fa-line-strong);background:linear-gradient(var(--fa-line)1px,transparent 1px)0 0/100% 33.4%;flex:1;align-items:flex-end;gap:.35em;padding-top:.4em;display:flex}.fa-axis-plot i{background:var(--fa-bar);border-radius:.3em .3em 0 0;flex:1}.fa-axis-plot i[data-tone=blue]{background:var(--fa-blue)}.fa-axis-layer{border-bottom:1px solid var(--fa-line);height:1.6em;display:flex}.fa-axis-layer i{min-width:0;box-shadow:inset 1px 0 var(--fa-line-strong);color:var(--fa-muted);flex:1;place-items:center;font-size:.75em;font-style:normal;font-weight:500;transition:box-shadow .4s ease-out;display:grid}.fa-axis-layer i:first-child{box-shadow:none}.fa-axis-points i:after{content:"";background:var(--fa-line-strong);width:.7em;height:.3em;transition:width .4s var(--fa-ease),opacity .3s ease-out;border-radius:999px}.fa-axis-lots i{font-size:.82em;font-weight:600}.fa-axis-lots i[data-tone=gold]{background:color-mix(in oklab,var(--fa-gold)32%,transparent);color:var(--fa-ink)}.fa-axis-rule{gap:.35em;width:14.6em;padding:.9em 1.1em;top:2.6em;left:38em}.fa-axis-rule code{font-size:.82em}.fa-axis-cache{width:9.6em;height:8.6em;top:11.4em;left:43.2em}.fa-paper-sheet{transform-origin:50% 100%;width:16em;height:18em;transition:rotate .5s var(--fa-ease),translate .5s var(--fa-ease);top:3em;left:20em}.fa-paper-sheet[data-layer]{background:var(--fa-soft)}.fa-paper-sheet[data-layer=back]{translate:-3.5em .6em;rotate:-11deg}.fa-paper-sheet[data-layer=middle]{translate:3.2em .3em;rotate:8deg}.fa-paper-front{gap:1.4em;padding:1.6em}.fa-paper-icon svg{width:3.4em;height:3.4em}@media (hover:hover) and (pointer:fine){a:-webkit-any(:hover,:focus-visible) .fa-lift{translate:0 -.4em}a:-moz-any(:hover,:focus-visible) .fa-lift{translate:0 -.4em}a:is(:hover,:focus-visible) .fa-lift{translate:0 -.4em}a:-webkit-any(:hover,:focus-visible) .fa-spec-check:nth-child(4)>.fa-checkbox{border-color:var(--fa-blue);background:var(--fa-blue);color:#fff}a:-moz-any(:hover,:focus-visible) .fa-spec-check:nth-child(4)>.fa-checkbox{border-color:var(--fa-blue);background:var(--fa-blue);color:#fff}a:is(:hover,:focus-visible) .fa-spec-check:nth-child(4)>.fa-checkbox{border-color:var(--fa-blue);background:var(--fa-blue);color:#fff}a:-webkit-any(:hover,:focus-visible) .fa-spec-steps .fa-segmented-indicator{translate:300%}a:-moz-any(:hover,:focus-visible) .fa-spec-steps .fa-segmented-indicator{translate:300%}a:is(:hover,:focus-visible) .fa-spec-steps .fa-segmented-indicator{translate:300%}a:-webkit-any(:hover,:focus-visible) .fa-spec-steps>span:nth-child(3){color:var(--fa-muted)}a:-moz-any(:hover,:focus-visible) .fa-spec-steps>span:nth-child(3){color:var(--fa-muted)}a:is(:hover,:focus-visible) .fa-spec-steps>span:nth-child(3){color:var(--fa-muted)}a:-webkit-any(:hover,:focus-visible) .fa-spec-steps>span:nth-child(4){color:var(--fa-ink)}a:-moz-any(:hover,:focus-visible) .fa-spec-steps>span:nth-child(4){color:var(--fa-ink)}a:is(:hover,:focus-visible) .fa-spec-steps>span:nth-child(4){color:var(--fa-ink)}a:-webkit-any(:hover,:focus-visible) .fa-spec-review{opacity:0}a:-moz-any(:hover,:focus-visible) .fa-spec-review{opacity:0}a:is(:hover,:focus-visible) .fa-spec-review{opacity:0}a:-webkit-any(:hover,:focus-visible) .fa-matrix-scan{top:78%}a:-moz-any(:hover,:focus-visible) .fa-matrix-scan{top:78%}a:is(:hover,:focus-visible) .fa-matrix-scan{top:78%}a:-webkit-any(:hover,:focus-visible) .fa-skills-sheet[data-layer=back]{translate:-2.4em .6em;rotate:-12deg}a:-moz-any(:hover,:focus-visible) .fa-skills-sheet[data-layer=back]{translate:-2.4em .6em;rotate:-12deg}a:is(:hover,:focus-visible) .fa-skills-sheet[data-layer=back]{translate:-2.4em .6em;rotate:-12deg}a:-webkit-any(:hover,:focus-visible) .fa-skills-sheet[data-layer=middle]{translate:2em .2em;rotate:8deg}a:-moz-any(:hover,:focus-visible) .fa-skills-sheet[data-layer=middle]{translate:2em .2em;rotate:8deg}a:is(:hover,:focus-visible) .fa-skills-sheet[data-layer=middle]{translate:2em .2em;rotate:8deg}a:-webkit-any(:hover,:focus-visible) .fa-flow-collapse{grid-template-rows:0fr}a:-moz-any(:hover,:focus-visible) .fa-flow-collapse{grid-template-rows:0fr}a:is(:hover,:focus-visible) .fa-flow-collapse{grid-template-rows:0fr}a:-webkit-any(:hover,:focus-visible) .fa-flow-content-inner{opacity:0}a:-moz-any(:hover,:focus-visible) .fa-flow-content-inner{opacity:0}a:is(:hover,:focus-visible) .fa-flow-content-inner{opacity:0}a:-webkit-any(:hover,:focus-visible) .fa-flow-open svg{rotate:none}a:-moz-any(:hover,:focus-visible) .fa-flow-open svg{rotate:none}a:is(:hover,:focus-visible) .fa-flow-open svg{rotate:none}a:-webkit-any(:hover,:focus-visible) .fa-flow-trail{opacity:0;height:0}a:-moz-any(:hover,:focus-visible) .fa-flow-trail{opacity:0;height:0}a:is(:hover,:focus-visible) .fa-flow-trail{opacity:0;height:0}a:-webkit-any(:hover,:focus-visible) .fa-morph-ghost{translate:.8em -.5em}a:-moz-any(:hover,:focus-visible) .fa-morph-ghost{translate:.8em -.5em}a:is(:hover,:focus-visible) .fa-morph-ghost{translate:.8em -.5em}a:-webkit-any(:hover,:focus-visible) .fa-morph-ghost[data-step="1"]{opacity:.45}a:-moz-any(:hover,:focus-visible) .fa-morph-ghost[data-step="1"]{opacity:.45}a:is(:hover,:focus-visible) .fa-morph-ghost[data-step="1"]{opacity:.45}a:-webkit-any(:hover,:focus-visible) .fa-axis-points i:nth-child(2n){box-shadow:none}a:-moz-any(:hover,:focus-visible) .fa-axis-points i:nth-child(2n){box-shadow:none}a:is(:hover,:focus-visible) .fa-axis-points i:nth-child(2n){box-shadow:none}a:-webkit-any(:hover,:focus-visible) .fa-axis-points i:nth-child(2n):after{opacity:0}a:-moz-any(:hover,:focus-visible) .fa-axis-points i:nth-child(2n):after{opacity:0}a:is(:hover,:focus-visible) .fa-axis-points i:nth-child(2n):after{opacity:0}a:-webkit-any(:hover,:focus-visible) .fa-axis-points i:nth-child(odd):after{width:1.3em;translate:50%}a:-moz-any(:hover,:focus-visible) .fa-axis-points i:nth-child(odd):after{width:1.3em;translate:50%}a:is(:hover,:focus-visible) .fa-axis-points i:nth-child(odd):after{width:1.3em;translate:50%}a:-webkit-any(:hover,:focus-visible) .fa-paper-sheet[data-layer=back]{translate:-5em .8em;rotate:-15deg}a:-moz-any(:hover,:focus-visible) .fa-paper-sheet[data-layer=back]{translate:-5em .8em;rotate:-15deg}a:is(:hover,:focus-visible) .fa-paper-sheet[data-layer=back]{translate:-5em .8em;rotate:-15deg}a:-webkit-any(:hover,:focus-visible) .fa-paper-sheet[data-layer=middle]{translate:4.6em .4em;rotate:12deg}a:-moz-any(:hover,:focus-visible) .fa-paper-sheet[data-layer=middle]{translate:4.6em .4em;rotate:12deg}a:is(:hover,:focus-visible) .fa-paper-sheet[data-layer=middle]{translate:4.6em .4em;rotate:12deg}}@media (prefers-reduced-motion:reduce){.fa *,.fa :before,.fa :after{transition:none!important}}
.featured-card{min-width:0;height:100%;container-type:inline-size}.featured-card-link{--featured-inset:20px;border:1px solid var(--border);background:var(--card);height:100%;color:var(--card-foreground);box-shadow:0 4px 20px -12px color-mix(in oklab,var(--foreground)14%,transparent);flex-direction:column;transition:translate .25s ease-out,border-color .25s ease-out,box-shadow .25s ease-out;display:flex;overflow:hidden}.featured-card-link:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.featured-card-cover{isolation:isolate;aspect-ratio:2.2;border-bottom:1px solid color-mix(in oklab,var(--foreground)6%,transparent);background:var(--muted);flex-shrink:0;position:relative;overflow:hidden}.featured-card-body{min-width:0;padding:16px var(--featured-inset)calc(var(--featured-inset) - 2px);flex-direction:column;flex:1;display:flex}.featured-card-meta{min-width:0;color:var(--muted-foreground);font-variant-numeric:tabular-nums;white-space:nowrap;align-items:center;gap:8px;font-size:.75rem;line-height:20px;display:flex}.featured-card-category{min-width:0;color:var(--foreground);align-items:center;gap:6px;font-weight:500;display:inline-flex}.featured-card-category svg{flex-shrink:0}.featured-card-sep{opacity:.5;background:currentColor;border-radius:50%;flex-shrink:0;width:3px;height:3px}.featured-card-arrow{flex-shrink:0;width:16px;height:16px;margin-left:auto;transition:translate .25s ease-out,color .25s ease-out}.featured-card-title{-webkit-line-clamp:2;letter-spacing:-.01em;text-wrap:pretty;overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:10px;font-size:1.125rem;font-weight:600;line-height:1.5;display:-webkit-box;overflow:hidden}.featured-card-description{-webkit-line-clamp:2;color:var(--muted-foreground);overflow-wrap:anywhere;-webkit-box-orient:vertical;margin-top:6px;font-size:.875rem;line-height:1.7;display:-webkit-box;overflow:hidden}@media (hover:hover) and (pointer:fine){.featured-card-link:hover{border-color:color-mix(in oklab,var(--foreground)15%,transparent);box-shadow:0 24px 48px -28px color-mix(in oklab,var(--foreground)32%,transparent);translate:0 -4px}.featured-card-link:hover .featured-card-arrow{color:var(--foreground);translate:2px -2px}}@container (width<480px){.featured-card-link{--featured-inset:16px}.featured-card-body{padding-top:14px}.featured-card-cover{aspect-ratio:1.8}.featured-card-title{font-size:1rem}}@media (prefers-reduced-motion:reduce){.featured-card-link,.featured-card-arrow{transition:none}.featured-card-link:hover,.featured-card-link:hover .featured-card-arrow{translate:none}}
.city-hero{--city-travel:135svh;isolation:isolate;height:calc(100svh - var(--qv-header-height) + var(--city-travel));position:relative}.city-hero-viewport{--city-intro:1;top:var(--qv-header-height);height:calc(100svh - var(--qv-header-height));background:var(--background);position:-webkit-sticky;position:sticky;overflow:hidden}.city-hero-atmosphere{background:radial-gradient(ellipse at 60% 56%,color-mix(in srgb,var(--primary)4%,transparent),transparent 65%);pointer-events:none;position:absolute;top:12%;bottom:4%;left:28%;right:0}.city-hero-copy{z-index:2;will-change:transform;width:42%;text-shadow:0 2px 20px var(--background);isolation:isolate;position:absolute;top:25%;left:7%}.city-hero-copy:before{content:"";z-index:-1;background:radial-gradient(ellipse,var(--background)25%,transparent 72%);opacity:calc(.2 + var(--city-intro)*.7);pointer-events:none;position:absolute;top:-40px;bottom:-50px;left:-110px;right:-110px}.city-hero:not([data-reveal]) .city-hero-copy{visibility:hidden}.city-hero-copy [data-city-copy]{will-change:transform;width:max-content;max-width:100%}.city-hero-copy h1>span,.city-hero-description>span{display:block}@media (prefers-reduced-motion:no-preference){.city-hero [data-city-copy],.city-hero-model,.city-hero-footer{--city-enter-delay:80ms;--city-enter-duration:.72s;--city-enter-y:12px;animation:city-hero-enter var(--city-enter-duration)cubic-bezier(.22,1,.36,1)var(--city-enter-delay)both;animation-play-state:paused}.city-hero[data-reveal] [data-city-copy],.city-hero[data-reveal] .city-hero-model,.city-hero[data-reveal] .city-hero-footer{animation-play-state:running}.city-hero-copy h1>span:nth-child(2){--city-enter-delay:.22s}.city-hero .city-hero-description>span{--city-enter-delay:.4s;--city-enter-duration:.6s;--city-enter-y:8px}.city-hero .city-hero-description>.city-hero-typewriter{--city-enter-delay:.52s}.city-hero .city-hero-actions{--city-enter-delay:.62s;--city-enter-duration:.6s;--city-enter-y:8px}.city-hero-model{--city-enter-delay:.14s;--city-enter-duration:1.1s;--city-enter-y:0px}.city-hero-footer{--city-enter-delay:.88s;--city-enter-duration:.44s;--city-enter-y:4px}.city-hero-actions:focus-within,.city-hero-footer:focus-within{animation:none}}@keyframes city-hero-enter{0%{opacity:0;translate:0 var(--city-enter-y)}to{opacity:1;translate:0}}body:has(.city-hero) [data-bottom-fade]{transition:opacity .22s,background .3s}body:has(.city-hero[data-pinned=true]) [data-bottom-fade]{opacity:0}.city-hero-copy h1{letter-spacing:-.035em;font-size:max(38px,min(4.2vw,64px));font-weight:600;line-height:1.35}.city-hero-punctuation{width:.5em;display:inline-block}.city-hero-description{color:var(--muted-foreground);margin-top:19px;font-size:14px;line-height:1.9}.city-hero-description>.city-hero-typewriter{grid-template-columns:minmax(0,1fr);margin-top:4px;display:grid}.city-hero-typewriter>span{grid-area:1/1;min-width:0}.city-hero-phrase-sizer{visibility:hidden;white-space:nowrap}.city-hero-phrase-sizer:not(:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:not(:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){padding-right:4px}.city-hero-phrase-sizer:-webkit-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase-sizer:-moz-any(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase-sizer:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){padding-left:4px}.city-hero-phrase{white-space:nowrap;overflow:hidden}.city-hero-phrase-content{vertical-align:top;left:calc(var(--city-intro)*50%);transform:translateX(calc(var(--city-intro)*-50%));display:inline-block;position:relative}.city-hero-actions{text-shadow:none;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:12px;margin-top:30px;display:grid}.city-hero-art,.city-hero-model,.city-canvas,.city-fallback{position:absolute;top:0;bottom:0;left:0;right:0}.city-canvas canvas{opacity:0;transition:opacity .65s;display:block}.city-canvas[data-state=ready] canvas{opacity:1}.city-fallback{opacity:calc(.9*(1 - var(--city-intro)));background:url(/images/lujiazui-fallback.svg) 50%/contain no-repeat;top:4%;bottom:12%;left:32%;right:0}.dark .city-fallback{filter:invert(.88);opacity:calc(.7*(1 - var(--city-intro)))}.city-hero-model .city-fallback-intro{background-image:url(/images/lujiazui-intro.svg);background-position:bottom;background-size:auto var(--city-front-height,100%);opacity:calc(.9*var(--city-intro));top:0;bottom:0;left:0;right:0}.dark .city-fallback-intro{opacity:calc(.7*var(--city-intro))}.city-hero-model:has(.city-canvas[data-state=ready]) .city-fallback{opacity:0;transition:opacity .5s}.city-hero-location{color:var(--muted-foreground);pointer-events:none;opacity:calc(1 - var(--city-intro));font-size:12px;line-height:1.6;position:absolute;bottom:17%;right:11%}.city-hero-location small{opacity:.7;font-size:10px;display:block}.city-hero-footer{z-index:3;bottom:max(48px,env(safe-area-inset-bottom));color:var(--muted-foreground);text-shadow:0 1px 8px var(--background);justify-content:space-between;align-items:center;display:flex;position:absolute;left:7%;right:7%}#featured{scroll-margin-top:calc(var(--qv-header-height) + 24px)}@media (min-width:1600px){.city-hero-copy{left:max(7%,50vw - 720px)}.city-fallback{left:36%;right:0}}@media (max-width:1023px){.city-hero-copy{width:48%;left:5%}.city-fallback{top:10%;bottom:12%;left:31%;right:0%}.city-hero-copy h1{font-size:max(34px,min(4.5vw,48px))}.city-hero-description{max-width:300px;font-size:13px}}@media (max-width:700px){.city-hero{--city-travel:100svh}.city-hero-copy{width:86%;top:7%;left:7%}.city-hero-copy h1{font-size:max(32px,min(9vw,52px))}.city-hero-description{max-width:none;margin-top:14px;font-size:12px;line-height:1.9}.city-hero-actions{gap:6px;margin-top:20px}.city-fallback{top:48%;bottom:12%;left:-7%;right:-7%}.city-hero-location{font-size:10px;bottom:11%;right:14%}.city-hero-location small{display:none}.city-hero-footer{left:7%;right:7%}.city-hero-scroll{font-size:11px}}@media (max-height:680px) and (min-width:701px){.city-hero-copy{top:14%}.city-hero-description{margin-top:12px}.city-hero-actions{margin-top:20px}}.city-hero[data-reduced-motion=true]{height:auto}.city-hero[data-reduced-motion=true] .city-hero-viewport{min-height:560px;position:relative;top:auto}@media (max-height:600px),(prefers-reduced-motion:reduce){.city-hero{height:auto}.city-hero-viewport{min-height:560px;position:relative;top:auto}}@media (prefers-reduced-motion:reduce){.city-canvas canvas,.city-fallback{transition:none}}
