.layout{display:grid;grid-template-columns:220px 1fr;max-width:1100px;margin:0 auto;min-height:100vh}.main{padding:4rem 2rem 6rem 3rem;border-left:1px solid var(--line)}@media (max-width: 760px){.layout{grid-template-columns:1fr}.main{border-left:none;padding:2rem 1.25rem 4rem}}.sidebar{position:sticky;top:0;align-self:start;height:100vh;padding:4rem 1.5rem 2rem 0;display:flex;flex-direction:column;gap:2.5rem}.sidebar-name{font-family:var(--display);font-weight:700;font-size:1rem;line-height:1.4;color:var(--ink)}.sidebar-nav{display:flex;flex-direction:column;gap:.9rem;font-family:var(--display);font-size:.85rem;color:var(--ink-soft)}.sidebar-nav a:hover,.sidebar-nav a:focus-visible{color:var(--accent)}.sidebar-foot{margin-top:auto;font-family:var(--display);font-size:.75rem;color:var(--ink-soft)}.sidebar-gh-link{display:block;margin-top:.35rem;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:.1rem;width:fit-content;transition:color .15s ease,border-color .15s ease}.sidebar-gh-link:hover,.sidebar-gh-link:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}@media (max-width: 760px){.sidebar{position:static;height:auto;padding:2rem 1.25rem 1.5rem;flex-direction:row;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line)}.sidebar-nav{flex-direction:row;gap:1rem}.sidebar-foot{display:none}}.hero{padding-bottom:4.5rem;margin-bottom:4.5rem;border-bottom:1px solid var(--line)}.hero-prompt{font-family:var(--display);font-size:.9rem;color:var(--accent);margin:0 0 .6rem}.cursor-blink{display:inline-block;font-weight:700;animation:cursor-blink 1.05s infinite steps(2,start)}@keyframes cursor-blink{to{visibility:hidden}}.hero-text h1{font-family:var(--display);font-weight:700;font-size:clamp(2rem,5vw,2.9rem);letter-spacing:-.02em;line-height:1.1;margin:0 0 .9rem}.hero-role{font-family:var(--display);font-size:1rem;color:var(--ink-soft);margin:0 0 1.5rem}.hero-sub{color:var(--ink-soft);max-width:var(--measure);margin:0;line-height:1.7}.hero-actions{display:flex;gap:.85rem;margin-top:1.75rem;flex-wrap:wrap}.btn-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--accent);color:var(--accent-ink);font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.6rem 1.25rem;border-radius:6px;border:1px solid var(--accent);transition:all .15s ease;box-shadow:0 1px 2px #2563eb33}.btn-primary:hover,.btn-primary:focus-visible{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--accent-ink);transform:translateY(-1px);box-shadow:0 4px 14px #2563eb4d}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;background:var(--paper-raised);color:var(--ink);font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.6rem 1.25rem;border-radius:6px;border:1px solid var(--line);transition:all .15s ease;box-shadow:0 1px 2px #0000000a}.btn-secondary:hover,.btn-secondary:focus-visible{border-color:var(--line-strong);transform:translateY(-1px);background:#f4f4f5}.section{padding-bottom:3.5rem;margin-bottom:3.5rem;border-bottom:1px solid var(--line)}.section:last-of-type{border-bottom:none}.section h2{font-family:var(--display);font-weight:700;font-size:1.1rem;margin:0 0 1.4rem;letter-spacing:-.01em}.section-body p{max-width:var(--measure);color:var(--ink-soft);margin:0 0 1rem}.section-body p:last-child{margin-bottom:0}.about-layout{display:grid;grid-template-columns:1fr 280px;gap:2.5rem;align-items:start}.snapshot-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;padding:1.25rem;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005}.snapshot-header{display:flex;align-items:center;gap:.6rem;padding-bottom:.65rem;margin-bottom:.85rem;border-bottom:1px solid var(--line)}.snapshot-badge{font-family:var(--display);font-size:.65rem;font-weight:700;letter-spacing:.05em;background:var(--accent);color:var(--accent-ink);padding:.15rem .45rem;border-radius:4px}.snapshot-title{font-family:var(--display);font-size:.82rem;font-weight:700;color:var(--ink)}.snapshot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.snapshot-list li{display:flex;flex-direction:column;gap:.15rem}.snapshot-label{font-family:var(--display);font-size:.68rem;color:var(--ink-soft);text-transform:uppercase;letter-spacing:.04em}.snapshot-value{font-family:var(--display);font-size:.82rem;color:var(--ink);font-weight:500}.status-available{color:#16a34a;font-weight:600}@media (max-width: 820px){.about-layout{grid-template-columns:1fr;gap:2rem}.snapshot-card{max-width:var(--measure)}}.exploring-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.25rem;margin-top:1.5rem}.exploring-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;padding:1.25rem;display:flex;flex-direction:column;justify-content:space-between;gap:.85rem;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.exploring-card:hover{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 8px 24px #2563eb14,0 2px 6px #0000000a}.exploring-card-top{display:flex;align-items:baseline;gap:.65rem}.exploring-badge{font-family:var(--display);font-size:.68rem;font-weight:700;background:#09090b;color:#fff;padding:.15rem .45rem;border-radius:4px;flex-shrink:0;letter-spacing:.05em}.exploring-title{font-family:var(--display);font-weight:700;font-size:.88rem;margin:0;color:var(--ink);line-height:1.35}.exploring-desc{font-family:var(--serif);font-size:.88rem;color:var(--ink-soft);line-height:1.55;margin:0}.exploring-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.25rem}.tag-pill{font-family:var(--display);font-size:.7rem;background:#f4f4f5;border:1px solid var(--line);color:var(--ink-soft);padding:.2rem .5rem;border-radius:4px;transition:border-color .15s ease,color .15s ease}.exploring-card:hover .tag-pill{border-color:var(--line)}@media (max-width: 680px){.exploring-grid{grid-template-columns:1fr}}.stack-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;margin-top:1.5rem}.stack-card{background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;padding:1.25rem;display:flex;flex-direction:column;gap:.9rem;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005;transition:border-color .18s ease,box-shadow .18s ease}.stack-card:hover{border-color:var(--accent);box-shadow:0 8px 24px #2563eb14,0 2px 6px #0000000a}.stack-card-header{display:flex;align-items:center;gap:.6rem;padding-bottom:.65rem;border-bottom:1px solid var(--line)}.stack-card-icon{font-family:var(--display);font-size:.7rem;font-weight:700;background:#09090b;color:#fff;padding:.15rem .45rem;border-radius:4px}.stack-card-header h3{font-family:var(--display);font-size:.85rem;font-weight:700;color:var(--ink);margin:0}.stack-card-pills{display:flex;flex-wrap:wrap;gap:.45rem}.stack-pill{display:inline-flex;align-items:center;gap:.45rem;font-family:var(--display);font-size:.76rem;background:#f4f4f5;border:1px solid var(--line);border-radius:6px;padding:.28rem .55rem;color:var(--ink);transition:border-color .15s ease,transform .15s ease}.stack-pill:hover{border-color:var(--accent);transform:translateY(-1px)}.stack-color-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0}@media (max-width: 760px){.stack-cards{grid-template-columns:1fr;gap:1.25rem}}.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.25rem;margin-top:1.5rem}.project-card{display:flex;flex-direction:column;justify-content:space-between;width:100%;text-align:left;background:var(--paper-raised);border:1px solid var(--line);border-radius:8px;padding:1.25rem;cursor:pointer;box-shadow:0 1px 3px #0000000a,0 1px 2px #00000005;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;position:relative}.project-card:hover,.project-card:focus-visible{transform:translateY(-2px);border-color:var(--accent);box-shadow:0 10px 28px #2563eb1a,0 2px 8px #0000000a}.project-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.75rem}.project-title-wrap{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.project-icon{font-family:var(--display);font-size:.9rem;color:var(--accent);font-weight:700}.project-title{font-family:var(--display);font-weight:700;font-size:.98rem;color:var(--ink);transition:color .15s ease}.project-card:hover .project-title,.project-card:focus-visible .project-title{color:var(--accent)}.showcase-badge{font-family:var(--display);font-size:.65rem;font-weight:700;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);padding:.15rem .45rem;border-radius:4px}.project-branch{font-family:var(--display);font-size:.68rem;color:var(--ink-soft);background:#f4f4f5;border:1px solid var(--line);padding:.15rem .45rem;border-radius:4px;flex-shrink:0}.project-desc{font-family:var(--serif);font-size:.9rem;color:var(--ink-soft);line-height:1.6;margin:0 0 1.25rem}.project-card-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:.75rem;border-top:1px solid var(--line);margin-top:auto}.project-stack{display:flex;gap:.4rem;flex-wrap:wrap}.stack-chip{font-family:var(--display);font-size:.7rem;background:#f4f4f5;border:1px solid var(--line);color:var(--ink);padding:.15rem .45rem;border-radius:4px}.project-inspect-btn{display:inline-flex;align-items:center;gap:.35rem;font-family:var(--display);font-size:.76rem;font-weight:700;color:var(--accent);white-space:nowrap;transition:transform .15s ease;margin-left:auto}.arrow-glyph{display:inline-block;transition:transform .15s ease}.project-card:hover .arrow-glyph,.project-card:focus-visible .arrow-glyph{transform:translate(4px)}@media (max-width: 480px){.work-grid{grid-template-columns:1fr}}.contact-links{display:flex;gap:1.5rem;flex-wrap:wrap;margin-top:1.5rem}.contact-links a{font-family:var(--display);font-size:.85rem;border-bottom:1px solid var(--line);padding-bottom:.2rem}.contact-links a:hover,.contact-links a:focus-visible{border-bottom-color:var(--accent);color:var(--accent)}.footer{margin-top:3rem;font-family:var(--display);font-size:.75rem;color:var(--ink-soft)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#09090b73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:3vh 4vw;z-index:50}.modal-window{width:min(720px,100%);max-height:90vh;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 24px 60px #00000026;overflow:hidden}.modal-titlebar{background:#09090b;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;font-family:var(--display);font-size:.82rem;border-bottom:1px solid #27272a}.modal-titlebar-file{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-close{color:#a1a1aa;font-family:var(--display);font-size:1rem;line-height:1;padding:.1rem .4rem;flex-shrink:0;margin-left:1rem;transition:color .15s ease}.modal-close:hover,.modal-close:focus-visible{color:#fff}.modal-body{overflow-y:auto;padding:1.75rem 2rem}.modal-meta{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;padding-bottom:1.25rem;border-bottom:1px solid var(--line)}.modal-stack{display:flex;gap:.75rem;font-family:var(--display);font-size:.72rem;color:var(--ink-soft)}.modal-github-link{font-family:var(--display);font-size:.78rem;color:var(--accent);border-bottom:1px solid var(--accent);flex-shrink:0}.modal-lead{background:#f4f4f5;border-left:3px solid var(--accent);padding:.85rem 1.1rem;margin-bottom:1.5rem;border-radius:6px}.modal-lead p{margin:0;font-family:var(--sans);font-size:.92rem;line-height:1.6;color:var(--ink)}.modal-status{font-family:var(--display);font-size:.85rem;color:var(--ink-soft)}.readme-content{color:var(--ink);max-width:100%}.readme-content h1,.readme-content h2,.readme-content h3{font-family:var(--sans);font-weight:700;line-height:1.3;margin:1.6em 0 .6em}.readme-content h1{font-size:1.15rem}.readme-content h2{font-size:1rem}.readme-content h3{font-size:.9rem}.readme-content p,.readme-content li{color:var(--ink-soft);line-height:1.7}.readme-content a{color:var(--accent);border-bottom:1px solid var(--accent)}.readme-content img{max-width:100%;border:1px solid var(--line);margin:.5em 0}.readme-content pre{background:#f4f4f5;border:1px solid var(--line);padding:.9rem;overflow-x:auto;font-size:.82rem;border-radius:6px}.readme-content code{font-family:var(--display);font-size:.85em;background:#f4f4f5;padding:.15em .35em;border-radius:4px}.readme-content pre code{background:none;padding:0}.readme-content table{border-collapse:collapse;margin:.75em 0;font-size:.9rem}.readme-content th,.readme-content td{border:1px solid var(--line);padding:.4em .7em;text-align:left}.readme-content hr{border:none;border-top:1px solid var(--line);margin:1.5em 0}.readme-raw{font-family:var(--display);font-size:.8rem;line-height:1.6;color:var(--ink-soft);background:#f4f4f5;border:1px solid var(--line);padding:1rem;overflow-x:auto;white-space:pre-wrap;word-break:break-word;border-radius:6px}.showcase-cover{width:100%;max-height:320px;object-fit:cover;border:1px solid var(--line);margin-bottom:1.25rem}.showcase-tagline{font-family:var(--display);font-size:.95rem;color:var(--ink);margin:0 0 1.25rem}.showcase-highlights{list-style:none;margin:0 0 1.75rem;padding:0;display:grid;gap:.6rem}.showcase-highlights li{font-family:var(--display);font-size:.82rem;color:var(--ink-soft);padding-left:1rem;border-left:2px solid var(--accent)}.block-text{color:var(--ink-soft);line-height:1.7;max-width:var(--measure);margin:0 0 1.5rem}.block-image{margin:0 0 1.5rem}.block-image img{width:100%;border:1px solid var(--line);display:block}.block-image figcaption{font-family:var(--display);font-size:.72rem;color:var(--ink-soft);margin-top:.5rem}.block-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin:0 0 1.5rem}.gallery-thumb{aspect-ratio:4 / 3;overflow:hidden;border:1px solid var(--line);padding:0}.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .15s ease}.gallery-thumb:hover img,.gallery-thumb:focus-visible img{transform:scale(1.05)}.block-video{width:100%;border:1px solid var(--line);margin:0 0 1.5rem;display:block}.block-embed{margin:0 0 1.5rem}.block-embed-label{font-family:var(--display);font-size:.78rem;color:var(--ink-soft);margin:0 0 .5rem}.block-embed iframe{width:100%;height:420px;border:1px solid var(--line);display:block}.showcase-links{display:flex;gap:1.25rem;flex-wrap:wrap;margin-bottom:1.5rem}.showcase-links a{font-family:var(--display);font-size:.82rem;color:var(--accent);border-bottom:1px solid var(--accent)}.showcase-readme-toggle{font-family:var(--display);font-size:.78rem;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:.15rem}.showcase-readme-toggle:hover,.showcase-readme-toggle:focus-visible{color:var(--accent);border-bottom-color:var(--accent)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#0a0906d9;display:flex;align-items:center;justify-content:center;padding:5vh 5vw;z-index:60}.lightbox img{max-width:100%;max-height:100%;object-fit:contain;border:1px solid var(--surface-line)}@media (max-width: 640px){.block-gallery{grid-template-columns:repeat(2,1fr)}}:root{--paper: #fafafa;--paper-raised: #ffffff;--ink: #09090b;--ink-soft: #52525b;--line: #e4e4e7;--line-strong: #d4d4d8;--accent: #2563eb;--accent-hover: #1d4ed8;--accent-ink: #ffffff;--surface: #09090b;--surface-line: #27272a;--display: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--serif: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--measure: 36rem}*{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;background-color:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;text-align:left;padding:0}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
