:root{color:#e6eae8;font-synthesis:none;text-rendering:optimizelegibility;background:#0b0d0c;font-family:Helvetica Neue,Helvetica,Arial,sans-serif}*{box-sizing:border-box}html,body{background:#0b0d0c;min-width:320px;min-height:100%;margin:0}body{min-height:100svh}a{color:#8fdcbb;text-decoration:none}a:focus-visible{outline-offset:6px;outline:2px solid #b8ecd6}.landing{width:100%;min-height:100svh;position:relative;overflow:hidden}.canvas{pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.shell{z-index:1;grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);width:100%;min-height:100svh;padding:32px 40px;display:grid;position:relative}.mono{text-transform:uppercase;font-family:IBM Plex Mono,SFMono-Regular,Consolas,Liberation Mono,monospace}.header,.footer,.project-meta{justify-content:space-between;align-items:baseline;display:flex}.header{border-bottom:1px solid #e6eae817;gap:24px;padding-bottom:18px}.wordmark{letter-spacing:.28em;align-items:baseline;gap:10px;font-size:13px;display:flex}.asterisk{color:#8fdcbb;font-size:12px;animation:9s linear infinite spin;display:inline-block}.status-line{color:#e6eae86b;letter-spacing:.22em;align-items:baseline;gap:18px;font-size:11px;display:flex}.status-line output{color:#8fdcbb}.divider{color:#e6eae83d}.content{flex-direction:column;justify-content:center;gap:40px;width:min(660px,100%);padding:80px 0;display:flex}.intro{flex-direction:column;gap:22px;display:flex}.eyebrow{color:#8fdcbb;letter-spacing:.24em;align-items:center;gap:12px;margin:0;font-size:11px;display:flex}.activity-dot{background:#8fdcbb;width:6px;height:6px;animation:2.4s step-end infinite blink}h1{letter-spacing:-.03em;margin:0;font-size:clamp(3.4rem,7vw,4rem);font-weight:500;line-height:.98}.title-mark{color:#8fdcbb;letter-spacing:0;vertical-align:super;font-size:.4em}.lede{color:#e6eae89e;text-wrap:pretty;max-width:48ch;margin:0;font-size:18px;line-height:1.55}.aside,.project-note{color:#e6eae857;letter-spacing:.14em;margin:0;font-size:11px}.project{border-top:1px solid #e6eae817;flex-direction:column;gap:14px;padding-top:26px;display:flex}.project-meta{color:#e6eae86b;letter-spacing:.24em;gap:20px;font-size:11px}.project-link{border-bottom:1px solid #8fdcbb59;align-items:flex-start;gap:16px;width:-moz-fit-content;width:fit-content;max-width:100%;padding-bottom:6px;transition:border-color .2s,color .2s;display:inline-flex}.project-copy{flex-direction:column;gap:4px;min-width:0;display:flex}.project-icon{object-fit:contain;flex:none;width:40px;height:40px;margin-top:3px}.project-icon--rock{transform-origin:50% 78%}.project-link:hover .project-icon--rock,.project-link:focus-visible .project-icon--rock{animation:1.8s ease-in-out project-icon-rock}.project-link:hover .project-icon--bounce,.project-link:focus-visible .project-icon--bounce{animation:1.8s ease-in-out project-icon-bounce}.project-name{letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(1rem,5vw,1.875rem)}.project-description{color:#e6eae880;font-size:13px;line-height:1.4;transition:color .2s}.project-link:hover,.project-link:focus-visible{color:#b8ecd6;border-bottom-color:#b8ecd6}.project-link:hover .project-description{color:#e6eae8ad}.project-arrow{flex:none;margin-top:.16em;font-size:22px;line-height:1;transition:transform .2s}.project-link:hover .project-arrow,.project-link:focus-visible .project-arrow{transform:translate(4px)}.project-note{color:#e6eae84d}.footer{color:#e6eae857;letter-spacing:.18em;border-top:1px solid #e6eae817;gap:24px;padding-top:18px;font-size:11px}.footer-links{align-items:baseline;gap:18px;display:flex}.email-link{color:#e6eae899;border-bottom:1px solid #e6eae833;transition:color .2s,border-color .2s}.email-link:hover{color:#8fdcbb;border-bottom-color:#8fdcbb80}@keyframes spin{to{transform:rotate(360deg)}}@keyframes project-icon-rock{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(7deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(3deg)}}@keyframes project-icon-bounce{0%,80%,to{transform:translateY(0)}20%{transform:translateY(1.25px)}40%{transform:translateY(-.75px)}60%{transform:translateY(.4px)}}@keyframes blink{0%,60%{opacity:1}61%,to{opacity:.15}}@media (max-width:700px){.shell{padding:22px 20px}.header{align-items:flex-start}.status-line{text-align:right;flex-direction:column;align-items:flex-end;gap:5px}.divider{display:none}.content{padding:64px 0}.footer{flex-direction:column;align-items:flex-start;gap:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important}}
