.spider[data-v-ac12b8f4]{transform-origin:50%;display:block;overflow:visible}.spider-body[data-v-ac12b8f4]{animation-play-state:running}.segment[data-v-ac12b8f4]{transform-box:view-box;transform-origin:50%;animation:1.1s cubic-bezier(.16,1,.3,1) both spider-assemble-ac12b8f4;animation-delay:var(--segment-delay);animation-play-state:inherit}.leg[data-v-ac12b8f4]{transform-box:view-box;transform-origin:50%;animation:6s ease-in-out infinite spider-articulate-ac12b8f4;animation-delay:calc(1.4s + var(--segment-delay));animation-play-state:inherit}.spider:not(.spider--perched) .leg[data-v-ac12b8f4]{animation-duration:4s}@keyframes spider-assemble-ac12b8f4{0%{opacity:0;transform:translate(var(--assembly-x), var(--assembly-y)) scale(.94)}to{opacity:1;transform:translate(0)scale(1)}}@keyframes spider-articulate-ac12b8f4{0%,30%,70%,to{transform:rotate(0)}45%,55%{transform:rotate(var(--articulation))}}@media (prefers-reduced-motion:reduce){.segment[data-v-ac12b8f4],.leg[data-v-ac12b8f4]{animation:none}}.hero-scene[data-v-6c441bc6]{perspective:1100px;isolation:isolate;width:100%;min-width:0;position:relative}.forge-backdrop[data-v-6c441bc6]{z-index:-1;pointer-events:none;position:absolute;inset:-20% -24%;overflow:hidden;-webkit-mask-image:radial-gradient(#000 40%,#0000 73%);mask-image:radial-gradient(#000 40%,#0000 73%)}.forge-light[data-v-6c441bc6]{filter:blur(32px);border-radius:50%;width:100%;height:100%;position:absolute}.forge-light--mint[data-v-6c441bc6]{background:radial-gradient(ellipse, var(--scene-mint-light), transparent 60%);animation:16s ease-in-out infinite alternate forge-light-drift-6c441bc6;top:-15%;left:-30%}.forge-light--violet[data-v-6c441bc6]{background:radial-gradient(ellipse, var(--scene-violet-light), transparent 62%);animation:21s ease-in-out -8s infinite alternate-reverse forge-light-drift-6c441bc6;top:0;right:-20%}.chamber-lines[data-v-6c441bc6]{fill:none;width:100%;height:100%;stroke:var(--scene-structure);stroke-width:.7px;opacity:.16;transform:translate3d(calc(var(--pointer-x,0) * -20px), calc(var(--pointer-y,0) * -12px), 0);transition:transform .6s ease-out;position:absolute;inset:0}.chamber-line--secondary[data-v-6c441bc6]{opacity:.35}.chamber-fog[data-v-6c441bc6]{background:radial-gradient(ellipse, var(--scene-mist), transparent 65%);filter:blur(25px);width:100%;height:50%;animation:16s ease-in-out infinite alternate chamber-drift-6c441bc6;position:absolute;bottom:-10%}.signal-forge[data-v-6c441bc6]{width:100%;height:500px;color:var(--silk);cursor:grab;touch-action:pan-y pinch-zoom;-webkit-user-select:none;user-select:none;appearance:none;transform-style:preserve-3d;transform:translate3d(0, calc(var(--scroll-progress,0) * -55px), 0) rotateX(calc(var(--pointer-y,0) * -3deg)) rotateY(calc(var(--pointer-x,0) * 4deg)) scale(calc(1 - var(--scroll-progress,0) * .12));background:0 0;border:none;border-radius:24px;margin:0;padding:0;transition:transform .65s cubic-bezier(.2,.7,.2,1);display:block;position:relative}.signal-forge[data-v-6c441bc6]:focus-visible{outline:var(--focus-ring);outline-offset:-10px;border-radius:24px}.signal-forge--dragging[data-v-6c441bc6]{cursor:grabbing}.forge-assembly[data-v-6c441bc6]{transform-style:preserve-3d;transform-origin:50% 64%;transition:transform .18s cubic-bezier(.2,1.4,.3,1);display:block;position:absolute;inset:0}.signal-forge--dragging .forge-assembly[data-v-6c441bc6]{transition:none}.forge-chamber[data-v-6c441bc6]{pointer-events:none;transform-style:preserve-3d;display:block;position:absolute;inset:0}.forge-emblem[data-v-6c441bc6]{width:350px;height:350px;filter:drop-shadow(0 0 3px var(--silk-glow-color)) drop-shadow(0 0 18px var(--silk-glow-color));position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.projection-beam[data-v-6c441bc6]{clip-path:polygon(8% 0,92% 0,62% 100%,38% 100%);background:linear-gradient(180deg, transparent, var(--silk-soft) 72%, var(--thread-strong));opacity:.55;pointer-events:none;animation:7s ease-in-out infinite alternate beam-breathe-6c441bc6;position:absolute;inset:8% 8% 17%}.projection-scan[data-v-6c441bc6]{background:linear-gradient(90deg, transparent, var(--silk), transparent);width:60%;height:1px;box-shadow:0 0 12px var(--silk-glow-color);opacity:0;pointer-events:none;animation:9s ease-in-out infinite projection-scan-6c441bc6;position:absolute;top:15%;left:20%}@keyframes beam-breathe-6c441bc6{to{opacity:.18}}@keyframes projection-scan-6c441bc6{0%,12%,62%,to{opacity:0;transform:translateY(0)}18%{opacity:.3}55%{opacity:.15;transform:translateY(280px)}}.forge-aperture[data-v-6c441bc6]{fill:none;stroke-width:1.3px;width:500px;height:500px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)translateZ(-30px)}.aperture-frame[data-v-6c441bc6]{stroke:var(--scene-structure);opacity:.35;fill:var(--bg-elevated);fill-opacity:.4}.aperture-facet[data-v-6c441bc6]{stroke:var(--scene-structure);opacity:.28}.aperture-mint[data-v-6c441bc6]{stroke:var(--silk);opacity:.5}.aperture-violet[data-v-6c441bc6]{stroke:var(--violet);opacity:.65}.aperture-axis[data-v-6c441bc6]{stroke:var(--scene-structure);opacity:.6}.forge-material[data-v-6c441bc6]{position:absolute}.hologram-signal[data-v-6c441bc6]{stop-color:var(--silk)}.forge-emblem[data-v-6c441bc6] .segment{animation:none}.forge-emblem[data-v-6c441bc6] .spider-body{fill:var(--forge-hologram);-webkit-mask:var(--forge-scan);mask:var(--forge-scan)}.forge-emblem[data-v-6c441bc6] .segment path{stroke:var(--silk);stroke-width:1.1px;stroke-opacity:.88;vector-effect:non-scaling-stroke;paint-order:stroke fill}.forge-emblem[data-v-6c441bc6] .spider{width:100%;height:100%}.hologram-transmission[data-v-6c441bc6]{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.hologram-refresh[data-v-6c441bc6]{opacity:.6;animation:6.8s linear infinite hologram-refresh-6c441bc6}.hologram-echo[data-v-6c441bc6]{opacity:0;fill:none;stroke-width:1px;animation:8.6s linear infinite hologram-interlace-6c441bc6}.hologram-echo--mint[data-v-6c441bc6]{stroke:var(--silk)}.hologram-echo--violet[data-v-6c441bc6]{stroke:var(--violet);animation-direction:reverse}@keyframes hologram-refresh-6c441bc6{0%,12%{transform:translateY(calc(var(--hologram-travel) * -.25));opacity:0}18%{opacity:.6}64%{opacity:.4}72%,to{transform:translateY(var(--hologram-travel));opacity:0}}@keyframes hologram-interlace-6c441bc6{0%,80%,91%,to{opacity:0;transform:translate(0)}82%,85%{opacity:.75;transform:translate(4px,-.5px)}87%,89%{opacity:.45;transform:translate(-3px,.5px)}}.forge-emblem[data-v-6c441bc6]:before{content:"";background:radial-gradient(ellipse, var(--scene-mint-light), transparent 65%);opacity:.6;filter:blur(22px);position:absolute;inset:4%}.forge-rails[data-v-6c441bc6]{fill:none;opacity:.18;width:570px;height:570px;position:absolute;top:41%;left:50%;transform:translate(-50%,-50%)}.forge-rails g[data-v-6c441bc6]:nth-child(2n){display:none}.rail[data-v-6c441bc6]{stroke:var(--thread-strong);stroke-width:.8px}.rail-signal[data-v-6c441bc6]{stroke:var(--silk);stroke-width:1.2px;stroke-dasharray:4 96;stroke-dashoffset:100px;animation:6s linear infinite rail-flow-6c441bc6}.rail-terminal[data-v-6c441bc6]{fill:var(--scene-ground);stroke:var(--silk);stroke-width:1px}.forge-core-light[data-v-6c441bc6]{background:radial-gradient(ellipse, var(--scene-mint-light), transparent 66%);width:90px;height:110px;animation:4.5s ease-in-out infinite alternate core-breathe-6c441bc6;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)translateZ(45px)}.projection-base[data-v-6c441bc6]{filter:drop-shadow(0 16px 14px #00000073);width:420px;height:113px;animation:1.6s cubic-bezier(.16,.8,.2,1) both projector-start-6c441bc6;position:absolute;top:83%;left:50%;overflow:visible;transform:translate(-50%,-50%)}@keyframes projector-start-6c441bc6{0%{opacity:0;transform:translate(-50%,-30%)}to{opacity:1;transform:translate(-50%,-50%)}}.base-shadow[data-v-6c441bc6]{fill:var(--bg);opacity:.6;filter:blur(8px);transform:translateY(12px)}.base-body[data-v-6c441bc6]{stroke:var(--border);stroke-width:1px}.base-top[data-v-6c441bc6]{fill:var(--bg-elevated);stroke:var(--scene-structure);stroke-width:1px}.base-facet[data-v-6c441bc6]{fill:none;stroke:var(--border);stroke-width:1px}.base-rim[data-v-6c441bc6]{fill:none;stroke:var(--silk);stroke-width:1.4px;opacity:.65}.base-emitter[data-v-6c441bc6]{opacity:calc(.65 + var(--forge-intensity,0) * .35);fill:var(--silk-soft);stroke:var(--silk);stroke-width:1.5px;filter:drop-shadow(0 0 calc(7px + var(--forge-intensity,0) * 14px) var(--silk))}.base-vents[data-v-6c441bc6]{fill:none;stroke:var(--scene-structure);stroke-width:2px}.projection-flare[data-v-6c441bc6]{background:var(--silk);width:120px;height:4px;box-shadow:0 0 10px var(--silk), 0 -16px 45px var(--silk-glow-color);opacity:.55;animation:6s ease-in-out infinite alternate emitter-breathe-6c441bc6;position:absolute;top:81%;left:50%;transform:translate(-50%,-50%)}@keyframes emitter-breathe-6c441bc6{to{opacity:.3;transform:translate(-50%,-50%)scaleX(.85)}}@keyframes rail-flow-6c441bc6{to{stroke-dashoffset:0}}@keyframes forge-light-drift-6c441bc6{to{transform:translate(8%,4%)scale(1.12)}}@keyframes chamber-drift-6c441bc6{to{transform:translate(5%)}}@keyframes core-breathe-6c441bc6{to{opacity:.45;transform:translate(-50%,-50%)translateZ(45px)scale(1.1)}}@media (width<=1100px){.signal-forge[data-v-6c441bc6]{height:450px}.forge-aperture[data-v-6c441bc6]{width:450px;height:450px}.projection-base[data-v-6c441bc6]{width:380px;height:102px}.forge-emblem[data-v-6c441bc6]{width:320px;height:320px}.forge-rails[data-v-6c441bc6]{width:470px;height:470px}}@media (width<=760px){.signal-forge[data-v-6c441bc6]{max-width:450px;height:300px;margin:0 auto}.forge-emblem[data-v-6c441bc6]{width:220px;height:220px}.forge-aperture[data-v-6c441bc6]{width:300px;height:300px}.projection-base[data-v-6c441bc6]{width:290px;height:78px}.projection-flare[data-v-6c441bc6]{width:76px}.forge-rails[data-v-6c441bc6]{width:360px;height:360px}}@media (width<=380px){.signal-forge[data-v-6c441bc6]{height:270px}.forge-emblem[data-v-6c441bc6]{width:200px;height:200px}.forge-aperture[data-v-6c441bc6]{width:270px;height:270px}.projection-base[data-v-6c441bc6]{width:260px;height:70px}.forge-rails[data-v-6c441bc6]{width:310px;height:310px}}@media (prefers-reduced-motion:reduce){.ambient[data-v-6c441bc6]{animation:none}.signal-forge[data-v-6c441bc6]{transition:none;transform:none}.forge-assembly[data-v-6c441bc6]{transition:none}.projection-scan[data-v-6c441bc6],.hologram-transmission[data-v-6c441bc6]{display:none}.chamber-lines[data-v-6c441bc6]{transition:none;transform:none}}.hero[data-v-06fa7651]{--pointer-x:0;--pointer-y:0;--scroll-progress:0;min-height:max(700px, calc(100svh - var(--nav-height)));isolation:isolate;background:var(--bg);align-items:center;display:flex;position:relative;overflow:hidden}.hero-atmosphere[data-v-06fa7651]{z-index:-1;pointer-events:none;background:var(--bg);position:absolute;inset:0;overflow:hidden}.vault-environment[data-v-06fa7651]{opacity:.65;transform:translate3d(calc(var(--pointer-x) * -12px), calc(var(--pointer-y) * -8px + var(--scroll-progress) * 50px), 0) scale(1.04);background:url(/media/aranea/silent-vault.webp) 50% 54%/cover no-repeat;transition:transform .9s ease-out,opacity .7s;position:absolute;inset:-4%}.vault-haze[data-v-06fa7651]{background:radial-gradient(ellipse at 70% 60%, var(--scene-violet-light), transparent 55%), radial-gradient(ellipse at 40% 85%, var(--scene-mint-light), transparent 55%);filter:blur(30px);animation:22s ease-in-out infinite alternate vault-drift-06fa7651;position:absolute;inset:28% -10% -10% 25%}.vault-floor[data-v-06fa7651]{background:linear-gradient(180deg, transparent, var(--bg));position:absolute;inset:72% 0 0}@keyframes vault-drift-06fa7651{to{opacity:.55;transform:translate(-4%,-5%)}}.hero-atmosphere[data-v-06fa7651]:after{content:"";background:linear-gradient(0deg, var(--bg), transparent 35%), linear-gradient(90deg, #08090bf5 0%, #08090bdb 32%, #08090b59 64%, #08090b2e), linear-gradient(180deg, #08090b73, transparent 35%);position:absolute;inset:0}.hero-inner[data-v-06fa7651]{width:100%;max-width:calc(var(--content-width) + 4rem);grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:3rem;margin:0 auto;padding:4rem 2rem 6rem;display:grid}.hero-copy[data-v-06fa7651]{z-index:2;max-width:580px;position:relative}.eyebrow[data-v-06fa7651]{letter-spacing:.08em;text-transform:uppercase;margin:0 0 1.8rem;font-size:.75rem}.hero h1[data-v-06fa7651]{letter-spacing:-.035em;text-wrap:balance;max-width:10ch;margin:0;font-size:clamp(3rem,5.1vw,4.7rem);font-weight:600;line-height:1.1}.hero-subtitle[data-v-06fa7651]{max-width:33ch;color:var(--ink-muted);margin:1.6rem 0 0;font-size:clamp(1rem,1.4vw,1.15rem);line-height:1.7}.hero-caption[data-v-06fa7651]{font-family:var(--font-mono);color:var(--ink-faint);flex-wrap:wrap;gap:.3rem;margin:1rem 0 0;font-size:.75rem;line-height:1.9;display:flex}.hero-caption>span[data-v-06fa7651]{white-space:nowrap;font-family:var(--font-mono)}.caption-sep[data-v-06fa7651]{color:var(--silk);margin:0 .2rem}.hero-actions[data-v-06fa7651]{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.hero-primary[data-v-06fa7651],.hero-secondary[data-v-06fa7651]{min-height:48px;font-family:var(--font-mono);border:1px solid var(--silk);transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:3px;justify-content:space-between;align-items:center;gap:1.2rem;padding:.85rem 1.1rem;font-size:.82rem;font-weight:600;display:inline-flex}.hero-primary[data-v-06fa7651]{color:var(--bg);background:var(--silk)}.hero-primary[data-v-06fa7651]:hover{color:var(--bg);background:var(--silk-hover);border-color:var(--silk-hover);box-shadow:var(--silk-glow)}.hero-secondary[data-v-06fa7651]{color:var(--ink);background:var(--bg-elevated);border-color:var(--border-light)}.hero-secondary[data-v-06fa7651]:hover{color:var(--ink);border-color:var(--violet);background:var(--surface)}.thread-cue[data-v-06fa7651]{min-height:44px;font-family:var(--font-mono);color:var(--ink-muted);border:none;flex-direction:column;align-items:center;gap:.6rem;font-size:.75rem;display:flex;position:absolute;bottom:1.8rem;left:50%;transform:translate(-50%)}.thread-cue[data-v-06fa7651]:hover{color:var(--silk-text)}.hero--idle[data-v-06fa7651] *{animation-play-state:paused!important}@media (width<=1100px){.hero-inner[data-v-06fa7651]{gap:1rem;padding:4rem 2rem 7rem}.hero h1[data-v-06fa7651]{font-size:clamp(3rem,5.4vw,4.2rem)}.hero-subtitle[data-v-06fa7651]{font-size:1rem}}@media (width<=760px){.hero[data-v-06fa7651]{min-height:0}.vault-environment[data-v-06fa7651]{opacity:.7;background-position:63% 0}.hero-atmosphere[data-v-06fa7651]:after{background:linear-gradient(180deg, #08090b40, #08090b59 30%, var(--bg) 48%)}.vault-haze[data-v-06fa7651]{inset:0 0 55%}.hero-inner[data-v-06fa7651]{flex-direction:column-reverse;gap:2.2rem;padding:1.4rem 1.25rem 8rem;display:flex}.hero-copy[data-v-06fa7651]{text-align:center;width:100%;max-width:540px}.hero h1[data-v-06fa7651]{margin:0 auto;font-size:clamp(2.7rem,9vw,4.2rem)}.eyebrow[data-v-06fa7651]{letter-spacing:.06em;margin-bottom:1.3rem;font-size:.75rem}.hero-subtitle[data-v-06fa7651]{margin:1.2rem auto 0;font-size:1.02rem}.hero-caption[data-v-06fa7651]{justify-content:center;font-size:.75rem}.hero-actions[data-v-06fa7651]{justify-content:center;margin-top:1.6rem}.hero-primary[data-v-06fa7651],.hero-secondary[data-v-06fa7651]{gap:.65rem;padding:.8rem .9rem;font-size:.76rem}.thread-cue[data-v-06fa7651]{bottom:1.4rem}}@media (width<=380px){.hero-inner[data-v-06fa7651]{gap:1.8rem;padding-left:1rem;padding-right:1rem}.hero-actions[data-v-06fa7651]{grid-template-columns:1fr;gap:.6rem;max-width:250px;margin-left:auto;margin-right:auto;display:grid}.hero-primary[data-v-06fa7651],.hero-secondary[data-v-06fa7651]{padding:.8rem;font-size:.75rem}}@media (prefers-reduced-motion:reduce){.vault-environment[data-v-06fa7651]{transition:none;transform:none}.vault-haze[data-v-06fa7651]{animation:none}}.channel-list[data-v-3bdccd69]{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.channel-link[data-v-3bdccd69]{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--bg-elevated);border-bottom:1px solid var(--border);min-height:52px;transition:border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);align-items:center;gap:.85rem;padding:.75rem .95rem;text-decoration:none;display:flex}.channel-link[data-v-3bdccd69]:hover{border-color:var(--silk);box-shadow:var(--shadow-lg), var(--silk-glow);transform:translateY(-2px)}.channel-marker[data-v-3bdccd69]{background:var(--bg);border:2px solid var(--silk);width:9px;height:9px;box-shadow:var(--silk-glow-sm);border-radius:50%;flex-shrink:0}.channel-body[data-v-3bdccd69]{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.channel-label[data-v-3bdccd69]{font-family:var(--font-mono);letter-spacing:.04em;color:var(--silk-text);font-size:.78rem;font-weight:600}.channel-detail[data-v-3bdccd69]{font-family:var(--font-body);color:var(--ink-muted);overflow-wrap:anywhere;font-size:.82rem}.channel-out[data-v-3bdccd69]{color:var(--ink-faint);flex-shrink:0}.about[data-v-3bdccd69]{padding:var(--section-padding);background:radial-gradient(120% 70% at 50% 0%, var(--surface) 0%, transparent 55%), var(--bg-elevated);border-top:1px solid var(--border);position:relative}.about[data-v-3bdccd69]:before{content:"";background:linear-gradient(90deg, transparent, var(--thread-strong) 50%, transparent);pointer-events:none;height:1px;position:absolute;top:-1px;left:0;right:0}.wrap[data-v-3bdccd69]{max-width:var(--content-width);margin:0 auto}.section-head[data-v-3bdccd69]{margin-bottom:3rem}.eyebrow[data-v-3bdccd69]{margin:0 0 .9rem}.section-title[data-v-3bdccd69]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0;font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.1}.about-grid[data-v-3bdccd69]{grid-template-columns:300px minmax(0,1fr);align-items:start;gap:2.5rem;display:grid}.specimen[data-v-3bdccd69]{top:calc(var(--nav-height) + 1.5rem);background:var(--bg);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-md);flex-direction:column;gap:1.25rem;padding:1.5rem;display:flex;position:sticky}.specimen[data-v-3bdccd69]:before,.specimen[data-v-3bdccd69]:after{content:"";opacity:.6;pointer-events:none;width:8px;height:8px;position:absolute}.specimen[data-v-3bdccd69]:before{border-top:1.5px solid var(--silk);border-left:1.5px solid var(--silk);top:4px;left:4px}.specimen[data-v-3bdccd69]:after{border-top:1.5px solid var(--silk);border-right:1.5px solid var(--silk);top:4px;right:4px}.specimen-ticks-bl[data-v-3bdccd69],.specimen-ticks-br[data-v-3bdccd69]{opacity:.6;pointer-events:none;width:8px;height:8px;position:absolute}.specimen-ticks-bl[data-v-3bdccd69]{border-bottom:1.5px solid var(--silk);border-left:1.5px solid var(--silk);bottom:4px;left:4px}.specimen-ticks-br[data-v-3bdccd69]{border-bottom:1.5px solid var(--silk);border-right:1.5px solid var(--silk);bottom:4px;right:4px}.specimen-mark[data-v-3bdccd69]{object-fit:contain;width:80px;height:80px}.specimen-spec[data-v-3bdccd69]{grid-template-columns:max-content minmax(0,1fr);gap:.6rem .5rem;margin:0;display:grid}.spec-row[data-v-3bdccd69]{grid-template-columns:subgrid;grid-column:1/-1;align-items:baseline;gap:.5rem;display:grid}.spec-row dt[data-v-3bdccd69]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.75rem}.spec-row dd[data-v-3bdccd69]{font-family:var(--font-mono);color:var(--ink);overflow-wrap:anywhere;margin:0;font-size:.82rem}.notes[data-v-3bdccd69]{flex-direction:column;gap:1.5rem;display:flex}.note-block[data-v-3bdccd69]{background:var(--thread-rule-v) 0 0 / 1px 100% no-repeat;border-left:none;padding-left:1.25rem}.note-label[data-v-3bdccd69]{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--silk-text);margin:0 0 .85rem;font-size:.75rem;font-weight:600}.note-text[data-v-3bdccd69]{font-family:var(--font-body);color:var(--ink);max-width:var(--measure);margin:0;font-size:.9rem;line-height:1.7}.tax-list[data-v-3bdccd69]{flex-direction:column;gap:.55rem;margin:0;display:flex}.tax-row[data-v-3bdccd69]{grid-template-columns:8.5rem minmax(0,1fr);align-items:baseline;gap:.75rem;display:grid}.tax-band[data-v-3bdccd69]{font-family:var(--font-mono);color:var(--silk);letter-spacing:.04em;font-size:.74rem;font-weight:600}.tax-tools[data-v-3bdccd69]{font-family:var(--font-mono);color:var(--ink-muted);overflow-wrap:anywhere;margin:0;font-size:.78rem;line-height:1.5}.catalogue-link[data-v-3bdccd69]{color:var(--ink-muted);border-bottom:1px solid #0000;text-decoration:none;transition:color .18s,border-color .18s}.catalogue-link+.catalogue-link[data-v-3bdccd69]:before{content:", ";color:var(--ink-faint)}.catalogue-link[data-v-3bdccd69]:hover,.catalogue-link[data-v-3bdccd69]:focus-visible{color:var(--silk);border-bottom-color:var(--silk)}@media (width<=768px){.about-grid[data-v-3bdccd69]{grid-template-columns:1fr;gap:2rem}.specimen[data-v-3bdccd69]{flex-direction:row;align-items:center;position:static}.specimen-mark[data-v-3bdccd69]{width:64px;height:64px}}@media (width<=480px){.specimen[data-v-3bdccd69]{flex-direction:column;align-items:flex-start;padding:1.1rem}.specimen-spec[data-v-3bdccd69]{width:100%}.tax-row[data-v-3bdccd69]{grid-template-columns:1fr;gap:.1rem}}.catalogue-controls[data-v-6a363bef]{border:1px solid var(--border);border-radius:var(--card-radius-lg);background:linear-gradient(135deg, var(--silk-soft), transparent 45%, var(--violet-soft)), var(--bg-elevated);min-width:0;box-shadow:inset 0 1px 0 var(--thread), var(--shadow-sm);gap:1.25rem;margin-top:2rem;padding:clamp(1rem,3vw,1.5rem);display:grid}.catalogue-label[data-v-6a363bef]{color:var(--ink-muted);font-family:var(--font-mono);margin-bottom:.65rem;font-size:.75rem;line-height:1.6;display:block}.catalogue-search[data-v-6a363bef]{min-width:0}.catalogue-search-field[data-v-6a363bef]{align-items:center;gap:.75rem;min-width:0;display:flex}.catalogue-search-field svg[data-v-6a363bef]{width:1.25rem;height:1.25rem;color:var(--silk);flex:0 0 1.25rem}.catalogue-search input[data-v-6a363bef]{box-sizing:border-box;border:1px solid var(--border-light);border-radius:var(--card-radius);background:var(--surface);width:100%;min-width:0;min-height:48px;color:var(--ink);font:inherit;transition:border-color var(--transition-fast);padding:.75rem;font-size:1rem}.catalogue-search input[data-v-6a363bef]::placeholder{color:var(--ink-faint);opacity:1}.catalogue-moments[data-v-6a363bef]{border:0;min-width:0;margin:0;padding:0}.catalogue-moments legend[data-v-6a363bef]{padding:0}.catalogue-options[data-v-6a363bef]{flex-wrap:wrap;gap:.5rem;display:flex}.catalogue-options button[data-v-6a363bef]{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);max-width:100%;min-height:44px;color:var(--ink-muted);font:inherit;text-align:left;overflow-wrap:anywhere;cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);padding:.65rem .85rem;font-size:.85rem;line-height:1.5}.catalogue-options button[data-v-6a363bef]:hover{color:var(--ink);border-color:var(--thread-strong)}.catalogue-options button[aria-pressed=true][data-v-6a363bef]{color:var(--silk);border-color:var(--thread-bright);background:var(--silk-soft)}.catalogue-search input[data-v-6a363bef]:focus-visible,.catalogue-options button[data-v-6a363bef]:focus-visible{outline:2px solid var(--violet-text);outline-offset:3px}.catalogue-feedback[data-v-6a363bef]{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.65rem;display:flex}.catalogue-reset[data-v-6a363bef]{border:1px solid var(--border-light);background:var(--bg-elevated);min-height:44px;color:var(--silk);font:inherit;cursor:pointer;border-radius:3px;padding:.5rem .75rem;font-size:.8rem}.catalogue-reset[data-v-6a363bef]:focus-visible{outline:2px solid var(--violet-text);outline-offset:3px}.catalogue-results[data-v-6a363bef]{color:var(--ink-faint);font-family:var(--font-mono);margin:0;font-size:.75rem;line-height:1.6}@media (width<=480px){.catalogue-search-field[data-v-6a363bef]{gap:.5rem}.catalogue-options[data-v-6a363bef]{grid-template-columns:minmax(0,1fr);display:grid}}@media (prefers-reduced-motion:reduce){.catalogue-search input[data-v-6a363bef],.catalogue-options button[data-v-6a363bef]{transition:none}}.hub-jumps[data-v-cb0cfcd2]{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.hub-jump[data-v-cb0cfcd2]{border:1px solid var(--border-light);background:var(--bg-elevated);min-height:44px;color:var(--ink);font-family:var(--font-mono);border-radius:3px;justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;font-size:.8rem;text-decoration:none;display:inline-flex}.hub-jump[data-v-cb0cfcd2]:hover{border-color:var(--silk)}.hub-jump--primary[data-v-cb0cfcd2]{background:var(--silk);color:var(--bg);border-color:var(--silk)}.hub-jump--primary[data-v-cb0cfcd2]:hover{color:var(--bg);background:var(--silk-hover)}.hub-empty[data-v-cb0cfcd2]{color:var(--ink-muted);margin:1.5rem 0}.hub[data-v-cb0cfcd2]{padding:var(--section-padding)}.wrap[data-v-cb0cfcd2]{max-width:var(--content-width);margin:0 auto}.section-head[data-v-cb0cfcd2]{margin-bottom:2.75rem}.hub-title[data-v-cb0cfcd2]{margin:0 0 1.25rem}.hub-body[data-v-cb0cfcd2] p{color:var(--ink-muted);max-width:var(--measure);margin:0 0 1rem;line-height:1.7}.hub-body[data-v-cb0cfcd2] p:first-of-type{color:var(--ink);font-size:1.15rem}.hub-strand[data-v-cb0cfcd2]{display:none}@media (width>=861px){.section-head[data-v-cb0cfcd2]{grid-template-rows:auto auto 1fr auto;grid-template-columns:minmax(0,4fr) minmax(0,6fr);align-items:start;column-gap:3.5rem;display:grid}.section-head .eyebrow[data-v-cb0cfcd2]{grid-area:1/1}.hub-title[data-v-cb0cfcd2]{grid-area:2/1;margin-bottom:0}.hub-strand[data-v-cb0cfcd2]{background:var(--thread-rule-v);grid-area:3/1;place-self:stretch start;width:1px;margin:1.4rem 0 0 3px;display:block}.hub-body[data-v-cb0cfcd2]{grid-area:1/2/4}.hub-jumps[data-v-cb0cfcd2]{grid-area:4/1}.section-head .section-onward[data-v-cb0cfcd2]{grid-area:4/2}.hub-body[data-v-cb0cfcd2] p{max-width:none}.hub-body[data-v-cb0cfcd2]{margin-top:.4rem}}.block[data-v-cb0cfcd2]{margin-top:4.5rem}.block-title[data-v-cb0cfcd2]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);align-items:center;gap:.75rem;margin:0 0 1.5rem;font-size:.74rem;font-weight:600;display:flex}.block-title[data-v-cb0cfcd2]:after{content:"";background:var(--thread-rule);flex:1;height:1px}.problem-list[data-v-cb0cfcd2]{flex-direction:column;gap:.7rem;margin:0;display:flex}.problem-row[data-v-cb0cfcd2]{background:var(--thread-rule) 0 100% / 100% 1px no-repeat;border-bottom:none;grid-template-columns:1fr auto;align-items:baseline;gap:1rem;padding-bottom:.7rem;display:grid}.problem-row[data-v-cb0cfcd2]:last-child{background:0 0;padding-bottom:0}.problem-text[data-v-cb0cfcd2]{color:var(--ink);line-height:1.5}.problem-tool[data-v-cb0cfcd2]{font-family:var(--font-mono);margin:0;font-size:.82rem}.loop[data-v-cb0cfcd2]{--node:16px;--node-c:8px}.loop-steps[data-v-cb0cfcd2]{grid-template-columns:repeat(var(--stops), minmax(0, 1fr));gap:0;margin:0;padding:0;list-style:none;display:grid;position:relative}.loop-steps[data-v-cb0cfcd2]:before{content:"";top:calc(var(--node-c) - .5px);left:var(--node-c);background:var(--thread-rule-wide);height:1px;position:absolute;right:0}.loop-step[data-v-cb0cfcd2]{min-width:0;padding-right:2rem;position:relative}@media (width>=861px){.loop-steps[data-v-cb0cfcd2]{grid-template-rows:repeat(5,auto)}.loop-step[data-v-cb0cfcd2]{grid-row:span 5;grid-template-rows:subgrid;align-content:start;display:grid}}.loop-step[data-v-cb0cfcd2]:before{content:"";top:var(--node);bottom:.6rem;left:calc(var(--node-c) - .5px);background:var(--thread-rule-v);width:1px;position:absolute}.step-head[data-v-cb0cfcd2]{align-items:center;gap:.6rem;margin:0 0 .9rem;display:flex;position:relative}.step-node[data-v-cb0cfcd2]{flex:0 0 var(--node);width:var(--node);height:var(--node)}.step-node circle[data-v-cb0cfcd2]:first-child{fill:var(--bg);stroke:var(--silk);stroke-width:1.5px}.step-node circle[data-v-cb0cfcd2]:last-child{fill:var(--silk)}.step-index[data-v-cb0cfcd2]{background:var(--bg);font-family:var(--font-mono);color:var(--silk-text);padding:0 .4rem;font-size:.72rem;line-height:1}.step-label[data-v-cb0cfcd2]{color:var(--ink);margin:0 0 .5rem;font-size:1rem;font-weight:600;line-height:1.35}.step-label[data-v-cb0cfcd2],.step-detail[data-v-cb0cfcd2],.step-count[data-v-cb0cfcd2],.step-tools[data-v-cb0cfcd2]{margin-left:calc(var(--node) + .6rem)}.step-detail[data-v-cb0cfcd2]{color:var(--ink-muted);margin-top:0;margin-bottom:.9rem;font-size:.95rem;line-height:1.6}.step-count[data-v-cb0cfcd2]{font-family:var(--font-mono);color:var(--ink-faint);margin-top:0;margin-bottom:.5rem;font-size:.72rem}.step-tools[data-v-cb0cfcd2]{font-family:var(--font-mono);margin-bottom:0;padding:0;font-size:.82rem;list-style:none}.step-tools li[data-v-cb0cfcd2]{position:relative}.step-tools .tool-link[data-v-cb0cfcd2]{min-height:32px;margin-left:calc(-1 * (var(--node) + .6rem) + var(--node-c) - 5px);border-bottom:0;align-items:center;gap:.6rem;display:inline-flex}.tool-node[data-v-cb0cfcd2]{flex:0 0 10px;width:10px;height:10px}.tool-node circle[data-v-cb0cfcd2]{fill:var(--bg);stroke:var(--thread-bright);stroke-width:1.5px;transition:fill var(--transition-fast)}.step-tools .tool-link:hover .tool-node circle[data-v-cb0cfcd2],.step-tools .tool-link:focus-visible .tool-node circle[data-v-cb0cfcd2]{fill:var(--silk)}.matrix[data-v-cb0cfcd2]{margin:0 0 2rem}.matrix-caption[data-v-cb0cfcd2]{max-width:var(--measure);color:var(--ink-muted);margin:0 0 1.25rem;font-size:.92rem;line-height:1.6}.matrix-title[data-v-cb0cfcd2]{color:var(--ink);margin-bottom:.25rem;font-size:1rem;font-weight:600;display:block}.matrix-scroll[data-v-cb0cfcd2]{overflow-x:auto}.matrix-grid[data-v-cb0cfcd2]{border-collapse:collapse;table-layout:fixed;width:100%;min-width:520px}.matrix-grid th[data-v-cb0cfcd2],.matrix-grid td[data-v-cb0cfcd2]{text-align:left;vertical-align:middle;padding:.75rem}.matrix-grid thead th[data-v-cb0cfcd2]{vertical-align:bottom;font-family:var(--font-mono);color:var(--ink-muted);transition:opacity var(--transition-fast);font-size:.72rem;font-weight:500;line-height:1.4}.matrix-grid thead td[data-v-cb0cfcd2]{width:26%}.matrix-step[data-v-cb0cfcd2]{color:var(--silk-text);margin-bottom:.2rem;display:block}.matrix-grid tbody th[data-v-cb0cfcd2]{color:var(--ink);padding-left:0;font-size:.88rem;font-weight:600}.matrix-grid tbody tr[data-v-cb0cfcd2]{background:var(--thread-rule) 0 0 / 100% 1px no-repeat}.matrix-grid tbody td[data-v-cb0cfcd2]{border-left:1px solid var(--border)}.matrix-grid .is-dim[data-v-cb0cfcd2]{opacity:.35}.matrix-nodes[data-v-cb0cfcd2]{flex-wrap:wrap;gap:.35rem;display:flex}.matrix-node[data-v-cb0cfcd2]{width:18px;height:18px;transition:opacity var(--transition-fast);display:inline-flex;position:relative}.matrix-node svg[data-v-cb0cfcd2]{width:100%;height:100%}.matrix-node circle[data-v-cb0cfcd2]{fill:var(--silk);stroke:var(--bg);stroke-width:2px}.matrix-node.is-dim[data-v-cb0cfcd2]{opacity:.18}.matrix-node[data-v-cb0cfcd2]:after{content:attr(data-name);border:1px solid var(--border-light);background:var(--surface-alt);color:var(--ink);font-family:var(--font-mono);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:2;border-radius:4px;padding:.25rem .5rem;font-size:.72rem;position:absolute;bottom:calc(100% + 6px);left:50%;translate:-50%}.matrix-node[data-v-cb0cfcd2]:hover:after{opacity:1}.matrix-key[data-v-cb0cfcd2]{display:none}@media (width<=640px){.matrix-grid[data-v-cb0cfcd2]{min-width:0}.matrix-grid thead td[data-v-cb0cfcd2]{width:38%}.matrix-grid th[data-v-cb0cfcd2],.matrix-grid td[data-v-cb0cfcd2]{padding:.6rem .4rem}.matrix-grid tbody th[data-v-cb0cfcd2]{overflow-wrap:anywhere;padding-left:0;font-size:.8rem}.matrix-step[data-v-cb0cfcd2]{margin:0}.matrix-moment[data-v-cb0cfcd2]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.matrix-nodes[data-v-cb0cfcd2]{gap:.2rem}.matrix-node[data-v-cb0cfcd2]{width:14px;height:14px}.matrix-key[data-v-cb0cfcd2]{font-family:var(--font-mono);color:var(--ink-muted);flex-wrap:wrap;gap:.35rem 1rem;margin:1rem 0 0;font-size:.72rem;display:flex}.matrix-key b[data-v-cb0cfcd2]{color:var(--silk-text);font-weight:500}}.table-scroll[data-v-cb0cfcd2]{margin-top:2.5rem;overflow-x:auto}.hub-table[data-v-cb0cfcd2]{border-collapse:collapse;width:100%;font-size:.88rem}.hub-table th[data-v-cb0cfcd2],.hub-table td[data-v-cb0cfcd2]{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:.65rem .9rem .65rem 0}.hub-table thead th[data-v-cb0cfcd2]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.68rem;font-weight:600}.hub-table tbody th[data-v-cb0cfcd2]{font-weight:600}.hub-table tbody td[data-v-cb0cfcd2]{color:var(--ink-muted)}.hub-table tbody tr[data-v-cb0cfcd2]{transition:background var(--transition-fast)}.hub-table tbody tr[data-v-cb0cfcd2]:hover{background:var(--silk-soft)}.moment-cell[data-v-cb0cfcd2],.status-cell[data-v-cb0cfcd2]{align-items:center;gap:.6rem;display:inline-flex}.moment-track[data-v-cb0cfcd2]{flex:none;width:48px;height:10px;overflow:visible}.moment-track line[data-v-cb0cfcd2]{stroke:var(--border-light);stroke-width:1px}.moment-track circle[data-v-cb0cfcd2]{fill:var(--border-light)}.moment-track circle.is-on[data-v-cb0cfcd2]{fill:var(--silk)}.status-node[data-v-cb0cfcd2]{width:8px;height:8px}.status-node circle[data-v-cb0cfcd2]{fill:currentColor}.tool-link[data-v-cb0cfcd2]{color:var(--ink-muted);border-bottom:1px solid #0000;text-decoration:none;transition:color .18s,border-color .18s}.tool-link+.tool-link[data-v-cb0cfcd2]:before{content:" · ";color:var(--ink-faint)}.tool-link[data-v-cb0cfcd2]:hover,.tool-link[data-v-cb0cfcd2]:focus-visible{color:var(--silk);border-bottom-color:var(--silk)}.hub-table tbody th .tool-link[data-v-cb0cfcd2]{color:var(--ink)}@media (width<=860px){.hub-jumps[data-v-cb0cfcd2]{margin:0 0 1.5rem}.loop-steps[data-v-cb0cfcd2]{grid-template-columns:1fr;gap:2rem}.loop-steps[data-v-cb0cfcd2]:before{top:var(--node-c);bottom:0;left:calc(var(--node-c) - .5px);background:var(--thread-rule-v);width:1px;height:auto;right:auto}.loop-step[data-v-cb0cfcd2]{padding-right:0}.loop-step[data-v-cb0cfcd2]:before{display:none}}@media (width<=640px){.hub-jumps[data-v-cb0cfcd2]{grid-template-columns:minmax(0,1fr);display:grid}.hub-jump[data-v-cb0cfcd2]{font-size:.85rem}.table-scroll[data-v-cb0cfcd2]{overflow:visible}.hub-table tbody tr[data-v-cb0cfcd2]:hover{background:var(--surface)}.hub-table[data-v-cb0cfcd2]{display:block}.hub-table thead[data-v-cb0cfcd2]{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.hub-table tbody[data-v-cb0cfcd2]{gap:.85rem;display:grid}.hub-table tbody tr[data-v-cb0cfcd2]{border:1px solid var(--border);border-radius:var(--card-radius);background:var(--surface);min-width:0;padding:.35rem 1rem .9rem;display:grid}.hub-table tbody th[data-v-cb0cfcd2],.hub-table tbody td[data-v-cb0cfcd2]{white-space:normal;overflow-wrap:anywhere;border:0;min-width:0;padding:0}.hub-table tbody th .tool-link[data-v-cb0cfcd2]{align-items:center;width:100%;min-height:44px;padding:.5rem 0;line-height:1.5;display:flex}.hub-table tbody td[data-v-cb0cfcd2]{grid-template-columns:minmax(0,2fr) minmax(0,3fr);align-items:baseline;gap:.75rem;padding-top:.45rem;line-height:1.5;display:grid}.hub-table tbody td[data-v-cb0cfcd2]:before{content:attr(data-label);color:var(--ink-faint);font-family:var(--font-mono);font-size:.75rem}.hub-table .tool-link[data-v-cb0cfcd2]:focus-visible{outline:var(--focus-ring);outline-offset:2px}}@media (width<=520px){.problem-row[data-v-cb0cfcd2]{grid-template-columns:1fr;gap:.25rem}.block[data-v-cb0cfcd2]{margin-top:3.5rem}}@media (prefers-reduced-motion:reduce){.tool-node circle[data-v-cb0cfcd2],.matrix-node[data-v-cb0cfcd2],.matrix-node[data-v-cb0cfcd2]:after,.matrix-grid thead th[data-v-cb0cfcd2],.hub-table tbody tr[data-v-cb0cfcd2]{transition:none}}.footer[data-v-410fcc09]{background:var(--bg-elevated);border-top:1px solid var(--border)}.wrap[data-v-410fcc09]{max-width:var(--measure-page);padding:var(--section-padding);margin:0 auto}@media (width>=760px){.wrap[data-v-410fcc09]{grid-template-columns:1fr 1fr;align-items:start;column-gap:3rem;display:grid}.section-head[data-v-410fcc09]{margin-bottom:0}.strand-list[data-v-410fcc09]{margin-top:.45rem}}.strand-list[data-v-410fcc09]{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.strand-item[data-v-410fcc09]{display:block}.strand[data-v-410fcc09]{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--card-radius);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);border-bottom:none;align-items:center;gap:1rem;padding:1rem 1.25rem;text-decoration:none;display:flex;position:relative}.strand[data-v-410fcc09]:hover{border-color:var(--silk);box-shadow:var(--shadow-md), var(--silk-glow);transform:translateY(-2px)}.strand-node[data-v-410fcc09]{background:var(--bg);border:2px solid var(--silk);width:9px;height:9px;box-shadow:var(--silk-glow-sm);transition:background var(--transition-fast);border-radius:50%;flex-shrink:0}.strand:hover .strand-node[data-v-410fcc09]{background:var(--silk)}.strand-main[data-v-410fcc09]{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}.strand-val[data-v-410fcc09]{font-family:var(--font-mono);color:var(--silk-text);word-break:break-word;font-size:.9rem;font-weight:600}.strand-detail[data-v-410fcc09]{font-family:var(--font-body);color:var(--ink-muted);font-size:.8rem}.strand-arrow[data-v-410fcc09]{font-family:var(--font-mono);color:var(--ink-faint);transition:color var(--transition-fast), transform var(--transition-fast);flex-shrink:0}.strand:hover .strand-arrow[data-v-410fcc09]{color:var(--silk-text);transform:translate(2px,-2px)}.footer-base[data-v-410fcc09]{border-top:1px solid var(--border);justify-content:center;align-items:center;gap:.6rem;padding:1.5rem 2rem;display:flex}.base-mark[data-v-410fcc09]{background:var(--silk);width:6px;height:6px;box-shadow:var(--silk-glow-sm);border-radius:50%}.sig-author[data-v-410fcc09]{color:inherit;transition:color var(--transition-fast), border-color var(--transition-fast);border-bottom:1px solid #0000}.sig-author[data-v-410fcc09]:hover{color:var(--silk-text);border-bottom-color:var(--thread-strong)}.base-sig[data-v-410fcc09]{font-family:var(--font-mono);letter-spacing:.06em;color:var(--ink-muted);margin:0;font-size:.72rem}@media (width<=480px){.strand[data-v-410fcc09]{gap:.75rem;padding:.85rem 1rem}.strand-detail[data-v-410fcc09]{font-size:.75rem}.footer-base[data-v-410fcc09]{text-align:center;flex-direction:column}}.chat-fab[data-v-70b0eaa0]{bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));right:calc(1.25rem + env(safe-area-inset-right,0px));background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;z-index:100;width:52px;height:52px;color:var(--silk-text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed}.chat-fab[data-v-70b0eaa0]:hover{border-color:var(--silk);box-shadow:var(--silk-glow);transform:scale(1.05)}.fab-label[data-v-70b0eaa0]{white-space:nowrap;border:1px solid var(--border);border-radius:var(--card-radius);background:var(--bg-elevated);box-shadow:var(--shadow-sm);font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);opacity:0;pointer-events:none;transition:opacity var(--transition-fast), transform var(--transition-fast);padding:.4rem .7rem;font-size:.72rem;position:absolute;top:50%;right:calc(100% + .6rem);transform:translateY(-50%)translate(6px)}@media (hover:hover) and (pointer:fine){.chat-fab:hover .fab-label[data-v-70b0eaa0],.chat-fab:focus-visible .fab-label[data-v-70b0eaa0]{opacity:1;transform:translateY(-50%)translate(0)}}.fab-spider[data-v-70b0eaa0]{transition:transform var(--transition-slow);display:block}.chat-fab:hover .fab-spider[data-v-70b0eaa0]{transform:scale(1.08)rotate(6deg)}@media (prefers-reduced-motion:no-preference){.fab-spider[data-v-70b0eaa0]{animation:6s ease-in-out infinite spider-sway-70b0eaa0}@keyframes spider-sway-70b0eaa0{0%,to{transform:rotate(0)}50%{transform:rotate(4deg)}}.chat-fab:hover .fab-spider[data-v-70b0eaa0]{animation:none;transform:scale(1.08)rotate(6deg)}}.chat-panel[data-v-70b0eaa0]{bottom:calc(5rem + env(safe-area-inset-bottom,0px));right:calc(1.25rem + env(safe-area-inset-right,0px));background:var(--bg-elevated);border:1px solid var(--border);border-top:2px solid var(--silk);border-radius:var(--card-radius);z-index:99;width:380px;max-height:500px;box-shadow:var(--shadow-lg);font-family:var(--font-body);flex-direction:column;display:flex;position:fixed}.chat-panel[data-v-70b0eaa0]:before{content:"";background:var(--silk-sheen);border-radius:var(--card-radius) var(--card-radius) 0 0;pointer-events:none;height:2px;position:absolute;top:-2px;left:0;right:0}.chat-header[data-v-70b0eaa0]{background:var(--surface);border-bottom:1px solid var(--border);border-radius:var(--card-radius) var(--card-radius) 0 0;justify-content:space-between;align-items:center;padding:.5rem .85rem;display:flex}.chat-header-cmd[data-v-70b0eaa0]{font-family:var(--font-body);color:var(--silk-text);margin:0;font-size:.72rem;font-weight:600}.chat-close[data-v-70b0eaa0]{color:var(--ink-faint);cursor:pointer;background:0 0;border:none;padding:2px 6px;font-size:1.2rem;line-height:1}.chat-close[data-v-70b0eaa0]:hover{color:var(--silk-text)}.chat-close[data-v-70b0eaa0]:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:2px}.chat-body[data-v-70b0eaa0]{background:var(--bg);outline-offset:-2px;outline:2px solid #0000;flex-direction:column;flex:1;gap:.5rem;max-height:320px;padding:.75rem .85rem;display:flex;overflow-y:auto}.chat-body[data-v-70b0eaa0]:focus-visible{outline-color:var(--silk);outline-offset:-2px}.chat-placeholder[data-v-70b0eaa0]{text-align:center;padding:1.5rem 1rem}.placeholder-text[data-v-70b0eaa0]{color:var(--ink-muted);font-size:.78rem;font-family:var(--font-body)}.msg[data-v-70b0eaa0]{font-size:.8rem;line-height:1.5}.msg-prefix[data-v-70b0eaa0]{color:var(--ink-faint);font-weight:600}.msg.spider .msg-prefix[data-v-70b0eaa0]{color:var(--silk)}.msg.user .msg-prefix[data-v-70b0eaa0]{color:var(--silk-text)}.msg-colon[data-v-70b0eaa0]{color:var(--ink-faint);margin:0 .15rem}.msg-text[data-v-70b0eaa0]{color:var(--ink);white-space:pre-wrap}.msg-text.loading[data-v-70b0eaa0]{color:var(--ink-faint)}.msg-link[data-v-70b0eaa0]{color:var(--silk-text);border-bottom:1px solid var(--thread-strong);font-weight:600}.msg-link[data-v-70b0eaa0]:hover{color:var(--silk-hover);border-color:var(--silk)}.msg--error .msg-prefix[data-v-70b0eaa0],.msg--error .msg-text[data-v-70b0eaa0]{color:var(--error)}.cursor-blink[data-v-70b0eaa0]{color:var(--silk)}.chat-input-row[data-v-70b0eaa0]{border-top:1px solid var(--border);background:var(--bg-elevated);align-items:center;gap:.4rem;padding:.5rem .85rem;display:flex}.chat-input-row[data-v-70b0eaa0]:focus-within{outline:var(--focus-ring);outline-offset:-2px;border-radius:2px}.sr-only[data-v-70b0eaa0]{clip:rect(0,0,0,0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.chat-input[data-v-70b0eaa0]{font-family:var(--font-body);color:var(--ink);caret-color:var(--silk);background:0 0;border:none;outline:none;flex:1;font-size:.9rem}.chat-input[data-v-70b0eaa0]::placeholder{color:var(--ink-faint);opacity:1}.send-btn[data-v-70b0eaa0]{font-family:var(--font-mono);border:1px solid var(--border);color:var(--silk-text);cursor:pointer;transition:border-color var(--transition-fast);background:0 0;border-radius:3px;flex-shrink:0;padding:.3rem .6rem;font-size:.7rem;font-weight:600}.send-btn[data-v-70b0eaa0]:hover:not(:disabled){border-color:var(--silk)}.send-btn[data-v-70b0eaa0]:disabled{opacity:.5;cursor:default}.chat-footer[data-v-70b0eaa0]{border-top:1px solid var(--border);background:var(--surface);padding:.3rem .85rem}.footer-text[data-v-70b0eaa0]{font-family:var(--font-body);color:var(--ink-faint);font-size:.7rem}.chat-enter-active[data-v-70b0eaa0]{transition:opacity .18s,transform .18s}.chat-leave-active[data-v-70b0eaa0]{transition:opacity .12s,transform .12s}.chat-enter-from[data-v-70b0eaa0]{opacity:0;transform:translateY(8px)}.chat-leave-to[data-v-70b0eaa0]{opacity:0;transform:translateY(4px)}@media (width<=480px){.chat-fab[data-v-70b0eaa0]{width:44px;height:44px;bottom:calc(.75rem + env(safe-area-inset-bottom,0px));right:calc(.75rem + env(safe-area-inset-right,0px))}.chat-panel[data-v-70b0eaa0]{width:calc(100vw - 1rem);max-height:65vh;bottom:4.5rem;right:.5rem}}.not-found[data-v-51f40b86]{background:radial-gradient(46% 50% at 50% 42%, var(--lamp-glow) 0%, transparent 70%), linear-gradient(0deg, var(--fog) 0%, transparent 34%), radial-gradient(130% 100% at 50% 38%, var(--bg-elevated) 0%, var(--bg) 64%);justify-content:center;align-items:center;min-height:70vh;padding:3rem 1.5rem;display:flex}.nf-panel[data-v-51f40b86]{text-align:center;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--card-radius-lg);width:100%;max-width:520px;box-shadow:var(--shadow-lg);padding:3rem 2rem}.eyebrow[data-v-51f40b86]{margin:0 0 1rem}.nf-title[data-v-51f40b86]{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 1rem;font-size:clamp(2.4rem,7vw,4rem);font-weight:600;line-height:1}.nf-detail[data-v-51f40b86]{font-family:var(--font-body);color:var(--ink-muted);max-width:42ch;margin:0 auto 2rem;font-size:.95rem;line-height:1.7}.nf-link[data-v-51f40b86]{font-family:var(--font-mono);letter-spacing:.04em;color:var(--silk-text);border-bottom:none;border:1px solid var(--border);border-radius:var(--card-radius);transition:border-color var(--transition-fast), box-shadow var(--transition-fast), color var(--transition-fast);align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.82rem;font-weight:600;text-decoration:none;display:inline-flex}.nf-link[data-v-51f40b86]:hover{color:var(--silk-hover);border-color:var(--silk);box-shadow:var(--silk-glow)}.nf-link-arrow[data-v-51f40b86]{transition:transform var(--transition-fast)}.nf-link:hover .nf-link-arrow[data-v-51f40b86]{transform:translate(-3px)}.share[data-v-6bebd2b0]{flex-wrap:wrap;align-items:baseline;gap:.5rem;display:inline-flex}.share-button[data-v-6bebd2b0]{font-family:var(--font-mono);font-size:.8rem;font-weight:600;line-height:inherit;color:var(--silk-text);border:0;border-bottom:1px solid var(--thread-strong);cursor:pointer;transition:color var(--transition-fast), border-color var(--transition-fast);background:0 0;padding:0}.share-button[data-v-6bebd2b0]:hover,.share-button[data-v-6bebd2b0]:focus-visible{color:var(--silk-hover);border-bottom-color:var(--silk)}.share-button[data-v-6bebd2b0]:focus-visible{outline:var(--focus-ring);outline-offset:3px}@media (pointer:coarse){.share-button[data-v-6bebd2b0]{position:relative}.share-button[data-v-6bebd2b0]:after{content:"";position:absolute;inset:-12px -6px}}.share-status[data-v-6bebd2b0]:empty{display:none}.share-copied[data-v-6bebd2b0],.share-manual[data-v-6bebd2b0]{color:var(--ink-muted);font-size:.85em}.share-manual code[data-v-6bebd2b0]{font-family:var(--font-mono);word-break:break-all;font-size:.9em}.project-hero[data-v-1cb0a0fc]{background:var(--thread-rule-wide) 0 100% / 100% 1px no-repeat;flex-direction:column;align-items:flex-start;gap:1rem;margin-bottom:.5rem;padding-bottom:2.5rem;display:flex}.project-intro[data-v-1cb0a0fc],.project-facts[data-v-1cb0a0fc]{flex-direction:column;align-items:flex-start;gap:1rem;min-width:0;display:flex}.project-hero h1[data-v-1cb0a0fc]{margin:0;font-size:clamp(2.5rem,6vw,4rem);line-height:1}.project-tagline[data-v-1cb0a0fc]{font-family:var(--font-body);color:var(--ink);max-width:var(--measure);margin:0;font-size:1.05rem;line-height:1.6}.project-origin[data-v-1cb0a0fc]{border-left:2px solid var(--silk);max-width:var(--measure);font-family:var(--font-body);color:var(--ink-muted);margin:0;padding-left:1rem;font-size:.88rem;font-style:italic;line-height:1.7}.project-tech[data-v-1cb0a0fc]{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.tech-chip[data-v-1cb0a0fc]{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);border:1px solid var(--border);background:var(--surface);border-radius:3px;padding:.2rem .5rem;font-size:.75rem;font-weight:500}.project-meta[data-v-1cb0a0fc]{flex-wrap:wrap;align-items:center;gap:.75rem;margin:0;display:flex}.project-status[data-v-1cb0a0fc]{align-items:center;gap:.4rem;display:inline-flex}.status-dot[data-v-1cb0a0fc]{border-radius:50%;width:7px;height:7px}.status-label[data-v-1cb0a0fc]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;font-weight:600}.project-kind[data-v-1cb0a0fc]{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--silk);border:1px solid var(--silk-soft);background:var(--silk-soft);border-radius:3px;padding:.15rem .45rem;font-size:.72rem;font-weight:600}.project-license[data-v-1cb0a0fc]{font-family:var(--font-mono);letter-spacing:.08em;color:var(--ink-faint);border:1px solid var(--border);border-radius:3px;padding:.15rem .45rem;font-size:.72rem}.project-links[data-v-1cb0a0fc]{flex-wrap:wrap;gap:1.25rem;margin:0;display:flex}.project-links a[data-v-1cb0a0fc]{font-family:var(--font-mono);color:var(--silk-text);border-bottom:1px solid var(--thread-strong);transition:color var(--transition-fast), border-color var(--transition-fast);font-size:.8rem;font-weight:600}.project-links a[data-v-1cb0a0fc]:hover{color:var(--silk-hover);border-color:var(--silk)}@media (pointer:coarse){.project-links a[data-v-1cb0a0fc]{align-items:center;min-height:44px;display:inline-flex}}@media (width<=640px){.project-intro[data-v-1cb0a0fc],.project-facts[data-v-1cb0a0fc]{width:100%}.project-hero h1[data-v-1cb0a0fc]{overflow-wrap:anywhere;font-size:clamp(2rem,9vw,3rem);line-height:1.08}.project-origin[data-v-1cb0a0fc]{font-size:.95rem}.tech-chip[data-v-1cb0a0fc]{font-size:.8rem}.status-label[data-v-1cb0a0fc],.project-kind[data-v-1cb0a0fc],.project-license[data-v-1cb0a0fc]{font-size:.78rem}.project-links[data-v-1cb0a0fc]{gap:.6rem;width:100%}.project-links a[data-v-1cb0a0fc]{border:1px solid var(--border-light);border-radius:var(--card-radius);background:var(--bg-elevated);align-items:center;gap:.45rem;min-height:44px;padding:.65rem .8rem;font-size:.85rem;display:flex}.project-links a[data-v-1cb0a0fc]:focus-visible{outline:var(--focus-ring);outline-offset:2px}.project-links[data-v-1cb0a0fc] .share-button{border:1px solid var(--border-light);border-radius:var(--card-radius);background:var(--bg-elevated);align-items:center;min-height:44px;padding:.65rem .8rem;font-size:.85rem;display:flex}.project-links[data-v-1cb0a0fc] .share-button:hover{border-color:var(--silk)}.project-links[data-v-1cb0a0fc] .share-button:after{content:none}.project-links[data-v-1cb0a0fc] .share-button:focus-visible{outline-offset:2px}}@media (width>=1024px){.project-hero[data-v-1cb0a0fc]{flex-direction:row;align-items:flex-start;gap:3.5rem}.project-intro[data-v-1cb0a0fc]{flex:1}.project-facts[data-v-1cb0a0fc]{background:var(--thread-rule-v) 0 0 / 1px 100% no-repeat;border-left:none;flex:0 0 15rem;gap:1.25rem;margin-top:.75rem;padding-left:1.25rem}.project-links[data-v-1cb0a0fc]{flex-direction:column;align-items:flex-start;gap:.6rem}}.project-list[data-v-2ceb7b72]{padding:var(--section-padding);margin:0 auto}.list-band-label[data-v-2ceb7b72]{margin:2.5rem 0 1rem}.section-onward--foot[data-v-2ceb7b72]{margin:2rem 0 0}.row-status[data-v-2ceb7b72]{font-family:var(--font-mono);white-space:nowrap;margin-left:auto;font-size:.72rem}.row-tech[data-v-2ceb7b72]{flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:1.2rem;list-style:none;display:flex}.row-tech li[data-v-2ceb7b72]{font-family:var(--font-mono);color:var(--ink-faint);border:1px solid var(--border);background:var(--surface);border-radius:3px;padding:.2rem .4rem;font-size:.72rem}.project-switcher[data-v-a2ba2321]{background:var(--thread-rule) 0 0 / 100% 1px no-repeat;border-top:none;margin-top:3.5rem;padding-top:1.5rem}.switcher-title[data-v-a2ba2321]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-top:none;margin:0 0 1.1rem;padding-top:0;font-size:.68rem;font-weight:600}.switcher-list[data-v-a2ba2321]{flex-wrap:wrap;gap:.5rem .75rem;max-width:none;margin:0;padding:0;list-style:none;display:flex}.switcher-link[data-v-a2ba2321]{min-height:44px;font-family:var(--font-mono);color:var(--ink-muted);border:1px solid var(--border);background:var(--surface);transition:color var(--transition-fast), border-color var(--transition-fast), background var(--transition-fast);border-radius:3px;align-items:center;gap:.55rem;padding:.35rem .85rem;font-size:.78rem;font-weight:500;text-decoration:none;display:inline-flex}.switcher-link[data-v-a2ba2321]:hover{color:var(--silk-text);border-color:var(--silk);background:var(--bg-elevated)}.switcher-marker[data-v-a2ba2321]{background:var(--bg);border:2px solid var(--thread-strong);width:7px;height:7px;transition:border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;flex-shrink:0}.switcher-link:hover .switcher-marker[data-v-a2ba2321]{border-color:var(--silk);box-shadow:var(--silk-glow-sm)}@media (width<=640px){.switcher-list[data-v-a2ba2321]{flex-direction:column;align-items:stretch}.switcher-link[data-v-a2ba2321]{justify-content:flex-start;width:100%;font-size:.85rem;display:flex}.switcher-name[data-v-a2ba2321]{overflow-wrap:anywhere;min-width:0}}.nav-links[data-v-c8ef5a23]{display:contents}.nav-item[data-v-c8ef5a23]{align-self:stretch;align-items:center;display:flex;position:relative}.section-link[data-v-c8ef5a23]{color:var(--ink-muted);letter-spacing:.03em;transition:color var(--transition-fast);border-bottom:none;align-self:stretch;align-items:center;padding:0 .6rem;text-decoration:none;display:inline-flex;position:relative}.section-link[data-v-c8ef5a23]:hover{color:var(--ink)}.section-link.active[data-v-c8ef5a23]{color:var(--silk-text)}.section-link[data-v-c8ef5a23]:before{content:"";box-sizing:border-box;background:var(--bg-elevated);border:2px solid var(--thread-strong);width:7px;height:7px;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;position:absolute;bottom:-3px;left:50%;transform:translate(-50%)}.section-link[data-v-c8ef5a23]:hover:before,.section-link[data-v-c8ef5a23]:focus-visible:before{border-color:var(--silk);box-shadow:var(--silk-glow-sm)}.section-link.active[data-v-c8ef5a23]:before{background:var(--silk);border-color:var(--silk);box-shadow:var(--silk-glow-sm)}@media (width<=600px){.section-link[data-v-c8ef5a23]{padding:0 .35rem;font-size:.84rem}}.nav-trigger[data-v-c8ef5a23]{cursor:pointer;font:inherit;line-height:inherit;text-align:inherit;appearance:none;background:0 0;border:none;margin:0}.nav-chevron[data-v-c8ef5a23]{vertical-align:.12em;width:0;height:0;transition:transform var(--transition-fast);border-top:4px solid;border-left:3.5px solid #0000;border-right:3.5px solid #0000;margin-left:.4rem;display:inline-block}.nav-chevron.open[data-v-c8ef5a23]{transform:rotate(180deg)}.nav-menu[data-v-c8ef5a23]{--strand-x:1.1rem;z-index:60;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--card-radius);min-width:13rem;box-shadow:var(--shadow-lg), -1px -1px 0 var(--thread-strong), 1px 1px 0 var(--violet-soft);margin:0;padding:.65rem 0;position:absolute;top:100%;left:0}.nav-menu[data-v-c8ef5a23]:before{content:"";left:var(--strand-x);background:var(--thread-rule-v);pointer-events:none;width:1px;position:absolute;top:.75rem;bottom:.75rem}.nav-menu-list[data-v-c8ef5a23]{margin:0;padding:0;list-style:none}.nav-band>.nav-menu-list[data-v-c8ef5a23]:first-child{margin-top:.5rem}.nav-band-label[data-v-c8ef5a23]{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:.7rem 0 .25rem;padding:0 .9rem 0 2rem;font-size:.72rem;font-weight:600}.nav-menu-link[data-v-c8ef5a23]{font-family:var(--font-mono);color:var(--ink-muted);white-space:nowrap;transition:color var(--transition-fast), background var(--transition-fast);border-bottom:none;border-radius:0;padding:.42rem .9rem .42rem 2rem;font-size:.86rem;text-decoration:none;display:block;position:relative}.nav-menu-link[data-v-c8ef5a23]:hover{color:var(--silk-text);background:var(--surface)}.nav-menu-link[aria-current=page][data-v-c8ef5a23]{color:var(--silk-text)}.nav-menu-link[data-v-c8ef5a23]:before{content:"";left:calc(var(--strand-x) - 3px);box-sizing:border-box;background:var(--bg-elevated);border:2px solid var(--thread-strong);width:7px;height:7px;transition:background var(--transition-fast), border-color var(--transition-fast), box-shadow var(--transition-fast);border-radius:50%;position:absolute;top:50%;transform:translateY(-50%)}.nav-menu-link[data-v-c8ef5a23]:hover:before,.nav-menu-link[data-v-c8ef5a23]:focus-visible:before{border-color:var(--silk);box-shadow:var(--silk-glow-sm)}.nav-menu-link[aria-current=page][data-v-c8ef5a23]:before{background:var(--silk);border-color:var(--silk);box-shadow:var(--silk-glow-sm)}@media (pointer:coarse){.nav-menu-link[data-v-c8ef5a23]{align-items:center;min-height:44px;display:flex}}.nav-flat[data-v-c8ef5a23]{flex-direction:column;align-items:center;gap:.5rem;width:100%;display:flex}.nav-flat-title[data-v-c8ef5a23]{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-faint);border-top:none;margin:0;padding:.3rem .6rem;font-size:.75rem;font-weight:600}.nav-flat-list[data-v-c8ef5a23]{flex-direction:column;align-items:stretch;gap:.15rem;min-width:14rem;margin:0;padding:0;list-style:none;display:flex}.nav-flat>.nav-flat-list[data-v-c8ef5a23]{background:var(--thread-rule) 0 0 / 100% 1px no-repeat;padding-top:.5rem}.nav-flat-band[data-v-c8ef5a23]{flex-direction:column;align-items:center;width:100%;display:flex}.nav-flat .nav-band-label[data-v-c8ef5a23]{margin:.75rem 0 .35rem;padding:0;font-size:.72rem}.nav-flat-link[data-v-c8ef5a23]{min-height:44px;font-family:var(--font-mono);color:var(--ink-muted);transition:color var(--transition-fast), background var(--transition-fast);border-bottom:none;border-radius:4px;justify-content:center;align-items:center;padding:.4rem 1rem;font-size:.95rem;text-decoration:none;display:flex;position:relative}.nav-flat-link[data-v-c8ef5a23]:hover{color:var(--silk-text);background:var(--surface)}.nav-flat-link[aria-current=page][data-v-c8ef5a23]{color:var(--silk-text)}.nav-flat-link[data-v-c8ef5a23]:before{content:"";background:0 0;border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-right:.6rem}.nav-flat-link[aria-current=page][data-v-c8ef5a23]:before{background:var(--silk);box-shadow:var(--silk-glow-sm)}@media (width<=768px){.section-link[data-v-c8ef5a23]{align-self:auto;padding:.5rem 1rem;font-size:1.1rem}.section-link[data-v-c8ef5a23]:before{display:none}.section-link.active[data-v-c8ef5a23]:before{display:block;bottom:.15rem}.nav-item[data-v-c8ef5a23]{flex-direction:column;align-items:center;width:100%;display:flex}.nav-menu[data-v-c8ef5a23]{box-shadow:none;background:var(--surface);min-width:14rem;margin-top:.5rem;position:static}.nav-menu-link[data-v-c8ef5a23]{font-size:.95rem}}.search-trigger[data-v-512e59f8]{min-width:44px;min-height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;gap:.6rem;padding:.4rem;display:flex}.search-trigger svg[data-v-512e59f8]{width:19px;height:19px}.search-trigger kbd[data-v-512e59f8]{font:.65rem var(--font-mono);border:1px solid var(--border);border-radius:3px;padding:.2rem .35rem}.search-trigger[data-v-512e59f8]:hover{color:var(--silk-text)}.site-search[data-v-512e59f8]{width:min(620px,100vw - 2rem);max-height:min(720px,100dvh - 4rem);color:var(--ink);background:var(--bg-elevated);border:1px solid var(--border-light);border-top-color:var(--silk);border-radius:var(--card-radius-lg);box-shadow:var(--shadow-lg);overscroll-behavior:contain;margin:max(2rem,10dvh) auto auto;padding:0;overflow:auto}.site-search[data-v-512e59f8]::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#000000b8}.search-top[data-v-512e59f8]{align-items:center;gap:.5rem;padding:1.25rem 1.25rem .75rem;display:flex}.search-field[data-v-512e59f8]{flex:1;min-width:0}.search-label[data-v-512e59f8]{color:var(--silk-text);font:.75rem var(--font-mono);margin-bottom:.65rem;display:block}.search-field input[data-v-512e59f8]{box-sizing:border-box;width:100%;min-height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--border-light);font:1rem var(--font-body);border-radius:4px;padding:.7rem .8rem}.search-field input[data-v-512e59f8]::placeholder{color:var(--ink-faint)}.search-close[data-v-512e59f8]{width:44px;height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;border-radius:4px;flex-shrink:0;font-size:1.7rem}.search-status[data-v-512e59f8]{color:var(--ink-muted);font:.75rem var(--font-mono);border-bottom:1px solid var(--border);margin:0;padding:.25rem 1.25rem 1rem}.search-results[data-v-512e59f8]{padding:.5rem}.search-group[data-v-512e59f8]{color:var(--ink-faint);font:.72rem var(--font-mono);text-transform:uppercase;letter-spacing:.1em;margin:.6rem .75rem}.search-results ul[data-v-512e59f8]{margin:0;padding:0;list-style:none}.search-result[data-v-512e59f8]{border:1px solid #0000;border-radius:4px;padding:.8rem .75rem;text-decoration:none;display:block}.search-name[data-v-512e59f8]{color:var(--ink);justify-content:space-between;gap:1rem;font-weight:600;display:flex}.search-description[data-v-512e59f8]{color:var(--ink-muted);overflow-wrap:anywhere;margin-top:.3rem;font-size:.86rem;line-height:1.5;display:block}.search-result[data-v-512e59f8]:hover,.search-result[data-v-512e59f8]:focus-visible{background:var(--silk-soft);border-color:var(--border-light)}.search-trigger[data-v-512e59f8]:focus-visible,.search-close[data-v-512e59f8]:focus-visible,.search-field input[data-v-512e59f8]:focus-visible,.search-result[data-v-512e59f8]:focus-visible{outline:var(--focus-ring);outline-offset:2px}@media (width<=980px){.search-trigger kbd[data-v-512e59f8]{display:none}}@media (width<=480px){.site-search[data-v-512e59f8]{max-height:calc(100dvh - 2rem);margin-top:1rem}.search-top[data-v-512e59f8]{padding:1rem .75rem .75rem}}.skill-hero[data-v-ebb11f28]{flex-direction:column;gap:2.25rem;margin-bottom:2rem;display:flex}.skill-intro[data-v-ebb11f28],.skill-install[data-v-ebb11f28]{flex-direction:column;align-items:flex-start;width:100%;min-width:0;display:flex}.skill-intro[data-v-ebb11f28]{gap:.9rem}.skill-share[data-v-ebb11f28]{margin:0}.skill-install[data-v-ebb11f28]{gap:.55rem}.skill-install .block-label[data-v-ebb11f28]{margin:0}.skill-hero h1[data-v-ebb11f28]{letter-spacing:-.02em;margin:0;font-size:clamp(2.4rem,7vw,3.6rem);line-height:1}.skill-tagline[data-v-ebb11f28]{font-family:var(--font-display);color:var(--silk-text);max-width:var(--measure);margin:0;font-size:clamp(1rem,2.6vw,1.2rem);font-weight:500;line-height:1.4}.skill-problem[data-v-ebb11f28]{border-left:2px solid var(--silk);max-width:var(--measure);font-family:var(--font-body);color:var(--ink-muted);margin:.2rem 0 0;padding-left:1rem;font-size:.92rem;line-height:1.7}.skill-keywords[data-v-ebb11f28]{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.keyword-chip[data-v-ebb11f28]{font-family:var(--font-mono);letter-spacing:.04em;color:var(--ink-muted);border:1px solid var(--border);background:var(--surface);border-radius:3px;padding:.2rem .5rem;font-size:.75rem;font-weight:500}.skill-install-block[data-v-ebb11f28]{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);width:100%;min-width:0;position:relative}.skill-install-block pre[data-v-ebb11f28]{font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:2.1rem 1.1rem 1rem;font-size:.8rem;line-height:1.7}.skill-install-block pre[data-v-ebb11f28]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.skill-source[data-v-c14fee21]{min-width:0;margin-top:3.5rem}.source-strip[data-v-c14fee21]{background:var(--thread-rule) 0 100% / 100% 1px no-repeat;border-bottom:none;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;padding-bottom:.6rem;display:flex}.source-label[data-v-c14fee21],.source-meta[data-v-c14fee21]{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.68rem;font-weight:600}.source-label[data-v-c14fee21]{color:var(--silk-text)}.source-meta[data-v-c14fee21]{letter-spacing:.06em;text-transform:none;color:var(--ink-faint);align-items:baseline;gap:.5rem;font-weight:500;display:flex}.source-file[data-v-c14fee21]{color:var(--ink-muted)}.source-sep[data-v-c14fee21]{color:var(--border-light)}.source-block[data-v-c14fee21]{border:1px solid var(--border);border-radius:0 0 var(--card-radius) var(--card-radius);background:var(--surface);font-family:var(--font-mono);color:var(--ink-muted);white-space:pre;overscroll-behavior:contain;border-top:none;min-width:0;max-height:34rem;margin:0;padding:1.4rem 1.5rem;font-size:.74rem;line-height:1.7;overflow:auto}.source-block[data-v-c14fee21]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}@media (width<=640px){.source-block[data-v-c14fee21]{max-height:24rem;padding:1rem 1.1rem;font-size:.8rem}}.skill-list[data-v-f7fe7092]{padding:var(--section-padding);margin:0 auto}.skills-head[data-v-f7fe7092]{gap:1.5rem 3rem;margin-bottom:3rem;display:grid}.skills-head-intro[data-v-f7fe7092]{flex-direction:column;gap:.9rem;display:flex}.skills-strand[data-v-f7fe7092]{display:none}.skills-head-intro .section-title[data-v-f7fe7092]{margin:0}.skills-head-intro .section-lede[data-v-f7fe7092]{max-width:var(--measure);margin:0}.skills-install[data-v-f7fe7092]{background:var(--thread-rule) 0 0 / 100% 1px no-repeat;flex-direction:column;gap:.55rem;padding-top:1.5rem;display:flex}.skills-install-block[data-v-f7fe7092]{background:var(--surface);border:1px solid var(--border);border-radius:var(--card-radius);width:100%;min-width:0;position:relative}.skills-install-block pre[data-v-f7fe7092]{font-family:var(--font-mono);color:var(--ink);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:2.1rem 1.1rem .9rem;font-size:.76rem;line-height:1.6}.skills-install-block pre[data-v-f7fe7092]:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.skills-install-note[data-v-f7fe7092]{color:var(--ink-faint);margin:0;font-size:.85rem;line-height:1.65}@media (width>=860px){.skills-head[data-v-f7fe7092]{grid-template-columns:minmax(0,5fr) minmax(0,6fr);align-items:start}.skills-head-intro[data-v-f7fe7092]{grid-area:1/1}.skills-body[data-v-f7fe7092]{grid-area:1/2}.skills-install[data-v-f7fe7092]{grid-area:2/1/auto/-1}.skills-head-intro[data-v-f7fe7092]{align-self:stretch}.skills-strand[data-v-f7fe7092]{background:var(--thread-rule-v);flex:1;width:1px;min-height:2rem;margin-left:3px;display:block}}.skills-body[data-v-f7fe7092] p{max-width:var(--measure);color:var(--ink-muted);margin:0 0 1rem;line-height:1.7}.row-install[data-v-f7fe7092]{font-family:var(--font-mono);letter-spacing:.02em;color:var(--ink-faint);transition:color var(--transition-fast);margin-top:auto;padding-top:.9rem;font-size:.72rem}.list-row:hover .row-install[data-v-f7fe7092]{color:var(--silk-text)}.page-outline[data-v-2cbf8f72]{top:calc(var(--nav-height) + .5rem);z-index:15;min-width:0;color:var(--ink);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--card-radius);box-shadow:var(--shadow-sm);margin:0 0 2rem;position:sticky}.outline-summary[data-v-2cbf8f72]{cursor:pointer;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:.2rem .7rem;min-height:68px;padding:.55rem .7rem .55rem 1rem;list-style:none;display:grid}.outline-summary[data-v-2cbf8f72]::-webkit-details-marker{display:none}.outline-label[data-v-2cbf8f72]{color:var(--ink-faint);font-family:var(--font-mono);grid-column:1;font-size:.72rem;line-height:1.5}.outline-current[data-v-2cbf8f72]{overflow-wrap:anywhere;grid-area:2/1;min-width:0;font-size:.94rem;line-height:1.5}.outline-toggle-icon[data-v-2cbf8f72]{background:var(--silk-soft);border:1px solid var(--border-light);border-radius:5px;grid-area:1/2/3;place-items:center;width:44px;height:44px;display:grid}.outline-chevron[data-v-2cbf8f72]{border-right:1px solid var(--silk);border-bottom:1px solid var(--silk);width:.4rem;height:.4rem;transition:transform var(--transition-fast);margin-left:.15rem;transform:rotate(45deg)}.page-outline[open] .outline-chevron[data-v-2cbf8f72]{transform:rotate(225deg)}.outline-summary[data-v-2cbf8f72]:focus-visible,.outline-panel a[data-v-2cbf8f72]:focus-visible{outline:var(--focus-ring);outline-offset:3px}.outline-progress[data-v-2cbf8f72]{bottom:0;height:2px;position:absolute;inset-inline:0;overflow:hidden}.outline-progress span[data-v-2cbf8f72]{background:var(--silk-sheen);transform-origin:0;height:100%;display:block}.outline-panel[data-v-2cbf8f72]{top:calc(100% + .4rem);max-height:min(var(--outline-panel-height), 60dvh);overscroll-behavior:contain;background:var(--surface);border:1px solid var(--border-light);border-radius:var(--card-radius);box-shadow:var(--shadow-md);position:absolute;inset-inline:-1px;overflow-y:auto}.outline-panel ul[data-v-2cbf8f72]{margin:0;padding:.4rem;list-style:none}.outline-panel li[data-v-2cbf8f72]{margin:0}.outline-panel-head[data-v-2cbf8f72]{z-index:1;background:var(--surface);border-bottom:1px solid var(--border);min-height:48px;color:var(--ink-faint);font:.72rem var(--font-mono);justify-content:space-between;align-items:center;padding-left:.9rem;display:flex;position:sticky;top:0}.outline-panel-head button[data-v-2cbf8f72]{width:44px;height:44px;color:var(--ink-muted);cursor:pointer;background:0 0;border:0;font-size:1.5rem}.outline-panel a[data-v-2cbf8f72]{box-sizing:border-box;min-height:48px;color:var(--ink-muted);overflow-wrap:anywhere;transition:color var(--transition-fast), background var(--transition-fast);border:1px solid #0000;border-radius:3px;padding:.75rem .65rem;font-size:.9rem;line-height:1.55;text-decoration:none;display:block}.outline-panel a[data-v-2cbf8f72]:hover,.outline-panel a[aria-current][data-v-2cbf8f72]{color:var(--silk-text);background:var(--silk-soft)}@media (width<=480px){.outline-summary[data-v-2cbf8f72]{gap:.25rem .5rem;padding-left:.8rem}}@media (prefers-reduced-motion:reduce){.outline-chevron[data-v-2cbf8f72],.outline-panel a[data-v-2cbf8f72]{transition:none}}.shell[data-v-12d8df48]{background:var(--bg);min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0);z-index:0;flex-direction:column;display:flex;position:relative}.shell[data-v-12d8df48]:before{content:"";z-index:-1;pointer-events:none;background:var(--page-light);position:fixed;inset:0}.page-content[data-v-12d8df48]{flex-direction:column;flex:1;display:flex}.header[data-v-12d8df48]{z-index:50;padding:0 max(1.5rem, calc((100vw - var(--content-width)) / 2));height:var(--nav-height);background:color-mix(in srgb, var(--nav-tint) 96%, transparent);-webkit-backdrop-filter:blur(16px);align-items:center;gap:1.5rem;display:flex;position:sticky;top:0}.header[data-v-12d8df48]:after{content:"";background:var(--thread-rule-wide);pointer-events:none;height:1px;position:absolute;bottom:0;left:0;right:0}.brand[data-v-12d8df48]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink);border-bottom:none;flex-shrink:0;align-items:center;gap:.45rem;font-size:1.15rem;font-weight:600;text-decoration:none;display:flex}.brand:hover .brand-name[data-v-12d8df48]{color:var(--silk-text)}.brand-node[data-v-12d8df48]{width:28px;height:28px;margin-right:.3rem;display:flex}.brand-node img[data-v-12d8df48]{width:28px;height:28px;display:block}.brand:hover .brand-node[data-v-12d8df48]{filter:drop-shadow(0 0 8px var(--silk-glow-color))}.brand-name[data-v-12d8df48]{font-family:var(--font-display);color:var(--ink);font-weight:600}.brand-tld[data-v-12d8df48]{font-family:var(--font-display);letter-spacing:-.01em;color:var(--ink-muted);font-size:1.15rem;font-weight:600}.section-nav[data-v-12d8df48]{font-family:var(--font-mono);white-space:nowrap;flex:1;align-self:stretch;align-items:center;gap:.35rem;font-size:.86rem;display:flex;overflow:visible}.header-actions[data-v-12d8df48]{flex-shrink:0;align-items:center;gap:.5rem;display:flex}@media (pointer:coarse){.header-actions[data-v-12d8df48]{gap:1rem}}.lang-toggle[data-v-12d8df48]{font-family:var(--font-mono);color:var(--ink-muted);border:none;border-bottom:1px solid var(--thread-strong);letter-spacing:.1em;transition:color var(--transition-fast), border-color var(--transition-fast);border-radius:0;padding:.15rem .1rem;font-size:.7rem;font-weight:600;text-decoration:none}.lang-toggle[data-v-12d8df48]:hover{color:var(--silk-text);border-bottom-color:var(--silk)}.main-page[data-v-12d8df48]{flex-direction:column;flex:1;display:flex}.main-page[data-v-12d8df48]>*{flex:1 0 auto;max-width:100%}.main-page>.project-page[data-v-12d8df48],.main-page>.skill-page[data-v-12d8df48]{width:100%;max-width:min(1200px,100%)}.main-page>.project-list[data-v-12d8df48],.main-page>.skill-list[data-v-12d8df48]{width:100%;max-width:var(--measure-page)}.main-page[data-v-12d8df48]:focus{outline:none}.error-fallback[data-v-12d8df48]{text-align:center;min-height:60vh;font-family:var(--font-body);background:var(--bg-elevated);flex-direction:column;justify-content:center;align-items:center;padding:2rem;display:flex}.error-prompt[data-v-12d8df48]{color:var(--error);margin:0 0 .75rem;font-size:1rem}.error-cmd[data-v-12d8df48]{color:var(--ink)}.error-out[data-v-12d8df48]{color:var(--ink-muted);margin:0 0 1rem;font-size:.9rem}.error-hint[data-v-12d8df48]{color:var(--ink-faint);font-size:.85rem}.edge-thread[data-v-12d8df48]{left:0;top:var(--nav-height);background:var(--thread);z-index:0;pointer-events:none;width:1px;position:fixed;bottom:0}@media (width<=600px){.edge-thread[data-v-12d8df48]{display:none}.header[data-v-12d8df48]{gap:1rem;padding:0 1rem}.brand[data-v-12d8df48]{font-size:1rem}.brand-tld[data-v-12d8df48]{display:none}}.hamburger[data-v-12d8df48]{cursor:pointer;width:34px;height:34px;transition:background var(--transition-fast);background:0 0;border:none;border-radius:50%;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;padding:6px;display:none}.hamburger[data-v-12d8df48]:hover{background:var(--silk-soft)}.hamburger-bar[data-v-12d8df48]{background:var(--ink-muted);width:100%;height:2px;transition:transform var(--transition-fast), opacity var(--transition-fast);border-radius:1px;display:block}@media (pointer:coarse){.hamburger[data-v-12d8df48]{width:32px;height:32px}}.hamburger:hover .hamburger-bar[data-v-12d8df48]{background:var(--accent)}.hamburger.open .hamburger-bar[data-v-12d8df48]:first-child{transform:translateY(6px)rotate(45deg)}.hamburger.open .hamburger-bar[data-v-12d8df48]:nth-child(2){opacity:0}.hamburger.open .hamburger-bar[data-v-12d8df48]:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (width<=768px){.hamburger[data-v-12d8df48]{display:flex}.header-actions[data-v-12d8df48]{margin-left:auto}.section-nav[data-v-12d8df48]{top:var(--nav-height);height:calc(100vh - var(--nav-height));height:calc(100dvh - var(--nav-height));background:var(--bg);padding:2rem 1rem calc(3rem + env(safe-area-inset-bottom,0));opacity:0;pointer-events:none;visibility:hidden;z-index:49;white-space:normal;flex-direction:column;justify-content:flex-start;align-items:center;gap:1.25rem;font-size:1.1rem;transition:none;position:fixed;left:0;right:0;overflow-y:auto}.section-nav.nav-open[data-v-12d8df48]{opacity:1;pointer-events:auto;visibility:visible;transition:opacity var(--transition-fast), visibility 0s}.nav-sep[data-v-12d8df48]{display:none}}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-variable.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/jetbrains-mono-v21-latin-500.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/jetbrains-mono-v21-latin-600.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/jetbrains-mono-v21-latin-700.woff2)format("woff2")}:root{--font-display:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--section-padding:5.5rem 2rem;--card-padding:1.6rem;--card-radius:6px;--card-radius-lg:10px;--focus-ring:2px solid var(--silk);--focus-ring-offset:4px;--transition-fast:.12s ease;--transition-normal:.22s cubic-bezier(.2, .8, .2, 1);--transition-slow:.6s cubic-bezier(.33, 1, .68, 1);--nav-height:72px;--measure:62ch;--measure-body:min(76ch, 100%);--measure-page:min(1200px, 100%);--content-width:1136px;--accent:var(--silk);--accent-hover:var(--silk-hover);--accent-2:var(--violet);--accent-3:var(--silk);--accent-soft:var(--silk-soft);--accent-glow:var(--silk-glow);--accent-glow-sm:var(--silk-glow-sm);--silk-glow:0 0 24px var(--silk-glow-color);--silk-glow-sm:0 0 10px var(--silk-glow-color);--silk-sheen:linear-gradient(135deg, var(--silk), var(--violet));--shadow-sm:0 2px 10px #0000001f;--shadow-md:0 12px 36px #0003;--shadow-lg:0 24px 80px #00000059;--grain-opacity:.018}:root,:root[data-theme=dark]{--bg:#08090b;--bg-elevated:#0d1116;--surface:#10151b;--surface-alt:#151c24;--surface-dim:#24323b;--ink:#edf3f6;--ink-muted:#b4bec7;--ink-faint:#8b96a6;--border:#293640;--border-light:#33424b;--thread:#8b96a633;--thread-strong:#3bff9e61;--thread-bright:#3bff9eb8;--silk:#3bff9e;--silk-hover:#7dffc0;--signal-highlight:#7dffc0;--signal-depth:#26b871;--silk-text:#3bff9e;--silk-bright:#b5ffdb;--silk-soft:#3bff9e12;--silk-glow-color:#3bff9e29;--violet:#7a5cff;--violet-text:#b7a7ff;--violet-soft:#7a5cff17;--thread-rule:linear-gradient(90deg, var(--thread-strong), var(--thread) 35%, transparent);--thread-rule-wide:linear-gradient(90deg, var(--silk), var(--border) 32%, var(--border) 68%, var(--violet));--thread-rule-v:linear-gradient(180deg, var(--thread-strong), var(--thread) 40%, transparent);--page-light:radial-gradient(ellipse at 12% 5%, #3bff9e08, transparent 40%), radial-gradient(ellipse at 95% 25%, #7a5cff0a, transparent 45%);--nav-tint:#08090b;--lamp-glow:#3bff9e17;--fog:#7a5cff0a;--error:#ff8a80;--scene-sky:radial-gradient(ellipse at 50% 15%, #111a20, #080d12 50%, #08090b);--scene-pylon:#0b1118;--scene-structure:#30434e;--scene-thread:var(--thread-strong);--scene-mint-light:#3bff9e1c;--scene-violet-light:#7a5cff29;--scene-mist:#3bff9e12;--scene-ground:#080c10;--scene-vignette:#0000007a;--scene-copy-backdrop:#080d11f5}@media (width<=768px){:root{--nav-height:64px;--section-padding:3.5rem 1.25rem}}@media (width<=480px){:root{--nav-height:64px;--section-padding:3rem 1rem}}.reveal-ready .reveal{opacity:0;transition:opacity .35s ease-out,transform .35s ease-out;transform:translateY(8px)}.reveal-ready .reveal.visible{opacity:1;transform:translateY(0)}.reveal-ready .reveal-stagger>.reveal:first-child{transition-delay:0s}.reveal-ready .reveal-stagger>.reveal:nth-child(2){transition-delay:50ms}.reveal-ready .reveal-stagger>.reveal:nth-child(3){transition-delay:.1s}.reveal-ready .reveal-stagger>.reveal:nth-child(4){transition-delay:.15s}.reveal-ready .reveal-stagger>.reveal:nth-child(5){transition-delay:.2s}.reveal-ready .reveal-stagger>.reveal:nth-child(6){transition-delay:.25s}@keyframes blink-cursor{0%,to{opacity:1}50%{opacity:0}}.cursor-blink{animation:1s step-end infinite blink-cursor}@keyframes status-blink{0%,to{opacity:1}50%{opacity:.35}}.status-blink{animation:1.6s ease-in-out infinite status-blink}@media (prefers-reduced-motion:reduce){.reveal-ready .reveal{opacity:1;transition:none;transform:none}.status-blink,.cursor-blink{transition:none!important;animation:none!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html{scroll-padding-top:calc(var(--nav-height) + 1.5rem)}:root[data-theme=dark] html,html[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:17px;line-height:1.7;overflow-x:hidden}::selection{background:var(--accent);color:var(--bg)}.grain{z-index:1;pointer-events:none;opacity:var(--grain-opacity,.05);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;position:fixed;inset:0}h1,h2,h3,h4{font-family:var(--font-display);color:var(--ink);letter-spacing:-.04em;font-weight:600;line-height:1.15}h1{margin-bottom:.3em;font-size:clamp(2.4rem,7vw,4.2rem)}h2{margin-bottom:.4em;font-size:clamp(1.6rem,4vw,2.4rem)}h3{margin-bottom:.3em;font-size:1.15rem;font-weight:600}p,li{font-family:var(--font-body)}a{color:var(--silk-text);border-bottom:1px solid var(--thread-strong);transition:color var(--transition-fast), border-color var(--transition-fast);text-decoration:none}a:hover{color:var(--silk-hover);border-color:var(--silk)}:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);border-radius:2px}:focus:not(:focus-visible){outline:none}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring);outline-offset:var(--focus-ring-offset);box-shadow:0 0 0 3px var(--accent-soft);border-radius:2px}.skip-to-content{z-index:10000;background:var(--surface);min-height:44px;color:var(--accent);font-family:var(--font-body);border:2px solid var(--accent);outline-offset:0;align-items:center;padding:.75rem 1.4rem;font-size:.85rem;font-weight:600;text-decoration:none;transition:top .15s;display:inline-flex;position:absolute;top:-100%;left:0}.skip-to-content:focus{top:.5rem;left:.5rem}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (prefers-contrast:more){:root{--ink:#fff;--ink-muted:#ccc;--ink-faint:#999;--border:#666;--border-light:#555}}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:active{transform:scale(.97)}@media (pointer:coarse){.section-link,.chat-fab,.send-btn,.chat-close{min-width:44px;min-height:44px}.chat-fab{width:56px;height:56px}.section-link{justify-content:center;align-items:center;display:inline-flex}.lang-toggle,.hamburger{justify-content:center;align-items:center;padding:0;display:inline-flex;position:relative}.lang-toggle{width:32px;height:32px}.lang-toggle:after,.hamburger:after{content:"";position:absolute;inset:-6px}.hamburger{flex-direction:column;gap:3px;padding:7px}}@media (width<=768px){body{font-size:16px;line-height:1.7}h1{font-size:2.6rem}h2{font-size:1.7rem}h3{font-size:1.1rem}:root{--section-padding:3.5rem 1.25rem;--card-padding:1rem}}@media (width<=480px){body{font-size:16px}h1{font-size:2.3rem}h2{font-size:1.5rem}h3{font-size:1rem}:root{--section-padding:2.5rem 1rem;--card-padding:.85rem}}.Layout{padding:0!important}.eyebrow{font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--silk-text);align-items:center;gap:.55rem;font-size:.75rem;font-weight:600;display:inline-flex}.eyebrow-node{background:var(--silk);width:7px;height:7px;box-shadow:var(--silk-glow-sm);border-radius:50%}.block-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint);margin:0;font-size:.74rem;font-weight:600}.section-head{margin-bottom:2.25rem;position:relative}.section-head:before{content:none;background:linear-gradient(to bottom, transparent, var(--thread-strong));pointer-events:none;width:1px;height:2.75rem;position:absolute;bottom:100%;left:3px}.section-head .eyebrow{margin:0 0 .9rem}.section-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);border-top:none;margin:0;padding-top:0;font-size:clamp(2rem,5vw,3rem);font-weight:600;line-height:1.1}.section-lede{font-family:var(--font-body);color:var(--ink-muted);max-width:var(--measure);margin:1rem 0 0;font-size:1.02rem;line-height:1.75}.section-onward{margin:1.1rem 0 0}.onward-link{font-family:var(--font-mono);color:var(--silk-text,var(--silk));border-bottom:1px solid var(--thread-strong,var(--border));transition:color var(--transition-fast), border-color var(--transition-fast);padding-bottom:2px;font-size:.8rem;text-decoration:none}.onward-link:hover,.onward-link:focus-visible{color:var(--silk);border-bottom-color:var(--silk)}@media (width>=760px){.section-head--split{grid-template-columns:1fr 1fr;align-items:start;column-gap:3rem;display:grid}.section-head--split .eyebrow{grid-area:1/1}.section-head--split .section-title{grid-area:2/1}.section-head--split .section-onward{grid-area:3/2}.section-head--split .section-lede{grid-area:2/2;max-width:none;margin:.45rem 0 0}}.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}.list-rows{grid-template-columns:1fr;gap:1rem;margin:0;padding:0;list-style:none;display:grid}.list-rows>li{min-width:0}.list-row{border:1px solid var(--border);border-radius:var(--card-radius);background:linear-gradient(140deg, var(--bg-elevated), var(--surface));height:100%;transition:border-color var(--transition-normal), background var(--transition-normal), box-shadow var(--transition-normal), transform var(--transition-normal);flex-direction:column;gap:.85rem;padding:1.65rem;text-decoration:none;display:flex;position:relative}.list-row:before,.list-row:after{content:"";pointer-events:none;opacity:.4;width:12px;height:12px;transition:opacity var(--transition-fast);position:absolute}.list-row:before{border-top:1px solid var(--silk);border-left:1px solid var(--silk);border-top-left-radius:var(--card-radius);top:-1px;left:-1px}.list-row:after{border-bottom:1px solid var(--violet);border-right:1px solid var(--violet);border-bottom-right-radius:var(--card-radius);bottom:-1px;right:-1px}.list-row:hover{border-color:var(--thread-strong);background:var(--surface-alt);box-shadow:var(--shadow-sm)}.list-row:hover:before,.list-row:hover:after{opacity:1}.row-line{flex-wrap:wrap;align-items:baseline;gap:.65rem;display:flex}.row-marker{border:1px solid var(--silk);background:var(--silk-soft);border-radius:1px;flex-shrink:0;align-self:center;width:6px;height:6px}.row-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.22rem;font-weight:600}.list-row:hover .row-name{color:var(--silk-text)}.row-tagline{color:var(--ink-muted);max-width:var(--measure);font-size:1rem;line-height:1.75}@media (width>=760px){.list-rows{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1100px){.project-list .list-rows{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=480px){.list-row{padding:1.4rem}}@media (hover:hover) and (pointer:fine){.list-row:hover{box-shadow:var(--shadow-md), inset 0 1px 0 var(--thread-strong);transform:translateY(-3px)}.list-row:hover .row-marker{background:var(--silk);box-shadow:var(--silk-glow-sm)}}.list-row:focus-visible{border-color:var(--silk);box-shadow:var(--silk-glow-sm)}@media (prefers-reduced-motion:reduce){.list-row:hover{transform:none}}.project-page,.skill-page{padding:var(--section-padding);margin:0 auto}.project-body p,.project-body ul,.project-body ol,.project-body blockquote,.project-body table,.project-body img,.project-body div[class*=language-]{margin:1.15rem 0}.project-body h2{border-top:none;margin-top:3rem;padding-top:1.5rem;position:relative}.project-body h2:after{content:"";pointer-events:none;background-image:radial-gradient(circle 3.5px at 3.5px 50%, var(--silk) 0 2.6px, transparent 2.7px), var(--thread-rule);background-position:0 0,0;background-repeat:no-repeat;background-size:100% 100%,100% 1px;height:7px;position:absolute;top:-3px;left:0;right:0}.project-body h2:first-child{margin-top:0}.project-body h3{margin-top:2rem}.project-body p{color:var(--ink-muted);max-width:var(--measure-body);line-height:1.75}.project-body ul,.project-body ol{color:var(--ink-muted);max-width:var(--measure-body);padding-left:1.25rem;line-height:1.75}.project-body h3{max-width:var(--measure-body)}.project-body li+li{margin-top:.3rem}.project-body li::marker{color:var(--silk-text)}.project-body strong{color:var(--ink);font-weight:600}.project-body blockquote{border-left:2px solid var(--silk);color:var(--ink-muted);padding-left:1rem;font-style:italic}.project-body img{border:1px solid var(--border);border-radius:var(--card-radius);max-width:100%;height:auto;display:block}.project-body figure{margin:1.15rem 0}.project-body figure img{margin:0}.project-body figcaption{max-width:var(--measure-body);color:var(--ink-muted);margin-top:.5rem;font-size:.9rem}.project-body .header-anchor{float:left;opacity:0;transition:opacity var(--transition-fast);border-bottom:none;margin-left:-.87em;padding-right:.23em}.project-body .header-anchor:before{content:"#";color:var(--silk-text)}.project-body h2:hover .header-anchor,.project-body h3:hover .header-anchor,.project-body .header-anchor:focus-visible{opacity:1}.project-body :not(pre)>code{font-family:var(--font-mono);color:var(--ink);background:var(--silk-soft);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:3px;padding:.08em .34em;font-size:.85em}.project-body div[class*=language-]{background:var(--surface);border:1px solid var(--border-light);border-radius:var(--card-radius);box-shadow:inset 0 1px 0 var(--violet-soft);position:relative;overflow:hidden}.project-body div[class*=language-] pre{font-family:var(--font-mono);tab-size:2;background:0 0;padding:2.1rem 1.1rem 1.1rem;font-size:.78rem;line-height:1.7;overflow-x:auto}.project-body div[class*=language-] pre:focus-visible{outline:var(--focus-ring);outline-offset:-2px}.project-body div[class*=language-] code{white-space:pre;font-family:inherit;display:block}.project-body .shiki,.project-body .shiki span{color:var(--shiki-dark)}:is(.project-body,.skill-install,.skills-install) div[class*=language-] .lang{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);pointer-events:none;transition:opacity var(--transition-fast);font-size:.62rem;font-weight:600;position:absolute;top:.45rem;right:.8rem}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy{background:var(--bg-elevated);border:1px solid var(--border);cursor:pointer;opacity:0;width:28px;height:28px;transition:opacity var(--transition-fast), border-color var(--transition-fast);border-radius:3px;justify-content:center;align-items:center;padding:0;display:flex;position:absolute;top:.3rem;right:.4rem}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy:before{content:"";background-color:var(--ink-muted);width:14px;height:14px;-webkit-mask:var(--copy-glyph) center / contain no-repeat;-webkit-mask:var(--copy-glyph) center / contain no-repeat;mask:var(--copy-glyph) center / contain no-repeat;transition:background-color var(--transition-fast)}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy:hover{border-color:var(--silk)}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy:hover:before{background-color:var(--silk-text)}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy.copied:before{-webkit-mask:var(--copied-glyph) center / contain no-repeat;-webkit-mask:var(--copied-glyph) center / contain no-repeat;mask:var(--copied-glyph) center / contain no-repeat;background-color:var(--silk)}:is(.project-body,.skill-install,.skills-install) div[class*=language-]:hover button.copy,:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy:focus-visible{opacity:1}:is(.project-body,.skill-install,.skills-install) div[class*=language-]:hover .lang,:is(.project-body,.skill-install,.skills-install) div[class*=language-]:focus-within .lang{opacity:0}@media (pointer:coarse){:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy{opacity:1}:is(.project-body,.skill-install,.skills-install) div[class*=language-] .lang{opacity:0}:is(.project-body,.skill-install,.skills-install) div[class*=language-] button.copy{width:44px;height:44px}}:root{--copy-glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='9' width='13' height='13' rx='2'/%3E%3Cpath d='M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1'/%3E%3C/svg%3E");--copied-glyph:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}.project-body table{border-collapse:collapse;width:100%;font-size:.85rem;line-height:1.6;display:block;overflow-x:auto}.project-body th,.project-body td{border:1px solid var(--border);text-align:left;vertical-align:top;overflow-wrap:break-word;padding:.55rem .75rem}.project-body th{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--silk-text);background:var(--surface);font-size:.68rem;font-weight:600}.project-body td:first-child>code:only-child{overflow-wrap:normal;white-space:nowrap}.project-body td{color:var(--ink-muted)}.project-body tbody tr:nth-child(2n) td{background:var(--bg-elevated)}.project-body table:focus-visible{outline:var(--focus-ring);outline-offset:2px}@media (width<=768px){.project-body .header-anchor{display:none}.project-body div[class*=language-] pre{padding:2rem .85rem .9rem;font-size:.8rem}.project-body th,.project-body td{padding:.45rem .5rem}}:is(.project-body,.skill-page) :is(h2,h3,h4){scroll-margin-top:var(--outline-scroll-margin,56px)}@media (width<=480px){:is(.project-body,.skill-page) :is(h2,h3,h4){scroll-margin-top:var(--outline-scroll-margin,80px)}}
/*$vite$:1*/