.theme-terminal{--bg:#0a0a0a;--surface:#111111;--line:#1f1f1f;--grid:#151515;--text:#ededed;--muted:#828282;--accent:#00e676;--ease:cubic-bezier(0.16,1,0.3,1);--gutter:clamp(20px,3vw,44px);--marquee-duration:32.82s;--marquee-duration-hover:54.7s;--project-col-index:64px;--project-col-status:84px;--project-gap:16px;--project-pad-y:clamp(20px,2.6vw,34px);--project-pad-x:4px;--project-shift:14px;--project-row-gap:12px;--project-name-leading-stacked:1.1;--caret-width:0.55em;--caret-gap:0.12em;--caret-drop:0.12em;--caret-reserve:calc(var(--caret-gap) + var(--caret-width));--body-leading:1.65;--about-measure:72ch;--about-para-gap:calc(var(--body-leading) * 1em);--stack-row-gap:var(--project-pad-y);--stack-label-gap:var(--project-row-gap);--exp-head-gap:var(--about-para-gap);--exp-line-gap:var(--project-row-gap);--exp-body-gap:var(--about-para-gap);--exp-entry-gap:calc(var(--about-para-gap) * 2);--exp-group-gap:calc(var(--about-para-gap) * 3);--exp-measure:var(--about-measure);--contact-col-gap:var(--exp-group-gap);--contact-row-gap:var(--stack-row-gap);--contact-label-gap:var(--project-row-gap);--contact-field-gap:var(--exp-body-gap);--contact-actions-gap:var(--exp-entry-gap);--contact-measure:var(--about-measure);--contact-field-pad:var(--project-row-gap);--cursor-dot-size:6px;--cursor-ring-size:34px;--cursor-dot-hover:0.4;--cursor-ring-hover:1.9;--cursor-ring-idle-opacity:0.55;--cursor-ring-fade:0.3s;--preview-w:240px;--preview-h:116px;--preview-fade:0.35s;--contact-result-gap:var(--about-para-gap)}.light .theme-terminal{--bg:#ededed;--surface:#ffffff;--line:#d4d4d4;--grid:#dcdcdc;--text:#0a0a0a;--muted:#636363;--accent:#007a3d}.theme-terminal{background-color:var(--bg);color:var(--text);font-family:var(--font-mono),ui-monospace,monospace;-webkit-font-smoothing:antialiased}.theme-terminal ::-moz-selection{background:var(--accent);color:var(--bg)}.theme-terminal ::selection{background:var(--accent);color:var(--bg)}@keyframes term-rise{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes term-fadein{0%{opacity:0}to{opacity:1}}@keyframes term-blink{0%,48%{opacity:1}49%,to{opacity:0}}@keyframes term-marquee{0%{transform:translateZ(0)}to{transform:translate3d(-50%,0,0)}}.theme-terminal [data-marquee-track]{animation:term-marquee var(--marquee-duration) linear infinite;will-change:transform}@media (hover:hover){.theme-terminal [data-marquee]:hover [data-marquee-track]{animation-duration:var(--marquee-duration-hover)}}@keyframes term-scroll-hint{0%{transform:translateY(0);opacity:.25}45%{opacity:1}to{transform:translateY(12px);opacity:.25}}.theme-terminal .term-clip{overflow:hidden;padding-top:.2em;margin-top:-.2em}.theme-terminal [data-rise]{animation:term-rise .9s var(--ease) both}.theme-terminal [data-rise-display]{animation-duration:1.05s}.theme-terminal [data-fade]{animation:term-fadein .8s linear both}.theme-terminal [data-blink]{animation:term-blink 1.05s steps(1) infinite}.theme-terminal [data-scroll-hint]{animation:term-scroll-hint 1.9s var(--ease) infinite}.theme-terminal [data-delay=a]{animation-delay:.05s}.theme-terminal [data-delay=b]{animation-delay:.09s}.theme-terminal [data-delay=c]{animation-delay:.13s}.theme-terminal [data-delay=d]{animation-delay:.16s}.theme-terminal [data-delay=e]{animation-delay:.2s}.theme-terminal [data-delay=f]{animation-delay:.28s}.theme-terminal [data-delay=g]{animation-delay:.5s}.theme-terminal [data-delay=h]{animation-delay:.62s}.theme-terminal [data-project-row]{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"index status" "name  name" "tech  tech";-moz-column-gap:var(--project-gap);column-gap:var(--project-gap);row-gap:var(--project-row-gap);padding:var(--project-pad-y) var(--project-pad-x);border-bottom:1px solid var(--line);transition:transform .6s var(--ease),color .35s var(--ease)}.theme-terminal [data-project-cell=index]{grid-area:index}.theme-terminal [data-project-cell=name]{grid-area:name;line-height:var(--project-name-leading-stacked)}.theme-terminal [data-project-cell=tech]{grid-area:tech}.theme-terminal [data-project-cell=status]{grid-area:status}@media (min-width:768px){.theme-terminal [data-project-row]{grid-template-columns:var(--project-col-index) minmax(0,1.6fr) minmax(0,1.4fr) var(--project-col-status);grid-template-areas:"index name tech status";row-gap:0;align-items:baseline}.theme-terminal [data-project-cell=name]{line-height:1}}@media (hover:hover){.theme-terminal a[data-project-row]:hover{color:var(--accent);transform:translate3d(var(--project-shift),0,0)}}.theme-terminal a[data-project-row]:focus-visible{color:var(--accent)}@media (prefers-reduced-motion:reduce){.theme-terminal *,.theme-terminal :after,.theme-terminal :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.theme-terminal [data-fade],.theme-terminal [data-rise]{animation:term-fadein .28s linear both!important;animation-delay:0s!important}.theme-terminal [data-marquee-track]{width:auto}.theme-terminal [data-marquee-list]{flex-wrap:wrap;padding-inline:var(--gutter)}.theme-terminal [data-marquee-echo],.theme-terminal [data-marquee-list]>li:last-child [data-marquee-sep]{display:none}.theme-terminal a[data-project-row]:hover{transform:none}}.theme-terminal [data-stack-list]{display:flex;flex-direction:column;gap:var(--stack-row-gap)}.theme-terminal [data-stack-group]{display:flex;flex-direction:column;gap:var(--stack-label-gap)}@media (min-width:768px){.theme-terminal [data-stack-list]{display:grid;grid-template-columns:max-content minmax(0,1fr);-moz-column-gap:var(--project-gap);column-gap:var(--project-gap);row-gap:var(--stack-row-gap);align-items:baseline}.theme-terminal [data-stack-group]{display:contents}}.theme-terminal [data-typed]{padding-right:var(--caret-reserve)}.theme-terminal [data-caret-anchor]{position:relative}.theme-terminal [data-caret]{position:absolute;top:0;left:var(--caret-gap);width:var(--caret-width);height:1em;background:var(--accent);transform:translateY(var(--caret-drop))}.theme-terminal [data-caret-ghost]{opacity:0}.theme-terminal [data-exp-groups]{display:flex;flex-direction:column;gap:var(--exp-group-gap);padding-top:var(--exp-head-gap)}.theme-terminal [data-exp-list]{display:flex;flex-direction:column;gap:var(--exp-entry-gap)}.theme-terminal [data-exp-entry]{display:flex;flex-direction:column;gap:var(--exp-line-gap)}.theme-terminal [data-exp-body]{display:flex;flex-direction:column;gap:var(--exp-body-gap)}.theme-terminal [data-exp-head]{display:flex;flex-direction:column;gap:var(--exp-line-gap)}@media (min-width:768px){@supports (grid-template-columns:subgrid){.theme-terminal [data-exp-list]{display:grid;grid-template-columns:max-content minmax(0,1fr);-moz-column-gap:var(--project-gap);column-gap:var(--project-gap);row-gap:var(--exp-entry-gap)}.theme-terminal [data-exp-entry]{display:grid;grid-column:1/-1;grid-template-columns:subgrid;align-items:baseline}}}.theme-terminal [data-contact-cols]{display:flex;flex-direction:column;gap:var(--contact-col-gap)}.theme-terminal [data-contact-channels]{display:flex;flex-direction:column;gap:var(--contact-row-gap)}.theme-terminal [data-contact-links],.theme-terminal [data-contact-pair]{display:flex;flex-direction:column;gap:var(--contact-label-gap)}.theme-terminal [data-contact-links]{align-items:flex-start}@media (min-width:768px){.theme-terminal [data-contact-cols]{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);-moz-column-gap:var(--contact-col-gap);column-gap:var(--contact-col-gap);align-items:start}.theme-terminal [data-contact-channels]{display:grid;grid-template-columns:max-content minmax(0,1fr);-moz-column-gap:var(--project-gap);column-gap:var(--project-gap);row-gap:var(--contact-row-gap);align-items:baseline}.theme-terminal [data-contact-pair]{display:contents}}.theme-terminal [data-contact-form]{display:flex;flex-direction:column;gap:var(--contact-field-gap)}.theme-terminal [data-contact-field]{display:flex;flex-direction:column;gap:var(--contact-label-gap)}.theme-terminal [data-contact-input]{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding-bottom:var(--contact-field-pad);color:var(--text);transition:border-color .35s var(--ease)}.theme-terminal [data-contact-input]::-moz-placeholder{color:var(--muted);opacity:1}.theme-terminal [data-contact-input]::placeholder{color:var(--muted);opacity:1}.theme-terminal [data-contact-input]:focus-visible{border-bottom-color:var(--accent);outline:1px solid var(--accent);outline-offset:4px}.theme-terminal [data-contact-input]:disabled{color:var(--muted);cursor:not-allowed}.theme-terminal textarea[data-contact-input]{resize:vertical}.theme-terminal [data-contact-actions]{display:flex;flex-direction:column;padding-top:var(--contact-actions-gap);align-items:flex-start}.theme-terminal [data-contact-result]{margin-top:var(--contact-result-gap)}.theme-terminal [data-contact-result]:empty{margin-top:0}.theme-terminal [data-cursor-dot],.theme-terminal [data-cursor-ring]{position:fixed;top:0;left:0;pointer-events:none;z-index:9999;border-radius:50%;will-change:transform}.theme-terminal [data-cursor-dot]{width:var(--cursor-dot-size);height:var(--cursor-dot-size);background:var(--accent)}.theme-terminal [data-cursor-ring]{width:var(--cursor-ring-size);height:var(--cursor-ring-size);border:1px solid var(--muted);opacity:var(--cursor-ring-idle-opacity);transition:opacity var(--cursor-ring-fade) linear}.has-custom-cursor,.has-custom-cursor *{cursor:none}.has-custom-cursor input,.has-custom-cursor select,.has-custom-cursor textarea{cursor:auto}@media (prefers-reduced-motion:reduce){.has-custom-cursor,.has-custom-cursor *{cursor:auto}.theme-terminal [data-cursor-dot],.theme-terminal [data-cursor-ring]{display:none}}@media (pointer:coarse){.theme-terminal [data-cursor-dot],.theme-terminal [data-cursor-ring]{display:none}}.theme-terminal [data-preview]{position:fixed;top:0;left:0;width:var(--preview-w);height:var(--preview-h);background:var(--surface);border:1px solid var(--line);pointer-events:none;opacity:0;z-index:9998;overflow:hidden;transition:opacity var(--preview-fade) var(--ease);will-change:transform,opacity}.theme-terminal [data-preview] img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block}@media (prefers-reduced-motion:reduce){.theme-terminal [data-preview]{display:none}}@media (pointer:coarse){.theme-terminal [data-preview]{display:none}}