.about__container{display:grid;grid-template-columns:.85fr 1.15fr;grid-gap:3rem;gap:3rem;align-items:start}.about__figure{position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + 2rem)}.about__frame{position:relative;border:1px solid var(--line);border-radius:var(--radius);padding:.6rem;background:var(--surface)}.about__img{width:100%;border-radius:var(--radius-sm);filter:grayscale(.18) contrast(1.02)}.about__tick{position:absolute;width:12px;height:12px;border-color:var(--accent);border-style:solid}.about__tick--tl{top:-1px;left:-1px;border-width:1px 0 0 1px}.about__tick--br{bottom:-1px;right:-1px;border-width:0 1px 1px 0}.about__caption{margin-top:.75rem;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.02em}.about__lead{font-family:var(--font-display);font-size:1.35rem;line-height:1.5;color:var(--title);font-weight:500;margin-bottom:1.25rem}.about__description{font-family:var(--font-mono);font-size:.92rem;line-height:1.75;color:var(--text);margin-bottom:2rem}.about__meta{border-top:1px solid var(--line);margin-bottom:2rem}.about__meta-row{display:flex;align-items:baseline;gap:.75rem;padding:.65rem 0;border-bottom:1px solid var(--line-soft);font-family:var(--font-mono);font-size:var(--fs-small)}.about__meta-key{color:var(--text-dim);min-width:9rem}.about__meta-key:before{content:"› ";color:var(--accent)}.about__meta-val{color:var(--title);font-weight:500;margin-left:auto;text-align:right}@media (max-width:820px){.about__container{grid-template-columns:1fr;gap:2rem}.about__figure{position:static;max-width:320px}.about__meta-key{min-width:7rem}}.contact__container{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:1.5rem;gap:1.5rem;align-items:start}.contact__panel{overflow:hidden}.contact__channels{display:flex;flex-direction:column}.contact__channel{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.25rem;border-bottom:1px solid var(--line-soft);transition:background .2s var(--ease)}.contact__channel:last-child{border-bottom:none}.contact__channel:hover{background:var(--surface-2)}.contact__channel-icon{font-size:1.5rem;color:var(--accent);flex-shrink:0}.contact__channel-text{display:flex;flex-direction:column;min-width:0}.contact__channel-key{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.04em}.contact__channel-value{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.contact__channel-arrow{margin-left:auto;font-size:1.25rem;color:var(--text-dim);transition:transform .2s var(--ease),color .2s var(--ease)}.contact__channel:hover .contact__channel-arrow{color:var(--accent);transform:translateX(3px)}.contact__form{gap:1.1rem;padding:1.5rem}.contact__field,.contact__form{display:flex;flex-direction:column}.contact__field{gap:.4rem}.contact__label{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-dim);letter-spacing:.04em}.contact__label:before{content:"› ";color:var(--accent)}.contact__input{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-sm);padding:.75rem .85rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease)}.contact__input::placeholder{color:var(--text-faint)}.contact__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}.contact__textarea{resize:vertical;min-height:8rem;line-height:1.6}.contact__submit{align-self:flex-start;margin-top:.25rem}.contact__submit:disabled{opacity:.6;cursor:progress}@media (max-width:820px){.contact__container{grid-template-columns:1fr}}.footer{border-top:1px solid var(--line);background:var(--surface);padding-block:2rem}.footer__inner{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 2rem}.footer__logo{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--title)}.footer__prompt{color:var(--accent)}.footer__nav{display:flex;gap:1.25rem}.footer__link{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim);transition:color .2s var(--ease)}.footer__link:hover{color:var(--accent)}.footer__social{display:flex;gap:.6rem}.footer__social-link{display:inline-flex;align-items:center;justify-content:center;width:2.1rem;height:2.1rem;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-dim);font-size:1.15rem;transition:color .2s var(--ease),border-color .2s var(--ease)}.footer__social-link:hover{color:var(--accent);border-color:var(--accent)}.footer__copy{width:100%;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.02em;padding-top:1.25rem;border-top:1px dashed var(--line)}@media (min-width:700px){.footer__social{margin-left:auto}}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--surface);color:var(--text-dim);font-size:1.15rem;transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.theme-toggle:hover{color:var(--accent);border-color:var(--accent);background:var(--surface-2)}.header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);z-index:var(--z-header);display:flex;align-items:center;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease),-webkit-backdrop-filter .3s var(--ease);transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease);transition:background .3s var(--ease),border-color .3s var(--ease),backdrop-filter .3s var(--ease),-webkit-backdrop-filter .3s var(--ease)}.header--scrolled{background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom-color:var(--line)}.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%}.nav__logo{font-family:var(--font-mono);font-size:.95rem;font-weight:600;color:var(--title);letter-spacing:-.01em;white-space:nowrap}.nav__cursor,.nav__prompt{color:var(--accent)}.nav__cursor{animation:caret 1.1s steps(1) infinite}@keyframes caret{0%,50%{opacity:1}50.01%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.nav__cursor{animation:none}}.nav__menu-label{display:none}.nav__list{display:flex;align-items:center;gap:.35rem}.nav__link{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim);padding:.4rem .7rem;border-radius:var(--radius-sm);border:1px solid transparent;transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease)}.nav__link-no{font-size:var(--fs-tiny);color:var(--text-faint)}.nav__link.is-active,.nav__link:hover{color:var(--title);background:var(--surface)}.nav__link.is-active{border-color:var(--line)}.nav__link.is-active .nav__link-no{color:var(--accent)}.nav__actions{display:flex;align-items:center;gap:.5rem}.nav__toggle{display:none;font-size:1.5rem;color:var(--title);padding:.25rem;border-radius:var(--radius-sm)}.nav__toggle:hover{color:var(--accent)}@media (max-width:768px){.nav__toggle{display:inline-flex}.nav__menu{position:fixed;top:var(--header-h);right:0;width:min(78vw,320px);height:calc(100dvh - var(--header-h) - var(--status-h));padding:1.5rem 1.25rem;background:var(--surface);border-left:1px solid var(--line);transform:translateX(105%);transition:transform .35s var(--ease);overflow-y:auto}.nav__menu.is-open{transform:translateX(0)}.nav__menu-label{display:block;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);margin-bottom:1rem;letter-spacing:.05em}.nav__list{flex-direction:column;align-items:stretch;gap:.25rem}.nav__link{font-size:1rem;padding:.7rem .8rem}}@media (prefers-reduced-motion:reduce){.nav__menu{transition:none}}.home{min-height:100svh;display:flex;padding-top:calc(var(--header-h) + 2rem);padding-bottom:4rem;position:relative}.home,.thero{align-items:center}.thero{display:grid;grid-template-columns:1.05fr 1fr;grid-gap:3.5rem;gap:3.5rem}.thero__eyebrow{display:block;font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--text-dim);letter-spacing:.04em;margin-bottom:1.25rem}.thero__name{font-size:var(--fs-display);font-weight:700;line-height:.96;color:var(--title);margin-bottom:1.5rem}.thero__tagline{font-family:var(--font-mono);font-size:1rem;line-height:1.7;color:var(--text);max-width:34ch;margin-bottom:2rem}.thero__actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-bottom:2rem}.thero__social{display:flex;align-items:center;gap:.75rem;font-family:var(--font-mono)}.thero__social-link{display:inline-flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-dim);font-size:1.2rem;transition:color .2s var(--ease),border-color .2s var(--ease),transform .2s var(--ease)}.thero__social-link:hover{color:var(--accent);border-color:var(--accent);transform:translateY(-2px)}.thero__social-meta,.thero__social-sep{color:var(--text-faint)}.thero__social-meta{font-size:var(--fs-tiny)}.thero__term{box-shadow:var(--shadow);overflow:hidden}.thero__body{padding:1.4rem 1.5rem 1.6rem;font-family:var(--font-mono);font-size:.9rem;line-height:1.5}.thero__row{margin-bottom:1.15rem}.thero__cmd{display:flex;align-items:baseline;gap:.6rem;color:var(--text);margin-bottom:.3rem}.thero__prompt{color:var(--accent);font-weight:700;flex-shrink:0}.thero__cmd-text{color:var(--title)}.thero__out{padding-left:1.2rem;font-size:.85rem}.thero__dim{color:var(--text-dim)}.thero__web{color:var(--green)}.thero__dirs{display:flex;flex-wrap:wrap;gap:1.2rem}.thero__dir{font-weight:600}.thero__dir--sys{color:var(--cyan)}.thero__dir--web{color:var(--green)}.thero__dir--free{color:var(--amber)}.thero__final{display:flex;align-items:center;gap:.6rem;color:var(--text);margin-top:.4rem}.thero__caret{color:var(--accent);animation:caret 1.1s steps(1) infinite;line-height:1}@media (prefers-reduced-motion:reduce){.thero__caret{animation:none}}.thero__scroll{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);display:inline-flex;flex-direction:column;align-items:center;gap:.2rem;font-family:var(--font-mono);font-size:var(--fs-tiny);letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);transition:color .2s var(--ease)}.thero__scroll:hover{color:var(--accent)}.thero__scroll i{font-size:1.1rem;animation:scroll-bob 1.8s var(--ease) infinite}@keyframes scroll-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.thero__scroll i{animation:none}}@media (max-width:900px){.thero{grid-template-columns:1fr;gap:2.5rem}.home{min-height:auto;padding-bottom:5rem}.thero__scroll{display:none}}@media (max-width:520px){.thero__body{padding:1.1rem 1.1rem 1.2rem;font-size:.8rem}.thero__out{font-size:.76rem}}.qual__tabs{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:2.5rem}.qual__tab{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim);padding:.6rem 1rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.qual__tab i{font-size:1.05rem}.qual__tab:hover{color:var(--title);border-color:var(--accent)}.qual__tab.is-active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.qual__layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-gap:3rem;gap:3rem;align-items:start}.qual__log{position:relative}.qual__commit{display:grid;grid-template-columns:auto 1fr;grid-gap:1.1rem;gap:1.1rem;width:100%;text-align:left;font:inherit;opacity:.58;transition:opacity .2s var(--ease)}.qual__commit.is-active,.qual__commit:focus-visible,.qual__commit:hover{opacity:1}.qual__graph{position:relative;display:flex;flex-direction:column;align-items:center;padding-top:.4rem}.qual__node{width:13px;height:13px;border-radius:50%;border:2px solid var(--accent);background:var(--bg);flex-shrink:0;z-index:1;transition:background .2s var(--ease),box-shadow .2s var(--ease)}.qual__commit.is-active .qual__node,.qual__commit:hover .qual__node{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.qual__edge{width:2px;flex:1 1;background:var(--line);margin-top:2px}.qual__commit-body{padding-bottom:1.85rem}.qual__commit-head{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .9rem;margin-bottom:.45rem}.qual__hash{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--amber);letter-spacing:.02em}.qual__hash:before{content:"● ";color:var(--text-faint)}.qual__date{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint)}.qual__title{font-size:1.05rem;color:var(--title);margin-bottom:.25rem}.qual__org{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim)}.qual__detail{position:-webkit-sticky;position:sticky;top:calc(var(--header-h) + 2rem)}.qual__detail-card{overflow:hidden;box-shadow:var(--shadow)}.qual__detail-body{padding:1.5rem;min-height:19rem}.qual__detail-meta{display:flex;flex-direction:column;gap:.2rem;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-dim);padding-bottom:1rem;margin-bottom:1.1rem;border-bottom:1px dashed var(--line)}.qual__detail-commit{color:var(--amber)}.qual__detail-ref{color:var(--cyan)}.qual__detail-title{font-size:1.2rem;color:var(--title);margin-bottom:.3rem}.qual__detail-org{display:block;color:var(--cyan);margin-bottom:1rem}.qual__detail-org,.qual__detail-summary{font-family:var(--font-mono);font-size:var(--fs-small)}.qual__detail-summary{line-height:1.7;color:var(--text);margin-bottom:1.25rem}.qual__stack{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1.25rem}.qual__stack-tag{color:var(--cyan);padding:.25rem .6rem;border:1px solid color-mix(in srgb,var(--cyan) 35%,var(--line));border-radius:100px;background:var(--bg)}.qual__diff-label,.qual__stack-tag{font-family:var(--font-mono);font-size:var(--fs-tiny)}.qual__diff-label{display:block;color:var(--text-faint);margin-bottom:.6rem;letter-spacing:.03em}.qual__diff{display:flex;flex-direction:column;gap:.4rem}.qual__diff-line{display:flex;gap:.6rem;font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.5;color:var(--text);padding:.3rem .55rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--green) 7%,transparent)}.qual__plus{color:var(--green);font-weight:700;flex-shrink:0}@media (max-width:880px){.qual__layout{grid-template-columns:1fr;gap:2rem}.qual__detail{position:static}.qual__detail-body{min-height:0}}@media (max-width:480px){.qual__commit{gap:1rem}}.scrollup{position:fixed;right:1rem;bottom:calc(var(--status-h) + 1rem);z-index:var(--z-scrollup);display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--line);color:var(--text-dim);font-size:1.3rem;opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .3s var(--ease),transform .3s var(--ease),color .2s var(--ease),border-color .2s var(--ease)}.scrollup:hover{color:var(--accent);border-color:var(--accent)}.show-scroll{opacity:1;visibility:visible;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.scrollup{transition:opacity .3s linear,visibility .3s linear}.scrollup,.show-scroll{transform:none}}.react-flow{direction:ltr;--xy-edge-stroke-default:#b1b1b7;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#555;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:hsla(0,0%,100%,.5);--xy-minimap-background-color-default:#fff;--xy-minimap-mask-background-color-default:hsla(0,0%,94%,.6);--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#e2e2e2;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:transparent;--xy-background-pattern-dots-color-default:#91919a;--xy-background-pattern-lines-color-default:#eee;--xy-background-pattern-cross-color-default:#e2e2e2;background-color:var(--xy-background-color,var(--xy-background-color-default));--xy-node-color-default:inherit;--xy-node-border-default:1px solid #1a192b;--xy-node-background-color-default:#fff;--xy-node-group-background-color-default:hsla(0,0%,94%,.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px rgba(0,0,0,.08);--xy-node-boxshadow-selected-default:0 0 0 0.5px #1a192b;--xy-node-border-radius-default:3px;--xy-handle-background-color-default:#1a192b;--xy-handle-border-color-default:#fff;--xy-selection-background-color-default:rgba(0,89,220,.08);--xy-selection-border-default:1px dotted rgba(0,89,220,.8);--xy-controls-button-background-color-default:#fefefe;--xy-controls-button-background-color-hover-default:#f4f4f4;--xy-controls-button-color-default:inherit;--xy-controls-button-color-hover-default:inherit;--xy-controls-button-border-color-default:#eee;--xy-controls-box-shadow-default:0 0 2px 1px rgba(0,0,0,.08);--xy-edge-label-background-color-default:#fff;--xy-edge-label-color-default:inherit;--xy-resize-background-color-default:#3367d9}.react-flow.dark{--xy-edge-stroke-default:#3e3e3e;--xy-edge-stroke-width-default:1;--xy-edge-stroke-selected-default:#727272;--xy-connectionline-stroke-default:#b1b1b7;--xy-connectionline-stroke-width-default:1;--xy-attribution-background-color-default:hsla(0,0%,59%,.25);--xy-minimap-background-color-default:#141414;--xy-minimap-mask-background-color-default:rgba(60,60,60,.6);--xy-minimap-mask-stroke-color-default:transparent;--xy-minimap-mask-stroke-width-default:1;--xy-minimap-node-background-color-default:#2b2b2b;--xy-minimap-node-stroke-color-default:transparent;--xy-minimap-node-stroke-width-default:2;--xy-background-color-default:#141414;--xy-background-pattern-dots-color-default:#777;--xy-background-pattern-lines-color-default:#777;--xy-background-pattern-cross-color-default:#777;--xy-node-color-default:#f8f8f8;--xy-node-border-default:1px solid #3c3c3c;--xy-node-background-color-default:#1e1e1e;--xy-node-group-background-color-default:hsla(0,0%,94%,.25);--xy-node-boxshadow-hover-default:0 1px 4px 1px hsla(0,0%,100%,.08);--xy-node-boxshadow-selected-default:0 0 0 0.5px #999;--xy-handle-background-color-default:#bebebe;--xy-handle-border-color-default:#1e1e1e;--xy-selection-background-color-default:rgba(200,200,220,.08);--xy-selection-border-default:1px dotted rgba(200,200,220,.8);--xy-controls-button-background-color-default:#2b2b2b;--xy-controls-button-background-color-hover-default:#3e3e3e;--xy-controls-button-color-default:#f8f8f8;--xy-controls-button-color-hover-default:#fff;--xy-controls-button-border-color-default:#5b5b5b;--xy-controls-box-shadow-default:0 0 2px 1px rgba(0,0,0,.08);--xy-edge-label-background-color-default:#141414;--xy-edge-label-color-default:#f8f8f8}.react-flow__background{background-color:var(--xy-background-color-props,var(--xy-background-color,var(--xy-background-color-default)));pointer-events:none;z-index:-1}.react-flow__container{position:absolute;width:100%;height:100%;top:0;left:0}.react-flow__pane{z-index:1;touch-action:none}.react-flow__pane.draggable{cursor:-webkit-grab;cursor:grab}.react-flow__pane.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__pane.selection{cursor:pointer}.react-flow__viewport{transform-origin:0 0;z-index:2;pointer-events:none}.react-flow__renderer{z-index:4}.react-flow__selection{z-index:6}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible{outline:none}.react-flow__edge-path{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default));stroke-width:var(--xy-edge-stroke-width,var(--xy-edge-stroke-width-default));fill:none}.react-flow__connection-path{stroke:var(--xy-connectionline-stroke,var(--xy-connectionline-stroke-default));stroke-width:var(--xy-connectionline-stroke-width,var(--xy-connectionline-stroke-width-default));fill:none}.react-flow .react-flow__edges{position:absolute}.react-flow .react-flow__edges svg{overflow:visible;position:absolute;pointer-events:none}.react-flow__edge{pointer-events:visibleStroke}.react-flow__edge.selectable{cursor:pointer}.react-flow__edge.animated path{stroke-dasharray:5;animation:dashdraw .5s linear infinite}.react-flow__edge.animated path.react-flow__edge-interaction{stroke-dasharray:none;animation:none}.react-flow__edge.inactive{pointer-events:none}.react-flow__edge.selected,.react-flow__edge:focus,.react-flow__edge:focus-visible{outline:none}.react-flow__edge.selectable:focus .react-flow__edge-path,.react-flow__edge.selectable:focus-visible .react-flow__edge-path,.react-flow__edge.selected .react-flow__edge-path{stroke:var(--xy-edge-stroke-selected,var(--xy-edge-stroke-selected-default))}.react-flow__edge-textwrapper{pointer-events:all}.react-flow__edge .react-flow__edge-text{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__arrowhead polyline{stroke:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__arrowhead polyline.arrowclosed{fill:var(--xy-edge-stroke,var(--xy-edge-stroke-default))}.react-flow__connection{pointer-events:none}.react-flow__connection .animated{stroke-dasharray:5;animation:dashdraw .5s linear infinite}svg.react-flow__connectionline{z-index:1001;overflow:visible;position:absolute}.react-flow__nodes{pointer-events:none;transform-origin:0 0}.react-flow__node{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:all;transform-origin:0 0;box-sizing:border-box;cursor:default}.react-flow__node.selectable{cursor:pointer}.react-flow__node.draggable{cursor:-webkit-grab;cursor:grab;pointer-events:all}.react-flow__node.draggable.dragging{cursor:-webkit-grabbing;cursor:grabbing}.react-flow__nodesselection{z-index:3;transform-origin:left top;pointer-events:none}.react-flow__nodesselection-rect{position:absolute;pointer-events:all;cursor:-webkit-grab;cursor:grab}.react-flow__handle{position:absolute;pointer-events:none;min-width:5px;min-height:5px;width:6px;height:6px;background-color:var(--xy-handle-background-color,var(--xy-handle-background-color-default));border:1px solid var(--xy-handle-border-color,var(--xy-handle-border-color-default));border-radius:100%}.react-flow__handle.connectingfrom{pointer-events:all}.react-flow__handle.connectionindicator{pointer-events:all;cursor:crosshair}.react-flow__handle-bottom{top:auto;left:50%;bottom:0;transform:translate(-50%,50%)}.react-flow__handle-top{top:0;left:50%;transform:translate(-50%,-50%)}.react-flow__handle-left{top:50%;left:0;transform:translate(-50%,-50%)}.react-flow__handle-right{top:50%;right:0;transform:translate(50%,-50%)}.react-flow__edgeupdater{cursor:move;pointer-events:all}.react-flow__pane.selection .react-flow__panel{pointer-events:none}.react-flow__panel{position:absolute;z-index:5;margin:15px}.react-flow__panel.top{top:0}.react-flow__panel.bottom{bottom:0}.react-flow__panel.bottom.center,.react-flow__panel.top.center{left:50%;transform:translateX(-15px) translateX(-50%)}.react-flow__panel.left{left:0}.react-flow__panel.right{right:0}.react-flow__panel.left.center,.react-flow__panel.right.center{top:50%;transform:translateY(-15px) translateY(-50%)}.react-flow__attribution{font-size:10px;background:var(--xy-attribution-background-color,var(--xy-attribution-background-color-default));padding:2px 3px;margin:0}.react-flow__attribution a{text-decoration:none;color:#999}@keyframes dashdraw{0%{stroke-dashoffset:10}}.react-flow__edgelabel-renderer{pointer-events:none}.react-flow__edgelabel-renderer,.react-flow__viewport-portal{position:absolute;width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:0;top:0}.react-flow__minimap{background:var(
    --xy-minimap-background-color-props,var(--xy-minimap-background-color,var(--xy-minimap-background-color-default))
  )}.react-flow__minimap-svg{display:block}.react-flow__minimap-mask{fill:var(
      --xy-minimap-mask-background-color-props,var(--xy-minimap-mask-background-color,var(--xy-minimap-mask-background-color-default))
    );stroke:var(
      --xy-minimap-mask-stroke-color-props,var(--xy-minimap-mask-stroke-color,var(--xy-minimap-mask-stroke-color-default))
    );stroke-width:var(
      --xy-minimap-mask-stroke-width-props,var(--xy-minimap-mask-stroke-width,var(--xy-minimap-mask-stroke-width-default))
    )}.react-flow__minimap-node{fill:var(
      --xy-minimap-node-background-color-props,var(--xy-minimap-node-background-color,var(--xy-minimap-node-background-color-default))
    );stroke:var(
      --xy-minimap-node-stroke-color-props,var(--xy-minimap-node-stroke-color,var(--xy-minimap-node-stroke-color-default))
    );stroke-width:var(
      --xy-minimap-node-stroke-width-props,var(--xy-minimap-node-stroke-width,var(--xy-minimap-node-stroke-width-default))
    )}.react-flow__background-pattern.dots{fill:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-dots-color-default))
    )}.react-flow__background-pattern.lines{stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-lines-color-default))
    )}.react-flow__background-pattern.cross{stroke:var(
      --xy-background-pattern-color-props,var(--xy-background-pattern-color,var(--xy-background-pattern-cross-color-default))
    )}.react-flow__controls{display:flex;flex-direction:column;box-shadow:var(--xy-controls-box-shadow,var(--xy-controls-box-shadow-default))}.react-flow__controls.horizontal{flex-direction:row}.react-flow__controls-button{display:flex;justify-content:center;align-items:center;height:26px;width:26px;padding:4px;border:none;background:var(--xy-controls-button-background-color,var(--xy-controls-button-background-color-default));border-bottom:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      );color:var(
      --xy-controls-button-color-props,var(--xy-controls-button-color,var(--xy-controls-button-color-default))
    );cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.react-flow__controls-button svg{width:100%;max-width:12px;max-height:12px;fill:currentColor}.react-flow__edge.updating .react-flow__edge-path{stroke:#777}.react-flow__edge-text{font-size:10px}.react-flow__node.selectable:focus,.react-flow__node.selectable:focus-visible{outline:none}.react-flow__node-default,.react-flow__node-group,.react-flow__node-input,.react-flow__node-output{padding:10px;border-radius:var(--xy-node-border-radius,var(--xy-node-border-radius-default));width:150px;font-size:12px;color:var(--xy-node-color,var(--xy-node-color-default));text-align:center;border:var(--xy-node-border,var(--xy-node-border-default));background-color:var(--xy-node-background-color,var(--xy-node-background-color-default))}.react-flow__node-default.selectable:hover,.react-flow__node-group.selectable:hover,.react-flow__node-input.selectable:hover,.react-flow__node-output.selectable:hover{box-shadow:var(--xy-node-boxshadow-hover,var(--xy-node-boxshadow-hover-default))}.react-flow__node-default.selectable.selected,.react-flow__node-default.selectable:focus,.react-flow__node-default.selectable:focus-visible,.react-flow__node-group.selectable.selected,.react-flow__node-group.selectable:focus,.react-flow__node-group.selectable:focus-visible,.react-flow__node-input.selectable.selected,.react-flow__node-input.selectable:focus,.react-flow__node-input.selectable:focus-visible,.react-flow__node-output.selectable.selected,.react-flow__node-output.selectable:focus,.react-flow__node-output.selectable:focus-visible{box-shadow:var(--xy-node-boxshadow-selected,var(--xy-node-boxshadow-selected-default))}.react-flow__node-group{background-color:var(--xy-node-group-background-color,var(--xy-node-group-background-color-default))}.react-flow__nodesselection-rect,.react-flow__selection{background:var(--xy-selection-background-color,var(--xy-selection-background-color-default));border:var(--xy-selection-border,var(--xy-selection-border-default))}.react-flow__nodesselection-rect:focus,.react-flow__nodesselection-rect:focus-visible,.react-flow__selection:focus,.react-flow__selection:focus-visible{outline:none}.react-flow__controls-button:hover{background:var(
        --xy-controls-button-background-color-hover-props,var(--xy-controls-button-background-color-hover,var(--xy-controls-button-background-color-hover-default))
      );color:var(
        --xy-controls-button-color-hover-props,var(--xy-controls-button-color-hover,var(--xy-controls-button-color-hover-default))
      )}.react-flow__controls-button:disabled{pointer-events:none}.react-flow__controls-button:disabled svg{fill-opacity:.4}.react-flow__controls-button:last-child{border-bottom:none}.react-flow__controls.horizontal .react-flow__controls-button{border-bottom:none;border-right:1px solid var(
        --xy-controls-button-border-color-props,var(--xy-controls-button-border-color,var(--xy-controls-button-border-color-default))
      )}.react-flow__controls.horizontal .react-flow__controls-button:last-child{border-right:none}.react-flow__resize-control{position:absolute}.react-flow__resize-control.left,.react-flow__resize-control.right{cursor:ew-resize}.react-flow__resize-control.bottom,.react-flow__resize-control.top{cursor:ns-resize}.react-flow__resize-control.bottom.right,.react-flow__resize-control.top.left{cursor:nwse-resize}.react-flow__resize-control.bottom.left,.react-flow__resize-control.top.right{cursor:nesw-resize}.react-flow__resize-control.handle{width:5px;height:5px;border:1px solid #fff;border-radius:1px;background-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));translate:-50% -50%}.react-flow__resize-control.handle.left{left:0;top:50%}.react-flow__resize-control.handle.right{left:100%;top:50%}.react-flow__resize-control.handle.top{left:50%;top:0}.react-flow__resize-control.handle.bottom{left:50%;top:100%}.react-flow__resize-control.handle.bottom.left,.react-flow__resize-control.handle.top.left{left:0}.react-flow__resize-control.handle.bottom.right,.react-flow__resize-control.handle.top.right{left:100%}.react-flow__resize-control.line{border-color:var(--xy-resize-background-color,var(--xy-resize-background-color-default));border-width:0;border-style:solid}.react-flow__resize-control.line.left,.react-flow__resize-control.line.right{width:1px;transform:translate(-50%);top:0;height:100%}.react-flow__resize-control.line.left{left:0;border-left-width:1px}.react-flow__resize-control.line.right{left:100%;border-right-width:1px}.react-flow__resize-control.line.bottom,.react-flow__resize-control.line.top{height:1px;transform:translateY(-50%);left:0;width:100%}.react-flow__resize-control.line.top{top:0;border-top-width:1px}.react-flow__resize-control.line.bottom{border-bottom-width:1px;top:100%}.react-flow__edge-textbg{fill:var(--xy-edge-label-background-color,var(--xy-edge-label-background-color-default))}.react-flow__edge-text{fill:var(--xy-edge-label-color,var(--xy-edge-label-color-default))}.skillflow{--flow-edge:#2c384a;--flow-dot:#1b2433}[data-theme=light] .skillflow{--flow-edge:#cabfa6;--flow-dot:#ddd6c5}.flow__layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);grid-gap:1.5rem;gap:1.5rem;align-items:start}.flow__canvas{position:relative;height:540px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.flow__hint{position:absolute;top:.9rem;left:1rem;z-index:5;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.02em;pointer-events:none}.flow__canvas .react-flow{width:100%;height:100%;background:transparent}.flow__canvas .react-flow__handle{opacity:0;width:1px;height:1px;min-width:0;min-height:0;border:none}.flow__canvas .react-flow__edge-path{transition:stroke .25s var(--ease),opacity .25s var(--ease)}.flow__canvas .react-flow__node{cursor:pointer}.fnode{font-family:var(--font-mono);border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--bg);transition:border-color .2s var(--ease),opacity .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease)}.fnode--exp{display:flex;align-items:center;gap:.7rem;width:210px;padding:.85rem 1rem;background:var(--surface)}.fnode__icon{font-size:1.5rem}.fnode__icon,.fnode__icon-svg{color:var(--accent);flex-shrink:0}.fnode__icon-svg{width:1.4rem;height:1.4rem}.fnode__text{display:flex;flex-direction:column;min-width:0}.fnode__title{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--title);letter-spacing:-.01em}.fnode__tag{font-size:var(--fs-tiny);color:var(--cyan)}.fnode--tech{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .8rem}.fnode__ticon{font-size:1.15rem;color:var(--text-dim)}.fnode__tname{font-size:var(--fs-small);color:var(--text);white-space:nowrap}.fnode--tech .fnode__icon-svg{width:1.05rem;height:1.05rem;color:var(--text-dim)}.fnode.is-active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 8px 22px -12px color-mix(in srgb,var(--accent) 70%,transparent)}.fnode--tech.is-active .fnode__icon-svg,.fnode.is-active .fnode__ticon{color:var(--accent)}.fnode.is-active .fnode__tname{color:var(--title)}.fnode.is-dim{opacity:.32}.flow__detail{height:540px;overflow:hidden;display:flex;flex-direction:column}.flow__detail-body{padding:1.5rem;animation:flow-fade .35s var(--ease)}@keyframes flow-fade{0%{opacity:0;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.flow__detail-body{animation:none}}.flow__detail-head{display:flex;align-items:center;gap:.85rem;padding-bottom:1rem;margin-bottom:1.1rem;border-bottom:1px dashed var(--line)}.flow__detail-icon{font-size:1.8rem;color:var(--accent);flex-shrink:0}.flow__detail-head .fnode__icon-svg{width:1.7rem;height:1.7rem;color:var(--accent)}.flow__detail-title{font-size:1.2rem;color:var(--title)}.flow__detail-tag{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--cyan)}.flow__detail-desc{font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.7;color:var(--text);margin-bottom:1.25rem}.flow__detail-label{display:block;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.03em;margin-bottom:.6rem}.flow__points{display:flex;flex-direction:column;gap:.4rem}.flow__point{display:flex;gap:.6rem;font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.5;color:var(--text);padding:.3rem .55rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--green) 7%,transparent)}.flow__plus{color:var(--green);font-weight:700;flex-shrink:0}.flow__chips{display:flex;flex-direction:column;gap:.5rem}.flow__chip{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);padding:.55rem .8rem;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg)}.flow__mobile{display:none;flex-direction:column;gap:1.25rem}.flow__mcard{padding:1.4rem}.flow__mcard-head{display:flex;align-items:center;gap:.85rem;padding-bottom:1rem;margin-bottom:1.1rem;border-bottom:1px dashed var(--line)}.flow__mcard-icon{font-size:1.9rem;color:var(--accent);flex-shrink:0}.flow__mcard-heading{min-width:0}.flow__mcard-title{font-size:1.15rem;color:var(--title);line-height:1.2}.flow__mcard-tag{font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--cyan)}.flow__mcard-desc{font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.7;color:var(--text);margin-bottom:1.1rem}.flow__mcard-points{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1.25rem}.flow__mcard-point{display:flex;gap:.6rem;font-family:var(--font-mono);font-size:var(--fs-small);line-height:1.5;color:var(--text);padding:.3rem .55rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--green) 7%,transparent)}.flow__mcard-label{display:block;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.03em;margin-bottom:.7rem}.flow__mcard-stack{display:flex;flex-wrap:wrap;gap:.5rem}.flow__mchip{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--title);padding:.35rem .65rem;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg)}.flow__mchip i{font-size:1rem;color:var(--text-dim)}.flow__mchip .fnode__icon-svg{width:.95rem;height:.95rem;color:var(--text-dim)}@media (max-width:880px){.flow__layout{grid-template-columns:1fr}.flow__canvas{height:460px}.flow__detail{height:auto}}@media (max-width:720px){.flow__layout{display:none}.flow__mobile{display:flex}}.statusbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-status,200);height:var(--status-h);justify-content:space-between;gap:1rem;padding-inline:1rem;background:var(--surface);border-top:1px solid var(--line);font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-dim);letter-spacing:.03em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.statusbar,.statusbar__group{display:flex;align-items:center}.statusbar__group{gap:.35rem;min-width:0}.statusbar__group--right{justify-content:flex-end}.statusbar__cell{display:inline-flex;align-items:center;gap:.35rem;padding:.15rem .5rem;border-radius:4px;white-space:nowrap}.statusbar__cell i{font-size:.95rem}.statusbar__brand{color:var(--accent);font-weight:600}.statusbar__active{color:var(--title);background:var(--surface-2)}.statusbar__pulse{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 60%,transparent);animation:sb-pulse 2s var(--ease) infinite}@keyframes sb-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--green) 55%,transparent)}70%{box-shadow:0 0 0 6px transparent}to{box-shadow:0 0 0 0 transparent}}@media (prefers-reduced-motion:reduce){.statusbar__pulse{animation:none}}.statusbar__link{transition:color .2s var(--ease),background .2s var(--ease)}.statusbar__link:hover{color:var(--title);background:var(--surface-2)}.statusbar__loc{color:var(--text-dim)}@media (max-width:760px){.statusbar__hide-md{display:none}}@media (max-width:520px){.statusbar__hide-sm{display:none}.statusbar{font-size:.66rem;padding-inline:.6rem}}.work__filters{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2.5rem}.work__filter{font-family:var(--font-mono);font-size:var(--fs-small);color:var(--text-dim);padding:.45rem .85rem;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease)}.work__filter-flag{color:var(--text-faint);margin-right:.15rem}.work__filter:hover{color:var(--title);border-color:var(--accent)}.work__filter.is-active{color:var(--on-accent);background:var(--accent);border-color:var(--accent)}.work__filter.is-active .work__filter-flag{color:var(--on-accent)}.work__count{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint)}.work__grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:248px;grid-auto-flow:dense;grid-gap:1rem;gap:1rem}.work__card.is-featured{grid-column:span 2}.work__card{position:relative;cursor:pointer;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);transition:border-color .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}.work__card.is-open{border-color:var(--accent);box-shadow:0 30px 70px -24px rgba(0,0,0,.8)}.work__card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.work__explore{position:absolute;top:50%;left:50%;z-index:3;transform:translate(-50%,-42%) scale(.96);display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:var(--fs-small);font-weight:600;color:var(--on-accent);background:var(--accent);padding:.5rem .95rem;border-radius:100px;opacity:0;pointer-events:none;box-shadow:0 10px 26px -10px color-mix(in srgb,var(--accent) 75%,transparent);transition:opacity .25s var(--ease),transform .25s var(--ease)}.work__card:hover .work__explore{opacity:1;transform:translate(-50%,-50%) scale(1)}.work__card.is-open .work__explore{opacity:0}.work__card.is-open .work__reveal{max-height:160px;opacity:1;transform:none;margin-top:.6rem}.focus__backdrop{position:fixed;inset:0;z-index:1000;background:color-mix(in srgb,#04060a 80%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;cursor:zoom-out}[data-theme=light] .focus__backdrop{background:color-mix(in srgb,#2a2616 42%,transparent)}.focus__layer{z-index:1003}.focus__layer,.focus__lines{position:fixed;inset:0;pointer-events:none}.focus__lines{z-index:1001;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 5px color-mix(in srgb,var(--accent) 45%,transparent))}.focus__line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.focus__bubble{position:absolute;width:64px;height:64px;opacity:0}.focus__bubble-dot{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle at 50% 32%,var(--surface-2),var(--surface));border:1px solid color-mix(in srgb,var(--accent) 50%,var(--line));color:var(--title);font-size:1.85rem;pointer-events:auto;cursor:default;box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 9%,transparent),0 12px 28px -8px rgba(0,0,0,.6),0 0 20px -4px color-mix(in srgb,var(--accent) 42%,transparent);transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .2s var(--ease)}.focus__bubble-dot svg{width:1.6rem;height:1.6rem;color:var(--title)}.focus__bubble-dot:hover{transform:scale(1.08);border-color:var(--accent);box-shadow:0 0 0 7px color-mix(in srgb,var(--accent) 16%,transparent),0 16px 38px -8px rgba(0,0,0,.7),0 0 44px 2px color-mix(in srgb,var(--accent) 70%,transparent)}.focus__bubble-label{position:absolute;white-space:nowrap;font-family:var(--font-display);font-size:.95rem;font-weight:600;letter-spacing:-.01em;color:var(--title);text-shadow:0 1px 10px rgba(0,0,0,.7);pointer-events:none}.focus__bubble[data-side=right] .focus__bubble-label{left:calc(100% + 14px);top:50%;transform:translateY(-50%)}.focus__bubble[data-side=left] .focus__bubble-label{right:calc(100% + 14px);top:50%;transform:translateY(-50%)}.focus__bubble[data-side=bottom] .focus__bubble-label{top:calc(100% + 11px);left:50%;transform:translateX(-50%)}.focus__bubble[data-side=top] .focus__bubble-label{bottom:calc(100% + 11px);left:50%;transform:translateX(-50%)}@media (max-width:560px){.focus__bubble{width:52px;height:52px}.focus__bubble-dot{font-size:1.5rem}.focus__bubble-dot svg{width:1.3rem;height:1.3rem}.focus__bubble[data-side=left] .focus__bubble-label,.focus__bubble[data-side=right] .focus__bubble-label{left:50%;right:auto;top:calc(100% + 9px);transform:translateX(-50%)}.focus__bubble-label{font-size:.78rem}}.work__card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:var(--shadow)}.work__media{position:relative;width:100%;height:100%;border-radius:var(--radius);overflow:hidden;background-color:var(--surface-2);background-size:cover;background-position:50%}.work__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.work__shade{position:absolute;inset:0;background:linear-gradient(0deg,color-mix(in srgb,#05070c 92%,transparent) 0,color-mix(in srgb,#05070c 55%,transparent) 32%,transparent 62%);opacity:.85;transition:opacity .3s var(--ease)}.work__card:hover .work__shade{opacity:1}.work__index{position:absolute;top:.8rem;left:.9rem;font-family:var(--font-mono);font-size:var(--fs-tiny);font-weight:600;color:var(--title);opacity:.85;text-shadow:0 1px 6px rgba(0,0,0,.6);background:color-mix(in srgb,#05070c 62%,transparent);border:1px solid color-mix(in srgb,#fff 14%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.1rem .2rem;border-radius:100px}.work__top{position:absolute;top:.7rem;right:.8rem;display:flex;gap:.4rem}.work__badge,.work__lang{font-family:var(--font-mono);font-size:var(--fs-tiny);padding:.2rem .55rem;border-radius:100px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.work__lang{color:var(--text);background:color-mix(in srgb,#05070c 65%,transparent);border:1px solid color-mix(in srgb,#fff 14%,transparent)}.work__badge{color:var(--on-accent);background:var(--amber)}.work__info{position:absolute;left:0;right:0;bottom:0;padding:1.2rem;display:flex;flex-direction:column;gap:0}.work__path{display:inline-flex;align-items:center;gap:.4rem;align-self:flex-start;max-width:100%;margin-bottom:.5rem;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--title);background:color-mix(in srgb,#05070c 62%,transparent);border:1px solid color-mix(in srgb,#fff 14%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:.25rem .6rem;border-radius:100px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.work__path i{color:var(--accent);flex-shrink:0}.work__title{font-size:1.3rem;font-weight:600;color:#fff;letter-spacing:-.01em;text-shadow:0 2px 12px rgba(0,0,0,.7)}.work__reveal{max-height:0;overflow:hidden;opacity:0;transform:translateY(6px);transition:max-height .35s var(--ease),opacity .3s var(--ease),transform .35s var(--ease),margin-top .35s var(--ease)}.work__card:focus-within .work__reveal,.work__card:hover .work__reveal{max-height:160px;opacity:1;transform:translateY(0);margin-top:.6rem}.work__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.7rem}.work__links{display:flex;gap:.6rem}.work__link{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);padding:.4rem .75rem;border-radius:var(--radius-sm);background:color-mix(in srgb,#05070c 55%,transparent);border:1px solid color-mix(in srgb,#fff 16%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:background .2s var(--ease),border-color .2s var(--ease),color .2s var(--ease)}.work__link i{font-size:1.05rem}.work__link:hover{color:var(--accent);border-color:var(--accent)}.work__link--disabled{color:var(--text-dim);cursor:not-allowed}.work__link--disabled:hover{color:var(--text-dim);border-color:color-mix(in srgb,#fff 16%,transparent)}.sheet{position:fixed;inset:0;z-index:var(--z-modal,1000);display:flex;align-items:flex-end;background:color-mix(in srgb,#04060a 72%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:sheet-fade .25s var(--ease)}[data-theme=light] .sheet{background:color-mix(in srgb,#2a2616 45%,transparent)}.sheet__panel{width:100%;max-height:82vh;overflow-y:auto;background:var(--surface);border-top:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;padding:.75rem 1.4rem 2rem;box-shadow:0 -20px 50px -20px rgba(0,0,0,.6);animation:sheet-up .32s var(--ease)}.sheet__grip{width:38px;height:4px;border-radius:100px;background:var(--line);margin:.2rem auto 1.1rem}.sheet__head{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}.sheet__path{display:inline-flex;align-items:center;gap:.4rem;min-width:0;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet__path i{color:var(--accent);flex-shrink:0}.sheet__close{margin-left:auto;display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:var(--radius-sm);border:1px solid var(--line);color:var(--text-dim);font-size:1.3rem}.sheet__close:hover{color:var(--accent);border-color:var(--accent)}.sheet__title{font-size:1.45rem;color:var(--title);letter-spacing:-.01em;margin-bottom:1.25rem}.sheet__label{display:block;font-family:var(--font-mono);font-size:var(--fs-tiny);color:var(--text-faint);letter-spacing:.03em;margin-bottom:.7rem}.sheet__stack{display:flex;flex-wrap:wrap;gap:.55rem;margin-bottom:1.5rem}.sheet__chip{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);padding:.45rem .75rem;border:1px solid var(--line);border-left:2px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg)}.sheet__chip i{font-size:1.1rem;color:var(--text-dim)}.sheet__chip svg{width:1rem;height:1rem;color:var(--text-dim)}.sheet__links{display:flex;gap:.7rem}.sheet__link{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-mono);font-size:var(--fs-small);color:var(--title);padding:.6rem 1rem;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--bg);transition:color .2s var(--ease),border-color .2s var(--ease)}.sheet__link:hover{color:var(--accent);border-color:var(--accent)}@keyframes sheet-fade{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.sheet,.sheet__panel{animation:none}}[data-theme=light] .work__index,[data-theme=light] .work__lang,[data-theme=light] .work__link,[data-theme=light] .work__path{color:#fff}[data-theme=light] .work__link:hover{color:var(--accent)}@media (max-width:900px){.work__grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:230px}}@media (max-width:560px){.work__grid{grid-template-columns:1fr;grid-auto-rows:220px}.work__card.is-featured{grid-column:span 1}.work__count{width:100%;margin-left:0}.work__reveal{grid-template-rows:1fr;opacity:1;transform:none;margin-top:.6rem}}