.shot-viewer[data-v-2f089232]{width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;color:var(--text);background:0 0;border:0;margin:0;padding:1rem;overflow:hidden}.shot-viewer[open][data-v-2f089232]{justify-content:center;align-items:center;gap:calc(var(--spacing) * 2);flex-direction:column;display:flex}.shot-viewer[data-v-2f089232]::backdrop{background:var(--maximize-scrim);-webkit-backdrop-filter:blur(var(--maximize-blur));backdrop-filter:blur(var(--maximize-blur))}html.motion .shot-viewer[open][data-v-2f089232]::backdrop{animation:.2s both shot-backdrop-in-2f089232}@keyframes shot-backdrop-in-2f089232{0%{opacity:0}}.shot-full[data-v-2f089232]{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius-card);width:auto;height:auto;max-height:calc(100dvh - 7rem);display:block}.shot-caption[data-v-2f089232]{color:var(--text-dim);font-family:var(--font-mono);text-align:center;overflow-wrap:anywhere;margin:0;font-size:.82rem}.shot-close[data-v-2f089232]{background:var(--purple);border:1px solid var(--purple-light);width:44px;height:44px;color:var(--on-purple);cursor:pointer;border-radius:50%;place-items:center;padding:0;transition:filter .15s;display:grid;position:absolute;top:1rem;right:1rem}.shot-close[data-v-2f089232]:hover{filter:brightness(1.35)}@media print{.shot-viewer[data-v-2f089232]{display:none}}.nav-cursor[data-v-14215bf0]{color:var(--green-bright);margin-left:calc(var(--spacing) * .5);animation:1.1s step-end infinite blink}.terminal-bar[data-v-262e86e7]{padding:calc(var(--spacing) * 1.8) calc(var(--spacing) * 2.4);background:var(--surface-2);border-bottom:1px solid var(--border);justify-content:flex-end;align-items:center;display:flex;position:relative}.terminal-title[data-v-262e86e7]{color:var(--text-dim);white-space:nowrap;font-size:.75rem;position:absolute;left:50%;transform:translate(-50%)}.t-controls[data-v-262e86e7]{gap:calc(var(--spacing) * 1.5);display:flex}.t-btn[data-v-262e86e7]{-webkit-user-select:none;user-select:none;border-radius:50%;place-items:center;width:20px;height:20px;padding:0;line-height:0;transition:filter .15s;display:grid;position:relative}.t-icon[data-v-262e86e7]{flex:none;width:12px;height:12px;display:block}button.t-btn[data-v-262e86e7]{cursor:pointer}button.t-btn[data-v-262e86e7]:hover{filter:brightness(1.35)}button.t-btn[data-v-262e86e7]:before{content:"";border-radius:50%;position:absolute;inset:-2px}.t-min[data-v-262e86e7],.t-max[data-v-262e86e7]{background:color-mix(in srgb, var(--green) 15%, transparent);border:1px solid var(--green);color:var(--green-bright)}.t-close[data-v-262e86e7]{background:var(--purple);border:1px solid var(--purple-light);color:var(--on-purple)}.t-btn--disabled[data-v-262e86e7]{opacity:.35;filter:saturate(.4);cursor:default}.dock-terminal[data-v-665a52f2]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-window);max-height:min(50svh,28rem);box-shadow:0 12px 48px color-mix(in srgb, var(--shadow) 60%, transparent), 0 0 0 1px color-mix(in srgb, var(--purple-light) 10%, transparent);flex-direction:column;transition:border-color .2s,box-shadow .2s;display:flex;overflow:hidden}.dock-terminal[data-v-665a52f2]:focus-within{border-color:var(--purple-light);box-shadow:0 12px 48px color-mix(in srgb, var(--shadow) 60%, transparent), 0 0 24px color-mix(in srgb, var(--purple-light) 25%, transparent)}.dt-body[data-v-665a52f2]{min-height:0;padding:calc(var(--spacing) * 4) calc(var(--spacing) * 5);color:var(--text);flex:1;font-size:.9rem;line-height:1.6;overflow-y:auto}.dt-line[data-v-665a52f2]{white-space:pre-wrap;overflow-wrap:anywhere}.dt-out[data-v-665a52f2]{color:var(--text-dim)}.dt-cmd[data-v-665a52f2]{color:var(--text)}.dt-prompt[data-v-665a52f2]{align-items:baseline;gap:1ch;display:flex}.dt-field[data-v-665a52f2]{flex:1;min-width:0;position:relative}.dt-input[data-v-665a52f2]{width:100%;font:inherit;color:var(--text);caret-color:#0000;background:0 0;border:0;outline:none;padding:0}.dt-input[data-v-665a52f2]:focus-visible{outline:none}.dt-overlay[data-v-665a52f2]{pointer-events:none;white-space:pre;position:absolute;inset:0;overflow:hidden}.dt-ghost[data-v-665a52f2]{left:calc(var(--len) * 1ch - var(--scroll));color:var(--text-dim);position:absolute}.dt-cursor[data-v-665a52f2]{left:calc(var(--caret) * 1ch - var(--scroll));color:var(--green-bright);animation:1.1s step-end infinite blink;position:absolute}.dt-cursor-idle[data-v-665a52f2]{opacity:.45;animation:none}.dt-suggest[data-v-665a52f2]{gap:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 2.4);flex-wrap:wrap;display:flex}.dt-chip[data-v-665a52f2]{font:inherit;color:var(--green-bright);background:color-mix(in srgb, var(--green) 15%, transparent);border:1px solid var(--green);border-radius:var(--radius-nav);padding:calc(var(--spacing) * 1) calc(var(--spacing) * 2.4);cursor:pointer;min-height:24px;font-size:.8rem;transition:background .2s,color .2s}.dt-chip[data-v-665a52f2]:hover,.dt-chip[data-v-665a52f2]:focus-visible{background:var(--green);color:var(--on-green)}html:not(.motion) .dt-cursor[data-v-665a52f2]{animation:none}@media (width<=760px){.dt-body[data-v-665a52f2]{padding:calc(var(--spacing) * 3.2);font-size:.82rem}}.app-dock[data-v-cc309785]{left:0;right:0;bottom:calc(.75rem + var(--kb-offset,0px));z-index:90;gap:calc(var(--spacing) * 2);width:fit-content;padding:calc(var(--spacing) * 1.6);background:color-mix(in srgb, var(--surface) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 8px 32px color-mix(in srgb, var(--shadow) 55%, transparent);margin-inline:auto;display:flex;position:fixed}.dock-item[data-v-cc309785]{display:grid;position:relative}.dock-tip[data-v-cc309785]{white-space:nowrap;color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-btn);box-shadow:0 8px 24px color-mix(in srgb, var(--shadow) 45%, transparent), 0 0 14px color-mix(in srgb, var(--purple-light) 25%, transparent);opacity:0;visibility:hidden;pointer-events:none;align-items:center;gap:.3rem;padding:.35rem .55rem;font-size:.78rem;display:flex;position:absolute;bottom:calc(100% + .75rem);left:50%;transform:translate(-50%,4px)}.dock-tip[data-v-cc309785]:after{content:"";height:.85rem;position:absolute;top:100%;left:0;right:0}.dock-tip[data-show][data-v-cc309785]{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%)}html.motion .dock-tip[data-v-cc309785]{transition:opacity .15s,transform .15s,visibility .15s}.dock-tip kbd[data-v-cc309785]{font-family:inherit;font-size:inherit;color:var(--green-bright);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-nav);padding:0 .35rem;line-height:1.4}@media (hover:none){.dock-tip[data-v-cc309785]{display:none}}.dock-btn[data-v-cc309785]{width:2.75rem;height:2.75rem;color:var(--green-bright);background:color-mix(in srgb, var(--green) 12%, transparent);border:1px solid var(--green);border-radius:var(--radius-btn);cursor:pointer;place-items:center;transition:background .2s,box-shadow .2s,color .2s;display:grid;position:relative}.dock-btn[data-v-cc309785]:hover,.dock-btn[data-v-cc309785]:focus-visible{background:var(--green);color:var(--on-green);box-shadow:0 0 18px color-mix(in srgb, var(--green-light) 45%, transparent)}.dock-btn[data-terminal=open][data-v-cc309785]:after,.dock-btn[data-terminal=minimized][data-v-cc309785]:after{content:"";background:var(--green-bright);border-radius:50%;width:.3rem;height:.3rem;position:absolute;bottom:-.55rem}.dock-btn[data-terminal=minimized][data-v-cc309785]:after{box-sizing:border-box;border:1px solid var(--green-bright);background:0 0;width:.35rem;height:.35rem;bottom:-.575rem}.dock-icon[data-v-cc309785]{width:1.4rem;height:1.4rem}.dock-terminal-window[data-v-cc309785]{left:0;right:0;bottom:calc(var(--dock-space) + .5rem + var(--kb-offset,0px));z-index:95;transform-origin:0 0;width:min(720px,100% - 2rem);margin-inline:auto;position:fixed}.dock-terminal-window.is-minimized[data-v-cc309785]{opacity:0;pointer-events:none}html.motion .dock-terminal-enter-active[data-v-cc309785],html.motion .dock-terminal-leave-active[data-v-cc309785]{transform-origin:bottom;transition:opacity .2s,transform .2s}html.motion .dock-terminal-enter-from[data-v-cc309785],html.motion .dock-terminal-leave-to[data-v-cc309785]{opacity:0;transform:translateY(1.5rem)scale(.97)}@media print{.app-dock-root[data-v-cc309785]{display:none}}.footer[data-v-3c249a31]{margin-top:calc(var(--spacing) * 20);padding:calc(var(--spacing) * 8.8) calc(var(--spacing) * 6);border-top:1px solid var(--border);text-align:center;color:var(--text-dim);background:var(--bg-alt);font-size:.82rem}html.js .footer[data-v-3c249a31]{padding-bottom:calc(var(--spacing) * 8.8 + var(--dock-space))}.navbar[data-v-bfe0f19c]{z-index:100;background:color-mix(in srgb, var(--bg) 85%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);position:fixed;top:0;left:0;right:0}html.js:not(.app-failed):is(.app-loaded,.booting) .navbar[data-v-bfe0f19c]:not(.nav-shown):not(:has(:focus-visible)):not(:has(.nav-links.open)){opacity:0;pointer-events:none;transform:translateY(-100%)}html.motion .navbar[data-v-bfe0f19c]{transition:transform .25s,opacity .25s}.nav-inner[data-v-bfe0f19c]{max-width:var(--container-page);padding:calc(var(--spacing) * 3.6) calc(var(--spacing) * 6);justify-content:center;align-items:center;gap:calc(var(--spacing) * 4);margin:0 auto;display:flex}.nav-links[data-v-bfe0f19c]{align-items:center;gap:calc(var(--spacing) * 3.6);list-style:none;display:flex}.nav-links a[data-v-bfe0f19c]{font-family:var(--font-mono);color:var(--text-dim);padding:calc(var(--spacing) * 1) calc(var(--spacing) * 2.8);border-radius:var(--radius-nav);border:1px solid #0000;font-size:.85rem;text-decoration:none;transition:color .2s,text-shadow .2s,border-color .2s,background .2s}.nav-links a[data-v-bfe0f19c]:hover{color:var(--green-bright);text-shadow:0 0 12px color-mix(in srgb, var(--green-bright) 60%, transparent)}.nav-links a.nav-cta[data-v-bfe0f19c]{color:var(--purple-glow);border:1px solid var(--purple);transition:all .2s}.nav-links a.nav-cta[data-v-bfe0f19c]:hover{background:var(--purple);color:var(--on-accent);box-shadow:0 0 16px color-mix(in srgb, var(--purple-light) 50%, transparent);text-shadow:none}.nav-links a.active[data-v-bfe0f19c],.nav-links a.nav-cta.active[data-v-bfe0f19c]{color:var(--green-bright);border-color:var(--green);background:color-mix(in srgb, var(--green) 12%, transparent);box-shadow:0 0 14px color-mix(in srgb, var(--green-light) 35%, transparent);text-shadow:none}.nav-toggle[data-v-bfe0f19c]{gap:calc(var(--spacing) * 1.25);cursor:pointer;padding:calc(var(--spacing) * 1.5);background:0 0;border:none;flex-direction:column;display:none}.nav-toggle span[data-v-bfe0f19c]{background:var(--green-bright);width:24px;height:2px;transition:transform .25s,opacity .25s}.nav-toggle.open span[data-v-bfe0f19c]:first-child{transform:translateY(7px)rotate(45deg)}.nav-toggle.open span[data-v-bfe0f19c]:nth-child(2){opacity:0}.nav-toggle.open span[data-v-bfe0f19c]:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (width<=840px){html.js .nav-toggle[data-v-bfe0f19c]{display:flex}html.js .nav-links[data-v-bfe0f19c]{background:color-mix(in srgb, var(--bg) 97%, transparent);border-bottom:1px solid var(--border);visibility:hidden;flex-direction:column;align-items:stretch;gap:0;max-height:0;transition:max-height .3s,visibility 0s linear .3s;position:absolute;top:100%;left:0;right:0;overflow:hidden}html.js .nav-links.open[data-v-bfe0f19c]{visibility:visible;max-height:340px;transition:max-height .3s}html.js .nav-links li[data-v-bfe0f19c]{border-top:1px solid var(--border)}html.js .nav-links a[data-v-bfe0f19c]{text-align:center;padding:calc(var(--spacing) * 3.6) calc(var(--spacing) * 6);display:block}html.js .nav-links a.nav-cta[data-v-bfe0f19c]{padding:calc(var(--spacing) * 3.6) calc(var(--spacing) * 6);border:none;border-radius:0}html:not(.js) .navbar[data-v-bfe0f19c]{position:static}html:not(.js) .nav-inner[data-v-bfe0f19c]{flex-wrap:wrap}html:not(.js) .nav-links[data-v-bfe0f19c]{justify-content:center;gap:calc(var(--spacing) * 1.6);flex-wrap:wrap}}.section[data-v-d8a63c7c]{max-width:var(--container-page);padding:var(--section-pad);margin:0 auto;position:relative}.section-title[data-v-d8a63c7c]{color:var(--text);margin-bottom:calc(var(--spacing) * 2.4);font-size:clamp(1.5rem,4vw,2.1rem);font-weight:700}.title-hash[data-v-d8a63c7c]{color:var(--purple-glow);margin-right:calc(var(--spacing) * 2)}.title-slash[data-v-d8a63c7c]{color:var(--green-bright)}.section-lead[data-v-d8a63c7c]{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 8);font-size:.85rem}.desktop-icon[data-v-59d8787c]{align-items:center;gap:calc(var(--spacing) * 2);width:calc(var(--desktop-icon-size) + 2.5rem);padding:calc(var(--spacing) * 1.6);color:var(--text);border-radius:var(--radius-card);cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;transition:background .2s,border-color .2s;display:inline-flex}.desktop-icon-square[data-v-59d8787c]{width:var(--desktop-icon-size);height:var(--desktop-icon-size);color:var(--green-bright);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:0 8px 28px color-mix(in srgb, var(--shadow) 45%, transparent);place-items:center;transition:border-color .2s,box-shadow .2s,color .2s;display:grid}.desktop-icon-glyph[data-v-59d8787c]{width:2.5rem;height:2.5rem}.desktop-icon-label[data-v-59d8787c]{text-align:center;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:.8rem;line-height:1.35;display:-webkit-box;overflow:hidden}.desktop-icon[data-v-59d8787c]:hover,.desktop-icon[data-v-59d8787c]:focus-visible{background:color-mix(in srgb, var(--purple) 22%, transparent);border-color:color-mix(in srgb, var(--purple-light) 45%, transparent)}.desktop-icon:hover .desktop-icon-square[data-v-59d8787c],.desktop-icon:focus-visible .desktop-icon-square[data-v-59d8787c]{border-color:var(--purple-light);color:var(--purple-glow);box-shadow:0 8px 28px color-mix(in srgb, var(--shadow) 45%, transparent), 0 0 20px color-mix(in srgb, var(--purple-light) 30%, transparent)}.desktop-window[data-v-96fbfb62]{position:relative}.desktop-window:not([data-window-state=open])>.desktop-window-frame[data-v-96fbfb62]:not(.leaving){display:none}.desktop-window-frame.leaving[data-v-96fbfb62]{z-index:2;pointer-events:none;transform-origin:0 0;position:absolute;top:0;left:0}.desktop-window-frame[data-v-96fbfb62]{transform-origin:0 0}@media print{.desktop-window>.desktop-window-frame[data-v-96fbfb62]{display:block!important;position:static!important}.desktop-icon[data-v-96fbfb62]{display:none!important}}.t-line[data-v-c01f0da1]{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 2)}.t-output[data-v-c01f0da1]{color:var(--text-dim);margin:0 0 calc(var(--spacing) * 4) 0;white-space:pre-line}.terminal-window[data-v-aee415af]{background:var(--surface);border-radius:var(--radius-window);flex-direction:column;height:100%;display:flex;overflow:hidden}.terminal-body[data-v-aee415af]{padding:calc(var(--spacing) * 5.2) calc(var(--spacing) * 5.6);flex-direction:column;flex:1;font-size:.9rem;display:flex}@media (width<=760px){.terminal-body[data-v-aee415af]{padding:calc(var(--spacing) * 4);font-size:.82rem}}.about-slot[data-v-40396ae4]{margin-top:calc(var(--spacing) * 6)}.about-window[data-v-40396ae4]{border:1px solid var(--border);border-radius:var(--radius-window);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 0 1px color-mix(in srgb, var(--purple-light) 8%, transparent);transition:box-shadow .25s,border-color .25s}.about-window[data-v-40396ae4]:hover{border-color:var(--purple-light);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 24px color-mix(in srgb, var(--purple-light) 25%, transparent)}.about-window .about-text[data-v-40396ae4]{color:var(--text)}.badges[data-v-40396ae4]{gap:calc(var(--spacing) * 2.4);margin-bottom:calc(var(--spacing) * 4);flex-wrap:wrap;list-style:none;display:flex}.badge[data-v-40396ae4]{border:1px solid var(--green);background:color-mix(in srgb, var(--green) 15%, transparent);color:var(--green-bright);padding:calc(var(--spacing) * 1.2) calc(var(--spacing) * 2.8);border-radius:var(--radius-nav);font-size:.78rem}.base-card[data-v-9072b1f7]{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);height:100%;transition:transform .25s,box-shadow .25s,border-color .25s}.base-card--card[data-v-9072b1f7]{border-left:3px solid var(--purple-light);padding:calc(var(--spacing) * 5.6) calc(var(--spacing) * 6.4)}.base-card--card[data-v-9072b1f7]:hover,.base-card--card[data-v-9072b1f7]:focus-within{border-left-color:var(--green-bright);box-shadow:0 4px 30px color-mix(in srgb, var(--shadow) 45%, transparent), 0 0 20px color-mix(in srgb, var(--green-light) 18%, transparent);transform:translate(6px)}.base-card--skill[data-v-9072b1f7]{padding:calc(var(--spacing) * 5.6)}.base-card--skill[data-v-9072b1f7]:hover,.base-card--skill[data-v-9072b1f7]:focus-within{border-color:var(--purple-light);box-shadow:0 0 24px color-mix(in srgb, var(--purple-light) 22%, transparent);transform:translateY(-4px)}.base-card--window[data-v-9072b1f7]{border-radius:var(--radius-window);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 0 1px color-mix(in srgb, var(--purple-light) 8%, transparent);flex-direction:column;padding:0;transition:box-shadow .25s,border-color .25s;display:flex}.base-card--window[data-v-9072b1f7]:hover,.base-card--window[data-v-9072b1f7]:focus-within{border-color:var(--purple-light);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 24px color-mix(in srgb, var(--purple-light) 25%, transparent)}.base-card[data-v-9072b1f7]:focus-within .spotlight-layer{opacity:.6!important;background:radial-gradient(circle at 50% 50%, var(--spotlight), transparent 80%)!important}@media not ((hover:hover) and (pointer:fine)){.base-card[data-v-9072b1f7] .spotlight-layer{display:none}}.zoom-figure[data-v-88b3b5a6]{margin:0}.shot-link[data-v-88b3b5a6]{border:1px solid var(--border);border-radius:var(--radius-card);background:var(--surface-2);cursor:zoom-in;transition:border-color .15s;display:block;overflow:hidden}.shot-link[data-v-88b3b5a6]:hover{border-color:var(--purple-light)}.shot-link img[data-v-88b3b5a6]{width:100%;height:auto;display:block}.shot-caption[data-v-88b3b5a6]{margin:calc(var(--spacing) * 2) 0 0 0;text-wrap:balance;color:var(--text-dim);font-family:var(--font-mono);font-size:.82rem}.branched-menu[data-v-0f582163]{width:fit-content;max-width:min(var(--bm-w), 100%);color:var(--bm-ink);font-family:inherit;line-height:1.2;font-size:var(--bm-font);flex-direction:column;padding-left:14px;display:flex;position:relative}.branched-menu[data-v-0f582163]:before{content:"";background:linear-gradient(to bottom, var(--bm-line) 0%, var(--bm-line) 55%, transparent 100%);border-radius:1px;width:2px;position:absolute;top:8px;bottom:0;left:0}.bm-marker[data-v-0f582163]{z-index:1;background:var(--bm-accent);opacity:0;border-radius:1px;width:2px;height:16px;transition:top .22s cubic-bezier(.23,1,.32,1),opacity .15s;position:absolute;top:-1px;left:0}.bm-marker[data-on][data-v-0f582163]{opacity:1}.bm-section[data-v-0f582163]{flex-direction:column;display:flex}.bm-head[data-v-0f582163]{font-family:inherit;font-size:calc(var(--bm-font) + 1px);text-align:left;color:var(--bm-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;margin:0;padding:9px 0;font-weight:500;transition:color .2s;display:block}.bm-section[data-open]>.bm-head[data-v-0f582163],.bm-head[data-active][data-v-0f582163],.bm-head[data-v-0f582163]:hover{color:var(--bm-ink)}.bm-fold[data-v-0f582163]{transition:grid-template-rows var(--bm-fold) cubic-bezier(.23, 1, .32, 1);grid-template-rows:0fr;display:grid}.bm-section[data-open]>.bm-fold[data-v-0f582163]{grid-template-rows:1fr}.bm-fold-inner[data-v-0f582163]{min-height:0;overflow:hidden}.bm-exclusive[data-v-0f582163]{min-height:calc(var(--bm-sections) * ((var(--bm-font) + 1px) * 1.2 + 18px) + min(var(--bm-max-rows), var(--bm-largest)) * var(--bm-row) + 12px)}.bm-exclusive .bm-section[data-open]>.bm-fold>.bm-fold-inner[data-v-0f582163]{max-height:calc(var(--bm-row) * var(--bm-max-rows) + 12px);overscroll-behavior:contain;overflow-y:auto}.bm-rows[data-v-0f582163]{box-sizing:border-box;padding-block:6px;position:relative}.bm-lines[data-v-0f582163]{pointer-events:none;opacity:0;transition:opacity .2s;position:absolute;top:0;left:0;overflow:visible}.bm-section[data-open] .bm-lines[data-v-0f582163]{opacity:1;transition:opacity .25s .1s}.bm-path[data-v-0f582163]{fill:none;stroke:var(--bm-line);stroke-width:var(--bm-line-w);stroke-linecap:round;stroke-linejoin:round}.bm-reach[data-v-0f582163]{stroke:var(--bm-accent);transition:stroke-dashoffset var(--bm-draw) cubic-bezier(.23, 1, .32, 1)}.bm-child[data-v-0f582163]{box-sizing:border-box;width:100%;height:var(--bm-row);padding:0 0 0 var(--bm-indent);text-align:left;color:var(--bm-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;align-items:center;gap:8px;margin:0;font-family:inherit;transition:color .2s;display:flex}.bm-child[data-v-0f582163]:hover{color:var(--bm-ink)}.bm-child[data-active][data-v-0f582163]{color:var(--bm-accent);font-weight:500}.bm-icon[data-v-0f582163]{flex:none;display:inline-flex}.bm-label[data-v-0f582163]{white-space:nowrap}@media (prefers-reduced-motion:reduce){.bm-marker[data-v-0f582163]{transition:opacity .15s}.bm-fold[data-v-0f582163],.bm-reach[data-v-0f582163],.bm-lines[data-v-0f582163],.bm-section[data-open] .bm-lines[data-v-0f582163]{transition:none}}html:not(.motion) .bm-marker[data-v-0f582163]{transition:opacity .15s}html:not(.motion) .bm-fold[data-v-0f582163],html:not(.motion) .bm-reach[data-v-0f582163],html:not(.motion) .bm-lines[data-v-0f582163]{transition:none}.editor-frame[data-v-055197b8]{transform-origin:0 0}.editor[data-v-055197b8]{margin-top:calc(var(--spacing) * 1.6);background:var(--editor-bg);border:1px solid var(--border);border-radius:var(--radius-card);grid-template-columns:auto minmax(0,1fr);grid-template-areas:"tabs tabs""tree pane""foot foot";display:grid;overflow:hidden}.editor-tabs[data-v-055197b8]{background:var(--surface-2);border-bottom:1px solid var(--border);grid-area:tabs;font-size:.8rem;display:flex}.editor-tab[data-v-055197b8]{padding:calc(var(--spacing) * 2.4) calc(var(--spacing) * 4);color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.editor-tab.is-active[data-v-055197b8]{color:var(--text);background:var(--editor-bg);box-shadow:inset 0 -1px 0 var(--green-bright)}.editor-tree[data-v-055197b8]{min-width:0;padding:calc(var(--spacing) * 3) calc(var(--spacing) * 3) calc(var(--spacing) * 3) calc(var(--spacing) * 4);border-right:1px solid var(--border);grid-area:tree;overflow-x:auto}@media (width<=760px){.editor-tree[data-v-055197b8] .bm-exclusive{--bm-max-rows:4!important}}.editor-frame.is-maximized .editor-tree[data-v-055197b8] .bm-exclusive{min-height:auto}.editor-tree[data-v-055197b8] .bm-label{text-overflow:ellipsis;min-width:0;overflow:hidden}.editor-pane[data-v-055197b8]{grid-area:pane;min-width:0;display:grid}.editor-files[data-v-055197b8]{padding:calc(var(--spacing) * 3) 0;display:grid}.editor-file[data-v-055197b8]{grid-area:1/1;min-width:0}.editor-file[data-v-055197b8]:not([data-active]){visibility:hidden}.editor-lines[data-v-055197b8]{font-size:.85rem;line-height:1.7;list-style:none}.editor-line[data-v-055197b8]{column-gap:calc(var(--spacing) * 3);padding-right:calc(var(--spacing) * 4);grid-template-columns:3.2ch minmax(0,1fr);display:grid}.editor-ln[data-v-055197b8]{color:var(--editor-gutter);text-align:right;-webkit-user-select:none;user-select:none}.editor-code[data-v-055197b8]{white-space:pre-wrap;overflow-wrap:anywhere;text-indent:-2ch;min-width:0;padding-left:2ch}.editor-code.editor-indent-1[data-v-055197b8]{padding-left:4ch}.editor-figure[data-v-055197b8]{min-width:0;font-size:.85rem}.editor-figure[data-placement=below][data-v-055197b8],.editor-figure[data-placement=side][data-v-055197b8]{width:min(calc(100% - 3.2ch - var(--spacing) * 7), 20rem);margin:calc(var(--spacing) * 2) 0 0 calc(3.2ch + var(--spacing) * 3)}@media (width>=900px){.editor-file.has-figure-side[data-v-055197b8]{column-gap:calc(var(--spacing) * 4);padding-right:calc(var(--spacing) * 4);grid-template-columns:minmax(0,1fr) clamp(10rem,36%,16rem);align-items:start;display:grid}.editor-file.has-figure-side .editor-figure[data-v-055197b8]{grid-area:1/2;width:auto;margin:0}}.tok-key[data-v-055197b8]{color:var(--syntax-key)}.tok-str[data-v-055197b8]{color:var(--syntax-str)}.tok-date[data-v-055197b8]{color:var(--syntax-date)}.tok-punct[data-v-055197b8]{color:var(--syntax-punct)}.tok-comment[data-v-055197b8]{color:var(--syntax-comment);font-style:italic}.editor-cards[data-v-055197b8]{min-width:0;padding:calc(var(--spacing) * 4);display:none}.editor-footer[data-v-055197b8]{justify-content:space-between;gap:calc(var(--spacing) * 4);padding:calc(var(--spacing) * 2.4) calc(var(--spacing) * 4);border-top:1px solid var(--border);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;grid-area:foot;font-size:.72rem;display:flex}.editor-path-box[data-v-055197b8]{min-width:0;display:grid}.editor-path[data-v-055197b8],.editor-path-sizer[data-v-055197b8]{overflow-wrap:anywhere;grid-area:1/1;min-width:0}.editor-path-sizer[data-v-055197b8]{visibility:hidden}.editor-pos[data-v-055197b8]{text-align:right;flex:none;min-width:7ch}@media (width<=760px){.editor[data-v-055197b8]{grid-template-columns:minmax(0,1fr);grid-template-areas:"tabs""tree""pane""foot"}.editor-tree[data-v-055197b8]{border-right:0;border-bottom:1px solid var(--border)}.editor-lines[data-v-055197b8]{font-size:.78rem}}.editor-frame[data-editor-view=cards] .editor-files[data-v-055197b8]{display:none}.editor-frame[data-editor-view=cards] .editor-cards[data-v-055197b8]{display:block}html:not(.js) .editor-tabs[data-v-055197b8],html:not(.js) .editor-tree[data-v-055197b8],html:not(.js) .editor-files[data-v-055197b8],html:not(.js) .editor-footer[data-v-055197b8],html.app-failed .editor-tabs[data-v-055197b8],html.app-failed .editor-tree[data-v-055197b8],html.app-failed .editor-files[data-v-055197b8],html.app-failed .editor-footer[data-v-055197b8]{display:none}html:not(.js) .editor-cards[data-v-055197b8],html.app-failed .editor-cards[data-v-055197b8]{padding:0;display:block}html:not(.js) .editor[data-v-055197b8],html.app-failed .editor[data-v-055197b8]{background:0 0;border:0;grid-template-columns:minmax(0,1fr);grid-template-areas:"pane"}@media print{.editor-tabs[data-v-055197b8],.editor-tree[data-v-055197b8],.editor-files[data-v-055197b8],.editor-footer[data-v-055197b8]{display:none!important}.editor-cards[data-v-055197b8]{padding:0;display:block!important}.editor[data-v-055197b8]{background:0 0;border:0;grid-template-columns:minmax(0,1fr);grid-template-areas:"pane"}}.maximize-backdrop[data-v-055197b8]{z-index:900;background:var(--maximize-scrim);-webkit-backdrop-filter:blur(var(--maximize-blur));backdrop-filter:blur(var(--maximize-blur));position:fixed;inset:0}html.motion .maximize-backdrop[data-v-055197b8]{animation:.2s both backdrop-in-055197b8}@keyframes backdrop-in-055197b8{0%{opacity:0}}.editor-frame.is-maximized[data-v-055197b8]{z-index:901;flex-direction:column;display:flex;position:fixed;inset:max(2.5vh,.75rem) max(2.5vw,.75rem)}.editor-frame.is-maximized[data-v-055197b8]>.base-card{flex:1;min-height:0}.editor-frame.is-maximized[data-v-055197b8] .terminal-window,.editor-frame.is-maximized[data-v-055197b8] .terminal-body{min-height:0}.editor-frame.is-maximized .editor[data-v-055197b8]{flex:1;grid-template-rows:auto minmax(0,1fr) auto;min-height:0}.editor-frame.is-maximized .editor-tree[data-v-055197b8],.editor-frame.is-maximized .editor-cards[data-v-055197b8]{overscroll-behavior:contain;overflow:auto}.editor-frame.is-maximized .editor-pane[data-v-055197b8]{grid-template-rows:minmax(0,1fr);min-height:0}@media (width<=760px){.editor-frame.is-maximized[data-v-055197b8]{inset:.5rem}.editor-frame.is-maximized .editor[data-v-055197b8]{grid-template-rows:auto auto minmax(0,1fr) auto}.editor-frame.is-maximized .editor-tree[data-v-055197b8]{max-height:30vh}}@media print{.maximize-backdrop[data-v-055197b8]{display:none}.editor-frame.is-maximized[data-v-055197b8]{position:static}}.cert-card[data-v-d88f9fc1]{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--purple-light);border-radius:var(--radius-card);padding:calc(var(--spacing) * 4.8) calc(var(--spacing) * 6.4);transition:border-color .25s}.cert-card[data-v-d88f9fc1]:hover,.cert-card[data-v-d88f9fc1]:focus-within{border-left-color:var(--green-bright)}.cert-title[data-v-d88f9fc1]{font-size:1rem}.cert-meta[data-v-d88f9fc1]{margin-bottom:calc(var(--spacing) * 2.4)}.cert-syllabus[data-v-d88f9fc1]{margin-bottom:calc(var(--spacing) * 2.4);font-size:.88rem}.cert-links[data-v-d88f9fc1]{overflow-wrap:anywhere;font-size:.82rem}.cert-code[data-v-d88f9fc1],.cert-sep[data-v-d88f9fc1]{color:var(--text-dim)}@media (width>=900px){.cert[data-v-d88f9fc1]{column-gap:calc(var(--spacing) * 6);grid-template-columns:9rem minmax(0,1fr);grid-template-areas:"date title""date meta""date syllabus""date links";align-items:baseline;display:grid}.cert-date[data-v-d88f9fc1]{grid-area:date;margin:0}.cert-title[data-v-d88f9fc1]{grid-area:title}.cert-meta[data-v-d88f9fc1]{grid-area:meta}.cert-syllabus[data-v-d88f9fc1]{grid-area:syllabus}.cert-links[data-v-d88f9fc1]{grid-area:links}}.cert-group+.cert-group[data-v-cfb43961]{margin-top:calc(var(--spacing) * 8)}.cert-group-title[data-v-cfb43961]{margin-bottom:calc(var(--spacing) * 3.2);color:var(--green-bright);letter-spacing:.06em;text-transform:uppercase;font-size:.9rem}.cert-list[data-v-cfb43961]{gap:calc(var(--spacing) * 3.2);flex-direction:column;list-style:none;display:flex}.contact-slot[data-v-b6de4470]{margin-top:calc(var(--spacing) * 6)}.contact-slot[data-window-state=open][data-v-b6de4470]{max-width:720px;margin-inline:auto}.contact-window[data-v-b6de4470]{border:1px solid var(--border);border-radius:var(--radius-window);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 0 1px color-mix(in srgb, var(--purple-light) 8%, transparent);transition:box-shadow .25s,border-color .25s}.contact-window[data-v-b6de4470]:hover{border-color:var(--purple-light);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 24px color-mix(in srgb, var(--purple-light) 25%, transparent)}.contact-list[data-v-b6de4470]{margin:calc(var(--spacing) * 1.6) 0 calc(var(--spacing) * 5.6);list-style:none}.contact-list li[data-v-b6de4470]{margin-bottom:calc(var(--spacing) * 2.2);overflow-wrap:anywhere}.c-key[data-v-b6de4470]{color:var(--purple-glow)}.c-sep[data-v-b6de4470]{color:var(--text-dim);margin:0 calc(var(--spacing) * 1.6)}.edu-note[data-v-df18ec94]{color:var(--text)}.edu-note[data-v-df18ec94]:last-child{margin-bottom:0}.edu-sources[data-v-df18ec94]{gap:calc(var(--spacing) * 1.2) calc(var(--spacing) * 6);flex-wrap:wrap;font-size:.82rem;list-style:none;display:flex}.src-key[data-v-df18ec94]{color:var(--purple-glow)}.src-sep[data-v-df18ec94]{color:var(--text-dim)}.edu-list[data-v-46991020]{gap:calc(var(--spacing) * 4.8);flex-direction:column;list-style:none;display:flex}.metric[data-v-8844f836]{align-items:baseline;gap:calc(var(--spacing) * 1.6);font-size:.85rem;display:inline-flex}.metric-value[data-v-8844f836]{color:var(--green-bright);font-weight:700}.metric-label[data-v-8844f836]{color:var(--text-dim)}.tech-icon[data-v-3b757869]{width:var(--icon-tech);height:var(--icon-tech);fill:currentColor;flex-shrink:0;display:inline-block}.chip[data-v-7879aee6]{font-family:var(--font-mono);color:var(--green-bright);background:color-mix(in srgb, var(--green) 16%, transparent);border:1px solid color-mix(in srgb, var(--green-light) 35%, transparent);padding:calc(var(--spacing) * .88) calc(var(--spacing) * 2.4);border-radius:var(--radius-pill);cursor:default;align-items:center;gap:.4em;font-size:.75rem;transition:all .2s;display:inline-flex}.chip[data-v-7879aee6]:hover{background:var(--green);color:var(--on-accent);box-shadow:0 0 14px color-mix(in srgb, var(--green-light) 55%, transparent);transform:translateY(-2px)}.exp-photo[data-v-1c0c471b]{width:min(100%,20rem);margin-top:calc(var(--spacing) * 4.8)}.metrics[data-v-1c0c471b]{gap:calc(var(--spacing) * 1.6) calc(var(--spacing) * 4.8);margin-bottom:calc(var(--spacing) * 4);flex-wrap:wrap;list-style:none;display:flex}.timeline[data-v-2c9764e6]{padding-left:calc(var(--spacing) * 8);list-style:none;position:relative}.timeline[data-v-2c9764e6]:before{content:"";background:linear-gradient(180deg, var(--purple-light), var(--green-light));width:2px;box-shadow:0 0 10px color-mix(in srgb, var(--purple-light) 50%, transparent);position:absolute;top:6px;bottom:6px;left:7px}.timeline-item[data-v-2c9764e6]{margin-bottom:calc(var(--spacing) * 8);position:relative}.timeline-marker[data-v-2c9764e6]{background:var(--bg);border:3px solid var(--green-bright);width:16px;height:16px;box-shadow:0 0 12px color-mix(in srgb, var(--green-bright) 70%, transparent);border-radius:50%;position:absolute;top:1.4rem;left:-2rem}@media (width<=760px){.timeline[data-v-2c9764e6]{padding-left:calc(var(--spacing) * 6.4)}.timeline-marker[data-v-2c9764e6]{width:13px;height:13px;left:-1.6rem}}.glitch[data-v-a0f38fa7]{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--text);text-shadow:0 0 30px color-mix(in srgb, var(--purple-glow) 35%, transparent);font-size:clamp(2.2rem,7vw,4.5rem);font-weight:800;line-height:1.6;position:relative}.glitch[data-v-a0f38fa7]:before,.glitch[data-v-a0f38fa7]:after{content:attr(data-text);opacity:.85;position:absolute;inset:0}.glitch[data-v-a0f38fa7]:before{color:var(--purple-glow);clip-path:inset(0 0 60%)}.glitch[data-v-a0f38fa7]:after{color:var(--green-bright);clip-path:inset(60% 0 0)}html.motion .glitch[data-v-a0f38fa7]:before{animation:3.2s step-end infinite glitch-shift-a0f38fa7}html.motion .glitch[data-v-a0f38fa7]:after{animation:2.7s step-end infinite reverse glitch-shift-a0f38fa7}@keyframes glitch-shift-a0f38fa7{0%,87%,to{opacity:0;transform:translate(0)}88%{opacity:.8;transform:translate(-4px,2px)}90%{opacity:.8;transform:translate(4px,-2px)}92%{opacity:.6;transform:translate(-2px,-1px)}94%{opacity:.8;transform:translate(2px,1px)}96%{opacity:0;transform:translate(0)}}.lattice-loader[data-v-6398a267]{align-items:center;gap:calc(var(--ll-font) * .625);font-family:inherit;font-size:var(--ll-font);color:var(--ll-color);line-height:1;transition:color .2s;display:inline-flex;position:relative}.lattice-loader[data-status=done][data-v-6398a267],.lattice-loader[data-status=error][data-v-6398a267]{color:var(--ll-mark)}.ll-grid[data-v-6398a267]{flex-shrink:0;display:grid}.ll-run[data-v-6398a267],.ll-mark[data-v-6398a267]{grid-area:1/1;grid-template-columns:repeat(var(--ll-n), var(--ll-cell));gap:var(--ll-gap);display:grid}.ll-run[data-v-6398a267]{transition:opacity .2s}.lattice-loader:not([data-status=working]) .ll-run[data-v-6398a267]{opacity:0}.lattice-loader:not([data-status=working]) .ll-run>span[data-v-6398a267],.lattice-loader[data-paused] .ll-run>span[data-v-6398a267]{animation-play-state:paused}.ll-cell[data-v-6398a267]{width:var(--ll-cell);height:var(--ll-cell);border-radius:max(1px, calc(var(--ll-cell) * .25));background:var(--ll-color)}.lattice-loader[data-shape=round] .ll-cell[data-v-6398a267]{border-radius:9999px}.ll-hole[data-v-6398a267]{opacity:calc(var(--ll-idle) * .47)}.ll-lit[data-v-6398a267]{opacity:var(--ll-idle);animation-duration:var(--ll-cycle);animation-iteration-count:infinite;animation-timing-function:var(--ll-ease-in-out)}.ll-lit-62[data-v-6398a267]{animation-name:lattice-on}.ll-lit-45[data-v-6398a267]{animation-name:lattice-on-45}.ll-lit-35[data-v-6398a267]{animation-name:lattice-on-35}.ll-lit-25[data-v-6398a267]{animation-name:lattice-on-25}.lattice-loader[data-glow] .ll-lit[data-v-6398a267]{box-shadow:0 0 calc(var(--ll-cell) * 1.2) calc(var(--ll-cell) * .12) var(--ll-glow)}.ll-mark[data-v-6398a267]{transform-origin:50%;opacity:0;transition:opacity .16s var(--ll-ease-out), transform .16s var(--ll-ease-out);transform:scale(.9)}.lattice-loader:not([data-status=working]) .ll-mark[data-v-6398a267]{opacity:1;transition:opacity .2s ease, transform .2s var(--ll-ease-out);transform:none}.ll-mark-cell[data-v-6398a267]{opacity:var(--ll-idle);transition:opacity .2s,background-color .2s}.ll-mark-cell[data-on][data-v-6398a267]{background:var(--ll-mark);opacity:var(--ll-peak)}.lattice-loader[data-glow] .ll-mark-cell[data-on][data-v-6398a267]{box-shadow:0 0 calc(var(--ll-cell) * 1.2) calc(var(--ll-cell) * .12) var(--ll-mark-glow)}.ll-label[data-v-6398a267]{font-weight:500;display:inline-block;position:relative}.ll-text[data-v-6398a267]{white-space:nowrap;opacity:0;filter:blur(2px);transition:opacity .2s,filter .2s;position:absolute;top:0;left:0}.ll-text[data-active][data-v-6398a267]{opacity:1;filter:blur();position:static}@media (prefers-reduced-motion:reduce){.ll-run[data-v-6398a267]{--ll-peak:.7}.ll-run>span[data-v-6398a267]{animation-duration:1.4s!important;animation-delay:0s!important}.ll-mark[data-v-6398a267]{transform:none!important}.ll-text[data-v-6398a267]{filter:none!important}}@keyframes lattice-on{0%,to{opacity:var(--ll-idle)}18%,42%{opacity:var(--ll-peak)}62%{opacity:var(--ll-idle)}}@keyframes lattice-on-45{0%,to{opacity:var(--ll-idle)}13%,31%{opacity:var(--ll-peak)}45%{opacity:var(--ll-idle)}}@keyframes lattice-on-35{0%,to{opacity:var(--ll-idle)}10%,24%{opacity:var(--ll-peak)}35%{opacity:var(--ll-idle)}}@keyframes lattice-on-25{0%,to{opacity:var(--ll-idle)}7%,17%{opacity:var(--ll-peak)}25%{opacity:var(--ll-idle)}}.hero-boot[data-loader=hidden][data-v-1d95c35e]{opacity:0;visibility:hidden}html.motion .hero-boot[data-v-1d95c35e]{transition:opacity .5s,visibility .5s}@media print{.hero-boot[data-v-1d95c35e]{display:none}}.typed[data-v-9e99dbeb]{color:var(--green-bright)}.hero[data-v-b5208cf2]{text-align:center;min-height:100vh;padding:var(--hero-pad);background:radial-gradient(ellipse at 30% 20%, color-mix(in srgb, var(--purple) 25%, transparent), transparent 55%), radial-gradient(ellipse at 75% 80%, color-mix(in srgb, var(--green) 18%, transparent), transparent 55%), var(--bg);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero-content[data-v-b5208cf2]{z-index:2;max-width:var(--container-hero);position:relative}.hero-boot[data-v-b5208cf2]{color:var(--green-light);min-height:1.6em;margin-bottom:calc(var(--spacing) * 4.8);font-size:.8rem}.hero-terminal[data-v-b5208cf2]{margin-top:calc(var(--spacing) * 5.6);color:var(--text);min-height:1.8em;font-size:clamp(.95rem,2.4vw,1.25rem)}.hero-sub[data-v-b5208cf2]{margin-top:calc(var(--spacing) * 4.8);color:var(--text-dim);max-width:560px;margin-left:auto;margin-right:auto;font-size:1.02rem}.hero-actions[data-v-b5208cf2]{margin-top:calc(var(--spacing) * 8.8);align-items:center;gap:calc(var(--spacing) * 4);flex-direction:column;display:flex}.btn[data-v-b5208cf2]{font-family:var(--font-mono);padding:calc(var(--spacing) * 2.8) calc(var(--spacing) * 5.6);border-radius:var(--radius-btn);font-size:.92rem;text-decoration:none;transition:all .25s}.btn-primary[data-v-b5208cf2]{background:var(--purple);color:var(--on-accent);border:1px solid var(--purple-light);box-shadow:0 0 18px color-mix(in srgb, var(--purple) 55%, transparent)}.btn-primary[data-v-b5208cf2]:hover{background:var(--purple-light);box-shadow:0 0 28px color-mix(in srgb, var(--purple-light) 75%, transparent);transform:translateY(-2px)}.btn-ghost[data-v-b5208cf2]{color:var(--green-bright);border:1px solid var(--green);background:color-mix(in srgb, var(--green) 12%, transparent)}.btn-ghost[data-v-b5208cf2]:hover{background:var(--green);color:var(--on-accent);box-shadow:0 0 22px color-mix(in srgb, var(--green-light) 50%, transparent);transform:translateY(-2px)}.hero[data-glitch] .hero-sub[data-v-b5208cf2],.hero[data-glitch][data-v-b5208cf2] .ll-text{text-shadow:var(--hero-halo)}.hero[data-glitch] .btn-ghost[data-v-b5208cf2]:not(:hover){background:color-mix(in srgb, var(--green) 12%, var(--bg))}.hero-scroll[data-v-b5208cf2]{z-index:2;color:var(--text);font-size:.78rem;text-decoration:none;animation:2.2s ease-in-out infinite float-b5208cf2;position:absolute;bottom:1.6rem;left:50%;transform:translate(-50%)}.hero-scroll[data-v-b5208cf2]:hover{color:var(--green-bright)}html.js .hero-scroll[data-v-b5208cf2]{bottom:calc(var(--dock-space) + .6rem)}@keyframes float-b5208cf2{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(6px)}}.section-subpart[data-v-ecef46a6]{margin-top:calc(var(--spacing) * 16)}.subpart-title[data-v-ecef46a6]{color:var(--text);margin-bottom:calc(var(--spacing) * 2);overflow-wrap:anywhere;font-size:clamp(1.15rem,3vw,1.45rem);font-weight:700}.title-hash[data-v-ecef46a6]{color:var(--purple-glow);margin-right:calc(var(--spacing) * 2)}.title-slash[data-v-ecef46a6]{color:var(--green-bright)}.subpart-lead[data-v-ecef46a6]{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 6);font-size:.85rem}.subpart-title[data-v-ecef46a6]:has(+:not(.subpart-lead)){margin-bottom:calc(var(--spacing) * 4)}.challenge-stack[data-v-e10b24f9]{margin-bottom:calc(var(--spacing) * 3.2)}.challenge-repo[data-v-e10b24f9]{overflow-wrap:anywhere;font-size:.85rem}@media (width>=900px){.challenge[data-v-e10b24f9]{column-gap:calc(var(--spacing) * 6);grid-template-columns:6.5rem minmax(0,1fr) auto;grid-template-areas:"date name repo""date desc desc""date stack stack";align-items:baseline;display:grid}.challenge-date[data-v-e10b24f9]{grid-area:date;margin:0}.challenge-name[data-v-e10b24f9]{grid-area:name;margin:0}.challenge-repo[data-v-e10b24f9]{text-align:right;grid-area:repo;justify-self:end}.challenge-desc[data-v-e10b24f9]{margin:calc(var(--spacing) * 1.2) 0 calc(var(--spacing) * 2.4);grid-area:desc}.challenge-stack[data-v-e10b24f9]{grid-area:stack;margin:0}}.community-meta[data-v-79c93288]{font-size:.82rem}.community-meta div[data-v-79c93288]{gap:calc(var(--spacing) * 1.6);display:flex}.community-meta dt[data-v-79c93288]{color:var(--purple-glow);white-space:nowrap;flex-shrink:0}.community-meta dt[data-v-79c93288]:after{content:" =";color:var(--text-dim)}.community-meta dd[data-v-79c93288]{color:var(--text);overflow-wrap:anywhere;min-width:0}.t-theme-name[data-v-6e4a5653]{color:var(--text);margin-bottom:calc(var(--spacing) * 1.4)}.evidence-label[data-v-6e4a5653]{color:var(--purple-glow)}.neon[data-v-6e4a5653]{position:relative}.neon[data-v-6e4a5653]:after{content:attr(data-text);color:#0000;pointer-events:none;animation:3.4s linear infinite neon-flicker-6e4a5653;position:absolute;inset:0}.neon-grape[data-v-6e4a5653]{color:var(--green-bright)}.neon-grape[data-v-6e4a5653]:after{text-shadow:0 0 4px color-mix(in srgb, var(--green-bright) 90%, transparent), 0 0 10px color-mix(in srgb, var(--green-bright) 60%, transparent), 0 0 18px color-mix(in srgb, var(--purple-glow) 75%, transparent), 0 0 32px color-mix(in srgb, var(--purple-glow) 50%, transparent)}.neon-sith[data-v-6e4a5653]{color:var(--sith)}.neon-sith[data-v-6e4a5653]:after{text-shadow:0 0 4px color-mix(in srgb, var(--sith-glow) 90%, transparent), 0 0 10px color-mix(in srgb, var(--sith-deep) 75%, transparent), 0 0 18px color-mix(in srgb, var(--sith-deep) 55%, transparent), 0 0 32px color-mix(in srgb, var(--sith-deep) 40%, transparent);animation:2.9s linear infinite reverse neon-flicker-6e4a5653}@keyframes neon-flicker-6e4a5653{0%,6%,10%,to{opacity:1}7%{opacity:.55}9%{opacity:.8}42%{opacity:1}43%{opacity:.7}44%{opacity:1}70%{opacity:.92}}.evidence-link[data-v-6e4a5653]{border-bottom:0;width:fit-content;display:flex}:is(.evidence-link[data-v-6e4a5653]:has(img):hover,.evidence-link[data-v-6e4a5653]:has(img):focus-visible){filter:drop-shadow(0 0 8px color-mix(in srgb, var(--purple-light) 55%, transparent))}:is(.evidence-sith[data-v-6e4a5653]:has(img):hover,.evidence-sith[data-v-6e4a5653]:has(img):focus-visible){filter:drop-shadow(0 0 8px color-mix(in srgb, var(--sith-deep) 65%, transparent))}.badge-box[data-v-6e4a5653]{align-items:center;width:190px;max-width:100%;height:29px;display:flex}.badge-box img[data-v-6e4a5653]{border-bottom:1px dashed;width:auto;max-width:100%;height:29px;display:block}.evidence-url[data-v-6e4a5653]{color:var(--green-bright);border-bottom:1px dashed}.evidence-grape .badge-box img[data-v-6e4a5653],.evidence-grape .badge-box .evidence-url[data-v-6e4a5653]{border-bottom-color:var(--grape)}.evidence-sith .badge-box img[data-v-6e4a5653],.evidence-sith .badge-box .evidence-url[data-v-6e4a5653]{border-bottom-color:var(--sith-badge)}.evidence-private[data-v-6e4a5653]{align-items:center;gap:calc(var(--spacing) * 1.6);flex-wrap:wrap;max-width:100%}.evidence-private .evidence-url[data-v-6e4a5653]{overflow-wrap:anywhere;min-width:0}.private-lock[data-v-6e4a5653]{width:var(--icon-inline);height:var(--icon-inline);color:var(--text-dim);flex-shrink:0}.private-tag[data-v-6e4a5653]{color:var(--text-dim);border:1px solid var(--border);border-radius:var(--radius-nav);padding:0 calc(var(--spacing) * 1.6);font-size:.72rem;line-height:1.5}.project-shot[data-v-2fade4e9]{margin:0 0 calc(var(--spacing) * 4) 0}.project-name[data-v-edc6b72c]{font-size:inherit;color:var(--text-dim);margin:0 0 calc(var(--spacing) * 4) 0;font-weight:400}.project-name .tag-now[data-v-edc6b72c]{white-space:nowrap;display:inline-block}.t-desc[data-v-edc6b72c]{color:var(--text);font-family:var(--font-sans);margin:0 0 calc(var(--spacing) * 4) 0}.project-meta[data-v-edc6b72c]{margin-bottom:calc(var(--spacing) * 3.2);font-size:.82rem}.project-meta div[data-v-edc6b72c]{gap:calc(var(--spacing) * 1.6);display:flex}.project-meta dt[data-v-edc6b72c]{color:var(--purple-glow);white-space:nowrap;flex-shrink:0}.project-meta dt[data-v-edc6b72c]:after{content:" =";color:var(--text-dim)}.project-meta dd[data-v-edc6b72c]{color:var(--text)}.project-stack[data-v-edc6b72c]{margin-bottom:calc(var(--spacing) * 4)}.apps-title[data-v-edc6b72c]{color:var(--text-dim);margin:0 0 calc(var(--spacing) * 2) 0}.project-apps[data-v-edc6b72c]{gap:calc(var(--spacing) * 2.4);margin-bottom:calc(var(--spacing) * 4);list-style:none;display:grid}.project-apps li[data-v-edc6b72c]{gap:calc(var(--spacing) * .8);min-width:0;display:grid}.app-name[data-v-edc6b72c]{align-items:center;gap:calc(var(--spacing) * 1.6);white-space:nowrap;display:inline-flex}.app-desc[data-v-edc6b72c]{color:var(--text);font-family:var(--font-sans);font-size:.9rem}@media (width>=600px){.project-apps[data-v-edc6b72c]{column-gap:calc(var(--spacing) * 4);grid-template-columns:max-content minmax(0,1fr)}.project-apps li[data-v-edc6b72c]{grid-column:1/-1;grid-template-columns:subgrid;column-gap:calc(var(--spacing) * 4);align-items:baseline}}.metrics[data-v-edc6b72c]{gap:calc(var(--spacing) * 1.6) calc(var(--spacing) * 4.8);margin-bottom:calc(var(--spacing) * 4);flex-wrap:wrap;list-style:none;display:flex}.t-badges[data-v-edc6b72c]{align-items:flex-start;gap:calc(var(--spacing) * 3.6);margin-bottom:calc(var(--spacing) * 4);flex-direction:column;list-style:none;display:flex}.no-evidence[data-v-edc6b72c]{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 4);font-style:italic}.project-info[data-v-edc6b72c],.project-links[data-v-edc6b72c]{min-width:0}@media (width>=900px){.project-body[data-v-edc6b72c]{column-gap:calc(var(--spacing) * 10);grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);display:grid}.project-links[data-v-edc6b72c]{border-left:1px solid var(--border);padding-left:calc(var(--spacing) * 6)}}.project-footer[data-v-edc6b72c]{margin-top:auto;margin-bottom:0}.t-exit[data-v-edc6b72c]{color:var(--text-dim);margin-left:calc(var(--spacing) * 2.4);font-size:.8rem}.projects-grid[data-v-197b3e93]{align-items:flex-start;gap:calc(var(--spacing) * 2);margin-top:calc(var(--spacing) * 4.2);flex-wrap:wrap;list-style:none;display:flex}.projects-grid>li[data-v-197b3e93]{flex:none}.projects-grid>li[data-v-197b3e93]:has(>.desktop-window[data-window-state=open]){min-width:0;margin-block:calc(var(--spacing) * 1.8);flex:1 0 100%}.subpart-list[data-v-197b3e93]{gap:calc(var(--spacing) * 4);flex-direction:column;list-style:none;display:flex}.skill-loop[data-v-c6ebc578]{background:var(--ribbon-bg);border-block:1px solid var(--ribbon-edge);padding:calc(var(--spacing) * 2.4) calc(50cqw - 50% + var(--spacing) * 2);margin-inline:calc(50% - 50cqw)}.loop-seq[data-v-c6ebc578]{row-gap:calc(var(--spacing) * 2);flex-wrap:wrap;list-style:none;display:flex}.loop-item[data-v-c6ebc578]{font-family:var(--font-mono);font-size:var(--loop-font);color:var(--green-bright);white-space:nowrap;align-items:center;gap:.5em;line-height:1.5;display:inline-flex}.loop-sep[data-v-c6ebc578]{color:var(--purple-glow);margin-inline:.7em 1em}html:not(.motion) .loop-item:last-child .loop-sep[data-v-c6ebc578]{display:none}html:not(.motion) .loop-item[data-v-c6ebc578]{white-space:normal;max-width:100%}html:not(.motion) .loop-name[data-v-c6ebc578]{overflow-wrap:anywhere}html:not(.motion) [data-loop-copy][data-v-c6ebc578]{display:none}html.motion .skill-loop[data-v-c6ebc578]{padding-inline:0;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 4rem calc(100% - 4rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 4rem calc(100% - 4rem),#0000)}html.motion .loop-track[data-v-c6ebc578]{width:max-content;display:flex}html.motion .loop-seq[data-v-c6ebc578]{flex-wrap:nowrap;flex-shrink:0}html.motion .skill-loop[data-loop-ready] .loop-track[data-v-c6ebc578]{animation:skill-loop-c6ebc578 var(--loop-duration) linear infinite;will-change:transform;animation-play-state:paused}html.motion .skill-loop[data-direction=to-right] .loop-track[data-v-c6ebc578]{animation-direction:reverse}html.motion .skill-loop[data-loop-ready][data-loop-visible] .loop-track[data-v-c6ebc578]{animation-play-state:running}html.motion .skill-loop[data-loop-ready][data-loop-visible]:hover .loop-track[data-v-c6ebc578]{animation-play-state:paused}@keyframes skill-loop-c6ebc578{to{transform:translateX(calc(-1 * var(--loop-shift)))}}@media print{html.motion .skill-loop[data-v-c6ebc578]{padding-inline:calc(var(--spacing) * 4);margin-inline:0;overflow:visible;-webkit-mask-image:none;mask-image:none}html.motion .loop-track[data-v-c6ebc578]{width:auto}html.motion .loop-seq[data-v-c6ebc578]{flex-wrap:wrap;flex-shrink:1}html.motion .skill-loop .loop-track[data-v-c6ebc578]{animation:none;transform:none}[data-loop-copy][data-v-c6ebc578],.loop-item:last-child .loop-sep[data-v-c6ebc578]{display:none}.loop-item[data-v-c6ebc578]{white-space:normal;max-width:100%}}.section-subpart.skill-subpart[data-v-e44d49be]{margin-top:calc(var(--spacing) * 9)}.skill-icon[data-v-e44d49be]{width:var(--icon-skill);height:var(--icon-skill);color:var(--green-bright);margin-right:calc(var(--spacing) * 2);vertical-align:-.3em;display:inline-block}.faulty-terminal[data-v-0aa1ac67]{width:100%;height:100%;position:relative;overflow:hidden}.faulty-terminal-canvas[data-v-0aa1ac67]{width:100%;height:100%;display:block}.text-type[data-v-3fe3707b]{white-space:pre-wrap}.text-type-ghost[data-v-3fe3707b]{visibility:hidden}.access-gate[data-v-fcd4bba7]{z-index:9999;padding:calc(var(--spacing) * 4);background:var(--bg);display:grid;position:fixed;inset:0;overflow:hidden}.access-gate.gate-leaving[data-v-fcd4bba7]{opacity:0;visibility:hidden;transition:opacity .5s,visibility .5s}.gate-bg[data-v-fcd4bba7]{position:absolute;inset:0}.gate-stage[data-v-fcd4bba7]{place-items:center;min-width:0;display:grid;position:relative}.gate-stage[data-v-fcd4bba7]>*{grid-area:1/1}.gate-launcher[data-v-fcd4bba7]{isolation:isolate;align-items:center;gap:calc(var(--spacing) * 3);flex-direction:column;display:flex;position:relative}.gate-launcher .gate-icon[data-v-fcd4bba7]{width:auto;min-width:calc(var(--desktop-icon-size) + 2.5rem);padding-inline:calc(var(--spacing) * 3)}.gate-launcher[data-v-fcd4bba7]:before{content:"";z-index:-1;background:var(--gate-vignette);pointer-events:none;position:absolute;inset:2.25rem -4.25rem -4.125rem}.gate-still .gate-launcher[data-v-fcd4bba7]:before{content:none}.gate-hint[data-v-fcd4bba7]{color:var(--text-dim);text-align:center;font-size:.8rem}.gate-window[data-v-fcd4bba7]{z-index:2;width:min(var(--gate-window-width), 100%);transform-origin:0 0;border:1px solid var(--border);border-radius:var(--radius-window);box-shadow:0 8px 40px color-mix(in srgb, var(--shadow) 50%, transparent), 0 0 0 1px color-mix(in srgb, var(--purple-light) 8%, transparent);position:relative}.gate-session[data-v-fcd4bba7]{color:var(--text);overflow-wrap:anywhere;font-size:clamp(.78rem,2.2vw,.9rem);line-height:1.75}.boot-line[data-v-fcd4bba7]{min-height:1.75em}.boot-pending[data-v-fcd4bba7]{visibility:hidden}.gate-session[data-v-fcd4bba7] .cursor{width:0;display:inline-block}.boot-dim[data-v-fcd4bba7]{color:var(--text-dim)}.boot-ok[data-v-fcd4bba7]{color:var(--green-bright)}.scanlines[data-v-fe085c77]{pointer-events:none;z-index:999;background:repeating-linear-gradient(0deg, transparent 0px, transparent 3px, color-mix(in srgb, var(--shadow) 8%, transparent) 3px, color-mix(in srgb, var(--shadow) 8%, transparent) 4px);mix-blend-mode:multiply;position:fixed;inset:0}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:var(--font-sans);--font-mono:var(--font-mono);--spacing:.25rem;--radius-3xl:1.5rem;--ease-out:cubic-bezier(0, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .2, 1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-bg:var(--bg);--color-surface:var(--surface);--radius-window:10px;--radius-card:8px;--radius-btn:6px;--radius-nav:4px;--radius-tag:3px;--radius-pill:999px;--container-page:1100px;--container-hero:820px}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;overflow-x:hidden}::selection{background:var(--purple-light);color:var(--on-accent)}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-alt)}::-webkit-scrollbar-thumb{background:var(--purple);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--purple-light)}:focus-visible{outline:2px solid var(--purple-glow);outline-offset:2px}.hero+main{margin-top:max(0px, calc(var(--hero-gap) - 5rem))}main{container-type:inline-size}html.booting{overflow:hidden}html.booting:before{content:"";z-index:9998;background:var(--bg);position:fixed;inset:0}html.window-maximized{scrollbar-gutter:stable;overflow:hidden}}@layer components{.mono{font-family:var(--font-mono)}.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}.prompt-user{color:var(--green-bright)}.prompt-at,.prompt-colon{color:var(--text-dim)}.prompt-host{color:var(--purple-glow)}.prompt-path{color:var(--green-light)}.prompt-dollar{color:var(--purple-glow)}.hl-green{color:var(--green-bright)}.hl-purple{color:var(--purple-glow);font-weight:600}.cursor{color:var(--green-bright);animation:1s step-end infinite blink}.tag-now{background:var(--green);color:var(--on-green);padding:calc(var(--spacing) * .4) calc(var(--spacing) * 2);border-radius:var(--radius-tag);margin-left:calc(var(--spacing) * 2);letter-spacing:.06em;font-size:.7rem;animation:2.4s ease-in-out infinite pulse-glow}.card-date{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 2);font-size:.78rem}.card-role{color:var(--text);margin-bottom:calc(var(--spacing) * .8);font-size:1.15rem;font-weight:700}.card-company{color:var(--purple-glow);margin-bottom:calc(var(--spacing) * 3.2);font-size:.82rem}.card-desc{color:var(--text-dim);margin-bottom:calc(var(--spacing) * 4);font-size:.95rem}.chips{gap:calc(var(--spacing) * 2);flex-wrap:wrap;list-style:none;display:flex}.ext-link{color:var(--green-bright);border-bottom:1px dashed;text-decoration:none;transition:text-shadow .2s,filter .2s}.ext-link:hover,.ext-link:focus-visible{text-shadow:var(--glow-link)}}@layer utilities{.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.collapse{visibility:collapse}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:0}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.max-w-\[1100px\]{max-width:1100px}.max-w-page{max-width:var(--container-page)}.flex-shrink,.shrink{flex-shrink:1}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.resize{resize:both}.flex-wrap{flex-wrap:wrap}.justify-center{justify-content:center}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[8px\]{border-radius:8px}.rounded-card{border-radius:var(--radius-card)}.rounded-window{border-radius:var(--radius-window)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--border)}.bg-bg{background-color:var(--bg)}.bg-surface{background-color:var(--surface)}.p-6{padding:calc(var(--spacing) * 6)}.p-8{padding:calc(var(--spacing) * 8)}.font-mono{font-family:var(--font-mono)}.text-wrap{text-wrap:wrap}.text-purple-glow{color:var(--purple-glow)}.text-text{color:var(--text)}.lowercase{text-transform:lowercase}.uppercase{text-transform:uppercase}.underline{text-decoration-line:underline}.opacity-0{opacity:0}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.drop-shadow{--tw-drop-shadow-size:drop-shadow(0 1px 2px var(--tw-drop-shadow-color,#0000001a)) drop-shadow(0 1px 1px var(--tw-drop-shadow-color,#0000000f));--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-500{--tw-duration:.5s;transition-duration:.5s}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}.\[data-loop-copy\]\:visible:is(data-loop-copy){visibility:visible}}:root{--bg:#0a0612;--bg-alt:#0d0a16;--surface:#16101f;--surface-2:#1c1428;--border:#2c1d40;--purple:#462066;--purple-light:#7b3fb3;--purple-glow:#a06ae0;--green:#205e44;--green-light:#2fa876;--green-bright:#4ade9b;--text:#d8d2e4;--text-dim:#8a819e;--font-mono:"Iosevka", ui-monospace, monospace;--font-sans:"Iosevka Aile", ui-sans-serif, sans-serif;--spotlight:#a06ae01a;--on-accent:#fff;--on-green:#eafff4;--on-purple:#e6ddf2;--shadow:#000;--sith:#ff6b6b;--sith-glow:#ff5b5b;--sith-deep:#d90404;--icon-inline:1em;--icon-skill:1.4rem;--icon-tech:1em;--ribbon-bg:var(--purple)}@supports (color:color-mix(in lab, red, red)){:root{--ribbon-bg:color-mix(in srgb, var(--purple) 55%, var(--bg))}}:root{--ribbon-edge:var(--purple-light);--glow-link:0 0 12px var(--green-bright)}@supports (color:color-mix(in lab, red, red)){:root{--glow-link:0 0 12px color-mix(in srgb, var(--green-bright) 70%, transparent)}}:root{--section-pad:5rem 1.5rem 2rem;--hero-pad:6rem 1.5rem 4rem;--nav-height:4.5rem;--hero-gap:50svh;--dock-space:4.75rem;--desktop-icon-size:5.5rem;--grape:#852ffc;--sith-badge:#d90404;--loop-font:1.7rem;--gate-window-width:680px;--tree-line:var(--purple);--editor-bg:var(--bg-alt);--editor-gutter:var(--text-dim);--syntax-key:var(--purple-glow);--syntax-str:var(--text);--syntax-date:var(--green-bright);--syntax-punct:var(--text-dim);--syntax-comment:var(--text-dim);--editor-tree-width:300px;--maximize-scrim:var(--bg)}@supports (color:color-mix(in lab, red, red)){:root{--maximize-scrim:color-mix(in srgb, var(--bg) 55%, transparent)}}:root{--maximize-blur:6px;--glitch-dark:var(--green);--glitch-green:var(--green-bright);--glitch-purple:var(--purple-glow);--glitch-alpha:.55;--glitch-vignette-center:radial-gradient(circle, #000c 0%, transparent 60%);--glitch-vignette-outer:radial-gradient(circle, transparent 60%, #000 100%);--hero-halo:0 0 0 #000, -1px -1px 0 #000, 0px -1px 0 #000, 1px -1px 0 #000, -1px 0px 0 #000, 1px 0px 0 #000, -1px 1px 0 #000, 0px 1px 0 #000, 1px 1px 0 #000, -2px -2px 0 #000, -1px -2px 0 #000, 0px -2px 0 #000, 1px -2px 0 #000, 2px -2px 0 #000, -2px -1px 0 #000, 2px -1px 0 #000, -2px 0px 0 #000, 2px 0px 0 #000, -2px 1px 0 #000, 2px 1px 0 #000, -2px 2px 0 #000, -1px 2px 0 #000, 0px 2px 0 #000, 1px 2px 0 #000, 2px 2px 0 #000, 0 0 4px #000, 0 0 8px #000c;--gate-vignette:radial-gradient(closest-side, #000000f0 0%, #000000e6 72%, transparent 100%);--loader-working:var(--purple-glow);--loader-done:var(--green-bright)}@media print{:root{--bg:#fff;--bg-alt:#fff;--surface:#fff;--surface-2:#f3f1f6;--border:#c9c3d3;--purple:#5b2a8a;--purple-light:#5b2a8a;--purple-glow:#5b2a8a;--green:#1d6b4b;--green-light:#1d6b4b;--green-bright:#1d6b4b;--text:#111;--text-dim:#444;--sith:#b00000;--spotlight:transparent;--ribbon-bg:var(--surface-2);--maximize-scrim:transparent;--gate-vignette:none;--glitch-vignette-center:none;--glitch-vignette-outer:none;--hero-halo:none}}@font-face{font-family:Iosevka;src:url(/Portfolio/fonts/iosevka-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Iosevka;src:url(/Portfolio/fonts/iosevka-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Iosevka;src:url(/Portfolio/fonts/iosevka-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Iosevka;src:url(/Portfolio/fonts/iosevka-800.woff2)format("woff2");font-weight:800;font-style:normal;font-display:swap}@font-face{font-family:Iosevka Aile;src:url(/Portfolio/fonts/iosevka-aile-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Iosevka Aile;src:url(/Portfolio/fonts/iosevka-aile-700.woff2)format("woff2");font-weight:700;font-style:normal;font-display:swap}.reveal{transition:opacity .6s,transform .6s}html.motion .reveal.reveal-pending{opacity:0;transform:translateY(24px)}@media not print{html.motion [data-t-anim] [data-t-cmd]{position:relative}html.motion [data-t-anim] [data-t-cmd]:is([data-t-state=pending],[data-t-state=typing])>.t-cmd,html.motion [data-t-anim] [data-t-cmd]:is([data-t-state=pending],[data-t-state=typing])>.t-cmd *{color:#0000;text-shadow:none}html.motion [data-t-anim] [data-t-state]:not([data-t-cmd]){transition:opacity .2s}html.motion [data-t-anim][data-t-instant] [data-t-state]:not([data-t-cmd]){transition:none}html.motion [data-t-anim] [data-t-state=pending]:not([data-t-cmd]){opacity:0}}.t-typed{pointer-events:none;position:absolute;inset:0}@keyframes blink{50%{opacity:0}}@keyframes pulse-glow{0%,to{box-shadow:0 0 4px color-mix(in srgb, var(--green-bright) 40%, transparent)}50%{box-shadow:0 0 14px color-mix(in srgb, var(--green-bright) 85%, transparent)}}html:not(.motion){scroll-behavior:auto}html:not(.motion) *,html:not(.motion) :before,html:not(.motion) :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (forced-colors:active){:focus-visible{outline:2px solid highlight}.base-card,.cert-card,.terminal-window,.tag-now,.chip,.skill-loop{border:1px solid canvastext!important}.scanlines,.hero-glitch,.gate-bg,.spotlight-layer{display:none!important}}@media print{html,body{background:var(--bg)!important;color:var(--text)!important}*,:before,:after{text-shadow:none!important;box-shadow:none!important;transition:none!important;animation:none!important}.scanlines,canvas,.access-gate,.hero-grid,.hero-scroll,.hero-boot,.navbar,.t-controls,.glitch:before,.glitch:after,.neon:after,.cursor,.nav-cursor,html.booting:before{display:none!important}.reveal-pending{opacity:1!important;transform:none!important}.t-typed,.reveal-text .blur-text,.hero-terminal{display:none!important}.reveal-text .sr-only{clip:auto;clip-path:none;white-space:normal;width:auto;height:auto;margin:0;position:static;overflow:visible}.hero{min-height:auto!important;padding:calc(var(--spacing) * 4) 0!important;background:0 0!important}.btn{display:none!important}a{color:inherit}a[href^=http]:after{content:" (" attr(href) ")";word-break:break-all;font-size:.8em}.evidence-link img{display:none!important}section,li,.terminal-window{break-inside:avoid}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
