.tower-stage{width:100%;height:100%;min-height:420px;position:relative;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 10% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000),linear-gradient(#0000,#000 10% 94%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.tower-poster,.tower-canvas-host,.tower-canvas{width:100%;height:100%;position:absolute;inset:0}.tower-poster{object-fit:contain;object-position:center bottom;pointer-events:none;transition:opacity var(--dur-slow) var(--ease)}.tower-poster-dark,:root[data-theme=dark] .tower-poster-light{display:none}:root[data-theme=dark] .tower-poster-dark{display:block}.tower-canvas{opacity:0;visibility:hidden;touch-action:pan-y;cursor:grab;transition:opacity .6s var(--ease)}.tower-canvas:active{cursor:grabbing}.tower-stage[data-gl=ready] .tower-canvas{opacity:1;visibility:visible}.tower-stage[data-gl=ready] .tower-poster{opacity:0}.tower-stage[data-gl=failed] .tower-canvas,.tower-stage[data-poster] .tower-poster{display:none}.tower-canvas:focus-visible{outline:2px solid var(--redline);outline-offset:-2px}.tower-hint{inset-inline:0;text-align:center;font-size:var(--fs-xs);color:var(--ink-muted);opacity:0;transition:opacity var(--dur-slow) var(--ease);margin:0;position:absolute;bottom:8px}.tower-stage[data-gl=ready] .tower-hint{opacity:1}.tower-hint-touch{display:none}.tower-loading{inset-inline:0;font-size:var(--fs-xs);color:var(--ink-muted);opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease);justify-content:center;align-items:center;gap:8px;margin:0;display:flex;position:absolute;bottom:8px}.tower-stage[data-gl=loading] .tower-loading{opacity:1}.tower-loading-dot{background:var(--signature);border-radius:999px;width:6px;height:6px;animation:1.1s ease-in-out infinite tower-pulse}@keyframes tower-pulse{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.tower-loading-dot{animation:none}}@media (pointer:coarse){.tower-hint-pointer{display:none}.tower-hint-touch{display:inline}}
.tk-summary{font-variant-numeric:tabular-nums}.tk-tape{gap:10px;margin-block:48px 40px;display:grid;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.tk-tape-row{overflow:hidden}.tk-tape-track{width:max-content;animation:60s linear infinite paused tk-tape;display:flex}.tk-tape-row[data-reverse] .tk-tape-track{animation-duration:70s;animation-direction:reverse}.tk[data-inview] .tk-tape-track{animation-play-state:running}.tk-tape:hover .tk-tape-track{animation-play-state:paused}.tk-tape-set{gap:10px;padding-inline-end:10px;display:flex}.tk-tape-item{white-space:nowrap;border:1px solid var(--line-strong);border-radius:var(--r-pill);font-size:var(--fs-sm);color:var(--ink-muted);background:var(--surface);align-items:center;gap:10px;padding:6px 14px;display:inline-flex}.tk-tape-item:before{content:"";background:var(--signature);opacity:.7;border-radius:999px;width:5px;height:5px}@keyframes tk-tape{to{transform:translate(-50%)}}.tk-grid{gap:16px;display:grid}@media (max-width:639.98px){.tk-grid{overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-columns:86%;grid-auto-flow:column;margin-inline:-16px;padding:4px 16px 8px;scroll-padding-inline:16px;overflow-x:auto}.tk-grid::-webkit-scrollbar{display:none}.tk-card{scroll-snap-align:start}}@media (min-width:640px){.tk-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.tk-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.tk-card{--mx:-999px;--my:-999px;isolation:isolate;border:1px solid var(--line-strong);border-radius:var(--r-media);background-color:var(--surface);background-image:linear-gradient(color-mix(in oklab, var(--line) 55%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in oklab, var(--line) 55%, transparent) 1px, transparent 1px);transition:transform var(--dur-base) var(--ease), border-color var(--dur-base) var(--ease);background-position:-1px -1px;background-size:24px 24px;align-content:start;gap:14px;padding:24px;display:grid;position:relative}.tk-card:hover{border-color:color-mix(in oklab, var(--signature) 45%, var(--line-strong));transform:translateY(-3px)}.tk-card:before,.tk-card:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;transition:opacity var(--dur-slow) var(--ease);position:absolute;inset:0}.tk-card:before{z-index:-1;background:radial-gradient(360px circle at var(--mx) var(--my), color-mix(in oklab, var(--signature) 12%, transparent), transparent 65%)}.tk-card:after{background:radial-gradient(220px circle at var(--mx) var(--my), var(--signature), transparent 70%);padding:1px;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;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}.tk-grid:hover .tk-card:before,.tk-grid:hover .tk-card:after{opacity:1}.tk-card-head{align-items:baseline;gap:12px;display:flex}.tk-index{font-size:var(--fs-xs);color:var(--signature);letter-spacing:.04em}.tk-count{font-size:var(--fs-xs);color:var(--ink-muted);white-space:nowrap;margin-inline-start:auto}.tk-chips{flex-wrap:wrap;gap:8px;display:flex}:root[dir=rtl] .tk-chips{justify-content:flex-end}.tk-chip{border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--bg);font-size:var(--fs-sm);color:var(--ink);transition:border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);padding:5px 11px}.tk-chip:hover{border-color:var(--signature);color:var(--signature);transform:translateY(-1px)}.tk-glyph-wrap{border-block:1px dashed var(--line-strong);height:136px;color:var(--signature);background:color-mix(in oklab, var(--bg) 55%, transparent);place-items:center;margin-inline:-24px;display:grid}.tk-glyph{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:210px;height:126px;overflow:visible}.tk-faint{opacity:.45}.tk-dot,.tk-node{fill:var(--surface)}.tk-dot{stroke:none;fill:currentColor;opacity:.5}.tk-solid,.tk-playhead{stroke:currentColor;stroke-width:2px}.tk-caret,.tk-blink,.tk-blip{fill:currentColor;stroke:none}.tk-clip{fill:color-mix(in oklab, currentColor 18%, transparent);stroke:currentColor;stroke-width:1px}.tk-scan,.tk-sweep{fill:color-mix(in oklab, currentColor 22%, transparent);stroke:none}.tk-draw,.tk-type{stroke-dasharray:1;stroke-dashoffset:0}.tk-grid[data-reveal=pending] .tk-draw,.tk-grid[data-reveal=pending] .tk-type{stroke-dashoffset:1px}.tk-grid[data-reveal=shown] .tk-draw{animation:tk-draw 1.2s var(--ease) backwards;animation-delay:calc(var(--i,0) * .12s + .15s)}@keyframes tk-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.tk-type,.tk-caret,.tk-scan,.tk-blink,.tk-pulse,.tk-sweep,.tk-blip,.tk-load,.tk-playhead{animation-play-state:paused}.tk[data-inview] :is(.tk-type,.tk-caret,.tk-scan,.tk-blink,.tk-pulse,.tk-sweep,.tk-blip,.tk-load,.tk-playhead){animation-play-state:running}.tk-type{animation:tk-type 5s var(--ease) infinite;animation-delay:calc(var(--d) * .35s)}@keyframes tk-type{0%{stroke-dashoffset:1px}25%,80%{stroke-dashoffset:0}to{stroke-dashoffset:-1px}}.tk-caret{animation:1s step-end infinite tk-blink-kf}@keyframes tk-blink-kf{50%{opacity:0}}.tk-scan{animation:tk-scan 3.2s var(--ease) infinite}@keyframes tk-scan{0%{opacity:0;transform:translateY(0)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(46px)}}.tk-blink{animation:tk-row 3.2s var(--ease) infinite;animation-delay:calc(var(--d) * .45s + .4s)}@keyframes tk-row{0%,to{opacity:.2}20%{opacity:1}}.tk-pulse{stroke-width:2.5px;stroke-dasharray:.12 .88;animation:2.4s linear infinite tk-pulse;animation-delay:calc(var(--d) * -330ms)}@keyframes tk-pulse{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.tk-sweep{transform-box:view-box;transform-origin:80px 48px;animation:3s linear infinite tk-spin}@keyframes tk-spin{to{transform:rotate(1turn)}}.tk-blip{opacity:0;animation:3s ease-out infinite tk-blip;animation-delay:calc(var(--d) * 1s + .3s)}@keyframes tk-blip{0%{opacity:1}60%,to{opacity:0}}.tk-load{animation:4.5s ease-in-out infinite alternate tk-load}@keyframes tk-load{0%{transform:translate(0)}to{transform:translate(80px)}}.tk-playhead{animation:4s linear infinite tk-play}@keyframes tk-play{0%{transform:translate(0)}to{transform:translate(116px)}}.tk-grid[data-reveal=pending] .tk-card,.tk-grid[data-reveal=pending] .tk-chip{opacity:0}.tk-grid[data-reveal=shown] .tk-card{animation:tk-rise .7s var(--ease) backwards;animation-delay:calc(var(--i) * 90ms)}.tk-grid[data-reveal=shown] .tk-chip{animation:tk-rise .5s var(--ease) backwards;animation-delay:calc(var(--i) * 90ms + var(--j) * 40ms + .3s)}@keyframes tk-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tk-tape-track,.tk-card,.tk-chip,.tk-glyph *,.tk-grid[data-reveal] .tk-card,.tk-grid[data-reveal] .tk-chip,.tk-grid[data-reveal] .tk-draw{transition:none!important;animation:none!important}.tk-grid[data-reveal] .tk-card,.tk-grid[data-reveal] .tk-chip{opacity:1}.tk-grid[data-reveal] .tk-draw,.tk-grid[data-reveal] .tk-type{stroke-dashoffset:0}.tk-tape-track{flex-wrap:wrap;width:auto}.tk-tape-set+.tk-tape-set,.tk-blip,.tk-scan{display:none}}
