.arch{--arch-bg:var(--ds-canvas);--arch-grid:color-mix(in srgb, var(--ds-ink) 5%, transparent);--arch-grid-major:color-mix(in srgb, var(--ds-ink) 9%, transparent);--arch-ease:cubic-bezier(.16, 1, .3, 1);border:1px solid var(--ds-line);color:var(--ds-ink);font-family:var(--font-sans);background-color:var(--arch-bg);background-image:linear-gradient(var(--arch-grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--arch-grid-major) 1px, transparent 1px), linear-gradient(var(--arch-grid) 1px, transparent 1px), linear-gradient(90deg, var(--arch-grid) 1px, transparent 1px);background-size:96px 96px,96px 96px,16px 16px,16px 16px;border-radius:10px;margin:0;overflow:hidden}.arch-caption{border-bottom:1px solid var(--ds-line);background:color-mix(in srgb, var(--ds-canvas) 86%, transparent);letter-spacing:.08em;text-transform:uppercase;color:var(--ds-ink-muted);flex-wrap:wrap;justify-content:space-between;gap:4px 18px;padding:10px 16px;font-size:11px;font-weight:500;line-height:1.5;display:flex}.arch-caption strong{color:var(--ds-ink);letter-spacing:.06em;font-weight:700}.arch-scroll{overscroll-behavior-x:contain;overflow-x:auto}@media (max-width:719.98px){.arch-scroll{background:linear-gradient(to left, var(--arch-bg) 40%, transparent) right center / 2.5rem 100% no-repeat local, radial-gradient(farthest-side at 100% 50%, hsl(var(--ds-shadow-color) / .22), transparent) right center / .9rem 100% no-repeat scroll}}.arch-svg{width:100%;min-width:660px;height:auto;color:var(--ds-ink-soft);font-family:var(--font-sans);display:block}.arch-zone rect{fill:none;stroke:var(--ds-line-strong);stroke-width:1px;stroke-dasharray:3 4}.arch-zone text{fill:var(--ds-ink-muted);letter-spacing:.12em;font-size:10px;font-weight:600}.arch-box{fill:var(--ds-surface);stroke:var(--ds-ink);stroke-width:1.5px;pointer-events:all}.arch-node[data-kind=actor] .arch-box,.arch-node[data-kind=external] .arch-box{fill:color-mix(in srgb, var(--ds-surface) 55%, transparent)}.arch-node[data-kind=external] .arch-box{stroke-dasharray:6 5}.arch-node[data-kind=service] .arch-box{stroke:var(--ds-brand-text)}.arch-mark{fill:none;stroke:var(--ds-ink-muted);stroke-width:1.5px}.arch-title{fill:var(--ds-ink);letter-spacing:-.01em;font-size:13.5px;font-weight:600}.arch-tech{fill:var(--ds-ink-muted);letter-spacing:.06em;font-size:10px;font-weight:500}.arch-line{fill:none;stroke:var(--ds-ink-soft);stroke-width:1.4px}.arch-flow{fill:none;stroke:var(--ds-brand);stroke-width:3px;stroke-linecap:round;stroke-dasharray:2 14;animation:2.6s linear infinite arch-flow}.arch-label{fill:var(--ds-ink-muted);letter-spacing:.02em;paint-order:stroke;stroke:var(--arch-bg);stroke-width:5px;stroke-linejoin:round;font-size:10.5px;font-weight:500}.arch-dim path{fill:none;stroke:var(--ds-annotation);stroke-width:1.2px}.arch-dim text{fill:var(--ds-annotation);letter-spacing:.1em;paint-order:stroke;stroke:var(--arch-bg);stroke-width:10px;stroke-linejoin:round;font-size:10.5px;font-weight:600}@keyframes arch-flow{to{stroke-dashoffset:-64px}}@keyframes arch-node-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes arch-draw{0%{stroke-dashoffset:1px;marker-end:none}97%{marker-end:none}to{stroke-dashoffset:0}}@keyframes arch-fade-in{0%{opacity:0}to{opacity:1}}.arch-node{transform-box:fill-box;transform-origin:50%;transition:opacity .22s}.arch-edge{transition:opacity .22s}.arch[data-reveal=pending] .arch-node,.arch[data-reveal=pending] .arch-label,.arch[data-reveal=pending] .arch-flow,.arch[data-reveal=pending] .arch-zone,.arch[data-reveal=pending] .arch-dim{opacity:0}.arch[data-reveal=pending] .arch-line{stroke-dasharray:1;stroke-dashoffset:1px;marker-end:none}.arch[data-reveal=play] .arch-node{animation:arch-node-in .62s var(--arch-ease) calc(var(--i) * .11s) backwards}.arch[data-reveal=play] .arch-line{stroke-dasharray:1;animation:arch-draw .9s var(--arch-ease) calc(.38s + var(--i) * .13s) backwards}.arch[data-reveal=play] .arch-label{animation:arch-fade-in .4s ease calc(.9s + var(--i) * .13s) backwards}.arch[data-reveal=play] .arch-zone{animation:.7s .7s backwards arch-fade-in}.arch[data-reveal=play] .arch-dim{animation:.7s 1.5s backwards arch-fade-in}.arch[data-reveal=play] .arch-flow{animation:arch-fade-in .5s ease calc(1.3s + var(--i) * .13s) backwards, arch-flow 2.6s linear calc(1.3s + var(--i) * .13s) infinite}.arch:not([data-visible]) .arch-flow{animation-play-state:paused}.arch[data-focus] .arch-node:not(.is-related),.arch[data-focus] .arch-edge:not(.is-related){opacity:.22}.arch[data-focus] .arch-edge.is-related .arch-line{stroke:var(--ds-brand-text)}@media (prefers-reduced-motion:reduce){.arch .arch-node,.arch .arch-label,.arch .arch-zone,.arch .arch-dim{opacity:1!important;animation:none!important}.arch .arch-line{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}.arch .arch-flow{display:none}}@media (forced-colors:active){.arch-box,.arch-line,.arch-zone rect,.arch-dim path{stroke:canvastext}.arch-title,.arch-tech,.arch-label,.arch-zone text,.arch-dim text{fill:canvastext;stroke:canvas}.arch-flow{display:none}}
.tk-entry{gap:1rem;display:grid}.tk{background:var(--ds-paper);color:var(--ds-paper-ink);box-shadow:0 1px 1px hsl(var(--ds-shadow-color) / .06), 0 10px 24px -14px hsl(var(--ds-shadow-color) / .28);border-radius:.75rem;display:grid;overflow:hidden}@media (min-width:768px){.tk{grid-template-columns:minmax(0,1fr) 12rem}}.tk-main{display:grid}@media (min-width:640px){.tk-main{grid-template-columns:minmax(13rem,38%) minmax(0,1fr)}}.tk--full .tk-main{grid-template-columns:minmax(0,1fr)}.tk-media{background:var(--ds-surface-sunken);cursor:zoom-in;border:0;width:100%;min-height:13rem;margin:0;padding:0;display:block;position:relative;overflow:hidden}.tk-media img{object-fit:cover;transition:transform .8s cubic-bezier(.16,1,.3,1)}.tk-media:hover img{transform:scale(1.035)}.tk-media:focus-visible,.tk-thumb:focus-visible{outline:2px solid var(--ds-focus);outline-offset:2px}.tk-media-count{color:#fff;letter-spacing:.06em;text-transform:uppercase;background:#11161dc7;border-radius:.3rem;padding:.3rem .55rem;font-size:.6875rem;font-weight:600;position:absolute;bottom:.75rem;left:.75rem}.tk-gallery{background:var(--ds-surface-sunken);align-content:start;gap:.5rem;padding:.75rem;display:grid}.tk-gallery .tk-media{aspect-ratio:16/10;border-radius:.4rem;min-height:0}.tk-thumbs{grid-template-columns:repeat(5,minmax(0,1fr));gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.tk-thumb{aspect-ratio:4/3;background:var(--ds-canvas);cursor:zoom-in;border:0;border-radius:.3rem;width:100%;padding:0;display:block;position:relative;overflow:hidden}.tk-thumb img{object-fit:cover;opacity:.82;transition:opacity var(--motion-fast) ease, transform .6s cubic-bezier(.16, 1, .3, 1)}.tk-thumb:hover img{opacity:1;transform:scale(1.05)}.tk-thumb-more{color:#fff;background:#11161d9e;place-items:center;font-size:.875rem;font-weight:700;display:grid;position:absolute;inset:0}.tk-body{align-content:start;gap:.6rem;padding:1.3rem 1.4rem 1.5rem;display:grid}.tk--full .tk-body{gap:.8rem;padding:1.5rem 1.6rem 1.75rem}.tk-meta{letter-spacing:.1em;text-transform:uppercase;color:var(--ds-paper-muted);margin:0;font-size:.6875rem;font-weight:600}.tk-title{letter-spacing:-.02em;margin:0;font-size:clamp(1.5rem,1.2rem + 1vw,2rem);font-weight:700;line-height:1.1}.tk-desc{max-width:56ch;color:color-mix(in srgb, var(--ds-paper-ink) 84%, var(--ds-paper));margin:0;font-size:.9375rem;line-height:1.6}.tk--full .tk-desc{color:var(--ds-paper-ink);font-size:1.0625rem;font-weight:500}.tk-detail{max-width:60ch;color:color-mix(in srgb, var(--ds-paper-ink) 80%, var(--ds-paper));margin:0;font-size:.9375rem;line-height:1.65}.tk-lines{margin-top:.35rem}.tk-lines .rc-line dd{font-size:.8125rem}.tk-points{max-width:64ch;color:color-mix(in srgb, var(--ds-paper-ink) 84%, var(--ds-paper));gap:.45rem;margin:0;padding:0;font-size:.9375rem;line-height:1.55;list-style:none;display:grid}.tk-points li{padding-left:1.1rem;position:relative}.tk-points li:before{content:"";background:var(--ds-stamp);width:.35rem;height:.35rem;position:absolute;top:.6em;left:.15rem}.tk-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ds-paper-muted);margin:.4rem 0 0;font-size:.6875rem;font-weight:600}.tk-tags{flex-wrap:wrap;gap:.375rem;margin:0;padding:0;list-style:none;display:flex}.tk-tags li{border:1px solid var(--ds-paper-line);border-radius:.3rem;padding:.25rem .55rem;font-size:.8125rem;font-weight:600;line-height:1.3}.tk-stub{background:var(--ds-stub);color:var(--ds-paper-ink);border-top:2px dashed #11161d4d;flex-direction:column;justify-content:space-between;gap:1rem;padding:1.1rem 1.25rem 1.25rem;display:flex;position:relative}@media (min-width:768px){.tk-stub{border-top:0;border-left:2px dashed #11161d4d}}.tk-stub:before,.tk-stub:after{content:"";background:var(--ds-canvas);border-radius:50%;width:1.1rem;height:1.1rem;position:absolute}.tk-stub:before{top:-.6rem;left:-.6rem}.tk-stub:after{top:-.6rem;right:-.6rem}@media (min-width:768px){.tk-stub:after{inset:auto auto -.6rem -.6rem}}.tk-number{letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:.6875rem;font-weight:600}.tk-number strong{letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:.2rem;font-size:2.25rem;font-weight:800;line-height:1;display:block}.tk-number strong span{letter-spacing:0;font-size:.9rem;font-weight:600}.tk-status{border:2px solid var(--ds-stamp);color:var(--ds-stamp);letter-spacing:.16em;text-transform:uppercase;border-radius:.25rem;margin:0;padding:.25rem .45rem .2rem .6rem;font-size:.6875rem;font-weight:800;transform:rotate(-4deg)}.tk-links{justify-items:start;gap:.5rem;display:grid}.tk-link{color:var(--ds-paper-ink);text-underline-offset:.3em;text-wrap:balance;font-size:.875rem;font-weight:600;text-decoration:underline;text-decoration-thickness:1.5px}.tk-link:hover{color:var(--ds-stamp)}.tk-link:focus-visible{outline:2px solid var(--ds-stamp);outline-offset:3px;border-radius:2px}
