.pj-case,.pj-explorer,.pj-similar,.pj-tl,.pj-toc{--pj-surface:#f5f5f7;--pj-ink2:#424245;--pj-ink3:#6e6e73;--pj-line:#e5e5ea;--pj-line-strong:#d2d2d7;--pj-signal:#4d6dff;--pj-accent:#8a6cd8;--pj-bg:var(--bg,#fbfbfd);--scene:#101216;--scene-ink:#f5f5f7;--scene-ink-2:#a1a1aa;--font-mono:"SF Mono",ui-monospace,Menlo,monospace;--ease-settle:cubic-bezier(.22,1,.36,1);--ease-spring:cubic-bezier(.34,1.56,.64,1);--dur-instant:.12s;--dur-quick:.2s;--dur-base:.38s;--r-pill:999px;--r-md:16px;--r-xl:30px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px}html[data-theme=dark] :is(.pj-explorer,.pj-tl,.pj-case,.pj-toc,.pj-similar){--pj-surface:#1a1d23;--pj-ink2:#c7c9d1;--pj-ink3:#9a9ea8;--pj-line:#272b33;--pj-line-strong:#363b45;--pj-signal:#8fb0ff;--pj-accent:#b9a6ff}@keyframes log-in{0%{opacity:0;transform:translateY(-4px)}}.pj-explorer{margin-top:clamp(28px,4vw,48px)}.pj-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.pj-bar>*{min-width:0;max-width:100%}.pj-seg{display:inline-flex;padding:3px;border-radius:999px;background:var(--pj-surface)}.pj-seg button{border:0;background:none;padding:8px 16px;border-radius:999px;font:inherit;font-size:13px;font-weight:600;color:var(--pj-ink3);cursor:pointer;transition:background-color .2s,color .2s}.pj-seg button[aria-pressed=true]{background:var(--pj-bg);color:var(--ink);box-shadow:0 1px 3px #0000001f}.pj-chips{display:flex;flex-wrap:wrap;gap:6px}.pj-chip{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;border:0;border-radius:999px;background:var(--pj-surface);color:var(--pj-ink2);font:inherit;font-size:12.5px;font-weight:550;cursor:pointer;transition:background-color .2s,color .2s}.pj-chip i{width:8px;height:8px;border-radius:50%;background:var(--c,var(--pj-signal))}.pj-chip em{font-style:normal;color:var(--pj-ink3);font-variant-numeric:tabular-nums}.pj-chip[aria-pressed=true]{background:color-mix(in srgb,var(--c,var(--pj-signal)) 22%,var(--pj-surface));color:var(--ink)}.pj-chip:focus-visible,.pj-seg button:focus-visible{outline:2px solid var(--pj-signal);outline-offset:2px}.pj-stage{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px}.pj-explorer.is-enhanced[data-view=map] .pj-listwrap,.pj-explorer[data-view=list] .pj-stage{display:none}.pj-listwrap [hidden]{display:none!important}.pj-map{position:relative;border-radius:30px;overflow:hidden;isolation:isolate;color:#f5f5f7;background:radial-gradient(1200px circle at 50% -10%,#1b2140 0,#0d0f17 55%,#090a10 100%);box-shadow:inset 0 0 0 1px #ffffff0f,0 40px 120px -60px #405ac899}.pj-map:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(520px circle at var(--mx,50%) var(--my,45%),#7896ff24,transparent 70%)}.pj-map svg{display:block;width:100%;touch-action:pan-y}.pj-map .sm-node{touch-action:none}.pj-map-hint{position:absolute;left:18px;bottom:16px;right:18px;display:flex;justify-content:space-between;gap:12px;font-size:12px;color:#a1a1aa;pointer-events:none}.pj-map-hint b{color:#f5f5f7;font-weight:600}.sm-stars{fill:#cfd6ff}.sm-stars circle{animation:sm-twinkle 6s ease-in-out infinite}.sm-stars circle:nth-child(3n){animation-delay:-2s}.sm-stars circle:nth-child(5n){animation-delay:-4s}@keyframes sm-twinkle{50%{opacity:.05}}.sm-edge{fill:none;stroke-width:1.2;stroke-linecap:round;transition:stroke-width .3s}.sm-edge.on{stroke-width:2.2}.sm-dot,.sm-edge.on{filter:url(#sm-glow)}.sm-dot{fill:#fff}.sm-node{cursor:grab;transition:opacity .35s cubic-bezier(.22,1,.36,1)}.sm-node:active{cursor:grabbing}.sm-node:focus-visible{outline:none}.sm-node:focus-visible .halo{opacity:.35}.sm-node .halo{fill:var(--c);opacity:0;transition:opacity .35s}.sm-node.proj .ring{fill:none;stroke:var(--c);stroke-opacity:.35;stroke-width:1;stroke-dasharray:2 4;transition:stroke-opacity .3s;transform-box:fill-box;transform-origin:center}.sm-node.proj .core{fill:#12151f;stroke:var(--c);stroke-width:2;transition:fill .3s}.sm-node.proj .pip{fill:var(--c)}.sm-node.proj .label-bg{fill:#0a0c14b8;stroke:#ffffff14;transition:fill .3s,stroke .3s}.sm-node.proj text{fill:#e9ecf6;font-size:12px;font-weight:600;text-anchor:middle;letter-spacing:-.01em}.sm-node.fam .orb{filter:url(#sm-glow)}.sm-node.fam text.count{fill:#0b0c12;font-size:12px;font-weight:800;text-anchor:middle;dominant-baseline:central}.sm-node.fam text.name{fill:#f2f4fa;font-size:11px;font-weight:650;text-anchor:middle;letter-spacing:.02em}.sm-node.on .halo{opacity:.18}.sm-node.on.proj .ring{stroke-opacity:1;animation:sm-spin 14s linear infinite}.sm-node.on.proj .label-bg{fill:color-mix(in srgb,var(--c) 30%,#0a0c14);stroke:color-mix(in srgb,var(--c) 60%,transparent)}.sm-node.sel.proj .core{fill:var(--c)}.sm-node.near{opacity:.6}.sm-node.dim{opacity:.16}@keyframes sm-spin{to{transform:rotate(1turn)}}.pj-panel{display:flex;flex-direction:column;gap:12px;padding:24px;border-radius:30px;background:var(--pj-surface)}.pj-panel h3{margin:0;font-size:1.4rem;line-height:1.2;letter-spacing:-.025em}.pj-panel p{margin:0;color:var(--pj-ink2);font-size:15px}.pj-kicker{display:flex;align-items:center;gap:8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--pj-ink3);font-weight:650}.pj-kicker i{width:8px;height:8px;border-radius:50%;background:var(--c,var(--pj-signal))}.pj-label{margin-top:6px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--pj-ink3);font-weight:650}.pj-flow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:12.5px;font-weight:600}.pj-flow b{display:inline-block;padding:5px 10px;border-radius:999px;background:color-mix(in srgb,var(--c,var(--pj-signal)) 16%,var(--pj-bg));font-weight:600}.pj-flow b:first-letter{text-transform:uppercase}.pj-flow i{color:var(--pj-ink3);font-style:normal;margin-right:6px}.pj-stack{display:flex;flex-wrap:wrap;gap:5px}.pj-stack a,.pj-stack span{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:var(--pj-bg);font-size:12px;color:var(--pj-ink2);text-decoration:none}.pj-stack span i{width:7px;height:7px;border-radius:50%;background:var(--c)}.pj-stack.dark span{background:#ffffff0f;color:#a1a1aa}.pj-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.pj-list button{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:9px 10px;border:0;border-radius:14px;background:var(--pj-bg);color:var(--ink);font:inherit;font-size:13.5px;cursor:pointer}.pj-list button i{width:8px;height:8px;border-radius:50%;background:var(--c);flex:none}.pj-list button:hover{background:color-mix(in srgb,var(--c) 12%,var(--pj-bg))}.pj-open{align-self:flex-start;margin-top:auto}.pj-empty{margin:auto 0;color:var(--pj-ink3);text-align:center}.pj-listwrap .listing-card[data-families]{transition:background-color .2s}@media(max-width:1200px){.pj-stage{grid-template-columns:1fr}}@media(max-width:640px){.pj-bar{flex-direction:column;align-items:stretch}.pj-bar .pj-seg{align-self:flex-start}.pj-chips{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;scrollbar-width:none}.pj-chip{flex:none}}.pj-tl{margin-top:32px}.pj-tl-top{display:flex;justify-content:space-between;align-items:center;gap:16px}.pj-tl-play{display:inline-flex;align-items:center;gap:10px;padding:10px 18px 10px 12px;border:0;border-radius:999px;background:var(--ink);color:var(--pj-bg);font:inherit;font-size:14px;cursor:pointer}.pj-tl-play span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--pj-bg);color:var(--ink);font-size:11px}.pj-tl-play:focus-visible{outline:3px solid var(--pj-signal);outline-offset:3px}.pj-tl-year b{font-size:clamp(3rem,2rem + 4vw,6rem);font-weight:700;letter-spacing:-.06em;font-variant-numeric:tabular-nums;background:linear-gradient(95deg,var(--ink),var(--pj-signal));-webkit-background-clip:text;background-clip:text;color:transparent}.pj-tl-rail{position:relative;height:64px;margin:16px 0 24px;display:grid;grid-template-columns:repeat(var(--n),1fr);align-items:center}.pj-tl-rail:before{content:"";right:5%;background:var(--pj-line)}.pj-tl-fill,.pj-tl-rail:before{position:absolute;left:5%;top:22px;height:4px;border-radius:4px}.pj-tl-fill{background:linear-gradient(90deg,var(--pj-signal),var(--pj-accent));box-shadow:0 0 16px var(--pj-signal);transition:width .6s cubic-bezier(.22,1,.36,1)}.pj-tl-tick{position:relative;z-index:2;display:grid;justify-items:center;gap:12px;padding:12px 0 0;border:0;background:none;color:var(--pj-ink3);font:inherit;font-size:12px;font-variant-numeric:tabular-nums;cursor:pointer}.pj-tl-tick i{width:10px;height:10px;border-radius:50%;background:var(--pj-bg);border:2px solid var(--pj-line-strong);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background-color .3s,border-color .3s}.pj-tl-tick.has i{width:14px;height:14px;border-color:var(--pj-signal)}.pj-tl-tick.past i{background:var(--pj-signal);border-color:var(--pj-signal)}.pj-tl-tick.cur i{transform:scale(1.5);box-shadow:0 0 0 6px color-mix(in srgb,var(--pj-signal) 22%,transparent)}.pj-tl-tick.cur span{color:var(--ink);font-weight:700}.pj-tl-rail input[type=range]{position:absolute;left:5%;top:8px;width:90%;height:32px;margin:0;opacity:0;cursor:ew-resize;z-index:3}.pj-tl-rail:focus-within .pj-tl-tick.cur i{box-shadow:0 0 0 4px var(--pj-signal)}.pj-tl-body{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px}.pj-tl-events{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;align-content:start;min-height:150px}.pj-tl-event{display:grid;gap:6px;padding:18px;border-radius:20px;background:var(--pj-surface);border-top:3px solid var(--c);animation:log-in .45s cubic-bezier(.22,1,.36,1) both}.pj-tl-event.cur{box-shadow:0 20px 50px -30px var(--c);background:color-mix(in srgb,var(--pj-surface) 85%,var(--c) 10%)}.pj-tl-event span{font-size:12px;font-weight:700;color:var(--pj-ink3);font-variant-numeric:tabular-nums}.pj-tl-event b{font-size:16px;line-height:1.3}.pj-tl-event p{margin:0;color:var(--pj-ink2);font-size:14px}.pj-tl-event a{color:var(--pj-signal);text-decoration:none;font-weight:600;font-size:13px}.pj-tl-side{display:grid;gap:16px;align-content:start;padding:24px;border-radius:20px;background:var(--pj-surface)}.pj-tl-side>div>span{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--pj-ink3);font-weight:650}.pj-tl-side b{display:block;font-size:2.6rem;letter-spacing:-.04em;font-variant-numeric:tabular-nums}.pj-tl-undated{margin-top:24px;padding:20px;border-radius:20px;border:1px dashed var(--pj-line-strong)}.pj-tl-undated p{margin:0 0 12px;color:var(--pj-ink2);font-size:14px}.pj-tl-undated .pj-stack a{background:var(--pj-surface)}@media(max-width:860px){.pj-tl-body{grid-template-columns:1fr}.pj-tl-tick span{font-size:10px}}@media(max-width:520px){.pj-tl-tick span{writing-mode:vertical-rl;transform:rotate(180deg)}.pj-tl-rail{height:84px}}.pj-case{display:grid;gap:clamp(40px,6vw,72px);margin:clamp(32px,5vw,56px) 0}.pj-head{margin-bottom:20px}.pj-head h2{margin:8px 0 0;font-size:clamp(1.8rem,1.3rem + 1.8vw,2.6rem)}.pj-ba{position:relative;--pos:50%;display:grid;border-radius:30px;overflow:hidden;isolation:isolate;user-select:none;touch-action:pan-y}.pj-ba>.pj-ba-panel{grid-area:1/1}.pj-ba-after{position:relative;z-index:0}.pj-ba-panel{display:grid;gap:16px;align-content:start;padding:clamp(22px,4vw,44px);min-height:340px}.pj-ba-panel header{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.pj-ba-panel h3{margin:0;font-size:clamp(1.3rem,1rem + 1vw,1.8rem);letter-spacing:-.03em}.pj-ba-rows{display:grid;gap:12px;margin:0;padding:0;list-style:none}.pj-ba-rows li{display:grid;grid-template-columns:34px 1fr;gap:14px;align-items:center;padding:14px 16px;border-radius:18px;font-size:clamp(15px,1.1vw,17px);line-height:1.4}.pj-ba-rows li i{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-weight:700}.pj-ba-after{background:radial-gradient(800px circle at 80% 0,color-mix(in srgb,var(--c) 30%,transparent),transparent 60%),#10131b;color:#f3f4f8}.pj-ba-after .pj-ba-rows li{background:#ffffff0f}.pj-ba-after .pj-ba-rows li i{background:var(--c);color:#0b0c12}.pj-ba-before{position:relative;z-index:1;background:repeating-linear-gradient(135deg,var(--pj-surface) 0 14px,color-mix(in srgb,var(--pj-surface) 92%,var(--ink) 4%) 14px 28px);color:var(--pj-ink2);clip-path:inset(0 calc(100% - var(--pos)) 0 0)}.pj-ba-before .pj-ba-rows li{background:var(--pj-bg);border:1px dashed var(--pj-line-strong)}.pj-ba-before .pj-ba-rows li i{background:#f871712e;color:#ef4444}.pj-ba-before h3{color:var(--ink)}.pj-badge{padding:5px 12px;border-radius:999px;font-size:12px;font-weight:650;background:var(--pj-bg);color:var(--pj-ink3)}.pj-ba-after .pj-badge{background:color-mix(in srgb,var(--c) 30%,transparent);color:#fff}.pj-ba-after .pj-badge.partial,.pj-ba-after .pj-badge.spec{background:#fbbf242e;color:#fde68a}.pj-ba-handle{z-index:3;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;box-shadow:0 0 0 1px #00000026,0 0 24px #ffffff80;pointer-events:none}.pj-ba-handle,.pj-ba-handle span{position:absolute;background:#fff}.pj-ba-handle span{top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;color:#111;display:grid;place-items:center;font-weight:700;font-size:15px;box-shadow:0 8px 26px #0000004d}.pj-ba input[type=range]{position:absolute;inset:0;z-index:4;width:100%;height:100%;margin:0;opacity:0;pointer-events:none}.pj-ba-handle span{z-index:5;pointer-events:auto;touch-action:none;cursor:ew-resize}.pj-ba input[type=range]:focus-visible~.pj-ba-handle span{outline:2px solid var(--pj-signal);outline-offset:3px}.pj-ba input[type=range]:focus-visible+.pj-ba-handle span{outline:3px solid var(--pj-signal);outline-offset:3px}.pj-ba-bar{display:flex;justify-content:flex-start;margin-top:12px}.pj-demo,.pj-schema{position:relative;isolation:isolate;overflow:hidden;padding:clamp(18px,3vw,32px);border-radius:30px;background:var(--scene);color:var(--scene-ink)}.pj-demo:before,.pj-schema:before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(640px circle at 30% 0,color-mix(in srgb,var(--c) 20%,transparent),transparent 70%)}.pj-schema-top{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:20px}.pj-demo .lab-tag,.pj-tag{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#a1a1aa}.pj-demo .lab-tag:before,.pj-tag:before{content:"";display:inline-block;width:6px;height:6px;margin-right:8px;border-radius:50%;background:#f5b740;vertical-align:1px}.pj-btn{padding:10px 18px;border:1px solid #ffffff24;border-radius:999px;background:#ffffff0f;color:#fff;font:inherit;font-size:14px;font-weight:600;cursor:pointer}.pj-btn:disabled{opacity:.5;cursor:progress}.pj-btn:focus-visible{outline:2px solid #fff;outline-offset:2px}.pj-steps{display:grid;grid-template-columns:repeat(var(--n),minmax(0,1fr));gap:clamp(12px,3vw,40px);margin:0;padding:0;list-style:none}.pj-steps li{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;padding:18px 14px;border-radius:22px;background:#ffffff0a;border:1px solid #ffffff14;text-align:center;transition:background-color .38s,border-color .38s,transform .38s cubic-bezier(.34,1.56,.64,1)}.pj-steps li:not(:last-child):after{content:"";position:absolute;top:50%;left:100%;width:clamp(12px,3vw,40px);border-top:2px dashed #ffffff24}.pj-steps li span{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ffffff14;font-weight:700;font-size:14px;transition:background-color .38s,color .38s}.pj-steps li b{font-size:clamp(14px,1.2vw,17px)}.pj-steps li b:first-letter{text-transform:uppercase}.pj-steps li.on{background:color-mix(in srgb,var(--c) 18%,#ffffff0a);border-color:color-mix(in srgb,var(--c) 70%,transparent);transform:translateY(-4px)}.pj-steps li.on span{background:var(--c);color:#0b0c12}.pj-steps li.done span{background:color-mix(in srgb,var(--c) 45%,transparent)}.pj-steps li.on:not(:last-child):after{border-top-color:var(--c)}.pj-log{display:flex;flex-direction:column;gap:6px;min-height:22px;margin:16px 0;font-family:var(--font-mono);font-size:12px;color:#86efac}.pj-log div{animation:log-in .38s cubic-bezier(.22,1,.36,1) both}.pj-modules{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:16px}.pj-mod-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.pj-mod-grid button{display:flex;flex-direction:column;gap:6px;padding:14px;border-radius:18px;border:1px solid #ffffff14;background:#ffffff08;color:#f5f5f7;font:inherit;text-align:left;cursor:pointer;transition:background-color .2s,border-color .2s}.pj-mod-grid button span{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#a1a1aa;font-weight:650}.pj-mod-grid button b{font-size:14px;line-height:1.3}.pj-mod-grid button[aria-pressed=true]{background:color-mix(in srgb,var(--c) 20%,transparent);border-color:color-mix(in srgb,var(--c) 70%,transparent)}.pj-mod-grid button:focus-visible{outline:2px solid #fff;outline-offset:2px}.pj-reader{padding:18px;border-radius:18px;background:#ffffff0d;min-height:160px}.pj-reader-title{display:block;margin:0 0 8px;font-size:16px;color:#fff}.pj-reader p{margin:0;color:#c7c9d1;font-size:14.5px;line-height:1.6}.pj-schema .pj-stack{margin-top:16px}.pj-note{margin:16px 0 0;font-size:12px;color:#a1a1aa}.pj-demo{min-height:200px}.pj-demo .pj-empty{color:#a1a1aa}.document .prose h2{scroll-margin-top:calc(var(--case-toc-h,0px) + 20px)}.pj-toc{position:sticky;top:76px;z-index:5;display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin:0 0 24px;padding:8px;border-radius:999px;background:color-mix(in srgb,var(--pj-surface) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:13px}.pj-toc span{padding:0 10px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pj-ink3);font-weight:650}.pj-toc a{padding:6px 12px;border-radius:999px;color:var(--pj-ink2);text-decoration:none}.pj-toc a.on{background:var(--pj-bg);color:var(--ink);box-shadow:0 1px 3px #0000001a}.pj-similar{margin:clamp(32px,5vw,56px) 0}.pj-similar h2{font-size:clamp(1.6rem,1.2rem + 1.4vw,2.2rem);margin:0 0 20px}.pj-similar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.pj-similar-grid a{display:flex;flex-direction:column;gap:8px;padding:22px;border-radius:24px;background:var(--pj-surface);color:var(--ink);text-decoration:none;position:relative;overflow:hidden}.pj-similar-grid a:before{content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--c),transparent)}.pj-similar-grid span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pj-ink3);font-weight:650}.pj-similar-grid b{font-size:17px;line-height:1.3}.pj-similar-grid p{margin:0;color:var(--pj-ink2);font-size:14px}@media(max-width:860px){.pj-modules,.pj-similar-grid{grid-template-columns:1fr}.pj-ba-panel{min-height:0}}@media(max-width:640px){.pj-steps{grid-template-columns:1fr}.pj-steps li:not(:last-child):after{top:100%;left:50%;width:0;height:12px;border-top:0;border-left:2px dashed #ffffff24}.pj-mod-grid{grid-template-columns:1fr}.pj-toc{border-radius:20px;position:static}}@media(prefers-reduced-motion:reduce){.sm-node.on.proj .ring,.sm-stars circle{animation:none}.pj-tl-fill{transition:none}.pj-log div,.pj-tl-event{animation:none}}.dm-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:var(--s-4)}.dm-head b{font-size:clamp(16px,1.3vw,20px);letter-spacing:-.02em}.dm-head .lab-tag{color:var(--scene-ink-2)}.dm-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s-4)}.dm-left,.dm-right{display:flex;flex-direction:column;gap:14px;min-width:0}.dm-row{display:flex;flex-wrap:wrap;gap:8px}.dm-btn{padding:10px 16px;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-pill);background:rgba(255,255,255,.05);color:#fff;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;transition:background-color var(--dur-quick),opacity var(--dur-quick),transform var(--dur-instant)}.dm-btn:hover{background:rgba(255,255,255,.12)}.dm-btn:active{transform:scale(.97)}.dm-btn.primary{background:var(--c);border-color:transparent;color:#0b0c12}.dm-btn:disabled{opacity:.5;cursor:progress}.dm-btn:focus-visible,.dm-chip:focus-visible,.dm-keypad button:focus-visible,.dm-mini:focus-visible{outline:2px solid #fff;outline-offset:2px}.dm-pipe{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;counter-reset:s}.dm-pipe li{display:flex;align-items:center;gap:8px;padding:7px 12px 7px 7px;border-radius:var(--r-pill);background:rgba(255,255,255,.05);font-size:12.5px;color:var(--scene-ink-2);transition:background-color var(--dur-base),color var(--dur-base)}.dm-pipe li i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);font-style:normal;font-size:11px;font-weight:700}.dm-pipe li.on{background:color-mix(in srgb,var(--c) 28%,transparent);color:#fff;box-shadow:0 0 0 1px color-mix(in srgb,var(--c) 70%,transparent)}.dm-pipe li.done i,.dm-pipe li.on i{background:var(--c);color:#0b0c12}.dm-pipe li.done{color:#fff}.dm-log{display:flex;flex-direction:column;gap:4px;min-height:22px;font-family:var(--font-mono);font-size:11.5px;color:var(--scene-ink-2)}.dm-log div{animation:log-in .3s var(--ease-settle) both}.dm-log .ok{color:#86efac}.dm-log .warn{color:#fcd34d}.dm-card,.dm-doc,.dm-gui,.dm-mail{display:grid;gap:4px;padding:16px;border-radius:18px;background:rgba(255,255,255,.06)}.dm-card b,.dm-doc b,.dm-mail b{font-size:17px}.dm-kicker{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:650}.dm-kicker,.dm-muted{color:var(--scene-ink-2)}.dm-muted,.dm-warn{font-size:13px}.dm-warn{color:#fcd34d}.dm-tag{justify-self:start;margin-top:6px;padding:4px 10px;border-radius:var(--r-pill);background:color-mix(in srgb,var(--c) 25%,transparent);font-size:12px}.dm-board{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px}.dm-board div{padding:12px;border-radius:14px;background:rgba(255,255,255,.05)}.dm-board span{display:block;font-size:11px;color:var(--scene-ink-2)}.dm-board b{font-size:24px;font-variant-numeric:tabular-nums}.dm-slider{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:13px;color:var(--scene-ink-2)}.dm-slider b{color:#fff;font-variant-numeric:tabular-nums}.dm-slider input{grid-column:1/-1;accent-color:var(--c)}.dm-relays{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.dm-relay{display:grid;justify-items:center;gap:6px;padding:14px 8px;border-radius:16px;background:rgba(255,255,255,.05);font-size:12.5px;transition:background-color var(--dur-base)}.dm-relay i{width:14px;height:14px;border-radius:50%;background:rgba(255,255,255,.18);transition:background-color var(--dur-base),box-shadow var(--dur-base)}.dm-relay b{font-family:var(--font-mono);font-size:11px;color:var(--scene-ink-2)}.dm-relay.on{background:color-mix(in srgb,var(--c) 20%,transparent)}.dm-relay.on i{background:#4ade80;box-shadow:0 0 12px #4ade80}.dm-relay.on b{color:#86efac}.dm-gui b{font-size:26px;font-variant-numeric:tabular-nums}.dm-chips{display:flex;flex-wrap:wrap;gap:6px}.dm-chip{padding:8px 13px;border:1px solid rgba(255,255,255,.14);border-radius:var(--r-pill);background:transparent;color:#fff;font:inherit;font-size:13px;cursor:pointer}.dm-chip[aria-pressed=true]{background:color-mix(in srgb,var(--c) 28%,transparent);border-color:color-mix(in srgb,var(--c) 70%,transparent)}.dm-doc ol{margin:6px 0 0;padding-left:18px;font-size:13.5px;color:var(--scene-ink)}.dm-phone{align-self:center;width:180px;padding:8px;border-radius:28px;background:linear-gradient(160deg,#2a2d38,#121318);box-shadow:inset 0 0 0 1px rgba(255,255,255,.12)}.dm-screen{display:grid;gap:4px;align-content:center;justify-items:center;height:200px;border-radius:22px;background:#f4f5f9;color:#15161c;text-align:center;padding:12px;font-size:13px}.dm-screen em{margin-top:8px;padding:5px 12px;border-radius:999px;background:#16a34a;color:#fff;font-style:normal;font-weight:700;font-size:12px}.dm-screen .dm-muted{color:#6b7280}.dm-table{width:100%;border-collapse:collapse;font-size:13px}.dm-table th{text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--scene-ink-2);font-weight:650;padding:6px 8px}.dm-table td{padding:8px;border-top:1px solid rgba(255,255,255,.08)}.dm-table tr.low td,.dm-table tr.off td{color:#fcd34d}.dm-table tr.off td{text-decoration:line-through;opacity:.7}.dm-mini{margin-left:4px;padding:4px 8px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:transparent;color:#fff;font:inherit;font-size:12px;cursor:pointer}.dm-check{display:grid;gap:8px;margin:0;padding:0;list-style:none}.dm-check label{display:flex;gap:10px;align-items:center;padding:11px 14px;border-radius:14px;background:rgba(255,255,255,.05);font-size:14px;cursor:pointer}.dm-check input{width:18px;height:18px;accent-color:var(--c)}.dm-bar{display:block;height:6px;border-radius:6px;background:rgba(255,255,255,.1);overflow:hidden;margin:6px 0}.dm-bar em{display:block;height:100%;background:var(--c);transition:width .5s var(--ease-settle)}.dm-kanban{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.dm-kanban>div{display:flex;flex-direction:column;gap:6px;min-height:160px;padding:8px;border-radius:12px;background:rgba(255,255,255,.04)}.dm-kanban span{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--scene-ink-2)}.dm-lead{padding:8px;border-radius:8px;background:#fff;color:#15161c;font-size:12px;font-weight:600}.dm-chat{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;padding:12px;border-radius:18px;background:#e9eef5}.dm-chat div{max-width:85%;padding:8px 11px;border-radius:14px;font-size:13px;animation:log-in .3s var(--ease-settle) both}.dm-chat .bot{align-self:flex-start;background:#fff;color:#15161c}.dm-chat .me{align-self:flex-end;background:#2f6bff;color:#fff}.dm-select{padding:10px 12px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#12141b;color:#fff;font:inherit;font-family:var(--font-mono);font-size:13px}.dm-toggle{display:inline-flex;gap:8px;align-items:center;font-size:13px}.dm-code{margin:0;padding:14px;min-height:140px;border-radius:14px;background:#0b0c11;color:#86efac;font-family:var(--font-mono);font-size:12.5px;white-space:pre-wrap}.dm-keypad{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.dm-keypad button{display:grid;gap:4px;justify-items:center;padding:14px 8px;border:1px solid rgba(255,255,255,.14);border-radius:16px;background:rgba(255,255,255,.04);color:#fff;font:inherit;cursor:pointer}.dm-keypad b{font-size:22px}.dm-keypad span{font-size:12px;color:var(--scene-ink-2)}.dm-page{position:relative;display:grid;gap:8px;padding:18px;border-radius:10px;background:#f3efe6;filter:sepia(.4) contrast(.8) blur(.6px);transition:filter .5s}.dm-page i{display:block;height:7px;border-radius:3px;background:#6b6455;opacity:.8}.dm-page i.short{width:55%}.dm-page .dm-tbl{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:6px}.dm-page.grey{filter:grayscale(1) contrast(.85) blur(.6px)}.dm-page.clean{filter:grayscale(1) contrast(1.1) blur(0)}.dm-page.bin{filter:grayscale(1) contrast(2.4)}.dm-page.read i{background:color-mix(in srgb,var(--c) 80%,#000)}.dm-meter{display:grid;grid-template-columns:1fr auto;gap:6px;font-size:13px;color:var(--scene-ink-2)}.dm-meter b{color:#fff}.dm-meter i{grid-column:1/-1;height:8px;border-radius:8px;background:rgba(255,255,255,.1);overflow:hidden}.dm-meter em{display:block;height:100%;background:var(--c);transition:width .6s var(--ease-settle),background-color .3s}.dm-meter em.hot{background:#f59e0b}.pj-timeline-section{margin-top:clamp(56px,8vw,112px)}.pj-tl-title{margin:8px 0 0;font-size:clamp(1.8rem,1.3rem + 1.8vw,2.8rem);max-width:22ch}.contact-form.brief-wizard{max-width:760px;gap:0;background:#fff;border:1px solid #e0e4eb;border-radius:26px;box-shadow:0 20px 70px #1c365210;overflow:hidden}.brief-header{padding:26px 28px 20px;border-bottom:1px solid #eef0f4}.brief-kicker{color:#2454d6;font-size:12px;font-weight:650}.brief-header p{font-size:17px;margin-top:6px;line-height:1.45}.brief-timeline{display:none;padding:22px 28px 16px;background:#f8faff}.is-interactive .brief-timeline{display:block}.brief-timeline ol{display:grid;grid-template-columns:repeat(4,1fr);list-style:none;padding:0;margin:0}.brief-timeline li{position:relative}.brief-timeline li:not(:last-child):after{content:"";position:absolute;top:16px;height:1px;left:36px;right:8px;background:#dbe1eb}.brief-timeline li.is-complete:after{background:#9cb2f0}.brief-timeline button{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-start;gap:8px;border:0;background:none;padding:0;color:#6b7281;width:100%;text-align:left}.brief-timeline button:disabled{opacity:.65;cursor:default}.brief-timeline button>span{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#e9edf5;font-size:12px}.brief-timeline .is-current button{color:#204fc7}.brief-timeline .is-current button>span{background:#2454d6;color:white;box-shadow:0 0 0 4px #2454d611}.brief-timeline .is-complete button>span{background:#dce8ff;color:#204fc7}.brief-timeline small{font-size:11px;font-weight:550}.brief-timeline>p{font-size:11px;margin-top:16px}.brief-body{padding:28px}.brief-panel{display:flex;flex-direction:column;gap:20px;padding-bottom:28px}.is-interactive .brief-panel{display:none;padding-bottom:0}.is-interactive .brief-panel.is-active{display:flex;animation:brief-arrive var(--motion-state,.22s) var(--motion-ease-out,ease-out)}.brief-panel h2{font-size:27px;line-height:1.15;letter-spacing:-.035em;scroll-margin-top:120px}.brief-panel h2:focus{outline:none}.brief-hint{font-size:13px;line-height:1.6;margin-top:-8px}.brief-panel .project-details{border-top:1px solid #e6eaf0;padding-top:18px}.brief-panel .project-estimate{margin-top:18px}.brief-answers{border-top:1px solid #e6eaf0;margin-top:28px;padding-top:22px}.brief-answers h3{font-size:16px;letter-spacing:-.02em}.brief-answers>p{font-size:11px;margin-top:5px}.brief-answers dl{margin:16px 0 0;display:grid;gap:14px}.brief-answers dt{font-size:11px;color:#707785;display:flex;justify-content:space-between;gap:12px}.brief-answers dt button{background:none;border:0;padding:0;color:#2454d6;font-size:11px;text-decoration:underline;text-underline-offset:3px}.brief-answers dd{margin:5px 0 0;font-size:13px;line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere;max-height:160px;overflow:auto;color:#263040}.brief-navigation{display:none;border-top:1px solid #edf0f4;padding:20px 28px;align-items:center;justify-content:space-between;gap:14px;background:#fbfcfe}.is-interactive .brief-navigation{display:flex}.brief-navigation>span{font-size:11px;color:#727a88;flex:1}.brief-back{background:none;border:0;color:#495263;font-size:13px;padding:10px 0}.brief-navigation .button{padding:13px 22px;white-space:nowrap}@keyframes brief-arrive{0%{opacity:.65;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){.contact-form.brief-wizard{border-radius:20px}.brief-header{padding:22px 20px 18px}.brief-timeline{padding:20px}.brief-body{padding:22px 20px}.brief-panel h2{font-size:25px}.brief-timeline small{font-size:10px}.brief-navigation{padding:18px 20px;flex-wrap:wrap}.brief-navigation>span{max-width:145px}.brief-panel .privacy-consent{font-size:12px}.brief-header p{font-size:15px}}@media(prefers-reduced-motion:reduce){.is-interactive .brief-panel.is-active{animation:none}}.brief-security-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;pointer-events:none}.brief-submit-area{display:flex;flex-direction:column;gap:18px;margin-top:24px}.is-interactive .brief-submit-area{display:none}.is-interactive .brief-submit-area.is-basic,.is-interactive .brief-submit-area.is-review{display:flex}.is-interactive .brief-native-basic,.is-interactive .brief-submit-area.is-basic .brief-detailed-submit{display:none}.is-interactive .brief-navigation:has(.brief-choice-actions){display:flex;flex-direction:column;align-items:stretch}.brief-estimate-invitation{font-size:13px;line-height:1.6;color:var(--muted)}.brief-choice-actions{display:flex;flex-wrap:wrap;gap:12px}.contact-form .button.brief-basic-submit{background:#e9ecf1;color:#343b48;border:1px solid #d9dee6;box-shadow:none}.contact-form .button.brief-basic-submit:hover{background:#dce1e8}.brief-choice-actions .button{justify-content:center;white-space:normal;text-align:center;flex:1}.brief-choice-actions .brief-basic-submit{flex:0 1 auto}.brief-choice-actions .button:disabled{opacity:.6;cursor:wait}.brief-submit-area .form-note{margin:0}html[data-theme=dark] .contact-form .button.brief-basic-submit{background:#30394a;color:#eef2f8;border-color:#455269}html[data-theme=dark] .contact-form .button.brief-basic-submit:hover{background:#3d4960}@media(max-width:600px){.brief-choice-actions{flex-direction:column}.brief-choice-actions .brief-basic-submit,.brief-choice-actions .button{width:100%;flex:auto}.brief-submit-area .privacy-consent{font-size:12px}}.project-estimate{padding:24px;border:1px solid #d7def2;border-radius:20px;background:linear-gradient(140deg,#f6f8ff,#fff);margin-top:24px;display:grid;gap:18px}.project-estimate h3{font-size:24px;line-height:1.2}.project-estimate p{font-size:14px;line-height:1.6}.project-estimate fieldset{margin:0;padding:0;border:0;min-width:0}.project-estimate legend{font-weight:600;font-size:15px;margin-bottom:8px}.estimate-modules{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.contact-form .estimate-modules label{display:flex;align-items:center;gap:10px;font-size:13px;line-height:1.4;padding:10px;background:white;border:1px solid #e2e6ef;border-radius:10px}.contact-form .estimate-modules input{width:18px;height:18px;flex-shrink:0;accent-color:#2454d6;margin:0;padding:0}.estimate-options{display:grid;gap:14px}.estimate-result{display:grid;gap:12px;padding-top:20px;border-top:1px solid #d7def2;overflow-wrap:anywhere}.estimate-price{font-size:36px;line-height:1.15;letter-spacing:-.04em;color:#2454d6}.estimate-result>span{font-size:12px;color:#626771}.estimate-result ul{font-size:14px;margin:0;padding-left:20px}.project-estimate>.button{justify-self:start;font-size:14px}@media(max-width:600px){.project-estimate{padding:18px}.estimate-modules{grid-template-columns:1fr}.estimate-price{font-size:30px}}