.hero-about .section-title{margin-bottom:1rem}.about-prose p{margin-bottom:.75rem}.about-prose p:last-child{margin-bottom:0}.hero-research{max-width:30rem}.hero-research .section-title{margin-bottom:1rem}.research-entry{border-left:2px solid var(--accent);padding-left:1.25rem}.research-paper-title{font-family:var(--font-body);font-size:1.1rem;font-weight:600;line-height:1.35;margin-bottom:.3rem}.research-meta{color:var(--ink-soft);font-family:var(--mono);font-size:.78rem;margin-bottom:.65rem}.research-result{font-size:.95rem;line-height:1.6;margin-bottom:.65rem}.research-link{display:inline-block;font-family:var(--mono);font-size:.85rem;margin-top:.25rem}.header{padding:6.5rem 0 2rem}.hero-layout{grid-column-gap:3rem;grid-row-gap:2rem;align-items:start;column-gap:3rem;display:grid;grid-template-areas:"text photo" "research about";grid-template-columns:minmax(0,1fr) clamp(260px,30vw,340px);row-gap:2rem}.hero-text{grid-area:text;min-width:0}.hero-about{grid-area:about}.hero-research{grid-area:research}.hero-photo{border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-hard);grid-area:photo;height:230px;object-fit:cover;width:230px}.hero-hi{color:var(--ink-soft);font-family:var(--mono);font-size:.95rem;margin-bottom:.4rem}.title{font-family:var(--font-display);font-size:clamp(2.75rem,8vw,4.25rem);font-weight:700;line-height:1.05;margin-bottom:1rem}.subtitle{color:var(--ink-soft);font-size:1.2rem;margin-bottom:1.75rem;max-width:34rem}.social-links{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem}.social-link{color:var(--ink-soft);display:inline-flex;font-size:1.3rem;padding:2px}.social-link:focus-visible,.social-link:hover{color:var(--accent)}.hero-cv,.social-email{font-family:var(--mono);font-size:.85rem}.hero-cv{display:inline-block;margin-top:.75rem}@media (max-width:600px){.header{padding-top:4.5rem}.hero-layout{grid-template-areas:"photo" "text" "about" "research";grid-template-columns:minmax(0,1fr);row-gap:1.75rem}.social-links{gap:1.1rem}.hero-photo{height:112px;width:112px}}.project-card{background:var(--raised);border-radius:var(--radius);display:flex;flex:1 1;flex-direction:column;font-family:var(--font-body);font-size:1rem;min-width:0;padding:.7rem .7rem .95rem}.card-head{gap:.75rem;justify-content:space-between;padding:.2rem .3rem .7rem}.card-head,.card-title{align-items:baseline;display:flex}.card-title{font-family:var(--font-body);font-size:1.05rem;font-weight:500;gap:.5rem;line-height:1.3;min-width:0}.card-note{color:var(--ink-soft);font-family:var(--mono);font-size:.72rem;font-weight:400;letter-spacing:0}.card-links{display:flex;flex:none;gap:.9rem}.card-link{font-family:var(--mono);font-size:.78rem;white-space:nowrap}.card-image{aspect-ratio:16/10;background:var(--sand);border-radius:var(--radius);display:block;height:auto;object-fit:cover;width:100%}.card-line{color:var(--ink);font-size:.93rem;line-height:1.55;margin-top:.9rem;padding:0 .3rem}.card-foot{color:var(--ink-soft);display:flex;font-family:var(--mono);font-size:.75rem;gap:.75rem;justify-content:space-between;margin-top:auto;padding:.8rem .3rem 0}.finder{background:var(--surface);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-hard)}.finder-bar{align-items:center;background:repeating-linear-gradient(to bottom,#3b352e 0 1px,var(--raised) 1px 3px);border-bottom:1px solid var(--edge);display:flex;height:28px;justify-content:center;padding:0 10px}.finder-title{background:var(--raised);font-family:var(--mono);font-size:.78rem;font-weight:600;letter-spacing:.04em;padding:0 10px}.finder-body{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)}.finder-list{border-right:1px solid var(--edge);font-family:var(--mono);font-size:.8rem}.finder-list ul{list-style:none}.finder-file,.finder-head{grid-gap:.5rem;align-items:center;display:grid;gap:.5rem;grid-template-columns:minmax(0,1fr) 8.5rem 5.5rem}.finder-head{background:var(--raised);border-bottom:1px solid var(--edge);color:var(--ink-soft);font-size:.75rem;padding:.35rem .75rem}.finder-file,.finder-folder{background:none;border:0;border-bottom:1px solid #ffffff0a;color:var(--ink);cursor:pointer;font:inherit;min-height:30px;padding:.25rem .75rem;text-align:left;width:100%}.finder-folder{align-items:center;display:flex;font-weight:600;gap:.45rem}.finder-file{padding-left:2.1rem}.finder-file:hover,.finder-folder:hover{background:#ffffff0a}.finder-file[aria-expanded=true]{background:var(--accent-muted);color:var(--ink)}.finder-file[aria-expanded=true] .finder-date,.finder-file[aria-expanded=true] .finder-kind{color:#ddd2c4}.finder-file:focus-visible,.finder-folder:focus-visible{outline:2px solid var(--ink);outline-offset:-2px}.finder-arrow{color:var(--ink-soft);width:.8rem}.finder-count{color:var(--ink-soft);font-weight:400;margin-left:auto}.finder-name{align-items:center;display:flex;gap:.45rem;min-width:0;overflow:hidden;white-space:nowrap}.finder-date,.finder-kind{color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finder-icon{flex:none;height:14px;width:16px}.finder-logo{border-radius:3px;height:16px}.folder-back{fill:#6f665b}.folder-front{fill:#a69d90}.file-page,.folder-sheet{fill:#efe8dc}.file-fold{fill:none}.file-fold,.file-lines{stroke:#8a8075;stroke-width:1}.file-lines{stroke-linecap:round}.finder-preview{display:flex;padding:.75rem}.finder-empty{color:var(--ink-soft);font-family:var(--mono);font-size:.78rem;margin:auto}.finder-inline{display:none}.finder-status{background:var(--raised);border-top:1px solid var(--edge);color:var(--ink-soft);font-family:var(--mono);font-size:.72rem;padding:.3rem .75rem}@media (max-width:960px){.finder-body{grid-template-columns:1fr}.finder-list{border-right:0}.finder-preview{display:none}.finder-inline{background:var(--bg);border-bottom:1px solid var(--edge);display:flex;padding:.6rem .6rem .75rem}.finder-inline .card-name{clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.finder-inline .card-head{gap:0;justify-content:flex-start}.finder-inline .card-note{margin-right:.9rem}}@media (max-width:600px){.finder-file,.finder-head{grid-template-columns:minmax(0,1fr) 5.5rem}.finder-head span:nth-child(2),.finder-kind{display:none}}.robotics-prose{color:var(--ink-soft);margin:-.75rem 0 2rem;max-width:58ch}.robotics-layout{grid-gap:3rem;align-items:start;display:grid;gap:3rem;grid-template-columns:minmax(0,5fr) minmax(0,6fr)}.robotics-layout+.robotics-layout{margin-top:3.5rem}.robotics-photo{background:var(--sand);border:1px solid var(--edge);border-radius:var(--radius);box-shadow:var(--shadow-hard);display:block;height:auto;width:100%}.robotics-caption{color:var(--ink-soft);font-family:var(--mono);font-size:.75rem;margin-top:.85rem}.build-list{list-style:none}.build{border-top:1px solid var(--line);padding:1.15rem 0}.build:first-child{border-top:0;padding-top:0}.build-title{font-family:var(--font-body);font-size:1.1rem;font-weight:600;line-height:1.35}.build-meta{color:var(--ink-soft);font-family:var(--mono);font-size:.75rem;margin:.15rem 0 .45rem}.build-detail{color:var(--ink-soft);font-size:.95rem;margin-bottom:.4rem}.build-code{font-family:var(--mono);font-size:.78rem}.robotics-results{margin-top:2.5rem}.robotics-results,.tba-link{font-family:var(--mono);font-size:.85rem}.tba-link{display:inline-block;margin-top:1.25rem}@media (max-width:768px){.robotics-layout{gap:2rem}}@media (max-width:600px){.robotics-layout{gap:2.25rem;grid-template-columns:1fr}}.footer{border-top:1px solid var(--edge);font-family:var(--mono);margin-top:2rem;padding:2rem 0 2.5rem}.footer-inner{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.footer-name{color:var(--ink-soft);font-size:.8rem}.footer-links{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem}.footer-email{font-size:.8rem}.footer-icons{align-items:center;display:flex;gap:1.1rem}.footer-icon{color:var(--ink-soft);display:inline-flex;font-size:1.05rem;padding:4px}.footer-icon:focus-visible,.footer-icon:hover{color:var(--accent)}:root{--bg:#13110f;--surface:#1b1815;--raised:#211d19;--sand:#26221d;--ink:#efe8dc;--ink-soft:#a69d90;--line:#2f2a24;--accent:#e2774a;--accent-muted:#784d3a;--blue:#5b9bff;--font-body:"Excon",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;--font-display:"Erode",Georgia,serif;--mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;--edge:#5a5148;--shadow-offset:4px;--shadow-hard:var(--shadow-offset) var(--shadow-offset) 0 #0000008c;--radius:3px;color-scheme:dark}*{box-sizing:border-box;margin:0;padding:0}body,html{overscroll-behavior-x:none}body{background-color:#13110f;background-color:var(--bg);color:#efe8dc;color:var(--ink);font-family:Excon,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-family:var(--font-body);line-height:1.65;overflow-x:clip}::selection{background:#efe8dc38}:focus-visible{outline:2px solid #efe8dc;outline:2px solid var(--ink);outline-offset:3px}.text-link{color:#e2774a;color:var(--accent);-webkit-text-decoration:underline wavy;text-decoration:underline wavy;text-decoration-color:#e2774a80;text-decoration-thickness:1px;text-underline-offset:5px}.text-link:hover{text-decoration-color:#e2774a;text-decoration-color:var(--accent)}.text-link.focus-link{color:#5b9bff;color:var(--blue);text-decoration-color:#5b9bff80}.text-link.focus-link:hover{text-decoration-color:#5b9bff;text-decoration-color:var(--blue)}.container{margin:0 auto;max-width:1200px;padding:0 1.5rem}section{padding:3.25rem 0}.section-title{font-family:Erode,Georgia,serif;font-family:var(--font-display);font-size:1.75rem;font-weight:700;margin-bottom:1.75rem}.title-period{color:#e2774a;color:var(--accent)}::-webkit-scrollbar{height:14px;width:14px}::-webkit-scrollbar-track{background:#13110f repeating-linear-gradient(45deg,#ffffff08 0 2px,#0000 2px 4px);background:var(--bg) repeating-linear-gradient(45deg,#ffffff08 0 2px,#0000 2px 4px);border-left:1px solid #2f2a24;border-left:1px solid var(--line)}::-webkit-scrollbar-thumb{background:#211d19;background:var(--raised);border:1px solid #5a5148;border:1px solid var(--edge)}::-webkit-scrollbar-thumb:hover{border-color:#a69d90;border-color:var(--ink-soft)}::-webkit-scrollbar-corner{background:#13110f;background:var(--bg)}@supports not selector(::-webkit-scrollbar){html{scrollbar-color:#5a5148 #13110f;scrollbar-color:#5a5148 var(--bg)}}
/*# sourceMappingURL=main.747b30b4.css.map*/